Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v0.1.0 #412

Merged
merged 185 commits into from
Aug 12, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
185 commits
Select commit Hold shift + click to select a range
3304c8f
[BE] feat: 전체 엔티티 설계 및 구현 (#11)
Go-Jaecheol Jul 12, 2023
da57de0
[FE] chore: storybook 설치 및 웹팩 설정 추가 (#18)
xodms0309 Jul 13, 2023
f2f7098
[FE] chore: msw 설정 (#19)
xodms0309 Jul 13, 2023
dbcdc39
[BE] test: 인수테스트에 대한 템플릿 작성 (#21)
Go-Jaecheol Jul 14, 2023
fed8c1d
chore: 디자인 시스템 설치 및 적용 (#37)
hae-on Jul 14, 2023
73c3467
[FE] chore: import 순서 lint 적용 (#35)
xodms0309 Jul 14, 2023
d77f01f
[FE] SvgSprite, SvgIcon 컴포넌트 추가 (#39)
xodms0309 Jul 16, 2023
2eaaddc
[BE] feat: 카테고리 목록 조회 기능 추가 (#25)
hanueleee Jul 17, 2023
3615fe0
[BE] feat: 리뷰 작성 기능 구현 (#24)
wugawuga Jul 17, 2023
a980084
[FE] feat: RankingProductItem, RankingProductList 컴포넌트 추가 (#44)
hae-on Jul 17, 2023
a63bcf6
[BE] feat: 특정 상품의 리뷰 목록 조회 기능 추가 (#40)
70825 Jul 17, 2023
1da49d9
[BE] feat: 특정 상품의 리뷰 좋아요, 좋아요 취소 기능 추가 (#46)
wugawuga Jul 17, 2023
31646e4
[FE] chore: 절대경로를 '@'에서 '@/'로 변경 (#52)
xodms0309 Jul 17, 2023
d133b8d
[BE] feat: 좋아요 수를 기준으로 리뷰 랭킹 조회 기능 추가 (#47)
70825 Jul 18, 2023
b88e130
[FE] feat: ProductItem, ProductList 컴포넌트 추가 (#43)
Leejin-Yang Jul 18, 2023
3ed522c
[FE] feat: CategoryMenu 컴포넌트 추가 (#42)
xodms0309 Jul 18, 2023
2046a96
[BE] feat: 카테고리별 상품 목록 조회 기능 추가 (#51)
hanueleee Jul 18, 2023
4bb98bd
chore: 이슈 템플릿 수정
wugawuga Jul 18, 2023
8d2a92c
chore: pr 템플릿 수정
wugawuga Jul 18, 2023
446dba1
[FE] feat: Bottom Sheet Content 컴포넌트 추가 (#48)
hae-on Jul 18, 2023
84fca34
[BE] feat: 특정 상품에 대한 상세 정보 조회 기능 추가 (#57)
Go-Jaecheol Jul 18, 2023
8b68d0c
[FE] feat: SortButton 컴포넌트 추가 (#50)
hae-on Jul 18, 2023
3c374b9
[FE] feat: 리뷰 랭킹 아이템, 리뷰 랭킹 리스트 컴포넌트 추가 (#53)
xodms0309 Jul 18, 2023
be574c0
[FE] feat: NavigationBar 컴포넌트 추가 (#54)
xodms0309 Jul 18, 2023
8ebc511
[FE] feat: ProductDetail, TagList 컴포넌트 추가 (#56)
Leejin-Yang Jul 18, 2023
791ad44
[FE] feat: 상품 리스트 페이지 타이틀 컴포넌트 추가 (#70)
hae-on Jul 18, 2023
9819090
[FE] refactor: RankingProduct -> ProductRanking 으로 변경 (#73)
hae-on Jul 19, 2023
e5d1cc1
[FE] fix: SortOptionList 스토리 prop 타입 에러 수정 (#80)
Leejin-Yang Jul 19, 2023
e2e7d5e
[BE] chore: application.yml 환경마다 분리 (#81)
wugawuga Jul 19, 2023
39d022a
[BE] fix: datasource url 수정으로 테스트 통과 수정 (#88)
wugawuga Jul 19, 2023
69c7307
[BE] refactor: 리뷰 관련 이슈 제외 코드 리팩터링 (#90)
70825 Jul 19, 2023
8bf9270
[FE] feat: Router 컴포넌트 추가 (#82)
xodms0309 Jul 19, 2023
4712ad2
[FE] feat: TabMenu 컴포넌트 추가 (#74)
Leejin-Yang Jul 20, 2023
83dc3d4
[FE] feat: Header 컴포넌트 추가 (#86)
xodms0309 Jul 20, 2023
c77b081
[FE] feat: 공통 레이아웃 컴포넌트 추가 (#92)
Leejin-Yang Jul 20, 2023
77865d4
[FE] feat: 상세 상품 리스트 페이지 타이틀 컴포넌트 추가 #55 (#78)
hae-on Jul 20, 2023
9041458
[FE] feat: 편의점 PB 상품 아이템 컴포넌트 추가 (#91)
hae-on Jul 20, 2023
f48effe
[BE] refactor: 환경변수에 언더스코어 적용 (#95)
Go-Jaecheol Jul 20, 2023
62ef6c2
[FE] feat: ReviewItem 컴포넌트 추가 (#75)
Leejin-Yang Jul 20, 2023
029146f
[FE] feat: Home 페이지 마크업 (#97)
xodms0309 Jul 20, 2023
e30549d
[FE] feat: svg icon 수정 (#100)
xodms0309 Jul 20, 2023
206a61f
[FE] feat: 상품 리스트 페이지 마크업 (#101)
hae-on Jul 21, 2023
11c659a
[FE] feat: 상품 상세 페이지 마크업 (#102)
Leejin-Yang Jul 21, 2023
e4b63fc
[FE] feat: 상품, 리뷰 목 핸들러 함수 추가 (#115)
Leejin-Yang Jul 24, 2023
bbce2e7
[BE] test: 특정 상품에서 평점순으로 리뷰 목록을 조회하는 테스트 추가 (#117)
70825 Jul 24, 2023
abce4eb
[FE] feat: title 변경과 favicon 추가 (#114)
hae-on Jul 25, 2023
889f382
[FE] feat: 별점 컴포넌트 구현 (#118)
hae-on Jul 25, 2023
9f0541e
[FE] feat: 리뷰 상품 요약 컴포넌트 구현 (#113)
hae-on Jul 25, 2023
0c034f6
[FE] feat: 리뷰 사진 업로드 컴포넌트 추가 (#119)
xodms0309 Jul 25, 2023
4650aaf
[FE] feat: api 기본 설정 및 카테고리 api 연결 (#122)
xodms0309 Jul 25, 2023
78500c3
[BE] feat: 이미지 업로드 분기처리, 상품 평균 평점 기능 구현 (#94)
wugawuga Jul 25, 2023
d8b9263
[ALL] api 문서 swagger 적용 (#126)
wugawuga Jul 25, 2023
ac668ef
[BE] fix: productId 삭제한거 충돌로 build 실패 수정 (#128)
wugawuga Jul 25, 2023
ee14e1a
[BE] fix: 리뷰 평점 요청 1점대로 수정한 부분 테스트 수정 (#133)
wugawuga Jul 25, 2023
3e877a6
[FE] feat: 리뷰 작성 컴포넌트 구현 (#124)
Leejin-Yang Jul 25, 2023
1e75fc8
[BE] refactor: 멤버의 나이, 성별, 전화번호 삭제 (#135)
70825 Jul 25, 2023
13ef414
[BE] feat: 사용자 리뷰 정렬 기능 사용시 후순위 정렬 옵션을 구현 (#140)
70825 Jul 25, 2023
f34d1f7
[FE] feat: 태그 컴포넌트 구현 (#120)
xodms0309 Jul 26, 2023
d7c95de
[FE] feat: 정렬 버튼 분리 (#141)
Leejin-Yang Jul 26, 2023
5fac885
[BE] chore: test github actions workflow script 작성 (#149)
wugawuga Jul 27, 2023
26dc9e6
[FE] feat: 상품 상세 조회 API 연결 (#143)
Leejin-Yang Jul 27, 2023
c731a65
[FE] feat: 상품 리뷰 조회 API 연결 (#144)
Leejin-Yang Jul 27, 2023
f0d4b67
[BE] feat : 카테고리별 상품 목록 조회시 정렬 조건 추가 (평점순 / 리뷰개수순) (#146)
hanueleee Jul 27, 2023
bd9fd3f
[FE] feat: 리뷰 좋아요 API 연결 (#147)
Leejin-Yang Jul 27, 2023
95a3a08
[FE] feat: 카테고리별 상품을 가져오는 API 연결 (#148)
xodms0309 Jul 27, 2023
bb225bf
feat: 리뷰 생성 시간 필드 추가 (#152)
70825 Jul 27, 2023
c4e972c
[BE] fix: Service 테스트에도 DataCleaner 추가하여 테스트 격리 적용 (#155)
70825 Jul 27, 2023
43b3bbd
[FE] Button 전체 수정 (#159)
hae-on Jul 27, 2023
461ac4f
[BE] feat: 전체 태그 목록 조회 기능 추가 (#161)
Go-Jaecheol Jul 28, 2023
b2ddd7e
[BE] 카카오 로그인 기능을 추가 (#123)
70825 Jul 28, 2023
62a4db9
[FE] feat: 리뷰 작성 페이지 구현 (#150)
hae-on Jul 28, 2023
8964eef
[FE] 충돌 해결 (#167)
hae-on Jul 29, 2023
e0d6ef5
[FE] fix: 바텀시트 오류 해결 (#169)
Leejin-Yang Jul 29, 2023
3e530d4
[FE] Tag 컴포넌트 디자인 수정 (#170)
hae-on Jul 30, 2023
e4535e2
[FE] feat: 상품 목록 정렬 기능 API 연결 (#164)
xodms0309 Jul 30, 2023
445ed9a
[FE] feat: 로그인 페이지 구현 (#162)
Leejin-Yang Jul 30, 2023
37cb7c7
[FE] fix: useGet 파라미터 타입 에러 수정 (#178)
Leejin-Yang Jul 30, 2023
a4ad20a
[FE] feat: 리뷰 태그 조회 API 연결 (#176)
hae-on Jul 30, 2023
16d2efa
[BE] test: 특정 상품에서 최신순으로 리뷰 목록을 조회하는 테스트 추가 (#171)
70825 Jul 31, 2023
0f0f020
[BE] fix: 정렬된 리뷰 목록 페이징 요청시 API가 정상적으로 응답하도록 수정 (#174)
70825 Jul 31, 2023
6ed2dd6
[FE] feat: 상세 레이아웃 추가 (#182)
Leejin-Yang Jul 31, 2023
2a64086
[FE] feat: 리뷰랭킹 조회 API 연결 (#180)
xodms0309 Aug 1, 2023
827a7d6
[BE] feat: CORS를 설정하다 (#190)
70825 Aug 1, 2023
c94f539
[BE] fix: CORS에서 모든 헤더를 열어주는 것으로 수정 (#193)
70825 Aug 1, 2023
7bf458c
[BE] refactor: 로그인 url 변경 (#195)
70825 Aug 1, 2023
2a469d4
[BE] refactor: get 요청에서 post 요청으로 변경 (#198)
70825 Aug 1, 2023
6f0fce3
[ALL] feat: 로그인 API 연결 (#199)
Leejin-Yang Aug 1, 2023
cbaf099
[BE] fix: 회원을 등록할 때, 새로운 트랜잭션에서 수행되도록 수정 (#201)
70825 Aug 1, 2023
2894b9d
[BE] refactor: readonly 제거 (#203)
70825 Aug 1, 2023
75e21a5
[BE] feat: 회원 정보를 수정하는 기능 추가 (#186)
70825 Aug 1, 2023
9a0661e
[BE] feat: 로그인 Swagger UI 추가 (#191)
70825 Aug 1, 2023
ad2f8f8
feat: 정렬 필터링 추가 (#209)
hae-on Aug 2, 2023
d1d1afd
[BE] feat: 리뷰 작성과 리뷰 좋아요 기능에 로그인 붙이기 (#206)
wugawuga Aug 2, 2023
a0d2122
[FE] feat: 회원 정보 API 연결 및 회원, 비회원 처리 (#211)
Leejin-Yang Aug 2, 2023
5fc963b
[BE] 회원 정보를 조회하는 기능 추가 (#212)
70825 Aug 2, 2023
214b508
[BE] refactor: 사용자 정보 조회, 수정 요청을 할 때, 쿠키를 통해 사용자를 파악할 수 있도록 수정 (#216)
70825 Aug 2, 2023
8b15770
[BE] fix: POST -> GET, 302 Found -> 200 OK로 변경 (#220)
70825 Aug 2, 2023
fb7c370
[FE] refactor: 세션아이디 요청 메서드 GET으로 수정 (#222)
Leejin-Yang Aug 2, 2023
22a5516
[BE] fix: allowCredentials, allowedOrigins 수정 (#224)
wugawuga Aug 2, 2023
ebaaca6
[FE] feat: 회원 정보 요청 제거 (#229)
Leejin-Yang Aug 2, 2023
b60c5ee
[FE] feat: 홈 화면에 보이는 상품 개수 조절 및 엑박 수정 (#214)
xodms0309 Aug 2, 2023
b4b580c
[FE] refactor: 버튼 내부에 div 태그 제거 (#217)
xodms0309 Aug 2, 2023
01a495c
[FE] feat: 세션 아이디 요청에 credentials 옵션 추가 (#231)
Leejin-Yang Aug 2, 2023
428d5a9
feat: 웹 접근성 추가 (#225)
hae-on Aug 2, 2023
6565bf0
fix: svg alt 오류 수정 (#234)
hae-on Aug 2, 2023
43c0f6d
[FE] feat: 회원 조회 요청 추가 (#235)
Leejin-Yang Aug 2, 2023
9164774
[BE] feat: 상품 랭킹 기능 추가 (#204)
Go-Jaecheol Aug 2, 2023
bcab070
[BE] fix: CORS 관련 설정 제거 (#238)
Go-Jaecheol Aug 2, 2023
738b449
[FE] feat: 세션 아이디 로그 확인 (#242)
Leejin-Yang Aug 2, 2023
46b9566
fix: MemberHandlerInterceptor의 매핑 url pattern 수정 (#244)
hanueleee Aug 2, 2023
4dcb7a7
[BE] feat: log 추가 (#246)
wugawuga Aug 2, 2023
3574115
[FE] feat: 리뷰 작성 기능 구현 (#247)
hae-on Aug 2, 2023
72f3610
[FE] fix: 헤더 삭제 (#249)
hae-on Aug 2, 2023
d178a5f
[BE] chore: 파일 업로드 관련 의존성 추가 (#251)
wugawuga Aug 2, 2023
64fb07e
[BE] fix: 의존성 에러 수정 (#252)
wugawuga Aug 2, 2023
a9ea8e2
[BE] chore: multipart 관련 yml 수정 (#253)
wugawuga Aug 2, 2023
31fe074
fix: blob 추가 (#255)
hae-on Aug 2, 2023
a8a7cd1
[FE] refactor: 이미지 링크 수정 (#257)
hae-on Aug 2, 2023
9385a85
[FE] feat: 이미지 링크 전송 함수 작성 (#259)
hae-on Aug 2, 2023
cef3e80
[BE] chore: 파일 업로드 관련 의존성 제거 (#262)
wugawuga Aug 2, 2023
f124f0c
[BE] chore: 파일 업로드 관련 의존성 추가 (#265)
wugawuga Aug 2, 2023
3ccf685
[FE] feat: 리뷰 좋아요 요청 수정 (#268)
Leejin-Yang Aug 2, 2023
b26beb8
[FE] fix: 리뷰 좋야요 요청 본문 수정 (#270)
Leejin-Yang Aug 2, 2023
c5c2ddd
[FE] fix: 리뷰 좋아요 요청 헤더 추가 (#272)
Leejin-Yang Aug 2, 2023
db44058
[BE] fix: 리뷰 좋아요 시 NPE 발생 수정 (#274)
wugawuga Aug 3, 2023
dd6019a
[BE] refactor: 리뷰 페이징 dto에 작성 시간을 추가 (#239)
70825 Aug 3, 2023
256db71
[BE] fix: 기존 회원은 홈으로, 신규 회원은 마이페이지로 이동 (#241)
70825 Aug 3, 2023
29fc39b
[BE] fix: 리뷰 좋아요가 존재하거나 존재하지 않을 때 분기처리 수정 (#276)
wugawuga Aug 3, 2023
ece9741
[FE] feat: 리뷰 좋아요 요청 본문 수정 (#278)
Leejin-Yang Aug 3, 2023
108d055
[FE] fix: 재구매 철자 수정과 이미지 경로 수정 (#280)
hae-on Aug 3, 2023
c02f2b3
[FE] feat: 무한 스크롤 구현 (#210)
xodms0309 Aug 3, 2023
ca01491
[BE] feat: 로그인 에러 핸들링 기능 추가 (#289)
70825 Aug 3, 2023
fd15941
[BE] fix: 로그인된 회원 기준으로 좋아요 조회되게 수정 (#293)
wugawuga Aug 3, 2023
d127270
[BE] refactor: 트랜잭션을 팀 컨벤션에 맞게 리팩터링 (#291)
70825 Aug 3, 2023
84f55ea
[FE] feat: 리뷰 조회 회원, 비회원 처리 (#297)
Leejin-Yang Aug 3, 2023
298dc70
[FE] feat: 리뷰 작성 필수값 미입력시 작성 버튼 비활성화 (#287)
hae-on Aug 3, 2023
2cc7f3e
[FE] feat: 로그인 안 했을 때 리뷰 작성 막기, 작성 완료 후 모달 닫기, 개발 환경일 때 이미지 경로 수정 (#292)
hae-on Aug 3, 2023
e27cee1
[BE] fix: 트랜잭션 전파 옵션을 설정 (#300)
70825 Aug 3, 2023
9be64c9
[FE] fix: 무한스크롤이 되지 않는 오류 해결 (#296)
xodms0309 Aug 3, 2023
8f82ced
[FE] feat: 상품 랭킹 API 연결 (#299)
xodms0309 Aug 3, 2023
023c2b7
[FE] feat: 리뷰 Post 후 get 로직 구현과 리뷰 기본 값 최신 작성순으로 변경 (#304)
hae-on Aug 3, 2023
b82e0f7
[FE] fix: 타입 에러 수정과 페이지 컨텍스트 분리 (#306)
hae-on Aug 3, 2023
2afdd71
feat: 폼 제출 후 리셋 (#308)
hae-on Aug 3, 2023
77e601f
[FE] feat: 리뷰 좋아요 시 리뷰 숫자 업데이트 구현 (#310)
Leejin-Yang Aug 3, 2023
d0b1c20
[FE] fix: 폼 작성 후 리셋 에러 수정 (#311)
hae-on Aug 3, 2023
a38096d
fix: 폼 비우기 에러 해결 (#315)
hae-on Aug 3, 2023
eeae719
[FE] feat: 마이페이지 접근시 회원 정보 조회 요청 추가 (#316)
Leejin-Yang Aug 3, 2023
f25604d
[FE] feat: 상품 리스트에서 PB상품, 공통 상품 이동 기능 추가 (#227)
xodms0309 Aug 3, 2023
36a9858
[FE] feat: 리뷰 작성 페이지 웹 접근성 고려 (#281)
hae-on Aug 4, 2023
c9d8346
[FE] feat: 상품 사진이 없는 경우 미리보기 사진으로 대체 (#317)
xodms0309 Aug 4, 2023
ba27a0d
[FE] feat: 리뷰 상대 날짜 추가 (#294)
Leejin-Yang Aug 4, 2023
f4f9361
[FE] feat: 상품 상세 로그인 필요 메시지에 로그인 링크 추가 (#319)
Leejin-Yang Aug 4, 2023
ccb9ec5
[FE] fix: 리뷰 작성 폼 에러 수정 (#322)
Leejin-Yang Aug 4, 2023
d449a76
[BE] fix: 카카오 로그인 경로 수정 (#324)
70825 Aug 4, 2023
7473c96
[BE] feat: warn, error 발생 시 슬랙으로 알람기능 추가 (#327)
wugawuga Aug 7, 2023
7e4d6ca
[BE] feat: warn, error 발생 시 슬랙으로 알람기능 yml 설정추가 (#344)
wugawuga Aug 7, 2023
3934c8b
[FE] feat: 라우터 관련 이슈 해결 (#342)
xodms0309 Aug 7, 2023
627bee5
[FE] feat: 리뷰 작성 리팩터링 (#345)
hae-on Aug 8, 2023
14a2f63
[FE] refactor: 리뷰 작성 폼 컨텍스트로 리팩터링 (#352)
Leejin-Yang Aug 9, 2023
9655a66
[BE] feat: 꿀조합 작성 기능 구현 (#349)
hanueleee Aug 9, 2023
b0b9390
[FE] feat: 이미지 압축 구현 (#355)
hae-on Aug 9, 2023
acd74f0
[FE] feat: react-query 도입 (#357)
xodms0309 Aug 9, 2023
e457a36
[FE] fix: 이미지 압축 패키지 설치 및 웹팩 설정 수정 (#362)
Leejin-Yang Aug 9, 2023
057fcee
[BE] feat: logback 환경 분리 설정 (#368)
wugawuga Aug 9, 2023
6641e42
[BE] fix: test trace log 제거 (#371)
wugawuga Aug 9, 2023
3504b75
[BE] fix: log 안찍히는 오류 수정 (#373)
wugawuga Aug 9, 2023
f9fb25a
[FE] chore: testing-library 및 jest 설정 (#183)
Leejin-Yang Aug 10, 2023
b13d1ae
[FE] fix: 상품 상세 페이지에서 무한스크롤 안되는 버그 수정 (#365)
xodms0309 Aug 10, 2023
a344afd
[FE] feat: 에러, 로딩 UI 추가 (#369)
xodms0309 Aug 10, 2023
9293ba2
[FE] feat: 리뷰 좋아요 디바운스 적용 (#377)
Leejin-Yang Aug 10, 2023
300c027
[BE] fix: application.yml profile 환경변수 설정 (#375)
wugawuga Aug 10, 2023
0dbd667
[FE] feat: Input 컴포넌트 추가 (#380)
xodms0309 Aug 10, 2023
3951b8a
[FE] feat: 스크롤 기능 구현 (#348)
hae-on Aug 10, 2023
ffb6d53
[FE] feat: 카테고리에 따른 태그 색상 변경 (#359)
hae-on Aug 11, 2023
fa5ae5b
fix: 태그 저장 오류 해결 (#389)
hae-on Aug 11, 2023
dff65bf
[FE] refactor: productTitle 이름 변경 (#391)
hae-on Aug 11, 2023
8e04550
[FE] refactor: 리액트 쿼리로 마이그레이션 (#384)
hae-on Aug 11, 2023
840306f
[BE] fix: 환경변수 관리 수정 (#395)
wugawuga Aug 11, 2023
704aa33
[BE] feat: 모니터링 대시보드 추가 (#396)
70825 Aug 11, 2023
56f51b8
[BE] fix: yml 에러 수정 (#398)
70825 Aug 11, 2023
e1b9bbf
[FE] refactor: 공통 hook들을 hooks/common으로 이동 (#401)
xodms0309 Aug 11, 2023
902eab1
[FE] feat: pb 상품 더하기 버튼과 라우팅 (#399)
hae-on Aug 11, 2023
bfd39eb
[BE] feat: 꿀조합 상세 정보 조회 기능 (#364)
hanueleee Aug 11, 2023
d96bb60
[BE] refactor: 테스트 코드 리팩터링 (#376)
70825 Aug 11, 2023
7be8a27
[ALL] chore: 릴리즈 노트 워크플로우 작성 (#411)
Leejin-Yang Aug 12, 2023
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
  •  
  •  
  •  
4 changes: 4 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,7 @@ assignees: ''
## 어떤 기능을 구현하나요?

- 구현 할 기능을 작성합니다.

## 일정

- 추정 시간
5 changes: 5 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,8 @@
## 🎸 기타

- 특이 사항이 있으면 작성합니다.

## ⏰ 일정

- 추정 시간 :
- 걸린 시간 :
17 changes: 17 additions & 0 deletions .github/release-drafter.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
name-template: 'v$RESOLVED_VERSION'
tag-template: 'v$RESOLVED_VERSION'
template: |
# What's Changed

$CHANGES

**Full Changelog**: https://github.com/$OWNER/$REPOSITORY/compare/$PREVIOUS_TAG...v$RESOLVED_VERSION

categories:
- title: '🔑 FE'
labels:
- '🔑 FE'
- title: '🔒 BE'
labels:
- '🔒 BE'
change-template: '- $TITLE @$AUTHOR (#$NUMBER)'
36 changes: 36 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
name: 릴리즈 노트 작성

on:
push:
branches:
- main
tags:
- v*.*.*

jobs:
build:
runs-on: ubuntu-latest

steps:
- name: 저장소 가져오기
uses: actions/checkout@v3
with:
fetch-depth: 0

- name: 버전 가져오기
id: version
run: |
tag=${GITHUB_REF/refs\/tags\//}
version=${tag#v}
major=${version%%.*}
echo "tag=${tag}" >> $GITHUB_OUTPUT
echo "version=${version}" >> $GITHUB_OUTPUT
echo "major=${major}" >> $GITHUB_OUTPUT

- name: 릴리즈 노트 작성
uses: release-drafter/release-drafter@master
with:
version: ${{ steps.version.outputs.version }}
publish: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
76 changes: 76 additions & 0 deletions .github/workflows/test-fe.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
name: Frontend PR Test

on:
pull_request:
branches:
- main
- develop
paths:
- '.github/**'
- 'frontend/**'

jobs:
test:
runs-on: ubuntu-latest
timeout-minutes: 10

permissions:
checks: write
pull-requests: write

steps:
- name: Repository 체크아웃
uses: actions/checkout@v3

- name: Node 설정
uses: actions/setup-node@v3
with:
node-version: '18.16.1'

- name: node_modules 캐싱
id: cache
uses: actions/cache@v3
with:
path: '**/frontend/node_modules'
key: ${{ runner.os }}-node-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-node-

- name: 의존성 설치
working-directory: frontend/
if: steps.cache.outputs.cache-hit != 'true'
run: yarn install --pure-lockfile

- name: 테스트 실행
working-directory: frontend/
run: yarn test
continue-on-error: true

- name: 테스트 결과 PR에 코멘트 등록
uses: EnricoMi/publish-unit-test-result-action@v1
if: always()
with:
files: '**/frontend/test-results/results.xml'

- name: 테스트 실패 시, 실패한 코드 라인에 Check 코멘트를 등록
uses: mikepenz/action-junit-report@v3
if: always()
with:
report_paths: '**/frontend/test-results/results.xml'
token: ${{ github.token }}

- name: build 실패 시 Slack으로 알립니다
uses: 8398a7/action-slack@v3
with:
status: ${{ job.status }}
author_name: 프론트엔드 테스트 실패 알림
fields: repo, message, commit, author, action, eventName, ref, workflow, job, took
env:
SLACK_CHANNEL: group-dev
SLACK_COLOR: '#FF2D00'
SLACK_USERNAME: 'Github Action'
SLACK_ICON: https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png
SLACK_TITLE: Build Failure - ${{ github.event.pull_request.title }}
SLACK_MESSAGE: PR Url - ${{ github.event.pull_request.url }}
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
if: failure()
76 changes: 76 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
name: PR Test

on:
pull_request:
branches:
- main
- develop
paths:
- '.github/**'
- 'backend/**'

jobs:
test:
runs-on: ubuntu-latest
timeout-minutes: 10

permissions:
checks: write
pull-requests: write

steps:
- name: Repository 체크아웃
uses: actions/checkout@v3

- name: JDK 11 설정
uses: actions/setup-java@v3
with:
java-version: 11
distribution: temurin

- name: Gradle 캐싱
uses: actions/cache@v3
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
restore-keys: |
${{ runner.os }}-gradle-

- name: Gradle 권한 부여
working-directory: backend/
run: chmod +x ./gradlew

- name: 테스트 실행
working-directory: backend/
run: ./gradlew --info test

- name: 테스트 결과 PR에 코멘트 등록
uses: EnricoMi/publish-unit-test-result-action@v1
if: always()
with:
files: '**/backend/build/test-results/test/TEST-*.xml'

- name: 테스트 실패 시, 실패한 코드 라인에 Check 코멘트를 등록
uses: mikepenz/action-junit-report@v3
if: always()
with:
report_paths: '**/backend/build/test-results/test/TEST-*.xml'
token: ${{ github.token }}

- name: build 실패 시 Slack으로 알립니다
uses: 8398a7/action-slack@v3
with:
status: ${{ job.status }}
author_name: 백엔드 테스트 실패 알림
fields: repo, message, commit, author, action, eventName, ref, workflow, job, took
env:
SLACK_CHANNEL: group-dev
SLACK_COLOR: '#FF2D00'
SLACK_USERNAME: 'Github Action'
SLACK_ICON: https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png
SLACK_TITLE: Build Failure - ${{ github.event.pull_request.title }}
SLACK_MESSAGE: PR Url - ${{ github.event.pull_request.url }}
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
if: failure()
31 changes: 20 additions & 11 deletions backend/build.gradle
Original file line number Diff line number Diff line change
@@ -1,28 +1,37 @@
plugins {
id 'java'
id 'org.springframework.boot' version '2.7.13'
id 'io.spring.dependency-management' version '1.0.15.RELEASE'
id 'java'
id 'org.springframework.boot' version '2.7.13'
id 'io.spring.dependency-management' version '1.0.15.RELEASE'
}

group = 'com.funeat'
version = '0.0.1-SNAPSHOT'

java {
sourceCompatibility = '11'
sourceCompatibility = '11'
}

repositories {
mavenCentral()
mavenCentral()
}

dependencies {
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-web'
runtimeOnly 'com.mysql:mysql-connector-j'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testRuntimeOnly 'com.h2database:h2'
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-web'
runtimeOnly 'com.mysql:mysql-connector-j'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testImplementation 'io.rest-assured:rest-assured:4.4.0'
testRuntimeOnly 'com.h2database:h2'

implementation 'org.springdoc:springdoc-openapi-ui:1.7.0'
implementation 'commons-fileupload:commons-fileupload:1.5'
implementation 'commons-io:commons-io:2.11.0'
implementation 'com.github.maricn:logback-slack-appender:1.4.0'

implementation 'org.springframework.boot:spring-boot-starter-actuator'
runtimeOnly 'io.micrometer:micrometer-registry-prometheus'
}

tasks.named('test') {
useJUnitPlatform()
useJUnitPlatform()
}
31 changes: 31 additions & 0 deletions backend/src/main/java/com/funeat/auth/application/AuthService.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
package com.funeat.auth.application;

import com.funeat.auth.dto.SignUserDto;
import com.funeat.auth.dto.UserInfoDto;
import com.funeat.auth.util.PlatformUserProvider;
import com.funeat.member.application.MemberService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

@Service
@Transactional(readOnly = true)
public class AuthService {

private final MemberService memberService;
private final PlatformUserProvider platformUserProvider;

public AuthService(final MemberService memberService, final PlatformUserProvider platformUserProvider) {
this.memberService = memberService;
this.platformUserProvider = platformUserProvider;
}

public SignUserDto loginWithKakao(final String code) {
final UserInfoDto userInfoDto = platformUserProvider.getPlatformUser(code);
final SignUserDto signUserDto = memberService.findOrCreateMember(userInfoDto);
return signUserDto;
}

public String getLoginRedirectUri() {
return platformUserProvider.getRedirectURI();
}
}
53 changes: 53 additions & 0 deletions backend/src/main/java/com/funeat/auth/dto/KakaoTokenDto.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
package com.funeat.auth.dto;

import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;

public class KakaoTokenDto {

private final String accessToken;
private final String tokenType;
private final String refreshToken;
private final String expiresIn;
private final String scope;
private final String refreshTokenExpiresIn;

@JsonCreator
public KakaoTokenDto(@JsonProperty("access_token") final String accessToken,
@JsonProperty("token_type") final String tokenType,
@JsonProperty("refresh_token") final String refreshToken,
@JsonProperty("expires_in") final String expiresIn,
@JsonProperty("scope") final String scope,
@JsonProperty("refresh_token_expires_in") final String refreshTokenExpiresIn) {
this.accessToken = accessToken;
this.tokenType = tokenType;
this.refreshToken = refreshToken;
this.expiresIn = expiresIn;
this.scope = scope;
this.refreshTokenExpiresIn = refreshTokenExpiresIn;
}

public String getAccessToken() {
return accessToken;
}

public String getTokenType() {
return tokenType;
}

public String getRefreshToken() {
return refreshToken;
}

public String getExpiresIn() {
return expiresIn;
}

public String getScope() {
return scope;
}

public String getRefreshTokenExpiresIn() {
return refreshTokenExpiresIn;
}
}
Loading