-
Notifications
You must be signed in to change notification settings - Fork 3
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
refactor: 결제와 주문 리팩토링 #98
The head ref may contain hidden characters: "96-\uACB0\uC81C\uC640-\uC8FC\uBB38-\uB9AC\uD329\uD1A0\uB9C1"
Conversation
Unit Test Results 29 files ±0 29 suites ±0 37s ⏱️ +3s Results for commit 71f19bb. ± Comparison against base commit 5927272. This pull request removes 5 and adds 7 tests. Note that renamed tests count towards both.
♻️ This comment has been updated with latest results. |
📝 테스트 커버리지 리포트입니다
|
📝 테스트 커버리지 리포트입니다
|
📝 테스트 커버리지 리포트입니다
|
📝 테스트 커버리지 리포트입니다
|
📝 테스트 커버리지 리포트입니다
|
📝 테스트 커버리지 리포트입니다
|
📝 테스트 커버리지 리포트입니다
|
📝 테스트 커버리지 리포트입니다
|
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.
👍
src/main/java/com/gugucon/shopping/order/domain/entity/Order.java
Outdated
Show resolved
Hide resolved
src/main/java/com/gugucon/shopping/order/domain/entity/Order.java
Outdated
Show resolved
Hide resolved
src/main/java/com/gugucon/shopping/order/domain/entity/Order.java
Outdated
Show resolved
Hide resolved
src/main/java/com/gugucon/shopping/order/domain/entity/Order.java
Outdated
Show resolved
Hide resolved
src/main/java/com/gugucon/shopping/order/domain/entity/Order.java
Outdated
Show resolved
Hide resolved
📝 테스트 커버리지 리포트입니다
|
src/main/java/com/gugucon/shopping/order/dto/response/OrderPayResponse.java
Outdated
Show resolved
Hide resolved
📝 테스트 커버리지 리포트입니다
|
* chore: 이슈 템플릿 수정 (#7) * chore: PR 템플릿 추가 (#7) * chore: CI 설정 파일 작성 (#14) * chore: CI 설정 파일 작성 * fix: ci-gradle.yml 내 JDK 11->17로 수정 * fix: actions workflow 토큰 변수 수정 * fix: ci-gradle.yml에 write 권한 허용 * chore: pull-request, issues, checks에 write 권한 부여 * feat: 프로젝트 기반 코드 작성 및 ERD 반영 (#12) * feat: 결제 기능 구현 (#13) * feat: Spring Security 인증 구현 (#16) * feat: setup project for shopping * Step 1, 2, 3 상품 조회, 로그인, 장바구니 기능 구현 (#10) * docs: README 1단계 기능 명세 추가 * feat: 상품 entity, repository 추가 * test: TestFixture / createProductEntity 메서드 추가 * feat: ProductService / 상품 목록 조회 기능 작성 * test: 통합 테스트 작성 * refactor: 필드명 변경 * feat: data.sql 작성 * feat: ProductController 추가 * docs: README 2단계 기능 명세 추가 * fix: ProductIntegrationTest 수정 * test: User 통합 테스트 코드 추가 * feat: UserEntity 추가 * feat: data.sql 데이터 추가 * feat: UserRepository 추가 * feat: UserService 추가 * fix: UserEntity table 이름 수정 * feat: JwtProvider 추가 * feat: UserController 추가 * feat: 로그인 페이지 연동 * docs: README 3단계 기능 명세 추가 * feat: CartItemEntity 추가 * fix: token subject 변경 * refactor: 생성자 기본값 변경 * feat: CartItemRepository 추가 * feat: CartItemAddRequest 추가 * feat: 장바구니 아이템 추가 기능 구현 * feat: JwtProvider 검증, 파싱 메서드 추가 * feat: 인증 인터셉터, argument resolver 추가 * fix: Jwt parsing 메서드 변경 * fix: 정적파일 Interceptor 제외 항목에 추가 * feat: CartController 추가 * test: CartIntegrationTest 추가 * feat: CartItemRepository 추가 * feat: 장바구니 조회 기능 구현 * test: Fixture 메서드 추가 * feat: 장바구니 조회 기능 구현 * feat: 뷰 연결 * feat: 장바구니 상품 수정 기능 구현 * fix: 정적파일 예외 케이스 추가 * test: TestFixture 메서드 추가 * feat: CartController 업데이트 추가 * feat: 뷰 연결 * feat: 장바구니 상품 삭제 기능 추가 * feat: CartController 삭제 기능 작성 * feat: 뷰 연결 * feat: 커스텀 예외 작성 * refactor: GlobalControllerAdvice Response 형식 통일 * test: AuthInterceptor 테스트 추가 * test: CartIntegrationTest 테스트 추가 * docs: README 예외 사항 추가 * chore: 용어 변경(아이템 -> 상품) * refactor: CartService 메서드 분리 및 예외 클래스 수정 * refactor: 로그 삭제 * refactor: 정적 팩토리 메서드 이름 변경 * refactor: 오타 수정 * refactor: 메서드 분리 * refactor: 상수 추출 * refactor: static 키워드 삭제 * refactor: 메서드 분리 * refactor: 메서드 인자 변경 * test: 테스트 수정 * fix: 장바구니 상품 수량이 0인 경우 상품 제거 * refactor: 패키지 분리 * refactor: 엔티티 클래스명 변경 * refactor: 컨트롤러 분리 * fix: 응답 코드 변경 * fix: 생성자, 상수 접근 제어자 변경 * refactor: 클래스, 메서드명 변경 * refactor: DTO 클래스에 final 키워드 설정 * refactor: 변수명 변경 * refactor: 메서드 통합 * refactor: 메서드명 변경 * refactor: 상수 접근 제어자 변경 * refactor: BeforeEach 로직 이동 * test: 통과하지 않는 테스트 수정 * test: 테스트 수정 - 응답이나 결과값을 더 자세히 확인하도록 함 * feat: Password 작성 * feat: Email 작성 * feat: Email 메서드 추가 및 패턴 변경 * fix: Password 패턴 변경 * refactor: Email, Password 도메인 객체를 사용하도록 변경 * test: 테스트 추가 * feat: Quantity 클래스 작성 * refactor: Quantity 객체를 사용하도록 변경, vo 패키지 생성 * test: 테스트 전후 설정 변경 * fix: 매직 넘버 상수화 * test: 서비스 계층 테스트 변경 * test: 통합 테스트 변경 * feat: 필수 항목 누락 검증 추가 * test: 널값 검증 테스트 추가 * refactor: 필드명 변경 * refactor: 필드명 변경 * docs: API 목록 추가 * docs: API 목록 추가 * docs: 주문 관련 요구사항 추가 * feat: OrderItem 엔티티 작성 * feat: Money 클래스 작성 * feat: Order 클래스 작성 * feat: OrderRepository 작성 * feat: OrderItemRepository 작성 * feat: 엔티티 상수, 메서드 추가 * feat: 주문 기능 구현 * fix: 오류 데이터 삭제 * refactor: 메서드명 변경 * refactor: 미사용 생성자 삭제 * fix: 로직 추가 * feat: 메서드 추가 * feat: 주문 상세 조회 구현 * feat: 주문 상세 페이지 연동 * feat: 주문 목록 조회 기능 구현 * refactor: DTO 이름 변경 * test: 테스트 변경 * refactor: URI 변경 * docs: 리드미 API 추가 * docs: 리드미 요구사항 작성 * feat: MoneyType 작성 * feat: ForeignCurrency 작성 * feat: ExchangeRate 작성 * feat: ExchangeRateProvider 작성 * feat: DefaultExchangeRateProvider 작성 * feat: OrderHistoryResponse 작성 * feat: 달러 변환 구현 * fix: 검증 조건 추가 * refactor: 의존성을 주입받도록 변경 * chore: 설정 추가 * refactor: mock 사용하지 않도록 변경 * fix: 검증 로직 추가 * test: 테스트 추가 * fix: 주문 시점의 환율 정보를 저장하도록 변경 * test: 테스트 추가 * test: 테스트 추가 * refactor: DollarMoney 필드 타입 변경 * refactor: 뷰 변경 * refactor: DTO 클래스명 변경 * refactor: PK 생성 전략 변경 * refactor: RestTemplate 설정 분리 * refactor: Money -> WonMoney 클래스명 변경 * refactor: 주문 생성 로직 변경 * refactor: 검증 로직 변경 * refactor: 패키지 구조 변경 * refactor: OrderItem / order 필드 제거 * refactor: user 간접 참조로 변경 * feat: OrderItem / product 간접 참조 생성 * refactor: 패키지 분리 * feat: BaseTimeEntity 작성 * feat: ERD 반영 * refactor: Member / 클래스명 변경 * refactor: lombok 사용하도록 변경 * refactor: 환율 기능 삭제 * refactor: DisplayName 변경 * refactor: RestTemplate timeout 변경 * refactor: 상수명 변경 * refactor: static import 변경 * refactor: 형식 통일 * refactor: final 키워드 추가 * style: 필드 간 줄바꿈 추가 * refactor: 어노테이션 클래스 단위로 변경 * test: 필드 접근 제어자 변경 * style: 코드 컨벤션 반영 * chore: validation 의존성 추가 * refactor: validator 삭제 및 validation 사용 * chore: h2 console 설정 추가 * refactor: not null 제약조건 추가 * test: DisplayName 변경 * test: 가독성을 위한 코드 리팩토링 * chore: spring security 의존성 변경 * feat: Jwt 인증 필터 등록 * fix: security filter 가 필요한 경로에만 동작하도록 설정 수정 * fix: springBoot 에 의해 필터가 두 번 등록되지 않도록 FilterRegistrationBean 등록 * feat: Jwt 인증 필터 구현 * fix: SecurityContext 설정 방식 변경 * refactor: jwt 토큰 검증 로직 추가 * test: JwtAuthenticationProvider 단위 테스트 작성 * test: jwt 인증 기능 통합 테스트 작성 * style: 구글 코드 컨벤션 적용 * refactor: 변수에 final 추가 * refactor: 시큐리티 필터 설정에 로그인 api 요청 허용하도록 추가 * refactor: principal 타입 변경 * style: 줄 간격 변경 * fix: mvc api 경로에 AntPathRequestMatcher 사용 * fix: 반환 값 변환 에러 수정 * feat: 인증 실패 시 ErrorResponse 반환하도록 설정 * refactor: Security Context 어노테이션 사용 * refactor: 상품 목록 인증 예외처리, 테스트 케이스 수정 * style: 컨벤션에 맞게 줄바꿈 * style: 컨벤션에 맞게 줄바꿈 * refactor: interceptor 제거하고 @AuthenticationPrincipal 적용 * fix: JwtProvider 를 JwtConfig 에서 빈으로 등록하도록 수정 * fix: RestAssured defaultParser 설정 * refactor: jwt 관련 기능을 common 으로 이동 * refactor: auth 패키지 구조화 * fix: JwtAuthentication equals, hashCode, toString 구현 * test: 결제 api 검증 시 헤더에 access token 추가 * fix: api 경로에 대해서만 인증 검사하도록 설정 수정 * feat: 존재하지 않는 memberId 로 요청 전송 시 예외 처리 --------- Co-authored-by: JoJo <buyongjo@gmail.com> Co-authored-by: 건 <gunner6603@snu.ac.kr> * feat: 데이터베이스 스키마 스크립트 추가 (#21) * feat: Pay 엔티티에 시간 정보 추가 * test: jwt 인증 테스트에 memberRepository 모킹 추가 * refactor: Pay 금액에 WonMoney 값 객체 적용 * refactor: Order 엔티티에서 totalPrice 컬럼 제거 * refactor: OrderItem 테이블 이름 변경 * refactor: OrderItem.productName 을 name 으로 변경 * refactor: 테이블 이름 복수형으로 통일 * refactor: 빌더에서 값 객체 변환하도록 수정 * refactor: attribute override 로 속성값 변경 * feat: schema.sql 스크립트 생성 * refactor: memberId fk 제약조건 추가 * refactor: fk 제약조건 추가 * fix: description 타입을 longtext 로 변경 및 테이블 생성 순서 변경 * test: 결제 데이터 검증 로직 보강 * fix: description 타입을 clob 으로 변경 * test: order api 로부터 생성된 order id 를 사용하도록 수정 * feat: application properties 암호화 (#22) * chore: application.properties 속성 값을 환경변수로부터 주입받도록 설정 * chore: github actions 수행 시 application.properties 속성 값 설정하도록 변경 * test: git action 으로부터 secret key 주입 여부 테스트 * refactor: github 시크릿 변수 읽어오도록 수정 * refactor: 테스트를 위해 ci 설정 임시 변경 * fix: uses 키워드 제거 * fix: environment 환경변수 사용을 위해 environment 설정 추가 * fix: environment 설정을 build 태그 하위로 위치 변경 * test: environment 태그에서 에러가 발생하는지 테스트 * test: 공백 제거해보기 * fix: gradle 상대 경로로 변경 * test: yml 설정 파일 수정 * chore: secret 출력 형식 변경 * chore: key 맵핑 형식 변경 * chore: jq 키 파싱 함수 수정 * chore: jq 키 파싱 함수 escape 처리 * chore: application.properties 설정 스크립트 수정 * chore: secrets 값 디코딩 * chore: "" 추가 * chore: ci-gradle.yml run 수정 * chore: ci-gradle.yml run 수정 * chore: ci-gradle.yml 에서 테스트 브랜치 제거 * test: 불필요한 테스트 제거 * feat: 회원가입 기능 구현 (#27) * feat: 재고 기능 구현하기 (#23) * test: StockTest '재고를 생성한다' 테스트 * feat: StockTest '재고를 생성한다' 구현 * test: StockTest '부적절한 값으로 재고를 생성할 때 예외가 발생한다' 테스트 * feat: StockTest '부적절한 값으로 재고를 생성할 때 예외가 발생한다' 구현 * feat: Product에 Stock 값 객체 추가 * test: JwtAuthenticationProviderTest 'JwtAuthenticationToken 인증에 성공한다' 테스트 * feat: 프론트에서 물품의 재고가 0일 때 장바구니 추가 버튼이 disabled 되는 기능 구현 * test: CartIntegrationTest '품절된 상품이면 장바구니 상품 추가를 요청했을 때 400 상태코드를 응답한다' 테스트 * test: StockTest '재고가 0일 시 품절 여부를 true, false로 반환한다' 테스트 * feat: StockTest '재고가 0일 시 품절 여부를 true, false로 반환한다' 구현 * feat: CartIntegrationTest '품절된 상품이면 장바구니 상품 추가를 요청했을 때 400 상태코드를 응답한다' 구현 * test: OrderIntegrationTest '품절된 상품을 포함해 주문을 요청했을 때 400 상태코드를 응답한다' 테스트 * refactor: Product에 validateStock 메서드 추가 * test: ProductTest '물품이 품절인지 검사한다' 테스트 * test: ProductTest '물품이 품절인지 검사할 때 품절이면 예외를 반환한다' 테스트 * test: CartItemTest '장바구니 아이템이 품절인지 검사한다' 테스트 * feat: CartItemTest '장바구니 아이템이 품절인지 검사한다' 구현 * feat: OrderIntegrationTest '품절된 상품을 포함해 주문을 요청했을 때 400 상태코드를 응답한다' 구현 * test: 테스트 보강 * fix: 빌드 에러 해결 및 gitignore에 application.properties 추가 * refactor: 사용하지 않는 ErrorCode 삭제 * feat: 주문 시 주문 수량과 물품 재고를 비교하는 검증 로직 추가 * test: StockTest '요청 수량과 재고 비교' 테스트 * test: ProductTest '주문 수량과 재고 비교' 테스트 * test: OrderIntegrationTest '주문을 요청했을 때 재고가 부족하면 400 상태코드를 응답한다' 테스트 * refactor: Stock의 수량 비교하는 메서드 이름 변경 * refactor: Product의 재고 확인 로직 이름 변경 * refactor: CartItem의 validateStock 메서드 이름 변경 * test: CartItemTest validateMemberHasId 메서드 테스트 추가 * fix: 테스트 환경 분리 * fix: JwtAuthenticationEntryPoint에서 response에 MediaType 추가 * refactor: OrderService의 검증 로직을 OrderItem으로 이동 * test: OrderItem 내 유효성 검증 로직 추가에 따른 OrderItemTest 테스트 추가 * fix: 테스트 데이터베이스 환경 분리 * refactor: Stock의 value를 wrapper type으로 변경 * refactor: 테스트 이름 변경ㅌ * refactor: 필요없는 sql문 삭제 * feat: 상품 페이징 및 기본 정렬 (#33) * test: 상품 목록 페이징 인수 테스트 작성 * test: 페이징 인수 테스트 수정 * feat: 상품 목록 페이징 구현 * test: 상품 기본 정렬 인수 테스트 * refactor: final 추가 * feat: 기본 정렬 설정 * test: 통합 테스트 검증 로직 수정 * refactor: 총 몇 개의 페이지가 있는지 응답하도록 수정 * test: 테스트 데이터 파싱 방법 수정 * refactor: 상품 조회 기능과 상품 페이지 조회 컨트롤러를 분리 * fix: SecurityConfig 에 상품 조회 경로 추가 * feat: 수정된 api 와 화면 연동 * test: 화면 테스트 제거 * test: 테스트 인증 수정 * refactor: 페이징 결과 dto 수정 * test: 페이징 dto 변화에 따라 테스트 수정 * refactor: 상품 조회 화면 수정 * config: 테스트 환경변수 분리 (#37) * test: 테스트 환경 분리 * chore: application.properties 추가 * chore: properties 를 yml 로 변경, 실행 환경 별로 분리 * chore: maria db dialect 설정 * fix: clob 데이터 저장 타입 수정 * fix: clob 을 text 로 변경 * chore: application.properties 생성하지 않도록 빌드 스크립트 수정 * refactor: final 추가 * test: 테스트 구체화 * feat: 결제 기능 회원, 주문 기능과 연동 (#31) * feat: 결제 기능 일부 구현 * feat: API 뷰 연동 * refactor: 패키지명 변경 * refactor: 가독성을 위한 리팩토링 * fix: Pay 생성 로직 변경 * fix: 에러 코드 변경 * refactor: 주문 이름 생성 로직 변경 * fix: 재고 감소 로직 수정 * test: 단위 테스트 작성 * test: 통합 테스트 작성 * fix: url 경로 변경 * test: 응답 로그를 출력하도록 변경 * fix: 오타 제거 * comment: 주석 제거 * refactor: 리포지토리 메서드 변경 * refactor: 매직 넘버 상수화 * remove: WebMvcConfig 삭제 * refactor: RequestMapping 추가 * refactor: 패키지 추가 * fix: null 확인 로직 추가 * refactor: 리포지토리 메서드명 변경 * style: 줄바꿈 추가 * refactor: 메서드명 변경 * refactor: final 키워드 추가 * refactor: 리포지토리 메서드 생성 및 로직 변경 * comment: 주석 삭제 * fix: conflict 해결 * refactor: WonMoney 를 Money 로 변경 (#47) * refactor: WonMoney 를 Money 로 수정 및 validation 추가 * test: 테스트 메서드 이름 수정 * test: Money 생성 성공 테스트 추가 * refactor: println 제거 * test: ErrorCode 검증 추가 * refactor: MoneyTest '금액은 0보다 작을 수 없다' 테스트 코드 수정 --------- Co-authored-by: sen <seeunchoi99@gmail.com> * feat:프론트의 로그인 회원가입 인증 수정 (#49) * fix: 장바구니 메뉴 들어갈 때 로그아웃 되는 현상 수정 * feat: 로그인 시 로그아웃 버튼, 로그아웃 상태시 로그인 및 회원가입 버튼이 보임 * fix: 로그인 시 에러 메시지 정상 처리 (#50) * feat: 상품 조회 페이징 프론트에 반영 (#51) * feat: 상품 조회 페이징 프론트에 반영 * fix: EOL 설정 * fix: 마지막 페이지 볼 수 있도록 조건 수정 * refactor: 존재하지 않는 것에 대한 상태코드 404로 수정 (#52) * test: 테스트 내 반복적인 회원가입 단순한 메소드로 변경 (#53) * refactor: 중복된 signUp 과 login 호출을 메서드로 분리 * refactor: 불필요한 email, password 변수 선언을 제거하고 파라미터로 바로 전달 * refactor: api 관련 테스트 메서드를 ApiUtils 로 분리 * refactor: 테스트 domain 생성 메서드를 DomainUtils 로 분리 * refactor: signUp 과 login 메서드를 ApiUtils 로 이동 * refactor: util 메서드 적용 * feat: 상품 검색 및 정렬 기능 구현 (#54) * test: ProductIntegrationTest '검색어로 검색한 결과를 최신순으로 정렬하여 반환한다' 테스트 * chore: application.yml 설정 분리 dev, prod, test로 분리 * feat: ProductIntegrationTest '검색어로 검색한 결과를 최신순으로 정렬하여 반환한다' 구현 * test: ProductIntegrationTest '검색어로 검색한 결과를 가격이 비싼순으로 정렬하여 반환한다' 테스트 * feat: ProductIntegrationTest '검색어로 검색한 결과를 가격이 비싼순으로 정렬하여 반환한다' 구현 * feat: ProductIntegrationTest '검색어로 검색한 결과를 가격이 비싸지 않은 순으로 정렬하여 반환한다' 구현 * refactor: 존재하지 않는 것에 대한 상태코드 404로 수정 (#52) * test: 테스트 내 반복적인 회원가입 단순한 메소드로 변경 (#53) * refactor: 중복된 signUp 과 login 호출을 메서드로 분리 * refactor: 불필요한 email, password 변수 선언을 제거하고 파라미터로 바로 전달 * refactor: api 관련 테스트 메서드를 ApiUtils 로 분리 * refactor: 테스트 domain 생성 메서드를 DomainUtils 로 분리 * refactor: signUp 과 login 메서드를 ApiUtils 로 이동 * refactor: util 메서드 적용 * test: ProductIntegrationTest '검색어로 검색한 결과를 최신순으로 정렬하여 반환한다' 테스트 * chore: application.yml 설정 분리 dev, prod, test로 분리 * feat: ProductIntegrationTest '검색어로 검색한 결과를 최신순으로 정렬하여 반환한다' 구현 * test: ProductIntegrationTest '검색어로 검색한 결과를 가격이 비싼순으로 정렬하여 반환한다' 테스트 * feat: ProductIntegrationTest '검색어로 검색한 결과를 가격이 비싼순으로 정렬하여 반환한다' 구현 * feat: ProductIntegrationTest '검색어로 검색한 결과를 가격이 비싸지 않은 순으로 정렬하여 반환한다' 구현 * refactor: 기존 코드에 맞게 ProductIntegrationTest의 테스트 코드 수정 * style: static 삭제 * style: 컨벤션에 맞게 인덴트 수정 * test: ProductIntegrationTest '빈 문자열의 키워드로 검색하면 에러를 반환한다' 테스트 * feat: ProductIntegrationTest '빈 문자열의 키워드로 검색하면 에러를 반환한다' 구현 * test: ProductIntegrationTest '키워드 없이 검색하면 에러를 반환한다' 테스트 * feat: ProductIntegrationTest '키워드 없이 검색하면 에러를 반환한다' 구현 * style: GlobalControllerAdvice 변수 이름 수정 * fix: ProductIntegrationTest '검색어로 검색한 결과를 최신순으로 정렬하여 반환한다'에서 결과를 최신순인지 검증하도록 변경 --------- Co-authored-by: dongjoo <46925347+dongjoo0-0@users.noreply.github.com> Co-authored-by: rimrim990 <62409503+rimrim990@users.noreply.github.com> * refactor: OrderName 생성 로직 가독성 개선 (#56) * refactor: OrderName 생성 로직 가독성 개선 * refactor: 상수 private 화 및 size 내부 체크 * refactor: 도메인 내 VO 외부에서 생성 후 주입 (#57) * refactor: Member Email VO 외부에서 주입 * refactor: Member Nickname VO 외부에서 주입 * refactor: CartItem Quantity VO 외부에서 주입 * refactor: Product Quantity, Money VO 외부에서 주입 * refactor: CartItem, Member 생성자 생략 * refactor: Pay Money VO 외부에서 주입 * fix: confict 해결 * style: final 추가 및 가독성 개선 * fix: conflict 수정 및 새로운 테스트 픽스쳐에 vo 주입 로직 적용 * refactor: 결제 실패시 주문 페이지로 이동하도록 변경 (#59) * test: 통합테스트 코드 작성 * feat: 결제 실패시 orderId 디코딩 기능 구현 * feat: 결제 실패 페이지 연동 * style: 400 상태코드 오타 500으로 수정 * fix: 회원가입 페이지 오타 수정 * feat: 로깅 추가 (#64) * feat: getMessage 오버라이드 * feat: stacktrace 기반으로 에러 로깅하도록 변경 * feat: 외부 API 호출 시 로깅하도록 변경 * refactor: 로깅 줄바꿈 삭제 * feat: 로깅 설정 추가 * fix: 로깅 조건 변경 * refactor: 메서드명 변경 * feat: HTTP 요청, 응답 로깅 추가 * fix: 장바구니에 담긴 물품이 없을 때 /null 로 이동하는 현상 해결 (#66) * fix: 장바구니 주문 시 에러 처리 추가 * refactor: 프론트에서 response.ok 활용하도록 변경 * test: data.sql 삭제 및 테스트 격리 (#63) * refactor: 중복된 signUp 과 login 호출을 메서드로 분리 * refactor: 불필요한 email, password 변수 선언을 제거하고 파라미터로 바로 전달 * refactor: api 관련 테스트 메서드를 ApiUtils 로 분리 * refactor: 테스트 domain 생성 메서드를 DomainUtils 로 분리 * refactor: signUp 과 login 메서드를 ApiUtils 로 이동 * refactor: util 메서드 적용 * delete: data.sql 제거 * fix: repository 사용하여 product 정보 생성하도록 수정 * fix: 새로 추가된 테스트 케이스에 product repository 사용하도록 적용 * refactor: 여러 개의 상품 생성하는 메서드 분리 * refactor: 테스트 메서드 종료 하면 데이터 초기화를 위해 clean.sql 실행 * refactor: 미사용 메서드 제거 * refactor: final 추가 * refactor: 중복된 Product 생성을 DomainUtils 로 이동 * refactor: final 추가 * refactor: testEventListener 에서 truncate 쿼리를 실행하여 데이터 초기화하도록 수정 * fix: encodedOrderId 64자 이내로 제한 (#68) * chore: 기본 이미지 추가 (#70) * chore: 기본 이미지 추가 * chore: 기본 이미지 변경 --------- Co-authored-by: dahyen0o <seeunchoi99@gmail.com> * feat: 상품 검색 및 정렬 페이지 구현 (#67) * feat: 메인 페이지의 검색창 구현 * feat: 검색 결과 페이지 구현 * feat: 검색 결과 페이지의 정렬 기능 구현 * fix: 기본 데이터베이스 설정 추가 * feat: 검색 결과 페이지의 페이지네이션 구현 * fix: 오타 삭제 * build: Jacoco로 테스트 커버리지 측정 (#72) * build: jacoco 테스트 커버리지 측정 추가 * build: PR에 코멘트로 등록하도록 설정 * fix: jacoco 코멘트 설정 변경 * feat: 장바구니 물품이 품절이면 페이지에 품절 표시 (#71) * feat: 상품 상세 조회 페이지 구현 (#73) * refactor: 중복된 signUp 과 login 호출을 메서드로 분리 * refactor: 불필요한 email, password 변수 선언을 제거하고 파라미터로 바로 전달 * refactor: api 관련 테스트 메서드를 ApiUtils 로 분리 * refactor: 테스트 domain 생성 메서드를 DomainUtils 로 분리 * refactor: signUp 과 login 메서드를 ApiUtils 로 이동 * refactor: util 메서드 적용 * delete: data.sql 제거 * fix: repository 사용하여 product 정보 생성하도록 수정 * fix: 새로 추가된 테스트 케이스에 product repository 사용하도록 적용 * refactor: 여러 개의 상품 생성하는 메서드 분리 * refactor: 테스트 메서드 종료 하면 데이터 초기화를 위해 clean.sql 실행 * refactor: 미사용 메서드 제거 * refactor: final 추가 * refactor: 중복된 Product 생성을 DomainUtils 로 이동 * test: 상품 상세 조회 API 인수 테스트 * feat: 상품 상세 조회 API 구현 * feat: 상품 상세 조회 시 상품이 존재하지 않을 때 예외 처리 * feat: 상품 상세 페이지 연동 * refactor: 페이지 UI 수정 * refactor: final 추가 * delete: clean.sql 과 sql 어노테이션 제거 * refactor: 사용되지 않는 pay 기능 제거 * feat: Dockerfile 작성 (#78) * feat: CD 자동화 (#79) * feat: workflow 파일 작성 * Update cd.yml * fix: step 변경 * feat: 별점 기능 구현 (#81) * feat: rate 스키마 생성 * refactor: OrderItemResponse 에 id 와 productId 추가 * test: 별점 생성 기능 인수 테스트 * test: 별점 생성 시의 입력 검증 인수 테스트 보강 * feat: 별점 생성 검증 기능 구현 * feat: 별점 범위 검증 구현 * fix: Transactional 추가 * test: 결제되지 않은 주문에 별점 생성 여부 검증 테스트 * refactor: 유효한 별점 범위를 상수로 분리 * feat: 결제되지 않은 상품에 대한 별점 생성을 예외 처리 * test: 별점 조회 기능 인수 테스트 * config: 별정 정보 경로가 jwt 시큐리티 필터 통과하도록 수정 * feat: 상품 별점 조회 기능 구현 * refactor: 소수점 버림 * refactor: 중복된 메서드 분리 * refactor: rate 생성을 위한 테스트 api 를 ApiUtils 이동 * refactor: mockServer 를 ApiUtils 로 이동 * refactor: 줄바꿈 변경 * refactor: final 추가 * refactor: final 추가 & dto validation 제거 * refactor: private 추가 * refactor: 미사용 변수 제거 * refactor: OrderItemResponse 에서 productId 제거 * refactor: averageRate 계산을 별도 메서드로 분리 * refactor: mock server 요청 처리 횟수 조정 * refactor: round 를 floor 로 변경 * fix: 자동 배포시 컨테이너 실행 실패하는 문제 해결 (#86) * fix: workflow 파일 변경 * fix: path 삭제 * fix: Dockerfile 변경 * fix: Dockerfile 변경 * fix: workflow 파일 변경 * feat: 포인트샵 충전 및 결제 기능 구현 (#82) * test: 포인트 통합 테스트 작성 * test: 포인트 결제 통합 테스트와 토스 결제 통합 테스트 분리 * test: 포인트 dto 생성 * refactor: 기존 결제 dto 전부 토스 dto로 구분 * refactor: 기존 테스트 통과하도록 api endpoint 설정 * feat: Point 도메인 객체 구현 * style: final 추가, 네이밍 수정 * fix: 테이블 생성 및 BaseTimeEntity 추가 * feat: 포인트 충전 기능 구현 * refactor: Point에서 Money 객체 제거 * feat: 포인트 결제 기능 구현 * feat: 포인트로 결제 페이지 구현 * fix: 포인트 저장되도록 수정 * feat: 포인트 충전 페이지 구현 및 프론트 페이지 오류 수정 * fix: 포인트 결제 후 장바구니 아이템 삭제 * feat: 프론트 페이지 연동 * refactor: 테스트 보강 및 가독성 개선 * fix: 프론트 수정 * refactor: 프론트 꾸미기 * refactor: 토스 결제 승인 요청 /toss/validate로 변경 * style: 팝업이 아니므로 이름 변경 * style: 포인트 결제 포괄적인 이름으로 변경 * refactor: catchException -> assertThrows로 변경 * refactor: 인수테스에서 order history 조회 확인 * refactor: point 값 Money VO로 래핑 * refactor: Validation 추가해서 0 이하 포인트 충전을 차단 * style: final, private 붙임 * style: EOL 삭제 * style: final 추가 * style: private, method 분리 * feat: 상품 검색 결과를 주문순으로 정렬 (#80) * feat: 별점 기능 화면 연동 (#85) * feat: 별점 조회 연동 * refactor: 미사용 pay 기능 제거 * feat: 별점 남기기 버튼 추가 * feat: rate-pop 연동 * fix: order-history 디테일 경로 수정 * fix: 별점 Pop-up 경로 수정 * feat: 에러 로그 메시지 출력 * feat: range input 값 출력 * refactor: 에러 코드 이름 수정 * test: 사용자가 남긴 별점 조회 기능 인수 테스트 * feat: 사용자가 남긴 별점 정보 조회 API 구현 * feat: 별점을 이미 남겼을 때는 이전에 남긴 별점을 보여주는 기능 구현 * feat: 에러가 발생했을 경우 뒤로 가도록 수정 * fix: 각 주문 상품에 별도로 별점을 적용할 수 있도록 수정 * refactor: @PathVariable 을 상위로 올림 * refactor: response dto 생성자를 제거하고 from 메서드 생성 * refactor: 중복된 fetch 를 메서드로 분리 * refactor: final 추가 * refactor: 주문 정보가 존재하지 않을 때 에러 메시지 수정 * refactor: rate 패키지 분리 (#89) * fix: 배포 시간 단축 (#94) * feat: 캐시 적용 * style: 줄바꿈 삭제 * Update ErrorCode.java * fix: 캐시 제거 및 아키텍처 1개만 빌드 * fix: workflow 파일 변경 * Revert "fix: workflow 파일 변경" This reverts commit ea1c304. * fix: workflow 파일 변경 * refactor: 결제와 주문 리팩토링 (#98) * refactor: OrderStatus 세분화 * refactor: 결제 요청 시 Order에서 재고 차감 및 status 업데이트 * refactor: 결제 요청에 PayType 추가 * refactor: 주문 시작 프론트 연동 * test: 토스 결제 인수 테스트 * refactor: 토스 API 대대적 수정 * refactor: 프론트 페이지 연동 * refactor: 사용하지 않는 클래스 제거 * refactor: 결제 완료시 하는 작업 한 메소드로 관리 * refactor: 토스 관련 설정 분리 * refactor: DB 스키마 적용 * refactor: OrderStatus를 매번 검증해준다 * refactor: login api를 변경 * refactor: 장바구니 수량 수정 api 변경 * refactor: api 문서와 통일 * refactor: 재고 부족 에러 메시지 통일 * fix: 결제 수단 정보를 NOT NULL로 수정 * refactor: 결제 중 상태 PAYING으로 변경 * style: Order 상태 변경하는 메소드 네이밍 변경 * refactor: validateMoney 및 Enum type 수정 * refactor: 시큐리티 principal 정보 수정 (#110) * chore: 스키마 member 테이블에 gender와 birth_date 컬럼 추가 * refactor: member 테이블에 gender와 birth_date 컬럼 추가에 따른 코드 수정 * refactor: 시큐리티에서 id 가 아닌 MemberPrincipal 을 반환하도록 수정 * fix: AuthenticationPrincipal 할당 타입을 MemberPrincipal 로 변경 * refactor: MemberPrincipal 에 member 정보 추가 * refactor: 성별, 년도를 회원가입 페이지와 연동 * test: jwt principal 테스트 보강 * refactor: final 추가 * refactor: toString 제거 * refactor: ux 수정 --------- Co-authored-by: dahyen0o <seeunchoi99@gmail.com> * 106 별점 높은순 정렬 구현 (#113) * feat: 별점 높은 순 프론트 페이지 구현 * feat: 별점 높은 순 정렬 기능 구현 * refactor: Sortkey 활용 * style: 테스트 이름 변경 * refactor: rate에 memberId 삭제 (#115) * feat: 나이대 정보와 생년월일 변환 로직 구현 (#117) * feat: 나이대 정보와 생년월일 변환 로직 구현 * fix: 마지막 일 더하지 않음 * feat: 주문 목록 페이지네이션 (#118) * refactor: createdAt 정렬을 id 정렬로 변경 * refactor: OrderHistory API 페이징 적용 * test: 상품 검색 단위 테스트에서 사용되는 createdAt 을 id 로 변경 * fix: merge conflict 해결 * refactor: 사용되지 않는 메서드 제거 * fix: ORDER_COUNT 를 Order_Count_DESC 로 변경 * feat: 페이지네이션을 화면과 연동 * fix: order 페이징 시에 메모리에서 페이징되는 이슈 해결 * refactor: 로그인 화면 영문 변경 (#126) * refactor: 상품 상세 페이지에 전부 접근 가능 (#124) * feat: 통계 테이블 스키마 작성 (#122) * feat: 통계 테이블 스키마 작성 * feat: 엔티티 작성 * fix: 스키마 수정 * fix: 엔티티 수정 * feat: 리포지토리 작성 * fix: 제약조건 추가 * fix: 테이블명 변경 * fix: 어노테이션 삭제 * feat: 데이터 생성 로직 작성 * feat: 현재 접속한 회원과 성별 및 나이대가 같은 주문들의 평균 별점 조회 기능 구현 (#123) * refactor: 토스 결제 시 필요없는 데이터 제거 (#120) * refactor: 회원가입시 나이 제약조건 추가 (#119) * refactor: 회원가입시 나이 제약조건 추가 * fix: 테스트 수정 * fix: 시작일을 포함하도록 제약 조건을 수정한다 (#133) * feat: 주기적 미결제 주문 취소 기능 구현 (#101) * feat: 스케줄링 설정 추가 * feat: 리포지토리 메서드 추가 * feat: 리포지토리 메서드 추가 * feat: 메서드 추가 * feat: 서비스 메서드 추가 * feat: 주문 취소 스케줄링 로직 작성 * chore: 테스트를 위한 설정 추가 * fix: 리포지토리 메서드 변경 * fix: 메서드 트랜잭션 전파 수준 변경 * feat: 메서드 추가 * feat: 테스트 유틸 메서드 작성 * test: 테스트 작성 * fix: 여러 개 주문 취소 중 에러가 발생하면 재고를 복구한 주문이 미취소 상태가 되는 문제 해결 * test: 테스트 클래스 병합 * chore: 스키마 파일에 인덱스 추가 * fix: 생성 상태 주문의 경우 재고를 복구하지 않도록 변경 * test: 테스트 추가 * test: 테스트 유틸 메서드 추가 * test: 단위 테스트 추가 * feat: 상품 전체 조회 시 필터링 추가 (#130) * feat: 통계 테이블 스키마 작성 * feat: 엔티티 작성 * fix: 스키마 수정 * fix: 엔티티 수정 * feat: 리포지토리 작성 * fix: 제약조건 추가 * fix: 테이블명 변경 * fix: 어노테이션 삭제 * feat: 데이터 생성 로직 작성 * feat: enum 컨버터 작성 및 설정 추가 * feat: 컨트롤러 메서드 작성 * feat: 리포지토리 메서드 작성 * feat: 도메인 작성 * feat: 서비스 메서드 작성 및 리팩토링 * feat: 테스트 작성 * fix: 어노테이션 제거 * test: 사용하지 않는 변수 제거 * feat: 통계 테이블 업데이트 로직 작성 (#137) * feat: 통계 테이블 스키마 작성 * feat: 엔티티 작성 * fix: 스키마 수정 * fix: 엔티티 수정 * feat: 리포지토리 작성 * fix: 제약조건 추가 * fix: 테이블명 변경 * fix: 어노테이션 삭제 * feat: 데이터 생성 로직 작성 * feat: enum 컨버터 작성 및 설정 추가 * feat: 컨트롤러 메서드 작성 * feat: 리포지토리 메서드 작성 * feat: 도메인 작성 * feat: 서비스 메서드 작성 및 리팩토링 * feat: 테스트 작성 * fix: 어노테이션 제거 * feat: 현재 접속한 회원과 성별 및 나이대가 같은 주문들의 평균 별점 조회 기능 구현 (#123) * feat: 리포지토리 메서드 작성 * feat: 별점 생성 메서드에 업데이트 로직 추가 * feat: 결제 메서드에 업데이트 로직 추가 * feat: 컨트롤러 변경 * fix: 버그 회피 * test: 유틸 메서드 추가 * test: 테스트 변경 * fix: 결제 로직 순서 변경 * style: 줄바꿈 변경 * fix: final 키워드 추가 --------- Co-authored-by: sen <64001680+dahyen0o@users.noreply.github.com> * fix: 재고 감소 트랜잭션에 락 추가 (#103) * fix: 재고 감소 트랜잭션에 락 추가 * fix: Order 조회 시에 비관적 락 추가, 주문이 취소되었는지 상태 검증하는 로직 추가 * refactor: final 추가 * feat: 상품 추천 기능 구현 (#134) * test: 함께 구매한 상품 추천 기능 인수 테스트 * feat: 함께 구매한 상품 추천 기능 구현 * refactor: 구매 수가 같으면 최근에 생성된 상품이 먼저 조회되도록 수정 * feat: 추천 상품 페이징 적용 * fix: count 쿼리 작성 - JPA 에서 자동 생성한 count 쿼리에서는 syntax 에러가 발생 * feat: 추천 상품 화면 연동 * refactor: 페이징 응답을 Slice 로 변경 * refactor: slice 페이징을 화면과 연동 * refactor: 불필요한 countQuery 제거 * delete: 사용되지 않는 클래스 제거 * refactor: 상위 30개의 상품만 보여주도록 프론트 수정 * fix: 추천 상품 정렬 기준 수정 * refactor: 별점 높은 순 정렬에 countQuery를 적용한다 (#140) * feat: 물품 상세 페이지에 현재 접속한 유저에 따른 평균 별점 항목 추가 (#136) * refactor: PayService가 OrderService를 참조하도록 리팩토링 (#144) * refactor: 별점 & 상품 조회에 통계 테이블 적용 (#145) * feat: stats 테이블에 인덱스 추가 * refactor: Product repository 에 stats 적용 * refactor: Rate repository 에 stats 적용 * test: DomainUtils 적용 * test: 테스트에 주문 통계 적용 * refactor: final 추가 * refactor: Product repository 에 stats 적용 * refactor: StatsUtils 적용 * fix: join 조건 명시 * test: 통합 테스트에 stats 연동 * refactor: 정렬 수정 * refactor: 오타 수정 * refactor: StatsUtils 에서 LocalDate 타입을 BirthYearRange 로 수정 * test: 테스트에 연령, 성별 통계 정보 추가 * 142 성별 나이별 검색 필터링 기능 프론트 연동 (#147) * feat: 필터링 기능 프론트 반영 * refactor: 검색바 분리 * chore: 테스트 불가능한 코드를 Jacoco 검사에서 제외 (#143) * 148 모니터링 대시보드 구축 (#153) * config: actuator prometheus 추가 * config: prometheus 포트 설정 추가 * fix: 페이지 flex 제거 (#151) * test: 테스트 커버리지 높이기 (#154) * test: 테스트 추가 * test: 테스트 추가 * test: 테스트 추가 * test: 테스트 추가 * refactor: PayType from 메서드 삭제 * test: 테스트 추가 * test: 테스트 수정 * chore: jacoco 설정 변경 * test: 테스트 추가 * fix: 불필요한 로그 제거 * test: 테스트 추가 * refactor: 중복 인덱스 제거 및 재배치 (#155) * feat: 물품 주문자들의 성별 및 나이대별 평균 별점 구현 (#161) * config: docker 포트 오픈 (#158) * feat: 프론트에 api 추가하기 (#159) * refactor: ProductDetailResponse 에 stock 정보 추가 * feat: 상품 상세 페이지에 장바구니 기능 추가 * feat: 상품 상세 페이지에 검색 기능 추가 * refactor: 주문 목록 페이지에 css 적용 * favicon 추가 * title 변경 * css: 메인 컬러 변경 * refactor: 차트 색상 변경 --------- Co-authored-by: sen <64001680+dahyen0o@users.noreply.github.com> Co-authored-by: 건 <gunner6603@snu.ac.kr> Co-authored-by: rimrim990 <62409503+rimrim990@users.noreply.github.com> Co-authored-by: JoJo <buyongjo@gmail.com> Co-authored-by: sen <seeunchoi99@gmail.com>
🔗 관련 이슈
#96
🔔 주요 사항
🤔 의논 사항 또는 질문