Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
478 commits
Select commit Hold shift + click to select a range
6f6591e
feat: (#64) 추천 재시도 이후 받은 값 중 일부만 올바른 키워드를 가지고 있는 경우, 올바른 키워드를 가지고있는 추…
HoyeongJeon Nov 8, 2024
76b41ac
feat: (#64) userActivityController의 반환값 이름을 수정한다.
HoyeongJeon Nov 8, 2024
fff4ed6
refactor: (#64) 불필요한 조건을 제거한다.
HoyeongJeon Nov 9, 2024
c6edda4
feat: (#65) QuickStartActivitySelectRequest를 구현한다.
HoyeongJeon Nov 1, 2024
9916d77
feat: (#65) QuickStartActivitySelectController와 스웨거를 구현한다.
HoyeongJeon Nov 1, 2024
b0e8188
feat: (#65) QuickStartActivitySelectService를 생성한다.
HoyeongJeon Nov 1, 2024
b894022
feat: (#65) QuickStartActivitySelectSwagger를 만들고 Controller를 구현한다.
HoyeongJeon Nov 3, 2024
1a82e6e
feat: (#65) QuickStartActivitySelectRequest를 구현한다.
HoyeongJeon Nov 3, 2024
18774bf
feat: (#65) QuickStartActivitySelectService를 구현한다.
HoyeongJeon Nov 3, 2024
2b96707
feat: (#65) QuickStartActivitySelectServiceTest를 작성한다.
HoyeongJeon Nov 3, 2024
d933785
feat: (#65) 빠른시작활동선택의 response dto를 만든다.
HoyeongJeon Nov 7, 2024
d1574c2
feat: (#65) QuickStartActivitySelect는 QuickStartActivityResponse를 반환한다.
HoyeongJeon Nov 7, 2024
0207071
fix: (#64) QuickStartActivitySelectSwagger의 중복 PathVariable을 제거한다.
HoyeongJeon Nov 7, 2024
e791e45
feat: (#84) Youtube API를 연동한다
anxi01 Nov 10, 2024
e603172
feat: (#80) MapService 인터페이스를 생성한다.
HoyeongJeon Nov 9, 2024
a762af9
feat: (#80) NaverMapErrorCode를 작성한다.
HoyeongJeon Nov 9, 2024
0c69114
feat: (#80) NaverMapService를 구현한다.
HoyeongJeon Nov 9, 2024
a86202b
feat: (#80) NaverMapResponse dto를 생성한다.
HoyeongJeon Nov 11, 2024
0a91f7c
feat: (#80) NaverMapErrorCode에 파싱 에러를 추가한다.
HoyeongJeon Nov 11, 2024
6876c30
feat: (#80) NaverMapResponse로 반환값을 변경한다.
HoyeongJeon Nov 11, 2024
869af9d
refactor: (#80) MapService 를 PlaceInfoProvider로 변경한다.
HoyeongJeon Nov 12, 2024
20d5f4a
chore: (#88) email 전송을 위한 의존성을 추가한다.
HoyeongJeon Nov 12, 2024
5b627c2
chore: (#88) MailConfiguration을 작성한다.
HoyeongJeon Nov 12, 2024
e218449
feat: (#88) Email 전송을 위한 Util을 구현한다.
HoyeongJeon Nov 12, 2024
854b10e
feat: (#88) MailErrorCode를 작성한다.
HoyeongJeon Nov 13, 2024
f2813f3
refactor: (#88) EmailUtil의 폴더 구조를 수정하고 예외처리와 로깅을 추가한다.
HoyeongJeon Nov 13, 2024
9fa71b6
refactor: (#88) Email 입력 값의 유효성 검사를 추가한다.
HoyeongJeon Nov 14, 2024
72dd285
feat: (#88) EmailUtilTest 코드를 작성한다.
HoyeongJeon Nov 14, 2024
6132c6f
refactor: (#88) SendEmailRequest 인자 이름을 변경한다.
HoyeongJeon Nov 15, 2024
c73523a
fix: (#91) AIRecommendationRequest 유효성 검사 도중 발생하는 에러를 ActivityErrorCo…
HoyeongJeon Nov 13, 2024
44aeac6
fix: (#91) ClovaRecommendationRequest를 AIRecommendationRequest로 수정한다.
HoyeongJeon Nov 13, 2024
3beb2c0
fix: (#91) Message의 폴더 위치를 변경한다.
HoyeongJeon Nov 13, 2024
c26448a
fix: (#91) RecommendationProvider 의 DIP 적용을 위해 Clova와의 결합을 분리한다.
HoyeongJeon Nov 13, 2024
7ec0c93
refactor: (#91) 불필요한 폴더를 삭제한다.
HoyeongJeon Nov 14, 2024
309b0e5
refactor: (#91) 불필요한 개행과 어노테이션을 제거한다.
HoyeongJeon Nov 14, 2024
9f2501a
refactor: (#91) WebClient를 Provider에서 직접 구현한다.
HoyeongJeon Nov 14, 2024
f32819f
refactor: (#91) clova에 종속된 컨트롤러 및 서비스에선 Request dto의 이름을 clovaRecomme…
HoyeongJeon Nov 14, 2024
ade74a6
feat: (#81) OpenAI API를 연동한다
anxi01 Nov 9, 2024
eeac514
feat: (#90) 활동 캘린더 조회 Query를 DAO에 작성한다
anxi01 Nov 16, 2024
4cff856
feat: (#90) 활동 캘린더 조회 API를 추가한다
anxi01 Nov 17, 2024
041a3b0
feat: (#90) 활동 캘린더 조회 API 스웨거를 작성한다
anxi01 Nov 17, 2024
54550ba
refactor: (#78) property 하위 oauth 디렉토리를 생성하여 oauth property를 관리한다
anxi01 Nov 14, 2024
ee6fb06
feat: (#78) RabbitMQ 의존성을 추가한다
anxi01 Nov 14, 2024
67c933d
feat: (#78) RabbitMQ Delayed Message Plugin을 Docker Compose에 추가한다
anxi01 Nov 14, 2024
805350d
feat: (#78) ApplicationContext에 등록된 빈을 가져올 수 있다
anxi01 Nov 14, 2024
c632a08
feat: (#78) RabbitMQ Configuration을 설정한다
anxi01 Nov 14, 2024
45e7f03
feat: (#78) RabbitMQ의 Property, Producer, Consumer 기초 클래스를 생성한다
anxi01 Nov 14, 2024
971702e
feat: (#78) 활동의 자투리시간으로 종료 큐 메시지를 발행한다
anxi01 Nov 14, 2024
f4e9108
feat: (#78) 큐에서 활동 종료 메시지를 소비한다
anxi01 Nov 14, 2024
d8e4ad3
chore: (#98) build.gradle에 Sentry 설정을 추가한다.
HoyeongJeon Nov 16, 2024
37ee49d
chore: (#98) 예외 발생 시 Sentry에 기록한다.
HoyeongJeon Nov 16, 2024
9a70312
fix: (#103) 활동 자동 종료 서비스를 테스트코드에서 Mock 처리한다
anxi01 Nov 18, 2024
e985938
fix: (#105) build.gradle 의 SENTRY AUTH TOKEN을 제거한다.
HoyeongJeon Nov 18, 2024
e07252e
feat: (#87) 월간 활동 요약을 보기위한 request dto를 생성한다.
HoyeongJeon Nov 15, 2024
b87da5b
feat: (#87) 월간 활동 반환을 위한 response dto를 생성한다.
HoyeongJeon Nov 15, 2024
36f3dff
feat: (#87) 월간 활동 반환을 위한 dao를 생성한다.
HoyeongJeon Nov 15, 2024
329eff2
feat: (#87) 특정 월의 1일부터 마지막날을 반환하는 Util을 생성한다.
HoyeongJeon Nov 15, 2024
ea582d8
feat: (#87) 월간 활동 요약을 제공하는 서비스를 구현한다.
HoyeongJeon Nov 15, 2024
90b432d
feat: (#87) 월간 활동 요약을 제공하는 컨트롤러를 구현한다.
HoyeongJeon Nov 15, 2024
90f3f09
refactor: (#87) Controller API 이름을 수정한다.
HoyeongJeon Nov 16, 2024
c908447
refactor: (#87) Wrapper 타입을 primitive 타입으로 변경한다.
HoyeongJeon Nov 16, 2024
188fc62
refactor: (#87) api 엔드포인트의 이름을 수정한다.
HoyeongJeon Nov 16, 2024
4a97c8b
refactor: (#87) util에 있던 MonthRange를 converter로 분리한다.
HoyeongJeon Nov 16, 2024
16a5b8f
refactor: (#87) MonthRange를 삭제하고 변환 메서드를 TimeUtil에 구현한다.
HoyeongJeon Nov 16, 2024
97407aa
refactor: (#87) ModelAttribute를 삭제한다.
HoyeongJeon Nov 16, 2024
a2b3aa2
refactor: (#87) Overview 반환 시 유저의 가입월도 보내준다.
HoyeongJeon Nov 16, 2024
ad7d35f
refactor: (#87) startDayOfMonth, endDayOfMonth를 변수로 뺀다.
HoyeongJeon Nov 19, 2024
9a6427a
refactor: (#87) swagger 엔드포인트를 변경한다.
HoyeongJeon Nov 19, 2024
9596455
refactor: (#87) 월간활동 오버뷰 조회 시 가입년도도 함께 반환한다.
HoyeongJeon Nov 19, 2024
0a636cc
refactor: (#87) 원시형의 Null 검사를 제거한다.
HoyeongJeon Nov 19, 2024
915e17b
refactor: (#87) MonthlySavedTimeAndActivityCountResponse의 반환값을 원시형으로 …
HoyeongJeon Nov 19, 2024
5fc72c4
refactor: (#87) 코드 내 불필요한 공백을 제거한다.
HoyeongJeon Nov 19, 2024
e72b250
feat: (#102) 키워드 카테고리의 description으로 카테고리 Enum 값을 가져올 수 있다
anxi01 Nov 18, 2024
6135d54
fix: (#102) 활동 타입의 description이 아닌 Enum 값으로 UserMessage를 생성하도록 변경한다
anxi01 Nov 18, 2024
1502002
feat: (#102) OpenAI 추천 프롬프트를 작성한다
anxi01 Nov 18, 2024
e220128
feat: (#102) OpenAI ErrorCode를 생성한다
anxi01 Nov 18, 2024
6828c08
feat: (#102) OpenAI를 이용한 온라인, 온오프라인 추천을 할 수 있다
anxi01 Nov 18, 2024
049911d
feat: (#102) OpenAI 추천 API 스웨거를 작성한다
anxi01 Nov 18, 2024
74c7df4
feat: (#102) 키워드를 통해 유튜브 비디오 URL을 검색할 수 있다
anxi01 Nov 20, 2024
4fe6fb6
fix: (#102) OpenAI 추천을 얻는 방식을 동기식 방식으로 변경한다
anxi01 Nov 20, 2024
cc4e981
fix: (#102) OpenAI 추천 API에 검증 어노테이션을 추가한다
anxi01 Nov 20, 2024
420c7a2
feat: (#112) 백엔드 배포 도메인을 CORS Origin에 추가한다
anxi01 Nov 20, 2024
a0a289e
feat: (#95) 이번 달 키워드 활동 조회를 위한 request dto와 response dto를 생성한다.
HoyeongJeon Nov 16, 2024
f424976
feat: (#95) 이번 달 키워드 활동 조회를 위한 DAO를 구현한다.
HoyeongJeon Nov 16, 2024
b319dae
feat: (#95) Keyword Category와 이미지를 매핑하는 mapper를 구현한다.
HoyeongJeon Nov 16, 2024
694fd33
feat: (#95) ReadActivitiesByMemberAndKeywordInMonthService를 구현한다.
HoyeongJeon Nov 16, 2024
0f34078
feat: (#95) ReadActivitiesByMemberAndKeywordInMonthController를 구현한다.
HoyeongJeon Nov 16, 2024
8cffb73
feat: (#95) 유효성 검사를 Swagger에 위임하고, PathVariable을 사용한다.
HoyeongJeon Nov 16, 2024
9fc40ee
refactor: (#95) 래퍼 클래스를 primitive 로 변환한다.
HoyeongJeon Nov 19, 2024
2ea4a03
refactor: (#95) Swagger 설명을 변경한다.
HoyeongJeon Nov 19, 2024
cff7f7e
refactor: (#95) 변수명을 수정한다.
HoyeongJeon Nov 20, 2024
0c8b44b
refactor: (#95) ReadActivitiesByMemberAndKeywordInMonthController 엔드포…
HoyeongJeon Nov 20, 2024
717712f
refactor: (#95) ActivitiesByMemberAndKeywordInMonthResponse의 반환 순서를 변…
HoyeongJeon Nov 20, 2024
a3fec58
refactor: (#95) ActivityWithTitleAndSavedTimeResponse 반환 변수 이름을 변경한다.
HoyeongJeon Nov 20, 2024
c3b0d7c
refactor: (#95) 분리되어 있는 조회쿼리를 하나로 합친다.
HoyeongJeon Nov 20, 2024
4dd794c
refactor: (#95) keywordImageMapper를 Keyword 안에 스태틱 메서드로 정의한다.
HoyeongJeon Nov 21, 2024
e654073
refactor: (#99) 클로바 스튜디오 프롬프트를 수정한다.
HoyeongJeon Nov 20, 2024
e368733
refactor: (#99) PlaceInfoProvider의 반환형을 제네릭으로 수정한다.
HoyeongJeon Nov 20, 2024
284b589
feat: (#99) KakaoPlaceInfoProvider를 구현한다.
HoyeongJeon Nov 20, 2024
5b3897e
feat: (#99) KakaoMapResponse dto를 생성한다.
HoyeongJeon Nov 20, 2024
64fc589
feat: (#99) KakaoMapErrorCode를 생성한다.
HoyeongJeon Nov 20, 2024
e777ee7
refactor: (#99) ClovaRecommendationResponse dto에 좌표와 위치url을 추가한다.
HoyeongJeon Nov 20, 2024
35afe38
refactor: (#99) GetRecommendationsFromClovaService에서 Kakao 위치 검색을 사용하…
HoyeongJeon Nov 20, 2024
1388af8
refactor: (#95) KakaoPlaceInfoProvider의 url을 프로퍼티로 관리한다.
HoyeongJeon Nov 21, 2024
1614961
refactor: (#99) KakaoMapResponse 변수를 카멜케이스로 변환한다.
HoyeongJeon Nov 21, 2024
11df997
feat: (#114) activityType이 ONLINE_AND_OFFLINE인 경우 응답을 3개 반환한다.
HoyeongJeon Nov 22, 2024
389a4ff
refactor: (#114) String 값과 Keyword.Category를 비교하는 스위치문을 Enum 사용으로 바꾼다.
HoyeongJeon Nov 22, 2024
af77273
feat: (#109) Spring Batch 의존성을 추가한다
anxi01 Nov 21, 2024
b97fb4f
fix: (#109) 이메일 수신자를 여러명으로 변경한다
anxi01 Nov 21, 2024
d96d368
feat: (#109) 시간 범위 내 빠른 시작을 사용자별 1개씩 가져오는 JPQL을 추가한다
anxi01 Nov 21, 2024
999db50
feat: (#109) Batch를 이용해서 15분 주기로 빠른시작 알림 메일을 전송한다
anxi01 Nov 21, 2024
b1927b4
feat: (#109) Scheduler를 이용해서 15분 주기로 빠른시작 알림 메일을 전송한다
anxi01 Nov 21, 2024
5068d67
fix: (#120) 수신자를 여러 명으로 처리하도록 SendEmailRequest를 변경하면서 테스트 코드도 수정한다
anxi01 Nov 22, 2024
d96298e
feat: (#118) 온라인, 오프라인 추천 API를 하나로 통합한다
anxi01 Nov 22, 2024
92256af
fix: (#127) 중복된 닉네임일 때 에러 처리가 아닌 DTO에 중복 결과를 반환한다
anxi01 Nov 23, 2024
c09b209
fix: (#129) 중복 닉네임 검증에서 반환 값이 변경되면서 테스트 코드를 수정한다
anxi01 Nov 23, 2024
e96778f
refactor: (#123) ClovaStudioPrompt를 수정한다.
HoyeongJeon Nov 23, 2024
28b0f08
refactor: (#123) Keyword Category와 ImageUrl 매핑을 상수로 만든다.
HoyeongJeon Nov 23, 2024
ecc7679
refactor: (#123) 키워드 카테고리로 반환하던 응답을 키워드로 반환한다.
HoyeongJeon Nov 23, 2024
84ebe58
feat: (#124) Member 도메인 이메일 알림 변경 도메인 메소드를 추가한다
anxi01 Nov 23, 2024
9879fa3
feat: (#124) 이메일 알림 설정 API를 추가한다
anxi01 Nov 23, 2024
5b03f50
feat: (#124) 이메일 알림 설정 API 스웨거를 작성한다
anxi01 Nov 23, 2024
b400f93
feat: (#124) 이메일 알림 설정 테스트코드를 작성한다
anxi01 Nov 23, 2024
31556c7
feat: (#126) Member 엔티티에 프로필 수정 메서드를 구현한다.
HoyeongJeon Nov 23, 2024
7a0b91d
feat: (#126) 프로필 수정 스웨거와 컨트롤러를 생성한다.
HoyeongJeon Nov 23, 2024
7aed7dc
feat: (#126) 프로필 수정 리퀘스트 DTO를 생성한다.
HoyeongJeon Nov 23, 2024
e9c54d2
feat: (#126) 프로필 수정 서비스를 구현한다.
HoyeongJeon Nov 23, 2024
6d6241e
feat: (#126) 프로필 수정 서비스 테스트를 생성한다.
HoyeongJeon Nov 23, 2024
0af49f6
refactor: (#126) EditMemberProfileSwagger에 MemberErrorCode를 추가한다.
HoyeongJeon Nov 23, 2024
f0d38e0
feat: (#126) 닉네임 유효성 검사를 ValidateNicknameService에 위임한다.
HoyeongJeon Nov 23, 2024
2b53577
feat: (#126) EditMemberProfileService edit 메서드에 @Transactional을 추가한다.
HoyeongJeon Nov 23, 2024
b6d4ab3
feat: (#126) EditMemberProfile의 반환값을 void로 변경한다.
HoyeongJeon Nov 23, 2024
e6055cc
feat: (#126) EditMemberProfile의 반환값을 void로 변경한다.
HoyeongJeon Nov 23, 2024
ad58cdb
refactor: (#126) EditMemberProfileService의 불필요한 검증 로직을 제거한다.
HoyeongJeon Nov 23, 2024
f2619c3
feat: (#133) 이미지 url을 관리하는 Property를 추가한다
anxi01 Nov 23, 2024
d9d76cf
feat: (#133) Category로 Image를 변환하는 Converter를 추가한다
anxi01 Nov 23, 2024
c72cb8b
fix: (#133) ImageConverter를 사용해서 이전 코드를 수정한다
anxi01 Nov 23, 2024
7dafdfe
feat: (#133) ImageConverter 테스트 코드를 작성한다
anxi01 Nov 23, 2024
29d4106
fix: (#135) 로그인 응답에 사용자 가입 날짜를 추가한다
anxi01 Nov 23, 2024
e1e6edd
feat: (#135) 온보딩 응답에 사용자 정보를 추가한다
anxi01 Nov 23, 2024
fd4768a
fix: (#135) 온보딩 가입 테스트 코드를 수정한다
anxi01 Nov 23, 2024
aa78a99
chore: (#86) HealthController를 수정한다.
HoyeongJeon Nov 24, 2024
b061d16
chore: (#86) PR 이벤트가 발생했을 경우, github.sha가 pr 이벤트의 해시값을 사용하도록 변경한다.
HoyeongJeon Nov 25, 2024
81fa56c
chore: (#86) 배포 서버의 deploy.sha 에 환경변수를 설정한다.
HoyeongJeon Nov 25, 2024
23e490c
fix: (#139) 배포 서버 JVM의 타임존을 Asia/Seoul으로 변경한다
anxi01 Nov 25, 2024
4edc19e
fix: (#142) 로그인 시 사용자 정보를 넘겨준다
anxi01 Nov 25, 2024
41be3f2
fix: (#146) 로그인 시 온보딩을 진행하지 않은 사용자의 닉네임은 null로 반환한다
anxi01 Nov 25, 2024
9ddd20a
feat: (#146) Role이 GUEST인 경우 닉네임은 null로 반환하는 테스트 코드를 작성한다
anxi01 Nov 25, 2024
5771b2a
feat: (#144) 로그아웃을 구현한다.
HoyeongJeon Nov 25, 2024
6dec3d8
feat: (#144) 멤버 프로필 조회 Response dto를 생성한다.
HoyeongJeon Nov 25, 2024
f179b4b
feat: (#144) 멤버 프로필 조회 컨트롤러와 스웨거를 작성한다.
HoyeongJeon Nov 25, 2024
c5ff56f
feat: (#144) 멤버 프로필 조회 테스트를 작성한다.
HoyeongJeon Nov 25, 2024
0b5a0b2
refactor: (#148) 멤버 생성 서비스에서 함수를 분리하고 @Transactional를 붙여 가독성과 안정성을 높일…
anxi01 Nov 25, 2024
692ce54
fix: (#138) Keyword 밸류 타입 POJO화 및 @Embeddable로 인프라 레이어에 추가한다
anxi01 Nov 25, 2024
7f782be
fix: (#153) 메인 화면에서 현재 시간에 가장 가까운 빠른 시작을 가져오지 못하는 이슈 대응
anxi01 Nov 26, 2024
c7bddff
refactor: (#150) MemberID 생성시 Sequential UUID를 사용하도록 변경한다.
HoyeongJeon Nov 26, 2024
38d12a9
refactor: (#150) SequentialUUID의 위치를 변경한다.
HoyeongJeon Nov 27, 2024
e650afb
fix: (#157) 활동 키워드에서 키워드 이미지는 투명도 30으로 변경한다
anxi01 Nov 27, 2024
a540e3a
feat: (#151) Thymeleaf 의존성을 추가한다
anxi01 Nov 26, 2024
e61b267
fix: (#151) 메일 전송시 HTML을 본문에 넣기위해 MimeMessage로 변경한다
anxi01 Nov 26, 2024
e31c6b3
feat: (#151) 빠른 시작 메일 전송 템플릿을 적용한다
anxi01 Nov 26, 2024
215d6fa
refactor: (#151) 이메일 전송 스케쥴러 및 배치 메소드를 분리한다
anxi01 Nov 27, 2024
6a8d84e
fix: (#151) 이메일 수신자를 벌크 단위에서 단건으로 변경한다
anxi01 Nov 27, 2024
b1a98e7
fix: (#151) 빠른 시작의 시간대를 구하는 쿼리에서 중복 데이터를 제거한다
anxi01 Nov 27, 2024
3201593
feat: (#151) 이메일을 비동기적으로 전송한다
anxi01 Nov 27, 2024
352d995
fix: (#151) 이메일 수신자 쿼리를 멤버 도메인에서 조회하도록 변경한다
anxi01 Nov 27, 2024
31c00d2
feat: (#151) 사용자와 빠른 시작 정보를 가지고 메일 제목을 커스텀할 수 있다
anxi01 Nov 27, 2024
c7eee7b
refactor: (#155) Clova Prompt를 수정한다.
HoyeongJeon Nov 27, 2024
497bbe9
refactor: (#155) Keyword 에서 NATURE를 삭제한다.
HoyeongJeon Nov 27, 2024
0cf3abc
refactor: (#155) Keyword 관련 로직을 수정한다.
HoyeongJeon Nov 27, 2024
1dbf01b
fix: (#155) 사용하지 않는 에러코드를 삭제한다.
HoyeongJeon Nov 28, 2024
8a67b77
fix: (#155) NATURE 키워드를 삭제한다.
HoyeongJeon Nov 28, 2024
4cd71ff
fix: (#155) new Random을 final로 선언하고, parsedKeywordText 내 추가적인 trim()으…
HoyeongJeon Nov 28, 2024
a3fecb3
fix: (#155) static 키워드를 추가한다.
HoyeongJeon Nov 28, 2024
a752560
fix: (#162) 수신자를 단 건으로 처리하도록 SendEmailRequest를 변경하면서 테스트 코드도 수정한다
anxi01 Nov 28, 2024
9d3989d
fix: (#159) 조각 별 상세 정보 페이지에서는 원본 키워드 이미지를 반환한다
anxi01 Nov 28, 2024
2199223
fix: (#160) 조각 별 상세 정보가 아닌 활동 키워드에서 키워드 이미지는 투명도 30으로 변경한다
anxi01 Nov 28, 2024
4c88da7
fix: (#166) 사용하지 않는 테스트를 삭제한다.
HoyeongJeon Nov 28, 2024
2708cbb
refactor: (#168) gradle 파일을 역할별로 분리한다.
HoyeongJeon Nov 28, 2024
3ff4e21
refactor: (#164) 빠른시작 도메인 분리 및 응용서비스를 도메인 서비스로 이관한다
anxi01 Nov 28, 2024
822aaa7
refactor: (#164) 활동 도메인 응용서비스를 도메인 서비스로 이관한다
anxi01 Nov 28, 2024
dd22469
refactor: (#164) 멤버 도메인 응용서비스를 도메인 서비스로 이관한다
anxi01 Nov 28, 2024
a08f6e1
refactor: (#164) 도메인 분리 및 서비스 이관으로 인한 테스트코드 패키지를 변경한다
anxi01 Nov 28, 2024
7983bef
refactor: (#170) Recommendation 도메인의 dto 구조를 controller 사용 여부에 따라 재구성한다.
HoyeongJeon Nov 28, 2024
75b684a
refactor: (#170) QuickStart 도메인의 dto 구조를 controller 사용 여부에 따라 재구성한다.
HoyeongJeon Nov 28, 2024
62d4219
refactor: (#170) Member 도메인의 dto 구조를 controller 사용 여부에 따라 재구성한다.
HoyeongJeon Nov 28, 2024
7b3faa1
refactor: (#170) Auth 도메인의 dto 구조를 controller 사용 여부에 따라 재구성한다.
HoyeongJeon Nov 28, 2024
05f2ac1
refactor: (#170) Activity 도메인의 dto 구조를 controller 사용 여부에 따라 재구성한다.
HoyeongJeon Nov 28, 2024
6795de5
docs: README를 작성한다
anxi01 Nov 28, 2024
181852c
fix: (#174) 온보딩에서 닉네임에 초성 입력이 가능하다
anxi01 Nov 29, 2024
9b80550
fix: (#174) 빠른시작 생성시 초성 입력이 가능하다
anxi01 Nov 29, 2024
e240504
fix: (#176) 추천 활동 장소의 url이 없는 경우, 카카오맵 검색으로 넘긴다.
HoyeongJeon Nov 29, 2024
3765727
fix: (#178) Prompt를 수정한다.
HoyeongJeon Nov 30, 2024
8b9f171
refactor: (#180) Prompt를 수정한다.
HoyeongJeon Dec 2, 2024
4992ee3
refactor: (#180) 불필요한 코드를 메서드 삭제 및 텍스트 값에 일치하는 카테고리 변환 로직을 리팩토링한다.
HoyeongJeon Dec 2, 2024
adbdcb1
refactor: (#110) AuthorizationInterceptor에서 토큰 추출을 쿠키에서 하도록 변경한다.
HoyeongJeon Nov 22, 2024
6dc7a05
refactor: (#110) LoginMemberArgumentResolver에서 토큰 검증 시 쿠키에서 토큰을 뽑아내도록…
HoyeongJeon Nov 22, 2024
c8a8bed
refactor: (#110) 로그인 성공 시 쿠키에 토큰과 유저정보를 넣어준다.
HoyeongJeon Nov 22, 2024
8561da9
refactor: (#110) AuthenticationErrorCode를 수정한다.
HoyeongJeon Nov 22, 2024
eab029a
refactor: (#110) 토큰 재발급시 새로운 accessToken을 쿠키에 넣어준다.
HoyeongJeon Nov 22, 2024
72b69d5
refactor: (#110) LoginResponse에서 refreshToken을 제거한다.
HoyeongJeon Nov 22, 2024
e0cc85d
refactor: (#110) 로그인 시 refreshToken을 redis에 저장한다.
HoyeongJeon Nov 22, 2024
e8c0e52
refactor: (#110) 만료된 accessToken에서 memberId를 추출하는 메서드를 추가한다.
HoyeongJeon Nov 22, 2024
306d865
refactor: (#110) refreshToken을 가져올 때 검증 로직을 추가한다.
HoyeongJeon Nov 22, 2024
03c38c3
feat: (#110) logout 컨트롤러를 추가한다.
HoyeongJeon Nov 22, 2024
b3bfe30
feat: (#110) 인증 우회 uri를 설정한다.
HoyeongJeon Nov 22, 2024
69484bc
feat: (#110) Swagger 설정을 cookie를 사용하도록 변경한다.
HoyeongJeon Nov 22, 2024
fbf0dc1
feat: (#110) 토큰 재발급, 로그아웃 컨트롤러에 Swagger를 설정한다.
HoyeongJeon Nov 22, 2024
f6eb820
refactor: (#110) Swagger-ui로 요청을 보낼 경우엔 Authorization Header를 통해 인증/인…
HoyeongJeon Nov 22, 2024
f92e8d0
refactor: (#110) 사용하지 않는 LoginResponse를 삭제한다.
HoyeongJeon Jan 13, 2025
c54579d
refactor: (#110) http://localhost:5173를 cors 허용한다.
HoyeongJeon Jan 13, 2025
a2564e0
refactor: (#110) Dao 반환 값을 래퍼 클래스가 아닌 원시형으로 변경한다.
HoyeongJeon Jan 13, 2025
c984139
refactor: (#110) refreshToken 발급 시 claim 속 유저 정보를 제거한다.
HoyeongJeon Jan 13, 2025
1bb5ced
refactor: (#110) refreshToken 발급 시 토큰 저장소에 refreshToken:memberId의 형태로…
HoyeongJeon Jan 13, 2025
b7ddd0c
refactor: (#110) 토큰 재발급 로직을 변경한다.
HoyeongJeon Jan 13, 2025
413b112
refactor: (#110) 토큰 재발급 시 쿠키에 있는 refreshToken을 사용하고, Swagger를 변경한다.
HoyeongJeon Jan 13, 2025
2659556
refactor: (#110) 로그인 시 쿠키에 AccessToken과 RefreshToken을 넣는다.
HoyeongJeon Jan 13, 2025
132d333
refactor: (#110) 로그아웃 시 쿠키를 초기화하고, 토큰 저장소에 있는 RefreshToken을 삭제한다.
HoyeongJeon Jan 13, 2025
4986ebb
refactor: (#110) RefreshTokenServiceTest를 수정한다.
HoyeongJeon Jan 13, 2025
1b862bc
refactor: (#110) LoginMemberArgumentResolverTest를 수정한다.
HoyeongJeon Jan 13, 2025
6eb71af
chore: (#110) 테스트를 위해 pr 시 ci/cd가 돌아가도록 변경한다.
HoyeongJeon Jan 13, 2025
31fb9c6
fix: 쿠키에 httpOnly 설정을 true로 변경한다.
HoyeongJeon Jan 13, 2025
d326445
fix: 배포 스크립트의 pull_requests 시 배포되는 부분을 제거한다.
HoyeongJeon Feb 12, 2025
0417d3f
refactor: AuthenticationErrorCode의 NOT_EXIST_TOKEN의 이름을 NOT_EXIST_TOK…
HoyeongJeon Feb 12, 2025
f415b63
refactor: 불필요한 주석을 제거한다.
HoyeongJeon Feb 12, 2025
c49ff65
refactor: 불필요한 반환 값을 제거한다.
HoyeongJeon Feb 12, 2025
d43eb07
refactor: enum 상수 비교를 equals()에서 == 수정한다.(NPE 발생 이슈)
HoyeongJeon Feb 12, 2025
9ca5f1c
refactor: 코드 컨벤션을 지킨다.
HoyeongJeon Feb 12, 2025
3bedc0e
refactor: 로그인 리턴값에 대한 새로운 Response Record를 생성한다.
HoyeongJeon Feb 12, 2025
7e71850
chore: geoip2 의존성을 생성한다.
HoyeongJeon Feb 15, 2025
21e2cbf
chore: GeoIpConfiguration을 설정한다.
HoyeongJeon Feb 15, 2025
9f9ffbf
feat: 두 좌표 사이 거리 계산을 위한 유틸을 생성한다.
HoyeongJeon Feb 15, 2025
d07d379
feat: 로그인 한 유저의 IP 획득용 ArgumentResolver를 생성한다.
HoyeongJeon Feb 15, 2025
0125671
feat: argumentResolver를 추가한다.
HoyeongJeon Feb 15, 2025
50bb600
feat: GeoLocationService를 구현한다.
HoyeongJeon Feb 15, 2025
f826232
chore: gitignore를 수정한다.
HoyeongJeon Feb 20, 2025
0bbab74
feat: refreshToken 저장 시 ip를 함께 저장한다.
HoyeongJeon Feb 20, 2025
97a0aa5
feat: 로그인 시 ip를 함께 받아온다.
HoyeongJeon Feb 20, 2025
7f084a5
feat: 토큰 재발급 시 RTR을 적용한다.
HoyeongJeon Feb 20, 2025
53cb10b
feat: 토큰 재발급 시 100 km 이상에서 들어온 요청에 대해 재발급을 반려한다.
HoyeongJeon Feb 20, 2025
d4932af
feat: Redis 토큰 저장 메서드를 변경한다.
HoyeongJeon Feb 20, 2025
aecca66
feat: 100km 이상 떨어진 곳에서의 요청 거절 에러를 만든다.
HoyeongJeon Feb 20, 2025
28260cc
feat: 토큰 반환 dto 내용을 변경한다.
HoyeongJeon Feb 20, 2025
bca23de
feat: RotateTokenSwagger 및 Redis 키-밸류 전체 삭제 메서드를 구현한다.
HoyeongJeon Feb 20, 2025
6eb35dc
feat: 테스트를 작성한다.
HoyeongJeon Feb 20, 2025
08afb01
chore: maxmind db를 .gitignore에 추가한다.
HoyeongJeon Feb 20, 2025
d13dd1d
chore: ci/cd 스크립트를 수정한다.
HoyeongJeon Feb 24, 2025
c9bd777
refactor: 에러 메시지를 수정한다.
HoyeongJeon Feb 24, 2025
249c9ee
feat: 토큰 재발급 유효 거리를 환경변수로 관리한다.
HoyeongJeon Feb 24, 2025
a3b8585
feat: 쿠키 발급 시 secure, sameSite를 추가한다.
HoyeongJeon Feb 27, 2025
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
3 changes: 3 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
.git/
.gitignore/
.idea/
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: '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 추가 코멘트
115 changes: 115 additions & 0 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
name: Cnergy Backend CI/CD

on:
push:
branches: [dev]

jobs:
ci:
runs-on: ubuntu-latest

services:
redis:
image: redis
options: >-
--health-cmd "redis-cli ping"
--health-interval 10s
--health-timeout 5s
--health-retries 5
ports:
- 6379:6379

steps:
- name: Checkout source code
uses: actions/checkout@v4

- name: Set up SSH key
uses: webfactory/[email protected]
with:
ssh-private-key: ${{ secrets.NCP_SSH_PRIVATE_KEY }}

- name: Download GeoLite2-City Database
run: |
mkdir -p src/main/resources/maxmind

curl -L -u ${{ secrets.GEOIP_ACCOUNT_ID }}:${{ secrets.GEOIP_LICENSE }} \
'https://download.maxmind.com/app/geoip_download?edition_id=GeoLite2-City&suffix=tar.gz&license_key=${{ secrets.GEOIP_LICENSE }}' \
-o GeoLite2-City.tar.gz

tar -xzf GeoLite2-City.tar.gz --wildcards --strip-components 1 -C src/main/resources/maxmind '*.mmdb'

rm GeoLite2-City.tar.gz

- 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: JDK 17 세팅
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'

- name: YML 파일 세팅
env:
APPLICATION_PROPERTIES: ${{ secrets.APPLICATION_PROPERTIES }}
TEST_APPLICATION_PROPERTIES: ${{ secrets.TEST_APPLICATION_PROPERTIES }}
run: |
cd ./src
rm -rf main/resources/application.yml
mkdir -p test/resources
echo "$APPLICATION_PROPERTIES" > main/resources/application.yml
echo "$TEST_APPLICATION_PROPERTIES" > test/resources/application.yml

- name: gradlew 권한 부여
run: chmod +x gradlew

- name: 테스트 수행
run: ./gradlew test

- name: 스프링부트 빌드
run: ./gradlew build

- name: Docker Buildx 세팅
uses: docker/setup-buildx-action@v3

- name: NCP 레지스트리 로그인
uses: docker/login-action@v3
with:
registry: ${{ secrets.NCP_CONTAINER_REGISTRY }}
username: ${{ secrets.NCP_ACCESS_KEY }}
password: ${{ secrets.NCP_SECRET_KEY }}

- name: 도커 이미지 빌드 후 푸시
if: success()
uses: docker/build-push-action@v6
with:
context: .
file: ./Dockerfile
push: true
tags: ${{ secrets.NCP_CONTAINER_REGISTRY }}/cnergy-backend:${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
platforms: linux/amd64,linux/arm64

- name: Docker Compose 파일 NCP 서버로 전송
run: scp -o StrictHostKeyChecking=no -P ${{ secrets.NCP_PORT }} docker-compose.yml ${{ secrets.NCP_USERNAME }}@${{ secrets.NCP_HOST }}:./

- name: NCP 접속 후 배포
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.NCP_HOST }}
username: ${{ secrets.NCP_USERNAME }}
password: ${{ secrets.NCP_PASSWORD }}
port: ${{ secrets.NCP_PORT }}
script: |
echo "NCP_CONTAINER_REGISTRY=${{ secrets.NCP_CONTAINER_REGISTRY }}" > .env
echo "GITHUB_SHA=${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}" >> .env
echo "RABBITMQ_DEFAULT_USER=${{ secrets.RABBITMQ_DEFAULT_USER }}" >> .env
echo "RABBITMQ_DEFAULT_PASS=${{ secrets.RABBITMQ_DEFAULT_PASS }}" >> .env
sudo chmod +x ./deploy.sh
./deploy.sh
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -35,3 +35,8 @@ out/

### VS Code ###
.vscode/

### Configuration ###
src/main/resources/application-*.yml
src/main/resources/maxmind
src/test/resources/application.yml
9 changes: 9 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
FROM openjdk:17.0.1-jdk-slim

WORKDIR /app

COPY ./build/libs/backend-0.0.1-SNAPSHOT.jar /app/backend.jar

EXPOSE 8080
ENTRYPOINT ["java"]
CMD ["-jar", "backend.jar"]
17 changes: 17 additions & 0 deletions Dockerfile-local
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
FROM gradle:8.10.1-jdk17 AS build

WORKDIR /app

COPY . /app

RUN gradle clean build -x test --no-daemon

FROM openjdk:17.0.1-jdk-slim

WORKDIR /app

COPY --from=build /app/build/libs/*.jar /app/backend.jar

EXPOSE 8080
ENTRYPOINT ["java"]
CMD ["-jar", "backend.jar"]
Loading