-
Notifications
You must be signed in to change notification settings - Fork 1
v1.0.0 #110
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
Conversation
* feat: 모듈별 인프라 설정 선별 적용을 위한 InfraBaseConfig 인터페이스 정의 * feat: @async 및 이벤트 비동기 처리를 위한 AsyncConfig 구성 클래스 추가 - @async 메서드 실행을 위한 Executor를 taskExecutor()로 분리 구성 - 이벤트 리스너의 실행도 비동기로 처리되도록 ApplicationEventMulticaster 재정의 - 각 기능별 Executor를 분리하여 용도에 맞는 설정을 구성 * feat: JPA 관련 설정을 위한 JpaConfig 클래스 추가 - 트랜잭션 관리 활성화를 위한 @EnableTransactionManagement 적용 - JPA 엔티티 스캔 경로 지정 (@EntityScan) - JPA 리포지토리 스캔 경로 지정 (@EnableJpaRepositories) * chore: JPA 의존성 추가 * fix: 오타 수정 * feat: InfraBaseConfigGroup enum으로 인프라 구성 클래스 그룹화 구현 - AsyncConfig와 JpaConfig를 그룹에 포함시켜 모듈별 인프라 선택 등록에 활용 - 추후 Config 클래스 추가 시 해당 enum에 반드시 명시 * feat: 모듈별 인프라 설정 자동 등록을 위한 EnableInfraBaseConfig 어노테이션 추가 - InfraBaseConfigGroup 배열을 받아 필요한 인프라 설정만 선택적으로 등록할 수 있도록 설계 * feat: 모듈별 인프라 설정 자동 등록을 위한 ImportSelector 구현 - EnableInfraBaseConfig 어노테이션에 지정된 InfraBaseConfigGroup 열거형 값을 기반으로, 각 모듈에서 필요한 인프라 설정 클래스만 선택적으로 스프링 빈으로 등록하도록 구현 - DeferredImportSelector 인터페이스를 구현하여, 스프링 애플리케이션 컨텍스트 초기화 시점에 필요한 설정만 지연해서 임포트함으로써 불필요한 빈 등록을 방지 * feat: Admin 모듈에 모듈별 인프라 설정 자동 등록 적용 - Admin 모듈 InfraConfig에 @EnableInfraBaseConfig 어노테이션 적용 - InfraBaseConfigGroup.JPA 설정을 통해 JPA 관련 빈만 선택적으로 등록하도록 구성 * feat: Apis 모듈에 모듈별 인프라 설정 자동 등록 적용 - Apis 모듈 InfraConfig에 @EnableInfraBaseConfig 어노테이션 적용 - InfraBaseConfigGroup.JPA와 ASYNC 설정을 통해 필요한 인프라 빈을 선택적으로 등록 * chore: batch 모듈에 infra 모듈 의존성 추가 * feat: Batch 모듈에 모듈별 인프라 설정 자동 등록 적용 - Batch 모듈 InfraConfig에 @EnableInfraBaseConfig 어노테이션 적용을 위한 어노테이션 주석 추가 - 향후 @EnableInfraBaseConfig([InfraBaseConfigGroup.FCM])로 FCM 인프라 설정 모듈 자동 등록 예정 * chore: 도메인 모듈에 jpa 의존성 등록 * chore: 도메인 전용 JPA 설정을 위한 CoreDomainConfig 추가
* delete: 사용하지 않는 파일 삭제 * docs: Admin 모듈의 역할 및 의존성 규칙 문서화 * docs: Apis 모듈의 역할 및 의존성 규칙 문서화 * docs: Batch 모듈의 역할 및 의존성 규칙 문서화 * docs: Domain 모듈의 역할 및 의존성 규칙 문서화 * docs: Gateway 모듈의 역할 및 의존성 규칙 문서화 * docs: Infra 모듈의 역할 및 의존성 규칙 문서화 * docs: Global-utils 모듈의 역할 및 의존성 규칙 문서화 * docs: Admin 모듈의 아키텍처 설명 추가 * docs: 각 모듈의 README.md 상세 설명 링크 추가
* [BOOK-52] feat: apis - 카카오/애플 AuthContoller 구현 (#11) * [BOOK-52] feat: apis - Auth Dto 구현 (#11) * [BOOK-52] feat: apis - Auth 에러코드 정의 (#11) * [BOOK-52] feat: apis - 카카오/소셜로그인 서비스로직 구현 (#11) * [BOOK-52] feat: apis - 카카오/소셜로그인 유스케이스 구현 (#11) * [BOOK-52] feat: apis - config 설정 (#11) * [BOOK-52] feat: apis - 카카오/소셜로그인 닉네임 자동생성 util 구성 (#11) * [BOOK-52] feat: apis - application.yml 구성 (#11) * [BOOK-52] feat: apis - 소셜로그인 테스트가이드 (#11) * [BOOK-52] feat: �buildSrc - 의존성추가 (#11) * [BOOK-52] feat: domain - 카카오/소셜로그인 도메인모델 구현 (#11) * [BOOK-52] feat: gateway - 인증 / 인가 필터로직 구현 (#11) * [BOOK-52] feat: global-utils 모듈에 공통 예외 처리 기능 추가 (#11) * [BOOK-52] feat: infra - Config 셋팅구성 (#11) * [BOOK-52] feat: infra - repository 구현체 구성 (#11) * [BOOK-52] refactor: infra - RedisTemplate 설정에서 중복 제거 및 의존성 주입 방식으로 변경(#11) * [BOOK-52] refactor: infra - UseRepository 예외처리 (#11) * [BOOK-52] refactor: global-utils - Exception 보완 (#11) * [BOOK-52] refactor: gateway - JwtToken 보완 (#11) * [BOOK-52] refactor: domain - JpaAuditingEntity 추가 (#11) * [BOOK-52] refactor: buildSrc - Log 의존성 추가 (#11) * [BOOK-52] refactor: apis - Log 의존성 추가 및 로그추가 (#11) * [BOOK-52] refactor: apis - 토큰을 통해 로그아웃 구현 (#11) * [BOOK-52] refactor: apis - AuthDto 필드값 변경 (#11) * [BOOK-52] refactor: apis - TokenPair 별도 class로 분리 (#11) * [BOOK-52] refactor: apis - Exception 추가 (#11) * [BOOK-52] refactor: apis - config 필드 값 정리 (#11) * [BOOK-52] refactor: global-utils - CommonException 간소화 (#11) * [BOOK-52] refactor: global-utils - domainservice annotation 생성 (#11) * [BOOK-52] refactor: gateway - CommonException 적용 (#11) * [BOOK-52] refactor: �domain - domainservice 비즈니스로직 정의 (#11) * [BOOK-52] refactor: apis - application service, usecase 분리 (#11) * [BOOK-52] refactor: �apis - Exception Docs 적용 (#11) * [BOOK-52] refactor: �apis - sealed 클래스 타입 강제 (#11) * [BOOK-52] refactor: �apis - dto request,response 분리 (#11) * [BOOK-52] refactor: apis - dto validation 추가 (#11) * [BOOK-52] refactor: apis - AuthException 수정 (#11) * [BOOK-52] refactor: apis - dto 간소화 (#11) * [BOOK-52] refactor: domain - domainservice,redisservice dao 분리 (#11) * [BOOK-52] refactor: apis,domain,gateway,global-utils UUID v7 적용 (#11) * [BOOK-52] refactor: apis open session in view false (#11) * [BOOK-52] refactor: infra uuid v7 적용 (#11) * [BOOK-52] refactor: �apis - dto companion object 정적멤버사용 (#11) * [BOOK-52] refactor: �apis - dto 수정 (#11) * [BOOK-52] refactor: �apis - dto 수정 (#11) * [BOOK-52] refactor: DTO,Entity private 생성자와 정적 팩토리 메서드 적용
* feat: 멀티모듈 지원을 위한 PR용 Gradle 검증 워크플로우 추가 * [BOOK-50] chore: secret properties git 추적에서 제거 * [BOOK-50] chore: gradle/actions/setup-gradle 버전 업그레이드(v3 -> v4) * [BOOK-50] refactor: yml 파일 환경 분리 * [BOOK-50] refactor: secret을 주입한 후 CI를 돌리도록 리팩토링 * [BOOK-50] feat: release-drafter를 이용해 버저닝 태그로 버전관리 할 수 있는 기능 추가 * [BOOK-50] chore: buildSrc, apis - 테스트 컨테이너 관련 의존성 추가 * [BOOK-50] chore: apis - 테스트 환경 YML 파일 생성 * [BOOK-50] test: apis - 테스트 실행 시 실행될 테이블 초기화 스크립트 작성 * [BOOK-50] test: apis - 테스트 컨테이너 관련 어노테이션 명시 * [BOOK-50] chore: batch, gateway - 의존성 방향에 맞게 수정 * [BOOK-50] test: apis - 사용하지 않는 테스트 클래스 삭제 * [BOOK-50] refactor: 멀티라인 배열로 변경 * [BOOK-50] fix: refactor - 중복 설정 값 주입 수정 - jwtTokenProvider에서 알고 있기에 해당 객체에서 get * [BOOK-50] delete: apis, domain, global-utils, infra - 사용하지 않는 파일 삭제 * [BOOK-50] test: admin, batch - 테스트 컨테이너 어노테이션 명시 * [BOOK-50] chore: admin, batch, infra, buildSrc - 의존성 업데이트 및 Flyway 의존성 infra 모듈에 추가 * [BOOK-50] feat: infra, gateway - 각 모듈별로 환경변수를 관리하는 yml 구현 * [BOOK-50] chore: .gitignore에 시크릿 명시 * [BOOK-50] feat: admin, apis, batch - 설정 관리 구조 리팩토링 애플리케이션의 설정 관리 방식을 보다 명확하고 확장성 있게 개선했습니다. 주요 변경 사항: 1. **프로파일 그룹 도입 (`spring.profiles.group`)** - `dev`, `prod`, `test` 등 각 환경에서 필요한 기능별 설정(persistence, jwt, redis 등)을 그룹으로 묶어 관리합니다. - 이를 통해 환경별 구성 요소를 한눈에 파악하고 쉽게 조합할 수 있습니다. 2. **민감 정보 외부 분리** - 데이터베이스 접속 정보, JWT 키 등 민감 정보를 프로젝트 루트의 `secret` 디렉토리로 분리했습니다. - `spring.config.import`와 `file:` 경로를 사용하여 각 환경에 맞는 시크릿 파일을 안전하게 로드합니다. - 이 구조는 `.gitignore`를 통해 Git에 민감 정보가 커밋되는 것을 방지하고, CI/CD 환경에서 외부 주입을 용이하게 합니다. * [BOOK-50] refactor: CI 스크립트 리팩토링 * [BOOK-50] refactor: infra - redis password 설정 추가 * [BOOK-50] chore: .gitignore에 secret 폴더 표시 * [BOOK-50] test: admin, batch, apis - Testcontainers 어노테이션은 컨테이너를 직접 관리하는 클래스에서 명시하도록 변경 * [BOOK-50] chore: redis 컨테이너 의존성 추가 * [BOOK-50] chore: apis, infra - 테스트 컨테이너 의존성 추가 * [BOOK-50] chore: admin, apis, batch, infra - test 프로필에서 redis 설정 제거 - 테스트 실행 시 실제 Redis 설정 파일이나 환경변수에 의존하지 않고, Testcontainers로 실행되는 Redis 컨테이너를 사용하기 위해 test 프로필에서 redis 설정을 제외했습니다. * [BOOK-50] test: infra - Redis 테스트 설정 클래스 도입 - JUnit 5 + Testcontainers 기반의 Redis 테스트 설정 클래스를 추가했습니다. - 테스트 클래스에서 이 클래스를 상속하면 Redis 컨테이너가 자동으로 실행되며, 컨테이너의 host/port가 Spring 프로퍼티에 동적으로 주입됩니다. - 추후, 모듈 간 테스트 코드 접근 문제로 인해, 추후 Gradle Test Fixture 도입이 필요합니다. * [BOOK-50] chore: build continue 옵션 ci에서 제거 * [BOOK-50] feat: dev/prod 환경 CI/CD 스크립트 작성 * [BOOK-50] refactor: 코드리뷰 반영 * [BOOK-50] refactor: 도커 관련 정보도 넘기도록 변경 * [BOOK-50] chore: 사용하지 않는 커맨드 제거 * [BOOK-50] chore: infra - dev환경에서 flyway를 이용하지 않도록 변경 * [BOOK-50] chore: 스크립트 위치에 맞게 변경
* [BOOK-88] refactor: 빌드 스크립트 리팩터링 * [BOOK-88] feat: prod, dev 용 Dockerfile 구현 * [BOOK-88] refactor: 코드리뷰 반영 * [BOOK-88] refactor: 도커 스테이지 최적화 * [BOOK-88] refactor: 변경된 도커파일에 맞게 스크립트 변경
* [BOOK-88] refactor: 빌드 스크립트 리팩터링 * [BOOK-88] feat: prod, dev 용 Dockerfile 구현 * [BOOK-88] refactor: 코드리뷰 반영 * [BOOK-88] refactor: 도커 스테이지 최적화 * [BOOK-88] refactor: 변경된 도커파일에 맞게 스크립트 변경 * [BOOK-88] fix: 확장자에 맞게 도커파일 수정 * [BOOK-88] fix: 확장자에 맞게 도커파일 수정 * [BOOK-88] refactor: Wrapper 스크립트와 gradle/wrapper 디렉터리를 함께 복사하도록 변경 * [BOOK-88] chore: 주석 수정
* [BOOK-88] refactor: 빌드 스크립트 리팩터링 * [BOOK-88] feat: prod, dev 용 Dockerfile 구현 * [BOOK-88] refactor: 코드리뷰 반영 * [BOOK-88] refactor: 도커 스테이지 최적화 * [BOOK-88] refactor: 변경된 도커파일에 맞게 스크립트 변경 * [BOOK-88] fix: 확장자에 맞게 도커파일 수정 * [BOOK-88] fix: 확장자에 맞게 도커파일 수정 * [BOOK-88] refactor: Wrapper 스크립트와 gradle/wrapper 디렉터리를 함께 복사하도록 변경 * [BOOK-88] chore: 주석 수정 * [BOOK-88] fix: buildSrc 모듈도 복사하도록 수정
* [BOOK-88] refactor: 빌드 스크립트 리팩터링 * [BOOK-88] feat: prod, dev 용 Dockerfile 구현 * [BOOK-88] refactor: 코드리뷰 반영 * [BOOK-88] refactor: 도커 스테이지 최적화 * [BOOK-88] refactor: 변경된 도커파일에 맞게 스크립트 변경 * [BOOK-88] fix: 확장자에 맞게 도커파일 수정 * [BOOK-88] fix: 확장자에 맞게 도커파일 수정 * [BOOK-88] refactor: Wrapper 스크립트와 gradle/wrapper 디렉터리를 함께 복사하도록 변경 * [BOOK-88] chore: 주석 수정 * [BOOK-88] fix: buildSrc 모듈도 복사하도록 수정 * [BOOK-88] refactor: 멀티 플랫폼 빌드 제거 - arm64만 QEMU로 인해 의존성 다운로드 단계가 오래걸리기에 amd64만 빌드하도록 변경
* [BOOK-88] refactor: 빌드 스크립트 리팩터링 * [BOOK-88] feat: prod, dev 용 Dockerfile 구현 * [BOOK-88] refactor: 코드리뷰 반영 * [BOOK-88] refactor: 도커 스테이지 최적화 * [BOOK-88] refactor: 변경된 도커파일에 맞게 스크립트 변경 * [BOOK-88] fix: 확장자에 맞게 도커파일 수정 * [BOOK-88] fix: 확장자에 맞게 도커파일 수정 * [BOOK-88] refactor: Wrapper 스크립트와 gradle/wrapper 디렉터리를 함께 복사하도록 변경 * [BOOK-88] chore: 주석 수정 * [BOOK-88] fix: buildSrc 모듈도 복사하도록 수정 * [BOOK-88] refactor: 멀티 플랫폼 빌드 제거 - arm64만 QEMU로 인해 의존성 다운로드 단계가 오래걸리기에 amd64만 빌드하도록 변경 * [BOOK-88] refactor: actuator path 변경 - 추후 보안을 위해 actuator path 설정을 변경할 예정입니다.
* [BOOK-79] feat: RestClient 알라딘 API적용 (#18) * [BOOK-79] fix: IllegalArgumentException 500 공통에러로 떨어지는 문제 해결 (#15) * [BOOK-79] feat: apis - 알라딘 도서검색, 도서상세검색 Controlller (#15) * [BOOK-79] feat: apis - 알라딘 도서검색, 도서상세검색 DTO (#15) * [BOOK-79] feat: apis - 알라딘 도서검색, 도서상세검색 외부 API Helper (#15) * [BOOK-79] feat: apis - 알라딘 도서검색, 도서상세검색 UseCase (#15) * [BOOK-79] feat: apis - 알라딘 도서검색, 도서상세검색 Service (#15) * [BOOK-79] feat: apis - 알라딘 도서검색, 도서상세검색 외부 API Response 정의 (#15) * [BOOK-79] feat: gateway - 도서관련 security permitAll (#15) * [BOOK-79] feat: domain - domain model (#15) * [BOOK-79] feat: infra - domain entity 설계 (#15) * [BOOK-79] refactor: global-util - HttpRequestMethodNotSupportedException 추가 (#15) * [BOOK-79] chore: infra external.yml파일 알라딘 api key 세팅 (#15) * [BOOK-79] refactor: infra user impl 분리 (#15) * [BOOK-79] refactor: infra - 알라딘 책 가격 부동소수점 오류를 위한 BigDecimal (#15) * [BOOK-79] refactor: infra - 알라딘 외부 API용 DTO분리 (#15) * [BOOK-79] refactor: apis - external yml group 추가 (#15) * [BOOK-79] refactor: apis - 요청 DTO값 분리 및 알라딘 외부용 API 분리 (#15) * [BOOK-79] refactor: �admin - external yml group 추가 (#15) * [BOOK-79] fix: apis - inner dto class 이름변경 (#15) * [BOOK-79] feat: infra - BookRepository 기능개발 (#15) * [BOOK-79] feat: �domain - BookRepository 기능개발 (#15) * [BOOK-79] refactor: infra,apis RestClient 각 외부 APi별 분리 (#15) * [BOOK-79] �chore: infra,apis 필요없는 코드 삭제 (#15) * [BOOK-79] refactor: apis,global-utils validation 강화 (#15)
* [BOOK-94] refactor: root - 프로젝트 root 이름 변경
* [BOOK-94] chore: SonarCloud와 JaCoCo를 활용한 코드 품질 및 테스트 커버리지 관리 기능 추가
* [BOOK-94] refactor: CI 워크플로우에 fullCheck 태스크 적용
* [BOOK-94] fix: executionData 설정 방식을 각 하위 모듈의 build/jacoco/test.exec 파일 경로를 지연된 방식으로 참조하도록 수정
* [BOOK-94] refactor: 코드레빗 리뷰 반영
* [BOOK-94] chore: (임시) info -> debug로 빌드 실패 원인 파악
* [BOOK-94] chore: debug -> info로 변경
* [BOOK-94] refactor: classesDirs를 사용하여 JaCoCo 분석 대상 경로 명시
- 현재 프로젝트는 Kotlin으로만 작성되어 'build/classes/java/main' 디렉토리가 존재하지 않습니다.
- 하지만 JaCoCo는 기본적으로 이 경로를 확인하려 시도하여 불필요한 "not found" 경고가 발생했습니다.
- 이를 해결하기 위해, classDirectories가 실제로 컴파일된 클래스 파일이 있는 경로('classesDirs')만 참조하도록 설정을 최적화하여 경고 로그를 제거했습니다.
* [BOOK-94] fix: 중복 인덱싱 방지 로직 추가
* [BOOK-94] fix: 테스트하지 않는 코드 패턴을 명시하여 중복 인덱싱 방지
* [BOOK-94] fix: classes/kotlin/main로 경로 명확히 지정
* [BOOK-94] fix: 자동 탐지와 수동 설정 충돌 해결
* [BOOK-94] chore: 주석 제거
* [BOOK-94] chore: 코드레빗 리뷰 반영
* [BOOK-94] chore: 코드레빗 리뷰 반영
* [BOOK-94] fix: 패턴 수정
* [BOOK-94] refactor: 코드레빗 리뷰 반영
* [BOOK-96] feat: infra - UserBookEntity 구현 (#29) * [BOOK-96] feat: infra - UserBookRepository 구현 (#29) * [BOOK-96] refactor: infra - UserBookEntity 수정 (#29) * [BOOK-96] feat: domain - book,userbook domainservice 분리 (#29) * [BOOK-96] feat: domain - UserBook Domain 모델 구현 (#29) * [BOOK-96] refactor: domain - Book Domain 모델 수정 (#29) * [BOOK-96] feat: apis - 도서등록,내서재 Usecase 구현 (#29) * [BOOK-96] feat: apis - Book Exception 정의 (#29) * [BOOK-96] feat: apis - UserBook Dto 구현 (#29) * [BOOK-96] refactor: apis - BookDetail DTO 수정 (#29) * [BOOK-96] feat: apis - Controller 도서등록, 내서재 구현 (#29) * [BOOK-96] chore: infra,domain,apis import * 제거 * [BOOK-96] refator: infra - 상태 변경이 필요한 필드를 var + protected set (#29) * [BOOK-96] �feat: domain - userBook 도메인계층 기능개발 (#29) * [BOOK-96] �refactor: apis - service계층 분리 (#29) * [BOOK-96] �feat: apis - �dto 정의 (#29) * [BOOK-96] �refactor: apis - �usecase service 분리 (#29) * [BOOK-96] �refactor: apis - � AuthenticationPrincipal를 통해 userId 주입 (#29) * [BOOK-96] �refactor: apis - api swagger 명세서 response 수정 * [BOOK-96] refactor: apis,domain,infra - user validate 메소드 별도로 분리 * [BOOK-96] chore: apis - 불필요한 코드 제거 (#29) * [BOOK-96] refactor: apis,domain - 패키지구조 변경 (#29) * [BOOK-96] refactor: apis- 패키지구조 변경 (#29) * [BOOK-96] refactor: apis- 외부 API 인터페이스 추상화 (#29) * [BOOK-96] refactor: apis- book도메인 객체 domainservice 내부에서 생성 (#29) * [BOOK-96] refactor: apis- BookQueryServiceQualifier 상수처리 (#29)
* [BOOK-132] refactor: gateway - filter에서 예외처리, 예외메세지 구체적으로 표시 (#35) * [BOOK-132] feat: CustomAccessDeniedHanlder 추가 (#36) * [BOOK-132] feat: CustomAuthenticationEntryPoint 추가 (#36) * [BOOK-132] refactor: securityconfig customHanlder 적용 (#36) * [BOOK-132] chore: gateway - 불필요한 파일 삭제 (#36) * [BOOK-132] delete: gateway - 검증 주체를 Spring Security의 내장 필터로 이동하기 위해 삭제 * [BOOK-132] feat: global-utils - 역할을 관리하는 enum 생성 * [BOOK-132] feat: domain, infra - Role 칼럼 추가 * [BOOK-132] refactor: domain - 회원가입 시 기본 USER 권한으로 역할이 저장되도록 리팩토링 * [BOOK-132] chore: buildSrc - oauth2-resource-server 의존성 추가 * [BOOK-132] chore: gateway - oauth2-resource-server 의존성 implementation * [BOOK-132] refactor: gateway - 로그 레벨 변경 및 공통 로직 private 메서드로 분리 * [BOOK-132] feat: gateway - 검증 주체를 Spring Security로 이동 * [BOOK-132] refactor: gateway - 검증 주체 변경으로 인해 로직 리팩토링 및 역할을 포함해서 토큰 생성하도록 변경 * [BOOK-132] refactor: apis - 토큰 생성 로직 변경으로 인한 리팩토링 * [BOOK-132] refactor: gateway - JWT 기반 OAuth2 리소스 서버 설정 추가 및 인증 컨버터 연동 * [BOOK-132] delete: gateway - JwtDecoder의 디코딩 예외 사용으로 인해 제거 * [BOOK-132] feat: gateway - 화이트 리스트 도입 * [BOOK-132] refactor: gateway - JwtEncoder, JwtDecoder를 사용하는 방식으로 변경 * [BOOK-132] docs: gateway - javadoc 추가 * [BOOK-132] chore: gateway, buildSrc - jjwt 관련 의존성 제거 * [BOOK-132] chore: apis - jjwt 의존성 제거 * [BOOK-132] refactor: gateway - SecurityErrorResponseWriter 클래스 도입을 통한 공통 예외처리 리팩토링 * [BOOK-132] chore: gateway - 가독성을 위한 개행 추가 * [BOOK-132] chore: gateway - 화이트 경로 리팩토링 --------- Co-authored-by: DongHoon Lee <[email protected]>
* [BOOK-131] refactor: apis - apis모듈 리팩토링 service 반환 DTO로 통일 (#34) * [BOOK-131] refactor: domain - domainservice 반환 VO로 통일 (#34) * [BOOK-131] refactor: apis - from 컨벤션에 맞게 수정 (#34) * [BOOK-131] refactor: apis - UserBookService 타입지정 (#34) * [BOOK-131] refactor: domain - VO init 검증코드 (#34) * [BOOK-131] refactor: domain - 빠진필드 추가 (#34) * [BOOK-131] refactor: apis - dto자체를 넘기는방식으로 변경 (#34)
* [BOOK-143] fix: gateway - sub 클레임을 UUID 타입으로 변환하여 인증 객체의 principal로 설정하도록 수정 * [BOOK-143] fix: gateway - SecurityConfig에서 의존성 타입 일치하도록 수정
* [BOOK-140] chore: apis - 패키지 이동 * [BOOK-140] refactor: apis - vo가 아닌 dto를 반화하도록 변경 * [BOOK-140] chore: apis - 개행 삭제 * [BOOK-140] chore: apis - 필요없는 명세 삭제 * [BOOK-140] feat: apis - 애플리케이션 레이어에 사용될 DTO 정의 * [BOOK-140] feat: domain - 도메인 전용 예외 클래스 구현 * [BOOK-140] refactor: domain - 역할 부여 여부에 따라 정적 팩토리 메서드 분리 * [BOOK-140] chore: apis - 패키지 이동 * [BOOK-140] chore: apis - 패키지 이동 * [BOOK-140] refactor: apis - 정적팩토리 메서드 인자로 vo를 받도록 변경 * [BOOK-140] refactor: apis - 컨트롤러에서 usecase로 갈때 dto를 받도록 변경 * [BOOK-140] refactor: apis - valid 로직 도입 * [BOOK-140] refactor: domain - 인증 로직에 사용되는 vo 구현 * [BOOK-140] refactor: domain, infra - 도메인 서비스에서 해당하는 vo를 리턴하도록 변경 * [BOOK-140] chore: infra - 새로운 메서드 추가 * [BOOK-140] refactor: apis - 인증 로직을 클린 아키텍처에 맞게 리팩토링 * [BOOK-140] chore: apis - dto 필드 검증 NotBlank로 변경 * [BOOK-140] chore: apis - 가시성을 위한 개행 추가 * [BOOK-140] refactor: apis, domain - 코드리뷰 반영 * [BOOK-140] refactor: apis, domain, infra - 코드리뷰 반영 * [BOOK-140] refactor: domain - UuidGenerator 유틸 클래스로 아이디 생성 방식 변경 * fix: sub 클레임 값을 UUID로 변환해 Authentication 객체의 principal로 설정하도록 수정 (#44) * [BOOK-143] fix: gateway - sub 클레임을 UUID 타입으로 변환하여 인증 객체의 principal로 설정하도록 수정 * [BOOK-143] fix: gateway - SecurityConfig에서 의존성 타입 일치하도록 수정 * [BOOK-140] refactor: domain, infra - jpa 메서드 재정의 * [BOOK-140] feat: domain - 리프레쉬 토큰 관련 도메인 에러 클래스 생성 * [BOOK-140] chore: domain, apis - 메서드 네이밍 변경 * [BOOK-140] chore: domain - 필요 없는 중괄호 제거 * [BOOK-140] feat: doamin, infra - RefreshToken 도메인에 Value Class 적용 및 생성자 검증 추가 - RefreshToken 내 id, token, userId를 각각 Value Class(Id, Token, UserId)로 분리 - Value Class 내 newInstance 정적 팩토리 메서드 구현 및 검증 로직 추가 * [BOOK-140] feat: apis - 비즈니스 로직에 사용될 요청 및 응답 dto 구현 * [BOOK-140] refactor: domain - 무조건 true인 검증 제거 * [BOOK-140] refactor: requestDTO를 받도록 변경 * [BOOK-140] refactor: apis - redis 관련 인증도메인 리팩토링 * [BOOK-140] refactor: apis, infra - 값 기반 비교를 위해 객체들을 VO(Value Object)로 리팩토링 - ID, EMAIL, PROVIDERID는 동일한 값을 가지면 같은 객체임 * [BOOK-140] refactor: infra - this 추가 * [BOOK-140] refactor: apis, domain - vo 매핑으로 인한 변동사항 반영 * [BOOK-140] refactor: domain, infra - 값 기반 비교를 위해 객체들을 VO(Value Object)로 리팩토링 * [BOOK-140] refactor: apis, domain - 값 객체 매핑으로 인한 변동사항 반영 * [BOOK-140] feat: domain - 책 관련 도메인 예외 클래스 생성 * [BOOK-140] feat: domain - 책 관련 도메인 예외 클래스 생성 * [BOOK-140] refactor: domain, infra - 생성된 도메인 예외를 이용해 로직 리팩토링 * [BOOK-140] chore: apis, domain - vo 이름 구체화 * [BOOK-140] chore: infra - 패키지 변경 * [BOOK-140] refactor: domain, infra - 값 기반 비교를 위해 객체들을 VO(Value Object)로 리팩토링 * [BOOK-140] refactor: domain, apis - VO 래핑으로 인한 변동사항 반영 * [BOOK-140] refactor: apis, domain, infra - 코드레빗 리뷰 반영 * [BOOK-140] refactor: apis - 코드레빗 리뷰 반영 * [BOOK-140] chore: domain - 메서드 위치 변경 * [BOOK-140] chore: apis - 가독성을 위한 개행 추가 * [BOOK-140] feat: global-utils - email, isbn 전역 validator 구현 * [BOOK-140] refactor: domain - email, isbn 전역 validator 적용
* [BOOK-139] feat: apis,domain,infra - 도서 검색 결과에 사용자 읽음 상태 표시 기능 (#38) * [BOOK-139] feat: gateway - security cors 추가 (#38) * [BOOK-139] �chore: apis - 불필요한 import 제거 (#39) * [BOOK-139] refactor: domain - with함수로 this 간소화 (#39) * [BOOK-139] fix: apis,domain conflict resolve (#38) * [BOOK-139] refactor: apis - 리뷰 1차 반영 (#38)
* [BOOK-154] feat: apis - 내서재 동적검색 Controller 작성 (#48) * [BOOK-154] feat: apis - 내서재 동적검색 dto 작성 (#48) * [BOOK-154] feat: apis - 내서재 동적검색 service 작성 (#48) * [BOOK-154] feat: apis - 내서재 동적검색 usecase 작성 (#48) * [BOOK-154] feat: apis,buildSrc - 내서재 동적검색 querydsl config setting (#48) * [BOOK-154] refactor: domain,infra - JpaAuditing으로 날짜 설정 (#48) * [BOOK-154] feat: domain- 내서재 동적검색을 위한 domainservice, vo 설정 (#48) * [BOOK-154] feat: domain- 내서재 동적검색 시 괄호 제거하는 validator 분리 (#48) * [BOOK-154] feat: infra- 내서재 동적검색 시 querydsl config 설정 (#48) * [BOOK-154] feat: infra- querydslrepository 구현 (#48) * [BOOK-154] refactor: Update QueryDSL build directory path (#48) * [BOOK-154] refactor: domain - 도서 상태별 카운트 동적 계산 * [BOOK-154] refactor: infra - QueryDSL 쿼리 로직 개선 및 가독성 향상 (#48) * refactor: apis,infra - pageconfig 분리 * refactor: apis - 코드리뷰 1차 반영 (#48) * refactor: infra - querydsl refactoring deprecated code (#48) * refactor: infra - pageconfig 분리(#48) --------- Co-authored-by: kimminwoo <[email protected]>
- UserBookEntity.toDomain()에서 JPA Auditing이 완료되기 전 createdAt/updatedAt 접근 시 발생하는 UninitializedPropertyAccessException 수정
- BookRepositoryImpl, UserRepositoryImpl, UserBookRepositoryImpl에서 save 메서드를 saveAndFlush로 변경하여 즉시 저장 및 플러시 처리 - BaseTimeEntity의 createdAt 및 updatedAt 필드에 protected set 추가하여 접근 제어 개선
…비활성화하는 기능 추가 (#87) * [BOOK-90] fix: gateway - 화이트리스트를 제외하고, 모든 경로에 인증된 사용자만 접근 가능하도록 수정 * [BOOK-90] feat: global-utils - Swagger 보안을 비활성화하는 어노테이션 추가 * [BOOK-90] feat: apis - Swagger 보안 설정을 비활성화하는 OperationCustomizer 추가 * [BOOK-90] feat: apis - 소셜 로그인 및 토큰 갱신 API에 Swagger 보안 비활성화 어노테이션 추가 * [BOOK-90] chore: apis - Book 관련 유틸 클래스 book 패키지로 이동 * [BOOK-90] refactor: apis, global-utils - 코드레빗 리뷰 반영 * [BOOK-90] feat: apis, global-utils - ApplicationService 커스텀 어노테이션 생성 및 기존 Service 어노테이션 리팩토링 * [BOOK-90] chore: apis - DTO에 스키마 명세 추가 * [BOOK-90] chore: apis - 가독성을 위한 반환 방식 리팩토링 * [BOOK-90] refactor: apis, domain - 애플 리프레쉬 토큰 관련 DTO 내부 로직 변경 * [BOOK-90] fix: apis - item 내부에 있는 link를 전달하도록 수정 * [BOOK-90] chore: apis - 최소 개수 명세 추가 * [BOOK-90] refactor: apis - 애플 refreshToken이 null이나 빈문자열로 올 경우 기존 initialUserResponse를 반환하도록 변경 * [BOOK-90] refactor: apis - 프로퍼티 위의 @Schema만 @field:Schema로 변경 * [BOOK-90] chore: apis - categories 프로퍼티의 명세 변경
**IsbnValidator** - 기존 정규식 검사에 더해 ISBN-10, ISBN-13의 체크섬 검증 추가 - 하이픈(-), 공백, 소문자 'x' 처리용 전처리 기능 추가 **AladinBookQueryService** - filter → mapNotNull로 변경하여 ISBN-10만 있는 경우 ISBN-13 변환 후 포함 - isbn13 필드 누락 문제 해결 - totalResults를 필터링 후 아이템 개수로 수정하여 데이터 정합성 확보
* [BOOK-262] feat: apis - 독서 기록 수정,삭제 기능구현 (#93) * [BOOK-262] feat: �domain - 독서 기록 수정,삭제 기능구현 (#93) * [BOOK-262] feat: �infra - 독서 기록 수정,삭제 기능구현 (#93) * [BOOK-262] fix: apis - 독서기록 DTO, service 수정 (#94) * [BOOK-262] fix: apis,gateway - 도서검색 로그인 없이 사용할 수 있도록 수정(#94) * [BOOK-262] refacator: apis,domain - 코드리뷰 반영 (#94) * [BOOK-262] �refactor: dto validtation 처리 (#94)
* [BOOK-93] feat: infra - AOP 설정을 위한 AopConfig 클래스 추가 * [BOOK-93] feat: apis, infra - InfraBaseConfigGroup에 AOP 설정 클래스 추가 및 apis 모듈에서 사용 가능하도록 추가 * [BOOK-93] feat: infra, global-utils - 서비스 및 컨트롤러 레이어에 대한 로깅을 위한 Aspect 및 Pointcut 설정 추가 * [BOOK-93] chore: domain, infra - Spring Data Commons 및 Spring Web 추가 및 불필요한 의존성 정리 * [BOOK-93] chore: logback 의존성 제외 후 Log4j2 추가 및 서비스 레이어 AOP 로깅 시 파라미터 이름도 로깅할 수 있도록 kotlinOptions.javaParameters = true 옵션 추가 * [BOOK-93] chore: Dependencies.kt에 Spring Data Commons, Spring Web, Log4j2 의존성 추가 * [BOOK-93] delete: domain - 사용하지 않는 CoreDomainConfig.kt 파일 삭제 * [BOOK-93] feat: gateway - MDC 기반 요청 로깅 필터 구현 및 사용자/클라이언트 정보 기록 - HTTP 요청 시 traceId, client IP, 요청 정보, 사용자 ID를 MDC에 저장 - JWT 인증 사용자의 subject를 userId로 기록, 인증되지 않은 경우 "GUEST"로 처리 - 요청 처리 완료 후 MDC 클리어하여 다음 요청에 영향 없음 - OncePerRequestFilter 상속으로 각 요청마다 한 번만 실행 * [BOOK-93] feat: gateway - MdcLoggingFilter를 BearerTokenAuthenticationFilter 이후에 배치하여 JWT 인증 후 사용자 정보 MDC에 기록하도록 구현 * [BOOK-93] feat: infra - Log4j2 설정 파일 추가로 로깅 구성 및 패턴 정의 * [BOOK-93] feat: infra - 비동기 MDC 전파 작업을 위한 MdcTaskDecorator 클래스 추가 및 AsyncConfig에 등록 * [BOOK-93] chore: infra - 사용하지 않는 import문 제거 * [BOOK-93] feat: global-utils - MethodArgumentTypeMismatchException 전역 예외 처리기에 등록 * [BOOK-93] refactor: infra - mdc에서 이미 로깅하기 때문에 시간 로깅 제외 * [BOOK-93] chore: kapt 관련 의존성 정리 및 코드레빗 리뷰 반영 * [BOOK-93] chore: infra - datetime(6)로 로그 패턴 수정 * [BOOK-93] refactor: gateway - 신뢰할 수 있는 프록시 서버 뒤에서만 XFF를 신뢰할 수 있도록 변경 * [BOOK-93] chore: global-utils - 필요하지 않는 괄호 제외 * [BOOK-93] chore: buildSrc - KAPT 플러그인 추가 * [BOOK-93] fix: infra - 함수/메서드 오버라이드 관련 경고 해결 * [BOOK-93] refactor: infra - 마스킹 로직 리팩토링 * [BOOK-93] refactor: infra - 실행 전 MDC를 명시적으로 clear하여 이전 작업의 MDC 완전히 제거 * [BOOK-93] chore: apis - 디버깅용 로그 주석처리 * [BOOK-93] refactor: infra - prod 환경에서만 마스킹처리하도록 리팩토링 * [BOOK-93] refactor: infra - 배열의 타입까지 로그에 남길 수 있도록 리팩토링
* [BOOK-269] refactor: infra - enum 타입에서 String 타입으로 JpaRepository로 전달하도록 변경 * [BOOK-269] refactor: infra - JPQL 대신 Native Query를 사용하여 SQLRestriction 회피 * [BOOK-269] refactor: infra - 코드레빗 리뷰 반영
* [BOOK-271] feat: apis - 비회원 검색 API 구현 * [BOOK-271] chore: apis - BookSearchResponse에 간단한 명세 변경 * [BOOK-271] feat: apis - 게스트용 도서 검색 비즈니스 로직 추가 * [BOOK-271] feat: gateway - whitelist에 guest 조회 API 추가
…UUID 타입을 제대로 처리하지 못하는 현상
* refactor: apis, global-utils - (지은이) 외에 (글)도 저자 표시로 함께 처리하도록 변경 * chore: global-utils - 정규식을 유틸클래스에서 가져와 사용하도록 변경 * refactor: apis - 기본값을 지정해서 예상치 못한 에러에 대응 * [BOOK-276] fix: apis - 누락된 필드 수정 및 제목 default value 추가 * [BOOK-276] refactor: apis, global-utils - 코드레빗 리뷰 반영
* [BOOK-277] chore: apis, infra - infra 관련 yml 생성 및 aop logging 설정 infra yml로 이동 * [BOOK-277] chore: infra - LoggingAopProperties 클래스 Config 패키지로 이동 * [BOOK-277] chore: actuator 의존성 gateway에만 할당 및 prometheus 의존성 추가 * [BOOK-277] chore: infra - LoggingAopProperties의 패키지 이동으로 인한 import문 변동사항 반영 * [BOOK-277] chore: yml 파일 구체화 및 테스트 환경 더미 환경변수 값 추가 * [BOOK-277] chore: CI/CD - test secret 파일 삭제 - 테스트 환경변수는 yml에서 더미 값으로 관리 * [BOOK-277] refactor: gateway - ConfigurationProperties 파일을 구현하여 기존 @value 기반 프로퍼티 주입 방식을 개선 * [BOOK-277] feat: gateway - actuator-path를 화이트리스트에 추가 * [BOOK-277] chore: gateway - favicon.ico를 화이트리스트에 추가 - 불필요한 warn 로깅 방지 * [BOOK-277] refactor: buildSrc, gateway - 코드레빗 리뷰 반영 * [BOOK-277] chore: CI/CD - prod 성공/실패 여부 discord 웹훅 연동 * [BOOK-277] chore: CI/CD - transition 값 문자열로 전달
* [BOOK-280] fix: infra - userBook 엔티티의 length와 통일 * [BOOK-280] feat: infra - 초기 데이터베이스 스키마 생성(users, books, user_books, reading_records, tags, reading_record_tags 테이블 추가 및 제약조건) * [BOOK-280] feat: infra - 기본 태그 데이터 삽입 SQL 스크립트 추가 * [BOOK-280] chore: infra - application-persistence.yml 파일 수정 및 Flyway 설정 변경 * [BOOK-280] docs: infra - 데이터베이스 스키마 거버넌스 전략 및 초기 데이터 관리 가이드라인 추가 * [BOOK-280] docs: infra - 데이터 삽입 가이드라인 수정 및 성능 고려 사항 추가 * [BOOK-280] refactor: infra - bookIsbn13 필드 길이 13으로 변경 * [BOOK-280] feat: infra - bookIsbn13 필드 길이 13자로 변경하는 Flyway 마이그레이션 스크립트 추가
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the You can disable this status message by setting the ✨ Finishing Touches🧪 Generate unit tests
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. CodeRabbit Commands (Invoked using PR/Issue comments)Type Other keywords and placeholders
Status, Documentation and Community
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
첫번째 PROD 배포네요. 여태 고생많으셨습니다~

v1.0.0 release