Skip to content

[Release] MVP 1차 배포#95

Merged
won-seoop merged 365 commits into
mainfrom
develop
Jan 26, 2026
Merged

[Release] MVP 1차 배포#95
won-seoop merged 365 commits into
mainfrom
develop

Conversation

@won-seoop

@won-seoop won-seoop commented Jan 26, 2026

Copy link
Copy Markdown
Member

개요

BookPick MVP 1차 개발 완료 건으로, develop → main 머지 요청드립니다.
총 327커밋, 247파일 변경사항 포함되어 있습니다.

주요 작업 내역

도메인

  • 회원가입 / 로그인(JWT) / 로그아웃 / 토큰 재발급
  • 큐레이션 CRUD + 임시저장 / 발행 분기처리
  • 큐레이션 목록 조회 (인기순, 최신순, 무한스크롤)
  • 독서취향 기반 큐레이션 추천 (Gemini API 연동)
  • 댓글 / 대댓글 CRUD + 페이지네이션
  • 독서취향 설정 및 Enum 기반 검증
  • 유저 프로필 관리, 큐레이터 구독
  • 카카오 API 책 검색 연동

인프라

  • Dockerfile 작성 및 GitHub Actions CI/CD 구성 (dev/prod)
  • AWS ECR 컨테이너 배포 파이프라인
  • 환경별 yml 분리 (local / dev / prod)
  • .env 기반 시크릿 관리

성능 개선

무한 스크롤 N+1 쿼리 개선 (#68)

  • default_batch_fetch_size: 100 적용하여 쿼리 397개 → 5개로 감소
  • Gemini API 응답에 Caffeine Cache + 10분 TTL 적용하여 스크롤 시 사용자 체감 속도 향상
  • 커서 탐색 O(n) → 오프셋 기반 O(1) 페이징으로 변경

댓글/조회수 데드락 해결 (#70)

  • 동시 요청 시 Comment INSERT → Curation UPDATE 간 S-lock/X-lock 순환 대기로 데드락 발생
  • 비관적 락(PESSIMISTIC_WRITE) 적용하여 처음부터 X-lock 획득
  • 동시 요청 1000회 기준 500 에러 5~10회 → 0회
  • 적용 범위: 댓글 작성/삭제, 좋아요, 조회수 증가

기타

  • 트랜잭션 readonly 적용으로 읽기 성능 개선

테스트

  • Auth / Curation / Comment / ReadingPreference 서비스 단위 테스트 작성

확인 사항

  • 로그인 → 큐레이션 작성 → 발행 플로우
  • 독서취향 설정 후 추천 큐레이션 조회
  • 댓글/대댓글 CRUD
  • 무한 스크롤 정상 동작
  • 프로덕션 CI/CD 배포 정상 동작

won-seoop and others added 30 commits November 11, 2025 22:35
fix : 독서취향 등록 API 수정
fix : 독서취향 필드 수정
model -> entity
won-seoop and others added 29 commits January 11, 2026 01:01
feat : 로그인을 제외한 모든 요청에 인증 방어 로직 추가
feat : 특정 큐레이션 리스트 조회할 dto추가
chore: test server cors 추가
feat: csv 컨트롤러 삭제(미사용)
서버chore: dev/prod 환경 분리 및 CORS 설정 수정
chore: dev server host 깃허브 시크릿키 오타 수정
chore: CorsConfig 중복 제거
feat: AWS ECR 사용을 위한 develop서벅 CI/CD 수정
feat: aws 경로 수정
feat: 프로덕션 CI/CD ECR에 도커 컨테이너 넣게 수정
@won-seoop won-seoop merged commit d7369f5 into main Jan 26, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant