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