Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
259 commits
Select commit Hold shift + click to select a range
ea476ff
init: 깃이그노어 설정
SiHejt Oct 15, 2025
46b63ce
Merge remote-tracking branch 'origin/main'
SiHejt Oct 15, 2025
5564a85
init: 깃이그노어 설정
SiHejt Oct 15, 2025
55e8f0c
feat 303: 리뷰 조회, 등록, 삭제
SiHejt Oct 16, 2025
2baf4b3
test 303: 테스트 코드 수정
SiHejt Oct 16, 2025
1e8fa2c
community201_초기세팅(#5)
Boojw Oct 16, 2025
29e3fe3
rename 303: ReviewController 오탈자 수정
SiHejt Oct 17, 2025
b1408b8
refactor 303: 별점 관리를 Integer 로 변경하고 dto에서 값 검증
SiHejt Oct 17, 2025
c5f0c33
refactor 303: 리뷰 조회 시 이미지 로딩 N+1 문제 해결
SiHejt Oct 17, 2025
5cac14a
test 303: 테스트 코드 수정
SiHejt Oct 17, 2025
f99f7b9
feat 303: 리뷰 이미지 등록시 최대 개수제한 10개
SiHejt Oct 17, 2025
07e1621
feat 303: 리뷰 이미지 순서 추가
SiHejt Oct 17, 2025
5ea34c8
feat community202 : 게시판기능(#5)
Boojw Oct 17, 2025
2cbb7a3
feat 302: 판매 글 등록, 수정 #6
dpwls8984 Oct 17, 2025
6e9e614
feat 501: 도안 생성 및 pdf 변환 기능 구현
hznnoy Oct 17, 2025
e1417ff
feat 203 : api, postid, getPost 수정(#5)
Boojw Oct 17, 2025
e9d68ef
refactor 501: DesignRequest/Response를 record로 리팩터링 및 DesignState 위치 변경
hznnoy Oct 18, 2025
e34b029
refactor 501: DesignResponse를 record로 리팩터링
hznnoy Oct 18, 2025
124c24d
feat 502: 내 도안 목록 조회, 내 도안 삭제
hznnoy Oct 18, 2025
7f66924
feat 204 : DTO record, Response/Request, 게시글 검색 수정(#5)
Boojw Oct 18, 2025
cae5700
feat 302: 판매 글 삭제 #6
dpwls8984 Oct 18, 2025
b80d9bb
refactor 302: 피드백 기반 수정 #6
dpwls8984 Oct 18, 2025
e147dca
feat 205 : 댓글, 대댓글 기능 parent_id 컬럼/FK/인덱스 및 트리 응답 추가(#5)
Boojw Oct 19, 2025
ac33817
env.properties 깃 트래킹 취소
No-366 Oct 19, 2025
1c26d39
yml 파일 설정, 라이브러리 추가 ( 이 커밋이 시작점임 )
No-366 Oct 19, 2025
6f9a1e8
OAuth관련 기본 세팅
No-366 Oct 19, 2025
116d1b2
feat 301: 주문 정보 저장, 재고 확인, 재고 차감
dpwls8984 Oct 19, 2025
378c244
feat 301: 주문 정보 저장, 재고 확인, 재고 차감 #15
dpwls8984 Oct 19, 2025
0c891ee
구글 로그인시 내 서비스로 리디랙션, 사용자 정보 한글 표시(id,email,name)
No-366 Oct 19, 2025
5bf151b
ch.5 : Redis를 이용한 Refresh Token 관리
No-366 Oct 19, 2025
e5e55ff
테스트용 컨트롤러 커밋에 포함
No-366 Oct 19, 2025
ebff8fb
토큰 갱신 API
No-366 Oct 19, 2025
1235f16
feat 303: 리뷰 조회, 등록, 삭제 #2
dpwls8984 Oct 20, 2025
09a6aa4
Merge branch 'dev' into feature/design
dpwls8984 Oct 20, 2025
06ac8a2
도안 생성 + 내 도안 조회 / 삭제
dpwls8984 Oct 20, 2025
75ce395
Merge branch 'dev' into feature/product/order
dpwls8984 Oct 20, 2025
45ac36a
feat 302: 판매 글 등록, 수정, 삭제 / feat 301: 주문 정보 저장, 재고 확인, 재고 차감
dpwls8984 Oct 20, 2025
0fd7ebc
Merge branch 'dev' into feature/community
dpwls8984 Oct 20, 2025
ceea095
feat 200: Feature/community
dpwls8984 Oct 20, 2025
e1c50db
userId 의 타입 UUID -> Long 으로 변경
No-366 Oct 20, 2025
4aab57e
refactor: uuid -> long
dpwls8984 Oct 20, 2025
1e53891
refactor: uuid -> long
dpwls8984 Oct 20, 2025
c5cf749
JWT 인증 필터 구현 추가
No-366 Oct 20, 2025
c2dca0c
test 303: userId UUID -> Long
SiHejt Oct 20, 2025
0e12dc2
refactor: reviewService 경로 수정
SiHejt Oct 20, 2025
4af3231
dev 브랜치와 병합
No-366 Oct 20, 2025
4f8fb22
dev 브랜치와 병합
No-366 Oct 20, 2025
19b4247
Merge pull request #18 from prgrms-be-devcourse/feature/socialLogin
dpwls8984 Oct 20, 2025
3b8a0f5
Revert "Feature/social login"
dpwls8984 Oct 20, 2025
1c65c56
Merge pull request #19 from prgrms-be-devcourse/revert-18-feature/soc…
dpwls8984 Oct 20, 2025
188a011
Revert "Merge pull request #19 from prgrms-be-devcourse/revert-18-fea…
No-366 Oct 20, 2025
40f9bdf
Revert "Revert "Feature/social login""
No-366 Oct 20, 2025
32cd265
refactor 303: 파일 이름, 확장자을 공통 로직을 통해 검증하도록 수정
SiHejt Oct 20, 2025
9880e8f
feat 100: 중복된 enum 수정
No-366 Oct 20, 2025
c9eac69
feat 100: 중복된 enum 수정
dpwls8984 Oct 20, 2025
5369d46
Merge branch 'dev' of https://github.com/prgrms-be-devcourse/NBE7-9-2…
SiHejt Oct 20, 2025
fa980b8
refactor 303: dto 필요값 메세지 수정
SiHejt Oct 20, 2025
b4c10e6
feat 303: 리뷰 조회 시 페이징 처리
SiHejt Oct 20, 2025
1bc5be5
feat 100: userController 추가
No-366 Oct 20, 2025
727f50e
Merge branch 'feature/socialLogin_2' of https://github.com/prgrms-be-…
Boojw Oct 20, 2025
cc433dc
feat 100: userController 추가
dpwls8984 Oct 20, 2025
7bd265f
Merge branch 'dev' of https://github.com/prgrms-be-devcourse/NBE7-9-2…
Boojw Oct 20, 2025
73f878a
feat 303: 리뷰 등록/삭제 user 인증인가 추가
SiHejt Oct 20, 2025
3c83e9b
test 303: 인증인가 통합 테스트 코드 추가
SiHejt Oct 20, 2025
3a79a32
Merge branch 'dev' of https://github.com/prgrms-be-devcourse/NBE7-9-2…
SiHejt Oct 20, 2025
2151dc6
feat 305: 상품 목록 조회 + 홈 인기 Top5 조회 기능 구현
hznnoy Oct 20, 2025
f5a435c
refactor 301, 302: AuthenticationPrincipal 사용
dpwls8984 Oct 20, 2025
8805ed8
feat 100: API 경로 문서와 동일하게 수정, RT 토큰 콘솔에 출력
No-366 Oct 20, 2025
50baa0c
feat 100: Swagger 도입
No-366 Oct 20, 2025
8f701c5
Merge branch 'dev' of https://github.com/prgrms-be-devcourse/NBE7-9-2…
No-366 Oct 20, 2025
cc61a9b
feat 302: 판매 글 soft delete
dpwls8984 Oct 20, 2025
164a9bb
feat 302: 판매 글 soft delete - 판매 중지->판매중
dpwls8984 Oct 20, 2025
62f1e56
feat 201 : 커뮤니티
Boojw Oct 21, 2025
d048de6
feat : docker-compose.yml 에 redis, rabbitmq 추가
SiHejt Oct 21, 2025
01f4c99
feat : docker-compose.yml 에 redis, rabbitmq 추가
SiHejt Oct 21, 2025
b63ca90
feat 304: 찜 등록, 취소 기능 #9
SiHejt Oct 18, 2025
ff044f8
test 304: 찜 등록, 취소 테스트 코드 작성 #9
SiHejt Oct 18, 2025
8756409
feat 304 : userId uuid -> long
SiHejt Oct 21, 2025
7d73b8f
feat 304 : userId uuid -> long
SiHejt Oct 21, 2025
cfa4ec4
Remove duplicate deleteLike call in ProductLikeController
SiHejt Oct 21, 2025
f2635bc
feat 304: 찜 등록, 취소 #9
dpwls8984 Oct 21, 2025
59ba95b
feat 100 : 소셜로그인 // API 경로 수정, 스웨거 도입, 리프레시토큰 콘솔에 출력
dpwls8984 Oct 21, 2025
ab08eba
feat 303 : ReviewCreateRequest request로 바로 바인딩
SiHejt Oct 21, 2025
4df87b2
feat 303 : 컨트롤러에서 userId 대신 user 객체를 넘기도록 수정
SiHejt Oct 21, 2025
7ba3c71
feat : docker-compose.yml 에 redis, rabbitmq 추가
dpwls8984 Oct 21, 2025
25a6e8d
Merge branch 'dev' into feature/product/review
dpwls8984 Oct 21, 2025
91216c0
feat 303: 리뷰 등록, 삭제
dpwls8984 Oct 21, 2025
84bb268
Merge branch 'dev' into feature/product/view
dpwls8984 Oct 21, 2025
087aa9e
feat 305: 상품 목록 조회 + 홈 인기 Top5 조회 기능 구현
dpwls8984 Oct 21, 2025
d562f51
feat 303 : 리뷰 등록/삭제 시 필요한 RabbitConfig 추가
SiHejt Oct 21, 2025
3207764
Merge remote-tracking branch 'origin/dev' into feature/community2
Boojw Oct 21, 2025
427ee49
feat 501: 기존 PDF 업로드 기능 추가 및 userId 인증 로직 리팩터링
hznnoy Oct 21, 2025
f4585b5
feat 302: 상품 이미지 등록 추가
dpwls8984 Oct 21, 2025
b0341be
refactor 301, 302: AuthenticationPrincipal 사용
dpwls8984 Oct 20, 2025
d9e68b1
feat 302: 판매 글 soft delete
dpwls8984 Oct 20, 2025
4a4a2c2
feat 302: 판매 글 soft delete - 판매 중지->판매중
dpwls8984 Oct 20, 2025
fda8eac
feat : front 뼈대 추가
SiHejt Oct 21, 2025
51d0d04
refactor 302: 상품 상세 페이지는 order 브랜치에서 구현할 것
dpwls8984 Oct 21, 2025
a28fba2
feat : backend WebMvcConfig 추가
SiHejt Oct 21, 2025
886c896
refactor 305: ProductListResponse를 record로 수정
hznnoy Oct 21, 2025
5917c3a
refactor 305: ProductListResponse를 record로 수정
hznnoy Oct 21, 2025
a2cae0d
Merge branch 'dev' into feature/product/sale
dpwls8984 Oct 21, 2025
4d29fad
fix 302: errorcode 수정
dpwls8984 Oct 21, 2025
574f268
feat 302: 이미지 등록, 판매 관련 테스트
dpwls8984 Oct 21, 2025
5d7dd55
feat 401: 판매자 상품 조회 api 추가
No-366 Oct 21, 2025
b4d02de
머지 충돌 해결
dpwls8984 Oct 21, 2025
108aa11
fix 302: conflic 메세지 삭제
dpwls8984 Oct 21, 2025
3633604
feat 301: 상품 상세 페이지
dpwls8984 Oct 21, 2025
a26d24e
feat 100 : AT, RT 클라이언트 저장 구현 (In-Memory, Http-Only Cookie)
No-366 Oct 21, 2025
7cb9100
feat : front
dpwls8984 Oct 22, 2025
e5c3767
Merge remote-tracking branch 'team2/dev' into backup
No-366 Oct 22, 2025
32fb624
feat 304: 찜 기능 Redis 캐시 + RabbitMQ + DB 멱등 처리 및 DLQ, Consumer 안정성 강화
SiHejt Oct 22, 2025
5c7b40b
feat 100 : [백엔드] -> 프론트에서 로그인 기능 구현(OAuth2.0,AT,RT) 가능하도록 구조 변경
No-366 Oct 22, 2025
6e29166
feat 100 : [프론트엔드] -> 로그인 기능 구현(OAuth2.0,AT,RT 사용가능) // 메인페이지에서 로그인버튼…
No-366 Oct 22, 2025
b72c29e
feat 100 : [프론트엔드] -> 로그인 기능 구현(OAuth2.0,AT,RT 사용가능) // 메인페이지에서 로그인버튼…
No-366 Oct 22, 2025
966a96b
feat 100 : 토큰 저장 로직 추가, 프론트엔드 로그인 기능 구현
dpwls8984 Oct 22, 2025
63bd20e
feat 205 : 커뮤니티(게시글,댓글), 마이페이지 조회기능 추가
Boojw Oct 22, 2025
f751afc
Merge branch 'dev' into feature/product/order
dpwls8984 Oct 22, 2025
6a0c321
feat 302: 판매 글 soft delete
dpwls8984 Oct 22, 2025
55a02e0
Merge branch 'dev' into feature/product/order
dpwls8984 Oct 22, 2025
b506e00
feat 301: 상품 상세 페이지 구현
dpwls8984 Oct 22, 2025
486bf6d
feat 100 :
No-366 Oct 22, 2025
542ee9e
feat 100 : [프론트엔드] 마이페이지 구현 미완
No-366 Oct 22, 2025
81f9324
Merge branch 'dev' of https://github.com/prgrms-be-devcourse/NBE7-9-2…
No-366 Oct 22, 2025
7831075
feat 100 : 판매 상품 조회 api
No-366 Oct 22, 2025
f1043b1
feat 100: 판매 상품 조회 api
dpwls8984 Oct 22, 2025
d958c1e
Merge branch 'dev' of https://github.com/prgrms-be-devcourse/NBE7-9-2…
Boojw Oct 22, 2025
13865b6
Merge branch 'dev' into feature/design
hznnoy Oct 22, 2025
b79beaf
feat 501: 기존 PDF 업로드 기능 추가 및 userId 인증 로직 리팩터링
dpwls8984 Oct 22, 2025
b24b203
feat 프론트엔드 : axios 추가
No-366 Oct 22, 2025
01b07a7
refactor 304: 찜 기능 수정
dpwls8984 Oct 22, 2025
90733d5
refactor 305: ProductListResponse를 record로 수정
dpwls8984 Oct 22, 2025
6b022c9
Merge pull request #40 from prgrms-be-devcourse/feature/socialLogin_2
SiHejt Oct 22, 2025
c0377e2
feat 206 : config conflicts 문제 수정(#5)
Boojw Oct 22, 2025
3f070e7
refactor: 누락된 ErrorCode 추가
SiHejt Oct 22, 2025
c92e794
refactor: 누락된 ErrorCode 추가
SiHejt Oct 22, 2025
719e630
feat 207 : config conflicts 문제 수정(#5)
Boojw Oct 22, 2025
68148c4
feat 208 : config conflicts 문제 수정(#5)
Boojw Oct 22, 2025
ec726e7
Merge branch 'dev' of https://github.com/prgrms-be-devcourse/NBE7-9-2…
Boojw Oct 22, 2025
bcb6073
feat 301: 이메일 전송
dpwls8984 Oct 22, 2025
285a4bd
feat 301: 이메일 전송, redis lock
dpwls8984 Oct 22, 2025
4372ac7
feat 301: 이메일 전송
dpwls8984 Oct 22, 2025
4981f9b
feat 209 : config conflicts, test 수정(#5)
Boojw Oct 22, 2025
f580c1f
feat 210 : config 원래대로
Boojw Oct 22, 2025
3fb1c26
feat 211 : 컨트롤러 수정
Boojw Oct 23, 2025
ef135c6
feat 203: 커뮤니티 수정, 마이페이지 조회 기능 추가
dpwls8984 Oct 23, 2025
2d94e71
feat 301: 이메일 전송
dpwls8984 Oct 22, 2025
e6780ea
feat 301: 이메일 전송, redis lock
dpwls8984 Oct 23, 2025
8170fbd
feat 301: 이메일 전송
dpwls8984 Oct 22, 2025
b563100
feat: 장바구니, 주문내역, 상품등록/수정, 제품상
dpwls8984 Oct 23, 2025
d5fad00
Merge pull request #42 from prgrms-be-devcourse/frontend/feature/product
SiHejt Oct 23, 2025
edc3ad7
feat: 상품 목록 및 도안 제작/목록 페이지
hznnoy Oct 23, 2025
0eda8a2
feat 212 : 내가 작성한 조회 수정(이미지,날짜)(#5)
Boojw Oct 23, 2025
c0ee311
refactor: 도안 목록의 판매등록 버튼을 다시 판매하기로 수정 및 상태 변경
hznnoy Oct 23, 2025
d067ed0
feat: 상품 목록 및 도안 제작/목록 페이지
dpwls8984 Oct 23, 2025
a2b62c8
feat 프론트엔드 : 판매자 스토어 구현 (80%)
No-366 Oct 23, 2025
d61ab86
마이페이지 : 내가 작성한 리뷰 조회 수정(이미지,날짜)(#5)
dpwls8984 Oct 23, 2025
600eed1
Merge branch 'dev' into feature/product/order
dpwls8984 Oct 23, 2025
4d3e146
Merge pull request #46 from prgrms-be-devcourse/feature/product/order
hznnoy Oct 23, 2025
0730f9f
feat 프론트엔드 : 판매자 스토어 구현 (80%)
No-366 Oct 23, 2025
ebaf2bc
Merge branch 'dev' into feature/SellerStore
No-366 Oct 23, 2025
16fe21a
feat: front 리뷰, 찜 추가
SiHejt Oct 23, 2025
e61ebdb
feat 프론트엔드: 판매자스토어
No-366 Oct 23, 2025
f94c1b0
Merge branch 'feature/SellerStore' of https://github.com/prgrms-be-de…
No-366 Oct 23, 2025
d9ac345
feat: front 리뷰, 찜 추가
dpwls8984 Oct 23, 2025
e65d6f6
feat 판매자 스토어 구현
dpwls8984 Oct 23, 2025
2c3ecff
refactor: 찜 목록 규격 통일
SiHejt Oct 23, 2025
70ad517
refactor: 내 리뷰 목록 조회 + 백엔드 연동(프론트만 완료)
SiHejt Oct 23, 2025
9680401
feat 306: 토스 api 연동 - 결제 승인, 취소, 조회
hznnoy Oct 23, 2025
9fa21a0
feat 301: Redisson -> Lettuce
dpwls8984 Oct 23, 2025
40acd4a
fix 301: await 10
dpwls8984 Oct 23, 2025
5a3f466
fix 301: application-test 복원
dpwls8984 Oct 23, 2025
5b9aedf
feat 213 : 백엔드 코드 수정, 마무리(#5)
Boojw Oct 24, 2025
afcb303
Merge pull request #49 from prgrms-be-devcourse/feature/front-like
hznnoy Oct 24, 2025
c962893
feat 프론트엔드: 판매자스토어 페이지네이션 보완
No-366 Oct 24, 2025
a298b71
refactor: 찜 삭제 백엔드 수정, 프론트 연동 완료
SiHejt Oct 24, 2025
49a06c3
refactor: 찜 삭제 백엔드 수정, 프론트 연동 완료
SiHejt Oct 24, 2025
f8272fe
feat 214 : 백엔드 코드 수정, 마무리 2(#5)
Boojw Oct 24, 2025
58df9d2
refactor: 리뷰 등록시 받아오는 상품정보 관련 백 로직 추가
SiHejt Oct 24, 2025
52d1d02
refactor: 리뷰 등록 프론트 연동
SiHejt Oct 24, 2025
10c5852
refactor: 리뷰 등록시 이미지 데베 저장
SiHejt Oct 24, 2025
64a4de8
feat 301: 락의 대기 시간 2초 설정
dpwls8984 Oct 24, 2025
6ef45de
refactor: 리뷰 조회시 리뷰이미지 제대로 보임
SiHejt Oct 24, 2025
3c33e6a
refactor: 상품 상세 리뷰 연동
SiHejt Oct 24, 2025
10134cd
refactor: 상품 상세 찜 등록/삭제
SiHejt Oct 24, 2025
9afb0a4
Merge branch 'dev' of https://github.com/prgrms-be-devcourse/NBE7-9-2…
SiHejt Oct 24, 2025
d1ba1f8
feat 305: 프론트엔드 : 상품 조회 API 연동 및 공통 컴포넌트 리팩토링
hznnoy Oct 24, 2025
a23fedd
Merge pull request #50 from prgrms-be-devcourse/feature/product/pay
SiHejt Oct 24, 2025
7c04a3e
Merge pull request #53 from prgrms-be-devcourse/feature/front-like
hznnoy Oct 24, 2025
dd40460
Merge pull request #51 from prgrms-be-devcourse/feature/product/order
SiHejt Oct 24, 2025
16b3304
Merge branch 'dev' into feature/community
SiHejt Oct 24, 2025
fa3fb2f
Merge pull request #52 from prgrms-be-devcourse/feature/community
SiHejt Oct 24, 2025
2d5e582
Merge pull request #54 from prgrms-be-devcourse/feature/front/product…
SiHejt Oct 24, 2025
7bf3ef7
feat 305: 홈화면 인기top5 상품 조회 및 프론트 상품 카드 레이아웃 통일
hznnoy Oct 24, 2025
943c2d6
feat 305: 홈화면 인기top5 상품 조회 및 프론트 상품 카드 레이아웃 통일
dpwls8984 Oct 24, 2025
4dba151
refactor: 찜한 상품인지 판별
SiHejt Oct 24, 2025
05d9480
Feature/like
dpwls8984 Oct 24, 2025
8754f7f
refactor: 보상 트랜잭션 로직 추가
SiHejt Oct 24, 2025
7e115ec
feat 301: frontend, 제품 상세 페이지
dpwls8984 Oct 24, 2025
d052df7
Merge pull request #57 from prgrms-be-devcourse/feature/product/order
SiHejt Oct 24, 2025
b39bc9d
Merge branch 'dev' of https://github.com/prgrms-be-devcourse/NBE7-9-2…
SiHejt Oct 24, 2025
adc01c1
refactor: 상품 목록 로컬 개수 카운트
SiHejt Oct 24, 2025
e923560
refactor: 상품 상세 찜 상태 미반영 해결
SiHejt Oct 24, 2025
a3b7e4b
refactor: 찜 등록/삭제 시 products 테이블의 like_count 가 변경되도록 수정
SiHejt Oct 24, 2025
a55303e
feat 501: 도안 생성, 조회 프론트 연동 및 몇 가지 기능 추가
hznnoy Oct 24, 2025
2ba49f4
feat 301: 장바구니 및 결제 페이지
dpwls8984 Oct 24, 2025
0f01c76
Merge pull request #62 from prgrms-be-devcourse/feature/product/order
hznnoy Oct 24, 2025
0a9dffe
Merge branch 'dev' into feature/front-favorite
dpwls8984 Oct 24, 2025
71fce3b
Feature/front favorite
dpwls8984 Oct 24, 2025
654aeb6
feat 306: 토스 api 연동
hznnoy Oct 24, 2025
b00b85f
feat 프론트엔드: 회원탈퇴 기능, AT 유효시간 만료시 자동으로 재발급
dpwls8984 Oct 24, 2025
a08449e
feat 501: 도안 생성, 조회 프론트 연동 및 몇 가지 기능 추가
dpwls8984 Oct 24, 2025
cb8d4c7
feat 306: 토스 api 연동
dpwls8984 Oct 24, 2025
9922bee
refactor: 상품 상세 페이지 리뷰탭 보이기/찜 제대로
SiHejt Oct 24, 2025
6038e56
Merge branch 'dev' of https://github.com/prgrms-be-devcourse/NBE7-9-2…
SiHejt Oct 24, 2025
bf6fc3b
refactor: 리뷰가 없을때 무한 조회하는 로직 수정
SiHejt Oct 24, 2025
1fa4f7e
Merge pull request #64 from prgrms-be-devcourse/feature/front-favorite
No-366 Oct 24, 2025
94df5e4
refactor: 상품상세 찜 제대로 보이기
SiHejt Oct 24, 2025
dc33efa
Merge pull request #65 from prgrms-be-devcourse/feature/front-favorite
No-366 Oct 24, 2025
061752a
fix 306: orderId관련 오류 해결
hznnoy Oct 24, 2025
52604a9
feat 402: 마이페이지 주문내역 조회, 리뷰 등록 여부 로직
dpwls8984 Oct 24, 2025
9b84126
feat: 상품 등록 프론트
dpwls8984 Oct 26, 2025
477eda5
fix 306: orderId관련 오류 해결
dpwls8984 Oct 26, 2025
4ba0ce4
feat 402: 마이페이지 주문내역 조회, 리뷰 등록 여부 로직
dpwls8984 Oct 24, 2025
0b0d28f
feat: 상품 등록 프론트
dpwls8984 Oct 26, 2025
4a11cde
판매 등록, 판매 수정 페이지
dpwls8984 Oct 26, 2025
34d30c7
판매 등록, 판매 수정 페이지
dpwls8984 Oct 26, 2025
52030a8
Merge pull request #67 from prgrms-be-devcourse/front/feature/product…
hznnoy Oct 26, 2025
180486b
fix: 장바구니 수정
dpwls8984 Oct 26, 2025
35aaa51
fix: 버그 수정
hznnoy Oct 26, 2025
7a76070
fix: 버그 수정
dpwls8984 Oct 26, 2025
e5f157a
Merge branch 'dev' into front/feature/product/sale
dpwls8984 Oct 27, 2025
b53a2e8
Merge pull request #69 from prgrms-be-devcourse/front/feature/product…
SiHejt Oct 27, 2025
1c88b0d
refactor: 마이 페이지 userId 숨기기
SiHejt Oct 27, 2025
80b3d9b
Merge pull request #71 from prgrms-be-devcourse/dev
SiHejt Oct 27, 2025
afa03b1
README
dpwls8984 Oct 27, 2025
b089c01
Merge pull request #72 from prgrms-be-devcourse/dpwls8984-patch-1
hznnoy Oct 27, 2025
59b8080
Update testing tools in README
dpwls8984 Oct 27, 2025
9826894
docs: Update README
hznnoy Oct 27, 2025
c7dc763
Merge pull request #73 from prgrms-be-devcourse/hznnoy-patch-1
hznnoy Oct 27, 2025
5ef8fcc
이미지
dpwls8984 Oct 27, 2025
7251b1c
Merge branch 'main' into front/feature/product/sale
dpwls8984 Oct 27, 2025
cc50cb9
이미지
dpwls8984 Oct 27, 2025
c9bc8bd
Revert "이미지"
dpwls8984 Oct 27, 2025
7a9c6f8
Merge pull request #75 from prgrms-be-devcourse/revert-74-front/featu…
dpwls8984 Oct 27, 2025
4a54011
feat 402: 마이페이지 글,댓글조회
hznnoy Oct 27, 2025
ffa5edf
feat 200: 커뮤니티 글 목록 조회
hznnoy Oct 27, 2025
d5c9562
Merge pull request #76 from prgrms-be-devcourse/feature/frontend/mypage
dpwls8984 Oct 27, 2025
2cb0961
Merge pull request #77 from prgrms-be-devcourse/dev
dpwls8984 Oct 27, 2025
ec147b7
dev 최신사항 반영
dpwls8984 Oct 30, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
13 changes: 13 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -35,3 +35,16 @@ out/

### VS Code ###
.vscode/

### db ###
*.mv.db
*.trace.db
*.sql

### env ###
/backend/.env.properties
# env files (all environments)
.env
backend/.env.properties
*.env
.env.*
308 changes: 308 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,308 @@
# 🧶 Knitly - Online Knitting Pattern & Community Platform

> 취미로 뜨개질을 즐기는 사람들이 자유롭게 도안을 제작하고 판매하며,
> 서로의 창작물을 공유할 수 있는 커뮤니티 기반 플랫폼입니다.
> 단순한 도안 판매를 넘어, 제작자와 소비자가 함께 성장하는 창작 생태계를 지향합니다.
---
## ✨ 프로젝트 개요

* **프로젝트명:** Knitly
* **주제:** 뜨개질 도안 판매 및 커뮤니티 서비스
* **주제 선정 이유:**
“취미로 뜨개질을 하는 사람들이 자유롭게 도안을 제작하고 공유할 수 있는 플랫폼이 있으면 좋겠다는 아이디어에서 출발하였습니다.”
* **개발 목표:**

* 캐싱과 락을 통한 **성능 향상 및 데이터 일관성 확보**
* 서비스 간 **데이터 흐름 및 비동기 처리 구현**
* **Redis 기반**의 인기순 조회, 동시성 제어, 찜 기능 관리
* **외부 API 연동** (토스페이먼츠, OAuth 2.0, PDF 변환 등)
* **예외 처리 강화 및 테스트 코드 검증**
* 전체 서비스의 **안정성 및 유지보수성 확보**

---

## 💻 기술적 특징

| 분류 | 기술 스택 |
| ------------------ | ------------------------------------------------------- |
| **Backend** | Spring Boot 3.5.x, Java 17, JPA(Hibernate), MySQL |
| **Infra** | AWS EC2, Docker, Redis, Nginx |
| **API** | OAuth 2.0 (Google Login), Toss Payments API, Swagger UI |
| **DevOps** | GitHub Actions (CI/CD), Docker Compose |
| **Test & Monitor** | JUnit5, MockMvc, Prometheus, Jmeter, NGrinder |
| **Tooling** | IntelliJ, Postman, DBeaver, Slack, Notion |

<img width="500" height="600" alt="아키텍처 drawio" src="https://github.com/user-attachments/assets/15f29ed1-f7f1-4ad3-8b0f-ef4a361c8959" />

---

## 🧩 주요 기능 요약

| 구분 | 기능 |
| -------------- | -------------------------------------------- |
| **회원가입 / 로그인** | 구글 OAuth 2.0 로그인, JWT 기반 인증/인가 |
| **도안 제작** | 10x10 격자(Grid) 기반 UI에서 도안 제작 → PDF 변환 저장 |
| **상품 판매** | 제작한 도안 또는 PDF 업로드 / 무료·한정 판매 지원 |
| **상품 구매** | Queue 기반 이메일 자동 발송 / Redis 락으로 재고 관리 |
| **상품 조회** | Redis ZSet으로 인기순 정렬 / 카테고리별·가격순·최신순 |
| **찜 및 리뷰** | Redis 찜 카운트 / Rabbit Queue 기반 DB 동기화 / 리뷰 작성 |
| **커뮤니티** | 게시글 및 댓글 CRUD / 소프트 딜리트 기반 관리 |
| **마이페이지** | 구매내역, 찜목록, 이벤트 참여내역, 구독 관리 |
| **결제** | Toss Payments API 연동 / 모의결제 지원 |
| **인증/인가** | JWT 기반 인증 필터 / 조회 외 모든 API 토큰 검증 |
---

# 팀원
|[김예진](https://github.com/dpwls8984)|[김시현](https://github.com/SiHejt)|[나웅철](https://github.com/No-366)|[부종우](https://github.com/Boojw)|[정혜연](https://github.com/hznnoy)|
|:-:|:-:|:-:|:-:|:-:|
|<img width="150" height="150" alt="image" src="https://github.com/user-attachments/assets/7686f2dd-8ca1-47d5-be94-79ac13d508b4" />|<img width="150" height="150" alt="image" src="https://github.com/user-attachments/assets/0ed8ffdd-5a65-4e91-9ec0-568d8afad469" />|<img width="150" height="150" alt="image" src="https://github.com/user-attachments/assets/958906b3-1bdd-4546-bf1a-4932d7660bfd" />|<img width="150" height="420" alt="150" src="https://github.com/user-attachments/assets/d37491fa-1b9e-4754-896e-bb3c5794b665" />|<img width="150" height="150" alt="image" src="https://github.com/user-attachments/assets/061156b1-634c-416a-b32d-d8b9e9cd9de6" />|
|BE, FE|BE, FE|BE, FE|BE, FE|BE, FE|



## 🛠️ 역할 분담

| 이름 | 담당 기능 |
|--------|-----------|
| **김예진** | - 상품 구매(Redis, 분산 락)<br>- 상품 판매 |
| **김시현** | - 상품 리뷰<br>- 상품 찜(Redis & RabbitMQ) |
| **나웅철** | - Google 소셜 로그인<br>- JWT 인증<br>- 판매자 페이지 |
| **부종우** | - 커뮤니티 글<br>- 커뮤니티 댓글<br>- 마이페이지 조회(작성 글/댓글) |
| **정혜연** | - 도안 생성 + PDF 저장<br>- 도안 조회<br>- 상품 조회(Redis ZSet)<br>- 상품 결제(토스 페이먼츠 연동)|
---

# 🧩 기능 정의서 (Feature Definition)

## 🧑‍💻 회원가입 / 로그인

- **소셜 로그인 지원**
- 구글 OAuth 2.0 기반 로그인
- OAuth 인증 완료 시 프로젝트 내로 리다이렉트
- **회원 정보 수정**
- 닉네임 / 프로필 이미지 수정 기능 ❌ (비활성)
- **회원 탈퇴 / 재가입**
- 회원정보 테이블에 `status` 칼럼 추가하여 상태 관리
- 탈퇴 시 소셜 계정 연결 끊기 로직 포함

---

## 🎨 도안 제작

- 10X10 격자에 기호를 삽입해 도안을 만들고 pdf 파일로 저장
- **프론트엔드**
- 격자(Grid) UI 기반 도안 제작 화면
- 사용자의 입력을 `gridData(JSON)` 형태로 백엔드에 전송
- **백엔드**
- 수신한 `gridData`를 기반으로 PDF 파일 생성 및 저장

---

## 🛍️ 상품 판매

- **판매 대상**
- 사용자가 직접 제작한 도안 또는 일반 PDF 업로드 가능
- **상품 형태**
- 유료/무료 도안 + 상시/한정 수량 선택해 도안 상품 판매 지원
- **카테고리 분류**
- 상의 / 하의 / 아우터 / 가방 / 기타 / 무료 / 한정

---

## 💸 상품 구매

- **구매 프로세스**
- 사용자는 도안을 구매하면 이메일로 PDF 자동 발송
- 이메일은 소셜 로그인 계정으로 발송됨
- **비동기 처리**
- Kafka 대신 **Queue 구조** 사용
- 큐에 `(사용자 계정, 도안 PDF)` 정보 저장 후 자동 이메일 전송
- **재고 관리**
- 한정 수량 도안은 **Redis Lock + Queue** 기반 동시성 제어

---

## 🔍 상품 조회

- **정렬 기준**
- 인기순 (Redis ZSet으로 구매수 기반 정렬)
- 최신순, 가격순 정렬 지원
- 메인페이지에서 인기 top5 상품 조회
- **페이징 처리**
- Spring 서버사이드 렌더링 기반 `Paging` 처리
- **필터링**
- 카테고리별 / 무료 / 한정 도안 조회 가능

---

## 🤎 **상품 찜 & 리뷰**

- Redis를 이용한 실시간 찜 카운트
- Rabbit 큐를 활용하여 10분마다 DB에 동기화
- 상품별 리뷰 작성 및 확인 가능

---

## 💬 커뮤니티

- **게시판**
- 단일 게시판 구조
- **게시글 기능**
- 글 등록 / 수정 / 삭제
- **댓글 기능**
- 댓글 등록 / 삭제

---

## 🙋 마이페이지

- 찜, 구매내역, 이벤트 참여내역, 구독 관리
- 마이페이지 작성글/댓글 확인

---

## 🧵 판매자 개인 페이지

- **판매자 전용 페이지**
- 판매중인 도안 목록 및 환영 문구 표시
- **구독 연결**
- 판매자와 구독 기능 연계 (판매자별 구독 관리)

---

## 🎁 선착순 이벤트 (선택사항)

- **이벤트 생성**
- 운영진이 직접 생성 (한정수량 / 무료 등)
- **재고 관리**
- 한정수량 이벤트는 Redis Lock 사용
- 필요 시 Queue 병행 사용

---

## 📬 구독 기능 (선택사항)

- 판매자를 구독한 사용자는 한 달간 해당 판매자의 모든 도안 다운로드 가능

---

## 💳 결제 기능

- 토스 페이먼츠 API와 연동하여 결제 가능

---

## 🔐 인증 / 인가

- **JWT 기반 인증 적용**
- 조회(READ) API를 제외한 모든 Controller에 토큰 검증 로직 필수

---

✅ **정리 요약**

- 기술 키워드: `Spring Boot`, `Redis`, `JWT`, `Queue`, `H2`, `MySQL`, `Swagger`, `OAuth 2.0`, `Docker`
- 주요 비동기 처리: **Queue (Kafka 대체)**
- 주요 동시성 제어: **Redis Lock (Lettuce 기반)**
- 데이터 전달 형식: **JSON (gridData, API 응답)**

```mermaid
flowchart LR
A[비회원]
B1[소셜 로그인 - 구글 OAuth 2.0]
B2[회원가입]
B3[탈퇴 및 재가입]

A --> B1
B1 --> B2
B1 --> B3

D[도안 제작]
D3[PDF 파일 생성·저장]

B2 --> D
D --> D3

E[상품]
E1[상품 판매 - 유료·무료 / 상시·한정]
E2[상품 구매 - 이메일 발송 / 재고관리]
E3[상품 조회 - 정렬]
E4[상품 찜·리뷰]

B2 --> E
E --> E1
E --> E2
E --> E3
E --> E4

F[커뮤니티]
F1[글 작성/댓글 작성]

B2 --> F
F --> F1

G[마이페이지]
G1[구매내역 확인]
G2[리뷰/찜 확인]
G3[판매자 스토어]
G4[내 도안 목록]

B2 --> G
G --> G1
G --> G2
G --> G3
G --> G4

K[결제 기능]
K1[토스 페이먼츠 API 연동]
K2[결제 완료 후 이메일 발송]

B2 --> K
K --> K1
K1 --> K2
```
---

## 📃 커밋 컨벤션 & 협업 규칙
### GitHub Flow(main/feature + develop)
> 이슈 생성 → 브랜치 생성 → 구현 → Commit & Push → PR 생성 → 코드 리뷰 → develop에 Merge

- `main`: 배포용 안정 브랜치
- `dev`: 기능 통합 브랜치
- `feature/{domain}`: 기능 단위 작업 브랜치
- `hotfix`: 오류 해결 브랜치
- `publishing`: AWS 배포용 브랜치

### 커밋 컨벤션

|유형 | 설명|
|---|---|
|init|초기설정|
|feat| 새로운 기능|
|fix| 버그 수정|
|docs|문서 변경(README 등)|
|style| 포맷/스타일(기능 변경 없음)|
|refactor| 리팩토링(동작 변경 없음)|
|test| 테스트|
|chore| 빌드/설정/의존성|
|remove| 파일/폴더 삭제|
|rename| 파일/폴더명 변경|

### 커밋 고유 번호
- 소셜로그인 100
- 커뮤니티 200
- 상품 300
- 주문 301
- 판매 302
- 리뷰 303
- 찜 등록/취소 304
- 목록 조회 305
- 결제 306
- 마이페이지 400
- 판매자 페이지 401
- 조회 402
- 찜 조회 403
- 도안 500
- 생성 501
- 조회 / 삭제 502
- 이벤트 600

22 changes: 22 additions & 0 deletions build.gradle.kts → backend/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,13 @@ repositories {

dependencies {
implementation("org.springframework.boot:spring-boot-starter-data-redis")
implementation ("org.redisson:redisson-spring-boot-starter:3.27.2") // Redisson 라이브러리
implementation("org.springframework.boot:spring-boot-starter-security")
implementation("org.springframework.boot:spring-boot-starter-validation")
implementation("org.springframework.boot:spring-boot-starter-web")
implementation("org.springframework.boot:spring-boot-starter-data-jpa")
implementation("org.springframework.boot:spring-boot-starter-oauth2-client")
implementation("org.springframework.boot:spring-boot-starter-amqp")
compileOnly("org.projectlombok:lombok")
developmentOnly("org.springframework.boot:spring-boot-devtools")
runtimeOnly("com.h2database:h2")
Expand All @@ -37,6 +41,24 @@ dependencies {
testImplementation("org.springframework.boot:spring-boot-starter-test")
testImplementation("org.springframework.security:spring-security-test")
testRuntimeOnly("org.junit.platform:junit-platform-launcher")
implementation("org.apache.pdfbox:pdfbox:2.0.29") // PDF 변환 라이브러리
implementation("commons-codec:commons-codec:1.16.0")
implementation("org.springframework.boot:spring-boot-starter-mail") // Spring Email

// JWT 라이브러리 (필수)
implementation("io.jsonwebtoken:jjwt-api:0.12.5")
runtimeOnly("io.jsonwebtoken:jjwt-impl:0.12.5")
runtimeOnly("io.jsonwebtoken:jjwt-jackson:0.12.5")

implementation("org.apache.pdfbox:pdfbox:2.0.29") // PDF 변환 라이브러리
implementation("commons-codec:commons-codec:1.16.0")

// Swagger/OpenAPI
// SpringDoc OpenAPI (Swagger 3) - WebMVC 및 Swagger UI 포함
implementation("org.springdoc:springdoc-openapi-starter-webmvc-ui:2.8.11")

implementation("com.fasterxml.jackson.core:jackson-databind")

}

tasks.withType<Test> {
Expand Down
Loading