Project
도와조
Work
외주 의뢰자와 작업자를 연결하고, 의뢰 등록부터 매칭·거래까지 지원하는 O2O 플랫폼
역할
풀스택 개발
기간
2025.09 ~ 2026.02
스택
JavaScript, Node.js, Express, Sequelize, MySQL, Redis. AWS S3
1. 상품 검색 API 성능 개선
문제 상황
다수의 서브쿼리 및 N+1 문제로 평균 응답 속도 2.5초 지연 발생
원인 분석
- 다수의 서브쿼리가 메인 쿼리 내에 중첩되어 DB 부하 과도 (결과 40개 × 서브쿼리 6개 = 240번 추가 스캔)
- ORM 사용 시 연관 엔티티 조회로 N+1 문제 발생 (40개 상품 → 40번 추가 SELECT)
- 동일한 데이터를 여러 번 추출하는 중복 호출 문제
해결 방식
- 1차 최적화: N+1 해결 — 모든 ID를 미리 수집 후 한 번의 쿼리로 처리 (41번 → 2번, 95% 감소)
- 2차 최적화: 서브쿼리 → JOIN 구조로 재설계 (240개 서브쿼리 → 5개 LEFT JOIN)
- 중복 DB 호출 제거
결과
기존: 평균 2.5초
개선: 평균 0.3초
향상률: 88% 개선
2. 결제 검증 서버사이드 처리 도입
문제 상황
웹/모바일웹 아키텍처 차이로 결제 실패 이슈 발생
원인 분석
- 결제 검증을 클라이언트 측에서 처리하는 구조
- 웹과 모바일웹의 연동 방식 차이로 일관된 검증 불가
해결 방식
- 서버사이드 결제 검증 API 설계 개선
- 클라이언트 환경에 무관하게 동일한 검증 로직 적용
결과
- 클라이언트 환경(Web/Mobile Web)에 관계없는 결제 안정성 확보
3. 정적 파일 스토리지 인프라 마이그레이션
블로그 — Cafe24 OBS → AWS S3 마이그레이션
문제 상황
Cafe24 OBS의 한계로 인프라 관리가 복잡하고, 이미지 로딩 속도 문제
해결 방식
- Cafe24 OBS → AWS S3 전환
- 전체 파일 100% 마이그레이션 및 경로 재설계
결과
- 이미지 로딩 속도 개선
- 인프라 관리 단순화 달성
4. 사용자 세션 보안 취약점 발견 및 수정
문제 상황
Session Switching 취약점 발견 — 다른 사용자의 세션 정보가 노출될 수 있는 위험
원인 분석
- 클라이언트 상태 관리 로직의 사이드이펙트로 세션 오염 발생
- 인증 정보 저장 시점이 여러 곳에 분산되어 일관성 부재
해결 방식
- 인증 정보 저장 시점 단일화
- 상태 변경 로직을 분리하여 세션 무결성 확보
결과
- 세션 오염 문제 완전 해결
결과
API 응답속도 88% 개선, 정적 파일 스토리지 인프라 마이그레이션