Skip to content

TaskerJang/dnd-12th-5-backend

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

340 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🎁 Picktory

Picktory Logo

μ„ λ¬Όμ˜ μ˜λ―ΈλŠ” μœ μ§€ν•˜λ©΄μ„œ, μƒλŒ€λ°©μ˜ μ·¨ν–₯을 μžμ—°μŠ€λŸ½κ²Œ μ•Œ 수 μžˆλŠ” μ„œλΉ„μŠ€

πŸ’‘ μ„œλΉ„μŠ€ μ†Œκ°œ

λ°°κ²½ 및 문제 μ˜μ‹

Service Background

μ„ λ¬Ό κ³ λ₯΄κΈ°λŠ” λ§Žμ€ μ‚¬λžŒλ“€μ—κ²Œ μ–΄λ €μš΄ κ³Όμ œμž…λ‹ˆλ‹€. 125λͺ…μ˜ μ„€λ¬Έ κ²°κ³Ό, μ‚¬λžŒλ“€μ΄ μƒλŒ€λ°©μ˜ μ„ ν˜Έλ„λ₯Ό 직접 물어보지 λͺ»ν•˜λŠ” κ°€μž₯ 큰 μ΄μœ λŠ” 'μ„ λ¬Όμ˜ 감성이 사라지고 μ„±μ˜κ°€ μ—†μ–΄ 보일까봐' μ˜€μŠ΅λ‹ˆλ‹€.

ν•΄κ²°μ±…: Picktory

Solution

PicktoryλŠ” λ‹€μŒκ³Ό 같은 μ†”λ£¨μ…˜μ„ μ œκ³΅ν•©λ‹ˆλ‹€:

  • μ„ λ¬Ό 후보 곡유: μ—¬λŸ¬ μ„ λ¬Ό μ˜΅μ…˜μ„ ν•œ λ²ˆμ— κ³΅μœ ν•˜μ—¬ μƒλŒ€λ°©μ˜ μ˜κ²¬μ„ μžμ—°μŠ€λŸ½κ²Œ μˆ˜μ§‘
  • μ€€λΉ„ κ³Όμ • 곡유: μ„ λ¬Ό 선택 κ³Όμ •μ˜ κ³ λ―Όκ³Ό λ…Έλ ₯을 ν•¨κ»˜ μ „λ‹¬ν•˜μ—¬ 정성을 ν‘œν˜„
  • μ„ λ¬Όμ˜ 의미 μœ μ§€: 깜짝 μ„ λ¬Όμ˜ μ„€λ ˜μ„ μœ μ§€ν•˜λ©΄μ„œλ„ 효과적인 μ„ λ¬Ό 선택 κ°€λŠ₯
  • μœ μ—°ν•œ λ‹΅λ³€ μ‹œμŠ€ν…œ: λ°›λŠ” μ‚¬λžŒμ΄ 자유둭게 선물에 λ°˜μ‘ν•˜κ³  μ˜κ²¬μ„ 남길 수 있음

μ„œλΉ„μŠ€ 차별점

  • 보따리 κ°œλ…: μ—¬λŸ¬ μ„ λ¬Ό μ˜΅μ…˜μ„ ν•˜λ‚˜μ˜ 보따리에 λ‹΄μ•„ μ „λ‹¬ν•˜λŠ” νŠΉλ³„ν•œ κ²½ν—˜
  • 캐릭터 배달뢀: κ·€μ—¬μš΄ 캐릭터가 보따리λ₯Ό λ°°λ‹¬ν•˜λŠ” 재미 μš”μ†Œ μΆ”κ°€
  • κ°„νŽΈν•œ 링크 곡유: 고유 링크둜 μ‰½κ²Œ 보따리 곡유 κ°€λŠ₯
  • μƒνƒœ 관리 μ‹œμŠ€ν…œ: DRAFT β†’ PUBLISHED β†’ COMPLETED μƒνƒœ νλ¦„μœΌλ‘œ 효율적인 κ³Όμ • 관리

πŸ› οΈ 기술 μŠ€νƒ

Backend

Java Spring Boot Spring Security Spring Data JPA Hibernate MySQL JWT QueryDSL AWS

DevOps & Tools

Git GitHub Jira Swagger

🧩 μ£Όμš” κΈ°λŠ₯

1. 인증 μ‹œμŠ€ν…œ

  • 카카였 μ†Œμ…œ 둜그인: κ°„νŽΈν•œ 둜그인 및 νšŒμ›κ°€μž… 톡합 ν”„λ‘œμ„ΈμŠ€
  • JWT 기반 인증: μ•ˆμ „ν•œ 토큰 관리 및 μž¬λ°œκΈ‰ μ‹œμŠ€ν…œ
  • μœ μ € 관리: νšŒμ› 정보 쑰회, λ‘œκ·Έμ•„μ›ƒ, νƒˆν‡΄ κΈ°λŠ₯

2. 보따리 관리

  • 생성 및 νŽΈμ§‘: λ‹€μ–‘ν•œ λ””μžμΈμ˜ 보따리 생성 및 νŽΈμ§‘ κΈ°λŠ₯
  • μ„ λ¬Ό 관리: μ„ λ¬Ό μΆ”κ°€, μˆ˜μ •, μ‚­μ œ 및 이미지 μ—…λ‘œλ“œ
  • 배달 μ„€μ •: λ‹€μ–‘ν•œ μΊλ¦­ν„°λ‘œ 보따리 배달 μ„€μ • κΈ°λŠ₯
  • 고유 링크: UUID 기반 곡유 링크 생성

3. 응닡 μ‹œμŠ€ν…œ

  • 보따리 μ—΄λžŒ: 링크λ₯Ό ν†΅ν•œ 보따리 μ ‘κ·Ό 및 μ—΄λžŒ
  • μ„ λ¬Ό 응닡: λ‹€μ–‘ν•œ νƒœκ·Έλ₯Ό ν†΅ν•œ μ„ λ¬Ό 응닡 κΈ°λŠ₯
  • κ²°κ³Ό 쑰회: 보따리 주인의 응닡 κ²°κ³Ό 쑰회 κΈ°λŠ₯
  • 읽음 ν‘œμ‹œ: 응닡 확인 μƒνƒœ ν‘œμ‹œ κΈ°λŠ₯

4. 파일 관리

  • AWS S3 톡합: 이미지 μ €μž₯ 및 관리 μ‹œμŠ€ν…œ
  • 썸넀일 처리: μžλ™ 썸넀일 생성 및 관리

πŸ—οΈ μ‹œμŠ€ν…œ μ•„ν‚€ν…μ²˜

Frontend Architecture

Frontend Architecture

Backend Architecture

Backend Architecture

πŸ§ͺ 개발 ν”„λ‘œμ„ΈμŠ€

1. μ½”λ“œ 관리 μ „λž΅

  • 브랜치 μ „λž΅:
    • main: μ œν’ˆ 배포λ₯Ό μœ„ν•œ κΈ°μ€€ 브랜치
    • develop: 개발 톡합 브랜치
    • feature/<κΈ°λŠ₯λͺ…>: κΈ°λŠ₯ 개발 브랜치

2. PR(Pull Request) ν”„λ‘œμ„ΈμŠ€

  • Pull Request κ·œμΉ™:
    • 직접 Push κΈˆμ§€: λͺ¨λ“  μ½”λ“œ 변경은 PR을 톡해 μ§„ν–‰
    • PR 곡유: νŒ€ λ‚΄ 곡유 ν•„μˆ˜

3. 컀밋 μ»¨λ²€μ…˜

  • 컀밋 λ©”μ‹œμ§€ ꡬ쑰: [<νƒ€μž…>]: <μž‘μ—…λ‚΄μš©>
  • 컀밋 νƒ€μž…:
    • feat: μƒˆλ‘œμš΄ κΈ°λŠ₯ κ΅¬ν˜„
    • fix: 버그 ν•΄κ²°
    • refactor: μ½”λ“œ λ¦¬νŒ©ν„°λ§
    • docs: λ¬Έμ„œ μˆ˜μ •
    • style: μ½”λ“œ μŠ€νƒ€μΌ λ³€κ²½
    • test: ν…ŒμŠ€νŠΈ μ½”λ“œ κ΄€λ ¨

πŸš€ μ„€μΉ˜ 및 μ‹€ν–‰ 방법

μš”κ΅¬μ‚¬ν•­

  • JDK 17+
  • MySQL 8.0+
  • Gradle

μ„€μΉ˜ 및 μ‹€ν–‰ 단계

  1. λ ˆν¬μ§€ν† λ¦¬ 클둠
git clone https://github.com/dnd-side-project/dnd-12th-5-backend.git
cd dnd-12th-5-backend
  1. μ• ν”Œλ¦¬μΌ€μ΄μ…˜ λΉŒλ“œ
./gradlew build
  1. μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ‹€ν–‰
./gradlew bootRun
  1. API λ¬Έμ„œ μ ‘κ·Ό
http://localhost:8080/swagger-ui.html

🌟 λ‚΄κ°€ μˆ˜ν–‰ν•œ μ£Όμš” 개발 이λ ₯

1. κΈ°λ³Έ 인프라 ꡬ좕

1.1. Swagger 초기 μ„€μ • : PR #3

implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.3.0'

κ΅¬ν˜„ λ‚΄μš©

  • ✨ API λ¬Έμ„œν™”λ₯Ό μœ„ν•œ SwaggerConfig 클래슀 생성
  • πŸ› οΈ Context pathλ₯Ό /api/v1둜 μ„€μ •
  • πŸ“ Swagger UI path: /swagger-ui.html
  • πŸ“š API docs path: /v3/api-docs

1.2. QueryDSL ν™˜κ²½ ꡬ성 : PR #4

implementation 'com.querydsl:querydsl-jpa:5.0.0:jakarta'
annotationProcessor "com.querydsl:querydsl-apt:5.0.0:jakarta"

κ΅¬ν˜„ λ‚΄μš©

  • βš™οΈ JPAQueryFactory Bean 등둝
  • πŸ”„ Q클래슀 μžλ™ 생성 μ„€μ •
  • πŸ“ Entity λ³€κ²½ μ‹œ clean & rebuild ν•„μš”

1.3. Spring Security κΈ°λ³Έ μ„€μ • : PR #5

κ΅¬ν˜„ λ‚΄μš©

  • πŸ” JWT 인증 ν•„ν„° κ΅¬ν˜„
  • πŸ›‘οΈ API μ—”λ“œν¬μΈνŠΈλ³„ μ ‘κ·Ό κΆŒν•œ μ„€μ •
  • 🌐 CORS μ„€μ •
    • ν”„λ‘ νŠΈμ—”λ“œ 도메인 μ„€μ • 이후 λ³΄μ•ˆ κ°•ν™” μ˜ˆμ •
    • HTTP λ©”μ†Œλ“œ: GET, POST, PUT, DELETE, OPTIONS

2. 인증 μ‹œμŠ€ν…œ 개발

2.1. JWT 토큰 관리 μ‹œμŠ€ν…œ κ΅¬ν˜„ : PR #7

κ΅¬ν˜„ λ‚΄μš©

  • βœ… 토큰 μœ νš¨μ„± 검증 둜직
  • πŸ”„ 만료 토큰 μž¬λ°œκΈ‰ κΈ°λŠ₯
  • πŸ”’ 토큰 μ„œλͺ… 및 μ•”ν˜Έν™” 처리
  • πŸ› οΈ μ‚¬μš©μž ID 기반 ν΄λ ˆμž„ 섀계

2.2. JWT 인증 및 λ³΄μ•ˆ μ•„ν‚€ν…μ²˜ κ°œμ„  : PR #68

κ΅¬ν˜„ λ‚΄μš©

  • πŸ”’ SecurityConfig 클래슀 μ „λ©΄ λ¦¬νŒ©ν† λ§
  • πŸ›‘οΈ JWT 인증 μ•„ν‚€ν…μ²˜ μž¬μ„€κ³„ 및 μ΅œμ ν™”
  • 🌐 인증 ν•„ν„° 체인 κ°œμ„  및 고도화
  • πŸ”‘ κΆŒν•œ 검증 둜직 κ°•ν™”
  • πŸ› οΈ μ—”λ“œν¬μΈνŠΈλ³„ μ„ΈλΆ„ν™”λœ μ ‘κ·Ό μ œμ–΄ κ΅¬ν˜„
  • πŸ”„ 인증 μ˜ˆμ™Έ 처리 흐름 κ°œμ„ 

2.3. 카카였 OAuth 인증 μ‹œμŠ€ν…œ ꡬ좕 : PR #8

OAuth 인증 ν”Œλ‘œμš°

  1. 🎫 인증 μ½”λ“œλ‘œ 카카였 μ•‘μ„ΈμŠ€ 토큰 λ°œκΈ‰
  2. πŸ‘€ 카카였 μ‚¬μš©μž 정보 쑰회
  3. πŸ”‘ JWT 토큰 λ°œκΈ‰

νšŒμ› 관리 κΈ°λŠ₯

  • πŸ“ νšŒμ›κ°€μž…/둜그인 톡합 ν”„λ‘œμ„ΈμŠ€
  • πŸ‘€ λ‚΄ 정보 쑰회
  • πŸšͺ λ‘œκ·Έμ•„μ›ƒ
  • ❌ νšŒμ› νƒˆν‡΄ (카카였 연동 ν•΄μ œ 포함)

2.3. 카카였 둜그인 ν…ŒμŠ€νŠΈ ν™˜κ²½ ꡬ좕 : PR #9

κ΅¬ν˜„ λ‚΄μš©

  • 🧹 DatabaseCleaner κ΅¬ν˜„
  • βœ… JUnit 5 BeforeEachCallback ν™œμš©
  • πŸ”’ SecurityContextHolderλ₯Ό ν™œμš©ν•œ 인증 ν…ŒμŠ€νŠΈ

2.4. 인증 κ΄€λ ¨ μ˜ˆμ™Έ 처리 톡일 : PR #73

κ΅¬ν˜„ λ‚΄μš©

  • πŸ”„ 인증 κ΄€λ ¨ μ˜ˆμ™Έλ₯Ό BaseException으둜 톡일
  • πŸ› οΈ μ—λŸ¬ 응닡을 BaseResponseStatus μ—΄κ±°ν˜•μœΌλ‘œ ν‘œμ€€ν™”
  • πŸ“ 토큰 만료 μ˜ˆμ™Έ 처리 둜직 κ°œμ„ 
  • 🌐 μ—λŸ¬ λ©”μ‹œμ§€ ν•œκΈ€ν™” 및 일관성 μœ μ§€

2.5. JWT 토큰 관리 κ°œμ„  : PR #104

κ΅¬ν˜„ λ‚΄μš©

  • ✨ TokenDto에 refreshTokenExpiresIn ν•„λ“œ μΆ”κ°€
  • πŸ› οΈ λ¦¬ν”„λ ˆμ‹œ 토큰에 userId 정보 포함
  • πŸ”„ RefreshTokenServiceμ—μ„œ 토큰 μ—…λ°μ΄νŠΈ 둜직 μˆ˜μ •
  • πŸ“ API λͺ…μ„Έμ„œμ™€ μ‹€μ œ κ΅¬ν˜„ μΌμΉ˜ν™”

2.6. νšŒμ› νƒˆν‡΄ ν›„ μž¬κ°€μž… 였λ₯˜ ν•΄κ²° : PR #111

κ΅¬ν˜„ λ‚΄μš©

  • πŸ”„ User 엔티티에 reactivate() λ©”μ„œλ“œ μΆ”κ°€
  • πŸ› οΈ AuthServiceμ—μ„œ νƒˆν‡΄ μ‚¬μš©μž μž¬ν™œμ„±ν™” 둜직 κ΅¬ν˜„
  • πŸ“ νšŒμ› νƒˆν‡΄ 및 μž¬κ°€μž… μ •μ±… κ°œμ„ 
  • πŸ‘₯ μ„œλΉ„μŠ€ μ ‘κ·Όμ„± ν–₯상

3. 핡심 κΈ°λŠ₯ 개발

3.1. 배달뢀 캐릭터 선택 μ‹œμŠ€ν…œ : PR #24

κ΅¬ν˜„ λ‚΄μš©

  • 🎨 배달뢀 캐릭터 μ„€μ • API
  • πŸ”— 고유 링크 생성 톡합
  • πŸ“¦ Bundle μƒνƒœ 관리 κ°œμ„ :
    1. DRAFT (초기)
    2. PUBLISHED (배달뢀 μ„€μ • & 링크 생성)

3.2. 보따리 톡합 쑰회 κΈ°λŠ₯ : PR #28

κ΅¬ν˜„ λ‚΄μš©

  • πŸ” QueryDSL 기반 데이터 쑰회
  • 🎁 μ„ λ¬Ό, 이미지, 응닡 정보 톡합 쑰회
  • ✨ Response μ—”ν‹°ν‹° κ΅¬ν˜„
  • πŸ› οΈ QueryDSL 기반 μ»€μŠ€ν…€ κ΅¬ν˜„μ²΄

3.3. 보따리 λ‹΅λ³€ μ‹œμŠ€ν…œ κ΅¬ν˜„ : PR #35

κ΅¬ν˜„ λ‚΄μš©

  • 🏷️ GiftResponseTag 관리 체계
  • πŸ“ 닀쀑 μ„ λ¬Ό λ‹΅λ³€ 처리
  • βœ… μƒνƒœ 검증:
    • λ²ˆλ“€ μƒνƒœ
    • μ„ λ¬Ό λͺ©λ‘
    • κΈ°μ‘΄ 응닡 μ—¬λΆ€
    • 응닡 μ™„λ£Œ μ—¬λΆ€

3.4. 보따리 상세 쑰회 κΈ°λŠ₯ : PR #44

κ΅¬ν˜„ λ‚΄μš©

  • 🎁 κ°œλ³„ μ„ λ¬Ό 상세 정보 쑰회
  • πŸ–ΌοΈ 썸넀일 및 이미지 λͺ©λ‘ 뢄리
  • πŸ”’ κΆŒν•œ 검증 및 μ˜ˆμ™Έ 처리

3.5. 보따리 μž‘μ„± μ™„λ£Œ κΈ°λŠ₯ : PR #45

κ΅¬ν˜„ λ‚΄μš©

  • πŸ“ DRAFT μƒνƒœ 보따리 쑰회
  • ⚑ N+1 문제 해결을 μœ„ν•œ 벌크 쑰회
  • πŸ–ΌοΈ 이미지 처리:
    • 썸넀일 뢄리
    • 이미지 λͺ©λ‘ λ§€ν•‘

3.6. μ„ λ¬Ό λ‹΅λ³€ κ²°κ³Ό 쑰회 API : PR #98

κ΅¬ν˜„ λ‚΄μš©

  • πŸ†• 링크 기반 μ„ λ¬Ό 응닡 κ²°κ³Ό 쑰회 API μΆ”κ°€
  • πŸ”“ 둜그인 없이 보따리 링크둜 κ²°κ³Ό 쑰회 κ°€λŠ₯
  • πŸ”’ COMPLETED μƒνƒœμΈ λ³΄λ”°λ¦¬λ§Œ 쑰회 κ°€λŠ₯ν•˜λ„λ‘ μ œν•œ
  • πŸ“¦ μ„ λ¬Ό 이름, 썸넀일, ꡬ맀 링크, 응닡 νƒœκ·Έ λ°˜ν™˜ κ΅¬ν˜„

3.7. 보따리 이름 μˆ˜μ • API : PR #106

κ΅¬ν˜„ λ‚΄μš©

  • πŸ†• PATCH API κ΅¬ν˜„μœΌλ‘œ νš¨μœ¨μ„± κ°œμ„ 
  • πŸ“ BundleNameUpdateRequest DTO 생성
  • πŸ› οΈ 보따리 μ΄λ¦„λ§Œ μˆ˜μ •ν•˜κΈ° μœ„ν•œ 별도 API 뢄리
  • πŸ”’ DRAFT μƒνƒœμ—μ„œλ§Œ 이름 μˆ˜μ • κ°€λŠ₯ν•˜λ„λ‘ μ œν•œ

4. κ°œμ„  및 버그 μˆ˜μ •

4.1. JWT 토큰 μ‹œμŠ€ν…œ 심측 λ¦¬νŒ©ν† λ§

4.1.1. JWT 토큰 μ•„ν‚€ν…μ²˜ κ°œμ„  : PR #101

κ΅¬ν˜„ λ‚΄μš©

  • πŸ”„ TokenDto ꡬ쑰 μ „λ©΄ 개편 및 ν‘œμ€€ν™”
  • πŸ” 토큰 ν΄λ ˆμž„ 데이터 ꡬ쑰 μ΅œμ ν™”
  • πŸ› οΈ 토큰 생성/검증 흐름 κ°œμ„ μœΌλ‘œ μ•ˆμ •μ„± 증가
  • πŸ“ API λͺ…μ„Έμ„œμ™€μ˜ 뢈일치 ν•΄μ†Œ
4.1.2. JWT ν•„ν„° 및 응닡 νƒœκ·Έ κ°œμ„  : PR #86

κ΅¬ν˜„ λ‚΄μš©

  • πŸ”’ JWT 필터에 μ„ λ¬Ό 응닡 API 경둜 μΆ”κ°€
  • 🏷️ λ³€κ²½λœ UI에 맞좰 GiftResponseTag enum κ°’ μ—…λ°μ΄νŠΈ
  • πŸ› οΈ "정말 μ΅œκ³ μ—μš”" νƒœκ·Έ μΆ”κ°€
  • πŸ› 403 Forbidden 였λ₯˜ ν•΄κ²°
4.1.3. λ¦¬ν”„λ ˆμ‹œ 토큰 μ €μž₯μ†Œ μ΅œμ ν™” : PR #102

κ΅¬ν˜„ λ‚΄μš©

  • πŸ”„ RefreshTokenRepository κ΅¬ν˜„μ²΄ μ΅œμ ν™”
  • πŸ—„οΈ 토큰 μ €μž₯ 및 검색 μ„±λŠ₯ κ°œμ„ 
  • πŸ” 토큰 쑰회 λ©”μ„œλ“œ νš¨μœ¨ν™”
  • πŸ› 토큰 쀑볡 μ €μž₯ 버그 μˆ˜μ •
4.1.4. λ¦¬ν”„λ ˆμ‹œ 토큰 μ—λŸ¬ λ‘œκΉ… κ°œμ„  : PR #90

κ΅¬ν˜„ λ‚΄μš©

  • πŸ“Š 토큰 κ΄€λ ¨ μ—λŸ¬ λ‘œκΉ… μ‹œμŠ€ν…œ ꡬ좕
  • πŸ” 디버깅 κ°€λŠ₯μ„± ν–₯상
  • πŸ› λ¦¬ν”„λ ˆμ‹œ 토큰 μ—λŸ¬ 원인 좔적 용이
  • πŸ“ 개발 및 운영 ν™˜κ²½μ—μ„œμ˜ 문제 ν•΄κ²° 지원
4.1.5. 토큰 만료 μ‹œκ°„ μ„€μ • μ΅œμ ν™” : PR #109

κ΅¬ν˜„ λ‚΄μš©

  • ⏱️ μ•‘μ„ΈμŠ€ 토큰 및 λ¦¬ν”„λ ˆμ‹œ 토큰 적정 μ‹œκ°„ μ„€μ •
  • πŸ”„ μ„Έμ…˜ 관리 μ΅œμ ν™”
  • πŸ› οΈ μ‚¬μš©μž 둜그인 μƒνƒœ μœ μ§€ κ°œμ„ 
  • πŸ”’ 토큰 λ³΄μ•ˆμ„± κ°•ν™”

4.2. 보따리 및 UI κ°œμ„ 

4.2.1. 보따리 λ””μžμΈ μ‹œμŠ€ν…œ κ°œμ„  : PR #47

κ΅¬ν˜„ λ‚΄μš©

  • 🎨 design_type ν•„λ“œ μΆ”κ°€
  • πŸ–ŒοΈ 배달뢀 SVG 변경을 μœ„ν•œ 색상 정보 제곡
4.2.2. 이미지 처리 둜직 κ°œμ„  : PR #56

κ΅¬ν˜„ λ‚΄μš©

  • 🏞️ 첫 번째 이미지λ₯Ό μΈλ„€μΌλ‘œ μ‚¬μš©
  • πŸ”„ 이미지 URL 처리 방식 톡일
  • πŸ“ API 응닡 ν˜•μ‹ 일관성 확보
4.2.3. 보따리 μ‹λ³„μž μ‹œμŠ€ν…œ κ°œμ„  : PR #57

κ΅¬ν˜„ λ‚΄μš©

  • πŸ†” 보따리 쑰회 API 응닡에 ID 포함
  • πŸ”„ λ‹΅λ³€ μ €μž₯ API 연동 κ°œμ„ 

4.3. API λ³΄μ•ˆ 및 ν˜Έν™˜μ„± κ°œμ„ 

4.3.1. PATCH λ©”μ†Œλ“œ CORS μ„€μ • : PR #107

κ΅¬ν˜„ λ‚΄μš©

  • πŸ”’ SecurityConfig에 PATCH λ©”μ†Œλ“œ ν—ˆμš© μ„€μ • μΆ”κ°€
  • πŸ› οΈ CORS κ΄€λ ¨ μ„€μ • 보강
  • πŸ› 보따리 이름 μˆ˜μ • API 403 μ—λŸ¬ ν•΄κ²°
  • 🌐 ν”„λ‘ νŠΈμ—”λ“œμ™€μ˜ μ›ν™œν•œ 톡신 지원
4.3.2. Bundle μ΅œμ†Œ μ„ λ¬Ό 개수 μš”κ΅¬μ‚¬ν•­ λ³€κ²½ : PR #105

κ΅¬ν˜„ λ‚΄μš©

  • πŸ”„ μ„ λ¬Ό μ΅œμ†Œ 개수 μš”κ΅¬μ‚¬ν•­μ„ 1개둜 λ³€κ²½
  • πŸ› οΈ BundleRequest DTO 검증 둜직 μˆ˜μ •
  • πŸ“ μœ νš¨μ„± 검사 λ©”μ‹œμ§€ μ—…λ°μ΄νŠΈ
  • πŸ‘₯ μ‚¬μš©μž κ²½ν—˜ κ°œμ„ 

4.4. ν…ŒμŠ€νŠΈ μ½”λ“œ μ•ˆμ •μ„± ν–₯상

4.4.1. 카카였 ν΄λΌμ΄μ–ΈνŠΈ ν…ŒμŠ€νŠΈ κ°œμ„  : PR #97

κ΅¬ν˜„ λ‚΄μš©

  • πŸ”„ μ˜ˆμ™Έ νƒ€μž…μ„ IllegalStateExceptionμ—μ„œ BaseException으둜 λ³€κ²½
  • πŸ› οΈ ν…ŒμŠ€νŠΈ 둜직과 μ‹€μ œ κ΅¬ν˜„ μΌμΉ˜ν™”
  • βœ… BaseResponseStatus 검증 둜직 μΆ”κ°€
  • πŸ› ν…ŒμŠ€νŠΈ μ‹€νŒ¨ 문제 ν•΄κ²°
4.4.2. λ‹΅λ³€ μ €μž₯ ν…ŒμŠ€νŠΈ μˆ˜μ • : PR #96

κ΅¬ν˜„ λ‚΄μš©

  • πŸ”„ ResponseServiceTest 클래슀 μˆ˜μ •
  • πŸ› οΈ Bundle 엔티티와 ν…ŒμŠ€νŠΈ μ½”λ“œ μ‚¬μ΄μ˜ 뢈일치 ν•΄κ²°
  • βœ… λ ˆν¬μ§€ν† λ¦¬ λ©”μ†Œλ“œ 이름 μΌμΉ˜ν™”
  • πŸ› ν…ŒμŠ€νŠΈ μ‹€νŒ¨ 원인 ν•΄κ²°

4.5. μ½”λ“œ ν’ˆμ§ˆ 및 μœ μ§€λ³΄μˆ˜μ„± κ°œμ„ 

4.5.1. 넀이밍 μ»¨λ²€μ…˜ ν‘œμ€€ν™” : PR #100

κ΅¬ν˜„ λ‚΄μš©

  • πŸ”„ μŠ€λ„€μ΄ν¬ μΌ€μ΄μŠ€μ—μ„œ 카멜 μΌ€μ΄μŠ€λ‘œ λ³€κ²½
  • πŸ› οΈ Java μ½”λ“œ μŠ€νƒ€μΌ μ»¨λ²€μ…˜ 적용
  • πŸ“ μΌκ΄€λœ μ½”λ“œ μŠ€νƒ€μΌ μ •μ°©
  • πŸ› λ„€μ΄λ°μœΌλ‘œ μΈν•œ 였λ₯˜ μˆ˜μ •
4.5.2. ResponseBundleDto ν•„λ“œ 넀이밍 κ°œμ„  : PR #87

κ΅¬ν˜„ λ‚΄μš©

  • πŸ”„ delivery_character_type β†’ deliveryCharacterType λ“±μœΌλ‘œ λ³€ν™˜
  • πŸ› οΈ Java 넀이밍 μ»¨λ²€μ…˜ μ€€μˆ˜
  • πŸ“ ν”„λ‘ νŠΈμ—”λ“œμ™€μ˜ μΈν„°νŽ˜μ΄μŠ€ 일관성 μœ μ§€
  • 🧰 μ½”λ“œ 가독성 ν–₯상
4.5.3. SaveGiftResponsesRequest 검증 둜직 뢄리 : PR #88

κ΅¬ν˜„ λ‚΄μš©

  • πŸ”„ bundleId와 링크(UUID)의 κ°œλ… λͺ…ν™•νžˆ 뢄리
  • πŸ› οΈ API μš”μ²­ 및 μ„œλΉ„μŠ€ 둜직 κ°œμ„ 
  • πŸ“ 검증 둜직 λΆ„λ¦¬λ‘œ μ½”λ“œ ν’ˆμ§ˆ ν–₯상
  • 🧰 μœ μ§€λ³΄μˆ˜μ„± κ°œμ„ 

πŸ” κ°μ‚¬ν•©λ‹ˆλ‹€.

User Flow

About

🎁 IT μ—°ν•© 동아리 DND 12κΈ° - μ„ λ¬Ό μΆ”μ²œ μ„œλΉ„μŠ€ Pictory ν”„λ‘œμ νŠΈ

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages