Project

테이블 필요성에 대한 설계 고민과 소통

kinim329 2026. 4. 20. 23:09

문제 상황

모의 주식 투자 대회 서비스를 설계하던 중 다음과 같은 고민이 발생했다.

대회 종료 시 유저에게 거래내역, 최종 수익률, 최종 자산을 보여주기 위해 포트폴리오 테이블을 따로 만들어야하는가?

 

나의 초기 의견

나는 처음에 포트폴리오 테이블이 필요하다고 생각했고 이유는 다음과 같았다.

  • 대회 종료 시점의 결과를 별도로 저장해야 한다
  • 이후 조회 시 매번 계산하지 않아도 된다
  • 랭킹이나 결과 페이지에서 빠르게 조회할 수 있다

즉, 종료 시점 결과를 스냅샷으로 저장해야 한다는 관점이었다.

 

팀원의 의견

팀원은 포트폴리오 테이브 없이도 충분하다는 입장이었고 이유는 다음과 같았다.

  • 대회마다 계좌를 새로 생성한다
  • 대회 종료 후에는 계좌, 보유 주식 데이터가 변경되지 않는다.
  • 따라서
    • 보유 수량
    • 평균 매수가
    • 남은 현금
      을 이용하면 언제든지 최종 결과를 계산할 수 있다.

즉, 현재 상태 자체가 최종 상태라는 관점이었다.

최종 결론

논의 결과, 이번 설계에서는 포트폴리오 테이블 없이 구현하기로 결정했고 그 이유는 다음과 같다.

  • 대회별로 계좌를 분리한다
  • 대회 종료 후 데이터가 변경되지 않는다
  • 현재 보유 주식 + 현금으로 최종 자산 계산이 가능하다

다만, 종료 시점 주식 가격은 별도로 저장하여 결과가 변하지 않도록 해야한다는점을 정리했다.

정리

처음에는 결과를 저장해야 한다는 생각에 집중했지만, 논의를 통해 데이터가 변하지 않는 구조를 만드는 것도 하나의 해결방법이라는 것을 알게 되었다.

또한 설계에서는 데이터를 저장할 것인가, 계산으로 해결할 것인가 이 두가지 접근을 항상 함께 고려해야 한다는 점을 느꼈다.

이번 경험을 통해 설계 방식에 정답은 없고, 상황에 맞는 설계를 선택하는것이 중요하다는 것을 배웠다.