본문 바로가기

개발일지/TIL

[230731] [파이널] 기획 및 S.A 작성 (4)

S.A 피드백 적용

✔ 스코프 추가

💬 현재 스코프가 4명이서 하기에는 다소 적다는 피드백이 있었다. 팀원들과 추가 기능들에 대해서 논의를 했다. 후보군을 먼저 선정을 했다. 후보군 중에서 결정을 했다. 아이디어 경매에 얼마나 어울리는가를 기준으로 삼았다.

   ➡ 채팅 기능 ( 아이디어 토론장 )
   ➡ 아이디어 경매 예약하기

 

✔ ERD 피드백

💬 나누어져 있는 테이블을 단일 테이블로 합치는 것을 피드백으로 주셨다. 확장 가능성이나 성능면에서 장점이 있다고 하셨다. 하지만 우리는 테이블 분리했을 때 검색 성능을 향상할 수 있어서 적용한 것이었다. 우리의 의견과 반대되기에 정확한 이유를 듣고 싶어 질문을 했다.

 

✔ ERD 질문 답변

✅ ERD를 작성할 때 테이블을 무조건 분리한다고 해서 좋은 것이 아니다. 정합성을 고려하되 JOIN으로 생길 수 있는 성능적 문제도 생각을 해야 한다. 속도적인 측면을 고려를 해서 하나의 테이블로 갈지 아니면 분리된 테이블로 갈지 정하는 것이 코치님이 작성하는 기준이라고 하셨다. 충분히 설득력이 있는 답변이었다.

데이터베이스 결정

✔ RDBMS vs NoSQL

💬 RDBMS를 구조화된 데이터를 사용하는 데에 특화가 되어있다. NoSQL은 비정규 데이터를 다루는 데에 특화가 되어 있다. 프로젝트에 사용되는 데이터는 구조화된 데이터이기 때문에 RDBMS를 사용하기로 했다. 

 

✔ 제품 결정

💬 RDBMS 제품 중 후보군은 Oracle, MySQL, PostgreSQL이었다. Oracle은 대용량 트래픽에 가장 적합하다고는 하지만 유료였기에 탈락시켰다. 우리의 자금상 서버 구동에 돈을 써야 할 것 같아서다. 무료인 MySQL과 PostgreSQL을 두고 비교를 해 우리에게 적합한 제품을 사용하기로 했다.

 

✔ MySQL vs PostgreSQL

💬 MySQL, PostgreSQL은 모두 동시성을 제공해 준다. ACID(원자성, 일관성, 고립성, 지속성)도 동일하게 제공해 준다. MySQL은 InnoDB 엔진을 써야 한다는 조건이 붙지만 말이다. 그래서 성능적인 면을 고려하기로 했다. MySQL은 읽기에 최적화가 되어있다고 한다. PostgreSQL의 경우 쓰기-읽기에 최적화가 되어있다고 한다. 우리 프로젝트는 경매 서비스이다 보니 쓰기가 50%로 이상 차지할 것으로 추측이 되었다. 그래서 쓰기에 좀 더 좋은 성능을 보이는 PostgreSQL을 사용하기로 했다.

참고

 

PostgreSQL과 MySQL 비교 - 관계형 데이터베이스 관리 시스템(RDBMS) 간의 차이점 - AWS

MySQL은 데이터를 행과 열이 있는 테이블로 저장할 수 있는 관계형 데이터베이스 관리 시스템입니다. 많은 웹 애플리케이션, 동적 웹 사이트 및 임베디드 시스템을 지원하는 널리 사용되는 시스

aws.amazon.com