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

[A팀] 백엔드 파트 코드리뷰용 PR #44

Open
wants to merge 386 commits into
base: review
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
386 commits
Select commit Hold shift + click to select a range
ae88be9
#19 [refact] 유저성향추천 메소드인 RecommendedUserProfile을 리팩토링하여 예외처리 및 반환타입을 …
juuuunny Oct 17, 2024
f535789
#19 [chore] 유저구역추천 메소드인 RecommendedTopRankedZones의 공백 제거
juuuunny Oct 17, 2024
41581b2
#19 [feat] StadiumService의 구역추천 메소드 반환 형태를 맞게 변경한다.
juuuunny Oct 17, 2024
7d0e78d
#19 [feat] Result, Stadium, Zone에 대한 레포지토리를 생성한다.
juuuunny Oct 17, 2024
31c71ce
#19 [feat] 본래 구역추천 api에서 결과값 모두 반환에서 데이터베이스에 저장 후 결과id만 반환으로 변경한다.
juuuunny Oct 17, 2024
282e256
#19 [chore] 구역 정보에서 구역이름을 zone에서 zoneName으로 변경한다.
juuuunny Oct 17, 2024
c8fe78b
#19 [feat] 본래 Profile 엔티티 생성 후 본래 enum 저장에서 문장열 리스트 직렬화를 통해 json을 db에…
juuuunny Oct 17, 2024
3cc7859
#19 [rename] 구역 엔티티 이름 Zone으로 변경
juuuunny Oct 17, 2024
a61e331
#19 [feat] 구역추천 결과 db에 직렬화 저장을 위한, 직렬화, 역직렬화 함수를 만든다.
juuuunny Oct 17, 2024
238a4e4
#19 [feat] 직렬화, 역직렬화 CustomException 처리하기
juuuunny Oct 17, 2024
3cb64aa
#19 [feat] Result와 Profile 1대1 매핑관계를 Profile에서 설정으로 변경한다.
juuuunny Oct 17, 2024
3d67cc9
#19 [feat] 추천받은 구역 저장 api 구현을 완료하여 resultId를 반환한다.
juuuunny Oct 17, 2024
0aefdfb
#19 [feat] Profile 레포지토리 생성 및 저장되도록 한다.
juuuunny Oct 17, 2024
49d058d
#19 [chore] 추천받은 구역 저장 api 메소드명 변경 및 성공메시지 변경
juuuunny Oct 17, 2024
7a01018
#19 [feat] 역직렬화가 안되던 문제를 JsonCreator와 JsonProperty를 이용하여 해결하였다.
juuuunny Oct 17, 2024
4fc1a90
#19 [chore] 컨트롤러에 주석으로 설명을 작성한다.
juuuunny Oct 17, 2024
fda4d34
#19 [feat] 해당 결과의 프로필 조회에 대한 api를 생성한다.
juuuunny Oct 17, 2024
7742944
#19 [feat] 해당 결과의 프로필 조회의 Response Dto를 생성한다.
juuuunny Oct 17, 2024
3cfd8ab
#19 [feat] 프로필 조회에 대한 성공status 생성 및, 추천 결과 조회의 httpStatus값을 수정한다.
juuuunny Oct 17, 2024
ab694a6
#19 [feat] 결과에 대한 프로필 조회 api 비즈니스 로직을 완성하여 조회한다.
juuuunny Oct 17, 2024
e55141a
#19 [feat] 결과에 대한 추천구역 리스트 조회 api를 생성한다.
juuuunny Oct 17, 2024
f633563
#19 [feat] 결과에 대한 추천구역 리스트 조회 api의 비즈니스 로직을 구현한다.
juuuunny Oct 17, 2024
9da1e1d
#19 [chore] 전체 파일들 의미 없는 주석, import 제거 및 구조 변경
juuuunny Oct 18, 2024
5b896d7
#19 [chore] 커스텀 에러 코드 명명규칙을 도메인명-001 형식으로 변경한다.
juuuunny Oct 18, 2024
f9ae85f
#19 [feat] 로그인 되지 않은 익명 유저도 api를 사용 할 수 있도록 SecurityContextProvider에서…
juuuunny Oct 18, 2024
f19434f
#16 [refactor] : 패키지를 이동한다
bbbang105 Oct 18, 2024
d19bc16
#16 [refactor] : 중복되는 경로를 제거한다
bbbang105 Oct 18, 2024
95bfc75
#19 [feat] 추천받은 구역정보 저장 시 로그인 했을 경우는 userId도 함께 저장하도록 로직을 수정한다.
juuuunny Oct 18, 2024
b3f3bec
#19 [feat] 익명 사용자 유무 확인 메소드를 삭제한다.
juuuunny Oct 18, 2024
7ccc4a8
#16 [feat] : 네이버 클로바 환경변수를 추가한다
bbbang105 Oct 19, 2024
2f1fa1b
#16 [feat] : 외부와 통신하기 위한 웹 클라이언트 기능을 추가한다
bbbang105 Oct 19, 2024
c2edea9
#16 [feat] : 통신에 필요한 데이터 형태를 지정한다
bbbang105 Oct 19, 2024
4694804
#16 [feat] : 메세지 생성 팩토리를 추가한다
bbbang105 Oct 19, 2024
72cc845
#16 [feat] : 클로바 API 요청 생성 팩토리를 추가한다
bbbang105 Oct 19, 2024
c8ff388
#16 [feat] : 외부 클로바 API와 통신할 수 있다
bbbang105 Oct 19, 2024
9081127
#16 [feat] : 클로바 챗봇과 자유롭게 대화할 수 있다
bbbang105 Oct 19, 2024
5cfba9d
#16 [fix] : 컴파일 에러를 해결한다
bbbang105 Oct 19, 2024
ff9d217
#16 [refactor] : 빌더를 생성자에 붙이는 방식으로 변경한다
bbbang105 Oct 19, 2024
9ec6c8a
#16 [feat] : 유효성 검증 기능을 추가한다
bbbang105 Oct 19, 2024
2f5db3d
Merge pull request #22 from KUSITMS-30th-TEAM-A/feature/#16/clova-cha…
bbbang105 Oct 19, 2024
249e6d1
#19 [feat] 엔티티에서 AllArgsConstructor 구조 제거 및 직접 생성자에 Builder 추가로 변경한다.
juuuunny Oct 19, 2024
69de32c
#19 [feat] JpaRepository에서 엔티티 조회 시 Optional 처리 해두기
juuuunny Oct 19, 2024
bcd5bac
#19 [feat] 안쓰는 import문 삭제
juuuunny Oct 19, 2024
9340389
#19 [feat] 유저 정보에서 휴대폰 번호 삭제 및 주석처리
juuuunny Oct 19, 2024
317ce34
#19 [feat] 전체 정적 팩토리메소드의 네이밍을 변경한다.
juuuunny Oct 19, 2024
f3c7775
#19 [feat] 전체.
juuuunny Oct 19, 2024
d907b78
#19 [chore] gitignore에서 openapi 삭제
juuuunny Oct 19, 2024
c9d74ec
#19 [feat] open-api-3.0.1.json 파일 생성하기
juuuunny Oct 19, 2024
97a89fb
Merge pull request #20 from KUSITMS-30th-TEAM-A/feature/#19/seat-reco…
juuuunny Oct 19, 2024
5ae0048
#21 [feat] 수원KT위즈 좌석 가이드 데이터를 저장한다.
juuuunny Oct 19, 2024
5834563
#21 [feat] 잠실종합운동장 1차 구역가이드 데이터 추가 완료
juuuunny Oct 19, 2024
bb4810a
#21 [feat] 구역가이드 정보 조회 Controller를 생성한다.
juuuunny Oct 20, 2024
ce17790
#21 [feat] 구역가이드 정보 조회 성공ENUM을 만든다.
juuuunny Oct 20, 2024
b6e1a8f
#21 [feat] 구역가이드 정보 조회 응답Dto를 생성한다.
juuuunny Oct 20, 2024
39415a8
#23 [feat] : 에러 메세지를 커스텀 할 수 있는 응답 메서드를 추가한다
bbbang105 Oct 20, 2024
2be759c
#23 [fix] : MacOS Silicon에서의 라이브러리 누락 문제를 해결한다
bbbang105 Oct 20, 2024
67fc44f
#23 [feat] : 쿼리 파라미터 검증 기능을 추가한다
bbbang105 Oct 20, 2024
3b2a6bc
#23 [feat] : 유효성 검증 에러를 처리할 수 있다
bbbang105 Oct 20, 2024
d034a07
#21 [feat] 구역가이드 API 비즈니스 로직 구현 완료.
juuuunny Oct 20, 2024
4f74584
#23 [feat] : 에러 처리를 추가하며, 메세지를 정제하여 전달한다
bbbang105 Oct 20, 2024
fda923e
#21 [feat] 해당 스타디움에 대한 구역명들 리스트 조회 api 구현 완료
juuuunny Oct 20, 2024
a8ba29b
#21 [chore] 구역 가이드 API DB에서 스타디움 찾는 로직 삭제
juuuunny Oct 20, 2024
45550b0
#21 [chore] 쓸모없는 코드 제거
juuuunny Oct 20, 2024
92c73f5
#21 [feat] 구역명 리스트 조회, 구역가이드 조회 엔드포인트 설정 및 url 경로 예외 처리 하기
juuuunny Oct 20, 2024
a6a64f1
#21 [chore] 구역 추천 결과 저장, 조회, 구역가이드 API 엔드포인트 변경 및 필터 경로를 변경한다.
juuuunny Oct 20, 2024
cee7fb5
Merge pull request #25 from KUSITMS-30th-TEAM-A/feature/#21/seat-guide
juuuunny Oct 20, 2024
0c64819
Merge branch 'develop' into feature/#23/handle-valid-error
bbbang105 Oct 20, 2024
93cefa0
Merge pull request #24 from KUSITMS-30th-TEAM-A/feature/#23/handle-va…
bbbang105 Oct 20, 2024
98d251b
#26 [feat] 결과 저장 테스트코드를 작성한다.
juuuunny Oct 20, 2024
746e5a7
#28 [fix] : 타입을 변경하여 int 범위 문제를 해결한다
bbbang105 Oct 21, 2024
5a37a11
#26 [feat] Rest Docs와 Swagger의 수동 연결 성공 및 구역 추천 결과 저장 테스트코드 작성 완료.
juuuunny Oct 21, 2024
a9691b4
Merge pull request #29 from KUSITMS-30th-TEAM-A/fix/#28/seed
bbbang105 Oct 21, 2024
950f34a
#26 [feat] 해당 결과에 대한 프로필 정보 조회 테스트 코드 작성 완료
juuuunny Oct 21, 2024
2daecfa
#26 [feat] 해당 결과에 대한 추천 구역 리스트 조회의 테스트 코드를 작성한다.
juuuunny Oct 21, 2024
43576de
#26 [chore] 결과 테스트 코드 import 제거 및 설명 변경
juuuunny Oct 21, 2024
a28c9c1
#26 [feat] 스타디움의 구역리스트 조회 및 구역가이드 정보 조회 API의 테스트 코드를 작성한다.
juuuunny Oct 21, 2024
b6d3c39
#26 [chore] 스타디움 테스트 코드 import 제거
juuuunny Oct 21, 2024
9d8b270
#26 [chore] 해당 구역추천 결과 저장 테스트 코드 이름 변경
juuuunny Oct 21, 2024
09f0948
#26 [feat] 해당 결과의 추천 구역 리스트 조회 검증 항목을 추가한다.
juuuunny Oct 21, 2024
4d5577e
#26 [chore] build.gradle jjwt 관련 버전 변경
juuuunny Oct 21, 2024
0409935
#26 [chore] build.gradle jjwt 관련 버전 원상 복귀
juuuunny Oct 21, 2024
597d0f2
Merge pull request #30 from KUSITMS-30th-TEAM-A/feature/#26/stadium-t…
juuuunny Oct 21, 2024
1a1c463
#31 [style] : 줄바꿈을 조정한다
bbbang105 Oct 24, 2024
7cea48e
#31 [remove] : 불필요한 Config 기능을 제거한다
bbbang105 Oct 24, 2024
df2209c
#31 [feat] : 배포 도메인의 CORS 설정을 허용한다
bbbang105 Oct 24, 2024
e9637a3
#31 [feat] : 스웨거에 배포 도메인을 추가한다
bbbang105 Oct 24, 2024
9c12e6b
#31 [feat] : 챗봇 기능에 대한 테스트 코드를 작성한다
bbbang105 Oct 24, 2024
942b590
Merge pull request #32 from KUSITMS-30th-TEAM-A/feature/#31/chatbot-t…
bbbang105 Oct 24, 2024
cfdc113
#33 [feat] : 도커파일에 정적 리소스를 copy하는 부분을 추가한다
bbbang105 Oct 30, 2024
0cdb620
#33 [feat] : yaml 파일에 정적 리소스 위치를 명시한다
bbbang105 Oct 30, 2024
2b9a992
#33 [chore] : Swagger 서버 URL을 변경한다
bbbang105 Nov 1, 2024
69f4a72
#33 [chore] : 도커 이미지 생성 시 rest docs 문서가 생성되도록 빌드를 실행한다
bbbang105 Nov 1, 2024
1a8998a
#33 [chore] : openapi3 & asciidoctor 옵션을 추가한다
bbbang105 Nov 1, 2024
1c8d74b
#33 [chore] : -x test 옵션을 제거하여 빌드 시 테스트를 실행하도록 한다
bbbang105 Nov 1, 2024
c13ea0e
#33 [chore] : 불필요한 부분을 제거한다
bbbang105 Nov 1, 2024
d55405e
Merge pull request #34 from KUSITMS-30th-TEAM-A/fix/#33/restdocs
bbbang105 Nov 1, 2024
cf988a7
#35 [feat] : 에러 처리를 추가한다
bbbang105 Nov 1, 2024
66ec312
Merge pull request #36 from KUSITMS-30th-TEAM-A/feature/#35/error
bbbang105 Nov 1, 2024
070c4bd
#38 [feat] 잠실종합운동장 구역가이드 더미데이터 추가
juuuunny Nov 3, 2024
f94cf7e
#39 [feat] 유저 정보 name에서 nickname으로 변경
juuuunny Nov 3, 2024
137ae58
#39 [feat] 닉네임 중복 체크 api 컨트롤러 설정하기
juuuunny Nov 3, 2024
bf255d5
#39 [feat] 닉네임 중복 체크 api request dto을 설정한다.
juuuunny Nov 3, 2024
86439ad
#39 [feat] 닉네임 중복 체크 api 비즈니스 로직 구현을 한다.
juuuunny Nov 3, 2024
c53e163
#39 [rename] nickName -> nickname으로 이름을 변경한다.
juuuunny Nov 3, 2024
3858784
#37 [style] : 불필요한 주석을 제거한다
bbbang105 Nov 3, 2024
cbc8eae
#37 [style] : 주석을 수정하여 코드의 의도를 명확히 설명한다
bbbang105 Nov 3, 2024
9a84255
#39 [feat] 닉네임 중복 체크 API 수정사항을 수정하여 구현 되도록 한다.
juuuunny Nov 3, 2024
9f59210
#39 [chore] .gitignore 변경
juuuunny Nov 3, 2024
eaeb161
#39 [chore] open api 파일 삭제
juuuunny Nov 3, 2024
b775043
Merge pull request #40 from KUSITMS-30th-TEAM-A/feature/#38/Jamsil-Dummy
juuuunny Nov 3, 2024
db28635
Merge pull request #41 from KUSITMS-30th-TEAM-A/feature/#37/annotation
bbbang105 Nov 3, 2024
1ecfcd8
#39 [chore] open api 파일 복구
juuuunny Nov 3, 2024
c689d7f
#39 [chore] gitignore 변경
juuuunny Nov 3, 2024
903570c
#39 [chore] 휴대폰 인증 주석처리 이유 추가하기
juuuunny Nov 3, 2024
09147ec
#39 [chore] 휴대포 인증 주석처리 내용을 변경한다.
juuuunny Nov 3, 2024
538d7de
Merge pull request #42 from KUSITMS-30th-TEAM-A/feature/#39/nickname-…
juuuunny Nov 3, 2024
5987e4b
#43 [feat] 유저 정보 조회, 회원가입, 닉네임 중복 체크 테스트 코드 작성 및 일부 수정
juuuunny Nov 4, 2024
5b4e6bc
#43 [feat] 토큰 재발급 api에서 리프레시 토큰 required=true로 변경한다.
juuuunny Nov 4, 2024
2455f76
#43 [feat] JwtUtil에서 쓸모없는 주석을 제거한다.
juuuunny Nov 4, 2024
482ac59
#43 [feat] 리프레시 토큰, 레지스터 토큰 required=false로 설정한다. null일지 처리를 위해서
juuuunny Nov 4, 2024
a70d2bb
#43 [feat] 토큰 재발행 api의 테스트 코드를 작성한다.
juuuunny Nov 4, 2024
c1fed80
Merge pull request #45 from KUSITMS-30th-TEAM-A/feature/#43/user-test
juuuunny Nov 4, 2024
c4616ee
#46 [feat] 먹거리 엔티티 생성 및 영역 ENUM을 만들어 저장한다.
juuuunny Nov 6, 2024
90e0220
#46 [feat] 먹거리 엔티티의 식사류/후식류 부분 필드를 추가한다.
juuuunny Nov 6, 2024
7c7df4d
#46 [feat] 먹거리 Boundary, Course ENUM에 속하지 않는 값 입력 시 에러 처리가 가능하도록 설정한다.
juuuunny Nov 6, 2024
042bf9f
#46 [feat] 먹거리 Food 엔티티의 필드를 모두 설정한다.
juuuunny Nov 6, 2024
fffd777
#46 [feat] 먹거리 Repository를 생성한다.
juuuunny Nov 6, 2024
e19a06d
#46 [feat] 엔티티들 BaseTimeEntity 상속받도록 구현한다.
juuuunny Nov 6, 2024
badd7ab
#46 [feat] Course 엔티티에서 전체 엔티티 추가하기
juuuunny Nov 6, 2024
edbf7f5
#46 [feat] 음식 정보 조회 컨트롤러 조회 api를 구현한다.
juuuunny Nov 6, 2024
698df41
#46 [feat] 음식 정보 조회 Response Dto를 구현한다.
juuuunny Nov 6, 2024
5ec3dba
#46 [feat] 음식 정보 조회 API 구현을 모두 완료한다.
juuuunny Nov 6, 2024
580a1a4
#46 [rename] 패키지명 food에서 culture로 변경
juuuunny Nov 6, 2024
c0271c2
#46 [chore] build.gradle에 querydsl과 관련된 의존성을 추가한다.
juuuunny Nov 6, 2024
b63b3dd
#46 [feat] QueryDsl 관련 Configuration 설정을 한다.
juuuunny Nov 6, 2024
122bd1a
#47 [feat] : S3 관련 환경변수를 추가한다
bbbang105 Nov 6, 2024
1b3458f
#47 [chore] : S3 의존성을 추가한다
bbbang105 Nov 6, 2024
7f721d0
#47 [feat] : 이미지 URL 필드를 추가한다
bbbang105 Nov 6, 2024
2f1729d
#47 [feat] : S3 Config를 추가한다
bbbang105 Nov 6, 2024
ee2de0a
#47 [feat] : 구역 추천 결과값에 이미지를 함께 반환한다
bbbang105 Nov 6, 2024
cddfe77
#47 [feat] : 구역 추천 결과 프로필 정보 조회 테스트 코드를 수정한다
bbbang105 Nov 6, 2024
5ee0b96
Merge pull request #49 from KUSITMS-30th-TEAM-A/feature/#47/s3
bbbang105 Nov 6, 2024
0feced8
#46 [feat] 해당 조건에 맞는 구장의 먹거리 정보 조회 api를 queryDsl로 변경한다.
juuuunny Nov 6, 2024
3a037a5
#52 [fix] : cors origin을 추가한다
bbbang105 Nov 6, 2024
e03ec33
#46 [feat] 먹거리 정보 api 수정사항 수정
juuuunny Nov 6, 2024
7d3f087
#46 [feat] 즐길거리 엔티티를 생성한다.
juuuunny Nov 6, 2024
837acec
#46 [feat] 먹거리 enum에서 전체 enum을 제거한다.
juuuunny Nov 7, 2024
66280fe
#46 [feat] 즐길거리 조회 API의 컨트롤러를 작성한다.
juuuunny Nov 7, 2024
5401e3a
#46 [feat] 즐길거리 성공 enum 값을 생성한다.
juuuunny Nov 7, 2024
7fa1fa8
#46 [feat] 즐길거리 응답 dto를 생성한다.
juuuunny Nov 7, 2024
c11dead
#46 [feat] 즐길거리 조회 API를 모두 구현한다.
juuuunny Nov 7, 2024
d1bb474
Merge pull request #53 from KUSITMS-30th-TEAM-A/fix/#52/cors
bbbang105 Nov 7, 2024
3b51999
#46 [feat] 즐길거리의 enum 메시지를 수정한다.
juuuunny Nov 7, 2024
7f056d6
#46 [feat] 즐길거리 조회 API의 url을 수정한다.
juuuunny Nov 7, 2024
4f67ab2
#46 [feat] 야구 문화 도메인에서 imgUrl의 필드를 추가한다.
juuuunny Nov 7, 2024
a8162d2
#46 [feat] Entertainment 엔티티의 빌더패턴 생성자를 삭제한다.
juuuunny Nov 7, 2024
c33a694
#46 [feat] 해당 구장의 즐길거리 조회 API의 설명 주석을 추가한다.
juuuunny Nov 7, 2024
778c907
#46 [feat] 구장의 먹거리 정보 조회 API의 테스트코드를 작성한다.
juuuunny Nov 7, 2024
7014fe5
#46 [feat] 구장의 즐길거리 정보 조회 API의 테스트코드를 작성한다.
juuuunny Nov 7, 2024
baf1be7
#46 [feat] 야구 문화 테스트 코드의 예시 테스트 값들을 수정한다.
juuuunny Nov 7, 2024
52be5e9
#46 [feat] 야구 문화의 테스트코드 예시 값을 수정하고 음식 조회에서 course를 선택으로 수정한다.
juuuunny Nov 7, 2024
1eb5c78
#46 [feat] 구장의 즐길거리 Entertainment 엔티티의 설명과 팁을 string에서 리스트 형태로 변경한다.
juuuunny Nov 7, 2024
9c9368e
#46 [feat] 구장의 음식 정보 조회 API의 설명 필드를 팁 필드로 변경한다.
juuuunny Nov 7, 2024
7bb228c
#46 [feat] 구장 즐길거리 API 역직렬화 안되는 버그를 해결한다.
juuuunny Nov 7, 2024
bf0e674
Merge branch 'develop' into feature/#46/jamsil-culture
juuuunny Nov 7, 2024
ac64946
#51 [feat] : 특정 가이드 챗봇 답변에 이미지 URL을 함께 반환한다
bbbang105 Nov 7, 2024
269f5b2
#46 [feat] 리스트의 필드명을 복수형으로 변경한다.
juuuunny Nov 7, 2024
f01f5a8
#46 [feat] enum에서 예외처리는 하지 않도록 변경한다.
juuuunny Nov 7, 2024
94be674
#46 [feat] DTO의 줄바꿈 처리를 하여 가독성을 좋게 변경한다.
juuuunny Nov 7, 2024
27840b3
#46 [feat] equals의 앞쪽은 null 값이 안 오도록 순서를 변경한다.
juuuunny Nov 7, 2024
4b857c2
#50 [feat] : 잠실 구장 구역 이미지 URL을 추가한다
bbbang105 Nov 7, 2024
7364e45
#50 [feat] : KT 구장 구역 이미지 URL을 추가한다
bbbang105 Nov 7, 2024
0a2346c
#50 [feat] : 이미지 URL을 가져오는 메서드를 추가한다
bbbang105 Nov 7, 2024
6cd234b
#50 [feat] : 테스트 코드를 수정한다
bbbang105 Nov 7, 2024
f98dab6
#46 [feat] 가독성 고려하여 코드 수정
juuuunny Nov 7, 2024
64f23da
#46 [feat] Profile 도메인에 이미지Url을 추가한다.
juuuunny Nov 7, 2024
190d04d
#46 [feat] Profile Dto에 imgUrl을 추가한다.
juuuunny Nov 7, 2024
ddbcbbe
Merge pull request #54 from KUSITMS-30th-TEAM-A/feature/#46/jamsil-cu…
juuuunny Nov 7, 2024
a2abe34
Merge pull request #55 from KUSITMS-30th-TEAM-A/feature/#51/chatbot-i…
bbbang105 Nov 7, 2024
71008a6
Merge pull request #56 from KUSITMS-30th-TEAM-A/feature/#50/guide-image
bbbang105 Nov 7, 2024
411063c
#57 [feat] 야구 문화 컨트롤러의 파라미터 유효성 검사를 추가한다.
juuuunny Nov 7, 2024
248d23b
#57 [feat] 전체 파라미터 유효성 검사를 추가한다.
juuuunny Nov 7, 2024
4e8eb25
#57 [feat] Boundary, Course ENUM에서 Optional을 반환하여 찾을 수 있도록 변경한다.
juuuunny Nov 7, 2024
762a580
#57 [feat] 야구문화에서 course에서는 유효성 검사를 제거한다.
juuuunny Nov 7, 2024
266fda2
Merge pull request #58 from KUSITMS-30th-TEAM-A/feature/#57/culture-m…
juuuunny Nov 7, 2024
68aeeb8
#59 [feat] : 가이드 챗봇 답변 조회 API 파라미터 예시를 추가한다
bbbang105 Nov 8, 2024
72f5359
#59 [feat] : 유저 테스트 코드에 스키마 및 타입을 지정한다
bbbang105 Nov 8, 2024
291828d
#59 [feat] : 스타디움 테스트 코드에 스키마 및 타입을 지정한다
bbbang105 Nov 8, 2024
e946bd8
#59 [feat] : Result 테스트 코드에 스키마 및 타입을 지정한다
bbbang105 Nov 8, 2024
24b5cf1
#59 [feat] : Food 테스트 코드에 스키마 및 타입을 지정한다
bbbang105 Nov 8, 2024
7662a57
#59 [feat] : Entertainment 테스트 코드에 스키마 및 타입을 지정한다
bbbang105 Nov 8, 2024
64cfbd1
#61 [remove] : 불필요한 테스트 코드를 제거한다
bbbang105 Nov 8, 2024
8250368
#61 [remove] : 불필요한 도메인을 제거한다
bbbang105 Nov 8, 2024
9cf4482
Merge pull request #62 from KUSITMS-30th-TEAM-A/feature/#61/remove-test
bbbang105 Nov 8, 2024
298e83d
Merge pull request #60 from KUSITMS-30th-TEAM-A/feature/#59/add-descr…
bbbang105 Nov 8, 2024
76d9a22
#63 [feat] 좌석 정보에 컬러를 추가한다.
juuuunny Nov 8, 2024
fa646c9
#63 [feat] Zone 엔티티에 좌석 color 필드를 추가한다.
juuuunny Nov 8, 2024
681031c
#63 [feat] Zone 엔티티에 저장 API에서 구역 color도 함께 저장되도록 구현한다.
juuuunny Nov 8, 2024
d449919
#63 [feat] 구역가이드 조회에서 구역 색깔 반환도 추가한다.
juuuunny Nov 8, 2024
8459b71
#63 [feat] 구역가이드, 구역리스트 조회 테스트코드를 수정한다.
juuuunny Nov 8, 2024
b99e1b9
Merge pull request #64 from KUSITMS-30th-TEAM-A/feature/#63/add-zone-…
juuuunny Nov 8, 2024
dc35c6d
#65 [refactor] : 구장명 및 문자열 비교 방식을 변경한다
bbbang105 Nov 9, 2024
1549c66
#65 [refactor] : 구장명 및 테스트 코드를 수정한다
bbbang105 Nov 9, 2024
d86f137
#67 [feat] : 구역 추천 결과 캐릭터 파일 확장자명을 변경한다
bbbang105 Nov 9, 2024
93c8307
Merge pull request #66 from KUSITMS-30th-TEAM-A/fix/#65/stadium-name
bbbang105 Nov 9, 2024
a0dc031
#68 [feat] : 스타디움 정보 조회 DTO를 추가한다
bbbang105 Nov 9, 2024
2d598ee
#68 [feat] : 이미지 URL & 소개 문구 & 색상 필드를 추가한닽
bbbang105 Nov 9, 2024
ff3d805
#68 [feat] : 스타디움 이미지 & 소개 문구 Enum을 추가한다
bbbang105 Nov 9, 2024
ca34265
#68 [feat] : 줄바꿈 기호를 변경한다
bbbang105 Nov 9, 2024
e7f3303
#68 [feat] : 스타디움 정보 조회 성공 메세지를 변경한다
bbbang105 Nov 9, 2024
56d7253
#68 [fix] : 테스트 코드를 수정하여 빌드 문제를 해결한다
bbbang105 Nov 9, 2024
7461b4f
#68 [feat] : 개행문자를 수정한다
bbbang105 Nov 9, 2024
07d5dfd
#68 [feat] : 줄바꿈 처리를 위해 타입을 배열로 변경한다
bbbang105 Nov 9, 2024
85e5a5d
#68 [feat] : 타입 변경에 따라 테스트 코드를 수정한다
bbbang105 Nov 9, 2024
b1ac982
#68 [feat] : 불변 및 타입을 변환한다
bbbang105 Nov 9, 2024
9a0bb00
#68 [feat] : 구역 추천 결과 explanation 필드를 제거한다
bbbang105 Nov 9, 2024
6197da0
#68 [feat] : 구역 추천 결과 테스트 코드를 수정한다
bbbang105 Nov 9, 2024
460e2d8
#68 [feat] : 1루 & 3루석 설명 필드를 추가한다
bbbang105 Nov 9, 2024
e28e7e7
#68 [feat] : 필드 추가에 따라 테스트 코드를 수정한다
bbbang105 Nov 9, 2024
fb4c60f
#68 [feat] : 필드명을 contents로 변경한다
bbbang105 Nov 9, 2024
3041554
Merge pull request #69 from KUSITMS-30th-TEAM-A/feature/#68/add-field
bbbang105 Nov 10, 2024
1ca0d23
#70 [feat] : 임시 클라이언트 배포 도메인 cors를 허용한다
bbbang105 Nov 10, 2024
52aba67
#70 [feat] : 배포 도메인 CORS를 허용한다
bbbang105 Nov 11, 2024
2676329
[feat] : 구역 가이드 홈 이미지를 변경하고 소개 문구 필드를 제거한다
bbbang105 Nov 11, 2024
e8ea9b8
#70 [feat] : 사용하지 않는 포트를 제거한다
bbbang105 Nov 12, 2024
c0b28da
Merge pull request #71 from KUSITMS-30th-TEAM-A/fix/#70/cors
bbbang105 Nov 12, 2024
d0334d0
#72 [feat] KT위즈의 하이파이존/익사이팅석의 구역명을 변경한다.
juuuunny Nov 12, 2024
6812ace
Merge pull request #73 from KUSITMS-30th-TEAM-A/feature/#72/kt-zone-m…
juuuunny Nov 12, 2024
8afbe93
#74 [feat] 잠실종합운동장의 익사이팅석 색상을 변경한다.
juuuunny Nov 13, 2024
19f4d72
Merge pull request #75 from KUSITMS-30th-TEAM-A/feature/#74/modify-ja…
juuuunny Nov 14, 2024
3315ffc
#76 [feat] 추천받은 구역 프로필 이미지를 svg에서 webp로 변경한다.
juuuunny Nov 18, 2024
c160622
Merge pull request #77 from KUSITMS-30th-TEAM-A/feature/#76/profile-i…
bbbang105 Nov 19, 2024
16bae29
#80 [feat] 구장별 구역 순서를 맞게 변경한다.
juuuunny Nov 23, 2024
70236d4
#80 [feat] 구역 추천리스트 무조건 3개 채워서 반환하도록 로직을 변경한다.
juuuunny Nov 23, 2024
03a3b3a
#80 [feat] 수원KT위즈파크의 응원지정석의 더미데이터를 수정한다.
juuuunny Nov 23, 2024
0d69526
#80 [rename] zone의 테이블명을 수정한다.
juuuunny Nov 23, 2024
c949bc6
Merge pull request #81 from KUSITMS-30th-TEAM-A/feature/#80/modify-re…
juuuunny Nov 23, 2024
43b4a29
#82 [feat] : 챗봇 관련 데이터를 수정한다
bbbang105 Nov 23, 2024
dc25003
#88 [fix] : 스타디움 구역 정보가 중복되어 나오는 문제를 해결한다
bbbang105 Nov 23, 2024
37d9f99
#88 [style] : Javadoc 기반으로 주석을 추가한다
bbbang105 Nov 23, 2024
80bf507
#88 [fix] : 더미 추천 결과값이 포함되는 문제를 해결한다
bbbang105 Nov 23, 2024
c82c786
Merge pull request #89 from KUSITMS-30th-TEAM-A/fix/#88/duplicate-zone
bbbang105 Nov 23, 2024
9848cbb
#82 [feat] : 답변 타입을 배열에서 문자열로 변경한다
bbbang105 Nov 25, 2024
b5ab078
#82 [feat] : 타입 변경에 따라 테스트 코드를 수정한다
bbbang105 Nov 25, 2024
ea1dab7
#82 [fix] : 누락된 이미지를 추가한다
bbbang105 Nov 27, 2024
82cc89c
#82 [fix] : 확장자명을 수정하여 이미지 오류를 해결한다
bbbang105 Nov 27, 2024
97e8ff0
#82 [feat] : link와 linkName 필드를 추가한다
bbbang105 Nov 27, 2024
ebac955
#82 [feat] : 추가된 필드 데이터를 추가한다
bbbang105 Nov 27, 2024
086cf61
#82 [feat] : 필드 추가에 따라 테스트 코드를 수정한다
bbbang105 Nov 27, 2024
fe00c09
Merge pull request #83 from KUSITMS-30th-TEAM-A/feature/#82/mod-data
bbbang105 Nov 27, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions .github/ISSUE_TEMPLATE/issue_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
---
name: "\bIssue 생성 템플릿"
about: 해당 Issue 생성 템플릿을 통하여 Issue를 생성해주세요.
title: 'ex) 깃모지 [feat] : Issue 제목'
labels: ''
assignees: ''

---

### 📝 Description

- 구현할 내용 1
- 구현할 내용 2

---

### 📝 Todo

- [ ] 구현할 내용 1
- [ ] 구현할 내용 2
35 changes: 35 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
## ✅ PR 유형
어떤 변경 사항이 있었나요?

- [ ] 새로운 기능 추가
- [ ] 버그 수정
- [ ] 코드에 영향을 주지 않는 변경사항(오타 수정, 탭 사이즈 변경, 변수명 변경)
- [ ] 코드 리팩토링
- [ ] 주석 추가 및 수정
- [ ] 문서 수정
- [ ] 빌드 부분 혹은 패키지 매니저 수정
- [ ] 파일 혹은 폴더명 수정
- [ ] 파일 혹은 폴더 삭제

---

## 📝 작업 내용
이번 PR에서 작업한 내용을 간략히 설명해주세요(이미지 첨부 가능)

- 작업한 내용 1
- 작업한 내용 2

---

## ✏️ 관련 이슈
본인이 작업한 내용이 어떤 Issue Number와 관련이 있는지만 작성해주세요

ex)
- Fixes : #00 (수정중인 이슈)
- Resolves : #100 (무슨 이슈를 해결했는지)
- Ref : #00 #01 (참고할 이슈)
- Related to : #00 #01 (해당 커밋과 관려)

---

## 🎸 기타 사항 or 추가 코멘트
55 changes: 55 additions & 0 deletions .github/workflows/cicd.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
name: Hitzone CI/CD with Gradle

on:
push:
branches: [ "main", "develop" ]
pull_request:
branches: [ "main", "develop" ]

permissions:
contents: read

jobs:
build:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v3
- name: ⏱️Set up JDK 17
uses: actions/setup-java@v3
with:
java-version: '17'
distribution: 'temurin'

- name: ⏱️Gradle Caching - 빌드 시간 향상
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 build를 위한 권한을 부여합니다.
run: chmod +x gradlew

- name: ⏱️gradle build 중입니다.
run: ./gradlew clean build openapi3 asciidoctor

- name: ⏱️NCP Container Registry에 로그인 후, docker image build 후 NCP Container Registry에 push합니다.
run: |
docker login -u ${{ secrets.NCP_API_ACCESS_KEY }} -p ${{ secrets.NCP_API_SECRET_KEY }} ${{secrets.NCP_CONTAINER_REGISTRY_PUBLIC_ENDPOINT}}
docker build -f Dockerfile -t ${{ secrets.NCP_CONTAINER_REGISTRY_PUBLIC_ENDPOINT }}/${{ secrets.NCP_CONTAINER_REGISTRY_IMAGE }} .
docker push ${{ secrets.NCP_CONTAINER_REGISTRY_PUBLIC_ENDPOINT }}/${{ secrets.NCP_CONTAINER_REGISTRY_IMAGE }}

- name: ⏱️NCP Container Registry에서 pull 후 deploy합니다.
uses: appleboy/ssh-action@master
with:
username: ${{ secrets.NCP_SERVER_USERNAME }}
password: ${{ secrets.NCP_SERVER_PASSWORD }}
host: ${{ secrets.NCP_SERVER_HOST }}
script: |
chmod 777 ./deploy.sh
./deploy.sh
docker image prune -f
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -35,3 +35,7 @@ out/

### VS Code ###
.vscode/

.DS_Store

src/main/resources/static/docs/
16 changes: 16 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# 최종 이미지 단계
FROM openjdk:17-jdk-alpine as final

WORKDIR /app

# 빌드된 JAR 파일과 정적 문서 파일을 복사
COPY ./build/libs/backend-0.0.1-SNAPSHOT.jar app.jar
COPY ./build/resources/main/static/docs /app/static/docs

# HEALTHCHECK 추가
HEALTHCHECK --interval=5s --timeout=3s --start-period=30s --retries=3 \
CMD curl --fail http://localhost:8080 || exit 1

ENTRYPOINT ["java", "-jar", "app.jar"]

EXPOSE 8080
114 changes: 105 additions & 9 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,11 @@ plugins {
id 'java'
id 'org.springframework.boot' version '3.3.4'
id 'io.spring.dependency-management' version '1.1.6'

// REST Docs
id "org.asciidoctor.jvm.convert" version "3.3.2"
id 'com.epages.restdocs-api-spec' version '0.19.2'
id 'org.hidetake.swagger.generator' version '2.18.2'
}

group = 'kusitms'
Expand All @@ -13,31 +18,122 @@ java {
}
}

configurations {
compileOnly {
extendsFrom annotationProcessor
}
}

repositories {
mavenCentral()
}

dependencies {
// Web
// WEB
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter-validation'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
// DB

// JPA
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
runtimeOnly 'com.mysql:mysql-connector-j'

// OAuth 2.0
implementation 'org.springframework.boot:spring-boot-starter-oauth2-client'

// Security
implementation 'org.springframework.boot:spring-boot-starter-security'
testImplementation 'org.springframework.security:spring-security-test'

// Lombok
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'

// Redis
implementation 'org.springframework.boot:spring-boot-starter-data-redis'

// Twilio SDK
implementation 'com.twilio.sdk:twilio:8.24.0'

// REST Docs & Swagger 의존성 추가
testImplementation 'com.epages:restdocs-api-spec-mockmvc:0.19.2'
testImplementation 'org.springframework.restdocs:spring-restdocs-mockmvc:3.0.0'
testImplementation 'com.squareup.okhttp3:mockwebserver'
implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.1.0'

// WebClient
implementation 'org.springframework.boot:spring-boot-starter-webflux'

// MacOS Silicon 라이브러리 누락 문제
runtimeOnly 'io.netty:netty-resolver-dns-native-macos:4.1.104.Final:osx-aarch_64'


// Querydsl 추가
implementation 'com.querydsl:querydsl-jpa:5.0.0:jakarta'
annotationProcessor "com.querydsl:querydsl-apt:5.0.0:jakarta"
annotationProcessor "jakarta.annotation:jakarta.annotation-api"
annotationProcessor "jakarta.persistence:jakarta.persistence-api"

// S3
implementation 'org.springframework.cloud:spring-cloud-starter-aws:2.2.6.RELEASE'

}

def querydslDir = "src/main/generated"

ext {
snippetsDir = file('build/generated-snippets')
}

tasks.named('test') {
useJUnitPlatform()
}
outputs.dir snippetsDir
}

sourceSets {
test {
java {
srcDirs = ['src/test/java']
}
}
}

def serverUrl = "https://git.hitzone.store"

openapi3 {
server = serverUrl
title = "히트존 API 문서"
description = "Spring REST Docs with Swagger UI."
version = "0.0.1"
outputFileNamePrefix = 'open-api-3.0.1'
format = 'json'
outputDirectory = 'build/resources/main/static/docs'
}

tasks.withType(GenerateSwaggerUI).configureEach {
dependsOn 'openapi3'

delete file('src/main/resources/static/docs/')
copy {
from "build/resources/main/static/docs"
into "src/main/resources/static/docs/"
}
}

// Asciidoctor 설정
tasks.named('asciidoctor') {
inputs.dir snippetsDir
dependsOn test
}

tasks.named("bootJar") {
dependsOn asciidoctor
from("${asciidoctor.outputDir}") {
into 'static/docs'
}
dependsOn ':openapi3'
}

tasks.register('copyDocument', Copy) {
dependsOn asciidoctor
from file(project.layout.buildDirectory.dir("docs/asciidoc").get().asFile.path)
into file("src/main/resources/static/docs")
}

tasks.named("build") {
dependsOn copyDocument
}
Binary file added dump.rdb
Binary file not shown.
2 changes: 1 addition & 1 deletion settings.gradle
Original file line number Diff line number Diff line change
@@ -1 +1 @@
rootProject.name = 'bakend'
rootProject.name = 'backend'
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
package kusitms.bakend;
package kusitms.backend;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class BakendApplication {
public class BackendApplication {

public static void main(String[] args) {
SpringApplication.run(BakendApplication.class, args);
SpringApplication.run(BackendApplication.class, args);
}

}
51 changes: 51 additions & 0 deletions src/main/java/kusitms/backend/auth/application/AuthService.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
package kusitms.backend.auth.application;

import jakarta.servlet.http.HttpServletResponse;
import kusitms.backend.auth.jwt.JWTUtil;
import kusitms.backend.auth.status.AuthErrorStatus;
import kusitms.backend.global.exception.CustomException;
import kusitms.backend.global.redis.RedisManager;
import kusitms.backend.global.util.CookieUtil;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

@Slf4j
@Service
@RequiredArgsConstructor
public class AuthService {

@Value("${spring.jwt.access-token.expiration-time}")
private long ACCESS_TOKEN_EXPIRATION_TIME;

@Value("${spring.jwt.refresh-token.expiration-time}")
private long REFRESH_TOKEN_EXPIRATION_TIME;

private final JWTUtil jwtUtil;
private final RedisManager redisManager;

@Transactional
Copy link

Choose a reason for hiding this comment

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

Transactional이 필요한 로직일까요?

Copy link
Member Author

@bbbang105 bbbang105 Nov 21, 2024

Choose a reason for hiding this comment

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

불필요한 로직인 것 같아 제거하겠습니다..!

#79

public void reIssueToken(String refreshToken, HttpServletResponse response) {
Copy link

Choose a reason for hiding this comment

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

HttpServletResponse application 레이어가 서버가 클라이언트와 어떤 프로토콜을 사용해서 통신하는지 알 필요가 있을까요?

Copy link
Member Author

@bbbang105 bbbang105 Nov 21, 2024

Choose a reason for hiding this comment

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

application layer는 어떤 프로토콜이 사용되는지 몰라도 동작할 수 있어야 하기 때문에 알 필요가 없다고 생각합니다!

#79

if (refreshToken == null) {
throw new CustomException(AuthErrorStatus._EXPIRED_REFRESH_TOKEN);
}
Long userId = jwtUtil.getUserIdFromToken(refreshToken);
String storedRefreshToken = redisManager.getRefreshToken(userId.toString());
if (!storedRefreshToken.equals(refreshToken)){
throw new CustomException(AuthErrorStatus._TOKEN_USER_MISMATCH);
}

jwtUtil.validateRefreshToken(storedRefreshToken);
String newAccessToken = jwtUtil.generateToken(userId, ACCESS_TOKEN_EXPIRATION_TIME); // 1시간 유효기간
String newRefreshToken = jwtUtil.generateToken(userId, REFRESH_TOKEN_EXPIRATION_TIME); // 14일 유효기간
redisManager.saveRefreshToken(userId.toString(), newRefreshToken);
Copy link

Choose a reason for hiding this comment

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

DB 트랜잭션(@Transactional) 안에서 redis를 사용하고 있는데요.

  • 불필요한 I/O작업을 트랜잭션 안에서 하면 무슨 단점이 있을까요?
  • 트랜잭션 안에서 외부 호출을 하다가 실패하면 어떻게 될까요?

Copy link
Member Author

@bbbang105 bbbang105 Nov 21, 2024

Choose a reason for hiding this comment

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

잘 모르는 부분들이 많아 학습하느라 답변이 늦었습니다..! 양질의 코드리뷰 감사드립니다 🙇🏻‍♂️🙇🏻‍♂️

  1. 트랜잭션은 리소스를 락 상태로 유지하는데, 이 과정에서 외부 호출을 하게 되면 디비 락을 오래 유지시킵니다. 이는 다른 트랜잭션이나 쿼리의 실행을 지연시키고, 데드락 발생 확률을 높이게 됩니다.
  2. 트랜잭션 안에서 실패하는 경우에는 롤백을 하게 되는데, 외부 호출에 대해서는 롤백을 하지 못 합니다. 때문에 Redis에 데이터를 저장한 후에 트랜잭션이 실패하게 되면 Redis에는 데이터가 그대로 남아있기 때문에 데이터 정합성 문제가 발생할 수 있습니다.

#79


CookieUtil.setCookie(response, "accessToken", newAccessToken, (int) (ACCESS_TOKEN_EXPIRATION_TIME * 1.5) / 1000);
CookieUtil.setCookie(response, "refreshToken", newRefreshToken, (int) REFRESH_TOKEN_EXPIRATION_TIME / 1000);
CookieUtil.setNotHttpOnlyCookie(response, "expirationTime", String.valueOf((int) ACCESS_TOKEN_EXPIRATION_TIME / 1000), (int) (ACCESS_TOKEN_EXPIRATION_TIME * 1.5) / 1000);
Comment on lines +45 to +47
Copy link

Choose a reason for hiding this comment

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

Cookie에 값을 세팅하는게 application layer의 역할일까요?
HTTP로 통신하다가 다른 프로토콜을 이용해 통신하게 된다면 어떻게 될까요?

Copy link
Member Author

@bbbang105 bbbang105 Nov 21, 2024

Choose a reason for hiding this comment

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

application layer는 비즈니스 로직을 담당하는데, 클라이언트와의 프로토콜은 컨트롤러 또는 외부 경계에서 처리하는 것이 좋다고 합니다! 기존에는 HTTP 프로토콜만을 처리할 수 있는 메서드이기에, 이를 분리해서 확장성을 높여야 할 것 같습니다.

#79

}


}
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
package kusitms.backend.auth.dto.response;

import lombok.AllArgsConstructor;

import java.util.Map;

@AllArgsConstructor
public class GoogleUserInfo implements OAuth2UserInfo {

private final Map<String, Object> attribute;

@Override
public String getProvider() {
return "google";
}

@Override
public String getProviderId() {
return attribute.get("sub").toString();
}

@Override
public String getEmail() {
return attribute.get("email").toString();
}

@Override
public String getName() {
return attribute.get("name").toString();
}
}
Loading