
개요
앱 웨딩북 내 자체 스토어 운영을 위해 요청한 외주 프로젝트 내 코드의 유지 보수 및 개선 작업을 진행 하였으며
NestJs 기반의 TypeORM 사용 과정에서 발생하는 N+1의 문제 및 API 성능 개선을 진행하였습니다.
기간
기여도
70%
1. 주요 기여 부분
1) 프로젝션 기반 N+1 문제 해결
- 스토어 내 상품 주문 시 발생하는 비정상적으로 많은 양의 쿼리를
프로젝션 기반으로 요구되는 필드만 추출하여 조회하도록 수정하였습니다.
2) 도메인 객체 기반 응답 반환에서 DTO 기반의 응답 반환으로 전환
- 기존의 경우 API호출 시 쿼리를 통해 조회해온 객체를 그대로 반환하였으나 이로 인해 발생하는 불필요한 정보까지 응답에 포함되지 않도록 API 별 응답 스펙을 정의하여 반환하도록 수정하였습니다.
2. 구현 기능/ 기술 스택
3.1. 개요
기존 코드의 경우 javascript진영의 TypeORM ORM 기반의 객체 기반 쿼리가 작성되어 있었으나 이 과정에서 N+1 문제에 대한 고려가 되어있지 않았습니다.
따라서 성능 및 디버깅 관련 문제가 발생하였고 이를 개선하기 위해 비즈니스 로직 및 영속성 계층 코드를
수정하였습니다.
3.2. 구현 기능