
어제 마무리할 때
오늘 팀원들과 함께 해야 할 일들을 github project에 정리 해두었다.
도장 깨기 느낌으로 하나 하나 팀원들과 회의 하면서 정리함.

우리의 최종 기획 발표 전 정해진아키텍처 + 인프라이다.
뭔가 수정이 필요한 것 같은데...
아직 미숙한 나에게 완벽해 보인다.
이렇게 크게 나뉘였다.
"React를 사용하게 되면 모든 페이지를 한 번에 렌더링 하게 되는데 이는 많은 가구 데이터가 존재했을 때 로드할 때 과부하가 생길 수 있지 않을까?"
라는 생각에 "SSR을 사용할 수 있으면 좋겠는데?"
라고 생각하여 "처음엔 Next를 활용해 이를 처리할 수 있지 않을까?" 이렇게 생각함.
하지만, 생각해보니 페이징 기법, lazy-loading 등 다양한 방식으로 데이터를 로딩할 수 있을 것 같다라는 생각을 하였다.
이렇게 했을 때 React로 충분히 구현할 수 있지 않을까?라는 생각을 하였지만, 최종적으로 Next가 선택 되었다.
왜냐하면,
Full stack 기술로써 백엔드와 프론트엔드를 통합적으로 활용할 수 있고, SSR(Server-Side Rendering)을 통해 초기 로딩 속도를 최적화할 수 있다고 판단하여 선택하게 되었다.
TypeORM vs Prisma vs Drizzle ORM
이 세 가지 중에 어떤 것을 선택해야 할지 찾아 보았다.
그 중 선택한 ORM은 Prisma
빠르게 학습이 가능하고 직관적이라는 장점과 느린 ORM이라고 하지만 Rust engine을 사용하여 빠르다라고 봤다.
Rust engine을 사용해서 왜 빠른데?
Prisma는 Rust로 작성된 네이티브 쿼리 엔진 덕분에 JS에서 직접 DB를 다루는 ORM보다 빠릅니다.
Rust의 장점(메모리 안전성, 동시성, 네이티브 성능)을 활용해 DB와의 인터페이스 병목을 최소화했기 때문에 대규모 요청 환경에서 높은 성능과 안정성을 제공할 수 있어요.
사실상 실제로 프로젝트를 진행 해보면서 Prisma에 대해서 더 알아볼 수 있을 것 같다.
TypeORM
ts의 장점이 타입 안정성이라고 생각하는데 TypeORM을 사용했을 때 타입이 un-safe 하다라는게 이해가 안갔다.
"그럼 TypeORM을 사용할 이유가 있을까?"라는 생각을 하게 되었고,
Drizzle ORM
경량에 속도가 빠르다라는 장점이 있지만, 초기 설정 할게 많다라는 점에서 배제했다.
그리고 Prisma가 선택된 큰 이유 중에 하나는 직관적인 Query 작성 SQL를 잘 알지 못하는 우리 팀에게 프로젝트를 하는데 더 나은 경험을 제공할 것이라 판단.
그 외의 나온 이야기
동시성 처리
OAuth와 jwt
채팅 데이터 처리
효율적인 저장
Redis
약 10시간 넘게 회의를 하고 프로젝트에 대해 토론하고 의사 결정을 하는 과정이 정말 쉽지 않음을 느꼈다.
피로도가 MAX
