Commit 476e597
v1.0.0: release 1차 운영 배포 (#44)
* chore: dev 환경에서 spring 어플리케이션과 redis 컨테이너 링크
* chore: dev 환경 redis 설정 수정
* chore: links 옵션 추가
* remove: remove @NoArgsConstructor annotation
* feat: change the response format to CustomResponseDto
* feat: change the response format to CustomResponseDto
* feat: change directory to infrastructure
* chore: stop tracking ./gradle directory
* remove: 사용하지 않는 ErrorCode 제거
* feat: swagger 공통 응답 코드 어노테이션 생성
* fix: ErrorCode 클래스로 변경 및 에러코드 통합
* refactor: 에러 코드 통합으로 인한 import 제
* feat: 스웨거 설정 및 에러 응답 유틸화
* fix: permit url 추가(swagger 관련 url)
* chore: yml 업데이트
* feat: 슬랙 에러 로그 수신 기능 추가
* chore: 개발환경 태스크 메모리 제한 줄이기
* chore: 메모리 부족으로 인한 ecs 롤링 배포 실패를 해결하기 위해 redis 제거
* chore: redis 링크 파라미터 제거
* chore: task 할당 자원 추가
* chore: 메모리 증설 redis 재 연결
* [T3-53] add redis service for refresh token (#8)
* chore: update directory structure
* chore: update directory structure for model, request, response
* feat: change the token generation method
* feat: update JWT error code
* feat: add redis hash for refreshToken
* refactor: change class name to TokenResponse
* feat: add redis service for refreshToken
* feat: add an api for reissuing tokens
* refactor: delete a subdirectory of jwt
* refactor: move service logic from the controller layer to the service layer
* refactor: move class about request or response from model to request or response
* remove: delete unnecessary Kakao variables
* refactor: update class name about user's auth
* refactor: change to common error handling
* refactor: change directory name to kakao from oauth2
* feat: add annotation in ProdRedisConfig
* refactor: Change from RestTemplate to FeignClient
* feat: add a nickname field to your kakao profile
* refactor: change name from RedisService to AuthRedisService
* refactor: change directory name from model, entity to domain
* feat: add domain object to map Kakao, Apple membership information
* refactor: change to use one social login for both Apple and Kakao
* refactor: change to improved switch statements
* chore: 개발서버 cpu 가용량 1/2로 감소
* chore: yml 업데이트
* fix: Spring security에서 health-check url 허용
* feat: add time to create, update, and delete entities
* feat: add custom annotations to query user information stored in security in API requests
* refactor: manage as an array of URLs that can be accessed without authentication or authorization
* feat: blacklist and delete access tokens
* feat: add logout service logic and API
* feat: apple 로그인 구 (#9)
* chore: 개발서버 redis 호스트 포트 충돌 해결
* chore: awscli install 로직 제거
* chore: 불필요한 출력문 제거
* chore: redis를 신규로 띄우는 경우 포트 설정
* chore: 문법오류 수정
* feat: define the user authentication API swagger specification
* feat: add kakao unsubscribe API request
* feat: add kakao unsubscribe API controller and swagger spec
* feat: add exception handling and retry logic for Kakao member information retrieving api
* refactor: modify Kakao membership withdrawal API UserAuthHandler class
* feat: invalidate kakao access token
* chore: Update environment variables
* refactor: Modify logout and member withdrawal controller and reflect changes in Swagger
* feat: Add all possible errors that may occur in Swagger specs
* fix: 회원탈퇴 과정에서 카카오 액세스 토큰 무효화 과정 삭제
* refactor: 카카오 서버 API 관련 클래스 디렉토리 및 이름 변경
* refactor: 카카오 관련 토큰 무효화 메서드명 변경
* refactor: Added Kakao server error handling
* refactor: KakaoUserInfoService에서 애플 관련 로직 UserAuthService 이동
* refactor: 카카오 서버 API 로직을 KakaoAuthClient 클래스로 통합
* chore: 메서드 주석 추가
* feat: accessToken 블랙리스트 등록 로직 삭제
* refactor: FeignClient name 수정
* chore: 서브모듈 업데이트
* [T3-61] 애플 로그아웃, 탈퇴 구현 (#11)
* feat: 애플 로그아웃, 탈퇴 구현
* refactor: 스웨거 수정
* fix: 공통 예외처리 수정 및 추가
* fix: ResponseEntityExceptionHandler 상속 제거
* fix: swagger 오류
* fix: 소셜로그인 refreshtoken 저장 및 스웨거 수정
* remove: 액세스 토큰 만료기한 필드 삭제
* feat: 스웨거 호출 위한 config 설정 추가
* refactor: 카카오 로그아웃 요청 방식 변경
* remove: CORS 설정에서 불필요한 도메인 삭제
* remove: CORS 설정에서 Preflight(OPTIONS) 요청 관련 허용 설정 삭제
* feat: 도메인 허용 및 prelight 관련 설정 추가
* chore: 주석 수정
* fix: setAllowCredentials를 허용
* feat: 스웨거 관련 하위 경로가 인증 필터에 적용받지 않도록 shouldNotFilter 추가
* fix: 애플 로그아웃 시 카카오 인증 서버 요청 오류 수정
* hotfix: 애플 feign 에러 디코딩 수정
* fix: apple 탈퇴 후 재가입 시 email null 오류 방지 예외처리
* feat: errorcode 업데이트
* feat: 약관 동의 및 role 기반 분기처리
* feat: Routine 엔티티 클래스 추가
단일 컬럼에서 여러 개의 요일을 관리하기 위해 DayOfWeek Enum 클래스 생성
DB 레벨과 코드 레벨에서의 형식을 맞추기 위해 DayOfWeekConverter 추가
* feat: SubRoutine 엔티티 클래스 추가
* feat: 루틴 등록 API 및 RequestBody 객체 클래스 추가
* feat: 루틴 등록 서비스 로직 추가
* chore: 불필요한 주석 제거
* feat: 루틴 등록 서비스 로직에 대한 테스트 코드 추가
* feat: 루틴 등록 API 스웨거 추가
* refactor: DayOfWeek를 커스텀 enum 클래스 대신 Java에서 제공하는 enum으로 변경
* chore: 메스드 설명 주석 추가
* feat: executionTime 스키마 필수 필드 설정
* chore: init sql 추가(추천루틴, 추천서브루틴, 온보딩, 케이스)
* feat: entity 추가(Onboarding, Case, RecommendedRoutine, RecommendedSubRoutine)
* fix: 공통 응답 처리 버그 수
* feat: 온보딩 스웨거 추가
* feat: http request login 추가
* feat: 온보딩 로직 추
* fix: jpa ddl 시 enum -> varchar 로 수정
* feat: onboarding 추가
* feat: 서브모듈 업데이트
* fix: Onboarding 응답 response 수정
* refactor: global/utils 경로로 이동
* remove: @table 어노테이션 삭제
* remove: 불필요한 어노테이션 삭제
* refactor: 엔티티 생성 빌더 service 레이어로 이동
* chore: submodule 업데이트
* refactor: 이력을 관리하는 시간을 LocalDateTime으로 변경
* refactor: END_DATE_TIME 수정
* refactor: 반복요일 필드명 수정
* refactor: 테스트 코드 수정
* chore: pull request 템플릿 추가
* feat: 온보딩시 추천 루틴에 대한 수정
* feat: 변경 루틴 엔티티 및 레포지토리 추
* fix: BaseTimeEntity 추
* chore: init sql 수정
* feat: 온보딩 시 추천 루틴 등록 API 추
* fix: null return 대신 Object 리턴
* remove: 불필요한 user 조회 로직 제거
* feat: RegisterRoutineRequest, UpdateRoutineRequest의 공통 필드들을 하나의 메서드에서 사용하기 위한 인터페이스 추가
* feat: 루틴, 서브루틴 업데이트 메서드 추가
* feat: 객체 동등성 수행을 위해 equals, hashCode 메서드 오버라이드
* feat: 루틴 및 서브루틴 업데이트 API 추가
* chore: develop 브랜치에서 변경사항 병합
* feat: 루틴, 서브루틴 업데이트 메서드 추가
* feat: 루틴 및 서브루틴 삭제 로직 추가
* feat: 루틴 및 서브루틴 삭제 API 추가
* feat: 이력 관리를 위해 복합키 객체 HistoryPk 추가
* feat: 추가된 복합키를 고려해서 루틴 관련 Request 객체 수정
* remove: LocalDateTime.now() 상수 삭제
* refactor: 추가된 복합키를 고려하여 루틴 및 서브루틴 업데이트 서비스 로직 수정
* feat: 에러 관련 스웨거 스펙 추가
* refactor: updateHistoryEndDate 메서드명 변경
* refactor: 복합키 기반으로 루틴 삭제 메서드 수정
루틴 업데이트 메서드에서 서브 루틴이 null일 때 처리 추가
* refactor: 삭제 루틴 API 및 스웨거 설명 수정
* refactor: User 엔티티 복합키로 변환
이력관리 필드 추가
* refactor: user 엔티티 복합키를 외래키로 설정
복합키 기반으로 routineService의 로직 수정
* refactor: changedRoutine 및 changedSubRoutine 테이블에 PK를 복합키로 수정
관련된 온보딩 서비스 로직 수정
* refactor: BaseTimeEntity 디렉토리 변경으로 인해 import 수정
* refactor: BaseTimeEntity 디렉토리 변경으로 인해 import 수정 (Case 클래스 추가)
* refactor: User 복합키를 바탕으로 기존 JWT 생성 및 인증 단계 로직 수정
JwtProvider, UserAuthService에서 공통으로 사용되는 로직을 findValidUserByRefreshTokenOrAccessToken 메서드로 통합
* fix: 컬럼 관련 설정 오류 수정
* remove: 불필요한 주석 삭제
* chore: 주석 추가
* refactor: 인증 과정에서 유저 식별시 이력 시작 및 종료일시를 고려하여 현재 활성 사용자인지 검증 후, 유저 조회하도록 변경
* fix: Transactional 추가
* refactor: historyStartDateTime를 포함하지 않는 쿼리 메서드로 변경
* refactor: LocalDateTime.now() 의 변수명을 now로 변경
* fix: 테스트 코드 리팩터링 및 TODO 작성
* fix: Routine 테이블에서 User의 외래키를 삭제하고 userId 값으로 컬럼 값 수정
* feat: 서브루틴 테이블에 정렬순서(sortOrder) 필드 추가
* refactor: 서브루틴에 업데이트 대한 케이스 수정
* refactor: Jwt AccessToken으로 로그인했을 때 해당 유저를 조회하는 쿼리 메서드 변경
* remove: 불필요한 로직 삭제
* feat: Jwt 인증 관련 쿼리메서드 수정
* refactor: Jwt 관련 처리 기능들을 관리하는 Util 클래스로 명명
* refactor: 주석 변경
* refactor: 테스트 코드 주석 설정
* refactor: 루틴 업데이트 특정 케이스 수정
* [T3-98] 루틴 조회 API 수정 (#23)
* feat: 변경 구분코드 추가
* feat: 루틴 조회 API
* feat: 수정여부 컬럼 추가
* chore: 1차 배포 최종 init sql
* fix: ddl 변경에 따른 수
* fix: ddl 변경에 따른 수정
* fix: 온보딩 API 수
* fix: 루틴 조회 쿼리파라미터로 수정
* fix: 홈 루틴 조회 API 수정
* [T3-106] 감정구슬 테이블 구축, API 개발 (#24)
* feat: 감정구슬 테이블 구축, API 개발
* chore: 감정구슬 case 매
* remove: 불필요한 주석 제거
* remove: caseName 필드 삭제
* refactor: 스웨거 설정 보완
* feat: 루틴 완료여부 엔티티 클래스 추가
* feat: 루틴 완료여부 갱신 api에 필요한 request 객체 추가
* feat: 루틴 완료여부 갱신 서비스 로직 추가
* feat: 루틴 완료여부 갱신 api 추가
* feat: 루틴 삭제 시 deleteAt 설정 추가
* refactor: request 객체에서 필드명 변경
* feat: 주석 추가
* feat: 선택한 요일(당일)만 루틴을 삭제하는 서비스 로직 추가
* feat: 선택한 요일(당일)만 루틴을 삭제하는 API 추가
* refactor: reissue api response 수정
* fix: 스웨거 스펙 오류 수정
* refactor: JWT 인증 실패 시 response 형식 수정
* [T3-107] 홈 루틴 조회 API 수정 (#26)
* fix: 홈 루틴 조회 API 내부 로직 수정(삭제이력 조회 제외, 완료여부 응답값 추가)
* feat: 루틴 조회 응답값 추가(이력순번)
* fix: 회원 탈퇴 로직에서 영속 상태로 설정
* feat: 데이터 정합성을 위해 검증 로직 추가
* refactor: 루틴 검증 로직을 RoutineValidator 클래스로 책임 분리
기존에 switch-case 문이 너무 비대했기 때문에 public 메서드인 validateRoutineOwnership의 전반적인 흐름을 명확히 볼 수 있도록 validation 로직을 private 메서드로 분리했습니다.
* refactor: 루틴 관련 엔티티 생성, 초기화에 대한 로직을 RoutineFactory 클래스로 책임을 분리
hasRoutineChanged()는 Routine 엔티티의 필드에 관련된 일치 여부를 처리하기 때문에 Routine 엔티티가 해당 메서드를 처리하도록 했습니다. 객체가 행동(메서드)를 통해 자신의 데이터를 처리하도록 하여 Routine 엔티티의 캡슐화를 강화하였습니다.
* [T3-108] 추천 루틴 조회 API (#28)
* fix: OneToOne에서 ManyToOne으로 변
* feat: 추천 루틴 조회 API
* feat: swagger 추가
* feat: 루틴, 서브루틴 완료 ID 응답값 추가
* fix: 감정 구슬 1일 1회 선택여부 확인 validation 추가
* fix: onboarding 명세 수정
* feat: 추천 루틴 조회시 응답에 감정구슬 enum 값 추가
* fix: 명세 추가
* fix: 명세 수정
* Feat/t3 108 (#29)
* fix: OneToOne에서 ManyToOne으로 변
* feat: 추천 루틴 조회 API
* feat: swagger 추가
* feat: 루틴, 서브루틴 완료 ID 응답값 추가
* fix: 감정 구슬 1일 1회 선택여부 확인 validation 추가
* fix: onboarding 명세 수정
* feat: 추천 루틴 조회시 응답에 감정구슬 enum 값 추가
* fix: 명세 추가
* fix: 명세 수정
* remove: tokenResponse
* [T3-119] 홈 루틴 조회 응답값 추가 (#30)
* fix: OneToOne에서 ManyToOne으로 변
* feat: 추천 루틴 조회 API
* feat: swagger 추가
* feat: 루틴, 서브루틴 완료 ID 응답값 추가
* fix: 감정 구슬 1일 1회 선택여부 확인 validation 추가
* fix: onboarding 명세 수정
* feat: 추천 루틴 조회시 응답에 감정구슬 enum 값 추가
* fix: 명세 추가
* fix: 명세 수정
* remove: tokenResponse
* feat: 루틴 조회 시 응답값 필드 추가
* chore: release tag 생성 자동화
* refactor: 홈 조회 로직에서 DTO로 변환하는 로직 RoutineMapper로 책임을 분리
* refactor: queryRoutines 메서드의 흐름을 정리하기 위해 메서드 분리
filterAndGroupRoutinesByDate()는 날짜별로 필요한 루틴을 조회하기 위해 필터링 및 그룹핑을 진행하는 메서드
applyChangedRoutines()는 이미 조회해온 날짜별 루틴들에 변경 루틴을 반영하여 최종 날짜별 루틴을 반환
* chore: prod 환경 oom 방지를 위한 메모리 증설
* remove: 불필요한 어노테이션 삭제
* fix: label 파싱 오류 수정
* refactor: 감정 구슬 엔티티 생성 관련 로직을 EmotionMarbleFactory 클래스로 책임을 분리
* submodule update
* refactor: EmotionMarbleService, OnboardingService에 쓰이는 공통 로직을 행위의 주체인 RecommendRoutineService로 위임
공통 로직은 recommendRoutinesByEmotionMarble() 메서드입니다.
* fix: enum 오타 수정
* remove: 중복 클래스 삭제
* refactor: 변경 루틴 관련 엔티티 생성 로직을 ChangedRoutineFactory로 책임을 위임
* chore: ChangedRoutineFactory 주석 추가
* refactor: 공통 로직 메서드 분리
* refactor: DTO 관련 로직을 RecommendedRoutineMapper로 책임을 위임
1. searchRecommendedRoutines()의 로직 흐름을 한눈에 파악할 수 있도록 addPersonalizedRecommendedRoutine(), addCategoryRecommendedRoutines()로 분리하였습니다.
2. recommendRoutinesByEmotionMarble()에서 비즈니스 로직에 의해 주로 List 초기화 및 for문 순회하는 부분이 반복되어 코드량이 비대해졌습니다. 스트림을 사용하여 짧게 가져가면 짧은 코드로도 어떤 행위를 하는지 파악할 수 있는 것이 장점으로 느껴져 변경하였습니다.
* refactor: 중복 클래스 제거 및 변수명 통일
* refactor: 메서드명 변경 및 주석의 의도 강화
* refactor: RecommendedRoutine 관련 공통 로직을 Service가 아닌 Manager 클래스로 위임하여 레이어드 아키텍처 규칙을 준수
* refactor: 생성, 변환과 같은 단순 책임의 모듈을 @component로 변경
* refactor: response 관련 변수명 수정
* [T3-120] 추천 루틴 단건 조회 API (#36)
* fix: 추천 루틴 엔티티 실행시간 변수명 수정
* fix: 추천 루틴 엔티티 실행시간 변수명 수정에 따른 sql 수정
* feat: 추천 루틴 단건 조회 API
* chore: 서브모듈 업데이트
* remove: 불필요한 dto 제거
* fix: swagger 명세 수정
* fix: 추천 루틴 단건조회 로직 수정
* fix: 추천루틴 엔티티 필드명 변경에 따른 수정(time -> executionTime)
* fix: release 태그 생성 자동화 수정 (#37)
* [T3-124] S3 설정 추가 및 감정구슬 전체 조회 수정 (#38)
* feat: s3 config 생성
* fix: 감정구슬 전체 조회 API 수정
* feat: EmotionMarbleMapper 추가 및 서비스 로직 수정
* remove: 루틴 조회 시 불필요한 응답값 제거
* feat: 유저 정보를 조회하는 API 추가
* feat: 검색 날짜 기준으로 홈 화면의 감정 구슬 조회 API 추가
* refactor: DTO 변환 로직 Mapper 클래스로 이동
* refactor: 업데이트를 위해 User를 영속 상태로 만드는 로직을 UserManager 클래스로 위임
* chore: 테스트코드 리팩터링 TODO 주석 추가
* feat: 수정 페이지에서 사용되는 루틴 단건 조회 API 추가
* refactor: 감정 구슬 조회 API 수정
* fix: 서브 루틴 조회시 활성상태인 서브 루틴을 조회하도록 쿼리 메서드 수정
* refactor: 유저 정보 조회 엔드포인트 변경
* fix: onboarding insert sql 수정
* chore: 배포 Slack 알림 추가
* chore: release drafter 실행 조건 수정
* chore: 서브모듈 업데이트 및 data.sql 수정
* refactor: release drafter를 cicd 워크플로우 안으로 병합
* fix: onboarding 수행시 null 체크
* fix: slack message parameter 수정(toJson 처리)
* fix: 반복일자에 null 대신 empty list 응답
* fix: payload json-safe 문자열로 수정
---------
Co-authored-by: 정유석 <elwlahstmxjf@naver.com>
Co-authored-by: 정유석 <83908712+yuseok0215@users.noreply.github.com>1 parent 20d5a4d commit 476e597
4 files changed
Lines changed: 22 additions & 33 deletions
File tree
- .github/workflows
- src/main/java/bitnagil/bitnagil_backend
- onboarding/service
- routine/service
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
7 | 7 | | |
8 | 8 | | |
9 | 9 | | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
10 | 14 | | |
11 | 15 | | |
12 | 16 | | |
| |||
241 | 245 | | |
242 | 246 | | |
243 | 247 | | |
244 | | - | |
| 248 | + | |
245 | 249 | | |
246 | 250 | | |
247 | 251 | | |
| |||
262 | 266 | | |
263 | 267 | | |
264 | 268 | | |
265 | | - | |
| 269 | + | |
266 | 270 | | |
267 | 271 | | |
268 | 272 | | |
| |||
274 | 278 | | |
275 | 279 | | |
276 | 280 | | |
277 | | - | |
| 281 | + | |
278 | 282 | | |
279 | 283 | | |
280 | 284 | | |
| |||
284 | 288 | | |
285 | 289 | | |
286 | 290 | | |
| 291 | + | |
| 292 | + | |
| 293 | + | |
| 294 | + | |
| 295 | + | |
| 296 | + | |
| 297 | + | |
| 298 | + | |
| 299 | + | |
This file was deleted.
Lines changed: 4 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
63 | 63 | | |
64 | 64 | | |
65 | 65 | | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
66 | 70 | | |
67 | 71 | | |
68 | 72 | | |
| |||
Lines changed: 2 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
| 3 | + | |
3 | 4 | | |
4 | 5 | | |
5 | 6 | | |
| |||
59 | 60 | | |
60 | 61 | | |
61 | 62 | | |
62 | | - | |
| 63 | + | |
63 | 64 | | |
64 | 65 | | |
65 | 66 | | |
| |||
0 commit comments