Heeyaa

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. 결제 검증 서버사이드 처리 도입

블로그 — NicePay 모바일웹 결제 문제

문제 상황

웹/모바일웹 아키텍처 차이로 결제 실패 이슈 발생

원인 분석

  • 결제 검증을 클라이언트 측에서 처리하는 구조
  • 웹과 모바일웹의 연동 방식 차이로 일관된 검증 불가

해결 방식

  • 서버사이드 결제 검증 API 설계 개선
  • 클라이언트 환경에 무관하게 동일한 검증 로직 적용

결과

  • 클라이언트 환경(Web/Mobile Web)에 관계없는 결제 안정성 확보

3. 정적 파일 스토리지 인프라 마이그레이션

블로그 — Cafe24 OBS → AWS S3 마이그레이션

문제 상황

Cafe24 OBS의 한계로 인프라 관리가 복잡하고, 이미지 로딩 속도 문제

해결 방식

  • Cafe24 OBS → AWS S3 전환
  • 전체 파일 100% 마이그레이션 및 경로 재설계

결과

  • 이미지 로딩 속도 개선
  • 인프라 관리 단순화 달성

4. 사용자 세션 보안 취약점 발견 및 수정

블로그 — 세션 스위칭 트러블슈팅

문제 상황

Session Switching 취약점 발견 — 다른 사용자의 세션 정보가 노출될 수 있는 위험

원인 분석

  • 클라이언트 상태 관리 로직의 사이드이펙트로 세션 오염 발생
  • 인증 정보 저장 시점이 여러 곳에 분산되어 일관성 부재

해결 방식

  • 인증 정보 저장 시점 단일화
  • 상태 변경 로직을 분리하여 세션 무결성 확보

결과

  • 세션 오염 문제 완전 해결

결과

API 응답속도 88% 개선, 정적 파일 스토리지 인프라 마이그레이션