
Recoil

- 유저 정보, 카페 정보 등 일부 데이터는 전체 페이지에서 사용할 수 있으므로 전역으로 상태 관리가 필요했습니다.
- 타 라이브러리에 비해 학습 비용이 낮고, 구조가 간결하여 사용하기 쉽습니다.
React Query

- 음료 주문은
A클라이언트(고객)
에 의해 새로 생성되고, B클라이언트(업주)
의 상호작용을 통해 주문 상태가 변경됩니다.
- 각 클라이언트는 다른 클라이언트에 의해 변경되는 서버 상태를 실시간에 가깝게 동기화 할 필요가 있었습니다.
- 실시간으로 서버 상태를 조회하고 알림을 제공하기 위해
React Query
를 사용하여 주기적으로 서버 상태를 조회하도록 했습니다.
MSW

MSW
는 Service Worker
를 이용한 라이브러리로 노드
와 브라우저
의 두 가지 환경에서 Mocking 하여 Mock 데이터를 이용할 수 있습니다.
- BE/FE 동시에 개발을 진행하여 API가 미완성일 때가 많았고 Mock 데이터를 이용하여 테스트를 진행할 필요가 있어 사용했습니다.
- 노드 환경에서
Testing Library
와 함께 테스트를 진행했습니다.
NestJS

- IoC 컨테이너에게 의존성 관리에 관한 부분을 위임해 인스턴스의 초기화 시점을 신경 쓰는 시간을 줄였습니다.
- NestJS가 제공하는 계층화된 아키텍처를 그대로 따라, 계층 구조를 설계하는데 드는 시간을 줄였습니다.
- Guard, Interceptor, Pipe등 NestJS에서 제공하는 데코레이터를 적극 활용해 비지니스 로직 구현에 더욱 집중했습니다.
Github Action

- Github Action을 이용해 프론트엔드와 백엔드 CI/CD 자동화해 코드 품질을 관리하고, 배포시 소비되는 시간을 줄였습니다.
- Github Action의 Runner에서도 도커 이미지 캐싱이 원활하게 일어나도록 체크해 의존성 설치, 빌드 시간을 최대한 줄였습니다.
Redis