Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
474 commits
Select commit Hold shift + click to select a range
fcb26f1
feat: 감상평,사진 컴포넌트 로직 분리 및 썸네일 커스텀 훅 공용 컴포넌트 생성
dvp-tae Nov 14, 2024
8e1ec71
feat 리뷰 목데이터 형식 api 반영
dvp-tae Nov 14, 2024
5d8156f
feat: 클라코 티켓 상세보기 api 목데이터 형식으로 변경
dvp-tae Nov 14, 2024
146e621
feat: 장르 컴포넌트 한글 매핑 수정
dvp-tae Nov 14, 2024
76f480e
feat: 공연 상세페이지 컴포넌트 분리
kimzini Nov 14, 2024
4b8a655
fix: 메인 UX 라이팅 수정
dvp-tae Nov 15, 2024
6a84754
fix: 리뷰 이미지 없는 경우 처리
dvp-tae Nov 15, 2024
2eeaa00
fix: 티켓 등록 초기 화면 UX 라이팅 수정
dvp-tae Nov 15, 2024
4994b4e
feat: 티켓 등록 별점 드래그 구현
kimzini Nov 15, 2024
6599f0d
feat: 온보딩 로딩화면 적용
kimzini Nov 15, 2024
2155419
feat: 티켓 다운 페이지 퍼블리싱
kimzini Nov 15, 2024
d125149
feat: 뒤로가기 경로 설정
kimzini Nov 15, 2024
7726175
feat: profile 컴포넌트 삭제
kimzini Nov 15, 2024
e3b2732
feat: 페이지간 간격 조정
kimzini Nov 15, 2024
cec7eae
fix: 검색기능 및 둘러보기 페이지 구조 수정
dvp-tae Nov 15, 2024
8e4b486
fix: 검색 기능 커스텀훅 구조로 변경
dvp-tae Nov 15, 2024
77bb101
feat: 닉네임 제한 글자수 수정
kimzini Nov 16, 2024
434599d
feat: 마이 페이지 뒤로가기 삭제
kimzini Nov 16, 2024
ea8bdae
api: 카카오 로그인 온보딩 토큰 발급 기능 구현
dvp-tae Nov 16, 2024
91d81b0
Merge pull request #50 from Curate-Me/feat/#43_mypage-publishing
kimzini Nov 16, 2024
43c9d5c
api: axios 인스턴스 객체 준비
dvp-tae Nov 16, 2024
53e5d36
Merge branch 'main' into feat/#47_clacoticket-detail-publishing
dvp-tae Nov 16, 2024
a87fbcf
fix: 검색 구현 수정사항 적용
dvp-tae Nov 16, 2024
6bdf496
feat: 클라코 취향 컴포넌트 생성
dvp-tae Nov 16, 2024
ce783e8
Merge pull request #51 from Curate-Me/feat/#47_clacoticket-detail-pub…
dvp-tae Nov 16, 2024
b3c717b
feat: 닉네임 중복 검사 api 연동
kimzini Nov 16, 2024
eea0620
feat: 온보딩 api 연동
kimzini Nov 17, 2024
84bab7d
fix: api hooks util hook 분리
dvp-tae Nov 17, 2024
29f69af
fix: 폰트 적용 에러 수정
dvp-tae Nov 17, 2024
0270599
fix: 라우트 구조 수정 및 로그인 미진행 시 다른 페이지 접근 불가능
dvp-tae Nov 17, 2024
58eaefc
fix: 둘러보기 필터 모달 애니메이션 버그 수정
dvp-tae Nov 17, 2024
719812b
feat: 특징 선택 로직 수정
kimzini Nov 17, 2024
0823af7
feat: 온보딩 로컬스토리지 삭제
kimzini Nov 17, 2024
b7e8183
Merge pull request #53 from Curate-Me/feat/#52_onboarding-api
kimzini Nov 18, 2024
83e9653
Merge branch 'main' into api/#48_axios-instance
dvp-tae Nov 18, 2024
9358e1b
fix: 일반 api 함수 로직 분리 및 명명법 변경
dvp-tae Nov 18, 2024
1c0424e
feat: 유저 취향 정보 api 연동
dvp-tae Nov 18, 2024
15d03c0
feat: 나의 취향 기반 api 연동
dvp-tae Nov 18, 2024
9da3209
feat: 타입 배럴 패턴 적용 및 좋아요 기반 api 연동 함수 생성
dvp-tae Nov 19, 2024
73c3632
Merge pull request #55 from Curate-Me/api/#48_axios-instance
dvp-tae Nov 19, 2024
1a708f9
feat: 스크롤 하단 감지 테스트 훅 생성
dvp-tae Nov 19, 2024
f11ae18
Merge branch 'main' into feat/#56_concert-review-api
dvp-tae Nov 19, 2024
dd5efd0
feat: 메인 포스터 이미지 지연 로딩 적용
dvp-tae Nov 19, 2024
41fafdd
feat: 카테고리 컴포넌트 서버 로직에 맞춰 전반적으로 수정
dvp-tae Nov 19, 2024
e362004
feat: 공연 상세 페이지 api 연동
kimzini Nov 19, 2024
9befbaf
fix: 카테고리 컴포넌트 로직 수정
dvp-tae Nov 19, 2024
8429705
Merge branch 'develop' into feat/#54_show-detail-api
kimzini Nov 19, 2024
a776518
feat: 유저 취향 기반 클라코티켓 맞춤 추천 api 함수 구현
dvp-tae Nov 19, 2024
8fe44bc
feat: 공연 상세 데이터변환 로직 훅으로 분리
kimzini Nov 19, 2024
8b54136
feat: 검색 api 함수 구현
dvp-tae Nov 20, 2024
a338e18
feat: 둘러보기 스켈레톤 적용
dvp-tae Nov 20, 2024
48e53ad
feat: 공연 상세 포스터 로직 수정
kimzini Nov 20, 2024
61d8d00
feat: 선택 공연과 비슷한 공연 추천 api 연동
kimzini Nov 20, 2024
3fb3eb5
feat: 상세 페이지 로직 수정
kimzini Nov 20, 2024
15994a4
feat: 검색 자동 완성 기능 구현
dvp-tae Nov 20, 2024
15521d6
feat: 상세 페이지 디테일 수정
kimzini Nov 20, 2024
e3a09ca
feat: 좋아요 기능 구현
kimzini Nov 20, 2024
9570fac
feat: useNavigate 훅으로 수정
kimzini Nov 20, 2024
20a954d
feat: setQueryData 업데이트로 수정
kimzini Nov 20, 2024
461f4c1
Merge pull request #58 from Curate-Me/feat/#54_show-detail-api
kimzini Nov 20, 2024
05df72c
feat: 검색 로직 수정
dvp-tae Nov 20, 2024
3687d38
feat: 공연 상세 페이지 디테일 수정
kimzini Nov 20, 2024
ce73e1f
Merge branch 'main' into feat/#57_search-api
dvp-tae Nov 20, 2024
a5e4f49
fix: 빌드 에러 수정
dvp-tae Nov 20, 2024
afa2458
Merge pull request #60 from Curate-Me/feat/#57_search-api
dvp-tae Nov 20, 2024
7da5894
Merge pull request #61 from Curate-Me/develop
dvp-tae Nov 20, 2024
f670661
hotfix: svg 파일 빌드 에러
dvp-tae Nov 20, 2024
0072c1b
hotfix: svg 파일 빌드 에러
dvp-tae Nov 20, 2024
3274d05
Merge pull request #62 from Curate-Me/hotfix/#1_svg-build-error
dvp-tae Nov 20, 2024
c940c0c
Merge pull request #63 from Curate-Me/develop
dvp-tae Nov 20, 2024
9ed8b40
feat: 클라코북 리스트 조회 api 연동
kimzini Nov 20, 2024
bb2e3ba
Merge branch 'main' into feat/#56_concert-review-api
dvp-tae Nov 21, 2024
5012cc8
feat: 캘린더 single 모드 날짜 범위 로직 변경
kimzini Nov 21, 2024
60d743f
feat: 관람 공연 정보 불러오기
kimzini Nov 21, 2024
c0bea45
feat: 카테고리 조회 api 연동
kimzini Nov 21, 2024
dd3f611
feat: 장소평 카테고리 조회 api 연동
kimzini Nov 21, 2024
0766fa2
feat: 뷰 포트 벗어나면 이미지 재로드 하는 버그 수정
dvp-tae Nov 21, 2024
79daf36
feat: 클라코북 리스트 타입 수정
kimzini Nov 21, 2024
d4e7b89
feat: 티켓 초기생성 api 연동
kimzini Nov 21, 2024
703db1b
feat: 무한 스크롤 적용 및 버그 수정
dvp-tae Nov 21, 2024
c3bca4c
feeat: 콘솔창 주석처리
dvp-tae Nov 21, 2024
2615b8e
feat: 리뷰 상세 정보 로컬스토리지 저장 처리
kimzini Nov 21, 2024
bdf15db
feat: 최근공연 검색결과 컴포넌트화
dvp-tae Nov 22, 2024
2277aad
feat: tanstack-query devtools 추가
dvp-tae Nov 22, 2024
8ae0e3c
fix: 자동 완성 쿼리 키 이름 수정
dvp-tae Nov 22, 2024
2ff0b8e
feat: 자동 완성 결과 없을 경우 처리
dvp-tae Nov 22, 2024
6e071db
feat: 리뷰 데이터 무한 스크롤 적용
dvp-tae Nov 22, 2024
dbc948e
feat: 무한 스크롤 적용에 따른 썸네일 모달 인덱싱 수정 및 리뷰 총 개수 api 연동
dvp-tae Nov 22, 2024
9e23ac0
feat: useQuery 제외
kimzini Nov 22, 2024
75612c0
feat: 티켓 이미지 저장 api 연동
kimzini Nov 22, 2024
d39113f
feat: 공연 태그, 제목 zustand 저장소 추가해 리뷰 페이지에 노출
dvp-tae Nov 22, 2024
60e960d
feat: 리뷰 페이지 스캘레톤 적용
dvp-tae Nov 22, 2024
0120559
feat: 리뷰 상세페이지 api 연동
dvp-tae Nov 22, 2024
986c844
feat: 검색 결과 없는 경우 추천 리스트 데이터 뷰 처리
dvp-tae Nov 22, 2024
6dc2371
feat: 티켓 리뷰 상세 조회 api 연동
kimzini Nov 22, 2024
e259b49
feat: 온보딩 프로세스 수정
dvp-tae Nov 23, 2024
12318ef
feat: 클라코북 없을 때 로직 수정
kimzini Nov 23, 2024
f900fe7
feat: 메인 페이지 클라코티켓 추천 수정
dvp-tae Nov 23, 2024
7af92d7
style: 최대 줄 수 처리
kimzini Nov 23, 2024
d985e8d
Merge pull request #65 from Curate-Me/feat/#56_concert-review-api
dvp-tae Nov 23, 2024
f14a3be
feat: 티켓 키워드 이미지 로딩시간 설정
kimzini Nov 23, 2024
0d5d91b
Merge branch 'main' into feat/#59_ticket-create-api
kimzini Nov 23, 2024
41ce0a3
Merge branch 'develop' into feat/#59_ticket-create-api
kimzini Nov 23, 2024
8ef5816
Merge pull request #66 from Curate-Me/feat/#59_ticket-create-api
kimzini Nov 23, 2024
9645632
style: 리뷰 요약 카드 높이 수정
kimzini Nov 23, 2024
3d8f0f5
feat: 클라코북 수정삭제추가 api 연동
dvp-tae Nov 23, 2024
f9e958d
feat: 마이페이지 수정창 페이지로 분리
kimzini Nov 23, 2024
c6a9bf5
feat: 취향 수정 api 연동
kimzini Nov 23, 2024
6265065
feat: 유저 정보 조회, 수정 api 연동
kimzini Nov 23, 2024
1d1862e
feat: 클라코북 상세보기 api 연동 완료
dvp-tae Nov 24, 2024
ae2fc97
feat: 콘솔창 주석
dvp-tae Nov 24, 2024
d33a912
feat: 클라코 티켓 상세 수정 기능 구현
dvp-tae Nov 24, 2024
0f0ae8c
feat: 클라코 티켓 상세 삭제 수정
dvp-tae Nov 24, 2024
83aefe8
feat: 클라코 티켓 상세보기 장르명 공연상태 정보 추가
dvp-tae Nov 25, 2024
2fe4fb8
feat: 검색 결과 없을 시 무한 스크롤 기능 제거
dvp-tae Nov 25, 2024
6e09340
feat: 티켓 등록 로직 수정
kimzini Nov 25, 2024
04ee7c7
feat: 달력 시작일 수정
kimzini Nov 25, 2024
9b4ad1c
feat: 좋아요한 공연 api 연동
kimzini Nov 25, 2024
91b94e7
feat: 별점 터치 가능하게 수정
kimzini Nov 25, 2024
8e22e75
feat: 둘러보기 페이지 좋아요 api 연동
kimzini Nov 26, 2024
2f98ae9
feat: 좋아요한 공연 좋아요 api 연동
kimzini Nov 26, 2024
b8747be
Merge pull request #68 from Curate-Me/feat/#64_mypage-api
dvp-tae Nov 27, 2024
c62d60e
Merge branch 'main' into feat/#67_clacobook-ticket-api
dvp-tae Nov 27, 2024
1f7ec88
fix: 잔버그 수정
dvp-tae Nov 27, 2024
c7e00b4
feat: 메인 스캘레톤
dvp-tae Nov 27, 2024
b930ad2
feat: 마이페이지 스켈레톤 UI 적용
kimzini Nov 27, 2024
9971b5b
feat: 클라코북 스켈레톤 UI 적용
kimzini Nov 27, 2024
63c53ca
fix: 인터셉터 버그 해결
dvp-tae Nov 27, 2024
b4abefc
Merge pull request #70 from Curate-Me/feat/#67_clacobook-ticket-api
dvp-tae Nov 27, 2024
fb9e792
Merge pull request #71 from Curate-Me/develop
dvp-tae Nov 27, 2024
a5b43e1
feat: 로딩 이미지 임시 적용
kimzini Nov 27, 2024
84c4ab1
feat: 티켓 등록 스켈레톤 UI 적용
kimzini Nov 27, 2024
80d1781
merge: develop merge
kimzini Nov 27, 2024
1da4bbc
feat: onboarding 로티이미지 수정
kimzini Nov 27, 2024
9a34ee0
feat: 새 엑세스 토큰 발급 시 main으로 replace
dvp-tae Nov 27, 2024
b74ade4
feat: 모바일 뷰에서 날짜 정보 오류 이슈 해결
dvp-tae Nov 27, 2024
be07539
feat: 메인페이지 페이지네이션 위치 조정
dvp-tae Nov 27, 2024
0facb64
feat: 모달 버튼 가로 길이 수정:
dvp-tae Nov 27, 2024
55da1b6
feat: 공연 포스터 api 연동
kimzini Nov 27, 2024
ed38434
feat: 티켓 다운로드 로딩 텍스트 적용
kimzini Nov 27, 2024
2871cc0
feat: 포스터 카드 truncate 수정
dvp-tae Nov 28, 2024
e3d7781
style: 관람 회차 스타일 수정
kimzini Nov 28, 2024
6372797
feat: 티켓 리뷰 스켈레톤 UI 적용
kimzini Nov 28, 2024
3a44383
feat: 상세페이지 스켈레톤 UI 적용
kimzini Nov 28, 2024
a43e71c
Merge pull request #73 from Curate-Me/feat/#69_skeleton-ui
dvp-tae Nov 28, 2024
9b25246
feat: 작성자 구분 및 상세보기에서 티켓 삭제 시 전 페이지로 이동
dvp-tae Nov 28, 2024
5fefbb8
Merge branch 'main' into feat/#72_qa/1-issue
dvp-tae Nov 28, 2024
3906728
feat: 티켓 등록 후 데드락 이슈 처리
dvp-tae Nov 28, 2024
95000b3
feat: 필터링 api 연동
dvp-tae Nov 28, 2024
6f01149
feat:유저 취향 기반 마무리
dvp-tae Nov 28, 2024
45012d8
docs: update README.md
devkeon Nov 28, 2024
4cbf3dd
feat: Location 필터링의 경우 지역 세분화 처리
dvp-tae Nov 28, 2024
6e0d419
Merge pull request #74 from Curate-Me/docs/readme
kimzini Nov 28, 2024
47f0669
feat: 다운로드 테스트
dvp-tae Nov 28, 2024
d3e57fa
Update README.md
kimzini Nov 28, 2024
b9885a0
feat: 좌석 코드 오류로 인한 주석 처리
dvp-tae Nov 28, 2024
6c82bae
Merge pull request #75 from Curate-Me/docs-readme-update
dvp-tae Nov 28, 2024
2d3e4e3
Merge branch 'main' into feat/#72_qa/1-issue
dvp-tae Nov 28, 2024
7ad9fbe
feat: 더미 이미지들 제거
dvp-tae Nov 28, 2024
ef1ec48
feat: 카카오 디자인 규정 준수
dvp-tae Nov 28, 2024
d81a9e5
Merge pull request #76 from Curate-Me/feat/#72_qa/1-issue
dvp-tae Nov 28, 2024
cae75a6
Merge pull request #77 from Curate-Me/develop
dvp-tae Nov 28, 2024
c398d0c
fix: footer 레이아웃 영역 수정
dvp-tae Nov 28, 2024
98411fc
style: 카카오 로고 간격 수정
kimzini Nov 28, 2024
9f6d0ba
fix: 유저 취향 기반 클라코북 맞춤 추천 에러 핸들링 및 location 컴포넌트 수정
dvp-tae Nov 28, 2024
7feddbb
feat: 다운로드 모달 취소 버튼 수정
kimzini Nov 28, 2024
7bd7b9a
Merge pull request #80 from Curate-Me/feat/#79_ticket-download-image
dvp-tae Nov 28, 2024
6e5841b
fix: qa 2차사항 반영
dvp-tae Nov 28, 2024
4e03f15
Merge branch 'main' into feat/#78_qa2-handling
dvp-tae Nov 28, 2024
c07d9c9
fix: 충돌 해결
dvp-tae Nov 28, 2024
ec203b7
fix: 초기 로딩 문제 해결
dvp-tae Nov 28, 2024
5967676
Merge pull request #81 from Curate-Me/feat/#78_qa2-handling
dvp-tae Nov 28, 2024
6af808f
Merge pull request #82 from Curate-Me/develop
dvp-tae Nov 28, 2024
a383291
fix: null 값 여부에 따라 뒤로가기 로직 구분
dvp-tae Nov 28, 2024
bfcdb22
Merge pull request #84 from Curate-Me/hotfix/back-error
dvp-tae Nov 28, 2024
05dac00
Merge pull request #85 from Curate-Me/develop
dvp-tae Nov 28, 2024
b0223ea
fix: 좋아요 쿼리 캐싱 무효화
dvp-tae Nov 28, 2024
7d42f18
Merge pull request #87 from Curate-Me/hotfix/#3_like-error
dvp-tae Nov 28, 2024
48d4518
fix: 빈 클라코북 오류 처리
dvp-tae Nov 28, 2024
97ae620
Merge pull request #88 from Curate-Me/develop
dvp-tae Nov 28, 2024
0203f3b
Merge pull request #90 from Curate-Me/hotfix/#4_empty-clacobook-error
dvp-tae Nov 28, 2024
83d8e55
Merge pull request #91 from Curate-Me/develop
dvp-tae Nov 28, 2024
426530b
fix: 디자인 수정
dvp-tae Nov 28, 2024
6a16b74
Merge pull request #92 from Curate-Me/hotfix/#5_design-error
dvp-tae Nov 28, 2024
f54b700
Merge pull request #93 from Curate-Me/develop
dvp-tae Nov 28, 2024
0f4bbae
fix: 디자인 수정
dvp-tae Nov 28, 2024
a3fef6f
Merge pull request #94 from Curate-Me/hotfix/#6_position-replace
dvp-tae Nov 28, 2024
7440691
Merge pull request #95 from Curate-Me/develop
dvp-tae Nov 28, 2024
48386b3
feat: 온보딩 로딩 이미지 수정
kimzini Nov 29, 2024
90ce0cb
feat: Claco 기본 설명일 때 화살표 제한
kimzini Nov 29, 2024
791e687
feat: 포스터 클릭해도 상세 페이지로 이동
kimzini Nov 29, 2024
12eaae9
feat: 상세 포스터 화살표 높이 제한
kimzini Nov 29, 2024
9d11afa
feat: 티켓 등록 자동 완성 api 연동
kimzini Nov 29, 2024
409aa14
feat: 공연 날짜 불러오는 로직 수정
kimzini Nov 29, 2024
6171b0f
feat: 티켓 저장 로딩 이미지 수정
kimzini Nov 29, 2024
1f4d082
feat: 티켓 배경색 수정
kimzini Nov 29, 2024
b797c2a
feat: 스켈레톤 UI 수정
kimzini Nov 29, 2024
0209461
feat: 티켓 없는 티켓북 뒤로 가기 추가
kimzini Nov 29, 2024
de4791b
feat: 공연 포스터 크기 통일
kimzini Nov 29, 2024
1272be6
feat: 티켓 상세 여백 수정
kimzini Nov 29, 2024
81f1dc3
feat: 공연 태그 default 설정
kimzini Nov 29, 2024
802e6bb
feat: 선택했던 공연 필터값 보이게 수정
kimzini Nov 29, 2024
040035e
Merge pull request #97 from Curate-Me/feat/#96_qa-3
kimzini Nov 29, 2024
51baeda
fix: 로컬 폰트 함수 제거
dvp-tae Nov 29, 2024
9f9cbe2
feat: 필터 선택 후 탭 선택시 초기화
kimzini Nov 29, 2024
6606e61
feat: base 옵션 추가
kimzini Nov 29, 2024
ffa4384
style: 검색창 X 아이콘 수정
kimzini Nov 29, 2024
52d8c2d
Merge pull request #99 from Curate-Me/feat/#98_qa-4
kimzini Nov 29, 2024
d3ef174
hotfix: base 경로 다시 수정
kimzini Nov 29, 2024
955f5c8
fix: 티켓 등록 후 티켓북 선택 시 티켓 리스트 쿼리 무효화
dvp-tae Nov 29, 2024
4f8156b
Merge pull request #101 from Curate-Me/feat/#98_qa-4
kimzini Nov 29, 2024
3f1c618
fix: 티켓 등록 후 티켓북 선택 시 티켓 리스트 쿼리 무효화
dvp-tae Nov 29, 2024
0b0283a
Merge branch 'main' into hotfix/qa_#6
dvp-tae Nov 29, 2024
afd6722
fix: lint 오류 수정
dvp-tae Nov 29, 2024
e6dbad4
Merge pull request #102 from Curate-Me/hotfix/qa_#6
dvp-tae Nov 29, 2024
9954c5d
fix: 검색바 고치기
dvp-tae Nov 29, 2024
e7c5bc9
Merge pull request #103 from Curate-Me/hotfix/qa_#7
dvp-tae Nov 29, 2024
55ba010
fix: 로그인 리다렉 수정
dvp-tae Nov 29, 2024
798cd39
Merge pull request #104 from Curate-Me/hotfix/qa_#8
dvp-tae Nov 29, 2024
0980224
fix: 에러 핸들링 수정:
dvp-tae Nov 29, 2024
60eea6c
Merge pull request #105 from Curate-Me/hotfix/qa_#9
dvp-tae Nov 29, 2024
7d889fc
feat: 요청 사항 수정
kimzini Nov 29, 2024
600eb03
Merge branch 'main' into feat/#98_qa-4
kimzini Nov 29, 2024
ecac524
Merge pull request #106 from Curate-Me/feat/#98_qa-4
kimzini Nov 29, 2024
74670b8
feat: 로티 이미지 수정
kimzini Nov 29, 2024
80ab364
Merge pull request #107 from Curate-Me/hotfix/qa_#10
kimzini Nov 29, 2024
1cbb59d
hotfix: 그라디언트 추가
kimzini Nov 29, 2024
b4df3e6
Merge pull request #108 from Curate-Me/hotfix/qa_#11
kimzini Nov 29, 2024
be68706
hotfix: 그라디언트 위치 수정
kimzini Nov 29, 2024
d4767f4
Merge pull request #109 from Curate-Me/hotfix/qa_#12
kimzini Nov 29, 2024
aea5649
feat: 티켓북 초기 페이지 수정
kimzini Nov 29, 2024
c386b0e
Merge pull request #110 from Curate-Me/hotfix/qa_#13
kimzini Nov 29, 2024
67debf5
Merge pull request #111 from Curate-Me/main
dvp-tae Dec 4, 2024
ba7f624
fix: 필터링 결과 9개 미만 시 무한 스크롤 영역 버그 픽스
dvp-tae Dec 4, 2024
805876d
fix: 티켓북 이동 플로우 수정
dvp-tae Dec 4, 2024
577efe0
fix: crossorigin annoymous 제거
dvp-tae Dec 4, 2024
9d3d2a5
fix: 티켓 등록 플러스 버튼 위치 재조정
dvp-tae Dec 4, 2024
50783cb
Merge pull request #114 from Curate-Me/fix/#qa_5
dvp-tae Dec 4, 2024
cf2de7f
feat: 리프레쉬 쿠키 api 연동
kimzini Dec 4, 2024
140660b
Merge pull request #116 from Curate-Me/feat/#113_refresh-cookie-api
kimzini Dec 4, 2024
198f41b
feat: 리프레쉬 api 연동 수정
kimzini Dec 4, 2024
d0447b8
Merge pull request #118 from Curate-Me/feat/#113_refresh-cookie-api
kimzini Dec 4, 2024
085cc71
fix: axios 헤더 수정
kimzini Dec 6, 2024
d3a172b
Merge pull request #120 from Curate-Me/feat/#113_refresh-cookie-api
kimzini Dec 6, 2024
8bd71b5
feat: 프로필 이미지 api 연동 수정
kimzini Dec 6, 2024
fbce9cf
Merge pull request #122 from Curate-Me/feat/#113_refresh-cookie-api
kimzini Dec 6, 2024
c62dec5
feat: 마이페이지 리렌더링
kimzini Dec 6, 2024
941f57d
Merge pull request #124 from Curate-Me/feat/#113_refresh-cookie-api
kimzini Dec 7, 2024
03d6504
fix: 리프레쉬 토큰 api 연동 삭제
kimzini Dec 7, 2024
fe77cbb
Merge pull request #126 from Curate-Me/feat/#113_refresh-cookie-api
kimzini Dec 7, 2024
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
  •  
  •  
  •  
20 changes: 20 additions & 0 deletions .github/ISSUE_TEMPLATE/bug-issue-template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
---
name: Bug Issue Template
about: 버그 관련 이슈 템플릿
title: ''
labels: ''
assignees: ''

---

## 에러 설명🚦
<!-- 무슨 에러인지 설명해주세요! -->

## 환경⚙️
<!-- 특정 기기에서만 발생하는 에러라면 디바이스 종류, 브라우저 종류 등을 써주세요! 없으면 지워도 되는걸로,, -->

## 재현 방법🧿
<!-- 어떻게 재현하는지 설명해주세요 -->

## 에러 화면📸
<!-- 스크린샷 or GIF 등 -->
17 changes: 17 additions & 0 deletions .github/ISSUE_TEMPLATE/feature-issue-template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
---
name: Feature Issue Template
about: 기능 개발 시에 사용하는 이슈 템플릿
title: 'feat:'
labels: ''
assignees: ''

---

## 이슈 설명☀️
<!-- 이슈에 관한 설명 -->

## TO-DO📒
- [ ] 할 일 1

## 기타🍀
<!-- 🎻 -->
15 changes: 15 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
## 1️⃣ 작업 내용 Summary📱💎

- resolved #(issue_num)

### 기존 코드에 영향을 미치지 않는 변경사항

### 기존 코드에 영향을 미치는 변경사항

### ✚ 작업 내용 스크린 샷📸

## 2️⃣ 리뷰어에게 공유할 내용👥

## 3️⃣ 추후 작업할 내용👋

- [ ] `main` 브랜치의 최신 코드를 `pull` 받았나요?
Binary file added .github/readme-assets/ai-flow.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .github/readme-assets/architecture.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .github/readme-assets/cicd.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .github/readme-assets/erd.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .github/readme-assets/server-test.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .github/readme-assets/test-coverage.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
30 changes: 30 additions & 0 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
name: git push into another repo to deploy to vercel

on:
push:
branches: [main]

jobs:
build:
runs-on: ubuntu-latest
container: pandoc/latex
steps:
- uses: actions/checkout@v2

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- uses: actions/checkout@v2
- uses: actions/checkout@v4

최신 버전을 이용하지 않으신 이유가 있나요?

- name: Install mustache (to update the date)
run: apk add ruby && gem install mustache
- name: creates output
run: sh ./build.sh
- name: Pushes to another repository
id: push_directory
uses: cpina/github-action-push-to-another-repository@main
env:
API_TOKEN_GITHUB: ${{ secrets.ACTIONS_TOKEN }}
with:
source-directory: 'output'
destination-github-username: dvp-tae
destination-repository-name: claco-client
user-email: ${{ secrets.EMAIL }}
commit-message: ${{ github.event.commits[0].message }}
target-branch: main
- name: Test get variable exported by push-to-another-repository
run: echo $DESTINATION_CLONED_DIRECTORY
261 changes: 211 additions & 50 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,50 +1,211 @@
# React + TypeScript + Vite

This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.

Currently, two official plugins are available:

- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/README.md) uses [Babel](https://babeljs.io/) for Fast Refresh
- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh

## Expanding the ESLint configuration

If you are developing a production application, we recommend updating the configuration to enable type aware lint rules:

- Configure the top-level `parserOptions` property like this:

```js
export default tseslint.config({
languageOptions: {
// other options...
parserOptions: {
project: ['./tsconfig.node.json', './tsconfig.app.json'],
tsconfigRootDir: import.meta.dirname,
},
},
})
```

- Replace `tseslint.configs.recommended` to `tseslint.configs.recommendedTypeChecked` or `tseslint.configs.strictTypeChecked`
- Optionally add `...tseslint.configs.stylisticTypeChecked`
- Install [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) and update the config:

```js
// eslint.config.js
import react from 'eslint-plugin-react'

export default tseslint.config({
// Set the react version
settings: { react: { version: '18.3' } },
plugins: {
// Add the react plugin
react,
},
rules: {
// other rules...
// Enable its recommended rules
...react.configs.recommended.rules,
...react.configs['jsx-runtime'].rules,
},
})
```
# 사용자 맞춤 클래식 공연 큐레이션 서비스 Claco

## 📱 서비스 소개
- 클래식 공연 감상의 길잡이가 되는 서비스를 제공함으로써 클래식 공연 문화를 더 즐겁게 향유할 수 있도록 합니다.
- 사용자의 취향에 맞는 공연을 추천해주고, 티켓을 만들어 추억을 간직하고, 공유합니다.

### 📆 개발 기간 및 인원
- ***2024.10.05 ~ 2024.11.24***
- ```Frontend```: 2명
- ```Backend```: 2명

## 🧑‍💻 R&R
| Profile | Name | Role |
|:---------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------:|:------------------------------------------------------------------------------------------------:|
| <a href="https://github.com/kimzini"><img src="https://avatars.githubusercontent.com/u/127485569?v=4" height="120px"></a> | 김진희<br> **kimzini** <br> FE | 소셜 로그인, 온보딩, 공연 상세, 마이 페이지,<br> 티켓 등록 서비스 GUI 개발 및 API 연동
| <a href="https://github.com/dvp-tae"><img src="https://avatars.githubusercontent.com/u/109207415?v=4" height="120px"></a> | 성태현 <br> **dvp-tae** <br> FE | 서비스 메인, 리뷰, 둘러보기,<br> 클라코북 만들기 서비스 GUI 개발 및 API 연동
| <a href="https://github.com/devkeon"><img src="https://avatars.githubusercontent.com/u/121371840?v=4" height="120px"></a> | \<개발 리드><br>이건 <br> **devkeon** <br> BE | 아키텍처 설계, ERD 설계, 메인 서버 인프라 및 CI/CD 구축, <br> 인증/인가, 모니터링 시스템 구축, 티켓/리뷰 기능,<br> 클라코북 기능, 회원 관련 기능 |
| <a href="https://github.com/anselmo228"><img src="https://avatars.githubusercontent.com/u/24919880?v=4" height="120px"></a> | 정희찬 <br> **anselmo** <br> BE | ERD 설계, AI 및 배치 서버 인프라 및 CI/CD 구축, <br> 추천 AI 모델 구현, 배치 기능(데이터 로드) 구축, <br> 공연 기능, 공연 및 티켓 추천 기능 |


## 🏛️ 아키텍처
![architecture.png](./.github/readme-assets/architecture.png)

### PWA
- 개발 및 유지보수 비용 절감
- 사용자가 홈 화면에 추가하여 앱처럼 활용 가능
- 네이티브 앱과 유사한 사용성과 빠른 로딩 속도 제공
- 플랫폼 제약 없이 다양한 환경에서 동일한 사용자 경험 제공
- 추후 웹 푸시 알림, 백그라운드 동작 등 기능 확장이 용이

### 보안 고려 사항
- JWT를 활용한 인증/인가
- SSL 보안 계층을 활용한 토큰 암호화 (HTTPS, ALB 설치)
- CSRF / XSS 공격에 대비한 토큰 저장 분리 (Local storage, HTTP-only Cookie)
- Nginx를 활용한 actuator와 같은 민감 정보 deny
- Spring Security를 활용한 철저한 Auth 검사 및 uri 접근 조정
- Kakao OAuth2.0을 활용한 인증/인가 기능 간편화
- docker 네트워크를 활용하여 spring 서버나, prometheus같은 인스턴스 포트 매핑x (Endpoint 단일화)

### 추천 시스템 로직

- Collaborative Filtering & Cosine Similarity 기반 추천시스템
1. 각 Concert는 AI가 추출해준 키워드 값에 대해 0 ~ 1 사이의 값을 가짐
2. 유저도 마찬가지로 온보딩에서 등록한 취향 정보로 부터 모든 키워드 값에 대해 0 ~ 1사이 값을 가짐
3. Concerts, Users CSV파일을 통해서 Cosine Similarity와 Collaborative Filtering을 통한 유사도 계산 후 추천 진행

### 메인 서버
- 서비스의 주요 로직을 처리하는 서버
- Grafana와 Prometheus에 기반한 모니터링 시스템 구축
- Nginx를 통한 리버스 프록시 설정

### AI 서버

- 공연 성격 분석이나, 유저 성격 분석, OCR을 처리하는 서버
- OCR 및 공연 성격 정보 추출은 NCP의 AI 서비스를 활용
- 추천 시스템의 경우 직접 Collaborative Filtering Model 구현

### 배치 서버

- KOPIS 시스템으로부터 공연 정보를 주기적으로 업데이트하는 서버(한달에 1번)
- KOPIS에서 데이터를 받아올때마다 AI서버에 학습 요청

# ⭐️ Frontend

#### 배포 URL https://claco-client.vercel.app/
* * *

## 💻 Technology
* ![Static Badge](https://img.shields.io/badge/react-%252320232a.svg?logo=React&color=%231C1C1C) ![Static Badge](https://img.shields.io/badge/Zustand-%252320232a.svg?color=%231C1C1C)
* ![Static Badge](https://img.shields.io/badge/typescript-%253178C6.svg?logo=typescript&logoColor=%23FFFFFF&color=%233178C6) ![Static Badge](https://img.shields.io/badge/yarn-%253178C6.svg?logo=yarn&logoColor=%23FFFFFF&color=%232C8EBB)
* ![Static Badge](https://img.shields.io/badge/tailwindCSS-%253178C6.svg?logo=tailwindCSS&logoColor=%23FFFFFF&color=%2306B6D4) ![Static Badge](https://img.shields.io/badge/shadcn%2Fui-%253178C6.svg?logo=shadcn%2Fui&logoColor=%23FFFFFF&color=%23000000)
* ![Static Badge](https://img.shields.io/badge/TanStack%20Query-%253178C6.svg?logo=React%20Query&logoColor=%23FFFFFF&color=%23FF4154) ![Static Badge](https://img.shields.io/badge/Vercel-%253178C6.svg?logo=Vercel&logoColor=%23FFFFFF&color=%23000000) ![Static Badge](https://img.shields.io/badge/PWA-%253178C6.svg?logo=PWA&logoColor=%23FFFFFF&color=%235A0FC8)


## 🧸 기술 스택 선정 이유

| 기술 스택 | 설명 |
|-----------|------|
| React | React는 가장 핵심 요소인 Virtual Dom을 이용하여 불필요한 화면 갱신을 최소화합니다. 이를 통해, 성능 향상을 시킬 수 있으며 빠른 렌더링을 지원합니다. React는 컴포넌트 기반 아키텍처를 채택하고 있으며, UI 요소들을 컴포넌트로 분리하여 개발하고 조합하는 방식으로 구성할 수 있습니다. 따라서, 컴포넌트의 재사용성을 용이하게 하며, 코드 수정 및 유지·보수에 효율적이기에 React를 사용하게 되었습니다. |
| TypeScript | 정적 타입 언어로서 코드의 안정성을 높이고 협업을 용이하게 하며, 생산성 접근 파일 단계에서 오류를 사전에 발견하여 런타임 오류를 방지할 수 있습니다. 또한, 코드 힌트와 자동 완성을 제공해 개발 생산성을 향상시킬 수 있어 TypeScript를 선정했습니다. |
| Zustand | 간결하고 직관적인 상태 관리 방식과 최소한의 보일러플레이트로 유연성을 제공하며, 상태 변경 시에만 컴포넌트를 렌더링하여 불필요한 렌더링을 최소화하고 성능 향상에 도움이 됩니다. |
| Yarn | 빠른 속도와 높은 신뢰성을 바탕으로 안정적인 JavaScript 패키지 관리를 지원하며, 보안성 강화 기능을 제공하여 효율적인 프로젝트 관리가 가능합니다. |
| TailwindCSS | 개발의 편의성 HTML과 CSS 파일을 별도로 개발 및 관리할 필요가 없기 때문에 개발하기에 편리하고, 팀핑하는 각 태그의 클래스명을 고민할 시간을 절약할 수 있어 빠른 개발이 가능합니다. |
| shadcn/ui | TailwindCSS와의 긴밀한 통합으로 빠르고 일관된 스타일링이 가능하며, 높은 확장성과 유연한 커스터마이징 기능을 통해 프로젝트 요구사항에 맞는 UI를 효율적으로 구현할 수 있습니다. |
| Tanstack-Query | 효율적인 데이터 페칭과 관리를 제공하며, 데이터 캐싱 기능을 통해 불필요한 요청을 줄여 성능 최적화와 네트워크 비용 절감이 가능합니다. |
| Vercel | 깃 저장소와 통합되어 코드 변경 사항을 자동으로 감지하고, 푸시할 때마다 자동 배포를 지원하여 효율적이고 간편하게 웹사이트를 배포할 수 있습니다. |
| PWA | 웹 기술 기반으로 다양한 플랫폼에서 동작하고, 앱 스토어 없이 홈 화면에 추가할 수 있어 접근성과 편의성이 뛰어나며, 개발 비용 절감과 빠른 배포가 가능합니다. |

## 🗂️ Naming Rules
* 폴더명 - `PascalCase`
* 파일명 - `PascalCase`
* 타입, 유틸함수 등 - `camelCase`
* 상수 - `UpperCase`

## 📄 Commit Convension
커밋 메시지는 `태그: 커밋 메시지` 형식으로 작성 (ex. git commit -m "feat: 카카오 로그인 기능 구현")

📌Type

| 태그명 | commit 규칙 |
|----------|--------------|
| 🔗 feat | 새로운 기능 개발 |
| 🛠 fix | UI,UX 및 코드 수정 |
| 🎨 style | CSS 스타일링 및 퍼블리싱 작업 |
| 📄 docs | 문서 작업(REANME.md 등) |
| 📘 test | 배포 테스트, QA 테스팅 관련 |
| 🧰 refactor | 코드 리팩토링 |
| 🔧 rename | 폴더 혹은 파일명 변경 |
| ✂️ remove | 파일 삭제 |

## 🍀 Issue Template
* `기능 개발 관련 Issue Template`
### 이슈 설명☀️
이슈에 관한 설명

### TO-DO📒
- [ ] 할 일 1

### 기타🍀

* `버그 수정 관련 Issue Template`
### 에러 설명🚦
무슨 에러인지 설명!

### 환경⚙️
특정 기기에서만 발생하는 에러라면 디바이스 종류, 브라우저 종류 등!

### 재현 방법🧿
어떻게 재현하는지 설명!

### 에러 화면📸
스크린샷 or GIF 등..

## 🍀 Pull Request Template
* 관련 이슈
* 기존 코드에 영향을 미치는 작업 사항
* 기존 코드에 영향을 미치지 않는 작업 사항
* 작업 내용 스크린 샷
* 리뷰어에게 공유할 내용
* 추후 작업할 내용
* main (develop) 브랜치 pull 여부 확인

## 🌊 Git Flow
| 브랜치 명 | 역할 |
|----------|--------------|
| main | 최종 배포될 서비스의 브랜치 |
| develop | 개발 브랜치, 해당 브랜치에서 분기를 파 작업 후 merge |
| feature | 기능 개발 브랜치 |
| hotfix | main 브랜치 배포 후 긴급 수정 사항 발생 시 사용하는 브랜치 |


# 🔥 Backend

## 💻 개발 환경
> Language: ```Java 17``` <br>
> Framework: ```Spring Boot 3.3.4``` <br>
> Database: ```MySQL 8.x``` <br>
> ORM: ```JPA(Hibernate)``` <br>
> CI/CD: ```Github Actions``` <br>
> Cloud Platform: ```AWS(EC2, ALB, ACM), GCP(SQL)``` <br>
> Test DB: ```testcontainer```

## ⚙️ 개발 프로세스
- ```TDD (테스트 주도 개발)``` : 구문 커버지리 (Statement coverage) 기준 80%를 목표로 수행
- ```Agile (애자일 프로세스)``` : 1주 단위 스프린트 수행
- ```Github Flow 전략``` : 초기 개발 과정에서 불필요한 브랜치 관리를 피하고, 빠른 배포를 위한 전략 선택
- ```CI/CD 파이프라인을 통한 배포 자동화``` : 서비스 개발이 50% 완료된 시점에서 구축하여 배포 자동화

## 💫 TDD 결과
- Service는 단위 테스트, Repository는 통합 테스트 진행
- ```testcontainer```를 활용하여 데이터베이스 멱등성 보장
- 테스트 코드 커버리지 측정 툴: ```IntelliJ``` <br>

![img.png](./.github/readme-assets/test-coverage.png)
- summary
- statement coverage 기준: 88%
- branch coverage: 54.8%
- class coverage: 100%
- method coverage: 96.7%

## 💫 부하 테스트 결과
- 사용 인스턴스 유형: ```t2.large (ram 8GB)```
- 부하 테스트 측정 툴: ```Jmeter```

![server-test.png](./.github/readme-assets/server-test.png)
- summary
- 도메인별 주요 api 평균 50.3 Throughput





## 🔄 FlowChart of AI & Batch Server
![flow-chart.png](./.github/readme-assets/ai-flow.png)

## 📁 ERD
![erd.png](./.github/readme-assets/erd.png)

- 카테고리에서 연관 관계 설정을 통해 관계형 데이터베이스 활용
- AI 서비스 학습을 위한 soft delete 활용

## 🛠️ CI/CD pipeline
![ci-cd.png](./.github/readme-assets/cicd.png)
1. PR 이벤트 발생 시 CI 실행 (테스트 포함)
2. approve 및 CI 성공 시 merge 가능
3. merge 이벤트 발생 시 CI 스크립트 수행
4. CI 스크립트 성공 시 CD 스크립트 수행
5. Docker 이미지 docker hub에 push
6. SSH로 AWS EC2 연결
7. docker hub에서 이미지 pull
8. dokcer-compose를 활용해 서비스 실행 및 도커 네트워크 구축
5 changes: 5 additions & 0 deletions build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
#!/bin/sh
cd ../
mkdir output
cp -R ./claco-client/* ./output
cp -R ./output ./claco-client/
20 changes: 20 additions & 0 deletions components.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{
"$schema": "https://ui.shadcn.com/schema.json",
"style": "new-york",
"rsc": false,
"tsx": true,
"tailwind": {
"config": "tailwind.config.js",
"css": "src/globals.css",
"baseColor": "neutral",
"cssVariables": true,
"prefix": ""
},
"aliases": {
"components": "@/components",
"utils": "@/lib/utils",
"ui": "@/components/ui",
"lib": "@/lib",
"hooks": "@/hooks"
}
}
Loading