[week 16] 최종 기획 발표 전 10시간 회의

Woody Jo·2025년 8월 26일

kjungle

목록 보기
25/31

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

우리의 최종 기획 발표 전 정해진아키텍처 + 인프라이다.
뭔가 수정이 필요한 것 같은데...
아직 미숙한 나에게 완벽해 보인다.

Frontend

  1. Next Full stack (Client + API)으로 사용하기
  2. React 사용하기

이렇게 크게 나뉘였다.

"React를 사용하게 되면 모든 페이지를 한 번에 렌더링 하게 되는데 이는 많은 가구 데이터가 존재했을 때 로드할 때 과부하가 생길 수 있지 않을까?"
라는 생각에 "SSR을 사용할 수 있으면 좋겠는데?"
라고 생각하여 "처음엔 Next를 활용해 이를 처리할 수 있지 않을까?" 이렇게 생각함.

하지만, 생각해보니 페이징 기법, lazy-loading 등 다양한 방식으로 데이터를 로딩할 수 있을 것 같다라는 생각을 하였다.
이렇게 했을 때 React로 충분히 구현할 수 있지 않을까?라는 생각을 하였지만, 최종적으로 Next가 선택 되었다.

왜냐하면,
Full stack 기술로써 백엔드프론트엔드를 통합적으로 활용할 수 있고, SSR(Server-Side Rendering)을 통해 초기 로딩 속도최적화할 수 있다고 판단하여 선택하게 되었다.

ORM

TypeORM vs Prisma vs Drizzle ORM
이 세 가지 중에 어떤 것을 선택해야 할지 찾아 보았다.

그 중 선택한 ORM은 Prisma

  • 특징: 데이터 모델링에 집중하는 스키마 기반의 ORM입니다.
  • 장점: 매우 직관적이고 설정이 간단하며, 빠르게 학습하여 생산성을 높일 수 있습니다.
  • 단점: 벤치마크 결과에 따르면 일반적으로 가장 느린 ORM으로 평가됩니다.

빠르게 학습이 가능하고 직관적이라는 장점과 느린 ORM이라고 하지만 Rust engine을 사용하여 빠르다라고 봤다.

Rust engine을 사용해서 왜 빠른데?
PrismaRust로 작성된 네이티브 쿼리 엔진 덕분에 JS에서 직접 DB를 다루는 ORM보다 빠릅니다.
Rust의 장점(메모리 안전성, 동시성, 네이티브 성능)을 활용해 DB와의 인터페이스 병목을 최소화했기 때문에 대규모 요청 환경에서 높은 성능과 안정성을 제공할 수 있어요.

사실상 실제로 프로젝트를 진행 해보면서 Prisma에 대해서 더 알아볼 수 있을 것 같다.

다른 ORM은?

TypeORM
ts의 장점이 타입 안정성이라고 생각하는데 TypeORM을 사용했을 때 타입이 un-safe 하다라는게 이해가 안갔다.
"그럼 TypeORM을 사용할 이유가 있을까?"라는 생각을 하게 되었고,

Drizzle ORM
경량에 속도가 빠르다라는 장점이 있지만, 초기 설정 할게 많다라는 점에서 배제했다.

그리고 Prisma가 선택된 큰 이유 중에 하나는 직관적인 Query 작성 SQL를 잘 알지 못하는 우리 팀에게 프로젝트를 하는데 더 나은 경험을 제공할 것이라 판단.

기타

그 외의 나온 이야기

  • 동시성 처리

    • 동시성 처리를 위해 lock을 사용해 한 번에 한 사용자만 처리할 수 있도록 구현할 예정이다.
      이 과정에서 다른 사용자가 lock을 소유한채로 네트워크 장애가 발생한다든지 문제가 생길 수 있다라고 가정,
      이를 해결하기 위해 Redis TTL을 설정할 것으로 예상하고 있다.
  • OAuth와 jwt

    • 둘 중 뭐를 사용해야 하는가?
    • OAuth ?
    • jwt ?
    • OAuth + jwt ?
    • 이 부분에 대해서는 내일 멘토님에게 도움을 청할 예정이다..잘 모르기 때문
  • 채팅 데이터 처리

    • Throttling: 일정 간격으로 중간 저장하는 방식
  • 효율적인 저장

    • Debouncing: 연속 이벤트의 마지막만 처리하는 방식
    • Throttling: 위와 같은 방식
  • Redis

약 10시간 넘게 회의를 하고 프로젝트에 대해 토론하고 의사 결정을 하는 과정이 정말 쉽지 않음을 느꼈다.

피로도가 MAX

profile
developer

0개의 댓글