Portfolio
차세대 API 개발
아스템즈 | 2023.04 ~ 2023.07
REST → GraphQL 전환 및 CI/CD 파이프라인 구축
상세 내용
- NestJS 기반 GraphQL 스키마 및 리졸버 설계
- Redis 캐싱으로 쿼리 부하 최소화
- Gitea 사내 Git + Jenkins CI/CD 자동화
- Docker 컨테이너화 + Nginx 리버스 프록시
하이라이트
REST → GraphQL 전환
Problem
REST API의 Over-fetching으로 불필요한 데이터 전송이 많고, 프론트엔드에서 여러 API를 조합해야 하는 비효율 발생
Solution
NestJS 기반 GraphQL 스키마 및 리졸버 설계, 필요한 필드만 요청하는 구조로 전환
Result
Over-fetching 제거로 응답 데이터 크기 평균 약 40% 감소, 프론트엔드 API 호출 횟수 화면당 평균 5회 → 1~2회로 단축
CI/CD 파이프라인 구축
Problem
수동 빌드 및 배포로 인한 휴먼 에러 발생과 배포 시간 지연
Solution
Gitea + Jenkins CI/CD 자동화, Docker 컨테이너화 + Nginx 리버스 프록시 구성
Result
배포 시간 약 15분 → 3분으로 단축, 수동 배포 대비 휴먼 에러 제거
GraphQL N+1 문제 해결
Problem
연관 데이터 조회 시 리졸버마다 개별 쿼리가 실행되어 N+1 문제 발생, 요청당 쿼리 수 급증
Solution
DataLoader를 도입하여 동일 틱 내 요청을 배치로 묶어 단일 쿼리로 처리
Result
연관 데이터 조회 시 쿼리 수 N+1 → 2로 감소, API 응답 시간 약 60% 개선
기술 스택
NestJSGraphQLOracleRedisDockerNginxJenkinsGitea