From f9a62e389aa457cd276d039635389079ecd28c9b Mon Sep 17 00:00:00 2001 From: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> Date: Fri, 19 Jul 2024 01:45:22 +0900 Subject: [PATCH 1/6] [deploy] merge to main (#145) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * [deploy] merge to develop (#27) * [deploy] merge to main (#26) * [#2] chore(.gitignore): .gradle, .idea 파일 삭제 (#3) * [refactor] #4 - 도메인형 디렉터리 구조 변경 및 local, dev, prod 운영 환경 분리 (#5) * [#4] fix: 클래스 첫글자 대문자로 수정 * [#4] remove: enum 삭제 * [#4] feat(BaseSuccessCode): 성공 상태 관리를 위한 인터페이스 생성 * [#4] feat(BaseErrorCode): 에러 상태 관리를 위한 인터페이스 생성 * [#4] refactor: global 패키지로 이동 * [#4] refactor: 서버 운영 환경 분리 * [feat] #6 - dev, prod Dockerfile 분리 및 github Action CI workflow 구현 (#7) * [#6] feat(Dockerfile): prod용 도커 파일 구현 * [#6] feat(Dockerfile-dev): dev용 도커 파일 구현 * [#6] feat(dev-CI.yml): dev용 CI workflow 구현 * [#6] feat(prod-CI.yml): prod용 CI workflow 구현 * [#6] chore(.gitignore): gradle-wrapper.jar 파일은 레포지토리에 포함되도록 설정 * [#6] fix(gradle-wrapper.jar): .gitignore로 누락된 파일 추가 * [#6] chore(build.grade): plain jar 생성 방지 * [#9] docs(README.md): 서비스 소개 README v1 작성 (#10) * [#11] docs(README.md): 리드미 업데이트 (#12) * [feat] #13 - 유저, 예매, 공연, 회차 엔티티 생성 (#15) * [#13] feat(Users): 사용자 엔티티 생성 * [#13] feat(Genre): 장르 열거형 생성 * [#13] feat(BankName): 은행명 열거형 생성 * [#13] refactor(BaseTimeEntity): 업데이트 시간 관리 필드 활성화 * [#13] feat(Performance): 공연 엔티티 생성 * [#13] feat(ScheduleNumber): 회차 번호 열거형 생성 * [#13] feat(Schedule): 회차 엔티티 생성 * [#13] feat(Booking): 예매 엔티티 생성 * [#13] refactor(ScheduleNumber): 네이밍 수정 * [feat] #14 - 회원, 홍보, 등장인물, 스태프 엔티티 생성 (#16) * [#14] feat(Member): 멤버 엔티티 생성 * [#14] feat(Promotion): 홍보 엔티티 생성 * [#14] feat(Cast): 등장인물 엔티티 생성 * [#14] feat(Staff): 스태프 엔티티 생성 * [feat] #13 - 유저, 예매, 공연, 회차 엔티티 생성 (#15) * [#13] feat(Users): 사용자 엔티티 생성 * [#13] feat(Genre): 장르 열거형 생성 * [#13] feat(BankName): 은행명 열거형 생성 * [#13] refactor(BaseTimeEntity): 업데이트 시간 관리 필드 활성화 * [#13] feat(Performance): 공연 엔티티 생성 * [#13] feat(ScheduleNumber): 회차 번호 열거형 생성 * [#13] feat(Schedule): 회차 엔티티 생성 * [#13] feat(Booking): 예매 엔티티 생성 * [#13] refactor(ScheduleNumber): 네이밍 수정 * [#14} fix: 스태프, 등장인물, 홍보 엔티티 상속관계 수정 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [#18] feat(Jenkinsfile): 젠킨스 파일 생성 (#19) * [#20] refactor(Jenkinsfile): 젠킨스 파일 Webhook 테스트용 커밋 (#21) * [#22] feat(Jenkinsfile): Jenkins multibranch 스크립트 작성 (#23) * HOTFIX(Jenkinsfile): Jenkins multibranch 스크립트 수정 * HOTFIX(workflows): 빌드 후 젠킨스 배포가 진행되도록 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * [#24] feat(Jenkinsfile): slack 연동 스크립트 작성 (#25) --------- Co-authored-by: hyerinhwang-sailin * HOTFIX(workflow): 오타 수정 --------- Co-authored-by: hyerinhwang-sailin * [feat] #28 - 비회원 예매 조회 POST API 구현 (#29) * chore(application-dev.yml): dialect 추가 * chore(application-prod.yml): dialect 추가 * [#28] chore(build.gradle): security 의존성 비활성화 - security 일시적으로 비활성화 * [#28] refactor(Booking): 예매 엔티티에 빌더 및 정적팩토리 메서드 추가 * [#28] refactor(ErrorResponse): 정적 팩토리 메서드 네이밍 변환 * [#28] refactor(Schedule): 회차 엔티티에 빌더 및 정적 팩토리 메서드 추가 * [#28] refactor(Performance): 공연 엔티티에 빌더 및 정적 팩토리 메서드 추가 * [#28] refactor(SuccessResponse): 정적 팩토리 메서드 네이밍 변환 * [#28] refactor(GlobalExceptionHandler): INTERNAL_SERVER_ERROR 핸들러 메서드 추가 * [#28] feat(BookingSuccessCode): 예매 성공 메시지를 관리하는 열거형 생성 * [#28] feat(BookingErrorCode): 예매 에러 메시지를 관리하는 열거형 생성 * [#28] feat(BookingRetrieveResponse): 예매 조회 응답 DTO 생성 * [#28] feat(BookingRetrieveRequest): 예매 조회 요청 DTO 생성 * [#28] feat(BookingRepository): 예매 레포지토리 생성 및 비회원 예매 조회 시 예매 내역 가져오는 메서드 구현 * [#28] feat(BookingService): 예매 서비스 레이어 생성 및 비회원 조회 메서드 구현 * [#28] feat(BookingController): 예매 컨트롤러 생성 및 비회원 예매조회 POST API 구현 * [feat] #30 - SwaggerConfig 및 WebConfig 구현 (#31) * [#30] chore(build.gradle): springdoc 의존성 추가 * [#30] feat(SwaggerConfig): SwaggerConfig 추가 * [#30] feat(WebConfig): WebConfig 추가 * HOTFIX(workflows): push 이벤트 시 github action이 빌드 되지 않도록 수정 * HOTFIX(Jenkinsfile): 포트 수정 * [feat] #32 - 티켓 예매 가능 여부 GET API 구현 (#33) * [#32] refactor(BookingController): 메서드명 수정 * [#32] feat(ConflictException): Conflict 409에러 클래스 생성 * [#32] feat(GlobalExceptionHandler): ConflictException 등록 * [#32] feat(TicketAvailabilityRequest): TicketAvailabilityRequest DTO 생성 * [#32] feat(TicketAvailabilityResponse): TicketAvailabilityResponse DTO 생성 * [#32] feat(ScheduleSuccessCode): ScheduleSuccessCode 열거형 생성 * [#32] feat(ScheduleErrorCode): ScheduleErrorCode 열거형 생성 * [#32] feat(ScheduleRepository): ScheduleRepository 생성 * [#32] feat(ScheduleService): ScheduleService 생성 및 회차별 티켓 구매 가능 여부 판단 메서드 구현 * [#32] feat(ScheduleController): 회차별 티켓 수량 조회 GET API 구현 * [feat] #17 - 카카오 소셜 로그인 API 구현 (#36) * [#17] feat(build.gradle): jwt, security, open feign, Redis 의존성 추가 * [#17] feat(BeatApplication): OpenFeign 관련 어노테이션 추가 * [#17] feat(RedisConfig): redis 설정 * [#17] feat: redis 활용 jwt 토큰 생성 로직 구현 * [#17] feat(SecurityConfig): security 설정 * [#17] refactor: Member, Users 엔티티 수정 및 관련 enum 추가 * [#17] feat: Member, Users 도메인 관련 인증 로직 구현 * [#17] feat(MemberController): Member 관련 API 엔드포인트 구현 * [#17] feat: Security 관련 인증 객체 구현 * [#17] feat: 소셜로그인 로직 구현 * [#17] fix: 소셜로그인 오류 해결 * [#17] refactor: 코드리뷰 반영 * [#17] refactor: 코드리뷰 반영 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [feat] #34 - 비회원 예매 POST API 구현 (#35) * [#34] feat(Users): 빌더 및 정적 팩토리 메서드 추가 * [#34] feat(Entity): 엔티티 id 필드 수정 * [#34] refactor(application.yml): dialect 추가 * [#34] refactor(ScheduleService): 네이밍 수정 * [#34] refactor(BookingSuccessCode): 비회원 예매 조회 성공 메시지 추가 * [#34] feat(GuestBookingRequest): 비회원 예매 요청 DTO 생성 * [#34] feat(GuestBookingResponse): 비회원 예매 응답 DTO 생성 * [#34] refactor(BookingRetrieveService): 네이밍 수정 * [#34] feat(PerformanceRepository): 공연 레포지토리 생성 * [#34] feat(UserRepository): 유저 레포지토리 생성 * [#34] refactor(BookingRepository): 비회원 예매 시 네가지 정보가 모두 일치 해야만 다른 유저로 판단하는 메서드 구현 * [#34] refactor(ScheduleRepository): 비관적 락 적용 * [#34] feat(GuestBookingService): 비관적 락을 이용해 비회원 예매 로직 구현 * [#34] feat(BookingController): 비회원 예매 POST API 구현 * [#34] test(GuestBookingServiceConcurrencyTest): 동시성 테스트 구현 * [Refactor] #37 - 카카오 로그인 API response 수정 (#39) * [#37] rename: 빈 충돌 해결 위해 UserRepository를 UsersRepository로 rename * [#37] refactor: login response에서 refreshToken을 cookie에 담아주도록 변경 * [#37] fix: dao, repository 충돌 해결 * [#37] refactor: 어노테이션 수정 * [feat] #40 - 소개 관련 공연 정보 조회 GET API 구현 (#41) * [#40] feat: repository 추가 * [#40] feat: 공연 관련 성공, 실패 메세지 추가 * [#40] feat(PerformanceDetailResponse): 공연 상세페이지 조회 응답 dto * [#40] feat(PerformanceService): 공연 상세페이지 조회 로직 구현 * [#40] feat(PerformanceController): 공연 상세페이지 엔드포인트 구현 * [#40] feat(SecurityConfig): auth whitelist update * [#40] refactor: dto 분리 및 rename * [feat] #42 - 예매 관련 공연 정보 GET API 구현 (#43) * [#42] feat: 예매 관련 정보 조회 dto 생성 * [#42] feat: 예매 관련 정보 조회 성공 메세지 추가 * [#42] feat(ScheduleService): 잔여티켓계산, 예매가능여부확인, 예매가능여부 update 메소드 구현 * [#42] feat(PerformanceService): 예매관련공연정보의 response 생성하는 로직 구현 * [#42] feat(PerformanceController): 예매관련공연정보 조회 엔드포인트 구현 * [#42] feat(SecurityConfig): auth_whitelist update * [#42] refactor(ScheduleService): findTicketAvailability에서 getAvailableTicketCount method 사용하도록 수정 * [feat] #38 - 회원 예매 POST API 구현 (#45) * [#38] fix(Cast): Join 하는 부분 수정 및 빌더와 정적 팩토리 메서드 패턴 도입 * [#38] chore(application.yml): 계층 수정 * [#38] feat: 커스텀 어노테이션 생성 * [#38] fix(UserRepository): 중복된 클래스 삭제 * [#38] feat(UserErrorCode): 유저의 에러 메시지를 관리하는 열거형 생성 * [#38] refactor(MemberErrorCode): message 목적에 맞게 변경 * [#38] refactor(BookingSuccessCode): 회원 예매 성공 메시지 추가 * [#38] feat: 커스텀 어노테이션 생성 커밋에 누락된 클래스 추가 * [#38] refactor(GuestBookingService): schedule에서 바로 get 하도록 수정 * [#38] test(GuestBookingServiceConcurrencyTest): import문 경로명 변경 * [#38] refactor(MemberService): @Transactional 어노테이션이 필요한 메서드에 해당 옵션 추가 * [#38] feat(MemberBookingRequest): 회원 예매 요청 DTO 생성 * [#38] feat(MemberBookingResponse): 회원 예매 응답 DTO 생성 * [#38] refactor(MemberController): refreshToken을 쿠키에 넣어주도록 구현 * [#38] feat(MemberBookingService): 회원 예매 서비스 로직 구현 * [#38] feat(BookingController): 회원 예매 요청 POST API 구현 * [#38] fix: 빌드 안되는 부분 수정 * [#38] remove(MemberBookingService): 사용하지 않는 import문 삭제 * [#38] refactor: 커스텀 어노테이션 이름 수정 * [feat] #44 - 홈페이지 공연 및 홍보 조회 GET API 구현 (#47) * [#44] refactor: 코드리뷰 반영 * [#44] fix(Promotion): 기본키 이름 수정, performanceId 연관관계 설정 * [#44] feat: Repository 및 관련 로직 추가 * [#44] feat: errorcode, successcode 추가 * [#44] feat: 홈페이지 request, response dto 생성 * [#44] feat(ScheduleService): dueDate 관련 로직 구현 * [#44] feat(PerformanceService): 홈페이지 정렬 및 response 생성 로직 구현 * [#44] chore: import문 추가 * [feat] #46 - 회원 예매 조회 GET API 구현 (#48) * [#46] remove(BookingRetrieveRequest): 클래스 삭제 * [#46] refactor(BookingSuccessCode): 회원 예매 조회 성공 메시지 추가 * [#46] refactor(GuestBookingRetrieveResponse): 클래스 명 변경 * [#46] refactor(GuestBookingRetrieveRequest): 안쓰는 코드 주석처리 * [#46] refactor(GuestBookingRetrieveService): 클래스 명 수정으로 인한 리팩토링 * [#46] refactor(SecurityConfig): 토큰 사용하지 않는 api 경로 추가하기 * [#46] refactor(BookingRepository): userId로 예약 정보를 가져오는 JPA 메서드 구현 * [#46] feat(MemberBookingRetrieveResponse): 회원 조회 응답 DTO 생성 * [#46] feat(MemberBookingRetrieveService): 회원 예매 조회 로직을 담당하는 서비스 레이어 구현 * [#46] feat(BookingController): 회원 예매 조회 GET API 구현 * [feat] #49 - 예매자 관리 API 구현 (#51) * [#49] feat: 티켓 관련 success, error code 추가 * [#49] feat(Booking): 입금여부 setter 메소드 추가 * [#49] feat(TicketRetrieveResponse): 예매자 확인 response dto 생성 * [#49] feat(Ticket): 예매자 확인용 티켓 정보 response dto 생성 * [#49] feat(TicketRepository): 예매자 필터링용 메소드 생성 * [#49] feat: 예매자 입금정보 수정 request dto 생성 * [#49] feat(TicketDeleteRequest): 예매자 삭제 request dto 생성 * [#49] feat(TicketService): 예매자 관리 관련 로직 구현 * [#49] feat(TicketController): 예매자 관리 엔드포인트 구현 * [#49] chore: swagger annotation 추가 * HOTFIX(SecurityConfig): WHITELIST 경로명 수정 * [fix] #52 - auth whitelist 수정 (#53) * [#52]fix(SecurityConfig): auth_whitelist 수정 * [#52]fix(SecurityConfig): auth_whitelist 수정 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [feat] #54 - 등록한 공연 목록 조회 GET API 구현 (#55) * [#54] feat(PerformanceSuccessCode): success code 추가 * [#54] feat: 회원이 등록한 공연목록 조회 dto 생성 * [#54] feat(PerformanceService): 회원이 등록한 공연목록 조회 로직 구현 * [#54] feat(PerformanceRepository): 회원이 등록한 공연목록 조회 관련 메소드 추가 * [#54] feat(PerformanceController): 회원이 등록한 공연목록 조회 엔드포인트 생성 * [#54] fix(TicketService): exception error 수정 * [#54] chore(application.yml): yml 수정 * [fix] #58 - dev-ci.yml, prod-ci.yml 환경변수 추가 (#59) * [#58] fix(dev-CI.yml): Dev 서버 CI 워크플로우 수정 * [#58] fix(prod-CI.yml): Prod 서버 CI 워크플로우 수정 * [refactor] #61 - Performance Entity field 추가 (#62) * [#61] refactor(Performance): bankHolder 필드 추가 * [#61] chore(BookingController): swagger annotation 수정 * [feat] #63 - healthCheckController 생성 (#64) * [#63] remove(UsersRepository): 중복 클래스 삭제 * [#63] feat(HealthCheckController): healthcheck 컨트롤러 생성 * [feat] #63 - health check URL 화이트리스트에 등록 (#67) * [#63] remove(UsersRepository): 중복 클래스 삭제 * [#63] feat(HealthCheckController): healthcheck 컨트롤러 생성 * [#63] feat(SecurityConfig): healthcheck url white_list에 등록 * [fix] #57 - entity 연관관계 설정 SecurityConfig 수정 (#65) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [fix] #57 - security 관련 에러 대응 (#71) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 * [#57] fix(JwtAuthenticationFilter): 에러 로직 수정 * fix(SecurityConfig): webSecurityCustomizer 로직 추가 * [fix] #73 - security 수정 (#74) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 * [#57] fix(JwtAuthenticationFilter): 에러 로직 수정 * fix(SecurityConfig): webSecurityCustomizer 로직 추가 * [#57] fix:security 수정 * [#76] fix(SecurityConfig): Base64 인코딩을 하도록 변경 (#77) * [fix] #76 - 누락된 코드 추가 (#79) * [#76] fix(SecurityConfig): Base64 인코딩을 하도록 변경 * [#76] chore(SecurityConfig): 누락된 import문 추가 * [#76] chore(JwtTokenProvider): 누락된 코드 추가 * [#81] fix(JwtTokenProvider): jwtsecret을 인코딩하고 디코딩을 하도록 수정 (#82) * [#85] chore(application.yml): 환경변수 설정 (#86) * [chore] #88 - 레디스 환경변수 추가 (#89) * [#88] chore(dev-CI.yml): dev서버 레디스 환경변수 설정 추가 * [#88] chore(prod-CI.yml): prod 서버 레디스 환경변수 설정 추가 * [deploy] merge to main (#90) * [deploy] merge to main (#83) * [deploy] merge to develop (#27) * [deploy] merge to main (#26) * [#2] chore(.gitignore): .gradle, .idea 파일 삭제 (#3) * [refactor] #4 - 도메인형 디렉터리 구조 변경 및 local, dev, prod 운영 환경 분리 (#5) * [#4] fix: 클래스 첫글자 대문자로 수정 * [#4] remove: enum 삭제 * [#4] feat(BaseSuccessCode): 성공 상태 관리를 위한 인터페이스 생성 * [#4] feat(BaseErrorCode): 에러 상태 관리를 위한 인터페이스 생성 * [#4] refactor: global 패키지로 이동 * [#4] refactor: 서버 운영 환경 분리 * [feat] #6 - dev, prod Dockerfile 분리 및 github Action CI workflow 구현 (#7) * [#6] feat(Dockerfile): prod용 도커 파일 구현 * [#6] feat(Dockerfile-dev): dev용 도커 파일 구현 * [#6] feat(dev-CI.yml): dev용 CI workflow 구현 * [#6] feat(prod-CI.yml): prod용 CI workflow 구현 * [#6] chore(.gitignore): gradle-wrapper.jar 파일은 레포지토리에 포함되도록 설정 * [#6] fix(gradle-wrapper.jar): .gitignore로 누락된 파일 추가 * [#6] chore(build.grade): plain jar 생성 방지 * [#9] docs(README.md): 서비스 소개 README v1 작성 (#10) * [#11] docs(README.md): 리드미 업데이트 (#12) * [feat] #13 - 유저, 예매, 공연, 회차 엔티티 생성 (#15) * [#13] feat(Users): 사용자 엔티티 생성 * [#13] feat(Genre): 장르 열거형 생성 * [#13] feat(BankName): 은행명 열거형 생성 * [#13] refactor(BaseTimeEntity): 업데이트 시간 관리 필드 활성화 * [#13] feat(Performance): 공연 엔티티 생성 * [#13] feat(ScheduleNumber): 회차 번호 열거형 생성 * [#13] feat(Schedule): 회차 엔티티 생성 * [#13] feat(Booking): 예매 엔티티 생성 * [#13] refactor(ScheduleNumber): 네이밍 수정 * [feat] #14 - 회원, 홍보, 등장인물, 스태프 엔티티 생성 (#16) * [#14] feat(Member): 멤버 엔티티 생성 * [#14] feat(Promotion): 홍보 엔티티 생성 * [#14] feat(Cast): 등장인물 엔티티 생성 * [#14] feat(Staff): 스태프 엔티티 생성 * [feat] #13 - 유저, 예매, 공연, 회차 엔티티 생성 (#15) * [#13] feat(Users): 사용자 엔티티 생성 * [#13] feat(Genre): 장르 열거형 생성 * [#13] feat(BankName): 은행명 열거형 생성 * [#13] refactor(BaseTimeEntity): 업데이트 시간 관리 필드 활성화 * [#13] feat(Performance): 공연 엔티티 생성 * [#13] feat(ScheduleNumber): 회차 번호 열거형 생성 * [#13] feat(Schedule): 회차 엔티티 생성 * [#13] feat(Booking): 예매 엔티티 생성 * [#13] refactor(ScheduleNumber): 네이밍 수정 * [#14} fix: 스태프, 등장인물, 홍보 엔티티 상속관계 수정 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [#18] feat(Jenkinsfile): 젠킨스 파일 생성 (#19) * [#20] refactor(Jenkinsfile): 젠킨스 파일 Webhook 테스트용 커밋 (#21) * [#22] feat(Jenkinsfile): Jenkins multibranch 스크립트 작성 (#23) * HOTFIX(Jenkinsfile): Jenkins multibranch 스크립트 수정 * HOTFIX(workflows): 빌드 후 젠킨스 배포가 진행되도록 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * [#24] feat(Jenkinsfile): slack 연동 스크립트 작성 (#25) --------- Co-authored-by: hyerinhwang-sailin * HOTFIX(workflow): 오타 수정 --------- Co-authored-by: hyerinhwang-sailin * [feat] #28 - 비회원 예매 조회 POST API 구현 (#29) * chore(application-dev.yml): dialect 추가 * chore(application-prod.yml): dialect 추가 * [#28] chore(build.gradle): security 의존성 비활성화 - security 일시적으로 비활성화 * [#28] refactor(Booking): 예매 엔티티에 빌더 및 정적팩토리 메서드 추가 * [#28] refactor(ErrorResponse): 정적 팩토리 메서드 네이밍 변환 * [#28] refactor(Schedule): 회차 엔티티에 빌더 및 정적 팩토리 메서드 추가 * [#28] refactor(Performance): 공연 엔티티에 빌더 및 정적 팩토리 메서드 추가 * [#28] refactor(SuccessResponse): 정적 팩토리 메서드 네이밍 변환 * [#28] refactor(GlobalExceptionHandler): INTERNAL_SERVER_ERROR 핸들러 메서드 추가 * [#28] feat(BookingSuccessCode): 예매 성공 메시지를 관리하는 열거형 생성 * [#28] feat(BookingErrorCode): 예매 에러 메시지를 관리하는 열거형 생성 * [#28] feat(BookingRetrieveResponse): 예매 조회 응답 DTO 생성 * [#28] feat(BookingRetrieveRequest): 예매 조회 요청 DTO 생성 * [#28] feat(BookingRepository): 예매 레포지토리 생성 및 비회원 예매 조회 시 예매 내역 가져오는 메서드 구현 * [#28] feat(BookingService): 예매 서비스 레이어 생성 및 비회원 조회 메서드 구현 * [#28] feat(BookingController): 예매 컨트롤러 생성 및 비회원 예매조회 POST API 구현 * [feat] #30 - SwaggerConfig 및 WebConfig 구현 (#31) * [#30] chore(build.gradle): springdoc 의존성 추가 * [#30] feat(SwaggerConfig): SwaggerConfig 추가 * [#30] feat(WebConfig): WebConfig 추가 * HOTFIX(workflows): push 이벤트 시 github action이 빌드 되지 않도록 수정 * HOTFIX(Jenkinsfile): 포트 수정 * [feat] #32 - 티켓 예매 가능 여부 GET API 구현 (#33) * [#32] refactor(BookingController): 메서드명 수정 * [#32] feat(ConflictException): Conflict 409에러 클래스 생성 * [#32] feat(GlobalExceptionHandler): ConflictException 등록 * [#32] feat(TicketAvailabilityRequest): TicketAvailabilityRequest DTO 생성 * [#32] feat(TicketAvailabilityResponse): TicketAvailabilityResponse DTO 생성 * [#32] feat(ScheduleSuccessCode): ScheduleSuccessCode 열거형 생성 * [#32] feat(ScheduleErrorCode): ScheduleErrorCode 열거형 생성 * [#32] feat(ScheduleRepository): ScheduleRepository 생성 * [#32] feat(ScheduleService): ScheduleService 생성 및 회차별 티켓 구매 가능 여부 판단 메서드 구현 * [#32] feat(ScheduleController): 회차별 티켓 수량 조회 GET API 구현 * [feat] #17 - 카카오 소셜 로그인 API 구현 (#36) * [#17] feat(build.gradle): jwt, security, open feign, Redis 의존성 추가 * [#17] feat(BeatApplication): OpenFeign 관련 어노테이션 추가 * [#17] feat(RedisConfig): redis 설정 * [#17] feat: redis 활용 jwt 토큰 생성 로직 구현 * [#17] feat(SecurityConfig): security 설정 * [#17] refactor: Member, Users 엔티티 수정 및 관련 enum 추가 * [#17] feat: Member, Users 도메인 관련 인증 로직 구현 * [#17] feat(MemberController): Member 관련 API 엔드포인트 구현 * [#17] feat: Security 관련 인증 객체 구현 * [#17] feat: 소셜로그인 로직 구현 * [#17] fix: 소셜로그인 오류 해결 * [#17] refactor: 코드리뷰 반영 * [#17] refactor: 코드리뷰 반영 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [feat] #34 - 비회원 예매 POST API 구현 (#35) * [#34] feat(Users): 빌더 및 정적 팩토리 메서드 추가 * [#34] feat(Entity): 엔티티 id 필드 수정 * [#34] refactor(application.yml): dialect 추가 * [#34] refactor(ScheduleService): 네이밍 수정 * [#34] refactor(BookingSuccessCode): 비회원 예매 조회 성공 메시지 추가 * [#34] feat(GuestBookingRequest): 비회원 예매 요청 DTO 생성 * [#34] feat(GuestBookingResponse): 비회원 예매 응답 DTO 생성 * [#34] refactor(BookingRetrieveService): 네이밍 수정 * [#34] feat(PerformanceRepository): 공연 레포지토리 생성 * [#34] feat(UserRepository): 유저 레포지토리 생성 * [#34] refactor(BookingRepository): 비회원 예매 시 네가지 정보가 모두 일치 해야만 다른 유저로 판단하는 메서드 구현 * [#34] refactor(ScheduleRepository): 비관적 락 적용 * [#34] feat(GuestBookingService): 비관적 락을 이용해 비회원 예매 로직 구현 * [#34] feat(BookingController): 비회원 예매 POST API 구현 * [#34] test(GuestBookingServiceConcurrencyTest): 동시성 테스트 구현 * [Refactor] #37 - 카카오 로그인 API response 수정 (#39) * [#37] rename: 빈 충돌 해결 위해 UserRepository를 UsersRepository로 rename * [#37] refactor: login response에서 refreshToken을 cookie에 담아주도록 변경 * [#37] fix: dao, repository 충돌 해결 * [#37] refactor: 어노테이션 수정 * [feat] #40 - 소개 관련 공연 정보 조회 GET API 구현 (#41) * [#40] feat: repository 추가 * [#40] feat: 공연 관련 성공, 실패 메세지 추가 * [#40] feat(PerformanceDetailResponse): 공연 상세페이지 조회 응답 dto * [#40] feat(PerformanceService): 공연 상세페이지 조회 로직 구현 * [#40] feat(PerformanceController): 공연 상세페이지 엔드포인트 구현 * [#40] feat(SecurityConfig): auth whitelist update * [#40] refactor: dto 분리 및 rename * [feat] #42 - 예매 관련 공연 정보 GET API 구현 (#43) * [#42] feat: 예매 관련 정보 조회 dto 생성 * [#42] feat: 예매 관련 정보 조회 성공 메세지 추가 * [#42] feat(ScheduleService): 잔여티켓계산, 예매가능여부확인, 예매가능여부 update 메소드 구현 * [#42] feat(PerformanceService): 예매관련공연정보의 response 생성하는 로직 구현 * [#42] feat(PerformanceController): 예매관련공연정보 조회 엔드포인트 구현 * [#42] feat(SecurityConfig): auth_whitelist update * [#42] refactor(ScheduleService): findTicketAvailability에서 getAvailableTicketCount method 사용하도록 수정 * [feat] #38 - 회원 예매 POST API 구현 (#45) * [#38] fix(Cast): Join 하는 부분 수정 및 빌더와 정적 팩토리 메서드 패턴 도입 * [#38] chore(application.yml): 계층 수정 * [#38] feat: 커스텀 어노테이션 생성 * [#38] fix(UserRepository): 중복된 클래스 삭제 * [#38] feat(UserErrorCode): 유저의 에러 메시지를 관리하는 열거형 생성 * [#38] refactor(MemberErrorCode): message 목적에 맞게 변경 * [#38] refactor(BookingSuccessCode): 회원 예매 성공 메시지 추가 * [#38] feat: 커스텀 어노테이션 생성 커밋에 누락된 클래스 추가 * [#38] refactor(GuestBookingService): schedule에서 바로 get 하도록 수정 * [#38] test(GuestBookingServiceConcurrencyTest): import문 경로명 변경 * [#38] refactor(MemberService): @Transactional 어노테이션이 필요한 메서드에 해당 옵션 추가 * [#38] feat(MemberBookingRequest): 회원 예매 요청 DTO 생성 * [#38] feat(MemberBookingResponse): 회원 예매 응답 DTO 생성 * [#38] refactor(MemberController): refreshToken을 쿠키에 넣어주도록 구현 * [#38] feat(MemberBookingService): 회원 예매 서비스 로직 구현 * [#38] feat(BookingController): 회원 예매 요청 POST API 구현 * [#38] fix: 빌드 안되는 부분 수정 * [#38] remove(MemberBookingService): 사용하지 않는 import문 삭제 * [#38] refactor: 커스텀 어노테이션 이름 수정 * [feat] #44 - 홈페이지 공연 및 홍보 조회 GET API 구현 (#47) * [#44] refactor: 코드리뷰 반영 * [#44] fix(Promotion): 기본키 이름 수정, performanceId 연관관계 설정 * [#44] feat: Repository 및 관련 로직 추가 * [#44] feat: errorcode, successcode 추가 * [#44] feat: 홈페이지 request, response dto 생성 * [#44] feat(ScheduleService): dueDate 관련 로직 구현 * [#44] feat(PerformanceService): 홈페이지 정렬 및 response 생성 로직 구현 * [#44] chore: import문 추가 * [feat] #46 - 회원 예매 조회 GET API 구현 (#48) * [#46] remove(BookingRetrieveRequest): 클래스 삭제 * [#46] refactor(BookingSuccessCode): 회원 예매 조회 성공 메시지 추가 * [#46] refactor(GuestBookingRetrieveResponse): 클래스 명 변경 * [#46] refactor(GuestBookingRetrieveRequest): 안쓰는 코드 주석처리 * [#46] refactor(GuestBookingRetrieveService): 클래스 명 수정으로 인한 리팩토링 * [#46] refactor(SecurityConfig): 토큰 사용하지 않는 api 경로 추가하기 * [#46] refactor(BookingRepository): userId로 예약 정보를 가져오는 JPA 메서드 구현 * [#46] feat(MemberBookingRetrieveResponse): 회원 조회 응답 DTO 생성 * [#46] feat(MemberBookingRetrieveService): 회원 예매 조회 로직을 담당하는 서비스 레이어 구현 * [#46] feat(BookingController): 회원 예매 조회 GET API 구현 * [feat] #49 - 예매자 관리 API 구현 (#51) * [#49] feat: 티켓 관련 success, error code 추가 * [#49] feat(Booking): 입금여부 setter 메소드 추가 * [#49] feat(TicketRetrieveResponse): 예매자 확인 response dto 생성 * [#49] feat(Ticket): 예매자 확인용 티켓 정보 response dto 생성 * [#49] feat(TicketRepository): 예매자 필터링용 메소드 생성 * [#49] feat: 예매자 입금정보 수정 request dto 생성 * [#49] feat(TicketDeleteRequest): 예매자 삭제 request dto 생성 * [#49] feat(TicketService): 예매자 관리 관련 로직 구현 * [#49] feat(TicketController): 예매자 관리 엔드포인트 구현 * [#49] chore: swagger annotation 추가 * HOTFIX(SecurityConfig): WHITELIST 경로명 수정 * [fix] #52 - auth whitelist 수정 (#53) * [#52]fix(SecurityConfig): auth_whitelist 수정 * [#52]fix(SecurityConfig): auth_whitelist 수정 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [feat] #54 - 등록한 공연 목록 조회 GET API 구현 (#55) * [#54] feat(PerformanceSuccessCode): success code 추가 * [#54] feat: 회원이 등록한 공연목록 조회 dto 생성 * [#54] feat(PerformanceService): 회원이 등록한 공연목록 조회 로직 구현 * [#54] feat(PerformanceRepository): 회원이 등록한 공연목록 조회 관련 메소드 추가 * [#54] feat(PerformanceController): 회원이 등록한 공연목록 조회 엔드포인트 생성 * [#54] fix(TicketService): exception error 수정 * [#54] chore(application.yml): yml 수정 * [fix] #58 - dev-ci.yml, prod-ci.yml 환경변수 추가 (#59) * [#58] fix(dev-CI.yml): Dev 서버 CI 워크플로우 수정 * [#58] fix(prod-CI.yml): Prod 서버 CI 워크플로우 수정 * [refactor] #61 - Performance Entity field 추가 (#62) * [#61] refactor(Performance): bankHolder 필드 추가 * [#61] chore(BookingController): swagger annotation 수정 * [feat] #63 - healthCheckController 생성 (#64) * [#63] remove(UsersRepository): 중복 클래스 삭제 * [#63] feat(HealthCheckController): healthcheck 컨트롤러 생성 * [feat] #63 - health check URL 화이트리스트에 등록 (#67) * [#63] remove(UsersRepository): 중복 클래스 삭제 * [#63] feat(HealthCheckController): healthcheck 컨트롤러 생성 * [#63] feat(SecurityConfig): healthcheck url white_list에 등록 * [fix] #57 - entity 연관관계 설정 SecurityConfig 수정 (#65) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [fix] #57 - security 관련 에러 대응 (#71) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 * [#57] fix(JwtAuthenticationFilter): 에러 로직 수정 * fix(SecurityConfig): webSecurityCustomizer 로직 추가 * [fix] #73 - security 수정 (#74) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 * [#57] fix(JwtAuthenticationFilter): 에러 로직 수정 * fix(SecurityConfig): webSecurityCustomizer 로직 추가 * [#57] fix:security 수정 * [#76] fix(SecurityConfig): Base64 인코딩을 하도록 변경 (#77) * [fix] #76 - 누락된 코드 추가 (#79) * [#76] fix(SecurityConfig): Base64 인코딩을 하도록 변경 * [#76] chore(SecurityConfig): 누락된 import문 추가 * [#76] chore(JwtTokenProvider): 누락된 코드 추가 * [#81] fix(JwtTokenProvider): jwtsecret을 인코딩하고 디코딩을 하도록 수정 (#82) --------- Co-authored-by: hyerinhwang-sailin * [deploy] merge to main (#87) * [deploy] merge to develop (#27) * [deploy] merge to main (#26) * [#2] chore(.gitignore): .gradle, .idea 파일 삭제 (#3) * [refactor] #4 - 도메인형 디렉터리 구조 변경 및 local, dev, prod 운영 환경 분리 (#5) * [#4] fix: 클래스 첫글자 대문자로 수정 * [#4] remove: enum 삭제 * [#4] feat(BaseSuccessCode): 성공 상태 관리를 위한 인터페이스 생성 * [#4] feat(BaseErrorCode): 에러 상태 관리를 위한 인터페이스 생성 * [#4] refactor: global 패키지로 이동 * [#4] refactor: 서버 운영 환경 분리 * [feat] #6 - dev, prod Dockerfile 분리 및 github Action CI workflow 구현 (#7) * [#6] feat(Dockerfile): prod용 도커 파일 구현 * [#6] feat(Dockerfile-dev): dev용 도커 파일 구현 * [#6] feat(dev-CI.yml): dev용 CI workflow 구현 * [#6] feat(prod-CI.yml): prod용 CI workflow 구현 * [#6] chore(.gitignore): gradle-wrapper.jar 파일은 레포지토리에 포함되도록 설정 * [#6] fix(gradle-wrapper.jar): .gitignore로 누락된 파일 추가 * [#6] chore(build.grade): plain jar 생성 방지 * [#9] docs(README.md): 서비스 소개 README v1 작성 (#10) * [#11] docs(README.md): 리드미 업데이트 (#12) * [feat] #13 - 유저, 예매, 공연, 회차 엔티티 생성 (#15) * [#13] feat(Users): 사용자 엔티티 생성 * [#13] feat(Genre): 장르 열거형 생성 * [#13] feat(BankName): 은행명 열거형 생성 * [#13] refactor(BaseTimeEntity): 업데이트 시간 관리 필드 활성화 * [#13] feat(Performance): 공연 엔티티 생성 * [#13] feat(ScheduleNumber): 회차 번호 열거형 생성 * [#13] feat(Schedule): 회차 엔티티 생성 * [#13] feat(Booking): 예매 엔티티 생성 * [#13] refactor(ScheduleNumber): 네이밍 수정 * [feat] #14 - 회원, 홍보, 등장인물, 스태프 엔티티 생성 (#16) * [#14] feat(Member): 멤버 엔티티 생성 * [#14] feat(Promotion): 홍보 엔티티 생성 * [#14] feat(Cast): 등장인물 엔티티 생성 * [#14] feat(Staff): 스태프 엔티티 생성 * [feat] #13 - 유저, 예매, 공연, 회차 엔티티 생성 (#15) * [#13] feat(Users): 사용자 엔티티 생성 * [#13] feat(Genre): 장르 열거형 생성 * [#13] feat(BankName): 은행명 열거형 생성 * [#13] refactor(BaseTimeEntity): 업데이트 시간 관리 필드 활성화 * [#13] feat(Performance): 공연 엔티티 생성 * [#13] feat(ScheduleNumber): 회차 번호 열거형 생성 * [#13] feat(Schedule): 회차 엔티티 생성 * [#13] feat(Booking): 예매 엔티티 생성 * [#13] refactor(ScheduleNumber): 네이밍 수정 * [#14} fix: 스태프, 등장인물, 홍보 엔티티 상속관계 수정 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [#18] feat(Jenkinsfile): 젠킨스 파일 생성 (#19) * [#20] refactor(Jenkinsfile): 젠킨스 파일 Webhook 테스트용 커밋 (#21) * [#22] feat(Jenkinsfile): Jenkins multibranch 스크립트 작성 (#23) * HOTFIX(Jenkinsfile): Jenkins multibranch 스크립트 수정 * HOTFIX(workflows): 빌드 후 젠킨스 배포가 진행되도록 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * [#24] feat(Jenkinsfile): slack 연동 스크립트 작성 (#25) --------- Co-authored-by: hyerinhwang-sailin * HOTFIX(workflow): 오타 수정 --------- Co-authored-by: hyerinhwang-sailin * [feat] #28 - 비회원 예매 조회 POST API 구현 (#29) * chore(application-dev.yml): dialect 추가 * chore(application-prod.yml): dialect 추가 * [#28] chore(build.gradle): security 의존성 비활성화 - security 일시적으로 비활성화 * [#28] refactor(Booking): 예매 엔티티에 빌더 및 정적팩토리 메서드 추가 * [#28] refactor(ErrorResponse): 정적 팩토리 메서드 네이밍 변환 * [#28] refactor(Schedule): 회차 엔티티에 빌더 및 정적 팩토리 메서드 추가 * [#28] refactor(Performance): 공연 엔티티에 빌더 및 정적 팩토리 메서드 추가 * [#28] refactor(SuccessResponse): 정적 팩토리 메서드 네이밍 변환 * [#28] refactor(GlobalExceptionHandler): INTERNAL_SERVER_ERROR 핸들러 메서드 추가 * [#28] feat(BookingSuccessCode): 예매 성공 메시지를 관리하는 열거형 생성 * [#28] feat(BookingErrorCode): 예매 에러 메시지를 관리하는 열거형 생성 * [#28] feat(BookingRetrieveResponse): 예매 조회 응답 DTO 생성 * [#28] feat(BookingRetrieveRequest): 예매 조회 요청 DTO 생성 * [#28] feat(BookingRepository): 예매 레포지토리 생성 및 비회원 예매 조회 시 예매 내역 가져오는 메서드 구현 * [#28] feat(BookingService): 예매 서비스 레이어 생성 및 비회원 조회 메서드 구현 * [#28] feat(BookingController): 예매 컨트롤러 생성 및 비회원 예매조회 POST API 구현 * [feat] #30 - SwaggerConfig 및 WebConfig 구현 (#31) * [#30] chore(build.gradle): springdoc 의존성 추가 * [#30] feat(SwaggerConfig): SwaggerConfig 추가 * [#30] feat(WebConfig): WebConfig 추가 * HOTFIX(workflows): push 이벤트 시 github action이 빌드 되지 않도록 수정 * HOTFIX(Jenkinsfile): 포트 수정 * [feat] #32 - 티켓 예매 가능 여부 GET API 구현 (#33) * [#32] refactor(BookingController): 메서드명 수정 * [#32] feat(ConflictException): Conflict 409에러 클래스 생성 * [#32] feat(GlobalExceptionHandler): ConflictException 등록 * [#32] feat(TicketAvailabilityRequest): TicketAvailabilityRequest DTO 생성 * [#32] feat(TicketAvailabilityResponse): TicketAvailabilityResponse DTO 생성 * [#32] feat(ScheduleSuccessCode): ScheduleSuccessCode 열거형 생성 * [#32] feat(ScheduleErrorCode): ScheduleErrorCode 열거형 생성 * [#32] feat(ScheduleRepository): ScheduleRepository 생성 * [#32] feat(ScheduleService): ScheduleService 생성 및 회차별 티켓 구매 가능 여부 판단 메서드 구현 * [#32] feat(ScheduleController): 회차별 티켓 수량 조회 GET API 구현 * [feat] #17 - 카카오 소셜 로그인 API 구현 (#36) * [#17] feat(build.gradle): jwt, security, open feign, Redis 의존성 추가 * [#17] feat(BeatApplication): OpenFeign 관련 어노테이션 추가 * [#17] feat(RedisConfig): redis 설정 * [#17] feat: redis 활용 jwt 토큰 생성 로직 구현 * [#17] feat(SecurityConfig): security 설정 * [#17] refactor: Member, Users 엔티티 수정 및 관련 enum 추가 * [#17] feat: Member, Users 도메인 관련 인증 로직 구현 * [#17] feat(MemberController): Member 관련 API 엔드포인트 구현 * [#17] feat: Security 관련 인증 객체 구현 * [#17] feat: 소셜로그인 로직 구현 * [#17] fix: 소셜로그인 오류 해결 * [#17] refactor: 코드리뷰 반영 * [#17] refactor: 코드리뷰 반영 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [feat] #34 - 비회원 예매 POST API 구현 (#35) * [#34] feat(Users): 빌더 및 정적 팩토리 메서드 추가 * [#34] feat(Entity): 엔티티 id 필드 수정 * [#34] refactor(application.yml): dialect 추가 * [#34] refactor(ScheduleService): 네이밍 수정 * [#34] refactor(BookingSuccessCode): 비회원 예매 조회 성공 메시지 추가 * [#34] feat(GuestBookingRequest): 비회원 예매 요청 DTO 생성 * [#34] feat(GuestBookingResponse): 비회원 예매 응답 DTO 생성 * [#34] refactor(BookingRetrieveService): 네이밍 수정 * [#34] feat(PerformanceRepository): 공연 레포지토리 생성 * [#34] feat(UserRepository): 유저 레포지토리 생성 * [#34] refactor(BookingRepository): 비회원 예매 시 네가지 정보가 모두 일치 해야만 다른 유저로 판단하는 메서드 구현 * [#34] refactor(ScheduleRepository): 비관적 락 적용 * [#34] feat(GuestBookingService): 비관적 락을 이용해 비회원 예매 로직 구현 * [#34] feat(BookingController): 비회원 예매 POST API 구현 * [#34] test(GuestBookingServiceConcurrencyTest): 동시성 테스트 구현 * [Refactor] #37 - 카카오 로그인 API response 수정 (#39) * [#37] rename: 빈 충돌 해결 위해 UserRepository를 UsersRepository로 rename * [#37] refactor: login response에서 refreshToken을 cookie에 담아주도록 변경 * [#37] fix: dao, repository 충돌 해결 * [#37] refactor: 어노테이션 수정 * [feat] #40 - 소개 관련 공연 정보 조회 GET API 구현 (#41) * [#40] feat: repository 추가 * [#40] feat: 공연 관련 성공, 실패 메세지 추가 * [#40] feat(PerformanceDetailResponse): 공연 상세페이지 조회 응답 dto * [#40] feat(PerformanceService): 공연 상세페이지 조회 로직 구현 * [#40] feat(PerformanceController): 공연 상세페이지 엔드포인트 구현 * [#40] feat(SecurityConfig): auth whitelist update * [#40] refactor: dto 분리 및 rename * [feat] #42 - 예매 관련 공연 정보 GET API 구현 (#43) * [#42] feat: 예매 관련 정보 조회 dto 생성 * [#42] feat: 예매 관련 정보 조회 성공 메세지 추가 * [#42] feat(ScheduleService): 잔여티켓계산, 예매가능여부확인, 예매가능여부 update 메소드 구현 * [#42] feat(PerformanceService): 예매관련공연정보의 response 생성하는 로직 구현 * [#42] feat(PerformanceController): 예매관련공연정보 조회 엔드포인트 구현 * [#42] feat(SecurityConfig): auth_whitelist update * [#42] refactor(ScheduleService): findTicketAvailability에서 getAvailableTicketCount method 사용하도록 수정 * [feat] #38 - 회원 예매 POST API 구현 (#45) * [#38] fix(Cast): Join 하는 부분 수정 및 빌더와 정적 팩토리 메서드 패턴 도입 * [#38] chore(application.yml): 계층 수정 * [#38] feat: 커스텀 어노테이션 생성 * [#38] fix(UserRepository): 중복된 클래스 삭제 * [#38] feat(UserErrorCode): 유저의 에러 메시지를 관리하는 열거형 생성 * [#38] refactor(MemberErrorCode): message 목적에 맞게 변경 * [#38] refactor(BookingSuccessCode): 회원 예매 성공 메시지 추가 * [#38] feat: 커스텀 어노테이션 생성 커밋에 누락된 클래스 추가 * [#38] refactor(GuestBookingService): schedule에서 바로 get 하도록 수정 * [#38] test(GuestBookingServiceConcurrencyTest): import문 경로명 변경 * [#38] refactor(MemberService): @Transactional 어노테이션이 필요한 메서드에 해당 옵션 추가 * [#38] feat(MemberBookingRequest): 회원 예매 요청 DTO 생성 * [#38] feat(MemberBookingResponse): 회원 예매 응답 DTO 생성 * [#38] refactor(MemberController): refreshToken을 쿠키에 넣어주도록 구현 * [#38] feat(MemberBookingService): 회원 예매 서비스 로직 구현 * [#38] feat(BookingController): 회원 예매 요청 POST API 구현 * [#38] fix: 빌드 안되는 부분 수정 * [#38] remove(MemberBookingService): 사용하지 않는 import문 삭제 * [#38] refactor: 커스텀 어노테이션 이름 수정 * [feat] #44 - 홈페이지 공연 및 홍보 조회 GET API 구현 (#47) * [#44] refactor: 코드리뷰 반영 * [#44] fix(Promotion): 기본키 이름 수정, performanceId 연관관계 설정 * [#44] feat: Repository 및 관련 로직 추가 * [#44] feat: errorcode, successcode 추가 * [#44] feat: 홈페이지 request, response dto 생성 * [#44] feat(ScheduleService): dueDate 관련 로직 구현 * [#44] feat(PerformanceService): 홈페이지 정렬 및 response 생성 로직 구현 * [#44] chore: import문 추가 * [feat] #46 - 회원 예매 조회 GET API 구현 (#48) * [#46] remove(BookingRetrieveRequest): 클래스 삭제 * [#46] refactor(BookingSuccessCode): 회원 예매 조회 성공 메시지 추가 * [#46] refactor(GuestBookingRetrieveResponse): 클래스 명 변경 * [#46] refactor(GuestBookingRetrieveRequest): 안쓰는 코드 주석처리 * [#46] refactor(GuestBookingRetrieveService): 클래스 명 수정으로 인한 리팩토링 * [#46] refactor(SecurityConfig): 토큰 사용하지 않는 api 경로 추가하기 * [#46] refactor(BookingRepository): userId로 예약 정보를 가져오는 JPA 메서드 구현 * [#46] feat(MemberBookingRetrieveResponse): 회원 조회 응답 DTO 생성 * [#46] feat(MemberBookingRetrieveService): 회원 예매 조회 로직을 담당하는 서비스 레이어 구현 * [#46] feat(BookingController): 회원 예매 조회 GET API 구현 * [feat] #49 - 예매자 관리 API 구현 (#51) * [#49] feat: 티켓 관련 success, error code 추가 * [#49] feat(Booking): 입금여부 setter 메소드 추가 * [#49] feat(TicketRetrieveResponse): 예매자 확인 response dto 생성 * [#49] feat(Ticket): 예매자 확인용 티켓 정보 response dto 생성 * [#49] feat(TicketRepository): 예매자 필터링용 메소드 생성 * [#49] feat: 예매자 입금정보 수정 request dto 생성 * [#49] feat(TicketDeleteRequest): 예매자 삭제 request dto 생성 * [#49] feat(TicketService): 예매자 관리 관련 로직 구현 * [#49] feat(TicketController): 예매자 관리 엔드포인트 구현 * [#49] chore: swagger annotation 추가 * HOTFIX(SecurityConfig): WHITELIST 경로명 수정 * [fix] #52 - auth whitelist 수정 (#53) * [#52]fix(SecurityConfig): auth_whitelist 수정 * [#52]fix(SecurityConfig): auth_whitelist 수정 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [feat] #54 - 등록한 공연 목록 조회 GET API 구현 (#55) * [#54] feat(PerformanceSuccessCode): success code 추가 * [#54] feat: 회원이 등록한 공연목록 조회 dto 생성 * [#54] feat(PerformanceService): 회원이 등록한 공연목록 조회 로직 구현 * [#54] feat(PerformanceRepository): 회원이 등록한 공연목록 조회 관련 메소드 추가 * [#54] feat(PerformanceController): 회원이 등록한 공연목록 조회 엔드포인트 생성 * [#54] fix(TicketService): exception error 수정 * [#54] chore(application.yml): yml 수정 * [fix] #58 - dev-ci.yml, prod-ci.yml 환경변수 추가 (#59) * [#58] fix(dev-CI.yml): Dev 서버 CI 워크플로우 수정 * [#58] fix(prod-CI.yml): Prod 서버 CI 워크플로우 수정 * [refactor] #61 - Performance Entity field 추가 (#62) * [#61] refactor(Performance): bankHolder 필드 추가 * [#61] chore(BookingController): swagger annotation 수정 * [feat] #63 - healthCheckController 생성 (#64) * [#63] remove(UsersRepository): 중복 클래스 삭제 * [#63] feat(HealthCheckController): healthcheck 컨트롤러 생성 * [feat] #63 - health check URL 화이트리스트에 등록 (#67) * [#63] remove(UsersRepository): 중복 클래스 삭제 * [#63] feat(HealthCheckController): healthcheck 컨트롤러 생성 * [#63] feat(SecurityConfig): healthcheck url white_list에 등록 * [fix] #57 - entity 연관관계 설정 SecurityConfig 수정 (#65) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [fix] #57 - security 관련 에러 대응 (#71) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 * [#57] fix(JwtAuthenticationFilter): 에러 로직 수정 * fix(SecurityConfig): webSecurityCustomizer 로직 추가 * [fix] #73 - security 수정 (#74) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 * [#57] fix(JwtAuthenticationFilter): 에러 로직 수정 * fix(SecurityConfig): webSecurityCustomizer 로직 추가 * [#57] fix:security 수정 * [#76] fix(SecurityConfig): Base64 인코딩을 하도록 변경 (#77) * [fix] #76 - 누락된 코드 추가 (#79) * [#76] fix(SecurityConfig): Base64 인코딩을 하도록 변경 * [#76] chore(SecurityConfig): 누락된 import문 추가 * [#76] chore(JwtTokenProvider): 누락된 코드 추가 * [#81] fix(JwtTokenProvider): jwtsecret을 인코딩하고 디코딩을 하도록 수정 (#82) * [#85] chore(application.yml): 환경변수 설정 (#86) --------- Co-authored-by: hyerinhwang-sailin --------- Co-authored-by: hyerinhwang-sailin * Revert "[deploy] merge to main (#90)" (#91) This reverts commit f519b0c82a2f01d4374eb045b9e90c6303381e50. * [fix] #93 - 누락된 어노테이션 및 누락된 경로명 추가 (#94) * [#93] fix(HealthCheckController): 누락된 어노테이션 추가 * [#93] refactor(SecurityConfig): 누락된 경로명 추가 * [bug] #84 - actuator/health 의존성 및 설정 추가 (#96) * [#84] chore(build.gradle): 의존성 추가 * [#84] chore: health/actuator yml 설정 추가 * [#84] chore: redis yml 설정 추가 * [#84] chore: yml 수정 (#99) * [bug] #101 - yml, s3 수정 (#102) * [#101] chore: yml 수정 * [#101] feat: s3 추가 * HOTIFX: prod ci-yml 수정 * Main redis host yml 수정 (#105) * [deploy] merge to main (#104) * [deploy] merge to develop (#27) * [deploy] merge to main (#26) * [#2] chore(.gitignore): .gradle, .idea 파일 삭제 (#3) * [refactor] #4 - 도메인형 디렉터리 구조 변경 및 local, dev, prod 운영 환경 분리 (#5) * [#4] fix: 클래스 첫글자 대문자로 수정 * [#4] remove: enum 삭제 * [#4] feat(BaseSuccessCode): 성공 상태 관리를 위한 인터페이스 생성 * [#4] feat(BaseErrorCode): 에러 상태 관리를 위한 인터페이스 생성 * [#4] refactor: global 패키지로 이동 * [#4] refactor: 서버 운영 환경 분리 * [feat] #6 - dev, prod Dockerfile 분리 및 github Action CI workflow 구현 (#7) * [#6] feat(Dockerfile): prod용 도커 파일 구현 * [#6] feat(Dockerfile-dev): dev용 도커 파일 구현 * [#6] feat(dev-CI.yml): dev용 CI workflow 구현 * [#6] feat(prod-CI.yml): prod용 CI workflow 구현 * [#6] chore(.gitignore): gradle-wrapper.jar 파일은 레포지토리에 포함되도록 설정 * [#6] fix(gradle-wrapper.jar): .gitignore로 누락된 파일 추가 * [#6] chore(build.grade): plain jar 생성 방지 * [#9] docs(README.md): 서비스 소개 README v1 작성 (#10) * [#11] docs(README.md): 리드미 업데이트 (#12) * [feat] #13 - 유저, 예매, 공연, 회차 엔티티 생성 (#15) * [#13] feat(Users): 사용자 엔티티 생성 * [#13] feat(Genre): 장르 열거형 생성 * [#13] feat(BankName): 은행명 열거형 생성 * [#13] refactor(BaseTimeEntity): 업데이트 시간 관리 필드 활성화 * [#13] feat(Performance): 공연 엔티티 생성 * [#13] feat(ScheduleNumber): 회차 번호 열거형 생성 * [#13] feat(Schedule): 회차 엔티티 생성 * [#13] feat(Booking): 예매 엔티티 생성 * [#13] refactor(ScheduleNumber): 네이밍 수정 * [feat] #14 - 회원, 홍보, 등장인물, 스태프 엔티티 생성 (#16) * [#14] feat(Member): 멤버 엔티티 생성 * [#14] feat(Promotion): 홍보 엔티티 생성 * [#14] feat(Cast): 등장인물 엔티티 생성 * [#14] feat(Staff): 스태프 엔티티 생성 * [feat] #13 - 유저, 예매, 공연, 회차 엔티티 생성 (#15) * [#13] feat(Users): 사용자 엔티티 생성 * [#13] feat(Genre): 장르 열거형 생성 * [#13] feat(BankName): 은행명 열거형 생성 * [#13] refactor(BaseTimeEntity): 업데이트 시간 관리 필드 활성화 * [#13] feat(Performance): 공연 엔티티 생성 * [#13] feat(ScheduleNumber): 회차 번호 열거형 생성 * [#13] feat(Schedule): 회차 엔티티 생성 * [#13] feat(Booking): 예매 엔티티 생성 * [#13] refactor(ScheduleNumber): 네이밍 수정 * [#14} fix: 스태프, 등장인물, 홍보 엔티티 상속관계 수정 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [#18] feat(Jenkinsfile): 젠킨스 파일 생성 (#19) * [#20] refactor(Jenkinsfile): 젠킨스 파일 Webhook 테스트용 커밋 (#21) * [#22] feat(Jenkinsfile): Jenkins multibranch 스크립트 작성 (#23) * HOTFIX(Jenkinsfile): Jenkins multibranch 스크립트 수정 * HOTFIX(workflows): 빌드 후 젠킨스 배포가 진행되도록 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * [#24] feat(Jenkinsfile): slack 연동 스크립트 작성 (#25) --------- Co-authored-by: hyerinhwang-sailin * HOTFIX(workflow): 오타 수정 --------- Co-authored-by: hyerinhwang-sailin * [feat] #28 - 비회원 예매 조회 POST API 구현 (#29) * chore(application-dev.yml): dialect 추가 * chore(application-prod.yml): dialect 추가 * [#28] chore(build.gradle): security 의존성 비활성화 - security 일시적으로 비활성화 * [#28] refactor(Booking): 예매 엔티티에 빌더 및 정적팩토리 메서드 추가 * [#28] refactor(ErrorResponse): 정적 팩토리 메서드 네이밍 변환 * [#28] refactor(Schedule): 회차 엔티티에 빌더 및 정적 팩토리 메서드 추가 * [#28] refactor(Performance): 공연 엔티티에 빌더 및 정적 팩토리 메서드 추가 * [#28] refactor(SuccessResponse): 정적 팩토리 메서드 네이밍 변환 * [#28] refactor(GlobalExceptionHandler): INTERNAL_SERVER_ERROR 핸들러 메서드 추가 * [#28] feat(BookingSuccessCode): 예매 성공 메시지를 관리하는 열거형 생성 * [#28] feat(BookingErrorCode): 예매 에러 메시지를 관리하는 열거형 생성 * [#28] feat(BookingRetrieveResponse): 예매 조회 응답 DTO 생성 * [#28] feat(BookingRetrieveRequest): 예매 조회 요청 DTO 생성 * [#28] feat(BookingRepository): 예매 레포지토리 생성 및 비회원 예매 조회 시 예매 내역 가져오는 메서드 구현 * [#28] feat(BookingService): 예매 서비스 레이어 생성 및 비회원 조회 메서드 구현 * [#28] feat(BookingController): 예매 컨트롤러 생성 및 비회원 예매조회 POST API 구현 * [feat] #30 - SwaggerConfig 및 WebConfig 구현 (#31) * [#30] chore(build.gradle): springdoc 의존성 추가 * [#30] feat(SwaggerConfig): SwaggerConfig 추가 * [#30] feat(WebConfig): WebConfig 추가 * HOTFIX(workflows): push 이벤트 시 github action이 빌드 되지 않도록 수정 * HOTFIX(Jenkinsfile): 포트 수정 * [feat] #32 - 티켓 예매 가능 여부 GET API 구현 (#33) * [#32] refactor(BookingController): 메서드명 수정 * [#32] feat(ConflictException): Conflict 409에러 클래스 생성 * [#32] feat(GlobalExceptionHandler): ConflictException 등록 * [#32] feat(TicketAvailabilityRequest): TicketAvailabilityRequest DTO 생성 * [#32] feat(TicketAvailabilityResponse): TicketAvailabilityResponse DTO 생성 * [#32] feat(ScheduleSuccessCode): ScheduleSuccessCode 열거형 생성 * [#32] feat(ScheduleErrorCode): ScheduleErrorCode 열거형 생성 * [#32] feat(ScheduleRepository): ScheduleRepository 생성 * [#32] feat(ScheduleService): ScheduleService 생성 및 회차별 티켓 구매 가능 여부 판단 메서드 구현 * [#32] feat(ScheduleController): 회차별 티켓 수량 조회 GET API 구현 * [feat] #17 - 카카오 소셜 로그인 API 구현 (#36) * [#17] feat(build.gradle): jwt, security, open feign, Redis 의존성 추가 * [#17] feat(BeatApplication): OpenFeign 관련 어노테이션 추가 * [#17] feat(RedisConfig): redis 설정 * [#17] feat: redis 활용 jwt 토큰 생성 로직 구현 * [#17] feat(SecurityConfig): security 설정 * [#17] refactor: Member, Users 엔티티 수정 및 관련 enum 추가 * [#17] feat: Member, Users 도메인 관련 인증 로직 구현 * [#17] feat(MemberController): Member 관련 API 엔드포인트 구현 * [#17] feat: Security 관련 인증 객체 구현 * [#17] feat: 소셜로그인 로직 구현 * [#17] fix: 소셜로그인 오류 해결 * [#17] refactor: 코드리뷰 반영 * [#17] refactor: 코드리뷰 반영 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [feat] #34 - 비회원 예매 POST API 구현 (#35) * [#34] feat(Users): 빌더 및 정적 팩토리 메서드 추가 * [#34] feat(Entity): 엔티티 id 필드 수정 * [#34] refactor(application.yml): dialect 추가 * [#34] refactor(ScheduleService): 네이밍 수정 * [#34] refactor(BookingSuccessCode): 비회원 예매 조회 성공 메시지 추가 * [#34] feat(GuestBookingRequest): 비회원 예매 요청 DTO 생성 * [#34] feat(GuestBookingResponse): 비회원 예매 응답 DTO 생성 * [#34] refactor(BookingRetrieveService): 네이밍 수정 * [#34] feat(PerformanceRepository): 공연 레포지토리 생성 * [#34] feat(UserRepository): 유저 레포지토리 생성 * [#34] refactor(BookingRepository): 비회원 예매 시 네가지 정보가 모두 일치 해야만 다른 유저로 판단하는 메서드 구현 * [#34] refactor(ScheduleRepository): 비관적 락 적용 * [#34] feat(GuestBookingService): 비관적 락을 이용해 비회원 예매 로직 구현 * [#34] feat(BookingController): 비회원 예매 POST API 구현 * [#34] test(GuestBookingServiceConcurrencyTest): 동시성 테스트 구현 * [Refactor] #37 - 카카오 로그인 API response 수정 (#39) * [#37] rename: 빈 충돌 해결 위해 UserRepository를 UsersRepository로 rename * [#37] refactor: login response에서 refreshToken을 cookie에 담아주도록 변경 * [#37] fix: dao, repository 충돌 해결 * [#37] refactor: 어노테이션 수정 * [feat] #40 - 소개 관련 공연 정보 조회 GET API 구현 (#41) * [#40] feat: repository 추가 * [#40] feat: 공연 관련 성공, 실패 메세지 추가 * [#40] feat(PerformanceDetailResponse): 공연 상세페이지 조회 응답 dto * [#40] feat(PerformanceService): 공연 상세페이지 조회 로직 구현 * [#40] feat(PerformanceController): 공연 상세페이지 엔드포인트 구현 * [#40] feat(SecurityConfig): auth whitelist update * [#40] refactor: dto 분리 및 rename * [feat] #42 - 예매 관련 공연 정보 GET API 구현 (#43) * [#42] feat: 예매 관련 정보 조회 dto 생성 * [#42] feat: 예매 관련 정보 조회 성공 메세지 추가 * [#42] feat(ScheduleService): 잔여티켓계산, 예매가능여부확인, 예매가능여부 update 메소드 구현 * [#42] feat(PerformanceService): 예매관련공연정보의 response 생성하는 로직 구현 * [#42] feat(PerformanceController): 예매관련공연정보 조회 엔드포인트 구현 * [#42] feat(SecurityConfig): auth_whitelist update * [#42] refactor(ScheduleService): findTicketAvailability에서 getAvailableTicketCount method 사용하도록 수정 * [feat] #38 - 회원 예매 POST API 구현 (#45) * [#38] fix(Cast): Join 하는 부분 수정 및 빌더와 정적 팩토리 메서드 패턴 도입 * [#38] chore(application.yml): 계층 수정 * [#38] feat: 커스텀 어노테이션 생성 * [#38] fix(UserRepository): 중복된 클래스 삭제 * [#38] feat(UserErrorCode): 유저의 에러 메시지를 관리하는 열거형 생성 * [#38] refactor(MemberErrorCode): message 목적에 맞게 변경 * [#38] refactor(BookingSuccessCode): 회원 예매 성공 메시지 추가 * [#38] feat: 커스텀 어노테이션 생성 커밋에 누락된 클래스 추가 * [#38] refactor(GuestBookingService): schedule에서 바로 get 하도록 수정 * [#38] test(GuestBookingServiceConcurrencyTest): import문 경로명 변경 * [#38] refactor(MemberService): @Transactional 어노테이션이 필요한 메서드에 해당 옵션 추가 * [#38] feat(MemberBookingRequest): 회원 예매 요청 DTO 생성 * [#38] feat(MemberBookingResponse): 회원 예매 응답 DTO 생성 * [#38] refactor(MemberController): refreshToken을 쿠키에 넣어주도록 구현 * [#38] feat(MemberBookingService): 회원 예매 서비스 로직 구현 * [#38] feat(BookingController): 회원 예매 요청 POST API 구현 * [#38] fix: 빌드 안되는 부분 수정 * [#38] remove(MemberBookingService): 사용하지 않는 import문 삭제 * [#38] refactor: 커스텀 어노테이션 이름 수정 * [feat] #44 - 홈페이지 공연 및 홍보 조회 GET API 구현 (#47) * [#44] refactor: 코드리뷰 반영 * [#44] fix(Promotion): 기본키 이름 수정, performanceId 연관관계 설정 * [#44] feat: Repository 및 관련 로직 추가 * [#44] feat: errorcode, successcode 추가 * [#44] feat: 홈페이지 request, response dto 생성 * [#44] feat(ScheduleService): dueDate 관련 로직 구현 * [#44] feat(PerformanceService): 홈페이지 정렬 및 response 생성 로직 구현 * [#44] chore: import문 추가 * [feat] #46 - 회원 예매 조회 GET API 구현 (#48) * [#46] remove(BookingRetrieveRequest): 클래스 삭제 * [#46] refactor(BookingSuccessCode): 회원 예매 조회 성공 메시지 추가 * [#46] refactor(GuestBookingRetrieveResponse): 클래스 명 변경 * [#46] refactor(GuestBookingRetrieveRequest): 안쓰는 코드 주석처리 * [#46] refactor(GuestBookingRetrieveService): 클래스 명 수정으로 인한 리팩토링 * [#46] refactor(SecurityConfig): 토큰 사용하지 않는 api 경로 추가하기 * [#46] refactor(BookingRepository): userId로 예약 정보를 가져오는 JPA 메서드 구현 * [#46] feat(MemberBookingRetrieveResponse): 회원 조회 응답 DTO 생성 * [#46] feat(MemberBookingRetrieveService): 회원 예매 조회 로직을 담당하는 서비스 레이어 구현 * [#46] feat(BookingController): 회원 예매 조회 GET API 구현 * [feat] #49 - 예매자 관리 API 구현 (#51) * [#49] feat: 티켓 관련 success, error code 추가 * [#49] feat(Booking): 입금여부 setter 메소드 추가 * [#49] feat(TicketRetrieveResponse): 예매자 확인 response dto 생성 * [#49] feat(Ticket): 예매자 확인용 티켓 정보 response dto 생성 * [#49] feat(TicketRepository): 예매자 필터링용 메소드 생성 * [#49] feat: 예매자 입금정보 수정 request dto 생성 * [#49] feat(TicketDeleteRequest): 예매자 삭제 request dto 생성 * [#49] feat(TicketService): 예매자 관리 관련 로직 구현 * [#49] feat(TicketController): 예매자 관리 엔드포인트 구현 * [#49] chore: swagger annotation 추가 * HOTFIX(SecurityConfig): WHITELIST 경로명 수정 * [fix] #52 - auth whitelist 수정 (#53) * [#52]fix(SecurityConfig): auth_whitelist 수정 * [#52]fix(SecurityConfig): auth_whitelist 수정 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [feat] #54 - 등록한 공연 목록 조회 GET API 구현 (#55) * [#54] feat(PerformanceSuccessCode): success code 추가 * [#54] feat: 회원이 등록한 공연목록 조회 dto 생성 * [#54] feat(PerformanceService): 회원이 등록한 공연목록 조회 로직 구현 * [#54] feat(PerformanceRepository): 회원이 등록한 공연목록 조회 관련 메소드 추가 * [#54] feat(PerformanceController): 회원이 등록한 공연목록 조회 엔드포인트 생성 * [#54] fix(TicketService): exception error 수정 * [#54] chore(application.yml): yml 수정 * [fix] #58 - dev-ci.yml, prod-ci.yml 환경변수 추가 (#59) * [#58] fix(dev-CI.yml): Dev 서버 CI 워크플로우 수정 * [#58] fix(prod-CI.yml): Prod 서버 CI 워크플로우 수정 * [refactor] #61 - Performance Entity field 추가 (#62) * [#61] refactor(Performance): bankHolder 필드 추가 * [#61] chore(BookingController): swagger annotation 수정 * [feat] #63 - healthCheckController 생성 (#64) * [#63] remove(UsersRepository): 중복 클래스 삭제 * [#63] feat(HealthCheckController): healthcheck 컨트롤러 생성 * [feat] #63 - health check URL 화이트리스트에 등록 (#67) * [#63] remove(UsersRepository): 중복 클래스 삭제 * [#63] feat(HealthCheckController): healthcheck 컨트롤러 생성 * [#63] feat(SecurityConfig): healthcheck url white_list에 등록 * [fix] #57 - entity 연관관계 설정 SecurityConfig 수정 (#65) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [fix] #57 - security 관련 에러 대응 (#71) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 * [#57] fix(JwtAuthenticationFilter): 에러 로직 수정 * fix(SecurityConfig): webSecurityCustomizer 로직 추가 * [fix] #73 - security 수정 (#74) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 * [#57] fix(JwtAuthenticationFilter): 에러 로직 수정 * fix(SecurityConfig): webSecurityCustomizer 로직 추가 * [#57] fix:security 수정 * [#76] fix(SecurityConfig): Base64 인코딩을 하도록 변경 (#77) * [fix] #76 - 누락된 코드 추가 (#79) * [#76] fix(SecurityConfig): Base64 인코딩을 하도록 변경 * [#76] chore(SecurityConfig): 누락된 import문 추가 * [#76] chore(JwtTokenProvider): 누락된 코드 추가 * [#81] fix(JwtTokenProvider): jwtsecret을 인코딩하고 디코딩을 하도록 수정 (#82) * [#85] chore(application.yml): 환경변수 설정 (#86) * [chore] #88 - 레디스 환경변수 추가 (#89) * [#88] chore(dev-CI.yml): dev서버 레디스 환경변수 설정 추가 * [#88] chore(prod-CI.yml): prod 서버 레디스 환경변수 설정 추가 * [deploy] merge to main (#90) * [deploy] merge to main (#83) * [deploy] merge to develop (#27) * [deploy] merge to main (#26) * [#2] chore(.gitignore): .gradle, .idea 파일 삭제 (#3) * [refactor] #4 - 도메인형 디렉터리 구조 변경 및 local, dev, prod 운영 환경 분리 (#5) * [#4] fix: 클래스 첫글자 대문자로 수정 * [#4] remove: enum 삭제 * [#4] feat(BaseSuccessCode): 성공 상태 관리를 위한 인터페이스 생성 * [#4] feat(BaseErrorCode): 에러 상태 관리를 위한 인터페이스 생성 * [#4] refactor: global 패키지로 이동 * [#4] refactor: 서버 운영 환경 분리 * [feat] #6 - dev, prod Dockerfile 분리 및 github Action CI workflow 구현 (#7) * [#6] feat(Dockerfile): prod용 도커 파일 구현 * [#6] feat(Dockerfile-dev): dev용 도커 파일 구현 * [#6] feat(dev-CI.yml): dev용 CI workflow 구현 * [#6] feat(prod-CI.yml): prod용 CI workflow 구현 * [#6] chore(.gitignore): gradle-wrapper.jar 파일은 레포지토리에 포함되도록 설정 * [#6] fix(gradle-wrapper.jar): .gitignore로 누락된 파일 추가 * [#6] chore(build.grade): plain jar 생성 방지 * [#9] docs(README.md): 서비스 소개 README v1 작성 (#10) * [#11] docs(README.md): 리드미 업데이트 (#12) * [feat] #13 - 유저, 예매, 공연, 회차 엔티티 생성 (#15) * [#13] feat(Users): 사용자 엔티티 생성 * [#13] feat(Genre): 장르 열거형 생성 * [#13] feat(BankName): 은행명 열거형 생성 * [#13] refactor(BaseTimeEntity): 업데이트 시간 관리 필드 활성화 * [#13] feat(Performance): 공연 엔티티 생성 * [#13] feat(ScheduleNumber): 회차 번호 열거형 생성 * [#13] feat(Schedule): 회차 엔티티 생성 * [#13] feat(Booking): 예매 엔티티 생성 * [#13] refactor(ScheduleNumber): 네이밍 수정 * [feat] #14 - 회원, 홍보, 등장인물, 스태프 엔티티 생성 (#16) * [#14] feat(Member): 멤버 엔티티 생성 * [#14] feat(Promotion): 홍보 엔티티 생성 * [#14] feat(Cast): 등장인물 엔티티 생성 * [#14] feat(Staff): 스태프 엔티티 생성 * [feat] #13 - 유저, 예매, 공연, 회차 엔티티 생성 (#15) * [#13] feat(Users): 사용자 엔티티 생성 * [#13] feat(Genre): 장르 열거형 생성 * [#13] feat(BankName): 은행명 열거형 생성 * [#13] refactor(BaseTimeEntity): 업데이트 시간 관리 필드 활성화 * [#13] feat(Performance): 공연 엔티티 생성 * [#13] feat(ScheduleNumber): 회차 번호 열거형 생성 * [#13] feat(Schedule): 회차 엔티티 생성 * [#13] feat(Booking): 예매 엔티티 생성 * [#13] refactor(ScheduleNumber): 네이밍 수정 * [#14} fix: 스태프, 등장인물, 홍보 엔티티 상속관계 수정 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [#18] feat(Jenkinsfile): 젠킨스 파일 생성 (#19) * [#20] refactor(Jenkinsfile): 젠킨스 파일 Webhook 테스트용 커밋 (#21) * [#22] feat(Jenkinsfile): Jenkins multibranch 스크립트 작성 (#23) * HOTFIX(Jenkinsfile): Jenkins multibranch 스크립트 수정 * HOTFIX(workflows): 빌드 후 젠킨스 배포가 진행되도록 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * [#24] feat(Jenkinsfile): slack 연동 스크립트 작성 (#25) --------- Co-authored-by: hyerinhwang-sailin * HOTFIX(workflow): 오타 수정 --------- Co-authored-by: hyerinhwang-sailin * [feat] #28 - 비회원 예매 조회 POST API 구현 (#29) * chore(application-dev.yml): dialect 추가 * chore(application-prod.yml): dialect 추가 * [#28] chore(build.gradle): security 의존성 비활성화 - security 일시적으로 비활성화 * [#28] refactor(Booking): 예매 엔티티에 빌더 및 정적팩토리 메서드 추가 * [#28] refactor(ErrorResponse): 정적 팩토리 메서드 네이밍 변환 * [#28] refactor(Schedule): 회차 엔티티에 빌더 및 정적 팩토리 메서드 추가 * [#28] refactor(Performance): 공연 엔티티에 빌더 및 정적 팩토리 메서드 추가 * [#28] refactor(SuccessResponse): 정적 팩토리 메서드 네이밍 변환 * [#28] refactor(GlobalExceptionHandler): INTERNAL_SERVER_ERROR 핸들러 메서드 추가 * [#28] feat(BookingSuccessCode): 예매 성공 메시지를 관리하는 열거형 생성 * [#28] feat(BookingErrorCode): 예매 에러 메시지를 관리하는 열거형 생성 * [#28] feat(BookingRetrieveResponse): 예매 조회 응답 DTO 생성 * [#28] feat(BookingRetrieveRequest): 예매 조회 요청 DTO 생성 * [#28] feat(BookingRepository): 예매 레포지토리 생성 및 비회원 예매 조회 시 예매 내역 가져오는 메서드 구현 * [#28] feat(BookingService): 예매 서비스 레이어 생성 및 비회원 조회 메서드 구현 * [#28] feat(BookingController): 예매 컨트롤러 생성 및 비회원 예매조회 POST API 구현 * [feat] #30 - SwaggerConfig 및 WebConfig 구현 (#31) * [#30] chore(build.gradle): springdoc 의존성 추가 * [#30] feat(SwaggerConfig): SwaggerConfig 추가 * [#30] feat(WebConfig): WebConfig 추가 * HOTFIX(workflows): push 이벤트 시 github action이 빌드 되지 않도록 수정 * HOTFIX(Jenkinsfile): 포트 수정 * [feat] #32 - 티켓 예매 가능 여부 GET API 구현 (#33) * [#32] refactor(BookingController): 메서드명 수정 * [#32] feat(ConflictException): Conflict 409에러 클래스 생성 * [#32] feat(GlobalExceptionHandler): ConflictException 등록 * [#32] feat(TicketAvailabilityRequest): TicketAvailabilityRequest DTO 생성 * [#32] feat(TicketAvailabilityResponse): TicketAvailabilityResponse DTO 생성 * [#32] feat(ScheduleSuccessCode): ScheduleSuccessCode 열거형 생성 * [#32] feat(ScheduleErrorCode): ScheduleErrorCode 열거형 생성 * [#32] feat(ScheduleRepository): ScheduleRepository 생성 * [#32] feat(ScheduleService): ScheduleService 생성 및 회차별 티켓 구매 가능 여부 판단 메서드 구현 * [#32] feat(ScheduleController): 회차별 티켓 수량 조회 GET API 구현 * [feat] #17 - 카카오 소셜 로그인 API 구현 (#36) * [#17] feat(build.gradle): jwt, security, open feign, Redis 의존성 추가 * [#17] feat(BeatApplication): OpenFeign 관련 어노테이션 추가 * [#17] feat(RedisConfig): redis 설정 * [#17] feat: redis 활용 jwt 토큰 생성 로직 구현 * [#17] feat(SecurityConfig): security 설정 * [#17] refactor: Member, Users 엔티티 수정 및 관련 enum 추가 * [#17] feat: Member, Users 도메인 관련 인증 로직 구현 * [#17] feat(MemberController): Member 관련 API 엔드포인트 구현 * [#17] feat: Security 관련 인증 객체 구현 * [#17] feat: 소셜로그인 로직 구현 * [#17] fix: 소셜로그인 오류 해결 * [#17] refactor: 코드리뷰 반영 * [#17] refactor: 코드리뷰 반영 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [feat] #34 - 비회원 예매 POST API 구현 (#35) * [#34] feat(Users): 빌더 및 정적 팩토리 메서드 추가 * [#34] feat(Entity): 엔티티 id 필드 수정 * [#34] refactor(application.yml): dialect 추가 * [#34] refactor(ScheduleService): 네이밍 수정 * [#34] refactor(BookingSuccessCode): 비회원 예매 조회 성공 메시지 추가 * [#34] feat(GuestBookingRequest): 비회원 예매 요청 DTO 생성 * [#34] feat(GuestBookingResponse): 비회원 예매 응답 DTO 생성 * [#34] refactor(BookingRetrieveService): 네이밍 수정 * [#34] feat(PerformanceRepository): 공연 레포지토리 생성 * [#34] feat(UserRepository): 유저 레포지토리 생성 * [#34] refactor(BookingRepository): 비회원 예매 시 네가지 정보가 모두 일치 해야만 다른 유저로 판단하는 메서드 구현 * [#34] refactor(ScheduleRepository): 비관적 락 적용 * [#34] feat(GuestBookingService): 비관적 락을 이용해 비회원 예매 로직 구현 * [#34] feat(BookingController): 비회원 예매 POST API 구현 * [#34] test(GuestBookingServiceConcurrencyTest): 동시성 테스트 구현 * [Refactor] #37 - 카카오 로그인 API response 수정 (#39) * [#37] rename: 빈 충돌 해결 위해 UserRepository를 UsersRepository로 rename * [#37] refactor: login response에서 refreshToken을 cookie에 담아주도록 변경 * [#37] fix: dao, repository 충돌 해결 * [#37] refactor: 어노테이션 수정 * [feat] #40 - 소개 관련 공연 정보 조회 GET API 구현 (#41) * [#40] feat: repository 추가 * [#40] feat: 공연 관련 성공, 실패 메세지 추가 * [#40] feat(PerformanceDetailResponse): 공연 상세페이지 조회 응답 dto * [#40] feat(PerformanceService): 공연 상세페이지 조회 로직 구현 * [#40] feat(PerformanceController): 공연 상세페이지 엔드포인트 구현 * [#40] feat(SecurityConfig): auth whitelist update * [#40] refactor: dto 분리 및 rename * [feat] #42 - 예매 관련 공연 정보 GET API 구현 (#43) * [#42] feat: 예매 관련 정보 조회 dto 생성 * [#42] feat: 예매 관련 정보 조회 성공 메세지 추가 * [#42] feat(ScheduleService): 잔여티켓계산, 예매가능여부확인, 예매가능여부 update 메소드 구현 * [#42] feat(PerformanceService): 예매관련공연정보의 response 생성하는 로직 구현 * [#42] feat(PerformanceController): 예매관련공연정보 조회 엔드포인트 구현 * [#42] feat(SecurityConfig): auth_whitelist update * [#42] refactor(ScheduleService): findTicketAvailability에서 getAvailableTicketCount method 사용하도록 수정 * [feat] #38 - 회원 예매 POST API 구현 (#45) * [#38] fix(Cast): Join 하는 부분 수정 및 빌더와 정적 팩토리 메서드 패턴 도입 * [#38] chore(application.yml): 계층 수정 * [#38] feat: 커스텀 어노테이션 생성 * [#38] fix(UserRepository): 중복된 클래스 삭제 * [#38] feat(UserErrorCode): 유저의 에러 메시지를 관리하는 열거형 생성 * [#38] refactor(MemberErrorCode): message 목적에 맞게 변경 * [#38] refactor(BookingSuccessCode): 회원 예매 성공 메시지 추가 * [#38] feat: 커스텀 어노테이션 생성 커밋에 누락된 클래스 추가 * [#38] refactor(GuestBookingService): schedule에서 바로 get 하도록 수정 * [#38] test(GuestBookingServiceConcurrencyTest): import문 경로명 변경 * [#38] refactor(MemberService): @Transactional 어노테이션이 필요한 메서드에 해당 옵션 추가 * [#38] feat(MemberBookingRequest): 회원 예매 요청 DTO 생성 * [#38] feat(MemberBookingResponse): 회원 예매 응답 DTO 생성 * [#38] refactor(MemberController): refreshToken을 쿠키에 넣어주도록 구현 * [#38] feat(MemberBookingService): 회원 예매 서비스 로직 구현 * [#38] feat(BookingController): 회원 예매 요청 POST API 구현 * [#38] fix: 빌드 안되는 부분 수정 * [#38] remove(MemberBookingService): 사용하지 않는 import문 삭제 * [#38] refactor: 커스텀 어노테이션 이름 수정 * [feat] #44 - 홈페이지 공연 및 홍보 조회 GET API 구현 (#47) * [#44] refactor: 코드리뷰 반영 * [#44] fix(Promotion): 기본키 이름 수정, performanceId 연관관계 설정 * [#44] feat: Repository 및 관련 로직 추가 * [#44] feat: errorcode, successcode 추가 * [#44] feat: 홈페이지 request, response dto 생성 * [#44] feat(ScheduleService): dueDate 관련 로직 구현 * [#44] feat(PerformanceService): 홈페이지 정렬 및 response 생성 로직 구현 * [#44] chore: import문 추가 * [feat] #46 - 회원 예매 조회 GET API 구현 (#48) * [#46] remove(BookingRetrieveRequest): 클래스 삭제 * [#46] refactor(BookingSuccessCode): 회원 예매 조회 성공 메시지 추가 * [#46] refactor(GuestBookingRetrieveResponse): 클래스 명 변경 * [#46] refactor(GuestBookingRetrieveRequest): 안쓰는 코드 주석처리 * [#46] refactor(GuestBookingRetrieveService): 클래스 명 수정으로 인한 리팩토링 * [#46] refactor(SecurityConfig): 토큰 사용하지 않는 api 경로 추가하기 * [#46] refactor(BookingRepository): userId로 예약 정보를 가져오는 JPA 메서드 구현 * [#46] feat(MemberBookingRetrieveResponse): 회원 조회 응답 DTO 생성 * [#46] feat(MemberBookingRetrieveService): 회원 예매 조회 로직을 담당하는 서비스 레이어 구현 * [#46] feat(BookingController): 회원 예매 조회 GET API 구현 * [feat] #49 - 예매자 관리 API 구현 (#51) * [#49] feat: 티켓 관련 success, error code 추가 * [#49] feat(Booking): 입금여부 setter 메소드 추가 * [#49] feat(TicketRetrieveResponse): 예매자 확인 response dto 생성 * [#49] feat(Ticket): 예매자 확인용 티켓 정보 response dto 생성 * [#49] feat(TicketRepository): 예매자 필터링용 메소드 생성 * [#49] feat: 예매자 입금정보 수정 request dto 생성 * [#49] feat(TicketDeleteRequest): 예매자 삭제 request dto 생성 * [#49] feat(TicketService): 예매자 관리 관련 로직 구현 * [#49] feat(TicketController): 예매자 관리 엔드포인트 구현 * [#49] chore: swagger annotation 추가 * HOTFIX(SecurityConfig): WHITELIST 경로명 수정 * [fix] #52 - auth whitelist 수정 (#53) * [#52]fix(SecurityConfig): auth_whitelist 수정 * [#52]fix(SecurityConfig): auth_whitelist 수정 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [feat] #54 - 등록한 공연 목록 조회 GET API 구현 (#55) * [#54] feat(PerformanceSuccessCode): success code 추가 * [#54] feat: 회원이 등록한 공연목록 조회 dto 생성 * [#54] feat(PerformanceService): 회원이 등록한 공연목록 조회 로직 구현 * [#54] feat(PerformanceRepository): 회원이 등록한 공연목록 조회 관련 메소드 추가 * [#54] feat(PerformanceController): 회원이 등록한 공연목록 조회 엔드포인트 생성 * [#54] fix(TicketService): exception error 수정 * [#54] chore(application.yml): yml 수정 * [fix] #58 - dev-ci.yml, prod-ci.yml 환경변수 추가 (#59) * [#58] fix(dev-CI.yml): Dev 서버 CI 워크플로우 수정 * [#58] fix(prod-CI.yml): Prod 서버 CI 워크플로우 수정 * [refactor] #61 - Performance Entity field 추가 (#62) * [#61] refactor(Performance): bankHolder 필드 추가 * [#61] chore(BookingController): swagger annotation 수정 * [feat] #63 - healthCheckController 생성 (#64) * [#63] remove(UsersRepository): 중복 클래스 삭제 * [#63] feat(HealthCheckController): healthcheck 컨트롤러 생성 * [feat] #63 - health check URL 화이트리스트에 등록 (#67) * [#63] remove(UsersRepository): 중복 클래스 삭제 * [#63] feat(HealthCheckController): healthcheck 컨트롤러 생성 * [#63] feat(SecurityConfig): healthcheck url white_list에 등록 * [fix] #57 - entity 연관관계 설정 SecurityConfig 수정 (#65) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [fix] #57 - security 관련 에러 대응 (#71) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 * [#57] fix(JwtAuthenticationFilter): 에러 로직 수정 * fix(SecurityConfig): webSecurityCustomizer 로직 추가 * [fix] #73 - security 수정 (#74) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 * [#57] fix(JwtAuthenticationFilter): 에러 로직 수정 * fix(SecurityConfig): webSecurityCustomizer 로직 추가 * [#57] fix:security 수정 * [#76] fix(SecurityConfig): Base64 인코딩을 하도록 변경 (#77) * [fix] #76 - 누락된 코드 추가 (#79) * [#76] fix(SecurityConfig): Base64 인코딩을 하도록 변경 * [#76] chore(SecurityConfig): 누락된 import문 추가 * [#76] chore(JwtTokenProvider): 누락된 코드 추가 * [#81] fix(JwtTokenProvider): jwtsecret을 인코딩하고 디코딩을 하도록 수정 (#82) --------- Co-authored-by: hyerinhwang-sailin * [deploy] merge to main (#87) * [deploy] merge to develop (#27) * [deploy] merge to main (#26) * [#2] chore(.gitignore): .gradle, .idea 파일 삭제 (#3) * [refactor] #4 - 도메인형 디렉터리 구조 변경 및 local, dev, prod 운영 환경 분리 (#5) * [#4] fix: 클래스 첫글자 대문자로 수정 * [#4] remove: enum 삭제 * [#4] feat(BaseSuccessCode): 성공 상태 관리를 위한 인터페이스 생성 * [#4] feat(BaseErrorCode): 에러 상태 관리를 위한 인터페이스 생성 * [#4] refactor: global 패키지로 이동 * [#4] refactor: 서버 운영 환경 분리 * [feat] #6 - dev, prod Dockerfile 분리 및 github Action CI workflow 구현 (#7) * [#6] feat(Dockerfile): prod용 도커 파일 구현 * [#6] feat(Dockerfile-dev): dev용 도커 파일 구현 * [#6] feat(dev-CI.yml): dev용 CI workflow 구현 * [#6] feat(prod-CI.yml): prod용 CI workflow 구현 * [#6] chore(.gitignore): gradle-wrapper.jar 파일은 레포지토리에 포함되도록 설정 * [#6] fix(gradle-wrapper.jar): .gitignore로 누락된 파일 추가 * [#6] chore(build.grade): plain jar 생성 방지 * [#9] docs(README.md): 서비스 소개 README v1 작성 (#10) * [#11] docs(README.md): 리드미 업데이트 (#12) * [feat] #13 - 유저, 예매, 공연, 회차 엔티티 생성 (#15) * [#13] feat(Users): 사용자 엔티티 생성 * [#13] feat(Genre): 장르 열거형 생성 * [#13] feat(BankName): 은행명 열거형 생성 * [#13] refactor(BaseTimeEntity): 업데이트 시간 관리 필드 활성화 * [#13] feat(Performance): 공연 엔티티 생성 * [#13] feat(ScheduleNumber): 회차 번호 열거형 생성 * [#13] feat(Schedule): 회차 엔티티 생성 * [#13] feat(Booking): 예매 엔티티 생성 * [#13] refactor(ScheduleNumber): 네이밍 수정 * [feat] #14 - 회원, 홍보, 등장인물, 스태프 엔티티 생성 (#16) * [#14] feat(Member): 멤버 엔티티 생성 * [#14] feat(Promotion): 홍보 엔티티 생성 * [#14] feat(Cast): 등장인물 엔티티 생성 * [#14] feat(Staff): 스태프 엔티티 생성 * [feat] #13 - 유저, 예매, 공연, 회차 엔티티 생성 (#15) * [#13] feat(Users): 사용자 엔티티 생성 * [#13] feat(Genre): 장르 열거형 생성 * [#13] feat(BankName): 은행명 열거형 생성 * [#13] refactor(BaseTimeEntity): 업데이트 시간 관리 필드 활성화 * [#13] feat(Performance): 공연 엔티티 생성 * [#13] feat(ScheduleNumber): 회차 번호 열거형 생성 * [#13] feat(Schedule): 회차 엔티티 생성 * [#13] feat(Booking): 예매 엔티티 생성 * [#13] refactor(ScheduleNumber): 네이밍 수정 * [#14} fix: 스태프, 등장인물, 홍보 엔티티 상속관계 수정 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [#18] feat(Jenkinsfile): 젠킨스 파일 생성 (#19) * [#20] refactor(Jenkinsfile): 젠킨스 파일 Webhook 테스트용 커밋 (#21) * [#22] feat(Jenkinsfile): Jenkins multibranch 스크립트 작성 (#23) * HOTFIX(Jenkinsfile): Jenkins multibranch 스크립트 수정 * HOTFIX(workflows): 빌드 후 젠킨스 배포가 진행되도록 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * [#24] feat(Jenkinsfile): slack 연동 스크립트 작성 (#25) --------- Co-authored-by: hyerinhwang-sailin * HOTFIX(workflow): 오타 수정 --------- Co-authored-by: hyerinhwang-sailin * [feat] #28 - 비회원 예매 조회 POST API 구현 (#29) * chore(application-dev.yml): dialect 추가 * chore(application-prod.yml): dialect 추가 * [#28] chore(build.gradle): security 의존성 비활성화 - security 일시적으로 비활성화 * [#28] refactor(Booking): 예매 엔티티에 빌더 및 정적팩토리 메서드 추가 * [#28] refactor(ErrorResponse): 정적 팩토리 메서드 네이밍 변환 * [#28] refactor(Schedule): 회차 엔티티에 빌더 및 정적 팩토리 메서드 추가 * [#28] refactor(Performance): 공연 엔티티에 빌더 및 정적 팩토리 메서드 추가 * [#28] refactor(SuccessResponse): 정적 팩토리 메서드 네이밍 변환 * [#28] refactor(GlobalExceptionHandler): INTERNAL_SERVER_ERROR 핸들러 메서드 추가 * [#28] feat(BookingSuccessCode): 예매 성공 메시지를 관리하는 열거형 생성 * [#28] feat(BookingErrorCode): 예매 에러 메시지를 관리하는 열거형 생성 * [#28] feat(BookingRetrieveResponse): 예매 조회 응답 DTO 생성 * [#28] feat(BookingRetrieveRequest): 예매 조회 요청 DTO 생성 * [#28] feat(BookingRepository): 예매 레포지토리 생성 및 비회원 예매 조회 시 예매 내역 가져오는 메서드 구현 * [#28] feat(BookingService): 예매 서비스 레이어 생성 및 비회원 조회 메서드 구현 * [#28] feat(BookingController): 예매 컨트롤러 생성 및 비회원 예매조회 POST API 구현 * [feat] #30 - SwaggerConfig 및 WebConfig 구현 (#31) * [#30] chore(build.gradle): springdoc 의존성 추가 * [#30] feat(SwaggerConfig): SwaggerConfig 추가 * [#30] feat(WebConfig): WebConfig 추가 * HOTFIX(workflows): push 이벤트 시 github action이 빌드 되지 않도록 수정 * HOTFIX(Jenkinsfile): 포트 수정 * [feat] #32 - 티켓 예매 가능 여부 GET API 구현 (#33) * [#32] refactor(BookingController): 메서드명 수정 * [#32] feat(ConflictException): Conflict 409에러 클래스 생성 * [#32] feat(GlobalExceptionHandler): ConflictException 등록 * [#32] feat(TicketAvailabilityRequest): TicketAvailabilityRequest DTO 생성 * [#32] feat(TicketAvailabilityResponse): TicketAvailabilityResponse DTO 생성 * [#32] feat(ScheduleSuccessCode): ScheduleSuccessCode 열거형 생성 * [#32] feat(ScheduleErrorCode): ScheduleErrorCode 열거형 생성 * [#32] feat(ScheduleRepository): ScheduleRepository 생성 * [#32] feat(ScheduleService): ScheduleService 생성 및 회차별 티켓 구매 가능 여부 판단 메서드 구현 * [#32] feat(ScheduleController): 회차별 티켓 수량 조회 GET API 구현 * [feat] #17 - 카카오 소셜 로그인 API 구현 (#36) * [#17] feat(build.gradle): jwt, security, open feign, Redis 의존성 추가 * [#17] feat(BeatApplication): OpenFeign 관련 어노테이션 추가 * [#17] feat(RedisConfig): redis 설정 * [#17] feat: redis 활용 jwt 토큰 생성 로직 구현 * [#17] feat(SecurityConfig): security 설정 * [#17] refactor: Member, Users 엔티티 수정 및 관련 enum 추가 * [#17] feat: Member, Users 도메인 관련 인증 로직 구현 * [#17] feat(MemberController): Member 관련 API 엔드포인트 구현 * [#17] feat: Security 관련 인증 객체 구현 * [#17] feat: 소셜로그인 로직 구현 * [#17] fix: 소셜로그인 오류 해결 * [#17] refactor: 코드리뷰 반영 * [#17] refactor: 코드리뷰 반영 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [feat] #34 - 비회원 예매 POST API 구현 (#35) * [#34] feat(Users): 빌더 및 정적 팩토리 메서드 추가 * [#34] feat(Entity): 엔티티 id 필드 수정 * [#34] refactor(application.yml): dialect 추가 * [#34] refactor(ScheduleService): 네이밍 수정 * [#34] refactor(BookingSuccessCode): 비회원 예매 조회 성공 메시지 추가 * [#34] feat(GuestBookingRequest): 비회원 예매 요청 DTO 생성 * [#34] feat(GuestBookingResponse): 비회원 예매 응답 DTO 생성 * [#34] refactor(BookingRetrieveService): 네이밍 수정 * [#34] feat(PerformanceRepository): 공연 레포지토리 생성 * [#34] feat(UserRepository): 유저 레포지토리 생성 * [#34] refactor(BookingRepository): 비회원 예매 시 네가지 정보가 모두 일치 해야만 다른 유저로 판단하는 메서드 구현 * [#34] refactor(ScheduleRepository): 비관적 락 적용 * [#34] feat(GuestBookingService): 비관적 락을 이용해 비회원 예매 로직 구현 * [#34] feat(BookingController): 비회원 예매 POST API 구현 * [#34] test(GuestBookingServiceConcurrencyTest): 동시성 테스트 구현 * [Refactor] #37 - 카카오 로그인 API response 수정 (#39) * [#37] rename: 빈 충돌 해결 위해 UserRepository를 UsersRepository로 rename * [#37] refactor: login response에서 refreshToken을 cookie에 담아주도록 변경 * [#37] fix: dao, repository 충돌 해결 * [#37] refactor: 어노테이션 수정 * [feat] #40 - 소개 관련 공연 정보 조회 GET API 구현 (#41) * [#40] feat: repository 추가 * [#40] feat: 공연 관련 성공, 실패 메세지 추가 * [#40] feat(PerformanceDetailResponse): 공연 상세페이지 조회 응답 dto * [#40] feat(PerformanceService): 공연 상세페이지 조회 로직 구현 * [#40] feat(PerformanceController): 공연 상세페이지 엔드포인트 구현 * [#40] feat(SecurityConfig): auth whitelist update * [#40] refactor: dto 분리 및 rename * [feat] #42 - 예매 관련 공연 정보 GET API 구현 (#43) * [#42] feat: 예매 관련 정보 조회 dto 생성 * [#42] feat: 예매 관련 정보 조회 성공 메세지 추가 * [#42] feat(ScheduleService): 잔여티켓계산, 예매가능여부확인, 예매가능여부 update 메소드 구현 * [#42] feat(PerformanceService): 예매관련공연정보의 response 생성하는 로직 구현 * [#42] feat(PerformanceController): 예매관련공연정보 조회 엔드포인트 구현 * [#42] feat(SecurityConfig): auth_whitelist update * [#42] refactor(ScheduleService): findTicketAvailability에서 getAvailableTicketCount method 사용하도록 수정 * [feat] #38 - 회원 예매 POST API 구현 (#45) * [#38] fix(Cast): Join 하는 부분 수정 및 빌더와 정적 팩토리 메서드 패턴 도입 * [#38] chore(application.yml): 계층 수정 * [#38] feat: 커스텀 어노테이션 생성 * [#38] fix(UserRepository): 중복된 클래스 삭제 * [#38] feat(UserErrorCode): 유저의 에러 메시지를 관리하는 열거형 생성 * [#38] refactor(MemberErrorCode): message 목적에 맞게 변경 * [#38] refactor(BookingSuccessCode): 회원 예매 성공 메시지 추가 * [#38] feat: 커스텀 어노테이션 생성 커밋에 누락된 클래스 추가 * [#38] refactor(GuestBookingService): schedule에서 바로 get 하도록 수정 * [#38] test(GuestBookingServiceConcurrencyTest): import문 경로명 변경 * [#38] refactor(MemberService): @Transactional 어노테이션이 필요한 메서드에 해당 옵션 추가 * [#38] feat(MemberBookingRequest): 회원 예매 요청 DTO 생성 * [#38] feat(MemberBookingResponse): 회원 예매 응답 DTO 생성 * [#38] refactor(MemberController): refreshToken을 쿠키에 넣어주도록 구현 * [#38] feat(MemberBookingService): 회원 예매 서비스 로직 구현 * [#38] feat(BookingController): 회원 예매 요청 POST API 구현 * [#38] fix: 빌드 안되는 부분 수정 * [#38] remove(MemberBookingService): 사용하지 않는 import문 삭제 * [#38] refactor: 커스텀 어노테이션 이름 수정 * [feat] #44 - 홈페이지 공연 및 홍보 조회 GET API 구현 (#47) * [#44] refactor: 코드리뷰 반영 * [#44] fix(Promotion): 기본키 이름 수정, performanceId 연관관계 설정 * [#44] feat: Repository 및 관련 로직 추가 * [#44] feat: errorcode, successcode 추가 * [#44] feat: 홈페이지 request, response dto 생성 * [#44] feat(ScheduleService): dueDate 관련 로직 구현 * [#44] feat(PerformanceService): 홈페이지 정렬 및 response 생성 로직 구현 * [#44] chore: import문 추가 * [feat] #46 - 회원 예매 조회 GET API 구현 (#48) * [#46] remove(BookingRetrieveRequest): 클래스 삭제 * [#46] refactor(BookingSuccessCode): 회원 예매 조회 성공 메시지 추가 * [#46] refactor(GuestBookingRetrieveResponse): 클래스 명 변경 * [#46] refactor(GuestBookingRetrieveRequest): 안쓰는 코드 주석처리 * [#46] refactor(GuestBookingRetrieveService): 클래스 명 수정으로 인한 리팩토링 * [#46] refactor(SecurityConfig): 토큰 사용하지 않는 api 경로 추가하기 * [#46] refactor(BookingRepository): userId로 예약 정보를 가져오는 JPA 메서드 구현 * [#46] feat(MemberBookingRetrieveResponse): 회원 조회 응답 DTO 생성 * [#46] feat(MemberBookingRetrieveService): 회원 예매 조회 로직을 담당하는 서비스 레이어 구현 * [#46] feat(BookingController): 회원 예매 조회 GET API 구현 * [feat] #49 - 예매자 관리 API 구현 (#51) * [#49] feat: 티켓 관련 success, error code 추가 * [#49] feat(Booking): 입금여부 setter 메소드 추가 * [#49] feat(TicketRetrieveResponse): 예매자 확인 response dto 생성 * [#49] feat(Ticket): 예매자 확인용 티켓 정보 response dto 생성 * [#49] feat(TicketRepository): 예매자 필터링용 메소드 생성 * [#49] feat: 예매자 입금정보 수정 request dto 생성 * [#49] feat(TicketDeleteRequest): 예매자 삭제 request dto 생성 * [#49] feat(TicketService): 예매자 관리 관련 로직 구현 * [#49] feat(TicketController): 예매자 관리 엔드포인트 구현 * [#49] chore: swagger annotation 추가 * HOTFIX(SecurityConfig): WHITELIST 경로명 수정 * [fix] #52 - auth whitelist 수정 (#53) * [#52]fix(SecurityConfig): auth_whitelist 수정 * [#52]fix(SecurityConfig): auth_whitelist 수정 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [feat] #54 - 등록한 공연 목록 조회 GET API 구현 (#55) * [#54] feat(PerformanceSuccessCode): success code 추가 * [#54] feat: 회원이 등록한 공연목록 조회 dto 생성 * [#54] feat(PerformanceService): 회원이 등록한 공연목록 조회 로직 구현 * [#54] feat(PerformanceRepository): 회원이 등록한 공연목록 조회 관련 메소드 추가 * [#54] feat(PerformanceController): 회원이 등록한 공연목록 조회 엔드포인트 생성 * [#54] fix(TicketService): exception error 수정 * [#54] chore(application.yml): yml 수정 * [fix] #58 - dev-ci.yml, prod-ci.yml 환경변수 추가 (#59) * [#58] fix(dev-CI.yml): Dev 서버 CI 워크플로우 수정 * [#58] fix(prod-CI.yml): Prod 서버 CI 워크플로우 수정 * [refactor] #61 - Performance Entity field 추가 (#62) * [#61] refactor(Performance): bankHolder 필드 추가 * [#61] chore(BookingController): swagger annotation 수정 * [feat] #63 - healthCheckController 생성 (#64) * [#63] remove(UsersRepository): 중복 클래스 삭제 * [#63] feat(HealthCheckController): healthcheck 컨트롤러 생성 * [feat] #63 - health check URL 화이트리스트에 등록 (#67) * [#63] remove(UsersRepository): 중복 클래스 삭제 * [#63] feat(HealthCheckController): healthcheck 컨트롤러 생성 * [#63] feat(SecurityConfig): healthcheck url white_list에 등록 * [fix] #57 - entity 연관관계 설정 SecurityConfig 수정 (#65) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [fix] #57 - security 관련 에러 대응 (#71) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 * [#57] fix(JwtAuthenticationFilter): 에러 로직 수정 * fix(SecurityConfig): webSecurityCustomizer 로직 추가 * [fix] #73 - security 수정 (#74) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 * [#57] fix(JwtAuthenticationFilter): 에러 로직 수정 * fix(SecurityConfig): webSecurityCustomizer 로직 추가 * [#57] fix:security 수정 * [#76] fix(SecurityConfig): Base64 인코딩을 하도록 변경 (#77) * [fix] #76 - 누락된 코드 추가 (#79) * [#76] fix(SecurityConfig): Base64 인코딩을 하도록 변경 * [#76] chore(SecurityConfig): 누락된 import문 추가 * [#76] chore(JwtTokenProvider): 누락된 코드 추가 * [#81] fix(JwtTokenProvider): jwtsecret을 인코딩하고 디코딩을 하도록 수정 (#82) * [#85] chore(application.yml): 환경변수 설정 (#86) --------- Co-authored-by: hyerinhwang-sailin --------- Co-authored-by: hyerinhwang-sailin * Revert "[deploy] merge to main (#90)" (#91) This reverts commit f519b0c82a2f01d4374eb045b9e90c6303381e50. * [fix] #93 - 누락된 어노테이션 및 누락된 경로명 추가 (#94) * [#93] fix(HealthCheckController): 누락된 어노테이션 추가 * [#93] refactor(SecurityConfig): 누락된 경로명 추가 * [bug] #84 - actuator/health 의존성 및 설정 추가 (#96) * [#84] chore(build.gradle): 의존성 추가 * [#84] chore: health/actuator yml 설정 추가 * [#84] chore: redis yml 설정 추가 * [#84] chore: yml 수정 (#99) * [bug] #101 - yml, s3 수정 (#102) * [#101] chore: yml 수정 * [#101] feat: s3 추가 * HOTIFX: prod ci-yml 수정 --------- Co-authored-by: hyerinhwang-sailin * Update application-prod.yml --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [feat] #50 - 공연 생성 POST API 생성 (#108) * [#50] chore: 폴더 이동 * [#50] feat: request DTO 생성 * [#50] feat: response DTO 생성 * [#50] refactor(PerformanceSuccessCode): 공연 생성 성공 메시지 추가 * [#50] chore(PerformanceService): import문 변 * [#50] chore(HomeController): import문 변 * [#50] feat(PerformanceCreateService): 공연 생성 서비스 로직 생성 * [#50] feat(PerformanceController): 공연 생성 POST API 생성 * [feat] #111 - 웹발신 구현 (#114) * [#111] feat(build.gradle): coolsms 의존성 추가 * [#111] feat: yml에 coolsms 환경변수 세팅 * [#111] feat(CoolSmsService): coolsms 웹발신 로직 구현 * [#111] feat(TicketService): coolsms 웹발신 트리거 로직 구현 * [#111] comment(TicketController): swagger 설명 수정 * [feat] #110 - 공연 수정 PUT API 구현 (#112) * [#110] feat: request DTO 생성 * [#110] feat: response DTO 생성 * [#110] feat(CastErrorCode): 등장인물 열거형 생성 * [#110] feat(StaffErrorCode): 스태프 에러 열거형 생성 * [#110] refactor(PerformanceSuccessCode): 공연 성공 수정 메시지 추가 * [#110] refactor(Performance): 업데이트 메서드 추가 * [#110] refactor(Schedule): 업데이트 메서드 추가 * [#110] refactor(Staff): 업데이트 메서드 추가 * [#110] test(GuestBookingServiceConcurrencyTest): 변경된 필드 추가 * [#110] refactor(Cast): 업데이트 메서드 추 * [#110] feat(PerformanceUpdateService): 공연 수정 서비스 로직 구현 * [#110] feat(PerformanceController): 공연 수정 PUT API 추가 * [feat] #113 - 공연 삭제 DELETE API 구현 (#116) * [#113] refactor(BookingRepository): 해당 공연을 예매한 사람이 있는지 판단하는 메서드 구현 * [#113] refactor(PerformanceErrorCode): 예매자가 한명 있을 경우 공연 취소가 안될때 보여주는 에러메시지 추가 * [#113] refactor(PerformanceSuccessCode): 공연이 삭제되었을 때 보여주는 성공 메시지 추가 * [#113] refactor(PerformanceManagementService): 멤버 아이디를 인자로 받도록 수정 및 공연 삭제 메서드 구현 * [#113] feat(PerformanceController): 공연 삭제 DELETE API 구현 * Update README.md * HOTFIX: 코드 수정 * [#119] refactor: response에 필요 필드 추가 (#120) * [feat] #117 - 공연 수정 페이지 정보 조회 GET API 구현 (#121) * [#117] remove(PerformanceCreateService): 사용하지 않는 클래스 삭제 * [#117] refactor(CastRepository): DB에 등록된 등장인물을 모두 가져오는 메서드 구현 * [#117] refactor(ScheduleRepository): DB에 등록된 회차를 모두 가져오는 메서드 구현 * [#117] refactor(StaffRepository): DB에 등록된 스태프를 모두 가져오는 메서드 구현 * [#117] refactor(PerformanceSuccessCode): 공연 수정 페이지 조회 성공 메시지 추가 * [#117] refactor(PerformanceEditResponse): 공연 수정 페이지 조회 응답 DTO 생성 * [#117] refactor(PerformanceService): 수정 페이지의 정보를 조회하는 서비스 로직 구현 * [#117] feat(PerformanceController): 공연 수정 페이지의 정보를 조회하는 GET API 구현 * [#123] fix(PerformanceController): 중복 코드 제거 (#124) * [#128] fix: 누락된 환경 변수 주입 및 수정 (#129) * [feat] #127 - presigned-url로 포스터 이미지, 등장인물 이미지 리스트, 스태프 이미지 리스트를 반환하도록 구현 (#131) * [#127] feat(SecurityConfig): 화이트 리스트에 presigned-url 추가 * [#127] refactor(FileService): 포스터 이미지, 등장인물 이미지 리스트, 스태프 이미지 리스트의 presigned-url을 반환하는 메서드 구현 * [#127] feat(FileController): presigned-url GET API 구현 * [refactor] #133 - presigned URL의 만료 시간 늘리기 (#134) * [#133] remove: 삭제된 클래스 커밋 * [#133] refactor(FileService): URL의 유효시간 2시간으로 설정 * [#135] refactor(SwaggerConfig): SwaggerConfig 리팩토링 (#136) * [#128] fix(BankName): bankname enum 추가 (#139) * [refactor] #126 - 프론트 요청 필드 반영 (#140) * [#126] refactor(BookingController): 회원 예매 조회시 성공 메시지 변경 * [#126] refactor(BookingRepository): 쿼리문 추가 * [#126] refactor(GuestBookingRequest): enum으로 리턴값 변경 * [#126] refactor(GuestBookingResponse): enum으로 리턴값 변경 * [#126] chore(GuestBookingRetrieveRequest): 주석 삭제 * [#126] refactor(GuestBookingRetrieveResponse): performanceId, posterImage, totalPaymentAmount 추가 * [#126] refactor(MemberBookingRetrieveResponse): performanceId, posterImage, totalPaymentAmount 추가 * [#126] refactor(MemberBookingRetrieveService): response에 추가된 필드 리턴하도록 리팩토링 * [#126] refactor(GuestBookingRetrieveService): response에 추가된 필드 리턴하도록 리팩토링 * [#126] refactor(GuestBookingService): displayName이 아닌 열거형으로 리턴하도록 수정 * [#126] refactor(MemberBookingRequest): 정적 팩토리 메서드 삭제 * [#126] refactor(MemberBookingResponse): enum으로 리턴하도록 수정 * [#126] refactor(MemberBookingService): enum으로 리턴하도록 수정 * [#126] test(GuestBookingServiceConcurrencyTest): DTO에서 수정된 리턴 방법 반영 * [#142] refactor(FileController): castImages, staffImages의 파라미터 value를 주지 않아도 presigned-url을 발급하도록 변경 (#143) --------- Co-authored-by: hyerinhwang-sailin --- .../global/external/s3/controller/FileController.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/beat/global/external/s3/controller/FileController.java b/src/main/java/com/beat/global/external/s3/controller/FileController.java index b3d5b851..eec8614e 100644 --- a/src/main/java/com/beat/global/external/s3/controller/FileController.java +++ b/src/main/java/com/beat/global/external/s3/controller/FileController.java @@ -23,9 +23,14 @@ public class FileController { @GetMapping("/presigned-url") public ResponseEntity>> getPresignedUrls( @RequestParam String posterImage, - @RequestParam List castImages, - @RequestParam List staffImages) { - + @RequestParam(required = false) List castImages, + @RequestParam(required = false) List staffImages) { + if (castImages == null) { + castImages = List.of(); + } + if (staffImages == null) { + staffImages = List.of(); + } Map> response = fileService.getPresignedUrls(posterImage, castImages, staffImages); return ResponseEntity.ok(response); } From b017b00a8bbea8a1fc45b2a8df7ffddee1ca039b Mon Sep 17 00:00:00 2001 From: hyerinhwang-sailin Date: Fri, 19 Jul 2024 14:24:30 +0900 Subject: [PATCH 2/6] [deploy] merge to main (#146) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * [deploy] merge to develop (#27) * [deploy] merge to main (#26) * [#2] chore(.gitignore): .gradle, .idea 파일 삭제 (#3) * [refactor] #4 - 도메인형 디렉터리 구조 변경 및 local, dev, prod 운영 환경 분리 (#5) * [#4] fix: 클래스 첫글자 대문자로 수정 * [#4] remove: enum 삭제 * [#4] feat(BaseSuccessCode): 성공 상태 관리를 위한 인터페이스 생성 * [#4] feat(BaseErrorCode): 에러 상태 관리를 위한 인터페이스 생성 * [#4] refactor: global 패키지로 이동 * [#4] refactor: 서버 운영 환경 분리 * [feat] #6 - dev, prod Dockerfile 분리 및 github Action CI workflow 구현 (#7) * [#6] feat(Dockerfile): prod용 도커 파일 구현 * [#6] feat(Dockerfile-dev): dev용 도커 파일 구현 * [#6] feat(dev-CI.yml): dev용 CI workflow 구현 * [#6] feat(prod-CI.yml): prod용 CI workflow 구현 * [#6] chore(.gitignore): gradle-wrapper.jar 파일은 레포지토리에 포함되도록 설정 * [#6] fix(gradle-wrapper.jar): .gitignore로 누락된 파일 추가 * [#6] chore(build.grade): plain jar 생성 방지 * [#9] docs(README.md): 서비스 소개 README v1 작성 (#10) * [#11] docs(README.md): 리드미 업데이트 (#12) * [feat] #13 - 유저, 예매, 공연, 회차 엔티티 생성 (#15) * [#13] feat(Users): 사용자 엔티티 생성 * [#13] feat(Genre): 장르 열거형 생성 * [#13] feat(BankName): 은행명 열거형 생성 * [#13] refactor(BaseTimeEntity): 업데이트 시간 관리 필드 활성화 * [#13] feat(Performance): 공연 엔티티 생성 * [#13] feat(ScheduleNumber): 회차 번호 열거형 생성 * [#13] feat(Schedule): 회차 엔티티 생성 * [#13] feat(Booking): 예매 엔티티 생성 * [#13] refactor(ScheduleNumber): 네이밍 수정 * [feat] #14 - 회원, 홍보, 등장인물, 스태프 엔티티 생성 (#16) * [#14] feat(Member): 멤버 엔티티 생성 * [#14] feat(Promotion): 홍보 엔티티 생성 * [#14] feat(Cast): 등장인물 엔티티 생성 * [#14] feat(Staff): 스태프 엔티티 생성 * [feat] #13 - 유저, 예매, 공연, 회차 엔티티 생성 (#15) * [#13] feat(Users): 사용자 엔티티 생성 * [#13] feat(Genre): 장르 열거형 생성 * [#13] feat(BankName): 은행명 열거형 생성 * [#13] refactor(BaseTimeEntity): 업데이트 시간 관리 필드 활성화 * [#13] feat(Performance): 공연 엔티티 생성 * [#13] feat(ScheduleNumber): 회차 번호 열거형 생성 * [#13] feat(Schedule): 회차 엔티티 생성 * [#13] feat(Booking): 예매 엔티티 생성 * [#13] refactor(ScheduleNumber): 네이밍 수정 * [#14} fix: 스태프, 등장인물, 홍보 엔티티 상속관계 수정 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [#18] feat(Jenkinsfile): 젠킨스 파일 생성 (#19) * [#20] refactor(Jenkinsfile): 젠킨스 파일 Webhook 테스트용 커밋 (#21) * [#22] feat(Jenkinsfile): Jenkins multibranch 스크립트 작성 (#23) * HOTFIX(Jenkinsfile): Jenkins multibranch 스크립트 수정 * HOTFIX(workflows): 빌드 후 젠킨스 배포가 진행되도록 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * [#24] feat(Jenkinsfile): slack 연동 스크립트 작성 (#25) --------- Co-authored-by: hyerinhwang-sailin * HOTFIX(workflow): 오타 수정 --------- Co-authored-by: hyerinhwang-sailin * [feat] #28 - 비회원 예매 조회 POST API 구현 (#29) * chore(application-dev.yml): dialect 추가 * chore(application-prod.yml): dialect 추가 * [#28] chore(build.gradle): security 의존성 비활성화 - security 일시적으로 비활성화 * [#28] refactor(Booking): 예매 엔티티에 빌더 및 정적팩토리 메서드 추가 * [#28] refactor(ErrorResponse): 정적 팩토리 메서드 네이밍 변환 * [#28] refactor(Schedule): 회차 엔티티에 빌더 및 정적 팩토리 메서드 추가 * [#28] refactor(Performance): 공연 엔티티에 빌더 및 정적 팩토리 메서드 추가 * [#28] refactor(SuccessResponse): 정적 팩토리 메서드 네이밍 변환 * [#28] refactor(GlobalExceptionHandler): INTERNAL_SERVER_ERROR 핸들러 메서드 추가 * [#28] feat(BookingSuccessCode): 예매 성공 메시지를 관리하는 열거형 생성 * [#28] feat(BookingErrorCode): 예매 에러 메시지를 관리하는 열거형 생성 * [#28] feat(BookingRetrieveResponse): 예매 조회 응답 DTO 생성 * [#28] feat(BookingRetrieveRequest): 예매 조회 요청 DTO 생성 * [#28] feat(BookingRepository): 예매 레포지토리 생성 및 비회원 예매 조회 시 예매 내역 가져오는 메서드 구현 * [#28] feat(BookingService): 예매 서비스 레이어 생성 및 비회원 조회 메서드 구현 * [#28] feat(BookingController): 예매 컨트롤러 생성 및 비회원 예매조회 POST API 구현 * [feat] #30 - SwaggerConfig 및 WebConfig 구현 (#31) * [#30] chore(build.gradle): springdoc 의존성 추가 * [#30] feat(SwaggerConfig): SwaggerConfig 추가 * [#30] feat(WebConfig): WebConfig 추가 * HOTFIX(workflows): push 이벤트 시 github action이 빌드 되지 않도록 수정 * HOTFIX(Jenkinsfile): 포트 수정 * [feat] #32 - 티켓 예매 가능 여부 GET API 구현 (#33) * [#32] refactor(BookingController): 메서드명 수정 * [#32] feat(ConflictException): Conflict 409에러 클래스 생성 * [#32] feat(GlobalExceptionHandler): ConflictException 등록 * [#32] feat(TicketAvailabilityRequest): TicketAvailabilityRequest DTO 생성 * [#32] feat(TicketAvailabilityResponse): TicketAvailabilityResponse DTO 생성 * [#32] feat(ScheduleSuccessCode): ScheduleSuccessCode 열거형 생성 * [#32] feat(ScheduleErrorCode): ScheduleErrorCode 열거형 생성 * [#32] feat(ScheduleRepository): ScheduleRepository 생성 * [#32] feat(ScheduleService): ScheduleService 생성 및 회차별 티켓 구매 가능 여부 판단 메서드 구현 * [#32] feat(ScheduleController): 회차별 티켓 수량 조회 GET API 구현 * [feat] #17 - 카카오 소셜 로그인 API 구현 (#36) * [#17] feat(build.gradle): jwt, security, open feign, Redis 의존성 추가 * [#17] feat(BeatApplication): OpenFeign 관련 어노테이션 추가 * [#17] feat(RedisConfig): redis 설정 * [#17] feat: redis 활용 jwt 토큰 생성 로직 구현 * [#17] feat(SecurityConfig): security 설정 * [#17] refactor: Member, Users 엔티티 수정 및 관련 enum 추가 * [#17] feat: Member, Users 도메인 관련 인증 로직 구현 * [#17] feat(MemberController): Member 관련 API 엔드포인트 구현 * [#17] feat: Security 관련 인증 객체 구현 * [#17] feat: 소셜로그인 로직 구현 * [#17] fix: 소셜로그인 오류 해결 * [#17] refactor: 코드리뷰 반영 * [#17] refactor: 코드리뷰 반영 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [feat] #34 - 비회원 예매 POST API 구현 (#35) * [#34] feat(Users): 빌더 및 정적 팩토리 메서드 추가 * [#34] feat(Entity): 엔티티 id 필드 수정 * [#34] refactor(application.yml): dialect 추가 * [#34] refactor(ScheduleService): 네이밍 수정 * [#34] refactor(BookingSuccessCode): 비회원 예매 조회 성공 메시지 추가 * [#34] feat(GuestBookingRequest): 비회원 예매 요청 DTO 생성 * [#34] feat(GuestBookingResponse): 비회원 예매 응답 DTO 생성 * [#34] refactor(BookingRetrieveService): 네이밍 수정 * [#34] feat(PerformanceRepository): 공연 레포지토리 생성 * [#34] feat(UserRepository): 유저 레포지토리 생성 * [#34] refactor(BookingRepository): 비회원 예매 시 네가지 정보가 모두 일치 해야만 다른 유저로 판단하는 메서드 구현 * [#34] refactor(ScheduleRepository): 비관적 락 적용 * [#34] feat(GuestBookingService): 비관적 락을 이용해 비회원 예매 로직 구현 * [#34] feat(BookingController): 비회원 예매 POST API 구현 * [#34] test(GuestBookingServiceConcurrencyTest): 동시성 테스트 구현 * [Refactor] #37 - 카카오 로그인 API response 수정 (#39) * [#37] rename: 빈 충돌 해결 위해 UserRepository를 UsersRepository로 rename * [#37] refactor: login response에서 refreshToken을 cookie에 담아주도록 변경 * [#37] fix: dao, repository 충돌 해결 * [#37] refactor: 어노테이션 수정 * [feat] #40 - 소개 관련 공연 정보 조회 GET API 구현 (#41) * [#40] feat: repository 추가 * [#40] feat: 공연 관련 성공, 실패 메세지 추가 * [#40] feat(PerformanceDetailResponse): 공연 상세페이지 조회 응답 dto * [#40] feat(PerformanceService): 공연 상세페이지 조회 로직 구현 * [#40] feat(PerformanceController): 공연 상세페이지 엔드포인트 구현 * [#40] feat(SecurityConfig): auth whitelist update * [#40] refactor: dto 분리 및 rename * [feat] #42 - 예매 관련 공연 정보 GET API 구현 (#43) * [#42] feat: 예매 관련 정보 조회 dto 생성 * [#42] feat: 예매 관련 정보 조회 성공 메세지 추가 * [#42] feat(ScheduleService): 잔여티켓계산, 예매가능여부확인, 예매가능여부 update 메소드 구현 * [#42] feat(PerformanceService): 예매관련공연정보의 response 생성하는 로직 구현 * [#42] feat(PerformanceController): 예매관련공연정보 조회 엔드포인트 구현 * [#42] feat(SecurityConfig): auth_whitelist update * [#42] refactor(ScheduleService): findTicketAvailability에서 getAvailableTicketCount method 사용하도록 수정 * [feat] #38 - 회원 예매 POST API 구현 (#45) * [#38] fix(Cast): Join 하는 부분 수정 및 빌더와 정적 팩토리 메서드 패턴 도입 * [#38] chore(application.yml): 계층 수정 * [#38] feat: 커스텀 어노테이션 생성 * [#38] fix(UserRepository): 중복된 클래스 삭제 * [#38] feat(UserErrorCode): 유저의 에러 메시지를 관리하는 열거형 생성 * [#38] refactor(MemberErrorCode): message 목적에 맞게 변경 * [#38] refactor(BookingSuccessCode): 회원 예매 성공 메시지 추가 * [#38] feat: 커스텀 어노테이션 생성 커밋에 누락된 클래스 추가 * [#38] refactor(GuestBookingService): schedule에서 바로 get 하도록 수정 * [#38] test(GuestBookingServiceConcurrencyTest): import문 경로명 변경 * [#38] refactor(MemberService): @Transactional 어노테이션이 필요한 메서드에 해당 옵션 추가 * [#38] feat(MemberBookingRequest): 회원 예매 요청 DTO 생성 * [#38] feat(MemberBookingResponse): 회원 예매 응답 DTO 생성 * [#38] refactor(MemberController): refreshToken을 쿠키에 넣어주도록 구현 * [#38] feat(MemberBookingService): 회원 예매 서비스 로직 구현 * [#38] feat(BookingController): 회원 예매 요청 POST API 구현 * [#38] fix: 빌드 안되는 부분 수정 * [#38] remove(MemberBookingService): 사용하지 않는 import문 삭제 * [#38] refactor: 커스텀 어노테이션 이름 수정 * [feat] #44 - 홈페이지 공연 및 홍보 조회 GET API 구현 (#47) * [#44] refactor: 코드리뷰 반영 * [#44] fix(Promotion): 기본키 이름 수정, performanceId 연관관계 설정 * [#44] feat: Repository 및 관련 로직 추가 * [#44] feat: errorcode, successcode 추가 * [#44] feat: 홈페이지 request, response dto 생성 * [#44] feat(ScheduleService): dueDate 관련 로직 구현 * [#44] feat(PerformanceService): 홈페이지 정렬 및 response 생성 로직 구현 * [#44] chore: import문 추가 * [feat] #46 - 회원 예매 조회 GET API 구현 (#48) * [#46] remove(BookingRetrieveRequest): 클래스 삭제 * [#46] refactor(BookingSuccessCode): 회원 예매 조회 성공 메시지 추가 * [#46] refactor(GuestBookingRetrieveResponse): 클래스 명 변경 * [#46] refactor(GuestBookingRetrieveRequest): 안쓰는 코드 주석처리 * [#46] refactor(GuestBookingRetrieveService): 클래스 명 수정으로 인한 리팩토링 * [#46] refactor(SecurityConfig): 토큰 사용하지 않는 api 경로 추가하기 * [#46] refactor(BookingRepository): userId로 예약 정보를 가져오는 JPA 메서드 구현 * [#46] feat(MemberBookingRetrieveResponse): 회원 조회 응답 DTO 생성 * [#46] feat(MemberBookingRetrieveService): 회원 예매 조회 로직을 담당하는 서비스 레이어 구현 * [#46] feat(BookingController): 회원 예매 조회 GET API 구현 * [feat] #49 - 예매자 관리 API 구현 (#51) * [#49] feat: 티켓 관련 success, error code 추가 * [#49] feat(Booking): 입금여부 setter 메소드 추가 * [#49] feat(TicketRetrieveResponse): 예매자 확인 response dto 생성 * [#49] feat(Ticket): 예매자 확인용 티켓 정보 response dto 생성 * [#49] feat(TicketRepository): 예매자 필터링용 메소드 생성 * [#49] feat: 예매자 입금정보 수정 request dto 생성 * [#49] feat(TicketDeleteRequest): 예매자 삭제 request dto 생성 * [#49] feat(TicketService): 예매자 관리 관련 로직 구현 * [#49] feat(TicketController): 예매자 관리 엔드포인트 구현 * [#49] chore: swagger annotation 추가 * HOTFIX(SecurityConfig): WHITELIST 경로명 수정 * [fix] #52 - auth whitelist 수정 (#53) * [#52]fix(SecurityConfig): auth_whitelist 수정 * [#52]fix(SecurityConfig): auth_whitelist 수정 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [feat] #54 - 등록한 공연 목록 조회 GET API 구현 (#55) * [#54] feat(PerformanceSuccessCode): success code 추가 * [#54] feat: 회원이 등록한 공연목록 조회 dto 생성 * [#54] feat(PerformanceService): 회원이 등록한 공연목록 조회 로직 구현 * [#54] feat(PerformanceRepository): 회원이 등록한 공연목록 조회 관련 메소드 추가 * [#54] feat(PerformanceController): 회원이 등록한 공연목록 조회 엔드포인트 생성 * [#54] fix(TicketService): exception error 수정 * [#54] chore(application.yml): yml 수정 * [fix] #58 - dev-ci.yml, prod-ci.yml 환경변수 추가 (#59) * [#58] fix(dev-CI.yml): Dev 서버 CI 워크플로우 수정 * [#58] fix(prod-CI.yml): Prod 서버 CI 워크플로우 수정 * [refactor] #61 - Performance Entity field 추가 (#62) * [#61] refactor(Performance): bankHolder 필드 추가 * [#61] chore(BookingController): swagger annotation 수정 * [feat] #63 - healthCheckController 생성 (#64) * [#63] remove(UsersRepository): 중복 클래스 삭제 * [#63] feat(HealthCheckController): healthcheck 컨트롤러 생성 * [feat] #63 - health check URL 화이트리스트에 등록 (#67) * [#63] remove(UsersRepository): 중복 클래스 삭제 * [#63] feat(HealthCheckController): healthcheck 컨트롤러 생성 * [#63] feat(SecurityConfig): healthcheck url white_list에 등록 * [fix] #57 - entity 연관관계 설정 SecurityConfig 수정 (#65) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [fix] #57 - security 관련 에러 대응 (#71) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 * [#57] fix(JwtAuthenticationFilter): 에러 로직 수정 * fix(SecurityConfig): webSecurityCustomizer 로직 추가 * [fix] #73 - security 수정 (#74) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 * [#57] fix(JwtAuthenticationFilter): 에러 로직 수정 * fix(SecurityConfig): webSecurityCustomizer 로직 추가 * [#57] fix:security 수정 * [#76] fix(SecurityConfig): Base64 인코딩을 하도록 변경 (#77) * [fix] #76 - 누락된 코드 추가 (#79) * [#76] fix(SecurityConfig): Base64 인코딩을 하도록 변경 * [#76] chore(SecurityConfig): 누락된 import문 추가 * [#76] chore(JwtTokenProvider): 누락된 코드 추가 * [#81] fix(JwtTokenProvider): jwtsecret을 인코딩하고 디코딩을 하도록 수정 (#82) * [#85] chore(application.yml): 환경변수 설정 (#86) * [chore] #88 - 레디스 환경변수 추가 (#89) * [#88] chore(dev-CI.yml): dev서버 레디스 환경변수 설정 추가 * [#88] chore(prod-CI.yml): prod 서버 레디스 환경변수 설정 추가 * [deploy] merge to main (#90) * [deploy] merge to main (#83) * [deploy] merge to develop (#27) * [deploy] merge to main (#26) * [#2] chore(.gitignore): .gradle, .idea 파일 삭제 (#3) * [refactor] #4 - 도메인형 디렉터리 구조 변경 및 local, dev, prod 운영 환경 분리 (#5) * [#4] fix: 클래스 첫글자 대문자로 수정 * [#4] remove: enum 삭제 * [#4] feat(BaseSuccessCode): 성공 상태 관리를 위한 인터페이스 생성 * [#4] feat(BaseErrorCode): 에러 상태 관리를 위한 인터페이스 생성 * [#4] refactor: global 패키지로 이동 * [#4] refactor: 서버 운영 환경 분리 * [feat] #6 - dev, prod Dockerfile 분리 및 github Action CI workflow 구현 (#7) * [#6] feat(Dockerfile): prod용 도커 파일 구현 * [#6] feat(Dockerfile-dev): dev용 도커 파일 구현 * [#6] feat(dev-CI.yml): dev용 CI workflow 구현 * [#6] feat(prod-CI.yml): prod용 CI workflow 구현 * [#6] chore(.gitignore): gradle-wrapper.jar 파일은 레포지토리에 포함되도록 설정 * [#6] fix(gradle-wrapper.jar): .gitignore로 누락된 파일 추가 * [#6] chore(build.grade): plain jar 생성 방지 * [#9] docs(README.md): 서비스 소개 README v1 작성 (#10) * [#11] docs(README.md): 리드미 업데이트 (#12) * [feat] #13 - 유저, 예매, 공연, 회차 엔티티 생성 (#15) * [#13] feat(Users): 사용자 엔티티 생성 * [#13] feat(Genre): 장르 열거형 생성 * [#13] feat(BankName): 은행명 열거형 생성 * [#13] refactor(BaseTimeEntity): 업데이트 시간 관리 필드 활성화 * [#13] feat(Performance): 공연 엔티티 생성 * [#13] feat(ScheduleNumber): 회차 번호 열거형 생성 * [#13] feat(Schedule): 회차 엔티티 생성 * [#13] feat(Booking): 예매 엔티티 생성 * [#13] refactor(ScheduleNumber): 네이밍 수정 * [feat] #14 - 회원, 홍보, 등장인물, 스태프 엔티티 생성 (#16) * [#14] feat(Member): 멤버 엔티티 생성 * [#14] feat(Promotion): 홍보 엔티티 생성 * [#14] feat(Cast): 등장인물 엔티티 생성 * [#14] feat(Staff): 스태프 엔티티 생성 * [feat] #13 - 유저, 예매, 공연, 회차 엔티티 생성 (#15) * [#13] feat(Users): 사용자 엔티티 생성 * [#13] feat(Genre): 장르 열거형 생성 * [#13] feat(BankName): 은행명 열거형 생성 * [#13] refactor(BaseTimeEntity): 업데이트 시간 관리 필드 활성화 * [#13] feat(Performance): 공연 엔티티 생성 * [#13] feat(ScheduleNumber): 회차 번호 열거형 생성 * [#13] feat(Schedule): 회차 엔티티 생성 * [#13] feat(Booking): 예매 엔티티 생성 * [#13] refactor(ScheduleNumber): 네이밍 수정 * [#14} fix: 스태프, 등장인물, 홍보 엔티티 상속관계 수정 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [#18] feat(Jenkinsfile): 젠킨스 파일 생성 (#19) * [#20] refactor(Jenkinsfile): 젠킨스 파일 Webhook 테스트용 커밋 (#21) * [#22] feat(Jenkinsfile): Jenkins multibranch 스크립트 작성 (#23) * HOTFIX(Jenkinsfile): Jenkins multibranch 스크립트 수정 * HOTFIX(workflows): 빌드 후 젠킨스 배포가 진행되도록 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * [#24] feat(Jenkinsfile): slack 연동 스크립트 작성 (#25) --------- Co-authored-by: hyerinhwang-sailin * HOTFIX(workflow): 오타 수정 --------- Co-authored-by: hyerinhwang-sailin * [feat] #28 - 비회원 예매 조회 POST API 구현 (#29) * chore(application-dev.yml): dialect 추가 * chore(application-prod.yml): dialect 추가 * [#28] chore(build.gradle): security 의존성 비활성화 - security 일시적으로 비활성화 * [#28] refactor(Booking): 예매 엔티티에 빌더 및 정적팩토리 메서드 추가 * [#28] refactor(ErrorResponse): 정적 팩토리 메서드 네이밍 변환 * [#28] refactor(Schedule): 회차 엔티티에 빌더 및 정적 팩토리 메서드 추가 * [#28] refactor(Performance): 공연 엔티티에 빌더 및 정적 팩토리 메서드 추가 * [#28] refactor(SuccessResponse): 정적 팩토리 메서드 네이밍 변환 * [#28] refactor(GlobalExceptionHandler): INTERNAL_SERVER_ERROR 핸들러 메서드 추가 * [#28] feat(BookingSuccessCode): 예매 성공 메시지를 관리하는 열거형 생성 * [#28] feat(BookingErrorCode): 예매 에러 메시지를 관리하는 열거형 생성 * [#28] feat(BookingRetrieveResponse): 예매 조회 응답 DTO 생성 * [#28] feat(BookingRetrieveRequest): 예매 조회 요청 DTO 생성 * [#28] feat(BookingRepository): 예매 레포지토리 생성 및 비회원 예매 조회 시 예매 내역 가져오는 메서드 구현 * [#28] feat(BookingService): 예매 서비스 레이어 생성 및 비회원 조회 메서드 구현 * [#28] feat(BookingController): 예매 컨트롤러 생성 및 비회원 예매조회 POST API 구현 * [feat] #30 - SwaggerConfig 및 WebConfig 구현 (#31) * [#30] chore(build.gradle): springdoc 의존성 추가 * [#30] feat(SwaggerConfig): SwaggerConfig 추가 * [#30] feat(WebConfig): WebConfig 추가 * HOTFIX(workflows): push 이벤트 시 github action이 빌드 되지 않도록 수정 * HOTFIX(Jenkinsfile): 포트 수정 * [feat] #32 - 티켓 예매 가능 여부 GET API 구현 (#33) * [#32] refactor(BookingController): 메서드명 수정 * [#32] feat(ConflictException): Conflict 409에러 클래스 생성 * [#32] feat(GlobalExceptionHandler): ConflictException 등록 * [#32] feat(TicketAvailabilityRequest): TicketAvailabilityRequest DTO 생성 * [#32] feat(TicketAvailabilityResponse): TicketAvailabilityResponse DTO 생성 * [#32] feat(ScheduleSuccessCode): ScheduleSuccessCode 열거형 생성 * [#32] feat(ScheduleErrorCode): ScheduleErrorCode 열거형 생성 * [#32] feat(ScheduleRepository): ScheduleRepository 생성 * [#32] feat(ScheduleService): ScheduleService 생성 및 회차별 티켓 구매 가능 여부 판단 메서드 구현 * [#32] feat(ScheduleController): 회차별 티켓 수량 조회 GET API 구현 * [feat] #17 - 카카오 소셜 로그인 API 구현 (#36) * [#17] feat(build.gradle): jwt, security, open feign, Redis 의존성 추가 * [#17] feat(BeatApplication): OpenFeign 관련 어노테이션 추가 * [#17] feat(RedisConfig): redis 설정 * [#17] feat: redis 활용 jwt 토큰 생성 로직 구현 * [#17] feat(SecurityConfig): security 설정 * [#17] refactor: Member, Users 엔티티 수정 및 관련 enum 추가 * [#17] feat: Member, Users 도메인 관련 인증 로직 구현 * [#17] feat(MemberController): Member 관련 API 엔드포인트 구현 * [#17] feat: Security 관련 인증 객체 구현 * [#17] feat: 소셜로그인 로직 구현 * [#17] fix: 소셜로그인 오류 해결 * [#17] refactor: 코드리뷰 반영 * [#17] refactor: 코드리뷰 반영 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [feat] #34 - 비회원 예매 POST API 구현 (#35) * [#34] feat(Users): 빌더 및 정적 팩토리 메서드 추가 * [#34] feat(Entity): 엔티티 id 필드 수정 * [#34] refactor(application.yml): dialect 추가 * [#34] refactor(ScheduleService): 네이밍 수정 * [#34] refactor(BookingSuccessCode): 비회원 예매 조회 성공 메시지 추가 * [#34] feat(GuestBookingRequest): 비회원 예매 요청 DTO 생성 * [#34] feat(GuestBookingResponse): 비회원 예매 응답 DTO 생성 * [#34] refactor(BookingRetrieveService): 네이밍 수정 * [#34] feat(PerformanceRepository): 공연 레포지토리 생성 * [#34] feat(UserRepository): 유저 레포지토리 생성 * [#34] refactor(BookingRepository): 비회원 예매 시 네가지 정보가 모두 일치 해야만 다른 유저로 판단하는 메서드 구현 * [#34] refactor(ScheduleRepository): 비관적 락 적용 * [#34] feat(GuestBookingService): 비관적 락을 이용해 비회원 예매 로직 구현 * [#34] feat(BookingController): 비회원 예매 POST API 구현 * [#34] test(GuestBookingServiceConcurrencyTest): 동시성 테스트 구현 * [Refactor] #37 - 카카오 로그인 API response 수정 (#39) * [#37] rename: 빈 충돌 해결 위해 UserRepository를 UsersRepository로 rename * [#37] refactor: login response에서 refreshToken을 cookie에 담아주도록 변경 * [#37] fix: dao, repository 충돌 해결 * [#37] refactor: 어노테이션 수정 * [feat] #40 - 소개 관련 공연 정보 조회 GET API 구현 (#41) * [#40] feat: repository 추가 * [#40] feat: 공연 관련 성공, 실패 메세지 추가 * [#40] feat(PerformanceDetailResponse): 공연 상세페이지 조회 응답 dto * [#40] feat(PerformanceService): 공연 상세페이지 조회 로직 구현 * [#40] feat(PerformanceController): 공연 상세페이지 엔드포인트 구현 * [#40] feat(SecurityConfig): auth whitelist update * [#40] refactor: dto 분리 및 rename * [feat] #42 - 예매 관련 공연 정보 GET API 구현 (#43) * [#42] feat: 예매 관련 정보 조회 dto 생성 * [#42] feat: 예매 관련 정보 조회 성공 메세지 추가 * [#42] feat(ScheduleService): 잔여티켓계산, 예매가능여부확인, 예매가능여부 update 메소드 구현 * [#42] feat(PerformanceService): 예매관련공연정보의 response 생성하는 로직 구현 * [#42] feat(PerformanceController): 예매관련공연정보 조회 엔드포인트 구현 * [#42] feat(SecurityConfig): auth_whitelist update * [#42] refactor(ScheduleService): findTicketAvailability에서 getAvailableTicketCount method 사용하도록 수정 * [feat] #38 - 회원 예매 POST API 구현 (#45) * [#38] fix(Cast): Join 하는 부분 수정 및 빌더와 정적 팩토리 메서드 패턴 도입 * [#38] chore(application.yml): 계층 수정 * [#38] feat: 커스텀 어노테이션 생성 * [#38] fix(UserRepository): 중복된 클래스 삭제 * [#38] feat(UserErrorCode): 유저의 에러 메시지를 관리하는 열거형 생성 * [#38] refactor(MemberErrorCode): message 목적에 맞게 변경 * [#38] refactor(BookingSuccessCode): 회원 예매 성공 메시지 추가 * [#38] feat: 커스텀 어노테이션 생성 커밋에 누락된 클래스 추가 * [#38] refactor(GuestBookingService): schedule에서 바로 get 하도록 수정 * [#38] test(GuestBookingServiceConcurrencyTest): import문 경로명 변경 * [#38] refactor(MemberService): @Transactional 어노테이션이 필요한 메서드에 해당 옵션 추가 * [#38] feat(MemberBookingRequest): 회원 예매 요청 DTO 생성 * [#38] feat(MemberBookingResponse): 회원 예매 응답 DTO 생성 * [#38] refactor(MemberController): refreshToken을 쿠키에 넣어주도록 구현 * [#38] feat(MemberBookingService): 회원 예매 서비스 로직 구현 * [#38] feat(BookingController): 회원 예매 요청 POST API 구현 * [#38] fix: 빌드 안되는 부분 수정 * [#38] remove(MemberBookingService): 사용하지 않는 import문 삭제 * [#38] refactor: 커스텀 어노테이션 이름 수정 * [feat] #44 - 홈페이지 공연 및 홍보 조회 GET API 구현 (#47) * [#44] refactor: 코드리뷰 반영 * [#44] fix(Promotion): 기본키 이름 수정, performanceId 연관관계 설정 * [#44] feat: Repository 및 관련 로직 추가 * [#44] feat: errorcode, successcode 추가 * [#44] feat: 홈페이지 request, response dto 생성 * [#44] feat(ScheduleService): dueDate 관련 로직 구현 * [#44] feat(PerformanceService): 홈페이지 정렬 및 response 생성 로직 구현 * [#44] chore: import문 추가 * [feat] #46 - 회원 예매 조회 GET API 구현 (#48) * [#46] remove(BookingRetrieveRequest): 클래스 삭제 * [#46] refactor(BookingSuccessCode): 회원 예매 조회 성공 메시지 추가 * [#46] refactor(GuestBookingRetrieveResponse): 클래스 명 변경 * [#46] refactor(GuestBookingRetrieveRequest): 안쓰는 코드 주석처리 * [#46] refactor(GuestBookingRetrieveService): 클래스 명 수정으로 인한 리팩토링 * [#46] refactor(SecurityConfig): 토큰 사용하지 않는 api 경로 추가하기 * [#46] refactor(BookingRepository): userId로 예약 정보를 가져오는 JPA 메서드 구현 * [#46] feat(MemberBookingRetrieveResponse): 회원 조회 응답 DTO 생성 * [#46] feat(MemberBookingRetrieveService): 회원 예매 조회 로직을 담당하는 서비스 레이어 구현 * [#46] feat(BookingController): 회원 예매 조회 GET API 구현 * [feat] #49 - 예매자 관리 API 구현 (#51) * [#49] feat: 티켓 관련 success, error code 추가 * [#49] feat(Booking): 입금여부 setter 메소드 추가 * [#49] feat(TicketRetrieveResponse): 예매자 확인 response dto 생성 * [#49] feat(Ticket): 예매자 확인용 티켓 정보 response dto 생성 * [#49] feat(TicketRepository): 예매자 필터링용 메소드 생성 * [#49] feat: 예매자 입금정보 수정 request dto 생성 * [#49] feat(TicketDeleteRequest): 예매자 삭제 request dto 생성 * [#49] feat(TicketService): 예매자 관리 관련 로직 구현 * [#49] feat(TicketController): 예매자 관리 엔드포인트 구현 * [#49] chore: swagger annotation 추가 * HOTFIX(SecurityConfig): WHITELIST 경로명 수정 * [fix] #52 - auth whitelist 수정 (#53) * [#52]fix(SecurityConfig): auth_whitelist 수정 * [#52]fix(SecurityConfig): auth_whitelist 수정 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [feat] #54 - 등록한 공연 목록 조회 GET API 구현 (#55) * [#54] feat(PerformanceSuccessCode): success code 추가 * [#54] feat: 회원이 등록한 공연목록 조회 dto 생성 * [#54] feat(PerformanceService): 회원이 등록한 공연목록 조회 로직 구현 * [#54] feat(PerformanceRepository): 회원이 등록한 공연목록 조회 관련 메소드 추가 * [#54] feat(PerformanceController): 회원이 등록한 공연목록 조회 엔드포인트 생성 * [#54] fix(TicketService): exception error 수정 * [#54] chore(application.yml): yml 수정 * [fix] #58 - dev-ci.yml, prod-ci.yml 환경변수 추가 (#59) * [#58] fix(dev-CI.yml): Dev 서버 CI 워크플로우 수정 * [#58] fix(prod-CI.yml): Prod 서버 CI 워크플로우 수정 * [refactor] #61 - Performance Entity field 추가 (#62) * [#61] refactor(Performance): bankHolder 필드 추가 * [#61] chore(BookingController): swagger annotation 수정 * [feat] #63 - healthCheckController 생성 (#64) * [#63] remove(UsersRepository): 중복 클래스 삭제 * [#63] feat(HealthCheckController): healthcheck 컨트롤러 생성 * [feat] #63 - health check URL 화이트리스트에 등록 (#67) * [#63] remove(UsersRepository): 중복 클래스 삭제 * [#63] feat(HealthCheckController): healthcheck 컨트롤러 생성 * [#63] feat(SecurityConfig): healthcheck url white_list에 등록 * [fix] #57 - entity 연관관계 설정 SecurityConfig 수정 (#65) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [fix] #57 - security 관련 에러 대응 (#71) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 * [#57] fix(JwtAuthenticationFilter): 에러 로직 수정 * fix(SecurityConfig): webSecurityCustomizer 로직 추가 * [fix] #73 - security 수정 (#74) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 * [#57] fix(JwtAuthenticationFilter): 에러 로직 수정 * fix(SecurityConfig): webSecurityCustomizer 로직 추가 * [#57] fix:security 수정 * [#76] fix(SecurityConfig): Base64 인코딩을 하도록 변경 (#77) * [fix] #76 - 누락된 코드 추가 (#79) * [#76] fix(SecurityConfig): Base64 인코딩을 하도록 변경 * [#76] chore(SecurityConfig): 누락된 import문 추가 * [#76] chore(JwtTokenProvider): 누락된 코드 추가 * [#81] fix(JwtTokenProvider): jwtsecret을 인코딩하고 디코딩을 하도록 수정 (#82) --------- Co-authored-by: hyerinhwang-sailin * [deploy] merge to main (#87) * [deploy] merge to develop (#27) * [deploy] merge to main (#26) * [#2] chore(.gitignore): .gradle, .idea 파일 삭제 (#3) * [refactor] #4 - 도메인형 디렉터리 구조 변경 및 local, dev, prod 운영 환경 분리 (#5) * [#4] fix: 클래스 첫글자 대문자로 수정 * [#4] remove: enum 삭제 * [#4] feat(BaseSuccessCode): 성공 상태 관리를 위한 인터페이스 생성 * [#4] feat(BaseErrorCode): 에러 상태 관리를 위한 인터페이스 생성 * [#4] refactor: global 패키지로 이동 * [#4] refactor: 서버 운영 환경 분리 * [feat] #6 - dev, prod Dockerfile 분리 및 github Action CI workflow 구현 (#7) * [#6] feat(Dockerfile): prod용 도커 파일 구현 * [#6] feat(Dockerfile-dev): dev용 도커 파일 구현 * [#6] feat(dev-CI.yml): dev용 CI workflow 구현 * [#6] feat(prod-CI.yml): prod용 CI workflow 구현 * [#6] chore(.gitignore): gradle-wrapper.jar 파일은 레포지토리에 포함되도록 설정 * [#6] fix(gradle-wrapper.jar): .gitignore로 누락된 파일 추가 * [#6] chore(build.grade): plain jar 생성 방지 * [#9] docs(README.md): 서비스 소개 README v1 작성 (#10) * [#11] docs(README.md): 리드미 업데이트 (#12) * [feat] #13 - 유저, 예매, 공연, 회차 엔티티 생성 (#15) * [#13] feat(Users): 사용자 엔티티 생성 * [#13] feat(Genre): 장르 열거형 생성 * [#13] feat(BankName): 은행명 열거형 생성 * [#13] refactor(BaseTimeEntity): 업데이트 시간 관리 필드 활성화 * [#13] feat(Performance): 공연 엔티티 생성 * [#13] feat(ScheduleNumber): 회차 번호 열거형 생성 * [#13] feat(Schedule): 회차 엔티티 생성 * [#13] feat(Booking): 예매 엔티티 생성 * [#13] refactor(ScheduleNumber): 네이밍 수정 * [feat] #14 - 회원, 홍보, 등장인물, 스태프 엔티티 생성 (#16) * [#14] feat(Member): 멤버 엔티티 생성 * [#14] feat(Promotion): 홍보 엔티티 생성 * [#14] feat(Cast): 등장인물 엔티티 생성 * [#14] feat(Staff): 스태프 엔티티 생성 * [feat] #13 - 유저, 예매, 공연, 회차 엔티티 생성 (#15) * [#13] feat(Users): 사용자 엔티티 생성 * [#13] feat(Genre): 장르 열거형 생성 * [#13] feat(BankName): 은행명 열거형 생성 * [#13] refactor(BaseTimeEntity): 업데이트 시간 관리 필드 활성화 * [#13] feat(Performance): 공연 엔티티 생성 * [#13] feat(ScheduleNumber): 회차 번호 열거형 생성 * [#13] feat(Schedule): 회차 엔티티 생성 * [#13] feat(Booking): 예매 엔티티 생성 * [#13] refactor(ScheduleNumber): 네이밍 수정 * [#14} fix: 스태프, 등장인물, 홍보 엔티티 상속관계 수정 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [#18] feat(Jenkinsfile): 젠킨스 파일 생성 (#19) * [#20] refactor(Jenkinsfile): 젠킨스 파일 Webhook 테스트용 커밋 (#21) * [#22] feat(Jenkinsfile): Jenkins multibranch 스크립트 작성 (#23) * HOTFIX(Jenkinsfile): Jenkins multibranch 스크립트 수정 * HOTFIX(workflows): 빌드 후 젠킨스 배포가 진행되도록 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * [#24] feat(Jenkinsfile): slack 연동 스크립트 작성 (#25) --------- Co-authored-by: hyerinhwang-sailin * HOTFIX(workflow): 오타 수정 --------- Co-authored-by: hyerinhwang-sailin * [feat] #28 - 비회원 예매 조회 POST API 구현 (#29) * chore(application-dev.yml): dialect 추가 * chore(application-prod.yml): dialect 추가 * [#28] chore(build.gradle): security 의존성 비활성화 - security 일시적으로 비활성화 * [#28] refactor(Booking): 예매 엔티티에 빌더 및 정적팩토리 메서드 추가 * [#28] refactor(ErrorResponse): 정적 팩토리 메서드 네이밍 변환 * [#28] refactor(Schedule): 회차 엔티티에 빌더 및 정적 팩토리 메서드 추가 * [#28] refactor(Performance): 공연 엔티티에 빌더 및 정적 팩토리 메서드 추가 * [#28] refactor(SuccessResponse): 정적 팩토리 메서드 네이밍 변환 * [#28] refactor(GlobalExceptionHandler): INTERNAL_SERVER_ERROR 핸들러 메서드 추가 * [#28] feat(BookingSuccessCode): 예매 성공 메시지를 관리하는 열거형 생성 * [#28] feat(BookingErrorCode): 예매 에러 메시지를 관리하는 열거형 생성 * [#28] feat(BookingRetrieveResponse): 예매 조회 응답 DTO 생성 * [#28] feat(BookingRetrieveRequest): 예매 조회 요청 DTO 생성 * [#28] feat(BookingRepository): 예매 레포지토리 생성 및 비회원 예매 조회 시 예매 내역 가져오는 메서드 구현 * [#28] feat(BookingService): 예매 서비스 레이어 생성 및 비회원 조회 메서드 구현 * [#28] feat(BookingController): 예매 컨트롤러 생성 및 비회원 예매조회 POST API 구현 * [feat] #30 - SwaggerConfig 및 WebConfig 구현 (#31) * [#30] chore(build.gradle): springdoc 의존성 추가 * [#30] feat(SwaggerConfig): SwaggerConfig 추가 * [#30] feat(WebConfig): WebConfig 추가 * HOTFIX(workflows): push 이벤트 시 github action이 빌드 되지 않도록 수정 * HOTFIX(Jenkinsfile): 포트 수정 * [feat] #32 - 티켓 예매 가능 여부 GET API 구현 (#33) * [#32] refactor(BookingController): 메서드명 수정 * [#32] feat(ConflictException): Conflict 409에러 클래스 생성 * [#32] feat(GlobalExceptionHandler): ConflictException 등록 * [#32] feat(TicketAvailabilityRequest): TicketAvailabilityRequest DTO 생성 * [#32] feat(TicketAvailabilityResponse): TicketAvailabilityResponse DTO 생성 * [#32] feat(ScheduleSuccessCode): ScheduleSuccessCode 열거형 생성 * [#32] feat(ScheduleErrorCode): ScheduleErrorCode 열거형 생성 * [#32] feat(ScheduleRepository): ScheduleRepository 생성 * [#32] feat(ScheduleService): ScheduleService 생성 및 회차별 티켓 구매 가능 여부 판단 메서드 구현 * [#32] feat(ScheduleController): 회차별 티켓 수량 조회 GET API 구현 * [feat] #17 - 카카오 소셜 로그인 API 구현 (#36) * [#17] feat(build.gradle): jwt, security, open feign, Redis 의존성 추가 * [#17] feat(BeatApplication): OpenFeign 관련 어노테이션 추가 * [#17] feat(RedisConfig): redis 설정 * [#17] feat: redis 활용 jwt 토큰 생성 로직 구현 * [#17] feat(SecurityConfig): security 설정 * [#17] refactor: Member, Users 엔티티 수정 및 관련 enum 추가 * [#17] feat: Member, Users 도메인 관련 인증 로직 구현 * [#17] feat(MemberController): Member 관련 API 엔드포인트 구현 * [#17] feat: Security 관련 인증 객체 구현 * [#17] feat: 소셜로그인 로직 구현 * [#17] fix: 소셜로그인 오류 해결 * [#17] refactor: 코드리뷰 반영 * [#17] refactor: 코드리뷰 반영 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [feat] #34 - 비회원 예매 POST API 구현 (#35) * [#34] feat(Users): 빌더 및 정적 팩토리 메서드 추가 * [#34] feat(Entity): 엔티티 id 필드 수정 * [#34] refactor(application.yml): dialect 추가 * [#34] refactor(ScheduleService): 네이밍 수정 * [#34] refactor(BookingSuccessCode): 비회원 예매 조회 성공 메시지 추가 * [#34] feat(GuestBookingRequest): 비회원 예매 요청 DTO 생성 * [#34] feat(GuestBookingResponse): 비회원 예매 응답 DTO 생성 * [#34] refactor(BookingRetrieveService): 네이밍 수정 * [#34] feat(PerformanceRepository): 공연 레포지토리 생성 * [#34] feat(UserRepository): 유저 레포지토리 생성 * [#34] refactor(BookingRepository): 비회원 예매 시 네가지 정보가 모두 일치 해야만 다른 유저로 판단하는 메서드 구현 * [#34] refactor(ScheduleRepository): 비관적 락 적용 * [#34] feat(GuestBookingService): 비관적 락을 이용해 비회원 예매 로직 구현 * [#34] feat(BookingController): 비회원 예매 POST API 구현 * [#34] test(GuestBookingServiceConcurrencyTest): 동시성 테스트 구현 * [Refactor] #37 - 카카오 로그인 API response 수정 (#39) * [#37] rename: 빈 충돌 해결 위해 UserRepository를 UsersRepository로 rename * [#37] refactor: login response에서 refreshToken을 cookie에 담아주도록 변경 * [#37] fix: dao, repository 충돌 해결 * [#37] refactor: 어노테이션 수정 * [feat] #40 - 소개 관련 공연 정보 조회 GET API 구현 (#41) * [#40] feat: repository 추가 * [#40] feat: 공연 관련 성공, 실패 메세지 추가 * [#40] feat(PerformanceDetailResponse): 공연 상세페이지 조회 응답 dto * [#40] feat(PerformanceService): 공연 상세페이지 조회 로직 구현 * [#40] feat(PerformanceController): 공연 상세페이지 엔드포인트 구현 * [#40] feat(SecurityConfig): auth whitelist update * [#40] refactor: dto 분리 및 rename * [feat] #42 - 예매 관련 공연 정보 GET API 구현 (#43) * [#42] feat: 예매 관련 정보 조회 dto 생성 * [#42] feat: 예매 관련 정보 조회 성공 메세지 추가 * [#42] feat(ScheduleService): 잔여티켓계산, 예매가능여부확인, 예매가능여부 update 메소드 구현 * [#42] feat(PerformanceService): 예매관련공연정보의 response 생성하는 로직 구현 * [#42] feat(PerformanceController): 예매관련공연정보 조회 엔드포인트 구현 * [#42] feat(SecurityConfig): auth_whitelist update * [#42] refactor(ScheduleService): findTicketAvailability에서 getAvailableTicketCount method 사용하도록 수정 * [feat] #38 - 회원 예매 POST API 구현 (#45) * [#38] fix(Cast): Join 하는 부분 수정 및 빌더와 정적 팩토리 메서드 패턴 도입 * [#38] chore(application.yml): 계층 수정 * [#38] feat: 커스텀 어노테이션 생성 * [#38] fix(UserRepository): 중복된 클래스 삭제 * [#38] feat(UserErrorCode): 유저의 에러 메시지를 관리하는 열거형 생성 * [#38] refactor(MemberErrorCode): message 목적에 맞게 변경 * [#38] refactor(BookingSuccessCode): 회원 예매 성공 메시지 추가 * [#38] feat: 커스텀 어노테이션 생성 커밋에 누락된 클래스 추가 * [#38] refactor(GuestBookingService): schedule에서 바로 get 하도록 수정 * [#38] test(GuestBookingServiceConcurrencyTest): import문 경로명 변경 * [#38] refactor(MemberService): @Transactional 어노테이션이 필요한 메서드에 해당 옵션 추가 * [#38] feat(MemberBookingRequest): 회원 예매 요청 DTO 생성 * [#38] feat(MemberBookingResponse): 회원 예매 응답 DTO 생성 * [#38] refactor(MemberController): refreshToken을 쿠키에 넣어주도록 구현 * [#38] feat(MemberBookingService): 회원 예매 서비스 로직 구현 * [#38] feat(BookingController): 회원 예매 요청 POST API 구현 * [#38] fix: 빌드 안되는 부분 수정 * [#38] remove(MemberBookingService): 사용하지 않는 import문 삭제 * [#38] refactor: 커스텀 어노테이션 이름 수정 * [feat] #44 - 홈페이지 공연 및 홍보 조회 GET API 구현 (#47) * [#44] refactor: 코드리뷰 반영 * [#44] fix(Promotion): 기본키 이름 수정, performanceId 연관관계 설정 * [#44] feat: Repository 및 관련 로직 추가 * [#44] feat: errorcode, successcode 추가 * [#44] feat: 홈페이지 request, response dto 생성 * [#44] feat(ScheduleService): dueDate 관련 로직 구현 * [#44] feat(PerformanceService): 홈페이지 정렬 및 response 생성 로직 구현 * [#44] chore: import문 추가 * [feat] #46 - 회원 예매 조회 GET API 구현 (#48) * [#46] remove(BookingRetrieveRequest): 클래스 삭제 * [#46] refactor(BookingSuccessCode): 회원 예매 조회 성공 메시지 추가 * [#46] refactor(GuestBookingRetrieveResponse): 클래스 명 변경 * [#46] refactor(GuestBookingRetrieveRequest): 안쓰는 코드 주석처리 * [#46] refactor(GuestBookingRetrieveService): 클래스 명 수정으로 인한 리팩토링 * [#46] refactor(SecurityConfig): 토큰 사용하지 않는 api 경로 추가하기 * [#46] refactor(BookingRepository): userId로 예약 정보를 가져오는 JPA 메서드 구현 * [#46] feat(MemberBookingRetrieveResponse): 회원 조회 응답 DTO 생성 * [#46] feat(MemberBookingRetrieveService): 회원 예매 조회 로직을 담당하는 서비스 레이어 구현 * [#46] feat(BookingController): 회원 예매 조회 GET API 구현 * [feat] #49 - 예매자 관리 API 구현 (#51) * [#49] feat: 티켓 관련 success, error code 추가 * [#49] feat(Booking): 입금여부 setter 메소드 추가 * [#49] feat(TicketRetrieveResponse): 예매자 확인 response dto 생성 * [#49] feat(Ticket): 예매자 확인용 티켓 정보 response dto 생성 * [#49] feat(TicketRepository): 예매자 필터링용 메소드 생성 * [#49] feat: 예매자 입금정보 수정 request dto 생성 * [#49] feat(TicketDeleteRequest): 예매자 삭제 request dto 생성 * [#49] feat(TicketService): 예매자 관리 관련 로직 구현 * [#49] feat(TicketController): 예매자 관리 엔드포인트 구현 * [#49] chore: swagger annotation 추가 * HOTFIX(SecurityConfig): WHITELIST 경로명 수정 * [fix] #52 - auth whitelist 수정 (#53) * [#52]fix(SecurityConfig): auth_whitelist 수정 * [#52]fix(SecurityConfig): auth_whitelist 수정 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [feat] #54 - 등록한 공연 목록 조회 GET API 구현 (#55) * [#54] feat(PerformanceSuccessCode): success code 추가 * [#54] feat: 회원이 등록한 공연목록 조회 dto 생성 * [#54] feat(PerformanceService): 회원이 등록한 공연목록 조회 로직 구현 * [#54] feat(PerformanceRepository): 회원이 등록한 공연목록 조회 관련 메소드 추가 * [#54] feat(PerformanceController): 회원이 등록한 공연목록 조회 엔드포인트 생성 * [#54] fix(TicketService): exception error 수정 * [#54] chore(application.yml): yml 수정 * [fix] #58 - dev-ci.yml, prod-ci.yml 환경변수 추가 (#59) * [#58] fix(dev-CI.yml): Dev 서버 CI 워크플로우 수정 * [#58] fix(prod-CI.yml): Prod 서버 CI 워크플로우 수정 * [refactor] #61 - Performance Entity field 추가 (#62) * [#61] refactor(Performance): bankHolder 필드 추가 * [#61] chore(BookingController): swagger annotation 수정 * [feat] #63 - healthCheckController 생성 (#64) * [#63] remove(UsersRepository): 중복 클래스 삭제 * [#63] feat(HealthCheckController): healthcheck 컨트롤러 생성 * [feat] #63 - health check URL 화이트리스트에 등록 (#67) * [#63] remove(UsersRepository): 중복 클래스 삭제 * [#63] feat(HealthCheckController): healthcheck 컨트롤러 생성 * [#63] feat(SecurityConfig): healthcheck url white_list에 등록 * [fix] #57 - entity 연관관계 설정 SecurityConfig 수정 (#65) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [fix] #57 - security 관련 에러 대응 (#71) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 * [#57] fix(JwtAuthenticationFilter): 에러 로직 수정 * fix(SecurityConfig): webSecurityCustomizer 로직 추가 * [fix] #73 - security 수정 (#74) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 * [#57] fix(JwtAuthenticationFilter): 에러 로직 수정 * fix(SecurityConfig): webSecurityCustomizer 로직 추가 * [#57] fix:security 수정 * [#76] fix(SecurityConfig): Base64 인코딩을 하도록 변경 (#77) * [fix] #76 - 누락된 코드 추가 (#79) * [#76] fix(SecurityConfig): Base64 인코딩을 하도록 변경 * [#76] chore(SecurityConfig): 누락된 import문 추가 * [#76] chore(JwtTokenProvider): 누락된 코드 추가 * [#81] fix(JwtTokenProvider): jwtsecret을 인코딩하고 디코딩을 하도록 수정 (#82) * [#85] chore(application.yml): 환경변수 설정 (#86) --------- Co-authored-by: hyerinhwang-sailin --------- Co-authored-by: hyerinhwang-sailin * Revert "[deploy] merge to main (#90)" (#91) This reverts commit f519b0c82a2f01d4374eb045b9e90c6303381e50. * [fix] #93 - 누락된 어노테이션 및 누락된 경로명 추가 (#94) * [#93] fix(HealthCheckController): 누락된 어노테이션 추가 * [#93] refactor(SecurityConfig): 누락된 경로명 추가 * [bug] #84 - actuator/health 의존성 및 설정 추가 (#96) * [#84] chore(build.gradle): 의존성 추가 * [#84] chore: health/actuator yml 설정 추가 * [#84] chore: redis yml 설정 추가 * [#84] chore: yml 수정 (#99) * [bug] #101 - yml, s3 수정 (#102) * [#101] chore: yml 수정 * [#101] feat: s3 추가 * HOTIFX: prod ci-yml 수정 * Main redis host yml 수정 (#105) * [deploy] merge to main (#104) * [deploy] merge to develop (#27) * [deploy] merge to main (#26) * [#2] chore(.gitignore): .gradle, .idea 파일 삭제 (#3) * [refactor] #4 - 도메인형 디렉터리 구조 변경 및 local, dev, prod 운영 환경 분리 (#5) * [#4] fix: 클래스 첫글자 대문자로 수정 * [#4] remove: enum 삭제 * [#4] feat(BaseSuccessCode): 성공 상태 관리를 위한 인터페이스 생성 * [#4] feat(BaseErrorCode): 에러 상태 관리를 위한 인터페이스 생성 * [#4] refactor: global 패키지로 이동 * [#4] refactor: 서버 운영 환경 분리 * [feat] #6 - dev, prod Dockerfile 분리 및 github Action CI workflow 구현 (#7) * [#6] feat(Dockerfile): prod용 도커 파일 구현 * [#6] feat(Dockerfile-dev): dev용 도커 파일 구현 * [#6] feat(dev-CI.yml): dev용 CI workflow 구현 * [#6] feat(prod-CI.yml): prod용 CI workflow 구현 * [#6] chore(.gitignore): gradle-wrapper.jar 파일은 레포지토리에 포함되도록 설정 * [#6] fix(gradle-wrapper.jar): .gitignore로 누락된 파일 추가 * [#6] chore(build.grade): plain jar 생성 방지 * [#9] docs(README.md): 서비스 소개 README v1 작성 (#10) * [#11] docs(README.md): 리드미 업데이트 (#12) * [feat] #13 - 유저, 예매, 공연, 회차 엔티티 생성 (#15) * [#13] feat(Users): 사용자 엔티티 생성 * [#13] feat(Genre): 장르 열거형 생성 * [#13] feat(BankName): 은행명 열거형 생성 * [#13] refactor(BaseTimeEntity): 업데이트 시간 관리 필드 활성화 * [#13] feat(Performance): 공연 엔티티 생성 * [#13] feat(ScheduleNumber): 회차 번호 열거형 생성 * [#13] feat(Schedule): 회차 엔티티 생성 * [#13] feat(Booking): 예매 엔티티 생성 * [#13] refactor(ScheduleNumber): 네이밍 수정 * [feat] #14 - 회원, 홍보, 등장인물, 스태프 엔티티 생성 (#16) * [#14] feat(Member): 멤버 엔티티 생성 * [#14] feat(Promotion): 홍보 엔티티 생성 * [#14] feat(Cast): 등장인물 엔티티 생성 * [#14] feat(Staff): 스태프 엔티티 생성 * [feat] #13 - 유저, 예매, 공연, 회차 엔티티 생성 (#15) * [#13] feat(Users): 사용자 엔티티 생성 * [#13] feat(Genre): 장르 열거형 생성 * [#13] feat(BankName): 은행명 열거형 생성 * [#13] refactor(BaseTimeEntity): 업데이트 시간 관리 필드 활성화 * [#13] feat(Performance): 공연 엔티티 생성 * [#13] feat(ScheduleNumber): 회차 번호 열거형 생성 * [#13] feat(Schedule): 회차 엔티티 생성 * [#13] feat(Booking): 예매 엔티티 생성 * [#13] refactor(ScheduleNumber): 네이밍 수정 * [#14} fix: 스태프, 등장인물, 홍보 엔티티 상속관계 수정 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [#18] feat(Jenkinsfile): 젠킨스 파일 생성 (#19) * [#20] refactor(Jenkinsfile): 젠킨스 파일 Webhook 테스트용 커밋 (#21) * [#22] feat(Jenkinsfile): Jenkins multibranch 스크립트 작성 (#23) * HOTFIX(Jenkinsfile): Jenkins multibranch 스크립트 수정 * HOTFIX(workflows): 빌드 후 젠킨스 배포가 진행되도록 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * [#24] feat(Jenkinsfile): slack 연동 스크립트 작성 (#25) --------- Co-authored-by: hyerinhwang-sailin * HOTFIX(workflow): 오타 수정 --------- Co-authored-by: hyerinhwang-sailin * [feat] #28 - 비회원 예매 조회 POST API 구현 (#29) * chore(application-dev.yml): dialect 추가 * chore(application-prod.yml): dialect 추가 * [#28] chore(build.gradle): security 의존성 비활성화 - security 일시적으로 비활성화 * [#28] refactor(Booking): 예매 엔티티에 빌더 및 정적팩토리 메서드 추가 * [#28] refactor(ErrorResponse): 정적 팩토리 메서드 네이밍 변환 * [#28] refactor(Schedule): 회차 엔티티에 빌더 및 정적 팩토리 메서드 추가 * [#28] refactor(Performance): 공연 엔티티에 빌더 및 정적 팩토리 메서드 추가 * [#28] refactor(SuccessResponse): 정적 팩토리 메서드 네이밍 변환 * [#28] refactor(GlobalExceptionHandler): INTERNAL_SERVER_ERROR 핸들러 메서드 추가 * [#28] feat(BookingSuccessCode): 예매 성공 메시지를 관리하는 열거형 생성 * [#28] feat(BookingErrorCode): 예매 에러 메시지를 관리하는 열거형 생성 * [#28] feat(BookingRetrieveResponse): 예매 조회 응답 DTO 생성 * [#28] feat(BookingRetrieveRequest): 예매 조회 요청 DTO 생성 * [#28] feat(BookingRepository): 예매 레포지토리 생성 및 비회원 예매 조회 시 예매 내역 가져오는 메서드 구현 * [#28] feat(BookingService): 예매 서비스 레이어 생성 및 비회원 조회 메서드 구현 * [#28] feat(BookingController): 예매 컨트롤러 생성 및 비회원 예매조회 POST API 구현 * [feat] #30 - SwaggerConfig 및 WebConfig 구현 (#31) * [#30] chore(build.gradle): springdoc 의존성 추가 * [#30] feat(SwaggerConfig): SwaggerConfig 추가 * [#30] feat(WebConfig): WebConfig 추가 * HOTFIX(workflows): push 이벤트 시 github action이 빌드 되지 않도록 수정 * HOTFIX(Jenkinsfile): 포트 수정 * [feat] #32 - 티켓 예매 가능 여부 GET API 구현 (#33) * [#32] refactor(BookingController): 메서드명 수정 * [#32] feat(ConflictException): Conflict 409에러 클래스 생성 * [#32] feat(GlobalExceptionHandler): ConflictException 등록 * [#32] feat(TicketAvailabilityRequest): TicketAvailabilityRequest DTO 생성 * [#32] feat(TicketAvailabilityResponse): TicketAvailabilityResponse DTO 생성 * [#32] feat(ScheduleSuccessCode): ScheduleSuccessCode 열거형 생성 * [#32] feat(ScheduleErrorCode): ScheduleErrorCode 열거형 생성 * [#32] feat(ScheduleRepository): ScheduleRepository 생성 * [#32] feat(ScheduleService): ScheduleService 생성 및 회차별 티켓 구매 가능 여부 판단 메서드 구현 * [#32] feat(ScheduleController): 회차별 티켓 수량 조회 GET API 구현 * [feat] #17 - 카카오 소셜 로그인 API 구현 (#36) * [#17] feat(build.gradle): jwt, security, open feign, Redis 의존성 추가 * [#17] feat(BeatApplication): OpenFeign 관련 어노테이션 추가 * [#17] feat(RedisConfig): redis 설정 * [#17] feat: redis 활용 jwt 토큰 생성 로직 구현 * [#17] feat(SecurityConfig): security 설정 * [#17] refactor: Member, Users 엔티티 수정 및 관련 enum 추가 * [#17] feat: Member, Users 도메인 관련 인증 로직 구현 * [#17] feat(MemberController): Member 관련 API 엔드포인트 구현 * [#17] feat: Security 관련 인증 객체 구현 * [#17] feat: 소셜로그인 로직 구현 * [#17] fix: 소셜로그인 오류 해결 * [#17] refactor: 코드리뷰 반영 * [#17] refactor: 코드리뷰 반영 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [feat] #34 - 비회원 예매 POST API 구현 (#35) * [#34] feat(Users): 빌더 및 정적 팩토리 메서드 추가 * [#34] feat(Entity): 엔티티 id 필드 수정 * [#34] refactor(application.yml): dialect 추가 * [#34] refactor(ScheduleService): 네이밍 수정 * [#34] refactor(BookingSuccessCode): 비회원 예매 조회 성공 메시지 추가 * [#34] feat(GuestBookingRequest): 비회원 예매 요청 DTO 생성 * [#34] feat(GuestBookingResponse): 비회원 예매 응답 DTO 생성 * [#34] refactor(BookingRetrieveService): 네이밍 수정 * [#34] feat(PerformanceRepository): 공연 레포지토리 생성 * [#34] feat(UserRepository): 유저 레포지토리 생성 * [#34] refactor(BookingRepository): 비회원 예매 시 네가지 정보가 모두 일치 해야만 다른 유저로 판단하는 메서드 구현 * [#34] refactor(ScheduleRepository): 비관적 락 적용 * [#34] feat(GuestBookingService): 비관적 락을 이용해 비회원 예매 로직 구현 * [#34] feat(BookingController): 비회원 예매 POST API 구현 * [#34] test(GuestBookingServiceConcurrencyTest): 동시성 테스트 구현 * [Refactor] #37 - 카카오 로그인 API response 수정 (#39) * [#37] rename: 빈 충돌 해결 위해 UserRepository를 UsersRepository로 rename * [#37] refactor: login response에서 refreshToken을 cookie에 담아주도록 변경 * [#37] fix: dao, repository 충돌 해결 * [#37] refactor: 어노테이션 수정 * [feat] #40 - 소개 관련 공연 정보 조회 GET API 구현 (#41) * [#40] feat: repository 추가 * [#40] feat: 공연 관련 성공, 실패 메세지 추가 * [#40] feat(PerformanceDetailResponse): 공연 상세페이지 조회 응답 dto * [#40] feat(PerformanceService): 공연 상세페이지 조회 로직 구현 * [#40] feat(PerformanceController): 공연 상세페이지 엔드포인트 구현 * [#40] feat(SecurityConfig): auth whitelist update * [#40] refactor: dto 분리 및 rename * [feat] #42 - 예매 관련 공연 정보 GET API 구현 (#43) * [#42] feat: 예매 관련 정보 조회 dto 생성 * [#42] feat: 예매 관련 정보 조회 성공 메세지 추가 * [#42] feat(ScheduleService): 잔여티켓계산, 예매가능여부확인, 예매가능여부 update 메소드 구현 * [#42] feat(PerformanceService): 예매관련공연정보의 response 생성하는 로직 구현 * [#42] feat(PerformanceController): 예매관련공연정보 조회 엔드포인트 구현 * [#42] feat(SecurityConfig): auth_whitelist update * [#42] refactor(ScheduleService): findTicketAvailability에서 getAvailableTicketCount method 사용하도록 수정 * [feat] #38 - 회원 예매 POST API 구현 (#45) * [#38] fix(Cast): Join 하는 부분 수정 및 빌더와 정적 팩토리 메서드 패턴 도입 * [#38] chore(application.yml): 계층 수정 * [#38] feat: 커스텀 어노테이션 생성 * [#38] fix(UserRepository): 중복된 클래스 삭제 * [#38] feat(UserErrorCode): 유저의 에러 메시지를 관리하는 열거형 생성 * [#38] refactor(MemberErrorCode): message 목적에 맞게 변경 * [#38] refactor(BookingSuccessCode): 회원 예매 성공 메시지 추가 * [#38] feat: 커스텀 어노테이션 생성 커밋에 누락된 클래스 추가 * [#38] refactor(GuestBookingService): schedule에서 바로 get 하도록 수정 * [#38] test(GuestBookingServiceConcurrencyTest): import문 경로명 변경 * [#38] refactor(MemberService): @Transactional 어노테이션이 필요한 메서드에 해당 옵션 추가 * [#38] feat(MemberBookingRequest): 회원 예매 요청 DTO 생성 * [#38] feat(MemberBookingResponse): 회원 예매 응답 DTO 생성 * [#38] refactor(MemberController): refreshToken을 쿠키에 넣어주도록 구현 * [#38] feat(MemberBookingService): 회원 예매 서비스 로직 구현 * [#38] feat(BookingController): 회원 예매 요청 POST API 구현 * [#38] fix: 빌드 안되는 부분 수정 * [#38] remove(MemberBookingService): 사용하지 않는 import문 삭제 * [#38] refactor: 커스텀 어노테이션 이름 수정 * [feat] #44 - 홈페이지 공연 및 홍보 조회 GET API 구현 (#47) * [#44] refactor: 코드리뷰 반영 * [#44] fix(Promotion): 기본키 이름 수정, performanceId 연관관계 설정 * [#44] feat: Repository 및 관련 로직 추가 * [#44] feat: errorcode, successcode 추가 * [#44] feat: 홈페이지 request, response dto 생성 * [#44] feat(ScheduleService): dueDate 관련 로직 구현 * [#44] feat(PerformanceService): 홈페이지 정렬 및 response 생성 로직 구현 * [#44] chore: import문 추가 * [feat] #46 - 회원 예매 조회 GET API 구현 (#48) * [#46] remove(BookingRetrieveRequest): 클래스 삭제 * [#46] refactor(BookingSuccessCode): 회원 예매 조회 성공 메시지 추가 * [#46] refactor(GuestBookingRetrieveResponse): 클래스 명 변경 * [#46] refactor(GuestBookingRetrieveRequest): 안쓰는 코드 주석처리 * [#46] refactor(GuestBookingRetrieveService): 클래스 명 수정으로 인한 리팩토링 * [#46] refactor(SecurityConfig): 토큰 사용하지 않는 api 경로 추가하기 * [#46] refactor(BookingRepository): userId로 예약 정보를 가져오는 JPA 메서드 구현 * [#46] feat(MemberBookingRetrieveResponse): 회원 조회 응답 DTO 생성 * [#46] feat(MemberBookingRetrieveService): 회원 예매 조회 로직을 담당하는 서비스 레이어 구현 * [#46] feat(BookingController): 회원 예매 조회 GET API 구현 * [feat] #49 - 예매자 관리 API 구현 (#51) * [#49] feat: 티켓 관련 success, error code 추가 * [#49] feat(Booking): 입금여부 setter 메소드 추가 * [#49] feat(TicketRetrieveResponse): 예매자 확인 response dto 생성 * [#49] feat(Ticket): 예매자 확인용 티켓 정보 response dto 생성 * [#49] feat(TicketRepository): 예매자 필터링용 메소드 생성 * [#49] feat: 예매자 입금정보 수정 request dto 생성 * [#49] feat(TicketDeleteRequest): 예매자 삭제 request dto 생성 * [#49] feat(TicketService): 예매자 관리 관련 로직 구현 * [#49] feat(TicketController): 예매자 관리 엔드포인트 구현 * [#49] chore: swagger annotation 추가 * HOTFIX(SecurityConfig): WHITELIST 경로명 수정 * [fix] #52 - auth whitelist 수정 (#53) * [#52]fix(SecurityConfig): auth_whitelist 수정 * [#52]fix(SecurityConfig): auth_whitelist 수정 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [feat] #54 - 등록한 공연 목록 조회 GET API 구현 (#55) * [#54] feat(PerformanceSuccessCode): success code 추가 * [#54] feat: 회원이 등록한 공연목록 조회 dto 생성 * [#54] feat(PerformanceService): 회원이 등록한 공연목록 조회 로직 구현 * [#54] feat(PerformanceRepository): 회원이 등록한 공연목록 조회 관련 메소드 추가 * [#54] feat(PerformanceController): 회원이 등록한 공연목록 조회 엔드포인트 생성 * [#54] fix(TicketService): exception error 수정 * [#54] chore(application.yml): yml 수정 * [fix] #58 - dev-ci.yml, prod-ci.yml 환경변수 추가 (#59) * [#58] fix(dev-CI.yml): Dev 서버 CI 워크플로우 수정 * [#58] fix(prod-CI.yml): Prod 서버 CI 워크플로우 수정 * [refactor] #61 - Performance Entity field 추가 (#62) * [#61] refactor(Performance): bankHolder 필드 추가 * [#61] chore(BookingController): swagger annotation 수정 * [feat] #63 - healthCheckController 생성 (#64) * [#63] remove(UsersRepository): 중복 클래스 삭제 * [#63] feat(HealthCheckController): healthcheck 컨트롤러 생성 * [feat] #63 - health check URL 화이트리스트에 등록 (#67) * [#63] remove(UsersRepository): 중복 클래스 삭제 * [#63] feat(HealthCheckController): healthcheck 컨트롤러 생성 * [#63] feat(SecurityConfig): healthcheck url white_list에 등록 * [fix] #57 - entity 연관관계 설정 SecurityConfig 수정 (#65) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [fix] #57 - security 관련 에러 대응 (#71) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 * [#57] fix(JwtAuthenticationFilter): 에러 로직 수정 * fix(SecurityConfig): webSecurityCustomizer 로직 추가 * [fix] #73 - security 수정 (#74) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 * [#57] fix(JwtAuthenticationFilter): 에러 로직 수정 * fix(SecurityConfig): webSecurityCustomizer 로직 추가 * [#57] fix:security 수정 * [#76] fix(SecurityConfig): Base64 인코딩을 하도록 변경 (#77) * [fix] #76 - 누락된 코드 추가 (#79) * [#76] fix(SecurityConfig): Base64 인코딩을 하도록 변경 * [#76] chore(SecurityConfig): 누락된 import문 추가 * [#76] chore(JwtTokenProvider): 누락된 코드 추가 * [#81] fix(JwtTokenProvider): jwtsecret을 인코딩하고 디코딩을 하도록 수정 (#82) * [#85] chore(application.yml): 환경변수 설정 (#86) * [chore] #88 - 레디스 환경변수 추가 (#89) * [#88] chore(dev-CI.yml): dev서버 레디스 환경변수 설정 추가 * [#88] chore(prod-CI.yml): prod 서버 레디스 환경변수 설정 추가 * [deploy] merge to main (#90) * [deploy] merge to main (#83) * [deploy] merge to develop (#27) * [deploy] merge to main (#26) * [#2] chore(.gitignore): .gradle, .idea 파일 삭제 (#3) * [refactor] #4 - 도메인형 디렉터리 구조 변경 및 local, dev, prod 운영 환경 분리 (#5) * [#4] fix: 클래스 첫글자 대문자로 수정 * [#4] remove: enum 삭제 * [#4] feat(BaseSuccessCode): 성공 상태 관리를 위한 인터페이스 생성 * [#4] feat(BaseErrorCode): 에러 상태 관리를 위한 인터페이스 생성 * [#4] refactor: global 패키지로 이동 * [#4] refactor: 서버 운영 환경 분리 * [feat] #6 - dev, prod Dockerfile 분리 및 github Action CI workflow 구현 (#7) * [#6] feat(Dockerfile): prod용 도커 파일 구현 * [#6] feat(Dockerfile-dev): dev용 도커 파일 구현 * [#6] feat(dev-CI.yml): dev용 CI workflow 구현 * [#6] feat(prod-CI.yml): prod용 CI workflow 구현 * [#6] chore(.gitignore): gradle-wrapper.jar 파일은 레포지토리에 포함되도록 설정 * [#6] fix(gradle-wrapper.jar): .gitignore로 누락된 파일 추가 * [#6] chore(build.grade): plain jar 생성 방지 * [#9] docs(README.md): 서비스 소개 README v1 작성 (#10) * [#11] docs(README.md): 리드미 업데이트 (#12) * [feat] #13 - 유저, 예매, 공연, 회차 엔티티 생성 (#15) * [#13] feat(Users): 사용자 엔티티 생성 * [#13] feat(Genre): 장르 열거형 생성 * [#13] feat(BankName): 은행명 열거형 생성 * [#13] refactor(BaseTimeEntity): 업데이트 시간 관리 필드 활성화 * [#13] feat(Performance): 공연 엔티티 생성 * [#13] feat(ScheduleNumber): 회차 번호 열거형 생성 * [#13] feat(Schedule): 회차 엔티티 생성 * [#13] feat(Booking): 예매 엔티티 생성 * [#13] refactor(ScheduleNumber): 네이밍 수정 * [feat] #14 - 회원, 홍보, 등장인물, 스태프 엔티티 생성 (#16) * [#14] feat(Member): 멤버 엔티티 생성 * [#14] feat(Promotion): 홍보 엔티티 생성 * [#14] feat(Cast): 등장인물 엔티티 생성 * [#14] feat(Staff): 스태프 엔티티 생성 * [feat] #13 - 유저, 예매, 공연, 회차 엔티티 생성 (#15) * [#13] feat(Users): 사용자 엔티티 생성 * [#13] feat(Genre): 장르 열거형 생성 * [#13] feat(BankName): 은행명 열거형 생성 * [#13] refactor(BaseTimeEntity): 업데이트 시간 관리 필드 활성화 * [#13] feat(Performance): 공연 엔티티 생성 * [#13] feat(ScheduleNumber): 회차 번호 열거형 생성 * [#13] feat(Schedule): 회차 엔티티 생성 * [#13] feat(Booking): 예매 엔티티 생성 * [#13] refactor(ScheduleNumber): 네이밍 수정 * [#14} fix: 스태프, 등장인물, 홍보 엔티티 상속관계 수정 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [#18] feat(Jenkinsfile): 젠킨스 파일 생성 (#19) * [#20] refactor(Jenkinsfile): 젠킨스 파일 Webhook 테스트용 커밋 (#21) * [#22] feat(Jenkinsfile): Jenkins multibranch 스크립트 작성 (#23) * HOTFIX(Jenkinsfile): Jenkins multibranch 스크립트 수정 * HOTFIX(workflows): 빌드 후 젠킨스 배포가 진행되도록 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * [#24] feat(Jenkinsfile): slack 연동 스크립트 작성 (#25) --------- Co-authored-by: hyerinhwang-sailin * HOTFIX(workflow): 오타 수정 --------- Co-authored-by: hyerinhwang-sailin * [feat] #28 - 비회원 예매 조회 POST API 구현 (#29) * chore(application-dev.yml): dialect 추가 * chore(application-prod.yml): dialect 추가 * [#28] chore(build.gradle): security 의존성 비활성화 - security 일시적으로 비활성화 * [#28] refactor(Booking): 예매 엔티티에 빌더 및 정적팩토리 메서드 추가 * [#28] refactor(ErrorResponse): 정적 팩토리 메서드 네이밍 변환 * [#28] refactor(Schedule): 회차 엔티티에 빌더 및 정적 팩토리 메서드 추가 * [#28] refactor(Performance): 공연 엔티티에 빌더 및 정적 팩토리 메서드 추가 * [#28] refactor(SuccessResponse): 정적 팩토리 메서드 네이밍 변환 * [#28] refactor(GlobalExceptionHandler): INTERNAL_SERVER_ERROR 핸들러 메서드 추가 * [#28] feat(BookingSuccessCode): 예매 성공 메시지를 관리하는 열거형 생성 * [#28] feat(BookingErrorCode): 예매 에러 메시지를 관리하는 열거형 생성 * [#28] feat(BookingRetrieveResponse): 예매 조회 응답 DTO 생성 * [#28] feat(BookingRetrieveRequest): 예매 조회 요청 DTO 생성 * [#28] feat(BookingRepository): 예매 레포지토리 생성 및 비회원 예매 조회 시 예매 내역 가져오는 메서드 구현 * [#28] feat(BookingService): 예매 서비스 레이어 생성 및 비회원 조회 메서드 구현 * [#28] feat(BookingController): 예매 컨트롤러 생성 및 비회원 예매조회 POST API 구현 * [feat] #30 - SwaggerConfig 및 WebConfig 구현 (#31) * [#30] chore(build.gradle): springdoc 의존성 추가 * [#30] feat(SwaggerConfig): SwaggerConfig 추가 * [#30] feat(WebConfig): WebConfig 추가 * HOTFIX(workflows): push 이벤트 시 github action이 빌드 되지 않도록 수정 * HOTFIX(Jenkinsfile): 포트 수정 * [feat] #32 - 티켓 예매 가능 여부 GET API 구현 (#33) * [#32] refactor(BookingController): 메서드명 수정 * [#32] feat(ConflictException): Conflict 409에러 클래스 생성 * [#32] feat(GlobalExceptionHandler): ConflictException 등록 * [#32] feat(TicketAvailabilityRequest): TicketAvailabilityRequest DTO 생성 * [#32] feat(TicketAvailabilityResponse): TicketAvailabilityResponse DTO 생성 * [#32] feat(ScheduleSuccessCode): ScheduleSuccessCode 열거형 생성 * [#32] feat(ScheduleErrorCode): ScheduleErrorCode 열거형 생성 * [#32] feat(ScheduleRepository): ScheduleRepository 생성 * [#32] feat(ScheduleService): ScheduleService 생성 및 회차별 티켓 구매 가능 여부 판단 메서드 구현 * [#32] feat(ScheduleController): 회차별 티켓 수량 조회 GET API 구현 * [feat] #17 - 카카오 소셜 로그인 API 구현 (#36) * [#17] feat(build.gradle): jwt, security, open feign, Redis 의존성 추가 * [#17] feat(BeatApplication): OpenFeign 관련 어노테이션 추가 * [#17] feat(RedisConfig): redis 설정 * [#17] feat: redis 활용 jwt 토큰 생성 로직 구현 * [#17] feat(SecurityConfig): security 설정 * [#17] refactor: Member, Users 엔티티 수정 및 관련 enum 추가 * [#17] feat: Member, Users 도메인 관련 인증 로직 구현 * [#17] feat(MemberController): Member 관련 API 엔드포인트 구현 * [#17] feat: Security 관련 인증 객체 구현 * [#17] feat: 소셜로그인 로직 구현 * [#17] fix: 소셜로그인 오류 해결 * [#17] refactor: 코드리뷰 반영 * [#17] refactor: 코드리뷰 반영 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [feat] #34 - 비회원 예매 POST API 구현 (#35) * [#34] feat(Users): 빌더 및 정적 팩토리 메서드 추가 * [#34] feat(Entity): 엔티티 id 필드 수정 * [#34] refactor(application.yml): dialect 추가 * [#34] refactor(ScheduleService): 네이밍 수정 * [#34] refactor(BookingSuccessCode): 비회원 예매 조회 성공 메시지 추가 * [#34] feat(GuestBookingRequest): 비회원 예매 요청 DTO 생성 * [#34] feat(GuestBookingResponse): 비회원 예매 응답 DTO 생성 * [#34] refactor(BookingRetrieveService): 네이밍 수정 * [#34] feat(PerformanceRepository): 공연 레포지토리 생성 * [#34] feat(UserRepository): 유저 레포지토리 생성 * [#34] refactor(BookingRepository): 비회원 예매 시 네가지 정보가 모두 일치 해야만 다른 유저로 판단하는 메서드 구현 * [#34] refactor(ScheduleRepository): 비관적 락 적용 * [#34] feat(GuestBookingService): 비관적 락을 이용해 비회원 예매 로직 구현 * [#34] feat(BookingController): 비회원 예매 POST API 구현 * [#34] test(GuestBookingServiceConcurrencyTest): 동시성 테스트 구현 * [Refactor] #37 - 카카오 로그인 API response 수정 (#39) * [#37] rename: 빈 충돌 해결 위해 UserRepository를 UsersRepository로 rename * [#37] refactor: login response에서 refreshToken을 cookie에 담아주도록 변경 * [#37] fix: dao, repository 충돌 해결 * [#37] refactor: 어노테이션 수정 * [feat] #40 - 소개 관련 공연 정보 조회 GET API 구현 (#41) * [#40] feat: repository 추가 * [#40] feat: 공연 관련 성공, 실패 메세지 추가 * [#40] feat(PerformanceDetailResponse): 공연 상세페이지 조회 응답 dto * [#40] feat(PerformanceService): 공연 상세페이지 조회 로직 구현 * [#40] feat(PerformanceController): 공연 상세페이지 엔드포인트 구현 * [#40] feat(SecurityConfig): auth whitelist update * [#40] refactor: dto 분리 및 rename * [feat] #42 - 예매 관련 공연 정보 GET API 구현 (#43) * [#42] feat: 예매 관련 정보 조회 dto 생성 * [#42] feat: 예매 관련 정보 조회 성공 메세지 추가 * [#42] feat(ScheduleService): 잔여티켓계산, 예매가능여부확인, 예매가능여부 update 메소드 구현 * [#42] feat(PerformanceService): 예매관련공연정보의 response 생성하는 로직 구현 * [#42] feat(PerformanceController): 예매관련공연정보 조회 엔드포인트 구현 * [#42] feat(SecurityConfig): auth_whitelist update * [#42] refactor(ScheduleService): findTicketAvailability에서 getAvailableTicketCount method 사용하도록 수정 * [feat] #38 - 회원 예매 POST API 구현 (#45) * [#38] fix(Cast): Join 하는 부분 수정 및 빌더와 정적 팩토리 메서드 패턴 도입 * [#38] chore(application.yml): 계층 수정 * [#38] feat: 커스텀 어노테이션 생성 * [#38] fix(UserRepository): 중복된 클래스 삭제 * [#38] feat(UserErrorCode): 유저의 에러 메시지를 관리하는 열거형 생성 * [#38] refactor(MemberErrorCode): message 목적에 맞게 변경 * [#38] refactor(BookingSuccessCode): 회원 예매 성공 메시지 추가 * [#38] feat: 커스텀 어노테이션 생성 커밋에 누락된 클래스 추가 * [#38] refactor(GuestBookingService): schedule에서 바로 get 하도록 수정 * [#38] test(GuestBookingServiceConcurrencyTest): import문 경로명 변경 * [#38] refactor(MemberService): @Transactional 어노테이션이 필요한 메서드에 해당 옵션 추가 * [#38] feat(MemberBookingRequest): 회원 예매 요청 DTO 생성 * [#38] feat(MemberBookingResponse): 회원 예매 응답 DTO 생성 * [#38] refactor(MemberController): refreshToken을 쿠키에 넣어주도록 구현 * [#38] feat(MemberBookingService): 회원 예매 서비스 로직 구현 * [#38] feat(BookingController): 회원 예매 요청 POST API 구현 * [#38] fix: 빌드 안되는 부분 수정 * [#38] remove(MemberBookingService): 사용하지 않는 import문 삭제 * [#38] refactor: 커스텀 어노테이션 이름 수정 * [feat] #44 - 홈페이지 공연 및 홍보 조회 GET API 구현 (#47) * [#44] refactor: 코드리뷰 반영 * [#44] fix(Promotion): 기본키 이름 수정, performanceId 연관관계 설정 * [#44] feat: Repository 및 관련 로직 추가 * [#44] feat: errorcode, successcode 추가 * [#44] feat: 홈페이지 request, response dto 생성 * [#44] feat(ScheduleService): dueDate 관련 로직 구현 * [#44] feat(PerformanceService): 홈페이지 정렬 및 response 생성 로직 구현 * [#44] chore: import문 추가 * [feat] #46 - 회원 예매 조회 GET API 구현 (#48) * [#46] remove(BookingRetrieveRequest): 클래스 삭제 * [#46] refactor(BookingSuccessCode): 회원 예매 조회 성공 메시지 추가 * [#46] refactor(GuestBookingRetrieveResponse): 클래스 명 변경 * [#46] refactor(GuestBookingRetrieveRequest): 안쓰는 코드 주석처리 * [#46] refactor(GuestBookingRetrieveService): 클래스 명 수정으로 인한 리팩토링 * [#46] refactor(SecurityConfig): 토큰 사용하지 않는 api 경로 추가하기 * [#46] refactor(BookingRepository): userId로 예약 정보를 가져오는 JPA 메서드 구현 * [#46] feat(MemberBookingRetrieveResponse): 회원 조회 응답 DTO 생성 * [#46] feat(MemberBookingRetrieveService): 회원 예매 조회 로직을 담당하는 서비스 레이어 구현 * [#46] feat(BookingController): 회원 예매 조회 GET API 구현 * [feat] #49 - 예매자 관리 API 구현 (#51) * [#49] feat: 티켓 관련 success, error code 추가 * [#49] feat(Booking): 입금여부 setter 메소드 추가 * [#49] feat(TicketRetrieveResponse): 예매자 확인 response dto 생성 * [#49] feat(Ticket): 예매자 확인용 티켓 정보 response dto 생성 * [#49] feat(TicketRepository): 예매자 필터링용 메소드 생성 * [#49] feat: 예매자 입금정보 수정 request dto 생성 * [#49] feat(TicketDeleteRequest): 예매자 삭제 request dto 생성 * [#49] feat(TicketService): 예매자 관리 관련 로직 구현 * [#49] feat(TicketController): 예매자 관리 엔드포인트 구현 * [#49] chore: swagger annotation 추가 * HOTFIX(SecurityConfig): WHITELIST 경로명 수정 * [fix] #52 - auth whitelist 수정 (#53) * [#52]fix(SecurityConfig): auth_whitelist 수정 * [#52]fix(SecurityConfig): auth_whitelist 수정 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [feat] #54 - 등록한 공연 목록 조회 GET API 구현 (#55) * [#54] feat(PerformanceSuccessCode): success code 추가 * [#54] feat: 회원이 등록한 공연목록 조회 dto 생성 * [#54] feat(PerformanceService): 회원이 등록한 공연목록 조회 로직 구현 * [#54] feat(PerformanceRepository): 회원이 등록한 공연목록 조회 관련 메소드 추가 * [#54] feat(PerformanceController): 회원이 등록한 공연목록 조회 엔드포인트 생성 * [#54] fix(TicketService): exception error 수정 * [#54] chore(application.yml): yml 수정 * [fix] #58 - dev-ci.yml, prod-ci.yml 환경변수 추가 (#59) * [#58] fix(dev-CI.yml): Dev 서버 CI 워크플로우 수정 * [#58] fix(prod-CI.yml): Prod 서버 CI 워크플로우 수정 * [refactor] #61 - Performance Entity field 추가 (#62) * [#61] refactor(Performance): bankHolder 필드 추가 * [#61] chore(BookingController): swagger annotation 수정 * [feat] #63 - healthCheckController 생성 (#64) * [#63] remove(UsersRepository): 중복 클래스 삭제 * [#63] feat(HealthCheckController): healthcheck 컨트롤러 생성 * [feat] #63 - health check URL 화이트리스트에 등록 (#67) * [#63] remove(UsersRepository): 중복 클래스 삭제 * [#63] feat(HealthCheckController): healthcheck 컨트롤러 생성 * [#63] feat(SecurityConfig): healthcheck url white_list에 등록 * [fix] #57 - entity 연관관계 설정 SecurityConfig 수정 (#65) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [fix] #57 - security 관련 에러 대응 (#71) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 * [#57] fix(JwtAuthenticationFilter): 에러 로직 수정 * fix(SecurityConfig): webSecurityCustomizer 로직 추가 * [fix] #73 - security 수정 (#74) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 * [#57] fix(JwtAuthenticationFilter): 에러 로직 수정 * fix(SecurityConfig): webSecurityCustomizer 로직 추가 * [#57] fix:security 수정 * [#76] fix(SecurityConfig): Base64 인코딩을 하도록 변경 (#77) * [fix] #76 - 누락된 코드 추가 (#79) * [#76] fix(SecurityConfig): Base64 인코딩을 하도록 변경 * [#76] chore(SecurityConfig): 누락된 import문 추가 * [#76] chore(JwtTokenProvider): 누락된 코드 추가 * [#81] fix(JwtTokenProvider): jwtsecret을 인코딩하고 디코딩을 하도록 수정 (#82) --------- Co-authored-by: hyerinhwang-sailin * [deploy] merge to main (#87) * [deploy] merge to develop (#27) * [deploy] merge to main (#26) * [#2] chore(.gitignore): .gradle, .idea 파일 삭제 (#3) * [refactor] #4 - 도메인형 디렉터리 구조 변경 및 local, dev, prod 운영 환경 분리 (#5) * [#4] fix: 클래스 첫글자 대문자로 수정 * [#4] remove: enum 삭제 * [#4] feat(BaseSuccessCode): 성공 상태 관리를 위한 인터페이스 생성 * [#4] feat(BaseErrorCode): 에러 상태 관리를 위한 인터페이스 생성 * [#4] refactor: global 패키지로 이동 * [#4] refactor: 서버 운영 환경 분리 * [feat] #6 - dev, prod Dockerfile 분리 및 github Action CI workflow 구현 (#7) * [#6] feat(Dockerfile): prod용 도커 파일 구현 * [#6] feat(Dockerfile-dev): dev용 도커 파일 구현 * [#6] feat(dev-CI.yml): dev용 CI workflow 구현 * [#6] feat(prod-CI.yml): prod용 CI workflow 구현 * [#6] chore(.gitignore): gradle-wrapper.jar 파일은 레포지토리에 포함되도록 설정 * [#6] fix(gradle-wrapper.jar): .gitignore로 누락된 파일 추가 * [#6] chore(build.grade): plain jar 생성 방지 * [#9] docs(README.md): 서비스 소개 README v1 작성 (#10) * [#11] docs(README.md): 리드미 업데이트 (#12) * [feat] #13 - 유저, 예매, 공연, 회차 엔티티 생성 (#15) * [#13] feat(Users): 사용자 엔티티 생성 * [#13] feat(Genre): 장르 열거형 생성 * [#13] feat(BankName): 은행명 열거형 생성 * [#13] refactor(BaseTimeEntity): 업데이트 시간 관리 필드 활성화 * [#13] feat(Performance): 공연 엔티티 생성 * [#13] feat(ScheduleNumber): 회차 번호 열거형 생성 * [#13] feat(Schedule): 회차 엔티티 생성 * [#13] feat(Booking): 예매 엔티티 생성 * [#13] refactor(ScheduleNumber): 네이밍 수정 * [feat] #14 - 회원, 홍보, 등장인물, 스태프 엔티티 생성 (#16) * [#14] feat(Member): 멤버 엔티티 생성 * [#14] feat(Promotion): 홍보 엔티티 생성 * [#14] feat(Cast): 등장인물 엔티티 생성 * [#14] feat(Staff): 스태프 엔티티 생성 * [feat] #13 - 유저, 예매, 공연, 회차 엔티티 생성 (#15) * [#13] feat(Users): 사용자 엔티티 생성 * [#13] feat(Genre): 장르 열거형 생성 * [#13] feat(BankName): 은행명 열거형 생성 * [#13] refactor(BaseTimeEntity): 업데이트 시간 관리 필드 활성화 * [#13] feat(Performance): 공연 엔티티 생성 * [#13] feat(ScheduleNumber): 회차 번호 열거형 생성 * [#13] feat(Schedule): 회차 엔티티 생성 * [#13] feat(Booking): 예매 엔티티 생성 * [#13] refactor(ScheduleNumber): 네이밍 수정 * [#14} fix: 스태프, 등장인물, 홍보 엔티티 상속관계 수정 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [#18] feat(Jenkinsfile): 젠킨스 파일 생성 (#19) * [#20] refactor(Jenkinsfile): 젠킨스 파일 Webhook 테스트용 커밋 (#21) * [#22] feat(Jenkinsfile): Jenkins multibranch 스크립트 작성 (#23) * HOTFIX(Jenkinsfile): Jenkins multibranch 스크립트 수정 * HOTFIX(workflows): 빌드 후 젠킨스 배포가 진행되도록 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * [#24] feat(Jenkinsfile): slack 연동 스크립트 작성 (#25) --------- Co-authored-by: hyerinhwang-sailin * HOTFIX(workflow): 오타 수정 --------- Co-authored-by: hyerinhwang-sailin * [feat] #28 - 비회원 예매 조회 POST API 구현 (#29) * chore(application-dev.yml): dialect 추가 * chore(application-prod.yml): dialect 추가 * [#28] chore(build.gradle): security 의존성 비활성화 - security 일시적으로 비활성화 * [#28] refactor(Booking): 예매 엔티티에 빌더 및 정적팩토리 메서드 추가 * [#28] refactor(ErrorResponse): 정적 팩토리 메서드 네이밍 변환 * [#28] refactor(Schedule): 회차 엔티티에 빌더 및 정적 팩토리 메서드 추가 * [#28] refactor(Performance): 공연 엔티티에 빌더 및 정적 팩토리 메서드 추가 * [#28] refactor(SuccessResponse): 정적 팩토리 메서드 네이밍 변환 * [#28] refactor(GlobalExceptionHandler): INTERNAL_SERVER_ERROR 핸들러 메서드 추가 * [#28] feat(BookingSuccessCode): 예매 성공 메시지를 관리하는 열거형 생성 * [#28] feat(BookingErrorCode): 예매 에러 메시지를 관리하는 열거형 생성 * [#28] feat(BookingRetrieveResponse): 예매 조회 응답 DTO 생성 * [#28] feat(BookingRetrieveRequest): 예매 조회 요청 DTO 생성 * [#28] feat(BookingRepository): 예매 레포지토리 생성 및 비회원 예매 조회 시 예매 내역 가져오는 메서드 구현 * [#28] feat(BookingService): 예매 서비스 레이어 생성 및 비회원 조회 메서드 구현 * [#28] feat(BookingController): 예매 컨트롤러 생성 및 비회원 예매조회 POST API 구현 * [feat] #30 - SwaggerConfig 및 WebConfig 구현 (#31) * [#30] chore(build.gradle): springdoc 의존성 추가 * [#30] feat(SwaggerConfig): SwaggerConfig 추가 * [#30] feat(WebConfig): WebConfig 추가 * HOTFIX(workflows): push 이벤트 시 github action이 빌드 되지 않도록 수정 * HOTFIX(Jenkinsfile): 포트 수정 * [feat] #32 - 티켓 예매 가능 여부 GET API 구현 (#33) * [#32] refactor(BookingController): 메서드명 수정 * [#32] feat(ConflictException): Conflict 409에러 클래스 생성 * [#32] feat(GlobalExceptionHandler): ConflictException 등록 * [#32] feat(TicketAvailabilityRequest): TicketAvailabilityRequest DTO 생성 * [#32] feat(TicketAvailabilityResponse): TicketAvailabilityResponse DTO 생성 * [#32] feat(ScheduleSuccessCode): ScheduleSuccessCode 열거형 생성 * [#32] feat(ScheduleErrorCode): ScheduleErrorCode 열거형 생성 * [#32] feat(ScheduleRepository): ScheduleRepository 생성 * [#32] feat(ScheduleService): ScheduleService 생성 및 회차별 티켓 구매 가능 여부 판단 메서드 구현 * [#32] feat(ScheduleController): 회차별 티켓 수량 조회 GET API 구현 * [feat] #17 - 카카오 소셜 로그인 API 구현 (#36) * [#17] feat(build.gradle): jwt, security, open feign, Redis 의존성 추가 * [#17] feat(BeatApplication): OpenFeign 관련 어노테이션 추가 * [#17] feat(RedisConfig): redis 설정 * [#17] feat: redis 활용 jwt 토큰 생성 로직 구현 * [#17] feat(SecurityConfig): security 설정 * [#17] refactor: Member, Users 엔티티 수정 및 관련 enum 추가 * [#17] feat: Member, Users 도메인 관련 인증 로직 구현 * [#17] feat(MemberController): Member 관련 API 엔드포인트 구현 * [#17] feat: Security 관련 인증 객체 구현 * [#17] feat: 소셜로그인 로직 구현 * [#17] fix: 소셜로그인 오류 해결 * [#17] refactor: 코드리뷰 반영 * [#17] refactor: 코드리뷰 반영 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [feat] #34 - 비회원 예매 POST API 구현 (#35) * [#34] feat(Users): 빌더 및 정적 팩토리 메서드 추가 * [#34] feat(Entity): 엔티티 id 필드 수정 * [#34] refactor(application.yml): dialect 추가 * [#34] refactor(ScheduleService): 네이밍 수정 * [#34] refactor(BookingSuccessCode): 비회원 예매 조회 성공 메시지 추가 * [#34] feat(GuestBookingRequest): 비회원 예매 요청 DTO 생성 * [#34] feat(GuestBookingResponse): 비회원 예매 응답 DTO 생성 * [#34] refactor(BookingRetrieveService): 네이밍 수정 * [#34] feat(PerformanceRepository): 공연 레포지토리 생성 * [#34] feat(UserRepository): 유저 레포지토리 생성 * [#34] refactor(BookingRepository): 비회원 예매 시 네가지 정보가 모두 일치 해야만 다른 유저로 판단하는 메서드 구현 * [#34] refactor(ScheduleRepository): 비관적 락 적용 * [#34] feat(GuestBookingService): 비관적 락을 이용해 비회원 예매 로직 구현 * [#34] feat(BookingController): 비회원 예매 POST API 구현 * [#34] test(GuestBookingServiceConcurrencyTest): 동시성 테스트 구현 * [Refactor] #37 - 카카오 로그인 API response 수정 (#39) * [#37] rename: 빈 충돌 해결 위해 UserRepository를 UsersRepository로 rename * [#37] refactor: login response에서 refreshToken을 cookie에 담아주도록 변경 * [#37] fix: dao, repository 충돌 해결 * [#37] refactor: 어노테이션 수정 * [feat] #40 - 소개 관련 공연 정보 조회 GET API 구현 (#41) * [#40] feat: repository 추가 * [#40] feat: 공연 관련 성공, 실패 메세지 추가 * [#40] feat(PerformanceDetailResponse): 공연 상세페이지 조회 응답 dto * [#40] feat(PerformanceService): 공연 상세페이지 조회 로직 구현 * [#40] feat(PerformanceController): 공연 상세페이지 엔드포인트 구현 * [#40] feat(SecurityConfig): auth whitelist update * [#40] refactor: dto 분리 및 rename * [feat] #42 - 예매 관련 공연 정보 GET API 구현 (#43) * [#42] feat: 예매 관련 정보 조회 dto 생성 * [#42] feat: 예매 관련 정보 조회 성공 메세지 추가 * [#42] feat(ScheduleService): 잔여티켓계산, 예매가능여부확인, 예매가능여부 update 메소드 구현 * [#42] feat(PerformanceService): 예매관련공연정보의 response 생성하는 로직 구현 * [#42] feat(PerformanceController): 예매관련공연정보 조회 엔드포인트 구현 * [#42] feat(SecurityConfig): auth_whitelist update * [#42] refactor(ScheduleService): findTicketAvailability에서 getAvailableTicketCount method 사용하도록 수정 * [feat] #38 - 회원 예매 POST API 구현 (#45) * [#38] fix(Cast): Join 하는 부분 수정 및 빌더와 정적 팩토리 메서드 패턴 도입 * [#38] chore(application.yml): 계층 수정 * [#38] feat: 커스텀 어노테이션 생성 * [#38] fix(UserRepository): 중복된 클래스 삭제 * [#38] feat(UserErrorCode): 유저의 에러 메시지를 관리하는 열거형 생성 * [#38] refactor(MemberErrorCode): message 목적에 맞게 변경 * [#38] refactor(BookingSuccessCode): 회원 예매 성공 메시지 추가 * [#38] feat: 커스텀 어노테이션 생성 커밋에 누락된 클래스 추가 * [#38] refactor(GuestBookingService): schedule에서 바로 get 하도록 수정 * [#38] test(GuestBookingServiceConcurrencyTest): import문 경로명 변경 * [#38] refactor(MemberService): @Transactional 어노테이션이 필요한 메서드에 해당 옵션 추가 * [#38] feat(MemberBookingRequest): 회원 예매 요청 DTO 생성 * [#38] feat(MemberBookingResponse): 회원 예매 응답 DTO 생성 * [#38] refactor(MemberController): refreshToken을 쿠키에 넣어주도록 구현 * [#38] feat(MemberBookingService): 회원 예매 서비스 로직 구현 * [#38] feat(BookingController): 회원 예매 요청 POST API 구현 * [#38] fix: 빌드 안되는 부분 수정 * [#38] remove(MemberBookingService): 사용하지 않는 import문 삭제 * [#38] refactor: 커스텀 어노테이션 이름 수정 * [feat] #44 - 홈페이지 공연 및 홍보 조회 GET API 구현 (#47) * [#44] refactor: 코드리뷰 반영 * [#44] fix(Promotion): 기본키 이름 수정, performanceId 연관관계 설정 * [#44] feat: Repository 및 관련 로직 추가 * [#44] feat: errorcode, successcode 추가 * [#44] feat: 홈페이지 request, response dto 생성 * [#44] feat(ScheduleService): dueDate 관련 로직 구현 * [#44] feat(PerformanceService): 홈페이지 정렬 및 response 생성 로직 구현 * [#44] chore: import문 추가 * [feat] #46 - 회원 예매 조회 GET API 구현 (#48) * [#46] remove(BookingRetrieveRequest): 클래스 삭제 * [#46] refactor(BookingSuccessCode): 회원 예매 조회 성공 메시지 추가 * [#46] refactor(GuestBookingRetrieveResponse): 클래스 명 변경 * [#46] refactor(GuestBookingRetrieveRequest): 안쓰는 코드 주석처리 * [#46] refactor(GuestBookingRetrieveService): 클래스 명 수정으로 인한 리팩토링 * [#46] refactor(SecurityConfig): 토큰 사용하지 않는 api 경로 추가하기 * [#46] refactor(BookingRepository): userId로 예약 정보를 가져오는 JPA 메서드 구현 * [#46] feat(MemberBookingRetrieveResponse): 회원 조회 응답 DTO 생성 * [#46] feat(MemberBookingRetrieveService): 회원 예매 조회 로직을 담당하는 서비스 레이어 구현 * [#46] feat(BookingController): 회원 예매 조회 GET API 구현 * [feat] #49 - 예매자 관리 API 구현 (#51) * [#49] feat: 티켓 관련 success, error code 추가 * [#49] feat(Booking): 입금여부 setter 메소드 추가 * [#49] feat(TicketRetrieveResponse): 예매자 확인 response dto 생성 * [#49] feat(Ticket): 예매자 확인용 티켓 정보 response dto 생성 * [#49] feat(TicketRepository): 예매자 필터링용 메소드 생성 * [#49] feat: 예매자 입금정보 수정 request dto 생성 * [#49] feat(TicketDeleteRequest): 예매자 삭제 request dto 생성 * [#49] feat(TicketService): 예매자 관리 관련 로직 구현 * [#49] feat(TicketController): 예매자 관리 엔드포인트 구현 * [#49] chore: swagger annotation 추가 * HOTFIX(SecurityConfig): WHITELIST 경로명 수정 * [fix] #52 - auth whitelist 수정 (#53) * [#52]fix(SecurityConfig): auth_whitelist 수정 * [#52]fix(SecurityConfig): auth_whitelist 수정 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [feat] #54 - 등록한 공연 목록 조회 GET API 구현 (#55) * [#54] feat(PerformanceSuccessCode): success code 추가 * [#54] feat: 회원이 등록한 공연목록 조회 dto 생성 * [#54] feat(PerformanceService): 회원이 등록한 공연목록 조회 로직 구현 * [#54] feat(PerformanceRepository): 회원이 등록한 공연목록 조회 관련 메소드 추가 * [#54] feat(PerformanceController): 회원이 등록한 공연목록 조회 엔드포인트 생성 * [#54] fix(TicketService): exception error 수정 * [#54] chore(application.yml): yml 수정 * [fix] #58 - dev-ci.yml, prod-ci.yml 환경변수 추가 (#59) * [#58] fix(dev-CI.yml): Dev 서버 CI 워크플로우 수정 * [#58] fix(prod-CI.yml): Prod 서버 CI 워크플로우 수정 * [refactor] #61 - Performance Entity field 추가 (#62) * [#61] refactor(Performance): bankHolder 필드 추가 * [#61] chore(BookingController): swagger annotation 수정 * [feat] #63 - healthCheckController 생성 (#64) * [#63] remove(UsersRepository): 중복 클래스 삭제 * [#63] feat(HealthCheckController): healthcheck 컨트롤러 생성 * [feat] #63 - health check URL 화이트리스트에 등록 (#67) * [#63] remove(UsersRepository): 중복 클래스 삭제 * [#63] feat(HealthCheckController): healthcheck 컨트롤러 생성 * [#63] feat(SecurityConfig): healthcheck url white_list에 등록 * [fix] #57 - entity 연관관계 설정 SecurityConfig 수정 (#65) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [fix] #57 - security 관련 에러 대응 (#71) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 * [#57] fix(JwtAuthenticationFilter): 에러 로직 수정 * fix(SecurityConfig): webSecurityCustomizer 로직 추가 * [fix] #73 - security 수정 (#74) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 * [#57] fix(JwtAuthenticationFilter): 에러 로직 수정 * fix(SecurityConfig): webSecurityCustomizer 로직 추가 * [#57] fix:security 수정 * [#76] fix(SecurityConfig): Base64 인코딩을 하도록 변경 (#77) * [fix] #76 - 누락된 코드 추가 (#79) * [#76] fix(SecurityConfig): Base64 인코딩을 하도록 변경 * [#76] chore(SecurityConfig): 누락된 import문 추가 * [#76] chore(JwtTokenProvider): 누락된 코드 추가 * [#81] fix(JwtTokenProvider): jwtsecret을 인코딩하고 디코딩을 하도록 수정 (#82) * [#85] chore(application.yml): 환경변수 설정 (#86) --------- Co-authored-by: hyerinhwang-sailin --------- Co-authored-by: hyerinhwang-sailin * Revert "[deploy] merge to main (#90)" (#91) This reverts commit f519b0c82a2f01d4374eb045b9e90c6303381e50. * [fix] #93 - 누락된 어노테이션 및 누락된 경로명 추가 (#94) * [#93] fix(HealthCheckController): 누락된 어노테이션 추가 * [#93] refactor(SecurityConfig): 누락된 경로명 추가 * [bug] #84 - actuator/health 의존성 및 설정 추가 (#96) * [#84] chore(build.gradle): 의존성 추가 * [#84] chore: health/actuator yml 설정 추가 * [#84] chore: redis yml 설정 추가 * [#84] chore: yml 수정 (#99) * [bug] #101 - yml, s3 수정 (#102) * [#101] chore: yml 수정 * [#101] feat: s3 추가 * HOTIFX: prod ci-yml 수정 --------- Co-authored-by: hyerinhwang-sailin * Update application-prod.yml --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [feat] #50 - 공연 생성 POST API 생성 (#108) * [#50] chore: 폴더 이동 * [#50] feat: request DTO 생성 * [#50] feat: response DTO 생성 * [#50] refactor(PerformanceSuccessCode): 공연 생성 성공 메시지 추가 * [#50] chore(PerformanceService): import문 변 * [#50] chore(HomeController): import문 변 * [#50] feat(PerformanceCreateService): 공연 생성 서비스 로직 생성 * [#50] feat(PerformanceController): 공연 생성 POST API 생성 * [feat] #111 - 웹발신 구현 (#114) * [#111] feat(build.gradle): coolsms 의존성 추가 * [#111] feat: yml에 coolsms 환경변수 세팅 * [#111] feat(CoolSmsService): coolsms 웹발신 로직 구현 * [#111] feat(TicketService): coolsms 웹발신 트리거 로직 구현 * [#111] comment(TicketController): swagger 설명 수정 * [feat] #110 - 공연 수정 PUT API 구현 (#112) * [#110] feat: request DTO 생성 * [#110] feat: response DTO 생성 * [#110] feat(CastErrorCode): 등장인물 열거형 생성 * [#110] feat(StaffErrorCode): 스태프 에러 열거형 생성 * [#110] refactor(PerformanceSuccessCode): 공연 성공 수정 메시지 추가 * [#110] refactor(Performance): 업데이트 메서드 추가 * [#110] refactor(Schedule): 업데이트 메서드 추가 * [#110] refactor(Staff): 업데이트 메서드 추가 * [#110] test(GuestBookingServiceConcurrencyTest): 변경된 필드 추가 * [#110] refactor(Cast): 업데이트 메서드 추 * [#110] feat(PerformanceUpdateService): 공연 수정 서비스 로직 구현 * [#110] feat(PerformanceController): 공연 수정 PUT API 추가 * [feat] #113 - 공연 삭제 DELETE API 구현 (#116) * [#113] refactor(BookingRepository): 해당 공연을 예매한 사람이 있는지 판단하는 메서드 구현 * [#113] refactor(PerformanceErrorCode): 예매자가 한명 있을 경우 공연 취소가 안될때 보여주는 에러메시지 추가 * [#113] refactor(PerformanceSuccessCode): 공연이 삭제되었을 때 보여주는 성공 메시지 추가 * [#113] refactor(PerformanceManagementService): 멤버 아이디를 인자로 받도록 수정 및 공연 삭제 메서드 구현 * [#113] feat(PerformanceController): 공연 삭제 DELETE API 구현 * Update README.md * HOTFIX: 코드 수정 * [#119] refactor: response에 필요 필드 추가 (#120) * [feat] #117 - 공연 수정 페이지 정보 조회 GET API 구현 (#121) * [#117] remove(PerformanceCreateService): 사용하지 않는 클래스 삭제 * [#117] refactor(CastRepository): DB에 등록된 등장인물을 모두 가져오는 메서드 구현 * [#117] refactor(ScheduleRepository): DB에 등록된 회차를 모두 가져오는 메서드 구현 * [#117] refactor(StaffRepository): DB에 등록된 스태프를 모두 가져오는 메서드 구현 * [#117] refactor(PerformanceSuccessCode): 공연 수정 페이지 조회 성공 메시지 추가 * [#117] refactor(PerformanceEditResponse): 공연 수정 페이지 조회 응답 DTO 생성 * [#117] refactor(PerformanceService): 수정 페이지의 정보를 조회하는 서비스 로직 구현 * [#117] feat(PerformanceController): 공연 수정 페이지의 정보를 조회하는 GET API 구현 * [#123] fix(PerformanceController): 중복 코드 제거 (#124) * [#128] fix: 누락된 환경 변수 주입 및 수정 (#129) * [feat] #127 - presigned-url로 포스터 이미지, 등장인물 이미지 리스트, 스태프 이미지 리스트를 반환하도록 구현 (#131) * [#127] feat(SecurityConfig): 화이트 리스트에 presigned-url 추가 * [#127] refactor(FileService): 포스터 이미지, 등장인물 이미지 리스트, 스태프 이미지 리스트의 presigned-url을 반환하는 메서드 구현 * [#127] feat(FileController): presigned-url GET API 구현 * [refactor] #133 - presigned URL의 만료 시간 늘리기 (#134) * [#133] remove: 삭제된 클래스 커밋 * [#133] refactor(FileService): URL의 유효시간 2시간으로 설정 * [#135] refactor(SwaggerConfig): SwaggerConfig 리팩토링 (#136) * [#128] fix(BankName): bankname enum 추가 (#139) * [refactor] #126 - 프론트 요청 필드 반영 (#140) * [#126] refactor(BookingController): 회원 예매 조회시 성공 메시지 변경 * [#126] refactor(BookingRepository): 쿼리문 추가 * [#126] refactor(GuestBookingRequest): enum으로 리턴값 변경 * [#126] refactor(GuestBookingResponse): enum으로 리턴값 변경 * [#126] chore(GuestBookingRetrieveRequest): 주석 삭제 * [#126] refactor(GuestBookingRetrieveResponse): performanceId, posterImage, totalPaymentAmount 추가 * [#126] refactor(MemberBookingRetrieveResponse): performanceId, posterImage, totalPaymentAmount 추가 * [#126] refactor(MemberBookingRetrieveService): response에 추가된 필드 리턴하도록 리팩토링 * [#126] refactor(GuestBookingRetrieveService): response에 추가된 필드 리턴하도록 리팩토링 * [#126] refactor(GuestBookingService): displayName이 아닌 열거형으로 리턴하도록 수정 * [#126] refactor(MemberBookingRequest): 정적 팩토리 메서드 삭제 * [#126] refactor(MemberBookingResponse): enum으로 리턴하도록 수정 * [#126] refactor(MemberBookingService): enum으로 리턴하도록 수정 * [#126] test(GuestBookingServiceConcurrencyTest): DTO에서 수정된 리턴 방법 반영 * [#142] refactor(FileController): castImages, staffImages의 파라미터 value를 주지 않아도 presigned-url을 발급하도록 변경 (#143) * Update README.md --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> Co-authored-by: DongHoon Lee --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index bb9b71ff..f75c8e01 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ |:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| :---: | | branch |branch | | [hoonyworld](https://github.com/hoonyworld) | [hyerinhwang-sailin](https://github.com/hyerinhwang-sailin) | -| prod 서버용 EC2. RDS 구축
dev, prod 서버 github action CI 구축(dockerhub push까지)
Jenkins multibranch pipeline으로 dev 서버에서 dev, prod CD 및
prod 서버에서 nginx 무중단 배포 구축
ERD 및 DB 설계
Entity 초기 세팅 | AWS dev 서버 구축
ERD 및 DB 설계
인증 / 인가 구현 (Redis)
웹 발신
Entity 초기 세팅
카카오 소셜 로그인
Swagger 세팅 | +| prod 서버용 EC2, RDS 구축
dev, prod github action
CI 구축(~dockerhub push)
Jenkins multibranch pipeline
dev 서버에서 dev, prod CD
prod 서버 nginx 무중단배포
ERD 및 DB 설계
Entity 초기 세팅 | dev 서버용 EC2, RDS 구축
ERD 및 DB 설계
인증 / 인가 구현 (Redis)
웹 발신
Entity 초기 세팅
카카오 소셜 로그인
Swagger 세팅 | ### 🏡 Git Convention [Git Convention](https://www.notion.so/jiwoothejay/git-convention-9bee60c3bb0a45f1913616b3e72b87b7) From a5e8c72e36686599706234732882fc78a238e45d Mon Sep 17 00:00:00 2001 From: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> Date: Fri, 19 Jul 2024 17:39:37 +0900 Subject: [PATCH 3/6] [deploy] merge to main (#149) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * [deploy] merge to develop (#27) * [deploy] merge to main (#26) * [#2] chore(.gitignore): .gradle, .idea 파일 삭제 (#3) * [refactor] #4 - 도메인형 디렉터리 구조 변경 및 local, dev, prod 운영 환경 분리 (#5) * [#4] fix: 클래스 첫글자 대문자로 수정 * [#4] remove: enum 삭제 * [#4] feat(BaseSuccessCode): 성공 상태 관리를 위한 인터페이스 생성 * [#4] feat(BaseErrorCode): 에러 상태 관리를 위한 인터페이스 생성 * [#4] refactor: global 패키지로 이동 * [#4] refactor: 서버 운영 환경 분리 * [feat] #6 - dev, prod Dockerfile 분리 및 github Action CI workflow 구현 (#7) * [#6] feat(Dockerfile): prod용 도커 파일 구현 * [#6] feat(Dockerfile-dev): dev용 도커 파일 구현 * [#6] feat(dev-CI.yml): dev용 CI workflow 구현 * [#6] feat(prod-CI.yml): prod용 CI workflow 구현 * [#6] chore(.gitignore): gradle-wrapper.jar 파일은 레포지토리에 포함되도록 설정 * [#6] fix(gradle-wrapper.jar): .gitignore로 누락된 파일 추가 * [#6] chore(build.grade): plain jar 생성 방지 * [#9] docs(README.md): 서비스 소개 README v1 작성 (#10) * [#11] docs(README.md): 리드미 업데이트 (#12) * [feat] #13 - 유저, 예매, 공연, 회차 엔티티 생성 (#15) * [#13] feat(Users): 사용자 엔티티 생성 * [#13] feat(Genre): 장르 열거형 생성 * [#13] feat(BankName): 은행명 열거형 생성 * [#13] refactor(BaseTimeEntity): 업데이트 시간 관리 필드 활성화 * [#13] feat(Performance): 공연 엔티티 생성 * [#13] feat(ScheduleNumber): 회차 번호 열거형 생성 * [#13] feat(Schedule): 회차 엔티티 생성 * [#13] feat(Booking): 예매 엔티티 생성 * [#13] refactor(ScheduleNumber): 네이밍 수정 * [feat] #14 - 회원, 홍보, 등장인물, 스태프 엔티티 생성 (#16) * [#14] feat(Member): 멤버 엔티티 생성 * [#14] feat(Promotion): 홍보 엔티티 생성 * [#14] feat(Cast): 등장인물 엔티티 생성 * [#14] feat(Staff): 스태프 엔티티 생성 * [feat] #13 - 유저, 예매, 공연, 회차 엔티티 생성 (#15) * [#13] feat(Users): 사용자 엔티티 생성 * [#13] feat(Genre): 장르 열거형 생성 * [#13] feat(BankName): 은행명 열거형 생성 * [#13] refactor(BaseTimeEntity): 업데이트 시간 관리 필드 활성화 * [#13] feat(Performance): 공연 엔티티 생성 * [#13] feat(ScheduleNumber): 회차 번호 열거형 생성 * [#13] feat(Schedule): 회차 엔티티 생성 * [#13] feat(Booking): 예매 엔티티 생성 * [#13] refactor(ScheduleNumber): 네이밍 수정 * [#14} fix: 스태프, 등장인물, 홍보 엔티티 상속관계 수정 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [#18] feat(Jenkinsfile): 젠킨스 파일 생성 (#19) * [#20] refactor(Jenkinsfile): 젠킨스 파일 Webhook 테스트용 커밋 (#21) * [#22] feat(Jenkinsfile): Jenkins multibranch 스크립트 작성 (#23) * HOTFIX(Jenkinsfile): Jenkins multibranch 스크립트 수정 * HOTFIX(workflows): 빌드 후 젠킨스 배포가 진행되도록 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * [#24] feat(Jenkinsfile): slack 연동 스크립트 작성 (#25) --------- Co-authored-by: hyerinhwang-sailin * HOTFIX(workflow): 오타 수정 --------- Co-authored-by: hyerinhwang-sailin * [feat] #28 - 비회원 예매 조회 POST API 구현 (#29) * chore(application-dev.yml): dialect 추가 * chore(application-prod.yml): dialect 추가 * [#28] chore(build.gradle): security 의존성 비활성화 - security 일시적으로 비활성화 * [#28] refactor(Booking): 예매 엔티티에 빌더 및 정적팩토리 메서드 추가 * [#28] refactor(ErrorResponse): 정적 팩토리 메서드 네이밍 변환 * [#28] refactor(Schedule): 회차 엔티티에 빌더 및 정적 팩토리 메서드 추가 * [#28] refactor(Performance): 공연 엔티티에 빌더 및 정적 팩토리 메서드 추가 * [#28] refactor(SuccessResponse): 정적 팩토리 메서드 네이밍 변환 * [#28] refactor(GlobalExceptionHandler): INTERNAL_SERVER_ERROR 핸들러 메서드 추가 * [#28] feat(BookingSuccessCode): 예매 성공 메시지를 관리하는 열거형 생성 * [#28] feat(BookingErrorCode): 예매 에러 메시지를 관리하는 열거형 생성 * [#28] feat(BookingRetrieveResponse): 예매 조회 응답 DTO 생성 * [#28] feat(BookingRetrieveRequest): 예매 조회 요청 DTO 생성 * [#28] feat(BookingRepository): 예매 레포지토리 생성 및 비회원 예매 조회 시 예매 내역 가져오는 메서드 구현 * [#28] feat(BookingService): 예매 서비스 레이어 생성 및 비회원 조회 메서드 구현 * [#28] feat(BookingController): 예매 컨트롤러 생성 및 비회원 예매조회 POST API 구현 * [feat] #30 - SwaggerConfig 및 WebConfig 구현 (#31) * [#30] chore(build.gradle): springdoc 의존성 추가 * [#30] feat(SwaggerConfig): SwaggerConfig 추가 * [#30] feat(WebConfig): WebConfig 추가 * HOTFIX(workflows): push 이벤트 시 github action이 빌드 되지 않도록 수정 * HOTFIX(Jenkinsfile): 포트 수정 * [feat] #32 - 티켓 예매 가능 여부 GET API 구현 (#33) * [#32] refactor(BookingController): 메서드명 수정 * [#32] feat(ConflictException): Conflict 409에러 클래스 생성 * [#32] feat(GlobalExceptionHandler): ConflictException 등록 * [#32] feat(TicketAvailabilityRequest): TicketAvailabilityRequest DTO 생성 * [#32] feat(TicketAvailabilityResponse): TicketAvailabilityResponse DTO 생성 * [#32] feat(ScheduleSuccessCode): ScheduleSuccessCode 열거형 생성 * [#32] feat(ScheduleErrorCode): ScheduleErrorCode 열거형 생성 * [#32] feat(ScheduleRepository): ScheduleRepository 생성 * [#32] feat(ScheduleService): ScheduleService 생성 및 회차별 티켓 구매 가능 여부 판단 메서드 구현 * [#32] feat(ScheduleController): 회차별 티켓 수량 조회 GET API 구현 * [feat] #17 - 카카오 소셜 로그인 API 구현 (#36) * [#17] feat(build.gradle): jwt, security, open feign, Redis 의존성 추가 * [#17] feat(BeatApplication): OpenFeign 관련 어노테이션 추가 * [#17] feat(RedisConfig): redis 설정 * [#17] feat: redis 활용 jwt 토큰 생성 로직 구현 * [#17] feat(SecurityConfig): security 설정 * [#17] refactor: Member, Users 엔티티 수정 및 관련 enum 추가 * [#17] feat: Member, Users 도메인 관련 인증 로직 구현 * [#17] feat(MemberController): Member 관련 API 엔드포인트 구현 * [#17] feat: Security 관련 인증 객체 구현 * [#17] feat: 소셜로그인 로직 구현 * [#17] fix: 소셜로그인 오류 해결 * [#17] refactor: 코드리뷰 반영 * [#17] refactor: 코드리뷰 반영 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [feat] #34 - 비회원 예매 POST API 구현 (#35) * [#34] feat(Users): 빌더 및 정적 팩토리 메서드 추가 * [#34] feat(Entity): 엔티티 id 필드 수정 * [#34] refactor(application.yml): dialect 추가 * [#34] refactor(ScheduleService): 네이밍 수정 * [#34] refactor(BookingSuccessCode): 비회원 예매 조회 성공 메시지 추가 * [#34] feat(GuestBookingRequest): 비회원 예매 요청 DTO 생성 * [#34] feat(GuestBookingResponse): 비회원 예매 응답 DTO 생성 * [#34] refactor(BookingRetrieveService): 네이밍 수정 * [#34] feat(PerformanceRepository): 공연 레포지토리 생성 * [#34] feat(UserRepository): 유저 레포지토리 생성 * [#34] refactor(BookingRepository): 비회원 예매 시 네가지 정보가 모두 일치 해야만 다른 유저로 판단하는 메서드 구현 * [#34] refactor(ScheduleRepository): 비관적 락 적용 * [#34] feat(GuestBookingService): 비관적 락을 이용해 비회원 예매 로직 구현 * [#34] feat(BookingController): 비회원 예매 POST API 구현 * [#34] test(GuestBookingServiceConcurrencyTest): 동시성 테스트 구현 * [Refactor] #37 - 카카오 로그인 API response 수정 (#39) * [#37] rename: 빈 충돌 해결 위해 UserRepository를 UsersRepository로 rename * [#37] refactor: login response에서 refreshToken을 cookie에 담아주도록 변경 * [#37] fix: dao, repository 충돌 해결 * [#37] refactor: 어노테이션 수정 * [feat] #40 - 소개 관련 공연 정보 조회 GET API 구현 (#41) * [#40] feat: repository 추가 * [#40] feat: 공연 관련 성공, 실패 메세지 추가 * [#40] feat(PerformanceDetailResponse): 공연 상세페이지 조회 응답 dto * [#40] feat(PerformanceService): 공연 상세페이지 조회 로직 구현 * [#40] feat(PerformanceController): 공연 상세페이지 엔드포인트 구현 * [#40] feat(SecurityConfig): auth whitelist update * [#40] refactor: dto 분리 및 rename * [feat] #42 - 예매 관련 공연 정보 GET API 구현 (#43) * [#42] feat: 예매 관련 정보 조회 dto 생성 * [#42] feat: 예매 관련 정보 조회 성공 메세지 추가 * [#42] feat(ScheduleService): 잔여티켓계산, 예매가능여부확인, 예매가능여부 update 메소드 구현 * [#42] feat(PerformanceService): 예매관련공연정보의 response 생성하는 로직 구현 * [#42] feat(PerformanceController): 예매관련공연정보 조회 엔드포인트 구현 * [#42] feat(SecurityConfig): auth_whitelist update * [#42] refactor(ScheduleService): findTicketAvailability에서 getAvailableTicketCount method 사용하도록 수정 * [feat] #38 - 회원 예매 POST API 구현 (#45) * [#38] fix(Cast): Join 하는 부분 수정 및 빌더와 정적 팩토리 메서드 패턴 도입 * [#38] chore(application.yml): 계층 수정 * [#38] feat: 커스텀 어노테이션 생성 * [#38] fix(UserRepository): 중복된 클래스 삭제 * [#38] feat(UserErrorCode): 유저의 에러 메시지를 관리하는 열거형 생성 * [#38] refactor(MemberErrorCode): message 목적에 맞게 변경 * [#38] refactor(BookingSuccessCode): 회원 예매 성공 메시지 추가 * [#38] feat: 커스텀 어노테이션 생성 커밋에 누락된 클래스 추가 * [#38] refactor(GuestBookingService): schedule에서 바로 get 하도록 수정 * [#38] test(GuestBookingServiceConcurrencyTest): import문 경로명 변경 * [#38] refactor(MemberService): @Transactional 어노테이션이 필요한 메서드에 해당 옵션 추가 * [#38] feat(MemberBookingRequest): 회원 예매 요청 DTO 생성 * [#38] feat(MemberBookingResponse): 회원 예매 응답 DTO 생성 * [#38] refactor(MemberController): refreshToken을 쿠키에 넣어주도록 구현 * [#38] feat(MemberBookingService): 회원 예매 서비스 로직 구현 * [#38] feat(BookingController): 회원 예매 요청 POST API 구현 * [#38] fix: 빌드 안되는 부분 수정 * [#38] remove(MemberBookingService): 사용하지 않는 import문 삭제 * [#38] refactor: 커스텀 어노테이션 이름 수정 * [feat] #44 - 홈페이지 공연 및 홍보 조회 GET API 구현 (#47) * [#44] refactor: 코드리뷰 반영 * [#44] fix(Promotion): 기본키 이름 수정, performanceId 연관관계 설정 * [#44] feat: Repository 및 관련 로직 추가 * [#44] feat: errorcode, successcode 추가 * [#44] feat: 홈페이지 request, response dto 생성 * [#44] feat(ScheduleService): dueDate 관련 로직 구현 * [#44] feat(PerformanceService): 홈페이지 정렬 및 response 생성 로직 구현 * [#44] chore: import문 추가 * [feat] #46 - 회원 예매 조회 GET API 구현 (#48) * [#46] remove(BookingRetrieveRequest): 클래스 삭제 * [#46] refactor(BookingSuccessCode): 회원 예매 조회 성공 메시지 추가 * [#46] refactor(GuestBookingRetrieveResponse): 클래스 명 변경 * [#46] refactor(GuestBookingRetrieveRequest): 안쓰는 코드 주석처리 * [#46] refactor(GuestBookingRetrieveService): 클래스 명 수정으로 인한 리팩토링 * [#46] refactor(SecurityConfig): 토큰 사용하지 않는 api 경로 추가하기 * [#46] refactor(BookingRepository): userId로 예약 정보를 가져오는 JPA 메서드 구현 * [#46] feat(MemberBookingRetrieveResponse): 회원 조회 응답 DTO 생성 * [#46] feat(MemberBookingRetrieveService): 회원 예매 조회 로직을 담당하는 서비스 레이어 구현 * [#46] feat(BookingController): 회원 예매 조회 GET API 구현 * [feat] #49 - 예매자 관리 API 구현 (#51) * [#49] feat: 티켓 관련 success, error code 추가 * [#49] feat(Booking): 입금여부 setter 메소드 추가 * [#49] feat(TicketRetrieveResponse): 예매자 확인 response dto 생성 * [#49] feat(Ticket): 예매자 확인용 티켓 정보 response dto 생성 * [#49] feat(TicketRepository): 예매자 필터링용 메소드 생성 * [#49] feat: 예매자 입금정보 수정 request dto 생성 * [#49] feat(TicketDeleteRequest): 예매자 삭제 request dto 생성 * [#49] feat(TicketService): 예매자 관리 관련 로직 구현 * [#49] feat(TicketController): 예매자 관리 엔드포인트 구현 * [#49] chore: swagger annotation 추가 * HOTFIX(SecurityConfig): WHITELIST 경로명 수정 * [fix] #52 - auth whitelist 수정 (#53) * [#52]fix(SecurityConfig): auth_whitelist 수정 * [#52]fix(SecurityConfig): auth_whitelist 수정 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [feat] #54 - 등록한 공연 목록 조회 GET API 구현 (#55) * [#54] feat(PerformanceSuccessCode): success code 추가 * [#54] feat: 회원이 등록한 공연목록 조회 dto 생성 * [#54] feat(PerformanceService): 회원이 등록한 공연목록 조회 로직 구현 * [#54] feat(PerformanceRepository): 회원이 등록한 공연목록 조회 관련 메소드 추가 * [#54] feat(PerformanceController): 회원이 등록한 공연목록 조회 엔드포인트 생성 * [#54] fix(TicketService): exception error 수정 * [#54] chore(application.yml): yml 수정 * [fix] #58 - dev-ci.yml, prod-ci.yml 환경변수 추가 (#59) * [#58] fix(dev-CI.yml): Dev 서버 CI 워크플로우 수정 * [#58] fix(prod-CI.yml): Prod 서버 CI 워크플로우 수정 * [refactor] #61 - Performance Entity field 추가 (#62) * [#61] refactor(Performance): bankHolder 필드 추가 * [#61] chore(BookingController): swagger annotation 수정 * [feat] #63 - healthCheckController 생성 (#64) * [#63] remove(UsersRepository): 중복 클래스 삭제 * [#63] feat(HealthCheckController): healthcheck 컨트롤러 생성 * [feat] #63 - health check URL 화이트리스트에 등록 (#67) * [#63] remove(UsersRepository): 중복 클래스 삭제 * [#63] feat(HealthCheckController): healthcheck 컨트롤러 생성 * [#63] feat(SecurityConfig): healthcheck url white_list에 등록 * [fix] #57 - entity 연관관계 설정 SecurityConfig 수정 (#65) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [fix] #57 - security 관련 에러 대응 (#71) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 * [#57] fix(JwtAuthenticationFilter): 에러 로직 수정 * fix(SecurityConfig): webSecurityCustomizer 로직 추가 * [fix] #73 - security 수정 (#74) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 * [#57] fix(JwtAuthenticationFilter): 에러 로직 수정 * fix(SecurityConfig): webSecurityCustomizer 로직 추가 * [#57] fix:security 수정 * [#76] fix(SecurityConfig): Base64 인코딩을 하도록 변경 (#77) * [fix] #76 - 누락된 코드 추가 (#79) * [#76] fix(SecurityConfig): Base64 인코딩을 하도록 변경 * [#76] chore(SecurityConfig): 누락된 import문 추가 * [#76] chore(JwtTokenProvider): 누락된 코드 추가 * [#81] fix(JwtTokenProvider): jwtsecret을 인코딩하고 디코딩을 하도록 수정 (#82) * [#85] chore(application.yml): 환경변수 설정 (#86) * [chore] #88 - 레디스 환경변수 추가 (#89) * [#88] chore(dev-CI.yml): dev서버 레디스 환경변수 설정 추가 * [#88] chore(prod-CI.yml): prod 서버 레디스 환경변수 설정 추가 * [deploy] merge to main (#90) * [deploy] merge to main (#83) * [deploy] merge to develop (#27) * [deploy] merge to main (#26) * [#2] chore(.gitignore): .gradle, .idea 파일 삭제 (#3) * [refactor] #4 - 도메인형 디렉터리 구조 변경 및 local, dev, prod 운영 환경 분리 (#5) * [#4] fix: 클래스 첫글자 대문자로 수정 * [#4] remove: enum 삭제 * [#4] feat(BaseSuccessCode): 성공 상태 관리를 위한 인터페이스 생성 * [#4] feat(BaseErrorCode): 에러 상태 관리를 위한 인터페이스 생성 * [#4] refactor: global 패키지로 이동 * [#4] refactor: 서버 운영 환경 분리 * [feat] #6 - dev, prod Dockerfile 분리 및 github Action CI workflow 구현 (#7) * [#6] feat(Dockerfile): prod용 도커 파일 구현 * [#6] feat(Dockerfile-dev): dev용 도커 파일 구현 * [#6] feat(dev-CI.yml): dev용 CI workflow 구현 * [#6] feat(prod-CI.yml): prod용 CI workflow 구현 * [#6] chore(.gitignore): gradle-wrapper.jar 파일은 레포지토리에 포함되도록 설정 * [#6] fix(gradle-wrapper.jar): .gitignore로 누락된 파일 추가 * [#6] chore(build.grade): plain jar 생성 방지 * [#9] docs(README.md): 서비스 소개 README v1 작성 (#10) * [#11] docs(README.md): 리드미 업데이트 (#12) * [feat] #13 - 유저, 예매, 공연, 회차 엔티티 생성 (#15) * [#13] feat(Users): 사용자 엔티티 생성 * [#13] feat(Genre): 장르 열거형 생성 * [#13] feat(BankName): 은행명 열거형 생성 * [#13] refactor(BaseTimeEntity): 업데이트 시간 관리 필드 활성화 * [#13] feat(Performance): 공연 엔티티 생성 * [#13] feat(ScheduleNumber): 회차 번호 열거형 생성 * [#13] feat(Schedule): 회차 엔티티 생성 * [#13] feat(Booking): 예매 엔티티 생성 * [#13] refactor(ScheduleNumber): 네이밍 수정 * [feat] #14 - 회원, 홍보, 등장인물, 스태프 엔티티 생성 (#16) * [#14] feat(Member): 멤버 엔티티 생성 * [#14] feat(Promotion): 홍보 엔티티 생성 * [#14] feat(Cast): 등장인물 엔티티 생성 * [#14] feat(Staff): 스태프 엔티티 생성 * [feat] #13 - 유저, 예매, 공연, 회차 엔티티 생성 (#15) * [#13] feat(Users): 사용자 엔티티 생성 * [#13] feat(Genre): 장르 열거형 생성 * [#13] feat(BankName): 은행명 열거형 생성 * [#13] refactor(BaseTimeEntity): 업데이트 시간 관리 필드 활성화 * [#13] feat(Performance): 공연 엔티티 생성 * [#13] feat(ScheduleNumber): 회차 번호 열거형 생성 * [#13] feat(Schedule): 회차 엔티티 생성 * [#13] feat(Booking): 예매 엔티티 생성 * [#13] refactor(ScheduleNumber): 네이밍 수정 * [#14} fix: 스태프, 등장인물, 홍보 엔티티 상속관계 수정 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [#18] feat(Jenkinsfile): 젠킨스 파일 생성 (#19) * [#20] refactor(Jenkinsfile): 젠킨스 파일 Webhook 테스트용 커밋 (#21) * [#22] feat(Jenkinsfile): Jenkins multibranch 스크립트 작성 (#23) * HOTFIX(Jenkinsfile): Jenkins multibranch 스크립트 수정 * HOTFIX(workflows): 빌드 후 젠킨스 배포가 진행되도록 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * [#24] feat(Jenkinsfile): slack 연동 스크립트 작성 (#25) --------- Co-authored-by: hyerinhwang-sailin * HOTFIX(workflow): 오타 수정 --------- Co-authored-by: hyerinhwang-sailin * [feat] #28 - 비회원 예매 조회 POST API 구현 (#29) * chore(application-dev.yml): dialect 추가 * chore(application-prod.yml): dialect 추가 * [#28] chore(build.gradle): security 의존성 비활성화 - security 일시적으로 비활성화 * [#28] refactor(Booking): 예매 엔티티에 빌더 및 정적팩토리 메서드 추가 * [#28] refactor(ErrorResponse): 정적 팩토리 메서드 네이밍 변환 * [#28] refactor(Schedule): 회차 엔티티에 빌더 및 정적 팩토리 메서드 추가 * [#28] refactor(Performance): 공연 엔티티에 빌더 및 정적 팩토리 메서드 추가 * [#28] refactor(SuccessResponse): 정적 팩토리 메서드 네이밍 변환 * [#28] refactor(GlobalExceptionHandler): INTERNAL_SERVER_ERROR 핸들러 메서드 추가 * [#28] feat(BookingSuccessCode): 예매 성공 메시지를 관리하는 열거형 생성 * [#28] feat(BookingErrorCode): 예매 에러 메시지를 관리하는 열거형 생성 * [#28] feat(BookingRetrieveResponse): 예매 조회 응답 DTO 생성 * [#28] feat(BookingRetrieveRequest): 예매 조회 요청 DTO 생성 * [#28] feat(BookingRepository): 예매 레포지토리 생성 및 비회원 예매 조회 시 예매 내역 가져오는 메서드 구현 * [#28] feat(BookingService): 예매 서비스 레이어 생성 및 비회원 조회 메서드 구현 * [#28] feat(BookingController): 예매 컨트롤러 생성 및 비회원 예매조회 POST API 구현 * [feat] #30 - SwaggerConfig 및 WebConfig 구현 (#31) * [#30] chore(build.gradle): springdoc 의존성 추가 * [#30] feat(SwaggerConfig): SwaggerConfig 추가 * [#30] feat(WebConfig): WebConfig 추가 * HOTFIX(workflows): push 이벤트 시 github action이 빌드 되지 않도록 수정 * HOTFIX(Jenkinsfile): 포트 수정 * [feat] #32 - 티켓 예매 가능 여부 GET API 구현 (#33) * [#32] refactor(BookingController): 메서드명 수정 * [#32] feat(ConflictException): Conflict 409에러 클래스 생성 * [#32] feat(GlobalExceptionHandler): ConflictException 등록 * [#32] feat(TicketAvailabilityRequest): TicketAvailabilityRequest DTO 생성 * [#32] feat(TicketAvailabilityResponse): TicketAvailabilityResponse DTO 생성 * [#32] feat(ScheduleSuccessCode): ScheduleSuccessCode 열거형 생성 * [#32] feat(ScheduleErrorCode): ScheduleErrorCode 열거형 생성 * [#32] feat(ScheduleRepository): ScheduleRepository 생성 * [#32] feat(ScheduleService): ScheduleService 생성 및 회차별 티켓 구매 가능 여부 판단 메서드 구현 * [#32] feat(ScheduleController): 회차별 티켓 수량 조회 GET API 구현 * [feat] #17 - 카카오 소셜 로그인 API 구현 (#36) * [#17] feat(build.gradle): jwt, security, open feign, Redis 의존성 추가 * [#17] feat(BeatApplication): OpenFeign 관련 어노테이션 추가 * [#17] feat(RedisConfig): redis 설정 * [#17] feat: redis 활용 jwt 토큰 생성 로직 구현 * [#17] feat(SecurityConfig): security 설정 * [#17] refactor: Member, Users 엔티티 수정 및 관련 enum 추가 * [#17] feat: Member, Users 도메인 관련 인증 로직 구현 * [#17] feat(MemberController): Member 관련 API 엔드포인트 구현 * [#17] feat: Security 관련 인증 객체 구현 * [#17] feat: 소셜로그인 로직 구현 * [#17] fix: 소셜로그인 오류 해결 * [#17] refactor: 코드리뷰 반영 * [#17] refactor: 코드리뷰 반영 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [feat] #34 - 비회원 예매 POST API 구현 (#35) * [#34] feat(Users): 빌더 및 정적 팩토리 메서드 추가 * [#34] feat(Entity): 엔티티 id 필드 수정 * [#34] refactor(application.yml): dialect 추가 * [#34] refactor(ScheduleService): 네이밍 수정 * [#34] refactor(BookingSuccessCode): 비회원 예매 조회 성공 메시지 추가 * [#34] feat(GuestBookingRequest): 비회원 예매 요청 DTO 생성 * [#34] feat(GuestBookingResponse): 비회원 예매 응답 DTO 생성 * [#34] refactor(BookingRetrieveService): 네이밍 수정 * [#34] feat(PerformanceRepository): 공연 레포지토리 생성 * [#34] feat(UserRepository): 유저 레포지토리 생성 * [#34] refactor(BookingRepository): 비회원 예매 시 네가지 정보가 모두 일치 해야만 다른 유저로 판단하는 메서드 구현 * [#34] refactor(ScheduleRepository): 비관적 락 적용 * [#34] feat(GuestBookingService): 비관적 락을 이용해 비회원 예매 로직 구현 * [#34] feat(BookingController): 비회원 예매 POST API 구현 * [#34] test(GuestBookingServiceConcurrencyTest): 동시성 테스트 구현 * [Refactor] #37 - 카카오 로그인 API response 수정 (#39) * [#37] rename: 빈 충돌 해결 위해 UserRepository를 UsersRepository로 rename * [#37] refactor: login response에서 refreshToken을 cookie에 담아주도록 변경 * [#37] fix: dao, repository 충돌 해결 * [#37] refactor: 어노테이션 수정 * [feat] #40 - 소개 관련 공연 정보 조회 GET API 구현 (#41) * [#40] feat: repository 추가 * [#40] feat: 공연 관련 성공, 실패 메세지 추가 * [#40] feat(PerformanceDetailResponse): 공연 상세페이지 조회 응답 dto * [#40] feat(PerformanceService): 공연 상세페이지 조회 로직 구현 * [#40] feat(PerformanceController): 공연 상세페이지 엔드포인트 구현 * [#40] feat(SecurityConfig): auth whitelist update * [#40] refactor: dto 분리 및 rename * [feat] #42 - 예매 관련 공연 정보 GET API 구현 (#43) * [#42] feat: 예매 관련 정보 조회 dto 생성 * [#42] feat: 예매 관련 정보 조회 성공 메세지 추가 * [#42] feat(ScheduleService): 잔여티켓계산, 예매가능여부확인, 예매가능여부 update 메소드 구현 * [#42] feat(PerformanceService): 예매관련공연정보의 response 생성하는 로직 구현 * [#42] feat(PerformanceController): 예매관련공연정보 조회 엔드포인트 구현 * [#42] feat(SecurityConfig): auth_whitelist update * [#42] refactor(ScheduleService): findTicketAvailability에서 getAvailableTicketCount method 사용하도록 수정 * [feat] #38 - 회원 예매 POST API 구현 (#45) * [#38] fix(Cast): Join 하는 부분 수정 및 빌더와 정적 팩토리 메서드 패턴 도입 * [#38] chore(application.yml): 계층 수정 * [#38] feat: 커스텀 어노테이션 생성 * [#38] fix(UserRepository): 중복된 클래스 삭제 * [#38] feat(UserErrorCode): 유저의 에러 메시지를 관리하는 열거형 생성 * [#38] refactor(MemberErrorCode): message 목적에 맞게 변경 * [#38] refactor(BookingSuccessCode): 회원 예매 성공 메시지 추가 * [#38] feat: 커스텀 어노테이션 생성 커밋에 누락된 클래스 추가 * [#38] refactor(GuestBookingService): schedule에서 바로 get 하도록 수정 * [#38] test(GuestBookingServiceConcurrencyTest): import문 경로명 변경 * [#38] refactor(MemberService): @Transactional 어노테이션이 필요한 메서드에 해당 옵션 추가 * [#38] feat(MemberBookingRequest): 회원 예매 요청 DTO 생성 * [#38] feat(MemberBookingResponse): 회원 예매 응답 DTO 생성 * [#38] refactor(MemberController): refreshToken을 쿠키에 넣어주도록 구현 * [#38] feat(MemberBookingService): 회원 예매 서비스 로직 구현 * [#38] feat(BookingController): 회원 예매 요청 POST API 구현 * [#38] fix: 빌드 안되는 부분 수정 * [#38] remove(MemberBookingService): 사용하지 않는 import문 삭제 * [#38] refactor: 커스텀 어노테이션 이름 수정 * [feat] #44 - 홈페이지 공연 및 홍보 조회 GET API 구현 (#47) * [#44] refactor: 코드리뷰 반영 * [#44] fix(Promotion): 기본키 이름 수정, performanceId 연관관계 설정 * [#44] feat: Repository 및 관련 로직 추가 * [#44] feat: errorcode, successcode 추가 * [#44] feat: 홈페이지 request, response dto 생성 * [#44] feat(ScheduleService): dueDate 관련 로직 구현 * [#44] feat(PerformanceService): 홈페이지 정렬 및 response 생성 로직 구현 * [#44] chore: import문 추가 * [feat] #46 - 회원 예매 조회 GET API 구현 (#48) * [#46] remove(BookingRetrieveRequest): 클래스 삭제 * [#46] refactor(BookingSuccessCode): 회원 예매 조회 성공 메시지 추가 * [#46] refactor(GuestBookingRetrieveResponse): 클래스 명 변경 * [#46] refactor(GuestBookingRetrieveRequest): 안쓰는 코드 주석처리 * [#46] refactor(GuestBookingRetrieveService): 클래스 명 수정으로 인한 리팩토링 * [#46] refactor(SecurityConfig): 토큰 사용하지 않는 api 경로 추가하기 * [#46] refactor(BookingRepository): userId로 예약 정보를 가져오는 JPA 메서드 구현 * [#46] feat(MemberBookingRetrieveResponse): 회원 조회 응답 DTO 생성 * [#46] feat(MemberBookingRetrieveService): 회원 예매 조회 로직을 담당하는 서비스 레이어 구현 * [#46] feat(BookingController): 회원 예매 조회 GET API 구현 * [feat] #49 - 예매자 관리 API 구현 (#51) * [#49] feat: 티켓 관련 success, error code 추가 * [#49] feat(Booking): 입금여부 setter 메소드 추가 * [#49] feat(TicketRetrieveResponse): 예매자 확인 response dto 생성 * [#49] feat(Ticket): 예매자 확인용 티켓 정보 response dto 생성 * [#49] feat(TicketRepository): 예매자 필터링용 메소드 생성 * [#49] feat: 예매자 입금정보 수정 request dto 생성 * [#49] feat(TicketDeleteRequest): 예매자 삭제 request dto 생성 * [#49] feat(TicketService): 예매자 관리 관련 로직 구현 * [#49] feat(TicketController): 예매자 관리 엔드포인트 구현 * [#49] chore: swagger annotation 추가 * HOTFIX(SecurityConfig): WHITELIST 경로명 수정 * [fix] #52 - auth whitelist 수정 (#53) * [#52]fix(SecurityConfig): auth_whitelist 수정 * [#52]fix(SecurityConfig): auth_whitelist 수정 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [feat] #54 - 등록한 공연 목록 조회 GET API 구현 (#55) * [#54] feat(PerformanceSuccessCode): success code 추가 * [#54] feat: 회원이 등록한 공연목록 조회 dto 생성 * [#54] feat(PerformanceService): 회원이 등록한 공연목록 조회 로직 구현 * [#54] feat(PerformanceRepository): 회원이 등록한 공연목록 조회 관련 메소드 추가 * [#54] feat(PerformanceController): 회원이 등록한 공연목록 조회 엔드포인트 생성 * [#54] fix(TicketService): exception error 수정 * [#54] chore(application.yml): yml 수정 * [fix] #58 - dev-ci.yml, prod-ci.yml 환경변수 추가 (#59) * [#58] fix(dev-CI.yml): Dev 서버 CI 워크플로우 수정 * [#58] fix(prod-CI.yml): Prod 서버 CI 워크플로우 수정 * [refactor] #61 - Performance Entity field 추가 (#62) * [#61] refactor(Performance): bankHolder 필드 추가 * [#61] chore(BookingController): swagger annotation 수정 * [feat] #63 - healthCheckController 생성 (#64) * [#63] remove(UsersRepository): 중복 클래스 삭제 * [#63] feat(HealthCheckController): healthcheck 컨트롤러 생성 * [feat] #63 - health check URL 화이트리스트에 등록 (#67) * [#63] remove(UsersRepository): 중복 클래스 삭제 * [#63] feat(HealthCheckController): healthcheck 컨트롤러 생성 * [#63] feat(SecurityConfig): healthcheck url white_list에 등록 * [fix] #57 - entity 연관관계 설정 SecurityConfig 수정 (#65) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [fix] #57 - security 관련 에러 대응 (#71) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 * [#57] fix(JwtAuthenticationFilter): 에러 로직 수정 * fix(SecurityConfig): webSecurityCustomizer 로직 추가 * [fix] #73 - security 수정 (#74) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 * [#57] fix(JwtAuthenticationFilter): 에러 로직 수정 * fix(SecurityConfig): webSecurityCustomizer 로직 추가 * [#57] fix:security 수정 * [#76] fix(SecurityConfig): Base64 인코딩을 하도록 변경 (#77) * [fix] #76 - 누락된 코드 추가 (#79) * [#76] fix(SecurityConfig): Base64 인코딩을 하도록 변경 * [#76] chore(SecurityConfig): 누락된 import문 추가 * [#76] chore(JwtTokenProvider): 누락된 코드 추가 * [#81] fix(JwtTokenProvider): jwtsecret을 인코딩하고 디코딩을 하도록 수정 (#82) --------- Co-authored-by: hyerinhwang-sailin * [deploy] merge to main (#87) * [deploy] merge to develop (#27) * [deploy] merge to main (#26) * [#2] chore(.gitignore): .gradle, .idea 파일 삭제 (#3) * [refactor] #4 - 도메인형 디렉터리 구조 변경 및 local, dev, prod 운영 환경 분리 (#5) * [#4] fix: 클래스 첫글자 대문자로 수정 * [#4] remove: enum 삭제 * [#4] feat(BaseSuccessCode): 성공 상태 관리를 위한 인터페이스 생성 * [#4] feat(BaseErrorCode): 에러 상태 관리를 위한 인터페이스 생성 * [#4] refactor: global 패키지로 이동 * [#4] refactor: 서버 운영 환경 분리 * [feat] #6 - dev, prod Dockerfile 분리 및 github Action CI workflow 구현 (#7) * [#6] feat(Dockerfile): prod용 도커 파일 구현 * [#6] feat(Dockerfile-dev): dev용 도커 파일 구현 * [#6] feat(dev-CI.yml): dev용 CI workflow 구현 * [#6] feat(prod-CI.yml): prod용 CI workflow 구현 * [#6] chore(.gitignore): gradle-wrapper.jar 파일은 레포지토리에 포함되도록 설정 * [#6] fix(gradle-wrapper.jar): .gitignore로 누락된 파일 추가 * [#6] chore(build.grade): plain jar 생성 방지 * [#9] docs(README.md): 서비스 소개 README v1 작성 (#10) * [#11] docs(README.md): 리드미 업데이트 (#12) * [feat] #13 - 유저, 예매, 공연, 회차 엔티티 생성 (#15) * [#13] feat(Users): 사용자 엔티티 생성 * [#13] feat(Genre): 장르 열거형 생성 * [#13] feat(BankName): 은행명 열거형 생성 * [#13] refactor(BaseTimeEntity): 업데이트 시간 관리 필드 활성화 * [#13] feat(Performance): 공연 엔티티 생성 * [#13] feat(ScheduleNumber): 회차 번호 열거형 생성 * [#13] feat(Schedule): 회차 엔티티 생성 * [#13] feat(Booking): 예매 엔티티 생성 * [#13] refactor(ScheduleNumber): 네이밍 수정 * [feat] #14 - 회원, 홍보, 등장인물, 스태프 엔티티 생성 (#16) * [#14] feat(Member): 멤버 엔티티 생성 * [#14] feat(Promotion): 홍보 엔티티 생성 * [#14] feat(Cast): 등장인물 엔티티 생성 * [#14] feat(Staff): 스태프 엔티티 생성 * [feat] #13 - 유저, 예매, 공연, 회차 엔티티 생성 (#15) * [#13] feat(Users): 사용자 엔티티 생성 * [#13] feat(Genre): 장르 열거형 생성 * [#13] feat(BankName): 은행명 열거형 생성 * [#13] refactor(BaseTimeEntity): 업데이트 시간 관리 필드 활성화 * [#13] feat(Performance): 공연 엔티티 생성 * [#13] feat(ScheduleNumber): 회차 번호 열거형 생성 * [#13] feat(Schedule): 회차 엔티티 생성 * [#13] feat(Booking): 예매 엔티티 생성 * [#13] refactor(ScheduleNumber): 네이밍 수정 * [#14} fix: 스태프, 등장인물, 홍보 엔티티 상속관계 수정 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [#18] feat(Jenkinsfile): 젠킨스 파일 생성 (#19) * [#20] refactor(Jenkinsfile): 젠킨스 파일 Webhook 테스트용 커밋 (#21) * [#22] feat(Jenkinsfile): Jenkins multibranch 스크립트 작성 (#23) * HOTFIX(Jenkinsfile): Jenkins multibranch 스크립트 수정 * HOTFIX(workflows): 빌드 후 젠킨스 배포가 진행되도록 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * [#24] feat(Jenkinsfile): slack 연동 스크립트 작성 (#25) --------- Co-authored-by: hyerinhwang-sailin * HOTFIX(workflow): 오타 수정 --------- Co-authored-by: hyerinhwang-sailin * [feat] #28 - 비회원 예매 조회 POST API 구현 (#29) * chore(application-dev.yml): dialect 추가 * chore(application-prod.yml): dialect 추가 * [#28] chore(build.gradle): security 의존성 비활성화 - security 일시적으로 비활성화 * [#28] refactor(Booking): 예매 엔티티에 빌더 및 정적팩토리 메서드 추가 * [#28] refactor(ErrorResponse): 정적 팩토리 메서드 네이밍 변환 * [#28] refactor(Schedule): 회차 엔티티에 빌더 및 정적 팩토리 메서드 추가 * [#28] refactor(Performance): 공연 엔티티에 빌더 및 정적 팩토리 메서드 추가 * [#28] refactor(SuccessResponse): 정적 팩토리 메서드 네이밍 변환 * [#28] refactor(GlobalExceptionHandler): INTERNAL_SERVER_ERROR 핸들러 메서드 추가 * [#28] feat(BookingSuccessCode): 예매 성공 메시지를 관리하는 열거형 생성 * [#28] feat(BookingErrorCode): 예매 에러 메시지를 관리하는 열거형 생성 * [#28] feat(BookingRetrieveResponse): 예매 조회 응답 DTO 생성 * [#28] feat(BookingRetrieveRequest): 예매 조회 요청 DTO 생성 * [#28] feat(BookingRepository): 예매 레포지토리 생성 및 비회원 예매 조회 시 예매 내역 가져오는 메서드 구현 * [#28] feat(BookingService): 예매 서비스 레이어 생성 및 비회원 조회 메서드 구현 * [#28] feat(BookingController): 예매 컨트롤러 생성 및 비회원 예매조회 POST API 구현 * [feat] #30 - SwaggerConfig 및 WebConfig 구현 (#31) * [#30] chore(build.gradle): springdoc 의존성 추가 * [#30] feat(SwaggerConfig): SwaggerConfig 추가 * [#30] feat(WebConfig): WebConfig 추가 * HOTFIX(workflows): push 이벤트 시 github action이 빌드 되지 않도록 수정 * HOTFIX(Jenkinsfile): 포트 수정 * [feat] #32 - 티켓 예매 가능 여부 GET API 구현 (#33) * [#32] refactor(BookingController): 메서드명 수정 * [#32] feat(ConflictException): Conflict 409에러 클래스 생성 * [#32] feat(GlobalExceptionHandler): ConflictException 등록 * [#32] feat(TicketAvailabilityRequest): TicketAvailabilityRequest DTO 생성 * [#32] feat(TicketAvailabilityResponse): TicketAvailabilityResponse DTO 생성 * [#32] feat(ScheduleSuccessCode): ScheduleSuccessCode 열거형 생성 * [#32] feat(ScheduleErrorCode): ScheduleErrorCode 열거형 생성 * [#32] feat(ScheduleRepository): ScheduleRepository 생성 * [#32] feat(ScheduleService): ScheduleService 생성 및 회차별 티켓 구매 가능 여부 판단 메서드 구현 * [#32] feat(ScheduleController): 회차별 티켓 수량 조회 GET API 구현 * [feat] #17 - 카카오 소셜 로그인 API 구현 (#36) * [#17] feat(build.gradle): jwt, security, open feign, Redis 의존성 추가 * [#17] feat(BeatApplication): OpenFeign 관련 어노테이션 추가 * [#17] feat(RedisConfig): redis 설정 * [#17] feat: redis 활용 jwt 토큰 생성 로직 구현 * [#17] feat(SecurityConfig): security 설정 * [#17] refactor: Member, Users 엔티티 수정 및 관련 enum 추가 * [#17] feat: Member, Users 도메인 관련 인증 로직 구현 * [#17] feat(MemberController): Member 관련 API 엔드포인트 구현 * [#17] feat: Security 관련 인증 객체 구현 * [#17] feat: 소셜로그인 로직 구현 * [#17] fix: 소셜로그인 오류 해결 * [#17] refactor: 코드리뷰 반영 * [#17] refactor: 코드리뷰 반영 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [feat] #34 - 비회원 예매 POST API 구현 (#35) * [#34] feat(Users): 빌더 및 정적 팩토리 메서드 추가 * [#34] feat(Entity): 엔티티 id 필드 수정 * [#34] refactor(application.yml): dialect 추가 * [#34] refactor(ScheduleService): 네이밍 수정 * [#34] refactor(BookingSuccessCode): 비회원 예매 조회 성공 메시지 추가 * [#34] feat(GuestBookingRequest): 비회원 예매 요청 DTO 생성 * [#34] feat(GuestBookingResponse): 비회원 예매 응답 DTO 생성 * [#34] refactor(BookingRetrieveService): 네이밍 수정 * [#34] feat(PerformanceRepository): 공연 레포지토리 생성 * [#34] feat(UserRepository): 유저 레포지토리 생성 * [#34] refactor(BookingRepository): 비회원 예매 시 네가지 정보가 모두 일치 해야만 다른 유저로 판단하는 메서드 구현 * [#34] refactor(ScheduleRepository): 비관적 락 적용 * [#34] feat(GuestBookingService): 비관적 락을 이용해 비회원 예매 로직 구현 * [#34] feat(BookingController): 비회원 예매 POST API 구현 * [#34] test(GuestBookingServiceConcurrencyTest): 동시성 테스트 구현 * [Refactor] #37 - 카카오 로그인 API response 수정 (#39) * [#37] rename: 빈 충돌 해결 위해 UserRepository를 UsersRepository로 rename * [#37] refactor: login response에서 refreshToken을 cookie에 담아주도록 변경 * [#37] fix: dao, repository 충돌 해결 * [#37] refactor: 어노테이션 수정 * [feat] #40 - 소개 관련 공연 정보 조회 GET API 구현 (#41) * [#40] feat: repository 추가 * [#40] feat: 공연 관련 성공, 실패 메세지 추가 * [#40] feat(PerformanceDetailResponse): 공연 상세페이지 조회 응답 dto * [#40] feat(PerformanceService): 공연 상세페이지 조회 로직 구현 * [#40] feat(PerformanceController): 공연 상세페이지 엔드포인트 구현 * [#40] feat(SecurityConfig): auth whitelist update * [#40] refactor: dto 분리 및 rename * [feat] #42 - 예매 관련 공연 정보 GET API 구현 (#43) * [#42] feat: 예매 관련 정보 조회 dto 생성 * [#42] feat: 예매 관련 정보 조회 성공 메세지 추가 * [#42] feat(ScheduleService): 잔여티켓계산, 예매가능여부확인, 예매가능여부 update 메소드 구현 * [#42] feat(PerformanceService): 예매관련공연정보의 response 생성하는 로직 구현 * [#42] feat(PerformanceController): 예매관련공연정보 조회 엔드포인트 구현 * [#42] feat(SecurityConfig): auth_whitelist update * [#42] refactor(ScheduleService): findTicketAvailability에서 getAvailableTicketCount method 사용하도록 수정 * [feat] #38 - 회원 예매 POST API 구현 (#45) * [#38] fix(Cast): Join 하는 부분 수정 및 빌더와 정적 팩토리 메서드 패턴 도입 * [#38] chore(application.yml): 계층 수정 * [#38] feat: 커스텀 어노테이션 생성 * [#38] fix(UserRepository): 중복된 클래스 삭제 * [#38] feat(UserErrorCode): 유저의 에러 메시지를 관리하는 열거형 생성 * [#38] refactor(MemberErrorCode): message 목적에 맞게 변경 * [#38] refactor(BookingSuccessCode): 회원 예매 성공 메시지 추가 * [#38] feat: 커스텀 어노테이션 생성 커밋에 누락된 클래스 추가 * [#38] refactor(GuestBookingService): schedule에서 바로 get 하도록 수정 * [#38] test(GuestBookingServiceConcurrencyTest): import문 경로명 변경 * [#38] refactor(MemberService): @Transactional 어노테이션이 필요한 메서드에 해당 옵션 추가 * [#38] feat(MemberBookingRequest): 회원 예매 요청 DTO 생성 * [#38] feat(MemberBookingResponse): 회원 예매 응답 DTO 생성 * [#38] refactor(MemberController): refreshToken을 쿠키에 넣어주도록 구현 * [#38] feat(MemberBookingService): 회원 예매 서비스 로직 구현 * [#38] feat(BookingController): 회원 예매 요청 POST API 구현 * [#38] fix: 빌드 안되는 부분 수정 * [#38] remove(MemberBookingService): 사용하지 않는 import문 삭제 * [#38] refactor: 커스텀 어노테이션 이름 수정 * [feat] #44 - 홈페이지 공연 및 홍보 조회 GET API 구현 (#47) * [#44] refactor: 코드리뷰 반영 * [#44] fix(Promotion): 기본키 이름 수정, performanceId 연관관계 설정 * [#44] feat: Repository 및 관련 로직 추가 * [#44] feat: errorcode, successcode 추가 * [#44] feat: 홈페이지 request, response dto 생성 * [#44] feat(ScheduleService): dueDate 관련 로직 구현 * [#44] feat(PerformanceService): 홈페이지 정렬 및 response 생성 로직 구현 * [#44] chore: import문 추가 * [feat] #46 - 회원 예매 조회 GET API 구현 (#48) * [#46] remove(BookingRetrieveRequest): 클래스 삭제 * [#46] refactor(BookingSuccessCode): 회원 예매 조회 성공 메시지 추가 * [#46] refactor(GuestBookingRetrieveResponse): 클래스 명 변경 * [#46] refactor(GuestBookingRetrieveRequest): 안쓰는 코드 주석처리 * [#46] refactor(GuestBookingRetrieveService): 클래스 명 수정으로 인한 리팩토링 * [#46] refactor(SecurityConfig): 토큰 사용하지 않는 api 경로 추가하기 * [#46] refactor(BookingRepository): userId로 예약 정보를 가져오는 JPA 메서드 구현 * [#46] feat(MemberBookingRetrieveResponse): 회원 조회 응답 DTO 생성 * [#46] feat(MemberBookingRetrieveService): 회원 예매 조회 로직을 담당하는 서비스 레이어 구현 * [#46] feat(BookingController): 회원 예매 조회 GET API 구현 * [feat] #49 - 예매자 관리 API 구현 (#51) * [#49] feat: 티켓 관련 success, error code 추가 * [#49] feat(Booking): 입금여부 setter 메소드 추가 * [#49] feat(TicketRetrieveResponse): 예매자 확인 response dto 생성 * [#49] feat(Ticket): 예매자 확인용 티켓 정보 response dto 생성 * [#49] feat(TicketRepository): 예매자 필터링용 메소드 생성 * [#49] feat: 예매자 입금정보 수정 request dto 생성 * [#49] feat(TicketDeleteRequest): 예매자 삭제 request dto 생성 * [#49] feat(TicketService): 예매자 관리 관련 로직 구현 * [#49] feat(TicketController): 예매자 관리 엔드포인트 구현 * [#49] chore: swagger annotation 추가 * HOTFIX(SecurityConfig): WHITELIST 경로명 수정 * [fix] #52 - auth whitelist 수정 (#53) * [#52]fix(SecurityConfig): auth_whitelist 수정 * [#52]fix(SecurityConfig): auth_whitelist 수정 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [feat] #54 - 등록한 공연 목록 조회 GET API 구현 (#55) * [#54] feat(PerformanceSuccessCode): success code 추가 * [#54] feat: 회원이 등록한 공연목록 조회 dto 생성 * [#54] feat(PerformanceService): 회원이 등록한 공연목록 조회 로직 구현 * [#54] feat(PerformanceRepository): 회원이 등록한 공연목록 조회 관련 메소드 추가 * [#54] feat(PerformanceController): 회원이 등록한 공연목록 조회 엔드포인트 생성 * [#54] fix(TicketService): exception error 수정 * [#54] chore(application.yml): yml 수정 * [fix] #58 - dev-ci.yml, prod-ci.yml 환경변수 추가 (#59) * [#58] fix(dev-CI.yml): Dev 서버 CI 워크플로우 수정 * [#58] fix(prod-CI.yml): Prod 서버 CI 워크플로우 수정 * [refactor] #61 - Performance Entity field 추가 (#62) * [#61] refactor(Performance): bankHolder 필드 추가 * [#61] chore(BookingController): swagger annotation 수정 * [feat] #63 - healthCheckController 생성 (#64) * [#63] remove(UsersRepository): 중복 클래스 삭제 * [#63] feat(HealthCheckController): healthcheck 컨트롤러 생성 * [feat] #63 - health check URL 화이트리스트에 등록 (#67) * [#63] remove(UsersRepository): 중복 클래스 삭제 * [#63] feat(HealthCheckController): healthcheck 컨트롤러 생성 * [#63] feat(SecurityConfig): healthcheck url white_list에 등록 * [fix] #57 - entity 연관관계 설정 SecurityConfig 수정 (#65) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [fix] #57 - security 관련 에러 대응 (#71) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 * [#57] fix(JwtAuthenticationFilter): 에러 로직 수정 * fix(SecurityConfig): webSecurityCustomizer 로직 추가 * [fix] #73 - security 수정 (#74) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 * [#57] fix(JwtAuthenticationFilter): 에러 로직 수정 * fix(SecurityConfig): webSecurityCustomizer 로직 추가 * [#57] fix:security 수정 * [#76] fix(SecurityConfig): Base64 인코딩을 하도록 변경 (#77) * [fix] #76 - 누락된 코드 추가 (#79) * [#76] fix(SecurityConfig): Base64 인코딩을 하도록 변경 * [#76] chore(SecurityConfig): 누락된 import문 추가 * [#76] chore(JwtTokenProvider): 누락된 코드 추가 * [#81] fix(JwtTokenProvider): jwtsecret을 인코딩하고 디코딩을 하도록 수정 (#82) * [#85] chore(application.yml): 환경변수 설정 (#86) --------- Co-authored-by: hyerinhwang-sailin --------- Co-authored-by: hyerinhwang-sailin * Revert "[deploy] merge to main (#90)" (#91) This reverts commit f519b0c82a2f01d4374eb045b9e90c6303381e50. * [fix] #93 - 누락된 어노테이션 및 누락된 경로명 추가 (#94) * [#93] fix(HealthCheckController): 누락된 어노테이션 추가 * [#93] refactor(SecurityConfig): 누락된 경로명 추가 * [bug] #84 - actuator/health 의존성 및 설정 추가 (#96) * [#84] chore(build.gradle): 의존성 추가 * [#84] chore: health/actuator yml 설정 추가 * [#84] chore: redis yml 설정 추가 * [#84] chore: yml 수정 (#99) * [bug] #101 - yml, s3 수정 (#102) * [#101] chore: yml 수정 * [#101] feat: s3 추가 * HOTIFX: prod ci-yml 수정 * Main redis host yml 수정 (#105) * [deploy] merge to main (#104) * [deploy] merge to develop (#27) * [deploy] merge to main (#26) * [#2] chore(.gitignore): .gradle, .idea 파일 삭제 (#3) * [refactor] #4 - 도메인형 디렉터리 구조 변경 및 local, dev, prod 운영 환경 분리 (#5) * [#4] fix: 클래스 첫글자 대문자로 수정 * [#4] remove: enum 삭제 * [#4] feat(BaseSuccessCode): 성공 상태 관리를 위한 인터페이스 생성 * [#4] feat(BaseErrorCode): 에러 상태 관리를 위한 인터페이스 생성 * [#4] refactor: global 패키지로 이동 * [#4] refactor: 서버 운영 환경 분리 * [feat] #6 - dev, prod Dockerfile 분리 및 github Action CI workflow 구현 (#7) * [#6] feat(Dockerfile): prod용 도커 파일 구현 * [#6] feat(Dockerfile-dev): dev용 도커 파일 구현 * [#6] feat(dev-CI.yml): dev용 CI workflow 구현 * [#6] feat(prod-CI.yml): prod용 CI workflow 구현 * [#6] chore(.gitignore): gradle-wrapper.jar 파일은 레포지토리에 포함되도록 설정 * [#6] fix(gradle-wrapper.jar): .gitignore로 누락된 파일 추가 * [#6] chore(build.grade): plain jar 생성 방지 * [#9] docs(README.md): 서비스 소개 README v1 작성 (#10) * [#11] docs(README.md): 리드미 업데이트 (#12) * [feat] #13 - 유저, 예매, 공연, 회차 엔티티 생성 (#15) * [#13] feat(Users): 사용자 엔티티 생성 * [#13] feat(Genre): 장르 열거형 생성 * [#13] feat(BankName): 은행명 열거형 생성 * [#13] refactor(BaseTimeEntity): 업데이트 시간 관리 필드 활성화 * [#13] feat(Performance): 공연 엔티티 생성 * [#13] feat(ScheduleNumber): 회차 번호 열거형 생성 * [#13] feat(Schedule): 회차 엔티티 생성 * [#13] feat(Booking): 예매 엔티티 생성 * [#13] refactor(ScheduleNumber): 네이밍 수정 * [feat] #14 - 회원, 홍보, 등장인물, 스태프 엔티티 생성 (#16) * [#14] feat(Member): 멤버 엔티티 생성 * [#14] feat(Promotion): 홍보 엔티티 생성 * [#14] feat(Cast): 등장인물 엔티티 생성 * [#14] feat(Staff): 스태프 엔티티 생성 * [feat] #13 - 유저, 예매, 공연, 회차 엔티티 생성 (#15) * [#13] feat(Users): 사용자 엔티티 생성 * [#13] feat(Genre): 장르 열거형 생성 * [#13] feat(BankName): 은행명 열거형 생성 * [#13] refactor(BaseTimeEntity): 업데이트 시간 관리 필드 활성화 * [#13] feat(Performance): 공연 엔티티 생성 * [#13] feat(ScheduleNumber): 회차 번호 열거형 생성 * [#13] feat(Schedule): 회차 엔티티 생성 * [#13] feat(Booking): 예매 엔티티 생성 * [#13] refactor(ScheduleNumber): 네이밍 수정 * [#14} fix: 스태프, 등장인물, 홍보 엔티티 상속관계 수정 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [#18] feat(Jenkinsfile): 젠킨스 파일 생성 (#19) * [#20] refactor(Jenkinsfile): 젠킨스 파일 Webhook 테스트용 커밋 (#21) * [#22] feat(Jenkinsfile): Jenkins multibranch 스크립트 작성 (#23) * HOTFIX(Jenkinsfile): Jenkins multibranch 스크립트 수정 * HOTFIX(workflows): 빌드 후 젠킨스 배포가 진행되도록 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * [#24] feat(Jenkinsfile): slack 연동 스크립트 작성 (#25) --------- Co-authored-by: hyerinhwang-sailin * HOTFIX(workflow): 오타 수정 --------- Co-authored-by: hyerinhwang-sailin * [feat] #28 - 비회원 예매 조회 POST API 구현 (#29) * chore(application-dev.yml): dialect 추가 * chore(application-prod.yml): dialect 추가 * [#28] chore(build.gradle): security 의존성 비활성화 - security 일시적으로 비활성화 * [#28] refactor(Booking): 예매 엔티티에 빌더 및 정적팩토리 메서드 추가 * [#28] refactor(ErrorResponse): 정적 팩토리 메서드 네이밍 변환 * [#28] refactor(Schedule): 회차 엔티티에 빌더 및 정적 팩토리 메서드 추가 * [#28] refactor(Performance): 공연 엔티티에 빌더 및 정적 팩토리 메서드 추가 * [#28] refactor(SuccessResponse): 정적 팩토리 메서드 네이밍 변환 * [#28] refactor(GlobalExceptionHandler): INTERNAL_SERVER_ERROR 핸들러 메서드 추가 * [#28] feat(BookingSuccessCode): 예매 성공 메시지를 관리하는 열거형 생성 * [#28] feat(BookingErrorCode): 예매 에러 메시지를 관리하는 열거형 생성 * [#28] feat(BookingRetrieveResponse): 예매 조회 응답 DTO 생성 * [#28] feat(BookingRetrieveRequest): 예매 조회 요청 DTO 생성 * [#28] feat(BookingRepository): 예매 레포지토리 생성 및 비회원 예매 조회 시 예매 내역 가져오는 메서드 구현 * [#28] feat(BookingService): 예매 서비스 레이어 생성 및 비회원 조회 메서드 구현 * [#28] feat(BookingController): 예매 컨트롤러 생성 및 비회원 예매조회 POST API 구현 * [feat] #30 - SwaggerConfig 및 WebConfig 구현 (#31) * [#30] chore(build.gradle): springdoc 의존성 추가 * [#30] feat(SwaggerConfig): SwaggerConfig 추가 * [#30] feat(WebConfig): WebConfig 추가 * HOTFIX(workflows): push 이벤트 시 github action이 빌드 되지 않도록 수정 * HOTFIX(Jenkinsfile): 포트 수정 * [feat] #32 - 티켓 예매 가능 여부 GET API 구현 (#33) * [#32] refactor(BookingController): 메서드명 수정 * [#32] feat(ConflictException): Conflict 409에러 클래스 생성 * [#32] feat(GlobalExceptionHandler): ConflictException 등록 * [#32] feat(TicketAvailabilityRequest): TicketAvailabilityRequest DTO 생성 * [#32] feat(TicketAvailabilityResponse): TicketAvailabilityResponse DTO 생성 * [#32] feat(ScheduleSuccessCode): ScheduleSuccessCode 열거형 생성 * [#32] feat(ScheduleErrorCode): ScheduleErrorCode 열거형 생성 * [#32] feat(ScheduleRepository): ScheduleRepository 생성 * [#32] feat(ScheduleService): ScheduleService 생성 및 회차별 티켓 구매 가능 여부 판단 메서드 구현 * [#32] feat(ScheduleController): 회차별 티켓 수량 조회 GET API 구현 * [feat] #17 - 카카오 소셜 로그인 API 구현 (#36) * [#17] feat(build.gradle): jwt, security, open feign, Redis 의존성 추가 * [#17] feat(BeatApplication): OpenFeign 관련 어노테이션 추가 * [#17] feat(RedisConfig): redis 설정 * [#17] feat: redis 활용 jwt 토큰 생성 로직 구현 * [#17] feat(SecurityConfig): security 설정 * [#17] refactor: Member, Users 엔티티 수정 및 관련 enum 추가 * [#17] feat: Member, Users 도메인 관련 인증 로직 구현 * [#17] feat(MemberController): Member 관련 API 엔드포인트 구현 * [#17] feat: Security 관련 인증 객체 구현 * [#17] feat: 소셜로그인 로직 구현 * [#17] fix: 소셜로그인 오류 해결 * [#17] refactor: 코드리뷰 반영 * [#17] refactor: 코드리뷰 반영 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [feat] #34 - 비회원 예매 POST API 구현 (#35) * [#34] feat(Users): 빌더 및 정적 팩토리 메서드 추가 * [#34] feat(Entity): 엔티티 id 필드 수정 * [#34] refactor(application.yml): dialect 추가 * [#34] refactor(ScheduleService): 네이밍 수정 * [#34] refactor(BookingSuccessCode): 비회원 예매 조회 성공 메시지 추가 * [#34] feat(GuestBookingRequest): 비회원 예매 요청 DTO 생성 * [#34] feat(GuestBookingResponse): 비회원 예매 응답 DTO 생성 * [#34] refactor(BookingRetrieveService): 네이밍 수정 * [#34] feat(PerformanceRepository): 공연 레포지토리 생성 * [#34] feat(UserRepository): 유저 레포지토리 생성 * [#34] refactor(BookingRepository): 비회원 예매 시 네가지 정보가 모두 일치 해야만 다른 유저로 판단하는 메서드 구현 * [#34] refactor(ScheduleRepository): 비관적 락 적용 * [#34] feat(GuestBookingService): 비관적 락을 이용해 비회원 예매 로직 구현 * [#34] feat(BookingController): 비회원 예매 POST API 구현 * [#34] test(GuestBookingServiceConcurrencyTest): 동시성 테스트 구현 * [Refactor] #37 - 카카오 로그인 API response 수정 (#39) * [#37] rename: 빈 충돌 해결 위해 UserRepository를 UsersRepository로 rename * [#37] refactor: login response에서 refreshToken을 cookie에 담아주도록 변경 * [#37] fix: dao, repository 충돌 해결 * [#37] refactor: 어노테이션 수정 * [feat] #40 - 소개 관련 공연 정보 조회 GET API 구현 (#41) * [#40] feat: repository 추가 * [#40] feat: 공연 관련 성공, 실패 메세지 추가 * [#40] feat(PerformanceDetailResponse): 공연 상세페이지 조회 응답 dto * [#40] feat(PerformanceService): 공연 상세페이지 조회 로직 구현 * [#40] feat(PerformanceController): 공연 상세페이지 엔드포인트 구현 * [#40] feat(SecurityConfig): auth whitelist update * [#40] refactor: dto 분리 및 rename * [feat] #42 - 예매 관련 공연 정보 GET API 구현 (#43) * [#42] feat: 예매 관련 정보 조회 dto 생성 * [#42] feat: 예매 관련 정보 조회 성공 메세지 추가 * [#42] feat(ScheduleService): 잔여티켓계산, 예매가능여부확인, 예매가능여부 update 메소드 구현 * [#42] feat(PerformanceService): 예매관련공연정보의 response 생성하는 로직 구현 * [#42] feat(PerformanceController): 예매관련공연정보 조회 엔드포인트 구현 * [#42] feat(SecurityConfig): auth_whitelist update * [#42] refactor(ScheduleService): findTicketAvailability에서 getAvailableTicketCount method 사용하도록 수정 * [feat] #38 - 회원 예매 POST API 구현 (#45) * [#38] fix(Cast): Join 하는 부분 수정 및 빌더와 정적 팩토리 메서드 패턴 도입 * [#38] chore(application.yml): 계층 수정 * [#38] feat: 커스텀 어노테이션 생성 * [#38] fix(UserRepository): 중복된 클래스 삭제 * [#38] feat(UserErrorCode): 유저의 에러 메시지를 관리하는 열거형 생성 * [#38] refactor(MemberErrorCode): message 목적에 맞게 변경 * [#38] refactor(BookingSuccessCode): 회원 예매 성공 메시지 추가 * [#38] feat: 커스텀 어노테이션 생성 커밋에 누락된 클래스 추가 * [#38] refactor(GuestBookingService): schedule에서 바로 get 하도록 수정 * [#38] test(GuestBookingServiceConcurrencyTest): import문 경로명 변경 * [#38] refactor(MemberService): @Transactional 어노테이션이 필요한 메서드에 해당 옵션 추가 * [#38] feat(MemberBookingRequest): 회원 예매 요청 DTO 생성 * [#38] feat(MemberBookingResponse): 회원 예매 응답 DTO 생성 * [#38] refactor(MemberController): refreshToken을 쿠키에 넣어주도록 구현 * [#38] feat(MemberBookingService): 회원 예매 서비스 로직 구현 * [#38] feat(BookingController): 회원 예매 요청 POST API 구현 * [#38] fix: 빌드 안되는 부분 수정 * [#38] remove(MemberBookingService): 사용하지 않는 import문 삭제 * [#38] refactor: 커스텀 어노테이션 이름 수정 * [feat] #44 - 홈페이지 공연 및 홍보 조회 GET API 구현 (#47) * [#44] refactor: 코드리뷰 반영 * [#44] fix(Promotion): 기본키 이름 수정, performanceId 연관관계 설정 * [#44] feat: Repository 및 관련 로직 추가 * [#44] feat: errorcode, successcode 추가 * [#44] feat: 홈페이지 request, response dto 생성 * [#44] feat(ScheduleService): dueDate 관련 로직 구현 * [#44] feat(PerformanceService): 홈페이지 정렬 및 response 생성 로직 구현 * [#44] chore: import문 추가 * [feat] #46 - 회원 예매 조회 GET API 구현 (#48) * [#46] remove(BookingRetrieveRequest): 클래스 삭제 * [#46] refactor(BookingSuccessCode): 회원 예매 조회 성공 메시지 추가 * [#46] refactor(GuestBookingRetrieveResponse): 클래스 명 변경 * [#46] refactor(GuestBookingRetrieveRequest): 안쓰는 코드 주석처리 * [#46] refactor(GuestBookingRetrieveService): 클래스 명 수정으로 인한 리팩토링 * [#46] refactor(SecurityConfig): 토큰 사용하지 않는 api 경로 추가하기 * [#46] refactor(BookingRepository): userId로 예약 정보를 가져오는 JPA 메서드 구현 * [#46] feat(MemberBookingRetrieveResponse): 회원 조회 응답 DTO 생성 * [#46] feat(MemberBookingRetrieveService): 회원 예매 조회 로직을 담당하는 서비스 레이어 구현 * [#46] feat(BookingController): 회원 예매 조회 GET API 구현 * [feat] #49 - 예매자 관리 API 구현 (#51) * [#49] feat: 티켓 관련 success, error code 추가 * [#49] feat(Booking): 입금여부 setter 메소드 추가 * [#49] feat(TicketRetrieveResponse): 예매자 확인 response dto 생성 * [#49] feat(Ticket): 예매자 확인용 티켓 정보 response dto 생성 * [#49] feat(TicketRepository): 예매자 필터링용 메소드 생성 * [#49] feat: 예매자 입금정보 수정 request dto 생성 * [#49] feat(TicketDeleteRequest): 예매자 삭제 request dto 생성 * [#49] feat(TicketService): 예매자 관리 관련 로직 구현 * [#49] feat(TicketController): 예매자 관리 엔드포인트 구현 * [#49] chore: swagger annotation 추가 * HOTFIX(SecurityConfig): WHITELIST 경로명 수정 * [fix] #52 - auth whitelist 수정 (#53) * [#52]fix(SecurityConfig): auth_whitelist 수정 * [#52]fix(SecurityConfig): auth_whitelist 수정 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [feat] #54 - 등록한 공연 목록 조회 GET API 구현 (#55) * [#54] feat(PerformanceSuccessCode): success code 추가 * [#54] feat: 회원이 등록한 공연목록 조회 dto 생성 * [#54] feat(PerformanceService): 회원이 등록한 공연목록 조회 로직 구현 * [#54] feat(PerformanceRepository): 회원이 등록한 공연목록 조회 관련 메소드 추가 * [#54] feat(PerformanceController): 회원이 등록한 공연목록 조회 엔드포인트 생성 * [#54] fix(TicketService): exception error 수정 * [#54] chore(application.yml): yml 수정 * [fix] #58 - dev-ci.yml, prod-ci.yml 환경변수 추가 (#59) * [#58] fix(dev-CI.yml): Dev 서버 CI 워크플로우 수정 * [#58] fix(prod-CI.yml): Prod 서버 CI 워크플로우 수정 * [refactor] #61 - Performance Entity field 추가 (#62) * [#61] refactor(Performance): bankHolder 필드 추가 * [#61] chore(BookingController): swagger annotation 수정 * [feat] #63 - healthCheckController 생성 (#64) * [#63] remove(UsersRepository): 중복 클래스 삭제 * [#63] feat(HealthCheckController): healthcheck 컨트롤러 생성 * [feat] #63 - health check URL 화이트리스트에 등록 (#67) * [#63] remove(UsersRepository): 중복 클래스 삭제 * [#63] feat(HealthCheckController): healthcheck 컨트롤러 생성 * [#63] feat(SecurityConfig): healthcheck url white_list에 등록 * [fix] #57 - entity 연관관계 설정 SecurityConfig 수정 (#65) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [fix] #57 - security 관련 에러 대응 (#71) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 * [#57] fix(JwtAuthenticationFilter): 에러 로직 수정 * fix(SecurityConfig): webSecurityCustomizer 로직 추가 * [fix] #73 - security 수정 (#74) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 * [#57] fix(JwtAuthenticationFilter): 에러 로직 수정 * fix(SecurityConfig): webSecurityCustomizer 로직 추가 * [#57] fix:security 수정 * [#76] fix(SecurityConfig): Base64 인코딩을 하도록 변경 (#77) * [fix] #76 - 누락된 코드 추가 (#79) * [#76] fix(SecurityConfig): Base64 인코딩을 하도록 변경 * [#76] chore(SecurityConfig): 누락된 import문 추가 * [#76] chore(JwtTokenProvider): 누락된 코드 추가 * [#81] fix(JwtTokenProvider): jwtsecret을 인코딩하고 디코딩을 하도록 수정 (#82) * [#85] chore(application.yml): 환경변수 설정 (#86) * [chore] #88 - 레디스 환경변수 추가 (#89) * [#88] chore(dev-CI.yml): dev서버 레디스 환경변수 설정 추가 * [#88] chore(prod-CI.yml): prod 서버 레디스 환경변수 설정 추가 * [deploy] merge to main (#90) * [deploy] merge to main (#83) * [deploy] merge to develop (#27) * [deploy] merge to main (#26) * [#2] chore(.gitignore): .gradle, .idea 파일 삭제 (#3) * [refactor] #4 - 도메인형 디렉터리 구조 변경 및 local, dev, prod 운영 환경 분리 (#5) * [#4] fix: 클래스 첫글자 대문자로 수정 * [#4] remove: enum 삭제 * [#4] feat(BaseSuccessCode): 성공 상태 관리를 위한 인터페이스 생성 * [#4] feat(BaseErrorCode): 에러 상태 관리를 위한 인터페이스 생성 * [#4] refactor: global 패키지로 이동 * [#4] refactor: 서버 운영 환경 분리 * [feat] #6 - dev, prod Dockerfile 분리 및 github Action CI workflow 구현 (#7) * [#6] feat(Dockerfile): prod용 도커 파일 구현 * [#6] feat(Dockerfile-dev): dev용 도커 파일 구현 * [#6] feat(dev-CI.yml): dev용 CI workflow 구현 * [#6] feat(prod-CI.yml): prod용 CI workflow 구현 * [#6] chore(.gitignore): gradle-wrapper.jar 파일은 레포지토리에 포함되도록 설정 * [#6] fix(gradle-wrapper.jar): .gitignore로 누락된 파일 추가 * [#6] chore(build.grade): plain jar 생성 방지 * [#9] docs(README.md): 서비스 소개 README v1 작성 (#10) * [#11] docs(README.md): 리드미 업데이트 (#12) * [feat] #13 - 유저, 예매, 공연, 회차 엔티티 생성 (#15) * [#13] feat(Users): 사용자 엔티티 생성 * [#13] feat(Genre): 장르 열거형 생성 * [#13] feat(BankName): 은행명 열거형 생성 * [#13] refactor(BaseTimeEntity): 업데이트 시간 관리 필드 활성화 * [#13] feat(Performance): 공연 엔티티 생성 * [#13] feat(ScheduleNumber): 회차 번호 열거형 생성 * [#13] feat(Schedule): 회차 엔티티 생성 * [#13] feat(Booking): 예매 엔티티 생성 * [#13] refactor(ScheduleNumber): 네이밍 수정 * [feat] #14 - 회원, 홍보, 등장인물, 스태프 엔티티 생성 (#16) * [#14] feat(Member): 멤버 엔티티 생성 * [#14] feat(Promotion): 홍보 엔티티 생성 * [#14] feat(Cast): 등장인물 엔티티 생성 * [#14] feat(Staff): 스태프 엔티티 생성 * [feat] #13 - 유저, 예매, 공연, 회차 엔티티 생성 (#15) * [#13] feat(Users): 사용자 엔티티 생성 * [#13] feat(Genre): 장르 열거형 생성 * [#13] feat(BankName): 은행명 열거형 생성 * [#13] refactor(BaseTimeEntity): 업데이트 시간 관리 필드 활성화 * [#13] feat(Performance): 공연 엔티티 생성 * [#13] feat(ScheduleNumber): 회차 번호 열거형 생성 * [#13] feat(Schedule): 회차 엔티티 생성 * [#13] feat(Booking): 예매 엔티티 생성 * [#13] refactor(ScheduleNumber): 네이밍 수정 * [#14} fix: 스태프, 등장인물, 홍보 엔티티 상속관계 수정 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [#18] feat(Jenkinsfile): 젠킨스 파일 생성 (#19) * [#20] refactor(Jenkinsfile): 젠킨스 파일 Webhook 테스트용 커밋 (#21) * [#22] feat(Jenkinsfile): Jenkins multibranch 스크립트 작성 (#23) * HOTFIX(Jenkinsfile): Jenkins multibranch 스크립트 수정 * HOTFIX(workflows): 빌드 후 젠킨스 배포가 진행되도록 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * [#24] feat(Jenkinsfile): slack 연동 스크립트 작성 (#25) --------- Co-authored-by: hyerinhwang-sailin * HOTFIX(workflow): 오타 수정 --------- Co-authored-by: hyerinhwang-sailin * [feat] #28 - 비회원 예매 조회 POST API 구현 (#29) * chore(application-dev.yml): dialect 추가 * chore(application-prod.yml): dialect 추가 * [#28] chore(build.gradle): security 의존성 비활성화 - security 일시적으로 비활성화 * [#28] refactor(Booking): 예매 엔티티에 빌더 및 정적팩토리 메서드 추가 * [#28] refactor(ErrorResponse): 정적 팩토리 메서드 네이밍 변환 * [#28] refactor(Schedule): 회차 엔티티에 빌더 및 정적 팩토리 메서드 추가 * [#28] refactor(Performance): 공연 엔티티에 빌더 및 정적 팩토리 메서드 추가 * [#28] refactor(SuccessResponse): 정적 팩토리 메서드 네이밍 변환 * [#28] refactor(GlobalExceptionHandler): INTERNAL_SERVER_ERROR 핸들러 메서드 추가 * [#28] feat(BookingSuccessCode): 예매 성공 메시지를 관리하는 열거형 생성 * [#28] feat(BookingErrorCode): 예매 에러 메시지를 관리하는 열거형 생성 * [#28] feat(BookingRetrieveResponse): 예매 조회 응답 DTO 생성 * [#28] feat(BookingRetrieveRequest): 예매 조회 요청 DTO 생성 * [#28] feat(BookingRepository): 예매 레포지토리 생성 및 비회원 예매 조회 시 예매 내역 가져오는 메서드 구현 * [#28] feat(BookingService): 예매 서비스 레이어 생성 및 비회원 조회 메서드 구현 * [#28] feat(BookingController): 예매 컨트롤러 생성 및 비회원 예매조회 POST API 구현 * [feat] #30 - SwaggerConfig 및 WebConfig 구현 (#31) * [#30] chore(build.gradle): springdoc 의존성 추가 * [#30] feat(SwaggerConfig): SwaggerConfig 추가 * [#30] feat(WebConfig): WebConfig 추가 * HOTFIX(workflows): push 이벤트 시 github action이 빌드 되지 않도록 수정 * HOTFIX(Jenkinsfile): 포트 수정 * [feat] #32 - 티켓 예매 가능 여부 GET API 구현 (#33) * [#32] refactor(BookingController): 메서드명 수정 * [#32] feat(ConflictException): Conflict 409에러 클래스 생성 * [#32] feat(GlobalExceptionHandler): ConflictException 등록 * [#32] feat(TicketAvailabilityRequest): TicketAvailabilityRequest DTO 생성 * [#32] feat(TicketAvailabilityResponse): TicketAvailabilityResponse DTO 생성 * [#32] feat(ScheduleSuccessCode): ScheduleSuccessCode 열거형 생성 * [#32] feat(ScheduleErrorCode): ScheduleErrorCode 열거형 생성 * [#32] feat(ScheduleRepository): ScheduleRepository 생성 * [#32] feat(ScheduleService): ScheduleService 생성 및 회차별 티켓 구매 가능 여부 판단 메서드 구현 * [#32] feat(ScheduleController): 회차별 티켓 수량 조회 GET API 구현 * [feat] #17 - 카카오 소셜 로그인 API 구현 (#36) * [#17] feat(build.gradle): jwt, security, open feign, Redis 의존성 추가 * [#17] feat(BeatApplication): OpenFeign 관련 어노테이션 추가 * [#17] feat(RedisConfig): redis 설정 * [#17] feat: redis 활용 jwt 토큰 생성 로직 구현 * [#17] feat(SecurityConfig): security 설정 * [#17] refactor: Member, Users 엔티티 수정 및 관련 enum 추가 * [#17] feat: Member, Users 도메인 관련 인증 로직 구현 * [#17] feat(MemberController): Member 관련 API 엔드포인트 구현 * [#17] feat: Security 관련 인증 객체 구현 * [#17] feat: 소셜로그인 로직 구현 * [#17] fix: 소셜로그인 오류 해결 * [#17] refactor: 코드리뷰 반영 * [#17] refactor: 코드리뷰 반영 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [feat] #34 - 비회원 예매 POST API 구현 (#35) * [#34] feat(Users): 빌더 및 정적 팩토리 메서드 추가 * [#34] feat(Entity): 엔티티 id 필드 수정 * [#34] refactor(application.yml): dialect 추가 * [#34] refactor(ScheduleService): 네이밍 수정 * [#34] refactor(BookingSuccessCode): 비회원 예매 조회 성공 메시지 추가 * [#34] feat(GuestBookingRequest): 비회원 예매 요청 DTO 생성 * [#34] feat(GuestBookingResponse): 비회원 예매 응답 DTO 생성 * [#34] refactor(BookingRetrieveService): 네이밍 수정 * [#34] feat(PerformanceRepository): 공연 레포지토리 생성 * [#34] feat(UserRepository): 유저 레포지토리 생성 * [#34] refactor(BookingRepository): 비회원 예매 시 네가지 정보가 모두 일치 해야만 다른 유저로 판단하는 메서드 구현 * [#34] refactor(ScheduleRepository): 비관적 락 적용 * [#34] feat(GuestBookingService): 비관적 락을 이용해 비회원 예매 로직 구현 * [#34] feat(BookingController): 비회원 예매 POST API 구현 * [#34] test(GuestBookingServiceConcurrencyTest): 동시성 테스트 구현 * [Refactor] #37 - 카카오 로그인 API response 수정 (#39) * [#37] rename: 빈 충돌 해결 위해 UserRepository를 UsersRepository로 rename * [#37] refactor: login response에서 refreshToken을 cookie에 담아주도록 변경 * [#37] fix: dao, repository 충돌 해결 * [#37] refactor: 어노테이션 수정 * [feat] #40 - 소개 관련 공연 정보 조회 GET API 구현 (#41) * [#40] feat: repository 추가 * [#40] feat: 공연 관련 성공, 실패 메세지 추가 * [#40] feat(PerformanceDetailResponse): 공연 상세페이지 조회 응답 dto * [#40] feat(PerformanceService): 공연 상세페이지 조회 로직 구현 * [#40] feat(PerformanceController): 공연 상세페이지 엔드포인트 구현 * [#40] feat(SecurityConfig): auth whitelist update * [#40] refactor: dto 분리 및 rename * [feat] #42 - 예매 관련 공연 정보 GET API 구현 (#43) * [#42] feat: 예매 관련 정보 조회 dto 생성 * [#42] feat: 예매 관련 정보 조회 성공 메세지 추가 * [#42] feat(ScheduleService): 잔여티켓계산, 예매가능여부확인, 예매가능여부 update 메소드 구현 * [#42] feat(PerformanceService): 예매관련공연정보의 response 생성하는 로직 구현 * [#42] feat(PerformanceController): 예매관련공연정보 조회 엔드포인트 구현 * [#42] feat(SecurityConfig): auth_whitelist update * [#42] refactor(ScheduleService): findTicketAvailability에서 getAvailableTicketCount method 사용하도록 수정 * [feat] #38 - 회원 예매 POST API 구현 (#45) * [#38] fix(Cast): Join 하는 부분 수정 및 빌더와 정적 팩토리 메서드 패턴 도입 * [#38] chore(application.yml): 계층 수정 * [#38] feat: 커스텀 어노테이션 생성 * [#38] fix(UserRepository): 중복된 클래스 삭제 * [#38] feat(UserErrorCode): 유저의 에러 메시지를 관리하는 열거형 생성 * [#38] refactor(MemberErrorCode): message 목적에 맞게 변경 * [#38] refactor(BookingSuccessCode): 회원 예매 성공 메시지 추가 * [#38] feat: 커스텀 어노테이션 생성 커밋에 누락된 클래스 추가 * [#38] refactor(GuestBookingService): schedule에서 바로 get 하도록 수정 * [#38] test(GuestBookingServiceConcurrencyTest): import문 경로명 변경 * [#38] refactor(MemberService): @Transactional 어노테이션이 필요한 메서드에 해당 옵션 추가 * [#38] feat(MemberBookingRequest): 회원 예매 요청 DTO 생성 * [#38] feat(MemberBookingResponse): 회원 예매 응답 DTO 생성 * [#38] refactor(MemberController): refreshToken을 쿠키에 넣어주도록 구현 * [#38] feat(MemberBookingService): 회원 예매 서비스 로직 구현 * [#38] feat(BookingController): 회원 예매 요청 POST API 구현 * [#38] fix: 빌드 안되는 부분 수정 * [#38] remove(MemberBookingService): 사용하지 않는 import문 삭제 * [#38] refactor: 커스텀 어노테이션 이름 수정 * [feat] #44 - 홈페이지 공연 및 홍보 조회 GET API 구현 (#47) * [#44] refactor: 코드리뷰 반영 * [#44] fix(Promotion): 기본키 이름 수정, performanceId 연관관계 설정 * [#44] feat: Repository 및 관련 로직 추가 * [#44] feat: errorcode, successcode 추가 * [#44] feat: 홈페이지 request, response dto 생성 * [#44] feat(ScheduleService): dueDate 관련 로직 구현 * [#44] feat(PerformanceService): 홈페이지 정렬 및 response 생성 로직 구현 * [#44] chore: import문 추가 * [feat] #46 - 회원 예매 조회 GET API 구현 (#48) * [#46] remove(BookingRetrieveRequest): 클래스 삭제 * [#46] refactor(BookingSuccessCode): 회원 예매 조회 성공 메시지 추가 * [#46] refactor(GuestBookingRetrieveResponse): 클래스 명 변경 * [#46] refactor(GuestBookingRetrieveRequest): 안쓰는 코드 주석처리 * [#46] refactor(GuestBookingRetrieveService): 클래스 명 수정으로 인한 리팩토링 * [#46] refactor(SecurityConfig): 토큰 사용하지 않는 api 경로 추가하기 * [#46] refactor(BookingRepository): userId로 예약 정보를 가져오는 JPA 메서드 구현 * [#46] feat(MemberBookingRetrieveResponse): 회원 조회 응답 DTO 생성 * [#46] feat(MemberBookingRetrieveService): 회원 예매 조회 로직을 담당하는 서비스 레이어 구현 * [#46] feat(BookingController): 회원 예매 조회 GET API 구현 * [feat] #49 - 예매자 관리 API 구현 (#51) * [#49] feat: 티켓 관련 success, error code 추가 * [#49] feat(Booking): 입금여부 setter 메소드 추가 * [#49] feat(TicketRetrieveResponse): 예매자 확인 response dto 생성 * [#49] feat(Ticket): 예매자 확인용 티켓 정보 response dto 생성 * [#49] feat(TicketRepository): 예매자 필터링용 메소드 생성 * [#49] feat: 예매자 입금정보 수정 request dto 생성 * [#49] feat(TicketDeleteRequest): 예매자 삭제 request dto 생성 * [#49] feat(TicketService): 예매자 관리 관련 로직 구현 * [#49] feat(TicketController): 예매자 관리 엔드포인트 구현 * [#49] chore: swagger annotation 추가 * HOTFIX(SecurityConfig): WHITELIST 경로명 수정 * [fix] #52 - auth whitelist 수정 (#53) * [#52]fix(SecurityConfig): auth_whitelist 수정 * [#52]fix(SecurityConfig): auth_whitelist 수정 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [feat] #54 - 등록한 공연 목록 조회 GET API 구현 (#55) * [#54] feat(PerformanceSuccessCode): success code 추가 * [#54] feat: 회원이 등록한 공연목록 조회 dto 생성 * [#54] feat(PerformanceService): 회원이 등록한 공연목록 조회 로직 구현 * [#54] feat(PerformanceRepository): 회원이 등록한 공연목록 조회 관련 메소드 추가 * [#54] feat(PerformanceController): 회원이 등록한 공연목록 조회 엔드포인트 생성 * [#54] fix(TicketService): exception error 수정 * [#54] chore(application.yml): yml 수정 * [fix] #58 - dev-ci.yml, prod-ci.yml 환경변수 추가 (#59) * [#58] fix(dev-CI.yml): Dev 서버 CI 워크플로우 수정 * [#58] fix(prod-CI.yml): Prod 서버 CI 워크플로우 수정 * [refactor] #61 - Performance Entity field 추가 (#62) * [#61] refactor(Performance): bankHolder 필드 추가 * [#61] chore(BookingController): swagger annotation 수정 * [feat] #63 - healthCheckController 생성 (#64) * [#63] remove(UsersRepository): 중복 클래스 삭제 * [#63] feat(HealthCheckController): healthcheck 컨트롤러 생성 * [feat] #63 - health check URL 화이트리스트에 등록 (#67) * [#63] remove(UsersRepository): 중복 클래스 삭제 * [#63] feat(HealthCheckController): healthcheck 컨트롤러 생성 * [#63] feat(SecurityConfig): healthcheck url white_list에 등록 * [fix] #57 - entity 연관관계 설정 SecurityConfig 수정 (#65) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [fix] #57 - security 관련 에러 대응 (#71) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 * [#57] fix(JwtAuthenticationFilter): 에러 로직 수정 * fix(SecurityConfig): webSecurityCustomizer 로직 추가 * [fix] #73 - security 수정 (#74) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 * [#57] fix(JwtAuthenticationFilter): 에러 로직 수정 * fix(SecurityConfig): webSecurityCustomizer 로직 추가 * [#57] fix:security 수정 * [#76] fix(SecurityConfig): Base64 인코딩을 하도록 변경 (#77) * [fix] #76 - 누락된 코드 추가 (#79) * [#76] fix(SecurityConfig): Base64 인코딩을 하도록 변경 * [#76] chore(SecurityConfig): 누락된 import문 추가 * [#76] chore(JwtTokenProvider): 누락된 코드 추가 * [#81] fix(JwtTokenProvider): jwtsecret을 인코딩하고 디코딩을 하도록 수정 (#82) --------- Co-authored-by: hyerinhwang-sailin * [deploy] merge to main (#87) * [deploy] merge to develop (#27) * [deploy] merge to main (#26) * [#2] chore(.gitignore): .gradle, .idea 파일 삭제 (#3) * [refactor] #4 - 도메인형 디렉터리 구조 변경 및 local, dev, prod 운영 환경 분리 (#5) * [#4] fix: 클래스 첫글자 대문자로 수정 * [#4] remove: enum 삭제 * [#4] feat(BaseSuccessCode): 성공 상태 관리를 위한 인터페이스 생성 * [#4] feat(BaseErrorCode): 에러 상태 관리를 위한 인터페이스 생성 * [#4] refactor: global 패키지로 이동 * [#4] refactor: 서버 운영 환경 분리 * [feat] #6 - dev, prod Dockerfile 분리 및 github Action CI workflow 구현 (#7) * [#6] feat(Dockerfile): prod용 도커 파일 구현 * [#6] feat(Dockerfile-dev): dev용 도커 파일 구현 * [#6] feat(dev-CI.yml): dev용 CI workflow 구현 * [#6] feat(prod-CI.yml): prod용 CI workflow 구현 * [#6] chore(.gitignore): gradle-wrapper.jar 파일은 레포지토리에 포함되도록 설정 * [#6] fix(gradle-wrapper.jar): .gitignore로 누락된 파일 추가 * [#6] chore(build.grade): plain jar 생성 방지 * [#9] docs(README.md): 서비스 소개 README v1 작성 (#10) * [#11] docs(README.md): 리드미 업데이트 (#12) * [feat] #13 - 유저, 예매, 공연, 회차 엔티티 생성 (#15) * [#13] feat(Users): 사용자 엔티티 생성 * [#13] feat(Genre): 장르 열거형 생성 * [#13] feat(BankName): 은행명 열거형 생성 * [#13] refactor(BaseTimeEntity): 업데이트 시간 관리 필드 활성화 * [#13] feat(Performance): 공연 엔티티 생성 * [#13] feat(ScheduleNumber): 회차 번호 열거형 생성 * [#13] feat(Schedule): 회차 엔티티 생성 * [#13] feat(Booking): 예매 엔티티 생성 * [#13] refactor(ScheduleNumber): 네이밍 수정 * [feat] #14 - 회원, 홍보, 등장인물, 스태프 엔티티 생성 (#16) * [#14] feat(Member): 멤버 엔티티 생성 * [#14] feat(Promotion): 홍보 엔티티 생성 * [#14] feat(Cast): 등장인물 엔티티 생성 * [#14] feat(Staff): 스태프 엔티티 생성 * [feat] #13 - 유저, 예매, 공연, 회차 엔티티 생성 (#15) * [#13] feat(Users): 사용자 엔티티 생성 * [#13] feat(Genre): 장르 열거형 생성 * [#13] feat(BankName): 은행명 열거형 생성 * [#13] refactor(BaseTimeEntity): 업데이트 시간 관리 필드 활성화 * [#13] feat(Performance): 공연 엔티티 생성 * [#13] feat(ScheduleNumber): 회차 번호 열거형 생성 * [#13] feat(Schedule): 회차 엔티티 생성 * [#13] feat(Booking): 예매 엔티티 생성 * [#13] refactor(ScheduleNumber): 네이밍 수정 * [#14} fix: 스태프, 등장인물, 홍보 엔티티 상속관계 수정 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [#18] feat(Jenkinsfile): 젠킨스 파일 생성 (#19) * [#20] refactor(Jenkinsfile): 젠킨스 파일 Webhook 테스트용 커밋 (#21) * [#22] feat(Jenkinsfile): Jenkins multibranch 스크립트 작성 (#23) * HOTFIX(Jenkinsfile): Jenkins multibranch 스크립트 수정 * HOTFIX(workflows): 빌드 후 젠킨스 배포가 진행되도록 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * [#24] feat(Jenkinsfile): slack 연동 스크립트 작성 (#25) --------- Co-authored-by: hyerinhwang-sailin * HOTFIX(workflow): 오타 수정 --------- Co-authored-by: hyerinhwang-sailin * [feat] #28 - 비회원 예매 조회 POST API 구현 (#29) * chore(application-dev.yml): dialect 추가 * chore(application-prod.yml): dialect 추가 * [#28] chore(build.gradle): security 의존성 비활성화 - security 일시적으로 비활성화 * [#28] refactor(Booking): 예매 엔티티에 빌더 및 정적팩토리 메서드 추가 * [#28] refactor(ErrorResponse): 정적 팩토리 메서드 네이밍 변환 * [#28] refactor(Schedule): 회차 엔티티에 빌더 및 정적 팩토리 메서드 추가 * [#28] refactor(Performance): 공연 엔티티에 빌더 및 정적 팩토리 메서드 추가 * [#28] refactor(SuccessResponse): 정적 팩토리 메서드 네이밍 변환 * [#28] refactor(GlobalExceptionHandler): INTERNAL_SERVER_ERROR 핸들러 메서드 추가 * [#28] feat(BookingSuccessCode): 예매 성공 메시지를 관리하는 열거형 생성 * [#28] feat(BookingErrorCode): 예매 에러 메시지를 관리하는 열거형 생성 * [#28] feat(BookingRetrieveResponse): 예매 조회 응답 DTO 생성 * [#28] feat(BookingRetrieveRequest): 예매 조회 요청 DTO 생성 * [#28] feat(BookingRepository): 예매 레포지토리 생성 및 비회원 예매 조회 시 예매 내역 가져오는 메서드 구현 * [#28] feat(BookingService): 예매 서비스 레이어 생성 및 비회원 조회 메서드 구현 * [#28] feat(BookingController): 예매 컨트롤러 생성 및 비회원 예매조회 POST API 구현 * [feat] #30 - SwaggerConfig 및 WebConfig 구현 (#31) * [#30] chore(build.gradle): springdoc 의존성 추가 * [#30] feat(SwaggerConfig): SwaggerConfig 추가 * [#30] feat(WebConfig): WebConfig 추가 * HOTFIX(workflows): push 이벤트 시 github action이 빌드 되지 않도록 수정 * HOTFIX(Jenkinsfile): 포트 수정 * [feat] #32 - 티켓 예매 가능 여부 GET API 구현 (#33) * [#32] refactor(BookingController): 메서드명 수정 * [#32] feat(ConflictException): Conflict 409에러 클래스 생성 * [#32] feat(GlobalExceptionHandler): ConflictException 등록 * [#32] feat(TicketAvailabilityRequest): TicketAvailabilityRequest DTO 생성 * [#32] feat(TicketAvailabilityResponse): TicketAvailabilityResponse DTO 생성 * [#32] feat(ScheduleSuccessCode): ScheduleSuccessCode 열거형 생성 * [#32] feat(ScheduleErrorCode): ScheduleErrorCode 열거형 생성 * [#32] feat(ScheduleRepository): ScheduleRepository 생성 * [#32] feat(ScheduleService): ScheduleService 생성 및 회차별 티켓 구매 가능 여부 판단 메서드 구현 * [#32] feat(ScheduleController): 회차별 티켓 수량 조회 GET API 구현 * [feat] #17 - 카카오 소셜 로그인 API 구현 (#36) * [#17] feat(build.gradle): jwt, security, open feign, Redis 의존성 추가 * [#17] feat(BeatApplication): OpenFeign 관련 어노테이션 추가 * [#17] feat(RedisConfig): redis 설정 * [#17] feat: redis 활용 jwt 토큰 생성 로직 구현 * [#17] feat(SecurityConfig): security 설정 * [#17] refactor: Member, Users 엔티티 수정 및 관련 enum 추가 * [#17] feat: Member, Users 도메인 관련 인증 로직 구현 * [#17] feat(MemberController): Member 관련 API 엔드포인트 구현 * [#17] feat: Security 관련 인증 객체 구현 * [#17] feat: 소셜로그인 로직 구현 * [#17] fix: 소셜로그인 오류 해결 * [#17] refactor: 코드리뷰 반영 * [#17] refactor: 코드리뷰 반영 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [feat] #34 - 비회원 예매 POST API 구현 (#35) * [#34] feat(Users): 빌더 및 정적 팩토리 메서드 추가 * [#34] feat(Entity): 엔티티 id 필드 수정 * [#34] refactor(application.yml): dialect 추가 * [#34] refactor(ScheduleService): 네이밍 수정 * [#34] refactor(BookingSuccessCode): 비회원 예매 조회 성공 메시지 추가 * [#34] feat(GuestBookingRequest): 비회원 예매 요청 DTO 생성 * [#34] feat(GuestBookingResponse): 비회원 예매 응답 DTO 생성 * [#34] refactor(BookingRetrieveService): 네이밍 수정 * [#34] feat(PerformanceRepository): 공연 레포지토리 생성 * [#34] feat(UserRepository): 유저 레포지토리 생성 * [#34] refactor(BookingRepository): 비회원 예매 시 네가지 정보가 모두 일치 해야만 다른 유저로 판단하는 메서드 구현 * [#34] refactor(ScheduleRepository): 비관적 락 적용 * [#34] feat(GuestBookingService): 비관적 락을 이용해 비회원 예매 로직 구현 * [#34] feat(BookingController): 비회원 예매 POST API 구현 * [#34] test(GuestBookingServiceConcurrencyTest): 동시성 테스트 구현 * [Refactor] #37 - 카카오 로그인 API response 수정 (#39) * [#37] rename: 빈 충돌 해결 위해 UserRepository를 UsersRepository로 rename * [#37] refactor: login response에서 refreshToken을 cookie에 담아주도록 변경 * [#37] fix: dao, repository 충돌 해결 * [#37] refactor: 어노테이션 수정 * [feat] #40 - 소개 관련 공연 정보 조회 GET API 구현 (#41) * [#40] feat: repository 추가 * [#40] feat: 공연 관련 성공, 실패 메세지 추가 * [#40] feat(PerformanceDetailResponse): 공연 상세페이지 조회 응답 dto * [#40] feat(PerformanceService): 공연 상세페이지 조회 로직 구현 * [#40] feat(PerformanceController): 공연 상세페이지 엔드포인트 구현 * [#40] feat(SecurityConfig): auth whitelist update * [#40] refactor: dto 분리 및 rename * [feat] #42 - 예매 관련 공연 정보 GET API 구현 (#43) * [#42] feat: 예매 관련 정보 조회 dto 생성 * [#42] feat: 예매 관련 정보 조회 성공 메세지 추가 * [#42] feat(ScheduleService): 잔여티켓계산, 예매가능여부확인, 예매가능여부 update 메소드 구현 * [#42] feat(PerformanceService): 예매관련공연정보의 response 생성하는 로직 구현 * [#42] feat(PerformanceController): 예매관련공연정보 조회 엔드포인트 구현 * [#42] feat(SecurityConfig): auth_whitelist update * [#42] refactor(ScheduleService): findTicketAvailability에서 getAvailableTicketCount method 사용하도록 수정 * [feat] #38 - 회원 예매 POST API 구현 (#45) * [#38] fix(Cast): Join 하는 부분 수정 및 빌더와 정적 팩토리 메서드 패턴 도입 * [#38] chore(application.yml): 계층 수정 * [#38] feat: 커스텀 어노테이션 생성 * [#38] fix(UserRepository): 중복된 클래스 삭제 * [#38] feat(UserErrorCode): 유저의 에러 메시지를 관리하는 열거형 생성 * [#38] refactor(MemberErrorCode): message 목적에 맞게 변경 * [#38] refactor(BookingSuccessCode): 회원 예매 성공 메시지 추가 * [#38] feat: 커스텀 어노테이션 생성 커밋에 누락된 클래스 추가 * [#38] refactor(GuestBookingService): schedule에서 바로 get 하도록 수정 * [#38] test(GuestBookingServiceConcurrencyTest): import문 경로명 변경 * [#38] refactor(MemberService): @Transactional 어노테이션이 필요한 메서드에 해당 옵션 추가 * [#38] feat(MemberBookingRequest): 회원 예매 요청 DTO 생성 * [#38] feat(MemberBookingResponse): 회원 예매 응답 DTO 생성 * [#38] refactor(MemberController): refreshToken을 쿠키에 넣어주도록 구현 * [#38] feat(MemberBookingService): 회원 예매 서비스 로직 구현 * [#38] feat(BookingController): 회원 예매 요청 POST API 구현 * [#38] fix: 빌드 안되는 부분 수정 * [#38] remove(MemberBookingService): 사용하지 않는 import문 삭제 * [#38] refactor: 커스텀 어노테이션 이름 수정 * [feat] #44 - 홈페이지 공연 및 홍보 조회 GET API 구현 (#47) * [#44] refactor: 코드리뷰 반영 * [#44] fix(Promotion): 기본키 이름 수정, performanceId 연관관계 설정 * [#44] feat: Repository 및 관련 로직 추가 * [#44] feat: errorcode, successcode 추가 * [#44] feat: 홈페이지 request, response dto 생성 * [#44] feat(ScheduleService): dueDate 관련 로직 구현 * [#44] feat(PerformanceService): 홈페이지 정렬 및 response 생성 로직 구현 * [#44] chore: import문 추가 * [feat] #46 - 회원 예매 조회 GET API 구현 (#48) * [#46] remove(BookingRetrieveRequest): 클래스 삭제 * [#46] refactor(BookingSuccessCode): 회원 예매 조회 성공 메시지 추가 * [#46] refactor(GuestBookingRetrieveResponse): 클래스 명 변경 * [#46] refactor(GuestBookingRetrieveRequest): 안쓰는 코드 주석처리 * [#46] refactor(GuestBookingRetrieveService): 클래스 명 수정으로 인한 리팩토링 * [#46] refactor(SecurityConfig): 토큰 사용하지 않는 api 경로 추가하기 * [#46] refactor(BookingRepository): userId로 예약 정보를 가져오는 JPA 메서드 구현 * [#46] feat(MemberBookingRetrieveResponse): 회원 조회 응답 DTO 생성 * [#46] feat(MemberBookingRetrieveService): 회원 예매 조회 로직을 담당하는 서비스 레이어 구현 * [#46] feat(BookingController): 회원 예매 조회 GET API 구현 * [feat] #49 - 예매자 관리 API 구현 (#51) * [#49] feat: 티켓 관련 success, error code 추가 * [#49] feat(Booking): 입금여부 setter 메소드 추가 * [#49] feat(TicketRetrieveResponse): 예매자 확인 response dto 생성 * [#49] feat(Ticket): 예매자 확인용 티켓 정보 response dto 생성 * [#49] feat(TicketRepository): 예매자 필터링용 메소드 생성 * [#49] feat: 예매자 입금정보 수정 request dto 생성 * [#49] feat(TicketDeleteRequest): 예매자 삭제 request dto 생성 * [#49] feat(TicketService): 예매자 관리 관련 로직 구현 * [#49] feat(TicketController): 예매자 관리 엔드포인트 구현 * [#49] chore: swagger annotation 추가 * HOTFIX(SecurityConfig): WHITELIST 경로명 수정 * [fix] #52 - auth whitelist 수정 (#53) * [#52]fix(SecurityConfig): auth_whitelist 수정 * [#52]fix(SecurityConfig): auth_whitelist 수정 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [feat] #54 - 등록한 공연 목록 조회 GET API 구현 (#55) * [#54] feat(PerformanceSuccessCode): success code 추가 * [#54] feat: 회원이 등록한 공연목록 조회 dto 생성 * [#54] feat(PerformanceService): 회원이 등록한 공연목록 조회 로직 구현 * [#54] feat(PerformanceRepository): 회원이 등록한 공연목록 조회 관련 메소드 추가 * [#54] feat(PerformanceController): 회원이 등록한 공연목록 조회 엔드포인트 생성 * [#54] fix(TicketService): exception error 수정 * [#54] chore(application.yml): yml 수정 * [fix] #58 - dev-ci.yml, prod-ci.yml 환경변수 추가 (#59) * [#58] fix(dev-CI.yml): Dev 서버 CI 워크플로우 수정 * [#58] fix(prod-CI.yml): Prod 서버 CI 워크플로우 수정 * [refactor] #61 - Performance Entity field 추가 (#62) * [#61] refactor(Performance): bankHolder 필드 추가 * [#61] chore(BookingController): swagger annotation 수정 * [feat] #63 - healthCheckController 생성 (#64) * [#63] remove(UsersRepository): 중복 클래스 삭제 * [#63] feat(HealthCheckController): healthcheck 컨트롤러 생성 * [feat] #63 - health check URL 화이트리스트에 등록 (#67) * [#63] remove(UsersRepository): 중복 클래스 삭제 * [#63] feat(HealthCheckController): healthcheck 컨트롤러 생성 * [#63] feat(SecurityConfig): healthcheck url white_list에 등록 * [fix] #57 - entity 연관관계 설정 SecurityConfig 수정 (#65) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [fix] #57 - security 관련 에러 대응 (#71) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 * [#57] fix(JwtAuthenticationFilter): 에러 로직 수정 * fix(SecurityConfig): webSecurityCustomizer 로직 추가 * [fix] #73 - security 수정 (#74) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 * [#57] fix(JwtAuthenticationFilter): 에러 로직 수정 * fix(SecurityConfig): webSecurityCustomizer 로직 추가 * [#57] fix:security 수정 * [#76] fix(SecurityConfig): Base64 인코딩을 하도록 변경 (#77) * [fix] #76 - 누락된 코드 추가 (#79) * [#76] fix(SecurityConfig): Base64 인코딩을 하도록 변경 * [#76] chore(SecurityConfig): 누락된 import문 추가 * [#76] chore(JwtTokenProvider): 누락된 코드 추가 * [#81] fix(JwtTokenProvider): jwtsecret을 인코딩하고 디코딩을 하도록 수정 (#82) * [#85] chore(application.yml): 환경변수 설정 (#86) --------- Co-authored-by: hyerinhwang-sailin --------- Co-authored-by: hyerinhwang-sailin * Revert "[deploy] merge to main (#90)" (#91) This reverts commit f519b0c82a2f01d4374eb045b9e90c6303381e50. * [fix] #93 - 누락된 어노테이션 및 누락된 경로명 추가 (#94) * [#93] fix(HealthCheckController): 누락된 어노테이션 추가 * [#93] refactor(SecurityConfig): 누락된 경로명 추가 * [bug] #84 - actuator/health 의존성 및 설정 추가 (#96) * [#84] chore(build.gradle): 의존성 추가 * [#84] chore: health/actuator yml 설정 추가 * [#84] chore: redis yml 설정 추가 * [#84] chore: yml 수정 (#99) * [bug] #101 - yml, s3 수정 (#102) * [#101] chore: yml 수정 * [#101] feat: s3 추가 * HOTIFX: prod ci-yml 수정 --------- Co-authored-by: hyerinhwang-sailin * Update application-prod.yml --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [feat] #50 - 공연 생성 POST API 생성 (#108) * [#50] chore: 폴더 이동 * [#50] feat: request DTO 생성 * [#50] feat: response DTO 생성 * [#50] refactor(PerformanceSuccessCode): 공연 생성 성공 메시지 추가 * [#50] chore(PerformanceService): import문 변 * [#50] chore(HomeController): import문 변 * [#50] feat(PerformanceCreateService): 공연 생성 서비스 로직 생성 * [#50] feat(PerformanceController): 공연 생성 POST API 생성 * [feat] #111 - 웹발신 구현 (#114) * [#111] feat(build.gradle): coolsms 의존성 추가 * [#111] feat: yml에 coolsms 환경변수 세팅 * [#111] feat(CoolSmsService): coolsms 웹발신 로직 구현 * [#111] feat(TicketService): coolsms 웹발신 트리거 로직 구현 * [#111] comment(TicketController): swagger 설명 수정 * [feat] #110 - 공연 수정 PUT API 구현 (#112) * [#110] feat: request DTO 생성 * [#110] feat: response DTO 생성 * [#110] feat(CastErrorCode): 등장인물 열거형 생성 * [#110] feat(StaffErrorCode): 스태프 에러 열거형 생성 * [#110] refactor(PerformanceSuccessCode): 공연 성공 수정 메시지 추가 * [#110] refactor(Performance): 업데이트 메서드 추가 * [#110] refactor(Schedule): 업데이트 메서드 추가 * [#110] refactor(Staff): 업데이트 메서드 추가 * [#110] test(GuestBookingServiceConcurrencyTest): 변경된 필드 추가 * [#110] refactor(Cast): 업데이트 메서드 추 * [#110] feat(PerformanceUpdateService): 공연 수정 서비스 로직 구현 * [#110] feat(PerformanceController): 공연 수정 PUT API 추가 * [feat] #113 - 공연 삭제 DELETE API 구현 (#116) * [#113] refactor(BookingRepository): 해당 공연을 예매한 사람이 있는지 판단하는 메서드 구현 * [#113] refactor(PerformanceErrorCode): 예매자가 한명 있을 경우 공연 취소가 안될때 보여주는 에러메시지 추가 * [#113] refactor(PerformanceSuccessCode): 공연이 삭제되었을 때 보여주는 성공 메시지 추가 * [#113] refactor(PerformanceManagementService): 멤버 아이디를 인자로 받도록 수정 및 공연 삭제 메서드 구현 * [#113] feat(PerformanceController): 공연 삭제 DELETE API 구현 * Update README.md * HOTFIX: 코드 수정 * [#119] refactor: response에 필요 필드 추가 (#120) * [feat] #117 - 공연 수정 페이지 정보 조회 GET API 구현 (#121) * [#117] remove(PerformanceCreateService): 사용하지 않는 클래스 삭제 * [#117] refactor(CastRepository): DB에 등록된 등장인물을 모두 가져오는 메서드 구현 * [#117] refactor(ScheduleRepository): DB에 등록된 회차를 모두 가져오는 메서드 구현 * [#117] refactor(StaffRepository): DB에 등록된 스태프를 모두 가져오는 메서드 구현 * [#117] refactor(PerformanceSuccessCode): 공연 수정 페이지 조회 성공 메시지 추가 * [#117] refactor(PerformanceEditResponse): 공연 수정 페이지 조회 응답 DTO 생성 * [#117] refactor(PerformanceService): 수정 페이지의 정보를 조회하는 서비스 로직 구현 * [#117] feat(PerformanceController): 공연 수정 페이지의 정보를 조회하는 GET API 구현 * [#123] fix(PerformanceController): 중복 코드 제거 (#124) * [#128] fix: 누락된 환경 변수 주입 및 수정 (#129) * [feat] #127 - presigned-url로 포스터 이미지, 등장인물 이미지 리스트, 스태프 이미지 리스트를 반환하도록 구현 (#131) * [#127] feat(SecurityConfig): 화이트 리스트에 presigned-url 추가 * [#127] refactor(FileService): 포스터 이미지, 등장인물 이미지 리스트, 스태프 이미지 리스트의 presigned-url을 반환하는 메서드 구현 * [#127] feat(FileController): presigned-url GET API 구현 * [refactor] #133 - presigned URL의 만료 시간 늘리기 (#134) * [#133] remove: 삭제된 클래스 커밋 * [#133] refactor(FileService): URL의 유효시간 2시간으로 설정 * [#135] refactor(SwaggerConfig): SwaggerConfig 리팩토링 (#136) * [#128] fix(BankName): bankname enum 추가 (#139) * [refactor] #126 - 프론트 요청 필드 반영 (#140) * [#126] refactor(BookingController): 회원 예매 조회시 성공 메시지 변경 * [#126] refactor(BookingRepository): 쿼리문 추가 * [#126] refactor(GuestBookingRequest): enum으로 리턴값 변경 * [#126] refactor(GuestBookingResponse): enum으로 리턴값 변경 * [#126] chore(GuestBookingRetrieveRequest): 주석 삭제 * [#126] refactor(GuestBookingRetrieveResponse): performanceId, posterImage, totalPaymentAmount 추가 * [#126] refactor(MemberBookingRetrieveResponse): performanceId, posterImage, totalPaymentAmount 추가 * [#126] refactor(MemberBookingRetrieveService): response에 추가된 필드 리턴하도록 리팩토링 * [#126] refactor(GuestBookingRetrieveService): response에 추가된 필드 리턴하도록 리팩토링 * [#126] refactor(GuestBookingService): displayName이 아닌 열거형으로 리턴하도록 수정 * [#126] refactor(MemberBookingRequest): 정적 팩토리 메서드 삭제 * [#126] refactor(MemberBookingResponse): enum으로 리턴하도록 수정 * [#126] refactor(MemberBookingService): enum으로 리턴하도록 수정 * [#126] test(GuestBookingServiceConcurrencyTest): DTO에서 수정된 리턴 방법 반영 * [#142] refactor(FileController): castImages, staffImages의 파라미터 value를 주지 않아도 presigned-url을 발급하도록 변경 (#143) * Update README.md * [#147] refactor: 예금주 필드 추가 (#148) --------- Co-authored-by: hyerinhwang-sailin --- .../booking/application/GuestBookingRetrieveService.java | 1 + .../booking/application/MemberBookingRetrieveService.java | 1 + .../booking/application/dto/GuestBookingRetrieveResponse.java | 3 +++ .../booking/application/dto/MemberBookingRetrieveResponse.java | 3 +++ 4 files changed, 8 insertions(+) diff --git a/src/main/java/com/beat/domain/booking/application/GuestBookingRetrieveService.java b/src/main/java/com/beat/domain/booking/application/GuestBookingRetrieveService.java index 998178c0..8a3aaa24 100644 --- a/src/main/java/com/beat/domain/booking/application/GuestBookingRetrieveService.java +++ b/src/main/java/com/beat/domain/booking/application/GuestBookingRetrieveService.java @@ -81,6 +81,7 @@ private GuestBookingRetrieveResponse toBookingResponse(Booking booking) { performance.getPerformanceContact(), performance.getBankName(), performance.getAccountNumber(), + performance.getAccountHolder(), calculateDueDate(schedule.getPerformanceDate()), booking.isPaymentCompleted(), booking.getCreatedAt(), diff --git a/src/main/java/com/beat/domain/booking/application/MemberBookingRetrieveService.java b/src/main/java/com/beat/domain/booking/application/MemberBookingRetrieveService.java index 45fbbeef..82c6981c 100644 --- a/src/main/java/com/beat/domain/booking/application/MemberBookingRetrieveService.java +++ b/src/main/java/com/beat/domain/booking/application/MemberBookingRetrieveService.java @@ -62,6 +62,7 @@ private MemberBookingRetrieveResponse toMemberBookingResponse(Booking booking) { performance.getPerformanceContact(), performance.getBankName(), performance.getAccountNumber(), + performance.getAccountHolder(), calculateDueDate(schedule.getPerformanceDate()), booking.isPaymentCompleted(), booking.getCreatedAt(), diff --git a/src/main/java/com/beat/domain/booking/application/dto/GuestBookingRetrieveResponse.java b/src/main/java/com/beat/domain/booking/application/dto/GuestBookingRetrieveResponse.java index ade0a452..9a490638 100644 --- a/src/main/java/com/beat/domain/booking/application/dto/GuestBookingRetrieveResponse.java +++ b/src/main/java/com/beat/domain/booking/application/dto/GuestBookingRetrieveResponse.java @@ -18,6 +18,7 @@ public record GuestBookingRetrieveResponse( String performanceContact, BankName bankName, String accountNumber, + String accountHolder, int dueDate, boolean isPaymentCompleted, LocalDateTime createdAt, @@ -37,6 +38,7 @@ public static GuestBookingRetrieveResponse of( String performanceContact, BankName bankName, String accountNumber, + String accountHolder, int dueDate, boolean isPaymentCompleted, LocalDateTime createdAt, @@ -56,6 +58,7 @@ public static GuestBookingRetrieveResponse of( performanceContact, bankName, accountNumber, + accountHolder, dueDate, isPaymentCompleted, createdAt, diff --git a/src/main/java/com/beat/domain/booking/application/dto/MemberBookingRetrieveResponse.java b/src/main/java/com/beat/domain/booking/application/dto/MemberBookingRetrieveResponse.java index 58af4285..134767bc 100644 --- a/src/main/java/com/beat/domain/booking/application/dto/MemberBookingRetrieveResponse.java +++ b/src/main/java/com/beat/domain/booking/application/dto/MemberBookingRetrieveResponse.java @@ -19,6 +19,7 @@ public record MemberBookingRetrieveResponse( String performanceContact, BankName bankName, String accountNumber, + String accountHolder, int dueDate, boolean isPaymentCompleted, LocalDateTime createdAt, @@ -39,6 +40,7 @@ public static MemberBookingRetrieveResponse of( String performanceContact, BankName bankName, String accountNumber, + String accountHolder, int dueDate, boolean isPaymentCompleted, LocalDateTime createdAt, @@ -59,6 +61,7 @@ public static MemberBookingRetrieveResponse of( performanceContact, bankName, accountNumber, + accountHolder, dueDate, isPaymentCompleted, createdAt, From ac5aeb279c6fe46ef009885614c81b7cccab46f6 Mon Sep 17 00:00:00 2001 From: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> Date: Fri, 19 Jul 2024 18:34:35 +0900 Subject: [PATCH 4/6] [deploy] merge to main (#153) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * [deploy] merge to develop (#27) * [deploy] merge to main (#26) * [#2] chore(.gitignore): .gradle, .idea 파일 삭제 (#3) * [refactor] #4 - 도메인형 디렉터리 구조 변경 및 local, dev, prod 운영 환경 분리 (#5) * [#4] fix: 클래스 첫글자 대문자로 수정 * [#4] remove: enum 삭제 * [#4] feat(BaseSuccessCode): 성공 상태 관리를 위한 인터페이스 생성 * [#4] feat(BaseErrorCode): 에러 상태 관리를 위한 인터페이스 생성 * [#4] refactor: global 패키지로 이동 * [#4] refactor: 서버 운영 환경 분리 * [feat] #6 - dev, prod Dockerfile 분리 및 github Action CI workflow 구현 (#7) * [#6] feat(Dockerfile): prod용 도커 파일 구현 * [#6] feat(Dockerfile-dev): dev용 도커 파일 구현 * [#6] feat(dev-CI.yml): dev용 CI workflow 구현 * [#6] feat(prod-CI.yml): prod용 CI workflow 구현 * [#6] chore(.gitignore): gradle-wrapper.jar 파일은 레포지토리에 포함되도록 설정 * [#6] fix(gradle-wrapper.jar): .gitignore로 누락된 파일 추가 * [#6] chore(build.grade): plain jar 생성 방지 * [#9] docs(README.md): 서비스 소개 README v1 작성 (#10) * [#11] docs(README.md): 리드미 업데이트 (#12) * [feat] #13 - 유저, 예매, 공연, 회차 엔티티 생성 (#15) * [#13] feat(Users): 사용자 엔티티 생성 * [#13] feat(Genre): 장르 열거형 생성 * [#13] feat(BankName): 은행명 열거형 생성 * [#13] refactor(BaseTimeEntity): 업데이트 시간 관리 필드 활성화 * [#13] feat(Performance): 공연 엔티티 생성 * [#13] feat(ScheduleNumber): 회차 번호 열거형 생성 * [#13] feat(Schedule): 회차 엔티티 생성 * [#13] feat(Booking): 예매 엔티티 생성 * [#13] refactor(ScheduleNumber): 네이밍 수정 * [feat] #14 - 회원, 홍보, 등장인물, 스태프 엔티티 생성 (#16) * [#14] feat(Member): 멤버 엔티티 생성 * [#14] feat(Promotion): 홍보 엔티티 생성 * [#14] feat(Cast): 등장인물 엔티티 생성 * [#14] feat(Staff): 스태프 엔티티 생성 * [feat] #13 - 유저, 예매, 공연, 회차 엔티티 생성 (#15) * [#13] feat(Users): 사용자 엔티티 생성 * [#13] feat(Genre): 장르 열거형 생성 * [#13] feat(BankName): 은행명 열거형 생성 * [#13] refactor(BaseTimeEntity): 업데이트 시간 관리 필드 활성화 * [#13] feat(Performance): 공연 엔티티 생성 * [#13] feat(ScheduleNumber): 회차 번호 열거형 생성 * [#13] feat(Schedule): 회차 엔티티 생성 * [#13] feat(Booking): 예매 엔티티 생성 * [#13] refactor(ScheduleNumber): 네이밍 수정 * [#14} fix: 스태프, 등장인물, 홍보 엔티티 상속관계 수정 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [#18] feat(Jenkinsfile): 젠킨스 파일 생성 (#19) * [#20] refactor(Jenkinsfile): 젠킨스 파일 Webhook 테스트용 커밋 (#21) * [#22] feat(Jenkinsfile): Jenkins multibranch 스크립트 작성 (#23) * HOTFIX(Jenkinsfile): Jenkins multibranch 스크립트 수정 * HOTFIX(workflows): 빌드 후 젠킨스 배포가 진행되도록 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * [#24] feat(Jenkinsfile): slack 연동 스크립트 작성 (#25) --------- Co-authored-by: hyerinhwang-sailin * HOTFIX(workflow): 오타 수정 --------- Co-authored-by: hyerinhwang-sailin * [feat] #28 - 비회원 예매 조회 POST API 구현 (#29) * chore(application-dev.yml): dialect 추가 * chore(application-prod.yml): dialect 추가 * [#28] chore(build.gradle): security 의존성 비활성화 - security 일시적으로 비활성화 * [#28] refactor(Booking): 예매 엔티티에 빌더 및 정적팩토리 메서드 추가 * [#28] refactor(ErrorResponse): 정적 팩토리 메서드 네이밍 변환 * [#28] refactor(Schedule): 회차 엔티티에 빌더 및 정적 팩토리 메서드 추가 * [#28] refactor(Performance): 공연 엔티티에 빌더 및 정적 팩토리 메서드 추가 * [#28] refactor(SuccessResponse): 정적 팩토리 메서드 네이밍 변환 * [#28] refactor(GlobalExceptionHandler): INTERNAL_SERVER_ERROR 핸들러 메서드 추가 * [#28] feat(BookingSuccessCode): 예매 성공 메시지를 관리하는 열거형 생성 * [#28] feat(BookingErrorCode): 예매 에러 메시지를 관리하는 열거형 생성 * [#28] feat(BookingRetrieveResponse): 예매 조회 응답 DTO 생성 * [#28] feat(BookingRetrieveRequest): 예매 조회 요청 DTO 생성 * [#28] feat(BookingRepository): 예매 레포지토리 생성 및 비회원 예매 조회 시 예매 내역 가져오는 메서드 구현 * [#28] feat(BookingService): 예매 서비스 레이어 생성 및 비회원 조회 메서드 구현 * [#28] feat(BookingController): 예매 컨트롤러 생성 및 비회원 예매조회 POST API 구현 * [feat] #30 - SwaggerConfig 및 WebConfig 구현 (#31) * [#30] chore(build.gradle): springdoc 의존성 추가 * [#30] feat(SwaggerConfig): SwaggerConfig 추가 * [#30] feat(WebConfig): WebConfig 추가 * HOTFIX(workflows): push 이벤트 시 github action이 빌드 되지 않도록 수정 * HOTFIX(Jenkinsfile): 포트 수정 * [feat] #32 - 티켓 예매 가능 여부 GET API 구현 (#33) * [#32] refactor(BookingController): 메서드명 수정 * [#32] feat(ConflictException): Conflict 409에러 클래스 생성 * [#32] feat(GlobalExceptionHandler): ConflictException 등록 * [#32] feat(TicketAvailabilityRequest): TicketAvailabilityRequest DTO 생성 * [#32] feat(TicketAvailabilityResponse): TicketAvailabilityResponse DTO 생성 * [#32] feat(ScheduleSuccessCode): ScheduleSuccessCode 열거형 생성 * [#32] feat(ScheduleErrorCode): ScheduleErrorCode 열거형 생성 * [#32] feat(ScheduleRepository): ScheduleRepository 생성 * [#32] feat(ScheduleService): ScheduleService 생성 및 회차별 티켓 구매 가능 여부 판단 메서드 구현 * [#32] feat(ScheduleController): 회차별 티켓 수량 조회 GET API 구현 * [feat] #17 - 카카오 소셜 로그인 API 구현 (#36) * [#17] feat(build.gradle): jwt, security, open feign, Redis 의존성 추가 * [#17] feat(BeatApplication): OpenFeign 관련 어노테이션 추가 * [#17] feat(RedisConfig): redis 설정 * [#17] feat: redis 활용 jwt 토큰 생성 로직 구현 * [#17] feat(SecurityConfig): security 설정 * [#17] refactor: Member, Users 엔티티 수정 및 관련 enum 추가 * [#17] feat: Member, Users 도메인 관련 인증 로직 구현 * [#17] feat(MemberController): Member 관련 API 엔드포인트 구현 * [#17] feat: Security 관련 인증 객체 구현 * [#17] feat: 소셜로그인 로직 구현 * [#17] fix: 소셜로그인 오류 해결 * [#17] refactor: 코드리뷰 반영 * [#17] refactor: 코드리뷰 반영 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [feat] #34 - 비회원 예매 POST API 구현 (#35) * [#34] feat(Users): 빌더 및 정적 팩토리 메서드 추가 * [#34] feat(Entity): 엔티티 id 필드 수정 * [#34] refactor(application.yml): dialect 추가 * [#34] refactor(ScheduleService): 네이밍 수정 * [#34] refactor(BookingSuccessCode): 비회원 예매 조회 성공 메시지 추가 * [#34] feat(GuestBookingRequest): 비회원 예매 요청 DTO 생성 * [#34] feat(GuestBookingResponse): 비회원 예매 응답 DTO 생성 * [#34] refactor(BookingRetrieveService): 네이밍 수정 * [#34] feat(PerformanceRepository): 공연 레포지토리 생성 * [#34] feat(UserRepository): 유저 레포지토리 생성 * [#34] refactor(BookingRepository): 비회원 예매 시 네가지 정보가 모두 일치 해야만 다른 유저로 판단하는 메서드 구현 * [#34] refactor(ScheduleRepository): 비관적 락 적용 * [#34] feat(GuestBookingService): 비관적 락을 이용해 비회원 예매 로직 구현 * [#34] feat(BookingController): 비회원 예매 POST API 구현 * [#34] test(GuestBookingServiceConcurrencyTest): 동시성 테스트 구현 * [Refactor] #37 - 카카오 로그인 API response 수정 (#39) * [#37] rename: 빈 충돌 해결 위해 UserRepository를 UsersRepository로 rename * [#37] refactor: login response에서 refreshToken을 cookie에 담아주도록 변경 * [#37] fix: dao, repository 충돌 해결 * [#37] refactor: 어노테이션 수정 * [feat] #40 - 소개 관련 공연 정보 조회 GET API 구현 (#41) * [#40] feat: repository 추가 * [#40] feat: 공연 관련 성공, 실패 메세지 추가 * [#40] feat(PerformanceDetailResponse): 공연 상세페이지 조회 응답 dto * [#40] feat(PerformanceService): 공연 상세페이지 조회 로직 구현 * [#40] feat(PerformanceController): 공연 상세페이지 엔드포인트 구현 * [#40] feat(SecurityConfig): auth whitelist update * [#40] refactor: dto 분리 및 rename * [feat] #42 - 예매 관련 공연 정보 GET API 구현 (#43) * [#42] feat: 예매 관련 정보 조회 dto 생성 * [#42] feat: 예매 관련 정보 조회 성공 메세지 추가 * [#42] feat(ScheduleService): 잔여티켓계산, 예매가능여부확인, 예매가능여부 update 메소드 구현 * [#42] feat(PerformanceService): 예매관련공연정보의 response 생성하는 로직 구현 * [#42] feat(PerformanceController): 예매관련공연정보 조회 엔드포인트 구현 * [#42] feat(SecurityConfig): auth_whitelist update * [#42] refactor(ScheduleService): findTicketAvailability에서 getAvailableTicketCount method 사용하도록 수정 * [feat] #38 - 회원 예매 POST API 구현 (#45) * [#38] fix(Cast): Join 하는 부분 수정 및 빌더와 정적 팩토리 메서드 패턴 도입 * [#38] chore(application.yml): 계층 수정 * [#38] feat: 커스텀 어노테이션 생성 * [#38] fix(UserRepository): 중복된 클래스 삭제 * [#38] feat(UserErrorCode): 유저의 에러 메시지를 관리하는 열거형 생성 * [#38] refactor(MemberErrorCode): message 목적에 맞게 변경 * [#38] refactor(BookingSuccessCode): 회원 예매 성공 메시지 추가 * [#38] feat: 커스텀 어노테이션 생성 커밋에 누락된 클래스 추가 * [#38] refactor(GuestBookingService): schedule에서 바로 get 하도록 수정 * [#38] test(GuestBookingServiceConcurrencyTest): import문 경로명 변경 * [#38] refactor(MemberService): @Transactional 어노테이션이 필요한 메서드에 해당 옵션 추가 * [#38] feat(MemberBookingRequest): 회원 예매 요청 DTO 생성 * [#38] feat(MemberBookingResponse): 회원 예매 응답 DTO 생성 * [#38] refactor(MemberController): refreshToken을 쿠키에 넣어주도록 구현 * [#38] feat(MemberBookingService): 회원 예매 서비스 로직 구현 * [#38] feat(BookingController): 회원 예매 요청 POST API 구현 * [#38] fix: 빌드 안되는 부분 수정 * [#38] remove(MemberBookingService): 사용하지 않는 import문 삭제 * [#38] refactor: 커스텀 어노테이션 이름 수정 * [feat] #44 - 홈페이지 공연 및 홍보 조회 GET API 구현 (#47) * [#44] refactor: 코드리뷰 반영 * [#44] fix(Promotion): 기본키 이름 수정, performanceId 연관관계 설정 * [#44] feat: Repository 및 관련 로직 추가 * [#44] feat: errorcode, successcode 추가 * [#44] feat: 홈페이지 request, response dto 생성 * [#44] feat(ScheduleService): dueDate 관련 로직 구현 * [#44] feat(PerformanceService): 홈페이지 정렬 및 response 생성 로직 구현 * [#44] chore: import문 추가 * [feat] #46 - 회원 예매 조회 GET API 구현 (#48) * [#46] remove(BookingRetrieveRequest): 클래스 삭제 * [#46] refactor(BookingSuccessCode): 회원 예매 조회 성공 메시지 추가 * [#46] refactor(GuestBookingRetrieveResponse): 클래스 명 변경 * [#46] refactor(GuestBookingRetrieveRequest): 안쓰는 코드 주석처리 * [#46] refactor(GuestBookingRetrieveService): 클래스 명 수정으로 인한 리팩토링 * [#46] refactor(SecurityConfig): 토큰 사용하지 않는 api 경로 추가하기 * [#46] refactor(BookingRepository): userId로 예약 정보를 가져오는 JPA 메서드 구현 * [#46] feat(MemberBookingRetrieveResponse): 회원 조회 응답 DTO 생성 * [#46] feat(MemberBookingRetrieveService): 회원 예매 조회 로직을 담당하는 서비스 레이어 구현 * [#46] feat(BookingController): 회원 예매 조회 GET API 구현 * [feat] #49 - 예매자 관리 API 구현 (#51) * [#49] feat: 티켓 관련 success, error code 추가 * [#49] feat(Booking): 입금여부 setter 메소드 추가 * [#49] feat(TicketRetrieveResponse): 예매자 확인 response dto 생성 * [#49] feat(Ticket): 예매자 확인용 티켓 정보 response dto 생성 * [#49] feat(TicketRepository): 예매자 필터링용 메소드 생성 * [#49] feat: 예매자 입금정보 수정 request dto 생성 * [#49] feat(TicketDeleteRequest): 예매자 삭제 request dto 생성 * [#49] feat(TicketService): 예매자 관리 관련 로직 구현 * [#49] feat(TicketController): 예매자 관리 엔드포인트 구현 * [#49] chore: swagger annotation 추가 * HOTFIX(SecurityConfig): WHITELIST 경로명 수정 * [fix] #52 - auth whitelist 수정 (#53) * [#52]fix(SecurityConfig): auth_whitelist 수정 * [#52]fix(SecurityConfig): auth_whitelist 수정 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [feat] #54 - 등록한 공연 목록 조회 GET API 구현 (#55) * [#54] feat(PerformanceSuccessCode): success code 추가 * [#54] feat: 회원이 등록한 공연목록 조회 dto 생성 * [#54] feat(PerformanceService): 회원이 등록한 공연목록 조회 로직 구현 * [#54] feat(PerformanceRepository): 회원이 등록한 공연목록 조회 관련 메소드 추가 * [#54] feat(PerformanceController): 회원이 등록한 공연목록 조회 엔드포인트 생성 * [#54] fix(TicketService): exception error 수정 * [#54] chore(application.yml): yml 수정 * [fix] #58 - dev-ci.yml, prod-ci.yml 환경변수 추가 (#59) * [#58] fix(dev-CI.yml): Dev 서버 CI 워크플로우 수정 * [#58] fix(prod-CI.yml): Prod 서버 CI 워크플로우 수정 * [refactor] #61 - Performance Entity field 추가 (#62) * [#61] refactor(Performance): bankHolder 필드 추가 * [#61] chore(BookingController): swagger annotation 수정 * [feat] #63 - healthCheckController 생성 (#64) * [#63] remove(UsersRepository): 중복 클래스 삭제 * [#63] feat(HealthCheckController): healthcheck 컨트롤러 생성 * [feat] #63 - health check URL 화이트리스트에 등록 (#67) * [#63] remove(UsersRepository): 중복 클래스 삭제 * [#63] feat(HealthCheckController): healthcheck 컨트롤러 생성 * [#63] feat(SecurityConfig): healthcheck url white_list에 등록 * [fix] #57 - entity 연관관계 설정 SecurityConfig 수정 (#65) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [fix] #57 - security 관련 에러 대응 (#71) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 * [#57] fix(JwtAuthenticationFilter): 에러 로직 수정 * fix(SecurityConfig): webSecurityCustomizer 로직 추가 * [fix] #73 - security 수정 (#74) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 * [#57] fix(JwtAuthenticationFilter): 에러 로직 수정 * fix(SecurityConfig): webSecurityCustomizer 로직 추가 * [#57] fix:security 수정 * [#76] fix(SecurityConfig): Base64 인코딩을 하도록 변경 (#77) * [fix] #76 - 누락된 코드 추가 (#79) * [#76] fix(SecurityConfig): Base64 인코딩을 하도록 변경 * [#76] chore(SecurityConfig): 누락된 import문 추가 * [#76] chore(JwtTokenProvider): 누락된 코드 추가 * [#81] fix(JwtTokenProvider): jwtsecret을 인코딩하고 디코딩을 하도록 수정 (#82) * [#85] chore(application.yml): 환경변수 설정 (#86) * [chore] #88 - 레디스 환경변수 추가 (#89) * [#88] chore(dev-CI.yml): dev서버 레디스 환경변수 설정 추가 * [#88] chore(prod-CI.yml): prod 서버 레디스 환경변수 설정 추가 * [deploy] merge to main (#90) * [deploy] merge to main (#83) * [deploy] merge to develop (#27) * [deploy] merge to main (#26) * [#2] chore(.gitignore): .gradle, .idea 파일 삭제 (#3) * [refactor] #4 - 도메인형 디렉터리 구조 변경 및 local, dev, prod 운영 환경 분리 (#5) * [#4] fix: 클래스 첫글자 대문자로 수정 * [#4] remove: enum 삭제 * [#4] feat(BaseSuccessCode): 성공 상태 관리를 위한 인터페이스 생성 * [#4] feat(BaseErrorCode): 에러 상태 관리를 위한 인터페이스 생성 * [#4] refactor: global 패키지로 이동 * [#4] refactor: 서버 운영 환경 분리 * [feat] #6 - dev, prod Dockerfile 분리 및 github Action CI workflow 구현 (#7) * [#6] feat(Dockerfile): prod용 도커 파일 구현 * [#6] feat(Dockerfile-dev): dev용 도커 파일 구현 * [#6] feat(dev-CI.yml): dev용 CI workflow 구현 * [#6] feat(prod-CI.yml): prod용 CI workflow 구현 * [#6] chore(.gitignore): gradle-wrapper.jar 파일은 레포지토리에 포함되도록 설정 * [#6] fix(gradle-wrapper.jar): .gitignore로 누락된 파일 추가 * [#6] chore(build.grade): plain jar 생성 방지 * [#9] docs(README.md): 서비스 소개 README v1 작성 (#10) * [#11] docs(README.md): 리드미 업데이트 (#12) * [feat] #13 - 유저, 예매, 공연, 회차 엔티티 생성 (#15) * [#13] feat(Users): 사용자 엔티티 생성 * [#13] feat(Genre): 장르 열거형 생성 * [#13] feat(BankName): 은행명 열거형 생성 * [#13] refactor(BaseTimeEntity): 업데이트 시간 관리 필드 활성화 * [#13] feat(Performance): 공연 엔티티 생성 * [#13] feat(ScheduleNumber): 회차 번호 열거형 생성 * [#13] feat(Schedule): 회차 엔티티 생성 * [#13] feat(Booking): 예매 엔티티 생성 * [#13] refactor(ScheduleNumber): 네이밍 수정 * [feat] #14 - 회원, 홍보, 등장인물, 스태프 엔티티 생성 (#16) * [#14] feat(Member): 멤버 엔티티 생성 * [#14] feat(Promotion): 홍보 엔티티 생성 * [#14] feat(Cast): 등장인물 엔티티 생성 * [#14] feat(Staff): 스태프 엔티티 생성 * [feat] #13 - 유저, 예매, 공연, 회차 엔티티 생성 (#15) * [#13] feat(Users): 사용자 엔티티 생성 * [#13] feat(Genre): 장르 열거형 생성 * [#13] feat(BankName): 은행명 열거형 생성 * [#13] refactor(BaseTimeEntity): 업데이트 시간 관리 필드 활성화 * [#13] feat(Performance): 공연 엔티티 생성 * [#13] feat(ScheduleNumber): 회차 번호 열거형 생성 * [#13] feat(Schedule): 회차 엔티티 생성 * [#13] feat(Booking): 예매 엔티티 생성 * [#13] refactor(ScheduleNumber): 네이밍 수정 * [#14} fix: 스태프, 등장인물, 홍보 엔티티 상속관계 수정 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [#18] feat(Jenkinsfile): 젠킨스 파일 생성 (#19) * [#20] refactor(Jenkinsfile): 젠킨스 파일 Webhook 테스트용 커밋 (#21) * [#22] feat(Jenkinsfile): Jenkins multibranch 스크립트 작성 (#23) * HOTFIX(Jenkinsfile): Jenkins multibranch 스크립트 수정 * HOTFIX(workflows): 빌드 후 젠킨스 배포가 진행되도록 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * [#24] feat(Jenkinsfile): slack 연동 스크립트 작성 (#25) --------- Co-authored-by: hyerinhwang-sailin * HOTFIX(workflow): 오타 수정 --------- Co-authored-by: hyerinhwang-sailin * [feat] #28 - 비회원 예매 조회 POST API 구현 (#29) * chore(application-dev.yml): dialect 추가 * chore(application-prod.yml): dialect 추가 * [#28] chore(build.gradle): security 의존성 비활성화 - security 일시적으로 비활성화 * [#28] refactor(Booking): 예매 엔티티에 빌더 및 정적팩토리 메서드 추가 * [#28] refactor(ErrorResponse): 정적 팩토리 메서드 네이밍 변환 * [#28] refactor(Schedule): 회차 엔티티에 빌더 및 정적 팩토리 메서드 추가 * [#28] refactor(Performance): 공연 엔티티에 빌더 및 정적 팩토리 메서드 추가 * [#28] refactor(SuccessResponse): 정적 팩토리 메서드 네이밍 변환 * [#28] refactor(GlobalExceptionHandler): INTERNAL_SERVER_ERROR 핸들러 메서드 추가 * [#28] feat(BookingSuccessCode): 예매 성공 메시지를 관리하는 열거형 생성 * [#28] feat(BookingErrorCode): 예매 에러 메시지를 관리하는 열거형 생성 * [#28] feat(BookingRetrieveResponse): 예매 조회 응답 DTO 생성 * [#28] feat(BookingRetrieveRequest): 예매 조회 요청 DTO 생성 * [#28] feat(BookingRepository): 예매 레포지토리 생성 및 비회원 예매 조회 시 예매 내역 가져오는 메서드 구현 * [#28] feat(BookingService): 예매 서비스 레이어 생성 및 비회원 조회 메서드 구현 * [#28] feat(BookingController): 예매 컨트롤러 생성 및 비회원 예매조회 POST API 구현 * [feat] #30 - SwaggerConfig 및 WebConfig 구현 (#31) * [#30] chore(build.gradle): springdoc 의존성 추가 * [#30] feat(SwaggerConfig): SwaggerConfig 추가 * [#30] feat(WebConfig): WebConfig 추가 * HOTFIX(workflows): push 이벤트 시 github action이 빌드 되지 않도록 수정 * HOTFIX(Jenkinsfile): 포트 수정 * [feat] #32 - 티켓 예매 가능 여부 GET API 구현 (#33) * [#32] refactor(BookingController): 메서드명 수정 * [#32] feat(ConflictException): Conflict 409에러 클래스 생성 * [#32] feat(GlobalExceptionHandler): ConflictException 등록 * [#32] feat(TicketAvailabilityRequest): TicketAvailabilityRequest DTO 생성 * [#32] feat(TicketAvailabilityResponse): TicketAvailabilityResponse DTO 생성 * [#32] feat(ScheduleSuccessCode): ScheduleSuccessCode 열거형 생성 * [#32] feat(ScheduleErrorCode): ScheduleErrorCode 열거형 생성 * [#32] feat(ScheduleRepository): ScheduleRepository 생성 * [#32] feat(ScheduleService): ScheduleService 생성 및 회차별 티켓 구매 가능 여부 판단 메서드 구현 * [#32] feat(ScheduleController): 회차별 티켓 수량 조회 GET API 구현 * [feat] #17 - 카카오 소셜 로그인 API 구현 (#36) * [#17] feat(build.gradle): jwt, security, open feign, Redis 의존성 추가 * [#17] feat(BeatApplication): OpenFeign 관련 어노테이션 추가 * [#17] feat(RedisConfig): redis 설정 * [#17] feat: redis 활용 jwt 토큰 생성 로직 구현 * [#17] feat(SecurityConfig): security 설정 * [#17] refactor: Member, Users 엔티티 수정 및 관련 enum 추가 * [#17] feat: Member, Users 도메인 관련 인증 로직 구현 * [#17] feat(MemberController): Member 관련 API 엔드포인트 구현 * [#17] feat: Security 관련 인증 객체 구현 * [#17] feat: 소셜로그인 로직 구현 * [#17] fix: 소셜로그인 오류 해결 * [#17] refactor: 코드리뷰 반영 * [#17] refactor: 코드리뷰 반영 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [feat] #34 - 비회원 예매 POST API 구현 (#35) * [#34] feat(Users): 빌더 및 정적 팩토리 메서드 추가 * [#34] feat(Entity): 엔티티 id 필드 수정 * [#34] refactor(application.yml): dialect 추가 * [#34] refactor(ScheduleService): 네이밍 수정 * [#34] refactor(BookingSuccessCode): 비회원 예매 조회 성공 메시지 추가 * [#34] feat(GuestBookingRequest): 비회원 예매 요청 DTO 생성 * [#34] feat(GuestBookingResponse): 비회원 예매 응답 DTO 생성 * [#34] refactor(BookingRetrieveService): 네이밍 수정 * [#34] feat(PerformanceRepository): 공연 레포지토리 생성 * [#34] feat(UserRepository): 유저 레포지토리 생성 * [#34] refactor(BookingRepository): 비회원 예매 시 네가지 정보가 모두 일치 해야만 다른 유저로 판단하는 메서드 구현 * [#34] refactor(ScheduleRepository): 비관적 락 적용 * [#34] feat(GuestBookingService): 비관적 락을 이용해 비회원 예매 로직 구현 * [#34] feat(BookingController): 비회원 예매 POST API 구현 * [#34] test(GuestBookingServiceConcurrencyTest): 동시성 테스트 구현 * [Refactor] #37 - 카카오 로그인 API response 수정 (#39) * [#37] rename: 빈 충돌 해결 위해 UserRepository를 UsersRepository로 rename * [#37] refactor: login response에서 refreshToken을 cookie에 담아주도록 변경 * [#37] fix: dao, repository 충돌 해결 * [#37] refactor: 어노테이션 수정 * [feat] #40 - 소개 관련 공연 정보 조회 GET API 구현 (#41) * [#40] feat: repository 추가 * [#40] feat: 공연 관련 성공, 실패 메세지 추가 * [#40] feat(PerformanceDetailResponse): 공연 상세페이지 조회 응답 dto * [#40] feat(PerformanceService): 공연 상세페이지 조회 로직 구현 * [#40] feat(PerformanceController): 공연 상세페이지 엔드포인트 구현 * [#40] feat(SecurityConfig): auth whitelist update * [#40] refactor: dto 분리 및 rename * [feat] #42 - 예매 관련 공연 정보 GET API 구현 (#43) * [#42] feat: 예매 관련 정보 조회 dto 생성 * [#42] feat: 예매 관련 정보 조회 성공 메세지 추가 * [#42] feat(ScheduleService): 잔여티켓계산, 예매가능여부확인, 예매가능여부 update 메소드 구현 * [#42] feat(PerformanceService): 예매관련공연정보의 response 생성하는 로직 구현 * [#42] feat(PerformanceController): 예매관련공연정보 조회 엔드포인트 구현 * [#42] feat(SecurityConfig): auth_whitelist update * [#42] refactor(ScheduleService): findTicketAvailability에서 getAvailableTicketCount method 사용하도록 수정 * [feat] #38 - 회원 예매 POST API 구현 (#45) * [#38] fix(Cast): Join 하는 부분 수정 및 빌더와 정적 팩토리 메서드 패턴 도입 * [#38] chore(application.yml): 계층 수정 * [#38] feat: 커스텀 어노테이션 생성 * [#38] fix(UserRepository): 중복된 클래스 삭제 * [#38] feat(UserErrorCode): 유저의 에러 메시지를 관리하는 열거형 생성 * [#38] refactor(MemberErrorCode): message 목적에 맞게 변경 * [#38] refactor(BookingSuccessCode): 회원 예매 성공 메시지 추가 * [#38] feat: 커스텀 어노테이션 생성 커밋에 누락된 클래스 추가 * [#38] refactor(GuestBookingService): schedule에서 바로 get 하도록 수정 * [#38] test(GuestBookingServiceConcurrencyTest): import문 경로명 변경 * [#38] refactor(MemberService): @Transactional 어노테이션이 필요한 메서드에 해당 옵션 추가 * [#38] feat(MemberBookingRequest): 회원 예매 요청 DTO 생성 * [#38] feat(MemberBookingResponse): 회원 예매 응답 DTO 생성 * [#38] refactor(MemberController): refreshToken을 쿠키에 넣어주도록 구현 * [#38] feat(MemberBookingService): 회원 예매 서비스 로직 구현 * [#38] feat(BookingController): 회원 예매 요청 POST API 구현 * [#38] fix: 빌드 안되는 부분 수정 * [#38] remove(MemberBookingService): 사용하지 않는 import문 삭제 * [#38] refactor: 커스텀 어노테이션 이름 수정 * [feat] #44 - 홈페이지 공연 및 홍보 조회 GET API 구현 (#47) * [#44] refactor: 코드리뷰 반영 * [#44] fix(Promotion): 기본키 이름 수정, performanceId 연관관계 설정 * [#44] feat: Repository 및 관련 로직 추가 * [#44] feat: errorcode, successcode 추가 * [#44] feat: 홈페이지 request, response dto 생성 * [#44] feat(ScheduleService): dueDate 관련 로직 구현 * [#44] feat(PerformanceService): 홈페이지 정렬 및 response 생성 로직 구현 * [#44] chore: import문 추가 * [feat] #46 - 회원 예매 조회 GET API 구현 (#48) * [#46] remove(BookingRetrieveRequest): 클래스 삭제 * [#46] refactor(BookingSuccessCode): 회원 예매 조회 성공 메시지 추가 * [#46] refactor(GuestBookingRetrieveResponse): 클래스 명 변경 * [#46] refactor(GuestBookingRetrieveRequest): 안쓰는 코드 주석처리 * [#46] refactor(GuestBookingRetrieveService): 클래스 명 수정으로 인한 리팩토링 * [#46] refactor(SecurityConfig): 토큰 사용하지 않는 api 경로 추가하기 * [#46] refactor(BookingRepository): userId로 예약 정보를 가져오는 JPA 메서드 구현 * [#46] feat(MemberBookingRetrieveResponse): 회원 조회 응답 DTO 생성 * [#46] feat(MemberBookingRetrieveService): 회원 예매 조회 로직을 담당하는 서비스 레이어 구현 * [#46] feat(BookingController): 회원 예매 조회 GET API 구현 * [feat] #49 - 예매자 관리 API 구현 (#51) * [#49] feat: 티켓 관련 success, error code 추가 * [#49] feat(Booking): 입금여부 setter 메소드 추가 * [#49] feat(TicketRetrieveResponse): 예매자 확인 response dto 생성 * [#49] feat(Ticket): 예매자 확인용 티켓 정보 response dto 생성 * [#49] feat(TicketRepository): 예매자 필터링용 메소드 생성 * [#49] feat: 예매자 입금정보 수정 request dto 생성 * [#49] feat(TicketDeleteRequest): 예매자 삭제 request dto 생성 * [#49] feat(TicketService): 예매자 관리 관련 로직 구현 * [#49] feat(TicketController): 예매자 관리 엔드포인트 구현 * [#49] chore: swagger annotation 추가 * HOTFIX(SecurityConfig): WHITELIST 경로명 수정 * [fix] #52 - auth whitelist 수정 (#53) * [#52]fix(SecurityConfig): auth_whitelist 수정 * [#52]fix(SecurityConfig): auth_whitelist 수정 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [feat] #54 - 등록한 공연 목록 조회 GET API 구현 (#55) * [#54] feat(PerformanceSuccessCode): success code 추가 * [#54] feat: 회원이 등록한 공연목록 조회 dto 생성 * [#54] feat(PerformanceService): 회원이 등록한 공연목록 조회 로직 구현 * [#54] feat(PerformanceRepository): 회원이 등록한 공연목록 조회 관련 메소드 추가 * [#54] feat(PerformanceController): 회원이 등록한 공연목록 조회 엔드포인트 생성 * [#54] fix(TicketService): exception error 수정 * [#54] chore(application.yml): yml 수정 * [fix] #58 - dev-ci.yml, prod-ci.yml 환경변수 추가 (#59) * [#58] fix(dev-CI.yml): Dev 서버 CI 워크플로우 수정 * [#58] fix(prod-CI.yml): Prod 서버 CI 워크플로우 수정 * [refactor] #61 - Performance Entity field 추가 (#62) * [#61] refactor(Performance): bankHolder 필드 추가 * [#61] chore(BookingController): swagger annotation 수정 * [feat] #63 - healthCheckController 생성 (#64) * [#63] remove(UsersRepository): 중복 클래스 삭제 * [#63] feat(HealthCheckController): healthcheck 컨트롤러 생성 * [feat] #63 - health check URL 화이트리스트에 등록 (#67) * [#63] remove(UsersRepository): 중복 클래스 삭제 * [#63] feat(HealthCheckController): healthcheck 컨트롤러 생성 * [#63] feat(SecurityConfig): healthcheck url white_list에 등록 * [fix] #57 - entity 연관관계 설정 SecurityConfig 수정 (#65) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [fix] #57 - security 관련 에러 대응 (#71) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 * [#57] fix(JwtAuthenticationFilter): 에러 로직 수정 * fix(SecurityConfig): webSecurityCustomizer 로직 추가 * [fix] #73 - security 수정 (#74) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 * [#57] fix(JwtAuthenticationFilter): 에러 로직 수정 * fix(SecurityConfig): webSecurityCustomizer 로직 추가 * [#57] fix:security 수정 * [#76] fix(SecurityConfig): Base64 인코딩을 하도록 변경 (#77) * [fix] #76 - 누락된 코드 추가 (#79) * [#76] fix(SecurityConfig): Base64 인코딩을 하도록 변경 * [#76] chore(SecurityConfig): 누락된 import문 추가 * [#76] chore(JwtTokenProvider): 누락된 코드 추가 * [#81] fix(JwtTokenProvider): jwtsecret을 인코딩하고 디코딩을 하도록 수정 (#82) --------- Co-authored-by: hyerinhwang-sailin * [deploy] merge to main (#87) * [deploy] merge to develop (#27) * [deploy] merge to main (#26) * [#2] chore(.gitignore): .gradle, .idea 파일 삭제 (#3) * [refactor] #4 - 도메인형 디렉터리 구조 변경 및 local, dev, prod 운영 환경 분리 (#5) * [#4] fix: 클래스 첫글자 대문자로 수정 * [#4] remove: enum 삭제 * [#4] feat(BaseSuccessCode): 성공 상태 관리를 위한 인터페이스 생성 * [#4] feat(BaseErrorCode): 에러 상태 관리를 위한 인터페이스 생성 * [#4] refactor: global 패키지로 이동 * [#4] refactor: 서버 운영 환경 분리 * [feat] #6 - dev, prod Dockerfile 분리 및 github Action CI workflow 구현 (#7) * [#6] feat(Dockerfile): prod용 도커 파일 구현 * [#6] feat(Dockerfile-dev): dev용 도커 파일 구현 * [#6] feat(dev-CI.yml): dev용 CI workflow 구현 * [#6] feat(prod-CI.yml): prod용 CI workflow 구현 * [#6] chore(.gitignore): gradle-wrapper.jar 파일은 레포지토리에 포함되도록 설정 * [#6] fix(gradle-wrapper.jar): .gitignore로 누락된 파일 추가 * [#6] chore(build.grade): plain jar 생성 방지 * [#9] docs(README.md): 서비스 소개 README v1 작성 (#10) * [#11] docs(README.md): 리드미 업데이트 (#12) * [feat] #13 - 유저, 예매, 공연, 회차 엔티티 생성 (#15) * [#13] feat(Users): 사용자 엔티티 생성 * [#13] feat(Genre): 장르 열거형 생성 * [#13] feat(BankName): 은행명 열거형 생성 * [#13] refactor(BaseTimeEntity): 업데이트 시간 관리 필드 활성화 * [#13] feat(Performance): 공연 엔티티 생성 * [#13] feat(ScheduleNumber): 회차 번호 열거형 생성 * [#13] feat(Schedule): 회차 엔티티 생성 * [#13] feat(Booking): 예매 엔티티 생성 * [#13] refactor(ScheduleNumber): 네이밍 수정 * [feat] #14 - 회원, 홍보, 등장인물, 스태프 엔티티 생성 (#16) * [#14] feat(Member): 멤버 엔티티 생성 * [#14] feat(Promotion): 홍보 엔티티 생성 * [#14] feat(Cast): 등장인물 엔티티 생성 * [#14] feat(Staff): 스태프 엔티티 생성 * [feat] #13 - 유저, 예매, 공연, 회차 엔티티 생성 (#15) * [#13] feat(Users): 사용자 엔티티 생성 * [#13] feat(Genre): 장르 열거형 생성 * [#13] feat(BankName): 은행명 열거형 생성 * [#13] refactor(BaseTimeEntity): 업데이트 시간 관리 필드 활성화 * [#13] feat(Performance): 공연 엔티티 생성 * [#13] feat(ScheduleNumber): 회차 번호 열거형 생성 * [#13] feat(Schedule): 회차 엔티티 생성 * [#13] feat(Booking): 예매 엔티티 생성 * [#13] refactor(ScheduleNumber): 네이밍 수정 * [#14} fix: 스태프, 등장인물, 홍보 엔티티 상속관계 수정 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [#18] feat(Jenkinsfile): 젠킨스 파일 생성 (#19) * [#20] refactor(Jenkinsfile): 젠킨스 파일 Webhook 테스트용 커밋 (#21) * [#22] feat(Jenkinsfile): Jenkins multibranch 스크립트 작성 (#23) * HOTFIX(Jenkinsfile): Jenkins multibranch 스크립트 수정 * HOTFIX(workflows): 빌드 후 젠킨스 배포가 진행되도록 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * [#24] feat(Jenkinsfile): slack 연동 스크립트 작성 (#25) --------- Co-authored-by: hyerinhwang-sailin * HOTFIX(workflow): 오타 수정 --------- Co-authored-by: hyerinhwang-sailin * [feat] #28 - 비회원 예매 조회 POST API 구현 (#29) * chore(application-dev.yml): dialect 추가 * chore(application-prod.yml): dialect 추가 * [#28] chore(build.gradle): security 의존성 비활성화 - security 일시적으로 비활성화 * [#28] refactor(Booking): 예매 엔티티에 빌더 및 정적팩토리 메서드 추가 * [#28] refactor(ErrorResponse): 정적 팩토리 메서드 네이밍 변환 * [#28] refactor(Schedule): 회차 엔티티에 빌더 및 정적 팩토리 메서드 추가 * [#28] refactor(Performance): 공연 엔티티에 빌더 및 정적 팩토리 메서드 추가 * [#28] refactor(SuccessResponse): 정적 팩토리 메서드 네이밍 변환 * [#28] refactor(GlobalExceptionHandler): INTERNAL_SERVER_ERROR 핸들러 메서드 추가 * [#28] feat(BookingSuccessCode): 예매 성공 메시지를 관리하는 열거형 생성 * [#28] feat(BookingErrorCode): 예매 에러 메시지를 관리하는 열거형 생성 * [#28] feat(BookingRetrieveResponse): 예매 조회 응답 DTO 생성 * [#28] feat(BookingRetrieveRequest): 예매 조회 요청 DTO 생성 * [#28] feat(BookingRepository): 예매 레포지토리 생성 및 비회원 예매 조회 시 예매 내역 가져오는 메서드 구현 * [#28] feat(BookingService): 예매 서비스 레이어 생성 및 비회원 조회 메서드 구현 * [#28] feat(BookingController): 예매 컨트롤러 생성 및 비회원 예매조회 POST API 구현 * [feat] #30 - SwaggerConfig 및 WebConfig 구현 (#31) * [#30] chore(build.gradle): springdoc 의존성 추가 * [#30] feat(SwaggerConfig): SwaggerConfig 추가 * [#30] feat(WebConfig): WebConfig 추가 * HOTFIX(workflows): push 이벤트 시 github action이 빌드 되지 않도록 수정 * HOTFIX(Jenkinsfile): 포트 수정 * [feat] #32 - 티켓 예매 가능 여부 GET API 구현 (#33) * [#32] refactor(BookingController): 메서드명 수정 * [#32] feat(ConflictException): Conflict 409에러 클래스 생성 * [#32] feat(GlobalExceptionHandler): ConflictException 등록 * [#32] feat(TicketAvailabilityRequest): TicketAvailabilityRequest DTO 생성 * [#32] feat(TicketAvailabilityResponse): TicketAvailabilityResponse DTO 생성 * [#32] feat(ScheduleSuccessCode): ScheduleSuccessCode 열거형 생성 * [#32] feat(ScheduleErrorCode): ScheduleErrorCode 열거형 생성 * [#32] feat(ScheduleRepository): ScheduleRepository 생성 * [#32] feat(ScheduleService): ScheduleService 생성 및 회차별 티켓 구매 가능 여부 판단 메서드 구현 * [#32] feat(ScheduleController): 회차별 티켓 수량 조회 GET API 구현 * [feat] #17 - 카카오 소셜 로그인 API 구현 (#36) * [#17] feat(build.gradle): jwt, security, open feign, Redis 의존성 추가 * [#17] feat(BeatApplication): OpenFeign 관련 어노테이션 추가 * [#17] feat(RedisConfig): redis 설정 * [#17] feat: redis 활용 jwt 토큰 생성 로직 구현 * [#17] feat(SecurityConfig): security 설정 * [#17] refactor: Member, Users 엔티티 수정 및 관련 enum 추가 * [#17] feat: Member, Users 도메인 관련 인증 로직 구현 * [#17] feat(MemberController): Member 관련 API 엔드포인트 구현 * [#17] feat: Security 관련 인증 객체 구현 * [#17] feat: 소셜로그인 로직 구현 * [#17] fix: 소셜로그인 오류 해결 * [#17] refactor: 코드리뷰 반영 * [#17] refactor: 코드리뷰 반영 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [feat] #34 - 비회원 예매 POST API 구현 (#35) * [#34] feat(Users): 빌더 및 정적 팩토리 메서드 추가 * [#34] feat(Entity): 엔티티 id 필드 수정 * [#34] refactor(application.yml): dialect 추가 * [#34] refactor(ScheduleService): 네이밍 수정 * [#34] refactor(BookingSuccessCode): 비회원 예매 조회 성공 메시지 추가 * [#34] feat(GuestBookingRequest): 비회원 예매 요청 DTO 생성 * [#34] feat(GuestBookingResponse): 비회원 예매 응답 DTO 생성 * [#34] refactor(BookingRetrieveService): 네이밍 수정 * [#34] feat(PerformanceRepository): 공연 레포지토리 생성 * [#34] feat(UserRepository): 유저 레포지토리 생성 * [#34] refactor(BookingRepository): 비회원 예매 시 네가지 정보가 모두 일치 해야만 다른 유저로 판단하는 메서드 구현 * [#34] refactor(ScheduleRepository): 비관적 락 적용 * [#34] feat(GuestBookingService): 비관적 락을 이용해 비회원 예매 로직 구현 * [#34] feat(BookingController): 비회원 예매 POST API 구현 * [#34] test(GuestBookingServiceConcurrencyTest): 동시성 테스트 구현 * [Refactor] #37 - 카카오 로그인 API response 수정 (#39) * [#37] rename: 빈 충돌 해결 위해 UserRepository를 UsersRepository로 rename * [#37] refactor: login response에서 refreshToken을 cookie에 담아주도록 변경 * [#37] fix: dao, repository 충돌 해결 * [#37] refactor: 어노테이션 수정 * [feat] #40 - 소개 관련 공연 정보 조회 GET API 구현 (#41) * [#40] feat: repository 추가 * [#40] feat: 공연 관련 성공, 실패 메세지 추가 * [#40] feat(PerformanceDetailResponse): 공연 상세페이지 조회 응답 dto * [#40] feat(PerformanceService): 공연 상세페이지 조회 로직 구현 * [#40] feat(PerformanceController): 공연 상세페이지 엔드포인트 구현 * [#40] feat(SecurityConfig): auth whitelist update * [#40] refactor: dto 분리 및 rename * [feat] #42 - 예매 관련 공연 정보 GET API 구현 (#43) * [#42] feat: 예매 관련 정보 조회 dto 생성 * [#42] feat: 예매 관련 정보 조회 성공 메세지 추가 * [#42] feat(ScheduleService): 잔여티켓계산, 예매가능여부확인, 예매가능여부 update 메소드 구현 * [#42] feat(PerformanceService): 예매관련공연정보의 response 생성하는 로직 구현 * [#42] feat(PerformanceController): 예매관련공연정보 조회 엔드포인트 구현 * [#42] feat(SecurityConfig): auth_whitelist update * [#42] refactor(ScheduleService): findTicketAvailability에서 getAvailableTicketCount method 사용하도록 수정 * [feat] #38 - 회원 예매 POST API 구현 (#45) * [#38] fix(Cast): Join 하는 부분 수정 및 빌더와 정적 팩토리 메서드 패턴 도입 * [#38] chore(application.yml): 계층 수정 * [#38] feat: 커스텀 어노테이션 생성 * [#38] fix(UserRepository): 중복된 클래스 삭제 * [#38] feat(UserErrorCode): 유저의 에러 메시지를 관리하는 열거형 생성 * [#38] refactor(MemberErrorCode): message 목적에 맞게 변경 * [#38] refactor(BookingSuccessCode): 회원 예매 성공 메시지 추가 * [#38] feat: 커스텀 어노테이션 생성 커밋에 누락된 클래스 추가 * [#38] refactor(GuestBookingService): schedule에서 바로 get 하도록 수정 * [#38] test(GuestBookingServiceConcurrencyTest): import문 경로명 변경 * [#38] refactor(MemberService): @Transactional 어노테이션이 필요한 메서드에 해당 옵션 추가 * [#38] feat(MemberBookingRequest): 회원 예매 요청 DTO 생성 * [#38] feat(MemberBookingResponse): 회원 예매 응답 DTO 생성 * [#38] refactor(MemberController): refreshToken을 쿠키에 넣어주도록 구현 * [#38] feat(MemberBookingService): 회원 예매 서비스 로직 구현 * [#38] feat(BookingController): 회원 예매 요청 POST API 구현 * [#38] fix: 빌드 안되는 부분 수정 * [#38] remove(MemberBookingService): 사용하지 않는 import문 삭제 * [#38] refactor: 커스텀 어노테이션 이름 수정 * [feat] #44 - 홈페이지 공연 및 홍보 조회 GET API 구현 (#47) * [#44] refactor: 코드리뷰 반영 * [#44] fix(Promotion): 기본키 이름 수정, performanceId 연관관계 설정 * [#44] feat: Repository 및 관련 로직 추가 * [#44] feat: errorcode, successcode 추가 * [#44] feat: 홈페이지 request, response dto 생성 * [#44] feat(ScheduleService): dueDate 관련 로직 구현 * [#44] feat(PerformanceService): 홈페이지 정렬 및 response 생성 로직 구현 * [#44] chore: import문 추가 * [feat] #46 - 회원 예매 조회 GET API 구현 (#48) * [#46] remove(BookingRetrieveRequest): 클래스 삭제 * [#46] refactor(BookingSuccessCode): 회원 예매 조회 성공 메시지 추가 * [#46] refactor(GuestBookingRetrieveResponse): 클래스 명 변경 * [#46] refactor(GuestBookingRetrieveRequest): 안쓰는 코드 주석처리 * [#46] refactor(GuestBookingRetrieveService): 클래스 명 수정으로 인한 리팩토링 * [#46] refactor(SecurityConfig): 토큰 사용하지 않는 api 경로 추가하기 * [#46] refactor(BookingRepository): userId로 예약 정보를 가져오는 JPA 메서드 구현 * [#46] feat(MemberBookingRetrieveResponse): 회원 조회 응답 DTO 생성 * [#46] feat(MemberBookingRetrieveService): 회원 예매 조회 로직을 담당하는 서비스 레이어 구현 * [#46] feat(BookingController): 회원 예매 조회 GET API 구현 * [feat] #49 - 예매자 관리 API 구현 (#51) * [#49] feat: 티켓 관련 success, error code 추가 * [#49] feat(Booking): 입금여부 setter 메소드 추가 * [#49] feat(TicketRetrieveResponse): 예매자 확인 response dto 생성 * [#49] feat(Ticket): 예매자 확인용 티켓 정보 response dto 생성 * [#49] feat(TicketRepository): 예매자 필터링용 메소드 생성 * [#49] feat: 예매자 입금정보 수정 request dto 생성 * [#49] feat(TicketDeleteRequest): 예매자 삭제 request dto 생성 * [#49] feat(TicketService): 예매자 관리 관련 로직 구현 * [#49] feat(TicketController): 예매자 관리 엔드포인트 구현 * [#49] chore: swagger annotation 추가 * HOTFIX(SecurityConfig): WHITELIST 경로명 수정 * [fix] #52 - auth whitelist 수정 (#53) * [#52]fix(SecurityConfig): auth_whitelist 수정 * [#52]fix(SecurityConfig): auth_whitelist 수정 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [feat] #54 - 등록한 공연 목록 조회 GET API 구현 (#55) * [#54] feat(PerformanceSuccessCode): success code 추가 * [#54] feat: 회원이 등록한 공연목록 조회 dto 생성 * [#54] feat(PerformanceService): 회원이 등록한 공연목록 조회 로직 구현 * [#54] feat(PerformanceRepository): 회원이 등록한 공연목록 조회 관련 메소드 추가 * [#54] feat(PerformanceController): 회원이 등록한 공연목록 조회 엔드포인트 생성 * [#54] fix(TicketService): exception error 수정 * [#54] chore(application.yml): yml 수정 * [fix] #58 - dev-ci.yml, prod-ci.yml 환경변수 추가 (#59) * [#58] fix(dev-CI.yml): Dev 서버 CI 워크플로우 수정 * [#58] fix(prod-CI.yml): Prod 서버 CI 워크플로우 수정 * [refactor] #61 - Performance Entity field 추가 (#62) * [#61] refactor(Performance): bankHolder 필드 추가 * [#61] chore(BookingController): swagger annotation 수정 * [feat] #63 - healthCheckController 생성 (#64) * [#63] remove(UsersRepository): 중복 클래스 삭제 * [#63] feat(HealthCheckController): healthcheck 컨트롤러 생성 * [feat] #63 - health check URL 화이트리스트에 등록 (#67) * [#63] remove(UsersRepository): 중복 클래스 삭제 * [#63] feat(HealthCheckController): healthcheck 컨트롤러 생성 * [#63] feat(SecurityConfig): healthcheck url white_list에 등록 * [fix] #57 - entity 연관관계 설정 SecurityConfig 수정 (#65) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [fix] #57 - security 관련 에러 대응 (#71) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 * [#57] fix(JwtAuthenticationFilter): 에러 로직 수정 * fix(SecurityConfig): webSecurityCustomizer 로직 추가 * [fix] #73 - security 수정 (#74) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 * [#57] fix(JwtAuthenticationFilter): 에러 로직 수정 * fix(SecurityConfig): webSecurityCustomizer 로직 추가 * [#57] fix:security 수정 * [#76] fix(SecurityConfig): Base64 인코딩을 하도록 변경 (#77) * [fix] #76 - 누락된 코드 추가 (#79) * [#76] fix(SecurityConfig): Base64 인코딩을 하도록 변경 * [#76] chore(SecurityConfig): 누락된 import문 추가 * [#76] chore(JwtTokenProvider): 누락된 코드 추가 * [#81] fix(JwtTokenProvider): jwtsecret을 인코딩하고 디코딩을 하도록 수정 (#82) * [#85] chore(application.yml): 환경변수 설정 (#86) --------- Co-authored-by: hyerinhwang-sailin --------- Co-authored-by: hyerinhwang-sailin * Revert "[deploy] merge to main (#90)" (#91) This reverts commit f519b0c82a2f01d4374eb045b9e90c6303381e50. * [fix] #93 - 누락된 어노테이션 및 누락된 경로명 추가 (#94) * [#93] fix(HealthCheckController): 누락된 어노테이션 추가 * [#93] refactor(SecurityConfig): 누락된 경로명 추가 * [bug] #84 - actuator/health 의존성 및 설정 추가 (#96) * [#84] chore(build.gradle): 의존성 추가 * [#84] chore: health/actuator yml 설정 추가 * [#84] chore: redis yml 설정 추가 * [#84] chore: yml 수정 (#99) * [bug] #101 - yml, s3 수정 (#102) * [#101] chore: yml 수정 * [#101] feat: s3 추가 * HOTIFX: prod ci-yml 수정 * Main redis host yml 수정 (#105) * [deploy] merge to main (#104) * [deploy] merge to develop (#27) * [deploy] merge to main (#26) * [#2] chore(.gitignore): .gradle, .idea 파일 삭제 (#3) * [refactor] #4 - 도메인형 디렉터리 구조 변경 및 local, dev, prod 운영 환경 분리 (#5) * [#4] fix: 클래스 첫글자 대문자로 수정 * [#4] remove: enum 삭제 * [#4] feat(BaseSuccessCode): 성공 상태 관리를 위한 인터페이스 생성 * [#4] feat(BaseErrorCode): 에러 상태 관리를 위한 인터페이스 생성 * [#4] refactor: global 패키지로 이동 * [#4] refactor: 서버 운영 환경 분리 * [feat] #6 - dev, prod Dockerfile 분리 및 github Action CI workflow 구현 (#7) * [#6] feat(Dockerfile): prod용 도커 파일 구현 * [#6] feat(Dockerfile-dev): dev용 도커 파일 구현 * [#6] feat(dev-CI.yml): dev용 CI workflow 구현 * [#6] feat(prod-CI.yml): prod용 CI workflow 구현 * [#6] chore(.gitignore): gradle-wrapper.jar 파일은 레포지토리에 포함되도록 설정 * [#6] fix(gradle-wrapper.jar): .gitignore로 누락된 파일 추가 * [#6] chore(build.grade): plain jar 생성 방지 * [#9] docs(README.md): 서비스 소개 README v1 작성 (#10) * [#11] docs(README.md): 리드미 업데이트 (#12) * [feat] #13 - 유저, 예매, 공연, 회차 엔티티 생성 (#15) * [#13] feat(Users): 사용자 엔티티 생성 * [#13] feat(Genre): 장르 열거형 생성 * [#13] feat(BankName): 은행명 열거형 생성 * [#13] refactor(BaseTimeEntity): 업데이트 시간 관리 필드 활성화 * [#13] feat(Performance): 공연 엔티티 생성 * [#13] feat(ScheduleNumber): 회차 번호 열거형 생성 * [#13] feat(Schedule): 회차 엔티티 생성 * [#13] feat(Booking): 예매 엔티티 생성 * [#13] refactor(ScheduleNumber): 네이밍 수정 * [feat] #14 - 회원, 홍보, 등장인물, 스태프 엔티티 생성 (#16) * [#14] feat(Member): 멤버 엔티티 생성 * [#14] feat(Promotion): 홍보 엔티티 생성 * [#14] feat(Cast): 등장인물 엔티티 생성 * [#14] feat(Staff): 스태프 엔티티 생성 * [feat] #13 - 유저, 예매, 공연, 회차 엔티티 생성 (#15) * [#13] feat(Users): 사용자 엔티티 생성 * [#13] feat(Genre): 장르 열거형 생성 * [#13] feat(BankName): 은행명 열거형 생성 * [#13] refactor(BaseTimeEntity): 업데이트 시간 관리 필드 활성화 * [#13] feat(Performance): 공연 엔티티 생성 * [#13] feat(ScheduleNumber): 회차 번호 열거형 생성 * [#13] feat(Schedule): 회차 엔티티 생성 * [#13] feat(Booking): 예매 엔티티 생성 * [#13] refactor(ScheduleNumber): 네이밍 수정 * [#14} fix: 스태프, 등장인물, 홍보 엔티티 상속관계 수정 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [#18] feat(Jenkinsfile): 젠킨스 파일 생성 (#19) * [#20] refactor(Jenkinsfile): 젠킨스 파일 Webhook 테스트용 커밋 (#21) * [#22] feat(Jenkinsfile): Jenkins multibranch 스크립트 작성 (#23) * HOTFIX(Jenkinsfile): Jenkins multibranch 스크립트 수정 * HOTFIX(workflows): 빌드 후 젠킨스 배포가 진행되도록 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * [#24] feat(Jenkinsfile): slack 연동 스크립트 작성 (#25) --------- Co-authored-by: hyerinhwang-sailin * HOTFIX(workflow): 오타 수정 --------- Co-authored-by: hyerinhwang-sailin * [feat] #28 - 비회원 예매 조회 POST API 구현 (#29) * chore(application-dev.yml): dialect 추가 * chore(application-prod.yml): dialect 추가 * [#28] chore(build.gradle): security 의존성 비활성화 - security 일시적으로 비활성화 * [#28] refactor(Booking): 예매 엔티티에 빌더 및 정적팩토리 메서드 추가 * [#28] refactor(ErrorResponse): 정적 팩토리 메서드 네이밍 변환 * [#28] refactor(Schedule): 회차 엔티티에 빌더 및 정적 팩토리 메서드 추가 * [#28] refactor(Performance): 공연 엔티티에 빌더 및 정적 팩토리 메서드 추가 * [#28] refactor(SuccessResponse): 정적 팩토리 메서드 네이밍 변환 * [#28] refactor(GlobalExceptionHandler): INTERNAL_SERVER_ERROR 핸들러 메서드 추가 * [#28] feat(BookingSuccessCode): 예매 성공 메시지를 관리하는 열거형 생성 * [#28] feat(BookingErrorCode): 예매 에러 메시지를 관리하는 열거형 생성 * [#28] feat(BookingRetrieveResponse): 예매 조회 응답 DTO 생성 * [#28] feat(BookingRetrieveRequest): 예매 조회 요청 DTO 생성 * [#28] feat(BookingRepository): 예매 레포지토리 생성 및 비회원 예매 조회 시 예매 내역 가져오는 메서드 구현 * [#28] feat(BookingService): 예매 서비스 레이어 생성 및 비회원 조회 메서드 구현 * [#28] feat(BookingController): 예매 컨트롤러 생성 및 비회원 예매조회 POST API 구현 * [feat] #30 - SwaggerConfig 및 WebConfig 구현 (#31) * [#30] chore(build.gradle): springdoc 의존성 추가 * [#30] feat(SwaggerConfig): SwaggerConfig 추가 * [#30] feat(WebConfig): WebConfig 추가 * HOTFIX(workflows): push 이벤트 시 github action이 빌드 되지 않도록 수정 * HOTFIX(Jenkinsfile): 포트 수정 * [feat] #32 - 티켓 예매 가능 여부 GET API 구현 (#33) * [#32] refactor(BookingController): 메서드명 수정 * [#32] feat(ConflictException): Conflict 409에러 클래스 생성 * [#32] feat(GlobalExceptionHandler): ConflictException 등록 * [#32] feat(TicketAvailabilityRequest): TicketAvailabilityRequest DTO 생성 * [#32] feat(TicketAvailabilityResponse): TicketAvailabilityResponse DTO 생성 * [#32] feat(ScheduleSuccessCode): ScheduleSuccessCode 열거형 생성 * [#32] feat(ScheduleErrorCode): ScheduleErrorCode 열거형 생성 * [#32] feat(ScheduleRepository): ScheduleRepository 생성 * [#32] feat(ScheduleService): ScheduleService 생성 및 회차별 티켓 구매 가능 여부 판단 메서드 구현 * [#32] feat(ScheduleController): 회차별 티켓 수량 조회 GET API 구현 * [feat] #17 - 카카오 소셜 로그인 API 구현 (#36) * [#17] feat(build.gradle): jwt, security, open feign, Redis 의존성 추가 * [#17] feat(BeatApplication): OpenFeign 관련 어노테이션 추가 * [#17] feat(RedisConfig): redis 설정 * [#17] feat: redis 활용 jwt 토큰 생성 로직 구현 * [#17] feat(SecurityConfig): security 설정 * [#17] refactor: Member, Users 엔티티 수정 및 관련 enum 추가 * [#17] feat: Member, Users 도메인 관련 인증 로직 구현 * [#17] feat(MemberController): Member 관련 API 엔드포인트 구현 * [#17] feat: Security 관련 인증 객체 구현 * [#17] feat: 소셜로그인 로직 구현 * [#17] fix: 소셜로그인 오류 해결 * [#17] refactor: 코드리뷰 반영 * [#17] refactor: 코드리뷰 반영 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [feat] #34 - 비회원 예매 POST API 구현 (#35) * [#34] feat(Users): 빌더 및 정적 팩토리 메서드 추가 * [#34] feat(Entity): 엔티티 id 필드 수정 * [#34] refactor(application.yml): dialect 추가 * [#34] refactor(ScheduleService): 네이밍 수정 * [#34] refactor(BookingSuccessCode): 비회원 예매 조회 성공 메시지 추가 * [#34] feat(GuestBookingRequest): 비회원 예매 요청 DTO 생성 * [#34] feat(GuestBookingResponse): 비회원 예매 응답 DTO 생성 * [#34] refactor(BookingRetrieveService): 네이밍 수정 * [#34] feat(PerformanceRepository): 공연 레포지토리 생성 * [#34] feat(UserRepository): 유저 레포지토리 생성 * [#34] refactor(BookingRepository): 비회원 예매 시 네가지 정보가 모두 일치 해야만 다른 유저로 판단하는 메서드 구현 * [#34] refactor(ScheduleRepository): 비관적 락 적용 * [#34] feat(GuestBookingService): 비관적 락을 이용해 비회원 예매 로직 구현 * [#34] feat(BookingController): 비회원 예매 POST API 구현 * [#34] test(GuestBookingServiceConcurrencyTest): 동시성 테스트 구현 * [Refactor] #37 - 카카오 로그인 API response 수정 (#39) * [#37] rename: 빈 충돌 해결 위해 UserRepository를 UsersRepository로 rename * [#37] refactor: login response에서 refreshToken을 cookie에 담아주도록 변경 * [#37] fix: dao, repository 충돌 해결 * [#37] refactor: 어노테이션 수정 * [feat] #40 - 소개 관련 공연 정보 조회 GET API 구현 (#41) * [#40] feat: repository 추가 * [#40] feat: 공연 관련 성공, 실패 메세지 추가 * [#40] feat(PerformanceDetailResponse): 공연 상세페이지 조회 응답 dto * [#40] feat(PerformanceService): 공연 상세페이지 조회 로직 구현 * [#40] feat(PerformanceController): 공연 상세페이지 엔드포인트 구현 * [#40] feat(SecurityConfig): auth whitelist update * [#40] refactor: dto 분리 및 rename * [feat] #42 - 예매 관련 공연 정보 GET API 구현 (#43) * [#42] feat: 예매 관련 정보 조회 dto 생성 * [#42] feat: 예매 관련 정보 조회 성공 메세지 추가 * [#42] feat(ScheduleService): 잔여티켓계산, 예매가능여부확인, 예매가능여부 update 메소드 구현 * [#42] feat(PerformanceService): 예매관련공연정보의 response 생성하는 로직 구현 * [#42] feat(PerformanceController): 예매관련공연정보 조회 엔드포인트 구현 * [#42] feat(SecurityConfig): auth_whitelist update * [#42] refactor(ScheduleService): findTicketAvailability에서 getAvailableTicketCount method 사용하도록 수정 * [feat] #38 - 회원 예매 POST API 구현 (#45) * [#38] fix(Cast): Join 하는 부분 수정 및 빌더와 정적 팩토리 메서드 패턴 도입 * [#38] chore(application.yml): 계층 수정 * [#38] feat: 커스텀 어노테이션 생성 * [#38] fix(UserRepository): 중복된 클래스 삭제 * [#38] feat(UserErrorCode): 유저의 에러 메시지를 관리하는 열거형 생성 * [#38] refactor(MemberErrorCode): message 목적에 맞게 변경 * [#38] refactor(BookingSuccessCode): 회원 예매 성공 메시지 추가 * [#38] feat: 커스텀 어노테이션 생성 커밋에 누락된 클래스 추가 * [#38] refactor(GuestBookingService): schedule에서 바로 get 하도록 수정 * [#38] test(GuestBookingServiceConcurrencyTest): import문 경로명 변경 * [#38] refactor(MemberService): @Transactional 어노테이션이 필요한 메서드에 해당 옵션 추가 * [#38] feat(MemberBookingRequest): 회원 예매 요청 DTO 생성 * [#38] feat(MemberBookingResponse): 회원 예매 응답 DTO 생성 * [#38] refactor(MemberController): refreshToken을 쿠키에 넣어주도록 구현 * [#38] feat(MemberBookingService): 회원 예매 서비스 로직 구현 * [#38] feat(BookingController): 회원 예매 요청 POST API 구현 * [#38] fix: 빌드 안되는 부분 수정 * [#38] remove(MemberBookingService): 사용하지 않는 import문 삭제 * [#38] refactor: 커스텀 어노테이션 이름 수정 * [feat] #44 - 홈페이지 공연 및 홍보 조회 GET API 구현 (#47) * [#44] refactor: 코드리뷰 반영 * [#44] fix(Promotion): 기본키 이름 수정, performanceId 연관관계 설정 * [#44] feat: Repository 및 관련 로직 추가 * [#44] feat: errorcode, successcode 추가 * [#44] feat: 홈페이지 request, response dto 생성 * [#44] feat(ScheduleService): dueDate 관련 로직 구현 * [#44] feat(PerformanceService): 홈페이지 정렬 및 response 생성 로직 구현 * [#44] chore: import문 추가 * [feat] #46 - 회원 예매 조회 GET API 구현 (#48) * [#46] remove(BookingRetrieveRequest): 클래스 삭제 * [#46] refactor(BookingSuccessCode): 회원 예매 조회 성공 메시지 추가 * [#46] refactor(GuestBookingRetrieveResponse): 클래스 명 변경 * [#46] refactor(GuestBookingRetrieveRequest): 안쓰는 코드 주석처리 * [#46] refactor(GuestBookingRetrieveService): 클래스 명 수정으로 인한 리팩토링 * [#46] refactor(SecurityConfig): 토큰 사용하지 않는 api 경로 추가하기 * [#46] refactor(BookingRepository): userId로 예약 정보를 가져오는 JPA 메서드 구현 * [#46] feat(MemberBookingRetrieveResponse): 회원 조회 응답 DTO 생성 * [#46] feat(MemberBookingRetrieveService): 회원 예매 조회 로직을 담당하는 서비스 레이어 구현 * [#46] feat(BookingController): 회원 예매 조회 GET API 구현 * [feat] #49 - 예매자 관리 API 구현 (#51) * [#49] feat: 티켓 관련 success, error code 추가 * [#49] feat(Booking): 입금여부 setter 메소드 추가 * [#49] feat(TicketRetrieveResponse): 예매자 확인 response dto 생성 * [#49] feat(Ticket): 예매자 확인용 티켓 정보 response dto 생성 * [#49] feat(TicketRepository): 예매자 필터링용 메소드 생성 * [#49] feat: 예매자 입금정보 수정 request dto 생성 * [#49] feat(TicketDeleteRequest): 예매자 삭제 request dto 생성 * [#49] feat(TicketService): 예매자 관리 관련 로직 구현 * [#49] feat(TicketController): 예매자 관리 엔드포인트 구현 * [#49] chore: swagger annotation 추가 * HOTFIX(SecurityConfig): WHITELIST 경로명 수정 * [fix] #52 - auth whitelist 수정 (#53) * [#52]fix(SecurityConfig): auth_whitelist 수정 * [#52]fix(SecurityConfig): auth_whitelist 수정 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [feat] #54 - 등록한 공연 목록 조회 GET API 구현 (#55) * [#54] feat(PerformanceSuccessCode): success code 추가 * [#54] feat: 회원이 등록한 공연목록 조회 dto 생성 * [#54] feat(PerformanceService): 회원이 등록한 공연목록 조회 로직 구현 * [#54] feat(PerformanceRepository): 회원이 등록한 공연목록 조회 관련 메소드 추가 * [#54] feat(PerformanceController): 회원이 등록한 공연목록 조회 엔드포인트 생성 * [#54] fix(TicketService): exception error 수정 * [#54] chore(application.yml): yml 수정 * [fix] #58 - dev-ci.yml, prod-ci.yml 환경변수 추가 (#59) * [#58] fix(dev-CI.yml): Dev 서버 CI 워크플로우 수정 * [#58] fix(prod-CI.yml): Prod 서버 CI 워크플로우 수정 * [refactor] #61 - Performance Entity field 추가 (#62) * [#61] refactor(Performance): bankHolder 필드 추가 * [#61] chore(BookingController): swagger annotation 수정 * [feat] #63 - healthCheckController 생성 (#64) * [#63] remove(UsersRepository): 중복 클래스 삭제 * [#63] feat(HealthCheckController): healthcheck 컨트롤러 생성 * [feat] #63 - health check URL 화이트리스트에 등록 (#67) * [#63] remove(UsersRepository): 중복 클래스 삭제 * [#63] feat(HealthCheckController): healthcheck 컨트롤러 생성 * [#63] feat(SecurityConfig): healthcheck url white_list에 등록 * [fix] #57 - entity 연관관계 설정 SecurityConfig 수정 (#65) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [fix] #57 - security 관련 에러 대응 (#71) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 * [#57] fix(JwtAuthenticationFilter): 에러 로직 수정 * fix(SecurityConfig): webSecurityCustomizer 로직 추가 * [fix] #73 - security 수정 (#74) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 * [#57] fix(JwtAuthenticationFilter): 에러 로직 수정 * fix(SecurityConfig): webSecurityCustomizer 로직 추가 * [#57] fix:security 수정 * [#76] fix(SecurityConfig): Base64 인코딩을 하도록 변경 (#77) * [fix] #76 - 누락된 코드 추가 (#79) * [#76] fix(SecurityConfig): Base64 인코딩을 하도록 변경 * [#76] chore(SecurityConfig): 누락된 import문 추가 * [#76] chore(JwtTokenProvider): 누락된 코드 추가 * [#81] fix(JwtTokenProvider): jwtsecret을 인코딩하고 디코딩을 하도록 수정 (#82) * [#85] chore(application.yml): 환경변수 설정 (#86) * [chore] #88 - 레디스 환경변수 추가 (#89) * [#88] chore(dev-CI.yml): dev서버 레디스 환경변수 설정 추가 * [#88] chore(prod-CI.yml): prod 서버 레디스 환경변수 설정 추가 * [deploy] merge to main (#90) * [deploy] merge to main (#83) * [deploy] merge to develop (#27) * [deploy] merge to main (#26) * [#2] chore(.gitignore): .gradle, .idea 파일 삭제 (#3) * [refactor] #4 - 도메인형 디렉터리 구조 변경 및 local, dev, prod 운영 환경 분리 (#5) * [#4] fix: 클래스 첫글자 대문자로 수정 * [#4] remove: enum 삭제 * [#4] feat(BaseSuccessCode): 성공 상태 관리를 위한 인터페이스 생성 * [#4] feat(BaseErrorCode): 에러 상태 관리를 위한 인터페이스 생성 * [#4] refactor: global 패키지로 이동 * [#4] refactor: 서버 운영 환경 분리 * [feat] #6 - dev, prod Dockerfile 분리 및 github Action CI workflow 구현 (#7) * [#6] feat(Dockerfile): prod용 도커 파일 구현 * [#6] feat(Dockerfile-dev): dev용 도커 파일 구현 * [#6] feat(dev-CI.yml): dev용 CI workflow 구현 * [#6] feat(prod-CI.yml): prod용 CI workflow 구현 * [#6] chore(.gitignore): gradle-wrapper.jar 파일은 레포지토리에 포함되도록 설정 * [#6] fix(gradle-wrapper.jar): .gitignore로 누락된 파일 추가 * [#6] chore(build.grade): plain jar 생성 방지 * [#9] docs(README.md): 서비스 소개 README v1 작성 (#10) * [#11] docs(README.md): 리드미 업데이트 (#12) * [feat] #13 - 유저, 예매, 공연, 회차 엔티티 생성 (#15) * [#13] feat(Users): 사용자 엔티티 생성 * [#13] feat(Genre): 장르 열거형 생성 * [#13] feat(BankName): 은행명 열거형 생성 * [#13] refactor(BaseTimeEntity): 업데이트 시간 관리 필드 활성화 * [#13] feat(Performance): 공연 엔티티 생성 * [#13] feat(ScheduleNumber): 회차 번호 열거형 생성 * [#13] feat(Schedule): 회차 엔티티 생성 * [#13] feat(Booking): 예매 엔티티 생성 * [#13] refactor(ScheduleNumber): 네이밍 수정 * [feat] #14 - 회원, 홍보, 등장인물, 스태프 엔티티 생성 (#16) * [#14] feat(Member): 멤버 엔티티 생성 * [#14] feat(Promotion): 홍보 엔티티 생성 * [#14] feat(Cast): 등장인물 엔티티 생성 * [#14] feat(Staff): 스태프 엔티티 생성 * [feat] #13 - 유저, 예매, 공연, 회차 엔티티 생성 (#15) * [#13] feat(Users): 사용자 엔티티 생성 * [#13] feat(Genre): 장르 열거형 생성 * [#13] feat(BankName): 은행명 열거형 생성 * [#13] refactor(BaseTimeEntity): 업데이트 시간 관리 필드 활성화 * [#13] feat(Performance): 공연 엔티티 생성 * [#13] feat(ScheduleNumber): 회차 번호 열거형 생성 * [#13] feat(Schedule): 회차 엔티티 생성 * [#13] feat(Booking): 예매 엔티티 생성 * [#13] refactor(ScheduleNumber): 네이밍 수정 * [#14} fix: 스태프, 등장인물, 홍보 엔티티 상속관계 수정 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [#18] feat(Jenkinsfile): 젠킨스 파일 생성 (#19) * [#20] refactor(Jenkinsfile): 젠킨스 파일 Webhook 테스트용 커밋 (#21) * [#22] feat(Jenkinsfile): Jenkins multibranch 스크립트 작성 (#23) * HOTFIX(Jenkinsfile): Jenkins multibranch 스크립트 수정 * HOTFIX(workflows): 빌드 후 젠킨스 배포가 진행되도록 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * [#24] feat(Jenkinsfile): slack 연동 스크립트 작성 (#25) --------- Co-authored-by: hyerinhwang-sailin * HOTFIX(workflow): 오타 수정 --------- Co-authored-by: hyerinhwang-sailin * [feat] #28 - 비회원 예매 조회 POST API 구현 (#29) * chore(application-dev.yml): dialect 추가 * chore(application-prod.yml): dialect 추가 * [#28] chore(build.gradle): security 의존성 비활성화 - security 일시적으로 비활성화 * [#28] refactor(Booking): 예매 엔티티에 빌더 및 정적팩토리 메서드 추가 * [#28] refactor(ErrorResponse): 정적 팩토리 메서드 네이밍 변환 * [#28] refactor(Schedule): 회차 엔티티에 빌더 및 정적 팩토리 메서드 추가 * [#28] refactor(Performance): 공연 엔티티에 빌더 및 정적 팩토리 메서드 추가 * [#28] refactor(SuccessResponse): 정적 팩토리 메서드 네이밍 변환 * [#28] refactor(GlobalExceptionHandler): INTERNAL_SERVER_ERROR 핸들러 메서드 추가 * [#28] feat(BookingSuccessCode): 예매 성공 메시지를 관리하는 열거형 생성 * [#28] feat(BookingErrorCode): 예매 에러 메시지를 관리하는 열거형 생성 * [#28] feat(BookingRetrieveResponse): 예매 조회 응답 DTO 생성 * [#28] feat(BookingRetrieveRequest): 예매 조회 요청 DTO 생성 * [#28] feat(BookingRepository): 예매 레포지토리 생성 및 비회원 예매 조회 시 예매 내역 가져오는 메서드 구현 * [#28] feat(BookingService): 예매 서비스 레이어 생성 및 비회원 조회 메서드 구현 * [#28] feat(BookingController): 예매 컨트롤러 생성 및 비회원 예매조회 POST API 구현 * [feat] #30 - SwaggerConfig 및 WebConfig 구현 (#31) * [#30] chore(build.gradle): springdoc 의존성 추가 * [#30] feat(SwaggerConfig): SwaggerConfig 추가 * [#30] feat(WebConfig): WebConfig 추가 * HOTFIX(workflows): push 이벤트 시 github action이 빌드 되지 않도록 수정 * HOTFIX(Jenkinsfile): 포트 수정 * [feat] #32 - 티켓 예매 가능 여부 GET API 구현 (#33) * [#32] refactor(BookingController): 메서드명 수정 * [#32] feat(ConflictException): Conflict 409에러 클래스 생성 * [#32] feat(GlobalExceptionHandler): ConflictException 등록 * [#32] feat(TicketAvailabilityRequest): TicketAvailabilityRequest DTO 생성 * [#32] feat(TicketAvailabilityResponse): TicketAvailabilityResponse DTO 생성 * [#32] feat(ScheduleSuccessCode): ScheduleSuccessCode 열거형 생성 * [#32] feat(ScheduleErrorCode): ScheduleErrorCode 열거형 생성 * [#32] feat(ScheduleRepository): ScheduleRepository 생성 * [#32] feat(ScheduleService): ScheduleService 생성 및 회차별 티켓 구매 가능 여부 판단 메서드 구현 * [#32] feat(ScheduleController): 회차별 티켓 수량 조회 GET API 구현 * [feat] #17 - 카카오 소셜 로그인 API 구현 (#36) * [#17] feat(build.gradle): jwt, security, open feign, Redis 의존성 추가 * [#17] feat(BeatApplication): OpenFeign 관련 어노테이션 추가 * [#17] feat(RedisConfig): redis 설정 * [#17] feat: redis 활용 jwt 토큰 생성 로직 구현 * [#17] feat(SecurityConfig): security 설정 * [#17] refactor: Member, Users 엔티티 수정 및 관련 enum 추가 * [#17] feat: Member, Users 도메인 관련 인증 로직 구현 * [#17] feat(MemberController): Member 관련 API 엔드포인트 구현 * [#17] feat: Security 관련 인증 객체 구현 * [#17] feat: 소셜로그인 로직 구현 * [#17] fix: 소셜로그인 오류 해결 * [#17] refactor: 코드리뷰 반영 * [#17] refactor: 코드리뷰 반영 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [feat] #34 - 비회원 예매 POST API 구현 (#35) * [#34] feat(Users): 빌더 및 정적 팩토리 메서드 추가 * [#34] feat(Entity): 엔티티 id 필드 수정 * [#34] refactor(application.yml): dialect 추가 * [#34] refactor(ScheduleService): 네이밍 수정 * [#34] refactor(BookingSuccessCode): 비회원 예매 조회 성공 메시지 추가 * [#34] feat(GuestBookingRequest): 비회원 예매 요청 DTO 생성 * [#34] feat(GuestBookingResponse): 비회원 예매 응답 DTO 생성 * [#34] refactor(BookingRetrieveService): 네이밍 수정 * [#34] feat(PerformanceRepository): 공연 레포지토리 생성 * [#34] feat(UserRepository): 유저 레포지토리 생성 * [#34] refactor(BookingRepository): 비회원 예매 시 네가지 정보가 모두 일치 해야만 다른 유저로 판단하는 메서드 구현 * [#34] refactor(ScheduleRepository): 비관적 락 적용 * [#34] feat(GuestBookingService): 비관적 락을 이용해 비회원 예매 로직 구현 * [#34] feat(BookingController): 비회원 예매 POST API 구현 * [#34] test(GuestBookingServiceConcurrencyTest): 동시성 테스트 구현 * [Refactor] #37 - 카카오 로그인 API response 수정 (#39) * [#37] rename: 빈 충돌 해결 위해 UserRepository를 UsersRepository로 rename * [#37] refactor: login response에서 refreshToken을 cookie에 담아주도록 변경 * [#37] fix: dao, repository 충돌 해결 * [#37] refactor: 어노테이션 수정 * [feat] #40 - 소개 관련 공연 정보 조회 GET API 구현 (#41) * [#40] feat: repository 추가 * [#40] feat: 공연 관련 성공, 실패 메세지 추가 * [#40] feat(PerformanceDetailResponse): 공연 상세페이지 조회 응답 dto * [#40] feat(PerformanceService): 공연 상세페이지 조회 로직 구현 * [#40] feat(PerformanceController): 공연 상세페이지 엔드포인트 구현 * [#40] feat(SecurityConfig): auth whitelist update * [#40] refactor: dto 분리 및 rename * [feat] #42 - 예매 관련 공연 정보 GET API 구현 (#43) * [#42] feat: 예매 관련 정보 조회 dto 생성 * [#42] feat: 예매 관련 정보 조회 성공 메세지 추가 * [#42] feat(ScheduleService): 잔여티켓계산, 예매가능여부확인, 예매가능여부 update 메소드 구현 * [#42] feat(PerformanceService): 예매관련공연정보의 response 생성하는 로직 구현 * [#42] feat(PerformanceController): 예매관련공연정보 조회 엔드포인트 구현 * [#42] feat(SecurityConfig): auth_whitelist update * [#42] refactor(ScheduleService): findTicketAvailability에서 getAvailableTicketCount method 사용하도록 수정 * [feat] #38 - 회원 예매 POST API 구현 (#45) * [#38] fix(Cast): Join 하는 부분 수정 및 빌더와 정적 팩토리 메서드 패턴 도입 * [#38] chore(application.yml): 계층 수정 * [#38] feat: 커스텀 어노테이션 생성 * [#38] fix(UserRepository): 중복된 클래스 삭제 * [#38] feat(UserErrorCode): 유저의 에러 메시지를 관리하는 열거형 생성 * [#38] refactor(MemberErrorCode): message 목적에 맞게 변경 * [#38] refactor(BookingSuccessCode): 회원 예매 성공 메시지 추가 * [#38] feat: 커스텀 어노테이션 생성 커밋에 누락된 클래스 추가 * [#38] refactor(GuestBookingService): schedule에서 바로 get 하도록 수정 * [#38] test(GuestBookingServiceConcurrencyTest): import문 경로명 변경 * [#38] refactor(MemberService): @Transactional 어노테이션이 필요한 메서드에 해당 옵션 추가 * [#38] feat(MemberBookingRequest): 회원 예매 요청 DTO 생성 * [#38] feat(MemberBookingResponse): 회원 예매 응답 DTO 생성 * [#38] refactor(MemberController): refreshToken을 쿠키에 넣어주도록 구현 * [#38] feat(MemberBookingService): 회원 예매 서비스 로직 구현 * [#38] feat(BookingController): 회원 예매 요청 POST API 구현 * [#38] fix: 빌드 안되는 부분 수정 * [#38] remove(MemberBookingService): 사용하지 않는 import문 삭제 * [#38] refactor: 커스텀 어노테이션 이름 수정 * [feat] #44 - 홈페이지 공연 및 홍보 조회 GET API 구현 (#47) * [#44] refactor: 코드리뷰 반영 * [#44] fix(Promotion): 기본키 이름 수정, performanceId 연관관계 설정 * [#44] feat: Repository 및 관련 로직 추가 * [#44] feat: errorcode, successcode 추가 * [#44] feat: 홈페이지 request, response dto 생성 * [#44] feat(ScheduleService): dueDate 관련 로직 구현 * [#44] feat(PerformanceService): 홈페이지 정렬 및 response 생성 로직 구현 * [#44] chore: import문 추가 * [feat] #46 - 회원 예매 조회 GET API 구현 (#48) * [#46] remove(BookingRetrieveRequest): 클래스 삭제 * [#46] refactor(BookingSuccessCode): 회원 예매 조회 성공 메시지 추가 * [#46] refactor(GuestBookingRetrieveResponse): 클래스 명 변경 * [#46] refactor(GuestBookingRetrieveRequest): 안쓰는 코드 주석처리 * [#46] refactor(GuestBookingRetrieveService): 클래스 명 수정으로 인한 리팩토링 * [#46] refactor(SecurityConfig): 토큰 사용하지 않는 api 경로 추가하기 * [#46] refactor(BookingRepository): userId로 예약 정보를 가져오는 JPA 메서드 구현 * [#46] feat(MemberBookingRetrieveResponse): 회원 조회 응답 DTO 생성 * [#46] feat(MemberBookingRetrieveService): 회원 예매 조회 로직을 담당하는 서비스 레이어 구현 * [#46] feat(BookingController): 회원 예매 조회 GET API 구현 * [feat] #49 - 예매자 관리 API 구현 (#51) * [#49] feat: 티켓 관련 success, error code 추가 * [#49] feat(Booking): 입금여부 setter 메소드 추가 * [#49] feat(TicketRetrieveResponse): 예매자 확인 response dto 생성 * [#49] feat(Ticket): 예매자 확인용 티켓 정보 response dto 생성 * [#49] feat(TicketRepository): 예매자 필터링용 메소드 생성 * [#49] feat: 예매자 입금정보 수정 request dto 생성 * [#49] feat(TicketDeleteRequest): 예매자 삭제 request dto 생성 * [#49] feat(TicketService): 예매자 관리 관련 로직 구현 * [#49] feat(TicketController): 예매자 관리 엔드포인트 구현 * [#49] chore: swagger annotation 추가 * HOTFIX(SecurityConfig): WHITELIST 경로명 수정 * [fix] #52 - auth whitelist 수정 (#53) * [#52]fix(SecurityConfig): auth_whitelist 수정 * [#52]fix(SecurityConfig): auth_whitelist 수정 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [feat] #54 - 등록한 공연 목록 조회 GET API 구현 (#55) * [#54] feat(PerformanceSuccessCode): success code 추가 * [#54] feat: 회원이 등록한 공연목록 조회 dto 생성 * [#54] feat(PerformanceService): 회원이 등록한 공연목록 조회 로직 구현 * [#54] feat(PerformanceRepository): 회원이 등록한 공연목록 조회 관련 메소드 추가 * [#54] feat(PerformanceController): 회원이 등록한 공연목록 조회 엔드포인트 생성 * [#54] fix(TicketService): exception error 수정 * [#54] chore(application.yml): yml 수정 * [fix] #58 - dev-ci.yml, prod-ci.yml 환경변수 추가 (#59) * [#58] fix(dev-CI.yml): Dev 서버 CI 워크플로우 수정 * [#58] fix(prod-CI.yml): Prod 서버 CI 워크플로우 수정 * [refactor] #61 - Performance Entity field 추가 (#62) * [#61] refactor(Performance): bankHolder 필드 추가 * [#61] chore(BookingController): swagger annotation 수정 * [feat] #63 - healthCheckController 생성 (#64) * [#63] remove(UsersRepository): 중복 클래스 삭제 * [#63] feat(HealthCheckController): healthcheck 컨트롤러 생성 * [feat] #63 - health check URL 화이트리스트에 등록 (#67) * [#63] remove(UsersRepository): 중복 클래스 삭제 * [#63] feat(HealthCheckController): healthcheck 컨트롤러 생성 * [#63] feat(SecurityConfig): healthcheck url white_list에 등록 * [fix] #57 - entity 연관관계 설정 SecurityConfig 수정 (#65) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [fix] #57 - security 관련 에러 대응 (#71) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 * [#57] fix(JwtAuthenticationFilter): 에러 로직 수정 * fix(SecurityConfig): webSecurityCustomizer 로직 추가 * [fix] #73 - security 수정 (#74) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 * [#57] fix(JwtAuthenticationFilter): 에러 로직 수정 * fix(SecurityConfig): webSecurityCustomizer 로직 추가 * [#57] fix:security 수정 * [#76] fix(SecurityConfig): Base64 인코딩을 하도록 변경 (#77) * [fix] #76 - 누락된 코드 추가 (#79) * [#76] fix(SecurityConfig): Base64 인코딩을 하도록 변경 * [#76] chore(SecurityConfig): 누락된 import문 추가 * [#76] chore(JwtTokenProvider): 누락된 코드 추가 * [#81] fix(JwtTokenProvider): jwtsecret을 인코딩하고 디코딩을 하도록 수정 (#82) --------- Co-authored-by: hyerinhwang-sailin * [deploy] merge to main (#87) * [deploy] merge to develop (#27) * [deploy] merge to main (#26) * [#2] chore(.gitignore): .gradle, .idea 파일 삭제 (#3) * [refactor] #4 - 도메인형 디렉터리 구조 변경 및 local, dev, prod 운영 환경 분리 (#5) * [#4] fix: 클래스 첫글자 대문자로 수정 * [#4] remove: enum 삭제 * [#4] feat(BaseSuccessCode): 성공 상태 관리를 위한 인터페이스 생성 * [#4] feat(BaseErrorCode): 에러 상태 관리를 위한 인터페이스 생성 * [#4] refactor: global 패키지로 이동 * [#4] refactor: 서버 운영 환경 분리 * [feat] #6 - dev, prod Dockerfile 분리 및 github Action CI workflow 구현 (#7) * [#6] feat(Dockerfile): prod용 도커 파일 구현 * [#6] feat(Dockerfile-dev): dev용 도커 파일 구현 * [#6] feat(dev-CI.yml): dev용 CI workflow 구현 * [#6] feat(prod-CI.yml): prod용 CI workflow 구현 * [#6] chore(.gitignore): gradle-wrapper.jar 파일은 레포지토리에 포함되도록 설정 * [#6] fix(gradle-wrapper.jar): .gitignore로 누락된 파일 추가 * [#6] chore(build.grade): plain jar 생성 방지 * [#9] docs(README.md): 서비스 소개 README v1 작성 (#10) * [#11] docs(README.md): 리드미 업데이트 (#12) * [feat] #13 - 유저, 예매, 공연, 회차 엔티티 생성 (#15) * [#13] feat(Users): 사용자 엔티티 생성 * [#13] feat(Genre): 장르 열거형 생성 * [#13] feat(BankName): 은행명 열거형 생성 * [#13] refactor(BaseTimeEntity): 업데이트 시간 관리 필드 활성화 * [#13] feat(Performance): 공연 엔티티 생성 * [#13] feat(ScheduleNumber): 회차 번호 열거형 생성 * [#13] feat(Schedule): 회차 엔티티 생성 * [#13] feat(Booking): 예매 엔티티 생성 * [#13] refactor(ScheduleNumber): 네이밍 수정 * [feat] #14 - 회원, 홍보, 등장인물, 스태프 엔티티 생성 (#16) * [#14] feat(Member): 멤버 엔티티 생성 * [#14] feat(Promotion): 홍보 엔티티 생성 * [#14] feat(Cast): 등장인물 엔티티 생성 * [#14] feat(Staff): 스태프 엔티티 생성 * [feat] #13 - 유저, 예매, 공연, 회차 엔티티 생성 (#15) * [#13] feat(Users): 사용자 엔티티 생성 * [#13] feat(Genre): 장르 열거형 생성 * [#13] feat(BankName): 은행명 열거형 생성 * [#13] refactor(BaseTimeEntity): 업데이트 시간 관리 필드 활성화 * [#13] feat(Performance): 공연 엔티티 생성 * [#13] feat(ScheduleNumber): 회차 번호 열거형 생성 * [#13] feat(Schedule): 회차 엔티티 생성 * [#13] feat(Booking): 예매 엔티티 생성 * [#13] refactor(ScheduleNumber): 네이밍 수정 * [#14} fix: 스태프, 등장인물, 홍보 엔티티 상속관계 수정 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [#18] feat(Jenkinsfile): 젠킨스 파일 생성 (#19) * [#20] refactor(Jenkinsfile): 젠킨스 파일 Webhook 테스트용 커밋 (#21) * [#22] feat(Jenkinsfile): Jenkins multibranch 스크립트 작성 (#23) * HOTFIX(Jenkinsfile): Jenkins multibranch 스크립트 수정 * HOTFIX(workflows): 빌드 후 젠킨스 배포가 진행되도록 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * [#24] feat(Jenkinsfile): slack 연동 스크립트 작성 (#25) --------- Co-authored-by: hyerinhwang-sailin * HOTFIX(workflow): 오타 수정 --------- Co-authored-by: hyerinhwang-sailin * [feat] #28 - 비회원 예매 조회 POST API 구현 (#29) * chore(application-dev.yml): dialect 추가 * chore(application-prod.yml): dialect 추가 * [#28] chore(build.gradle): security 의존성 비활성화 - security 일시적으로 비활성화 * [#28] refactor(Booking): 예매 엔티티에 빌더 및 정적팩토리 메서드 추가 * [#28] refactor(ErrorResponse): 정적 팩토리 메서드 네이밍 변환 * [#28] refactor(Schedule): 회차 엔티티에 빌더 및 정적 팩토리 메서드 추가 * [#28] refactor(Performance): 공연 엔티티에 빌더 및 정적 팩토리 메서드 추가 * [#28] refactor(SuccessResponse): 정적 팩토리 메서드 네이밍 변환 * [#28] refactor(GlobalExceptionHandler): INTERNAL_SERVER_ERROR 핸들러 메서드 추가 * [#28] feat(BookingSuccessCode): 예매 성공 메시지를 관리하는 열거형 생성 * [#28] feat(BookingErrorCode): 예매 에러 메시지를 관리하는 열거형 생성 * [#28] feat(BookingRetrieveResponse): 예매 조회 응답 DTO 생성 * [#28] feat(BookingRetrieveRequest): 예매 조회 요청 DTO 생성 * [#28] feat(BookingRepository): 예매 레포지토리 생성 및 비회원 예매 조회 시 예매 내역 가져오는 메서드 구현 * [#28] feat(BookingService): 예매 서비스 레이어 생성 및 비회원 조회 메서드 구현 * [#28] feat(BookingController): 예매 컨트롤러 생성 및 비회원 예매조회 POST API 구현 * [feat] #30 - SwaggerConfig 및 WebConfig 구현 (#31) * [#30] chore(build.gradle): springdoc 의존성 추가 * [#30] feat(SwaggerConfig): SwaggerConfig 추가 * [#30] feat(WebConfig): WebConfig 추가 * HOTFIX(workflows): push 이벤트 시 github action이 빌드 되지 않도록 수정 * HOTFIX(Jenkinsfile): 포트 수정 * [feat] #32 - 티켓 예매 가능 여부 GET API 구현 (#33) * [#32] refactor(BookingController): 메서드명 수정 * [#32] feat(ConflictException): Conflict 409에러 클래스 생성 * [#32] feat(GlobalExceptionHandler): ConflictException 등록 * [#32] feat(TicketAvailabilityRequest): TicketAvailabilityRequest DTO 생성 * [#32] feat(TicketAvailabilityResponse): TicketAvailabilityResponse DTO 생성 * [#32] feat(ScheduleSuccessCode): ScheduleSuccessCode 열거형 생성 * [#32] feat(ScheduleErrorCode): ScheduleErrorCode 열거형 생성 * [#32] feat(ScheduleRepository): ScheduleRepository 생성 * [#32] feat(ScheduleService): ScheduleService 생성 및 회차별 티켓 구매 가능 여부 판단 메서드 구현 * [#32] feat(ScheduleController): 회차별 티켓 수량 조회 GET API 구현 * [feat] #17 - 카카오 소셜 로그인 API 구현 (#36) * [#17] feat(build.gradle): jwt, security, open feign, Redis 의존성 추가 * [#17] feat(BeatApplication): OpenFeign 관련 어노테이션 추가 * [#17] feat(RedisConfig): redis 설정 * [#17] feat: redis 활용 jwt 토큰 생성 로직 구현 * [#17] feat(SecurityConfig): security 설정 * [#17] refactor: Member, Users 엔티티 수정 및 관련 enum 추가 * [#17] feat: Member, Users 도메인 관련 인증 로직 구현 * [#17] feat(MemberController): Member 관련 API 엔드포인트 구현 * [#17] feat: Security 관련 인증 객체 구현 * [#17] feat: 소셜로그인 로직 구현 * [#17] fix: 소셜로그인 오류 해결 * [#17] refactor: 코드리뷰 반영 * [#17] refactor: 코드리뷰 반영 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [feat] #34 - 비회원 예매 POST API 구현 (#35) * [#34] feat(Users): 빌더 및 정적 팩토리 메서드 추가 * [#34] feat(Entity): 엔티티 id 필드 수정 * [#34] refactor(application.yml): dialect 추가 * [#34] refactor(ScheduleService): 네이밍 수정 * [#34] refactor(BookingSuccessCode): 비회원 예매 조회 성공 메시지 추가 * [#34] feat(GuestBookingRequest): 비회원 예매 요청 DTO 생성 * [#34] feat(GuestBookingResponse): 비회원 예매 응답 DTO 생성 * [#34] refactor(BookingRetrieveService): 네이밍 수정 * [#34] feat(PerformanceRepository): 공연 레포지토리 생성 * [#34] feat(UserRepository): 유저 레포지토리 생성 * [#34] refactor(BookingRepository): 비회원 예매 시 네가지 정보가 모두 일치 해야만 다른 유저로 판단하는 메서드 구현 * [#34] refactor(ScheduleRepository): 비관적 락 적용 * [#34] feat(GuestBookingService): 비관적 락을 이용해 비회원 예매 로직 구현 * [#34] feat(BookingController): 비회원 예매 POST API 구현 * [#34] test(GuestBookingServiceConcurrencyTest): 동시성 테스트 구현 * [Refactor] #37 - 카카오 로그인 API response 수정 (#39) * [#37] rename: 빈 충돌 해결 위해 UserRepository를 UsersRepository로 rename * [#37] refactor: login response에서 refreshToken을 cookie에 담아주도록 변경 * [#37] fix: dao, repository 충돌 해결 * [#37] refactor: 어노테이션 수정 * [feat] #40 - 소개 관련 공연 정보 조회 GET API 구현 (#41) * [#40] feat: repository 추가 * [#40] feat: 공연 관련 성공, 실패 메세지 추가 * [#40] feat(PerformanceDetailResponse): 공연 상세페이지 조회 응답 dto * [#40] feat(PerformanceService): 공연 상세페이지 조회 로직 구현 * [#40] feat(PerformanceController): 공연 상세페이지 엔드포인트 구현 * [#40] feat(SecurityConfig): auth whitelist update * [#40] refactor: dto 분리 및 rename * [feat] #42 - 예매 관련 공연 정보 GET API 구현 (#43) * [#42] feat: 예매 관련 정보 조회 dto 생성 * [#42] feat: 예매 관련 정보 조회 성공 메세지 추가 * [#42] feat(ScheduleService): 잔여티켓계산, 예매가능여부확인, 예매가능여부 update 메소드 구현 * [#42] feat(PerformanceService): 예매관련공연정보의 response 생성하는 로직 구현 * [#42] feat(PerformanceController): 예매관련공연정보 조회 엔드포인트 구현 * [#42] feat(SecurityConfig): auth_whitelist update * [#42] refactor(ScheduleService): findTicketAvailability에서 getAvailableTicketCount method 사용하도록 수정 * [feat] #38 - 회원 예매 POST API 구현 (#45) * [#38] fix(Cast): Join 하는 부분 수정 및 빌더와 정적 팩토리 메서드 패턴 도입 * [#38] chore(application.yml): 계층 수정 * [#38] feat: 커스텀 어노테이션 생성 * [#38] fix(UserRepository): 중복된 클래스 삭제 * [#38] feat(UserErrorCode): 유저의 에러 메시지를 관리하는 열거형 생성 * [#38] refactor(MemberErrorCode): message 목적에 맞게 변경 * [#38] refactor(BookingSuccessCode): 회원 예매 성공 메시지 추가 * [#38] feat: 커스텀 어노테이션 생성 커밋에 누락된 클래스 추가 * [#38] refactor(GuestBookingService): schedule에서 바로 get 하도록 수정 * [#38] test(GuestBookingServiceConcurrencyTest): import문 경로명 변경 * [#38] refactor(MemberService): @Transactional 어노테이션이 필요한 메서드에 해당 옵션 추가 * [#38] feat(MemberBookingRequest): 회원 예매 요청 DTO 생성 * [#38] feat(MemberBookingResponse): 회원 예매 응답 DTO 생성 * [#38] refactor(MemberController): refreshToken을 쿠키에 넣어주도록 구현 * [#38] feat(MemberBookingService): 회원 예매 서비스 로직 구현 * [#38] feat(BookingController): 회원 예매 요청 POST API 구현 * [#38] fix: 빌드 안되는 부분 수정 * [#38] remove(MemberBookingService): 사용하지 않는 import문 삭제 * [#38] refactor: 커스텀 어노테이션 이름 수정 * [feat] #44 - 홈페이지 공연 및 홍보 조회 GET API 구현 (#47) * [#44] refactor: 코드리뷰 반영 * [#44] fix(Promotion): 기본키 이름 수정, performanceId 연관관계 설정 * [#44] feat: Repository 및 관련 로직 추가 * [#44] feat: errorcode, successcode 추가 * [#44] feat: 홈페이지 request, response dto 생성 * [#44] feat(ScheduleService): dueDate 관련 로직 구현 * [#44] feat(PerformanceService): 홈페이지 정렬 및 response 생성 로직 구현 * [#44] chore: import문 추가 * [feat] #46 - 회원 예매 조회 GET API 구현 (#48) * [#46] remove(BookingRetrieveRequest): 클래스 삭제 * [#46] refactor(BookingSuccessCode): 회원 예매 조회 성공 메시지 추가 * [#46] refactor(GuestBookingRetrieveResponse): 클래스 명 변경 * [#46] refactor(GuestBookingRetrieveRequest): 안쓰는 코드 주석처리 * [#46] refactor(GuestBookingRetrieveService): 클래스 명 수정으로 인한 리팩토링 * [#46] refactor(SecurityConfig): 토큰 사용하지 않는 api 경로 추가하기 * [#46] refactor(BookingRepository): userId로 예약 정보를 가져오는 JPA 메서드 구현 * [#46] feat(MemberBookingRetrieveResponse): 회원 조회 응답 DTO 생성 * [#46] feat(MemberBookingRetrieveService): 회원 예매 조회 로직을 담당하는 서비스 레이어 구현 * [#46] feat(BookingController): 회원 예매 조회 GET API 구현 * [feat] #49 - 예매자 관리 API 구현 (#51) * [#49] feat: 티켓 관련 success, error code 추가 * [#49] feat(Booking): 입금여부 setter 메소드 추가 * [#49] feat(TicketRetrieveResponse): 예매자 확인 response dto 생성 * [#49] feat(Ticket): 예매자 확인용 티켓 정보 response dto 생성 * [#49] feat(TicketRepository): 예매자 필터링용 메소드 생성 * [#49] feat: 예매자 입금정보 수정 request dto 생성 * [#49] feat(TicketDeleteRequest): 예매자 삭제 request dto 생성 * [#49] feat(TicketService): 예매자 관리 관련 로직 구현 * [#49] feat(TicketController): 예매자 관리 엔드포인트 구현 * [#49] chore: swagger annotation 추가 * HOTFIX(SecurityConfig): WHITELIST 경로명 수정 * [fix] #52 - auth whitelist 수정 (#53) * [#52]fix(SecurityConfig): auth_whitelist 수정 * [#52]fix(SecurityConfig): auth_whitelist 수정 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [feat] #54 - 등록한 공연 목록 조회 GET API 구현 (#55) * [#54] feat(PerformanceSuccessCode): success code 추가 * [#54] feat: 회원이 등록한 공연목록 조회 dto 생성 * [#54] feat(PerformanceService): 회원이 등록한 공연목록 조회 로직 구현 * [#54] feat(PerformanceRepository): 회원이 등록한 공연목록 조회 관련 메소드 추가 * [#54] feat(PerformanceController): 회원이 등록한 공연목록 조회 엔드포인트 생성 * [#54] fix(TicketService): exception error 수정 * [#54] chore(application.yml): yml 수정 * [fix] #58 - dev-ci.yml, prod-ci.yml 환경변수 추가 (#59) * [#58] fix(dev-CI.yml): Dev 서버 CI 워크플로우 수정 * [#58] fix(prod-CI.yml): Prod 서버 CI 워크플로우 수정 * [refactor] #61 - Performance Entity field 추가 (#62) * [#61] refactor(Performance): bankHolder 필드 추가 * [#61] chore(BookingController): swagger annotation 수정 * [feat] #63 - healthCheckController 생성 (#64) * [#63] remove(UsersRepository): 중복 클래스 삭제 * [#63] feat(HealthCheckController): healthcheck 컨트롤러 생성 * [feat] #63 - health check URL 화이트리스트에 등록 (#67) * [#63] remove(UsersRepository): 중복 클래스 삭제 * [#63] feat(HealthCheckController): healthcheck 컨트롤러 생성 * [#63] feat(SecurityConfig): healthcheck url white_list에 등록 * [fix] #57 - entity 연관관계 설정 SecurityConfig 수정 (#65) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [fix] #57 - security 관련 에러 대응 (#71) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 * [#57] fix(JwtAuthenticationFilter): 에러 로직 수정 * fix(SecurityConfig): webSecurityCustomizer 로직 추가 * [fix] #73 - security 수정 (#74) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 * [#57] fix(JwtAuthenticationFilter): 에러 로직 수정 * fix(SecurityConfig): webSecurityCustomizer 로직 추가 * [#57] fix:security 수정 * [#76] fix(SecurityConfig): Base64 인코딩을 하도록 변경 (#77) * [fix] #76 - 누락된 코드 추가 (#79) * [#76] fix(SecurityConfig): Base64 인코딩을 하도록 변경 * [#76] chore(SecurityConfig): 누락된 import문 추가 * [#76] chore(JwtTokenProvider): 누락된 코드 추가 * [#81] fix(JwtTokenProvider): jwtsecret을 인코딩하고 디코딩을 하도록 수정 (#82) * [#85] chore(application.yml): 환경변수 설정 (#86) --------- Co-authored-by: hyerinhwang-sailin --------- Co-authored-by: hyerinhwang-sailin * Revert "[deploy] merge to main (#90)" (#91) This reverts commit f519b0c82a2f01d4374eb045b9e90c6303381e50. * [fix] #93 - 누락된 어노테이션 및 누락된 경로명 추가 (#94) * [#93] fix(HealthCheckController): 누락된 어노테이션 추가 * [#93] refactor(SecurityConfig): 누락된 경로명 추가 * [bug] #84 - actuator/health 의존성 및 설정 추가 (#96) * [#84] chore(build.gradle): 의존성 추가 * [#84] chore: health/actuator yml 설정 추가 * [#84] chore: redis yml 설정 추가 * [#84] chore: yml 수정 (#99) * [bug] #101 - yml, s3 수정 (#102) * [#101] chore: yml 수정 * [#101] feat: s3 추가 * HOTIFX: prod ci-yml 수정 --------- Co-authored-by: hyerinhwang-sailin * Update application-prod.yml --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [feat] #50 - 공연 생성 POST API 생성 (#108) * [#50] chore: 폴더 이동 * [#50] feat: request DTO 생성 * [#50] feat: response DTO 생성 * [#50] refactor(PerformanceSuccessCode): 공연 생성 성공 메시지 추가 * [#50] chore(PerformanceService): import문 변 * [#50] chore(HomeController): import문 변 * [#50] feat(PerformanceCreateService): 공연 생성 서비스 로직 생성 * [#50] feat(PerformanceController): 공연 생성 POST API 생성 * [feat] #111 - 웹발신 구현 (#114) * [#111] feat(build.gradle): coolsms 의존성 추가 * [#111] feat: yml에 coolsms 환경변수 세팅 * [#111] feat(CoolSmsService): coolsms 웹발신 로직 구현 * [#111] feat(TicketService): coolsms 웹발신 트리거 로직 구현 * [#111] comment(TicketController): swagger 설명 수정 * [feat] #110 - 공연 수정 PUT API 구현 (#112) * [#110] feat: request DTO 생성 * [#110] feat: response DTO 생성 * [#110] feat(CastErrorCode): 등장인물 열거형 생성 * [#110] feat(StaffErrorCode): 스태프 에러 열거형 생성 * [#110] refactor(PerformanceSuccessCode): 공연 성공 수정 메시지 추가 * [#110] refactor(Performance): 업데이트 메서드 추가 * [#110] refactor(Schedule): 업데이트 메서드 추가 * [#110] refactor(Staff): 업데이트 메서드 추가 * [#110] test(GuestBookingServiceConcurrencyTest): 변경된 필드 추가 * [#110] refactor(Cast): 업데이트 메서드 추 * [#110] feat(PerformanceUpdateService): 공연 수정 서비스 로직 구현 * [#110] feat(PerformanceController): 공연 수정 PUT API 추가 * [feat] #113 - 공연 삭제 DELETE API 구현 (#116) * [#113] refactor(BookingRepository): 해당 공연을 예매한 사람이 있는지 판단하는 메서드 구현 * [#113] refactor(PerformanceErrorCode): 예매자가 한명 있을 경우 공연 취소가 안될때 보여주는 에러메시지 추가 * [#113] refactor(PerformanceSuccessCode): 공연이 삭제되었을 때 보여주는 성공 메시지 추가 * [#113] refactor(PerformanceManagementService): 멤버 아이디를 인자로 받도록 수정 및 공연 삭제 메서드 구현 * [#113] feat(PerformanceController): 공연 삭제 DELETE API 구현 * Update README.md * HOTFIX: 코드 수정 * [#119] refactor: response에 필요 필드 추가 (#120) * [feat] #117 - 공연 수정 페이지 정보 조회 GET API 구현 (#121) * [#117] remove(PerformanceCreateService): 사용하지 않는 클래스 삭제 * [#117] refactor(CastRepository): DB에 등록된 등장인물을 모두 가져오는 메서드 구현 * [#117] refactor(ScheduleRepository): DB에 등록된 회차를 모두 가져오는 메서드 구현 * [#117] refactor(StaffRepository): DB에 등록된 스태프를 모두 가져오는 메서드 구현 * [#117] refactor(PerformanceSuccessCode): 공연 수정 페이지 조회 성공 메시지 추가 * [#117] refactor(PerformanceEditResponse): 공연 수정 페이지 조회 응답 DTO 생성 * [#117] refactor(PerformanceService): 수정 페이지의 정보를 조회하는 서비스 로직 구현 * [#117] feat(PerformanceController): 공연 수정 페이지의 정보를 조회하는 GET API 구현 * [#123] fix(PerformanceController): 중복 코드 제거 (#124) * [#128] fix: 누락된 환경 변수 주입 및 수정 (#129) * [feat] #127 - presigned-url로 포스터 이미지, 등장인물 이미지 리스트, 스태프 이미지 리스트를 반환하도록 구현 (#131) * [#127] feat(SecurityConfig): 화이트 리스트에 presigned-url 추가 * [#127] refactor(FileService): 포스터 이미지, 등장인물 이미지 리스트, 스태프 이미지 리스트의 presigned-url을 반환하는 메서드 구현 * [#127] feat(FileController): presigned-url GET API 구현 * [refactor] #133 - presigned URL의 만료 시간 늘리기 (#134) * [#133] remove: 삭제된 클래스 커밋 * [#133] refactor(FileService): URL의 유효시간 2시간으로 설정 * [#135] refactor(SwaggerConfig): SwaggerConfig 리팩토링 (#136) * [#128] fix(BankName): bankname enum 추가 (#139) * [refactor] #126 - 프론트 요청 필드 반영 (#140) * [#126] refactor(BookingController): 회원 예매 조회시 성공 메시지 변경 * [#126] refactor(BookingRepository): 쿼리문 추가 * [#126] refactor(GuestBookingRequest): enum으로 리턴값 변경 * [#126] refactor(GuestBookingResponse): enum으로 리턴값 변경 * [#126] chore(GuestBookingRetrieveRequest): 주석 삭제 * [#126] refactor(GuestBookingRetrieveResponse): performanceId, posterImage, totalPaymentAmount 추가 * [#126] refactor(MemberBookingRetrieveResponse): performanceId, posterImage, totalPaymentAmount 추가 * [#126] refactor(MemberBookingRetrieveService): response에 추가된 필드 리턴하도록 리팩토링 * [#126] refactor(GuestBookingRetrieveService): response에 추가된 필드 리턴하도록 리팩토링 * [#126] refactor(GuestBookingService): displayName이 아닌 열거형으로 리턴하도록 수정 * [#126] refactor(MemberBookingRequest): 정적 팩토리 메서드 삭제 * [#126] refactor(MemberBookingResponse): enum으로 리턴하도록 수정 * [#126] refactor(MemberBookingService): enum으로 리턴하도록 수정 * [#126] test(GuestBookingServiceConcurrencyTest): DTO에서 수정된 리턴 방법 반영 * [#142] refactor(FileController): castImages, staffImages의 파라미터 value를 주지 않아도 presigned-url을 발급하도록 변경 (#143) * Update README.md * [#147] refactor: 예금주 필드 추가 (#148) * [feat] #150 - 스프링 서버를 redis와 동일한 네트워크에서 실행되도록 구현 (#151) * [#150] feat(Jenkinsfile): 스프링 서버를 redis와 동일한 네트워크에서 실행되도록 구현 * [#150] refactor(prod-CI.yml): prod에서 PR시에만 빌드 되도록 수정 --------- Co-authored-by: hyerinhwang-sailin --- .github/workflows/prod-CI.yml | 2 -- Jenkinsfile | 1 + 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/prod-CI.yml b/.github/workflows/prod-CI.yml index c6b65583..c478ff71 100644 --- a/.github/workflows/prod-CI.yml +++ b/.github/workflows/prod-CI.yml @@ -3,8 +3,6 @@ name: prod-CI on: pull_request: branches: [ "main" ] - push: - branches: [ "main" ] jobs: prod-ci: diff --git a/Jenkinsfile b/Jenkinsfile index 5ac08b0d..ece360a8 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -84,6 +84,7 @@ pipeline { // 새로운 컨테이너 실행 sshCommand remote: remote, command: ( 'docker run -d --name springboot' + + ' --network beat-network' + ' -p 8080:' + INTERNAL_PORT + ' -e "SPRING_PROFILES_ACTIVE=' + OPERATION_ENV + '"' + ' ' + DOCKER_IMAGE_NAME + ':latest' From 90f240a1237b3f1bf6e93be7cb8301aa9364894c Mon Sep 17 00:00:00 2001 From: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> Date: Fri, 19 Jul 2024 20:39:12 +0900 Subject: [PATCH 5/6] [deploy] merge to main (#156) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * [deploy] merge to develop (#27) * [deploy] merge to main (#26) * [#2] chore(.gitignore): .gradle, .idea 파일 삭제 (#3) * [refactor] #4 - 도메인형 디렉터리 구조 변경 및 local, dev, prod 운영 환경 분리 (#5) * [#4] fix: 클래스 첫글자 대문자로 수정 * [#4] remove: enum 삭제 * [#4] feat(BaseSuccessCode): 성공 상태 관리를 위한 인터페이스 생성 * [#4] feat(BaseErrorCode): 에러 상태 관리를 위한 인터페이스 생성 * [#4] refactor: global 패키지로 이동 * [#4] refactor: 서버 운영 환경 분리 * [feat] #6 - dev, prod Dockerfile 분리 및 github Action CI workflow 구현 (#7) * [#6] feat(Dockerfile): prod용 도커 파일 구현 * [#6] feat(Dockerfile-dev): dev용 도커 파일 구현 * [#6] feat(dev-CI.yml): dev용 CI workflow 구현 * [#6] feat(prod-CI.yml): prod용 CI workflow 구현 * [#6] chore(.gitignore): gradle-wrapper.jar 파일은 레포지토리에 포함되도록 설정 * [#6] fix(gradle-wrapper.jar): .gitignore로 누락된 파일 추가 * [#6] chore(build.grade): plain jar 생성 방지 * [#9] docs(README.md): 서비스 소개 README v1 작성 (#10) * [#11] docs(README.md): 리드미 업데이트 (#12) * [feat] #13 - 유저, 예매, 공연, 회차 엔티티 생성 (#15) * [#13] feat(Users): 사용자 엔티티 생성 * [#13] feat(Genre): 장르 열거형 생성 * [#13] feat(BankName): 은행명 열거형 생성 * [#13] refactor(BaseTimeEntity): 업데이트 시간 관리 필드 활성화 * [#13] feat(Performance): 공연 엔티티 생성 * [#13] feat(ScheduleNumber): 회차 번호 열거형 생성 * [#13] feat(Schedule): 회차 엔티티 생성 * [#13] feat(Booking): 예매 엔티티 생성 * [#13] refactor(ScheduleNumber): 네이밍 수정 * [feat] #14 - 회원, 홍보, 등장인물, 스태프 엔티티 생성 (#16) * [#14] feat(Member): 멤버 엔티티 생성 * [#14] feat(Promotion): 홍보 엔티티 생성 * [#14] feat(Cast): 등장인물 엔티티 생성 * [#14] feat(Staff): 스태프 엔티티 생성 * [feat] #13 - 유저, 예매, 공연, 회차 엔티티 생성 (#15) * [#13] feat(Users): 사용자 엔티티 생성 * [#13] feat(Genre): 장르 열거형 생성 * [#13] feat(BankName): 은행명 열거형 생성 * [#13] refactor(BaseTimeEntity): 업데이트 시간 관리 필드 활성화 * [#13] feat(Performance): 공연 엔티티 생성 * [#13] feat(ScheduleNumber): 회차 번호 열거형 생성 * [#13] feat(Schedule): 회차 엔티티 생성 * [#13] feat(Booking): 예매 엔티티 생성 * [#13] refactor(ScheduleNumber): 네이밍 수정 * [#14} fix: 스태프, 등장인물, 홍보 엔티티 상속관계 수정 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [#18] feat(Jenkinsfile): 젠킨스 파일 생성 (#19) * [#20] refactor(Jenkinsfile): 젠킨스 파일 Webhook 테스트용 커밋 (#21) * [#22] feat(Jenkinsfile): Jenkins multibranch 스크립트 작성 (#23) * HOTFIX(Jenkinsfile): Jenkins multibranch 스크립트 수정 * HOTFIX(workflows): 빌드 후 젠킨스 배포가 진행되도록 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * [#24] feat(Jenkinsfile): slack 연동 스크립트 작성 (#25) --------- Co-authored-by: hyerinhwang-sailin * HOTFIX(workflow): 오타 수정 --------- Co-authored-by: hyerinhwang-sailin * [feat] #28 - 비회원 예매 조회 POST API 구현 (#29) * chore(application-dev.yml): dialect 추가 * chore(application-prod.yml): dialect 추가 * [#28] chore(build.gradle): security 의존성 비활성화 - security 일시적으로 비활성화 * [#28] refactor(Booking): 예매 엔티티에 빌더 및 정적팩토리 메서드 추가 * [#28] refactor(ErrorResponse): 정적 팩토리 메서드 네이밍 변환 * [#28] refactor(Schedule): 회차 엔티티에 빌더 및 정적 팩토리 메서드 추가 * [#28] refactor(Performance): 공연 엔티티에 빌더 및 정적 팩토리 메서드 추가 * [#28] refactor(SuccessResponse): 정적 팩토리 메서드 네이밍 변환 * [#28] refactor(GlobalExceptionHandler): INTERNAL_SERVER_ERROR 핸들러 메서드 추가 * [#28] feat(BookingSuccessCode): 예매 성공 메시지를 관리하는 열거형 생성 * [#28] feat(BookingErrorCode): 예매 에러 메시지를 관리하는 열거형 생성 * [#28] feat(BookingRetrieveResponse): 예매 조회 응답 DTO 생성 * [#28] feat(BookingRetrieveRequest): 예매 조회 요청 DTO 생성 * [#28] feat(BookingRepository): 예매 레포지토리 생성 및 비회원 예매 조회 시 예매 내역 가져오는 메서드 구현 * [#28] feat(BookingService): 예매 서비스 레이어 생성 및 비회원 조회 메서드 구현 * [#28] feat(BookingController): 예매 컨트롤러 생성 및 비회원 예매조회 POST API 구현 * [feat] #30 - SwaggerConfig 및 WebConfig 구현 (#31) * [#30] chore(build.gradle): springdoc 의존성 추가 * [#30] feat(SwaggerConfig): SwaggerConfig 추가 * [#30] feat(WebConfig): WebConfig 추가 * HOTFIX(workflows): push 이벤트 시 github action이 빌드 되지 않도록 수정 * HOTFIX(Jenkinsfile): 포트 수정 * [feat] #32 - 티켓 예매 가능 여부 GET API 구현 (#33) * [#32] refactor(BookingController): 메서드명 수정 * [#32] feat(ConflictException): Conflict 409에러 클래스 생성 * [#32] feat(GlobalExceptionHandler): ConflictException 등록 * [#32] feat(TicketAvailabilityRequest): TicketAvailabilityRequest DTO 생성 * [#32] feat(TicketAvailabilityResponse): TicketAvailabilityResponse DTO 생성 * [#32] feat(ScheduleSuccessCode): ScheduleSuccessCode 열거형 생성 * [#32] feat(ScheduleErrorCode): ScheduleErrorCode 열거형 생성 * [#32] feat(ScheduleRepository): ScheduleRepository 생성 * [#32] feat(ScheduleService): ScheduleService 생성 및 회차별 티켓 구매 가능 여부 판단 메서드 구현 * [#32] feat(ScheduleController): 회차별 티켓 수량 조회 GET API 구현 * [feat] #17 - 카카오 소셜 로그인 API 구현 (#36) * [#17] feat(build.gradle): jwt, security, open feign, Redis 의존성 추가 * [#17] feat(BeatApplication): OpenFeign 관련 어노테이션 추가 * [#17] feat(RedisConfig): redis 설정 * [#17] feat: redis 활용 jwt 토큰 생성 로직 구현 * [#17] feat(SecurityConfig): security 설정 * [#17] refactor: Member, Users 엔티티 수정 및 관련 enum 추가 * [#17] feat: Member, Users 도메인 관련 인증 로직 구현 * [#17] feat(MemberController): Member 관련 API 엔드포인트 구현 * [#17] feat: Security 관련 인증 객체 구현 * [#17] feat: 소셜로그인 로직 구현 * [#17] fix: 소셜로그인 오류 해결 * [#17] refactor: 코드리뷰 반영 * [#17] refactor: 코드리뷰 반영 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [feat] #34 - 비회원 예매 POST API 구현 (#35) * [#34] feat(Users): 빌더 및 정적 팩토리 메서드 추가 * [#34] feat(Entity): 엔티티 id 필드 수정 * [#34] refactor(application.yml): dialect 추가 * [#34] refactor(ScheduleService): 네이밍 수정 * [#34] refactor(BookingSuccessCode): 비회원 예매 조회 성공 메시지 추가 * [#34] feat(GuestBookingRequest): 비회원 예매 요청 DTO 생성 * [#34] feat(GuestBookingResponse): 비회원 예매 응답 DTO 생성 * [#34] refactor(BookingRetrieveService): 네이밍 수정 * [#34] feat(PerformanceRepository): 공연 레포지토리 생성 * [#34] feat(UserRepository): 유저 레포지토리 생성 * [#34] refactor(BookingRepository): 비회원 예매 시 네가지 정보가 모두 일치 해야만 다른 유저로 판단하는 메서드 구현 * [#34] refactor(ScheduleRepository): 비관적 락 적용 * [#34] feat(GuestBookingService): 비관적 락을 이용해 비회원 예매 로직 구현 * [#34] feat(BookingController): 비회원 예매 POST API 구현 * [#34] test(GuestBookingServiceConcurrencyTest): 동시성 테스트 구현 * [Refactor] #37 - 카카오 로그인 API response 수정 (#39) * [#37] rename: 빈 충돌 해결 위해 UserRepository를 UsersRepository로 rename * [#37] refactor: login response에서 refreshToken을 cookie에 담아주도록 변경 * [#37] fix: dao, repository 충돌 해결 * [#37] refactor: 어노테이션 수정 * [feat] #40 - 소개 관련 공연 정보 조회 GET API 구현 (#41) * [#40] feat: repository 추가 * [#40] feat: 공연 관련 성공, 실패 메세지 추가 * [#40] feat(PerformanceDetailResponse): 공연 상세페이지 조회 응답 dto * [#40] feat(PerformanceService): 공연 상세페이지 조회 로직 구현 * [#40] feat(PerformanceController): 공연 상세페이지 엔드포인트 구현 * [#40] feat(SecurityConfig): auth whitelist update * [#40] refactor: dto 분리 및 rename * [feat] #42 - 예매 관련 공연 정보 GET API 구현 (#43) * [#42] feat: 예매 관련 정보 조회 dto 생성 * [#42] feat: 예매 관련 정보 조회 성공 메세지 추가 * [#42] feat(ScheduleService): 잔여티켓계산, 예매가능여부확인, 예매가능여부 update 메소드 구현 * [#42] feat(PerformanceService): 예매관련공연정보의 response 생성하는 로직 구현 * [#42] feat(PerformanceController): 예매관련공연정보 조회 엔드포인트 구현 * [#42] feat(SecurityConfig): auth_whitelist update * [#42] refactor(ScheduleService): findTicketAvailability에서 getAvailableTicketCount method 사용하도록 수정 * [feat] #38 - 회원 예매 POST API 구현 (#45) * [#38] fix(Cast): Join 하는 부분 수정 및 빌더와 정적 팩토리 메서드 패턴 도입 * [#38] chore(application.yml): 계층 수정 * [#38] feat: 커스텀 어노테이션 생성 * [#38] fix(UserRepository): 중복된 클래스 삭제 * [#38] feat(UserErrorCode): 유저의 에러 메시지를 관리하는 열거형 생성 * [#38] refactor(MemberErrorCode): message 목적에 맞게 변경 * [#38] refactor(BookingSuccessCode): 회원 예매 성공 메시지 추가 * [#38] feat: 커스텀 어노테이션 생성 커밋에 누락된 클래스 추가 * [#38] refactor(GuestBookingService): schedule에서 바로 get 하도록 수정 * [#38] test(GuestBookingServiceConcurrencyTest): import문 경로명 변경 * [#38] refactor(MemberService): @Transactional 어노테이션이 필요한 메서드에 해당 옵션 추가 * [#38] feat(MemberBookingRequest): 회원 예매 요청 DTO 생성 * [#38] feat(MemberBookingResponse): 회원 예매 응답 DTO 생성 * [#38] refactor(MemberController): refreshToken을 쿠키에 넣어주도록 구현 * [#38] feat(MemberBookingService): 회원 예매 서비스 로직 구현 * [#38] feat(BookingController): 회원 예매 요청 POST API 구현 * [#38] fix: 빌드 안되는 부분 수정 * [#38] remove(MemberBookingService): 사용하지 않는 import문 삭제 * [#38] refactor: 커스텀 어노테이션 이름 수정 * [feat] #44 - 홈페이지 공연 및 홍보 조회 GET API 구현 (#47) * [#44] refactor: 코드리뷰 반영 * [#44] fix(Promotion): 기본키 이름 수정, performanceId 연관관계 설정 * [#44] feat: Repository 및 관련 로직 추가 * [#44] feat: errorcode, successcode 추가 * [#44] feat: 홈페이지 request, response dto 생성 * [#44] feat(ScheduleService): dueDate 관련 로직 구현 * [#44] feat(PerformanceService): 홈페이지 정렬 및 response 생성 로직 구현 * [#44] chore: import문 추가 * [feat] #46 - 회원 예매 조회 GET API 구현 (#48) * [#46] remove(BookingRetrieveRequest): 클래스 삭제 * [#46] refactor(BookingSuccessCode): 회원 예매 조회 성공 메시지 추가 * [#46] refactor(GuestBookingRetrieveResponse): 클래스 명 변경 * [#46] refactor(GuestBookingRetrieveRequest): 안쓰는 코드 주석처리 * [#46] refactor(GuestBookingRetrieveService): 클래스 명 수정으로 인한 리팩토링 * [#46] refactor(SecurityConfig): 토큰 사용하지 않는 api 경로 추가하기 * [#46] refactor(BookingRepository): userId로 예약 정보를 가져오는 JPA 메서드 구현 * [#46] feat(MemberBookingRetrieveResponse): 회원 조회 응답 DTO 생성 * [#46] feat(MemberBookingRetrieveService): 회원 예매 조회 로직을 담당하는 서비스 레이어 구현 * [#46] feat(BookingController): 회원 예매 조회 GET API 구현 * [feat] #49 - 예매자 관리 API 구현 (#51) * [#49] feat: 티켓 관련 success, error code 추가 * [#49] feat(Booking): 입금여부 setter 메소드 추가 * [#49] feat(TicketRetrieveResponse): 예매자 확인 response dto 생성 * [#49] feat(Ticket): 예매자 확인용 티켓 정보 response dto 생성 * [#49] feat(TicketRepository): 예매자 필터링용 메소드 생성 * [#49] feat: 예매자 입금정보 수정 request dto 생성 * [#49] feat(TicketDeleteRequest): 예매자 삭제 request dto 생성 * [#49] feat(TicketService): 예매자 관리 관련 로직 구현 * [#49] feat(TicketController): 예매자 관리 엔드포인트 구현 * [#49] chore: swagger annotation 추가 * HOTFIX(SecurityConfig): WHITELIST 경로명 수정 * [fix] #52 - auth whitelist 수정 (#53) * [#52]fix(SecurityConfig): auth_whitelist 수정 * [#52]fix(SecurityConfig): auth_whitelist 수정 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [feat] #54 - 등록한 공연 목록 조회 GET API 구현 (#55) * [#54] feat(PerformanceSuccessCode): success code 추가 * [#54] feat: 회원이 등록한 공연목록 조회 dto 생성 * [#54] feat(PerformanceService): 회원이 등록한 공연목록 조회 로직 구현 * [#54] feat(PerformanceRepository): 회원이 등록한 공연목록 조회 관련 메소드 추가 * [#54] feat(PerformanceController): 회원이 등록한 공연목록 조회 엔드포인트 생성 * [#54] fix(TicketService): exception error 수정 * [#54] chore(application.yml): yml 수정 * [fix] #58 - dev-ci.yml, prod-ci.yml 환경변수 추가 (#59) * [#58] fix(dev-CI.yml): Dev 서버 CI 워크플로우 수정 * [#58] fix(prod-CI.yml): Prod 서버 CI 워크플로우 수정 * [refactor] #61 - Performance Entity field 추가 (#62) * [#61] refactor(Performance): bankHolder 필드 추가 * [#61] chore(BookingController): swagger annotation 수정 * [feat] #63 - healthCheckController 생성 (#64) * [#63] remove(UsersRepository): 중복 클래스 삭제 * [#63] feat(HealthCheckController): healthcheck 컨트롤러 생성 * [feat] #63 - health check URL 화이트리스트에 등록 (#67) * [#63] remove(UsersRepository): 중복 클래스 삭제 * [#63] feat(HealthCheckController): healthcheck 컨트롤러 생성 * [#63] feat(SecurityConfig): healthcheck url white_list에 등록 * [fix] #57 - entity 연관관계 설정 SecurityConfig 수정 (#65) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [fix] #57 - security 관련 에러 대응 (#71) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 * [#57] fix(JwtAuthenticationFilter): 에러 로직 수정 * fix(SecurityConfig): webSecurityCustomizer 로직 추가 * [fix] #73 - security 수정 (#74) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 * [#57] fix(JwtAuthenticationFilter): 에러 로직 수정 * fix(SecurityConfig): webSecurityCustomizer 로직 추가 * [#57] fix:security 수정 * [#76] fix(SecurityConfig): Base64 인코딩을 하도록 변경 (#77) * [fix] #76 - 누락된 코드 추가 (#79) * [#76] fix(SecurityConfig): Base64 인코딩을 하도록 변경 * [#76] chore(SecurityConfig): 누락된 import문 추가 * [#76] chore(JwtTokenProvider): 누락된 코드 추가 * [#81] fix(JwtTokenProvider): jwtsecret을 인코딩하고 디코딩을 하도록 수정 (#82) * [#85] chore(application.yml): 환경변수 설정 (#86) * [chore] #88 - 레디스 환경변수 추가 (#89) * [#88] chore(dev-CI.yml): dev서버 레디스 환경변수 설정 추가 * [#88] chore(prod-CI.yml): prod 서버 레디스 환경변수 설정 추가 * [deploy] merge to main (#90) * [deploy] merge to main (#83) * [deploy] merge to develop (#27) * [deploy] merge to main (#26) * [#2] chore(.gitignore): .gradle, .idea 파일 삭제 (#3) * [refactor] #4 - 도메인형 디렉터리 구조 변경 및 local, dev, prod 운영 환경 분리 (#5) * [#4] fix: 클래스 첫글자 대문자로 수정 * [#4] remove: enum 삭제 * [#4] feat(BaseSuccessCode): 성공 상태 관리를 위한 인터페이스 생성 * [#4] feat(BaseErrorCode): 에러 상태 관리를 위한 인터페이스 생성 * [#4] refactor: global 패키지로 이동 * [#4] refactor: 서버 운영 환경 분리 * [feat] #6 - dev, prod Dockerfile 분리 및 github Action CI workflow 구현 (#7) * [#6] feat(Dockerfile): prod용 도커 파일 구현 * [#6] feat(Dockerfile-dev): dev용 도커 파일 구현 * [#6] feat(dev-CI.yml): dev용 CI workflow 구현 * [#6] feat(prod-CI.yml): prod용 CI workflow 구현 * [#6] chore(.gitignore): gradle-wrapper.jar 파일은 레포지토리에 포함되도록 설정 * [#6] fix(gradle-wrapper.jar): .gitignore로 누락된 파일 추가 * [#6] chore(build.grade): plain jar 생성 방지 * [#9] docs(README.md): 서비스 소개 README v1 작성 (#10) * [#11] docs(README.md): 리드미 업데이트 (#12) * [feat] #13 - 유저, 예매, 공연, 회차 엔티티 생성 (#15) * [#13] feat(Users): 사용자 엔티티 생성 * [#13] feat(Genre): 장르 열거형 생성 * [#13] feat(BankName): 은행명 열거형 생성 * [#13] refactor(BaseTimeEntity): 업데이트 시간 관리 필드 활성화 * [#13] feat(Performance): 공연 엔티티 생성 * [#13] feat(ScheduleNumber): 회차 번호 열거형 생성 * [#13] feat(Schedule): 회차 엔티티 생성 * [#13] feat(Booking): 예매 엔티티 생성 * [#13] refactor(ScheduleNumber): 네이밍 수정 * [feat] #14 - 회원, 홍보, 등장인물, 스태프 엔티티 생성 (#16) * [#14] feat(Member): 멤버 엔티티 생성 * [#14] feat(Promotion): 홍보 엔티티 생성 * [#14] feat(Cast): 등장인물 엔티티 생성 * [#14] feat(Staff): 스태프 엔티티 생성 * [feat] #13 - 유저, 예매, 공연, 회차 엔티티 생성 (#15) * [#13] feat(Users): 사용자 엔티티 생성 * [#13] feat(Genre): 장르 열거형 생성 * [#13] feat(BankName): 은행명 열거형 생성 * [#13] refactor(BaseTimeEntity): 업데이트 시간 관리 필드 활성화 * [#13] feat(Performance): 공연 엔티티 생성 * [#13] feat(ScheduleNumber): 회차 번호 열거형 생성 * [#13] feat(Schedule): 회차 엔티티 생성 * [#13] feat(Booking): 예매 엔티티 생성 * [#13] refactor(ScheduleNumber): 네이밍 수정 * [#14} fix: 스태프, 등장인물, 홍보 엔티티 상속관계 수정 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [#18] feat(Jenkinsfile): 젠킨스 파일 생성 (#19) * [#20] refactor(Jenkinsfile): 젠킨스 파일 Webhook 테스트용 커밋 (#21) * [#22] feat(Jenkinsfile): Jenkins multibranch 스크립트 작성 (#23) * HOTFIX(Jenkinsfile): Jenkins multibranch 스크립트 수정 * HOTFIX(workflows): 빌드 후 젠킨스 배포가 진행되도록 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * [#24] feat(Jenkinsfile): slack 연동 스크립트 작성 (#25) --------- Co-authored-by: hyerinhwang-sailin * HOTFIX(workflow): 오타 수정 --------- Co-authored-by: hyerinhwang-sailin * [feat] #28 - 비회원 예매 조회 POST API 구현 (#29) * chore(application-dev.yml): dialect 추가 * chore(application-prod.yml): dialect 추가 * [#28] chore(build.gradle): security 의존성 비활성화 - security 일시적으로 비활성화 * [#28] refactor(Booking): 예매 엔티티에 빌더 및 정적팩토리 메서드 추가 * [#28] refactor(ErrorResponse): 정적 팩토리 메서드 네이밍 변환 * [#28] refactor(Schedule): 회차 엔티티에 빌더 및 정적 팩토리 메서드 추가 * [#28] refactor(Performance): 공연 엔티티에 빌더 및 정적 팩토리 메서드 추가 * [#28] refactor(SuccessResponse): 정적 팩토리 메서드 네이밍 변환 * [#28] refactor(GlobalExceptionHandler): INTERNAL_SERVER_ERROR 핸들러 메서드 추가 * [#28] feat(BookingSuccessCode): 예매 성공 메시지를 관리하는 열거형 생성 * [#28] feat(BookingErrorCode): 예매 에러 메시지를 관리하는 열거형 생성 * [#28] feat(BookingRetrieveResponse): 예매 조회 응답 DTO 생성 * [#28] feat(BookingRetrieveRequest): 예매 조회 요청 DTO 생성 * [#28] feat(BookingRepository): 예매 레포지토리 생성 및 비회원 예매 조회 시 예매 내역 가져오는 메서드 구현 * [#28] feat(BookingService): 예매 서비스 레이어 생성 및 비회원 조회 메서드 구현 * [#28] feat(BookingController): 예매 컨트롤러 생성 및 비회원 예매조회 POST API 구현 * [feat] #30 - SwaggerConfig 및 WebConfig 구현 (#31) * [#30] chore(build.gradle): springdoc 의존성 추가 * [#30] feat(SwaggerConfig): SwaggerConfig 추가 * [#30] feat(WebConfig): WebConfig 추가 * HOTFIX(workflows): push 이벤트 시 github action이 빌드 되지 않도록 수정 * HOTFIX(Jenkinsfile): 포트 수정 * [feat] #32 - 티켓 예매 가능 여부 GET API 구현 (#33) * [#32] refactor(BookingController): 메서드명 수정 * [#32] feat(ConflictException): Conflict 409에러 클래스 생성 * [#32] feat(GlobalExceptionHandler): ConflictException 등록 * [#32] feat(TicketAvailabilityRequest): TicketAvailabilityRequest DTO 생성 * [#32] feat(TicketAvailabilityResponse): TicketAvailabilityResponse DTO 생성 * [#32] feat(ScheduleSuccessCode): ScheduleSuccessCode 열거형 생성 * [#32] feat(ScheduleErrorCode): ScheduleErrorCode 열거형 생성 * [#32] feat(ScheduleRepository): ScheduleRepository 생성 * [#32] feat(ScheduleService): ScheduleService 생성 및 회차별 티켓 구매 가능 여부 판단 메서드 구현 * [#32] feat(ScheduleController): 회차별 티켓 수량 조회 GET API 구현 * [feat] #17 - 카카오 소셜 로그인 API 구현 (#36) * [#17] feat(build.gradle): jwt, security, open feign, Redis 의존성 추가 * [#17] feat(BeatApplication): OpenFeign 관련 어노테이션 추가 * [#17] feat(RedisConfig): redis 설정 * [#17] feat: redis 활용 jwt 토큰 생성 로직 구현 * [#17] feat(SecurityConfig): security 설정 * [#17] refactor: Member, Users 엔티티 수정 및 관련 enum 추가 * [#17] feat: Member, Users 도메인 관련 인증 로직 구현 * [#17] feat(MemberController): Member 관련 API 엔드포인트 구현 * [#17] feat: Security 관련 인증 객체 구현 * [#17] feat: 소셜로그인 로직 구현 * [#17] fix: 소셜로그인 오류 해결 * [#17] refactor: 코드리뷰 반영 * [#17] refactor: 코드리뷰 반영 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [feat] #34 - 비회원 예매 POST API 구현 (#35) * [#34] feat(Users): 빌더 및 정적 팩토리 메서드 추가 * [#34] feat(Entity): 엔티티 id 필드 수정 * [#34] refactor(application.yml): dialect 추가 * [#34] refactor(ScheduleService): 네이밍 수정 * [#34] refactor(BookingSuccessCode): 비회원 예매 조회 성공 메시지 추가 * [#34] feat(GuestBookingRequest): 비회원 예매 요청 DTO 생성 * [#34] feat(GuestBookingResponse): 비회원 예매 응답 DTO 생성 * [#34] refactor(BookingRetrieveService): 네이밍 수정 * [#34] feat(PerformanceRepository): 공연 레포지토리 생성 * [#34] feat(UserRepository): 유저 레포지토리 생성 * [#34] refactor(BookingRepository): 비회원 예매 시 네가지 정보가 모두 일치 해야만 다른 유저로 판단하는 메서드 구현 * [#34] refactor(ScheduleRepository): 비관적 락 적용 * [#34] feat(GuestBookingService): 비관적 락을 이용해 비회원 예매 로직 구현 * [#34] feat(BookingController): 비회원 예매 POST API 구현 * [#34] test(GuestBookingServiceConcurrencyTest): 동시성 테스트 구현 * [Refactor] #37 - 카카오 로그인 API response 수정 (#39) * [#37] rename: 빈 충돌 해결 위해 UserRepository를 UsersRepository로 rename * [#37] refactor: login response에서 refreshToken을 cookie에 담아주도록 변경 * [#37] fix: dao, repository 충돌 해결 * [#37] refactor: 어노테이션 수정 * [feat] #40 - 소개 관련 공연 정보 조회 GET API 구현 (#41) * [#40] feat: repository 추가 * [#40] feat: 공연 관련 성공, 실패 메세지 추가 * [#40] feat(PerformanceDetailResponse): 공연 상세페이지 조회 응답 dto * [#40] feat(PerformanceService): 공연 상세페이지 조회 로직 구현 * [#40] feat(PerformanceController): 공연 상세페이지 엔드포인트 구현 * [#40] feat(SecurityConfig): auth whitelist update * [#40] refactor: dto 분리 및 rename * [feat] #42 - 예매 관련 공연 정보 GET API 구현 (#43) * [#42] feat: 예매 관련 정보 조회 dto 생성 * [#42] feat: 예매 관련 정보 조회 성공 메세지 추가 * [#42] feat(ScheduleService): 잔여티켓계산, 예매가능여부확인, 예매가능여부 update 메소드 구현 * [#42] feat(PerformanceService): 예매관련공연정보의 response 생성하는 로직 구현 * [#42] feat(PerformanceController): 예매관련공연정보 조회 엔드포인트 구현 * [#42] feat(SecurityConfig): auth_whitelist update * [#42] refactor(ScheduleService): findTicketAvailability에서 getAvailableTicketCount method 사용하도록 수정 * [feat] #38 - 회원 예매 POST API 구현 (#45) * [#38] fix(Cast): Join 하는 부분 수정 및 빌더와 정적 팩토리 메서드 패턴 도입 * [#38] chore(application.yml): 계층 수정 * [#38] feat: 커스텀 어노테이션 생성 * [#38] fix(UserRepository): 중복된 클래스 삭제 * [#38] feat(UserErrorCode): 유저의 에러 메시지를 관리하는 열거형 생성 * [#38] refactor(MemberErrorCode): message 목적에 맞게 변경 * [#38] refactor(BookingSuccessCode): 회원 예매 성공 메시지 추가 * [#38] feat: 커스텀 어노테이션 생성 커밋에 누락된 클래스 추가 * [#38] refactor(GuestBookingService): schedule에서 바로 get 하도록 수정 * [#38] test(GuestBookingServiceConcurrencyTest): import문 경로명 변경 * [#38] refactor(MemberService): @Transactional 어노테이션이 필요한 메서드에 해당 옵션 추가 * [#38] feat(MemberBookingRequest): 회원 예매 요청 DTO 생성 * [#38] feat(MemberBookingResponse): 회원 예매 응답 DTO 생성 * [#38] refactor(MemberController): refreshToken을 쿠키에 넣어주도록 구현 * [#38] feat(MemberBookingService): 회원 예매 서비스 로직 구현 * [#38] feat(BookingController): 회원 예매 요청 POST API 구현 * [#38] fix: 빌드 안되는 부분 수정 * [#38] remove(MemberBookingService): 사용하지 않는 import문 삭제 * [#38] refactor: 커스텀 어노테이션 이름 수정 * [feat] #44 - 홈페이지 공연 및 홍보 조회 GET API 구현 (#47) * [#44] refactor: 코드리뷰 반영 * [#44] fix(Promotion): 기본키 이름 수정, performanceId 연관관계 설정 * [#44] feat: Repository 및 관련 로직 추가 * [#44] feat: errorcode, successcode 추가 * [#44] feat: 홈페이지 request, response dto 생성 * [#44] feat(ScheduleService): dueDate 관련 로직 구현 * [#44] feat(PerformanceService): 홈페이지 정렬 및 response 생성 로직 구현 * [#44] chore: import문 추가 * [feat] #46 - 회원 예매 조회 GET API 구현 (#48) * [#46] remove(BookingRetrieveRequest): 클래스 삭제 * [#46] refactor(BookingSuccessCode): 회원 예매 조회 성공 메시지 추가 * [#46] refactor(GuestBookingRetrieveResponse): 클래스 명 변경 * [#46] refactor(GuestBookingRetrieveRequest): 안쓰는 코드 주석처리 * [#46] refactor(GuestBookingRetrieveService): 클래스 명 수정으로 인한 리팩토링 * [#46] refactor(SecurityConfig): 토큰 사용하지 않는 api 경로 추가하기 * [#46] refactor(BookingRepository): userId로 예약 정보를 가져오는 JPA 메서드 구현 * [#46] feat(MemberBookingRetrieveResponse): 회원 조회 응답 DTO 생성 * [#46] feat(MemberBookingRetrieveService): 회원 예매 조회 로직을 담당하는 서비스 레이어 구현 * [#46] feat(BookingController): 회원 예매 조회 GET API 구현 * [feat] #49 - 예매자 관리 API 구현 (#51) * [#49] feat: 티켓 관련 success, error code 추가 * [#49] feat(Booking): 입금여부 setter 메소드 추가 * [#49] feat(TicketRetrieveResponse): 예매자 확인 response dto 생성 * [#49] feat(Ticket): 예매자 확인용 티켓 정보 response dto 생성 * [#49] feat(TicketRepository): 예매자 필터링용 메소드 생성 * [#49] feat: 예매자 입금정보 수정 request dto 생성 * [#49] feat(TicketDeleteRequest): 예매자 삭제 request dto 생성 * [#49] feat(TicketService): 예매자 관리 관련 로직 구현 * [#49] feat(TicketController): 예매자 관리 엔드포인트 구현 * [#49] chore: swagger annotation 추가 * HOTFIX(SecurityConfig): WHITELIST 경로명 수정 * [fix] #52 - auth whitelist 수정 (#53) * [#52]fix(SecurityConfig): auth_whitelist 수정 * [#52]fix(SecurityConfig): auth_whitelist 수정 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [feat] #54 - 등록한 공연 목록 조회 GET API 구현 (#55) * [#54] feat(PerformanceSuccessCode): success code 추가 * [#54] feat: 회원이 등록한 공연목록 조회 dto 생성 * [#54] feat(PerformanceService): 회원이 등록한 공연목록 조회 로직 구현 * [#54] feat(PerformanceRepository): 회원이 등록한 공연목록 조회 관련 메소드 추가 * [#54] feat(PerformanceController): 회원이 등록한 공연목록 조회 엔드포인트 생성 * [#54] fix(TicketService): exception error 수정 * [#54] chore(application.yml): yml 수정 * [fix] #58 - dev-ci.yml, prod-ci.yml 환경변수 추가 (#59) * [#58] fix(dev-CI.yml): Dev 서버 CI 워크플로우 수정 * [#58] fix(prod-CI.yml): Prod 서버 CI 워크플로우 수정 * [refactor] #61 - Performance Entity field 추가 (#62) * [#61] refactor(Performance): bankHolder 필드 추가 * [#61] chore(BookingController): swagger annotation 수정 * [feat] #63 - healthCheckController 생성 (#64) * [#63] remove(UsersRepository): 중복 클래스 삭제 * [#63] feat(HealthCheckController): healthcheck 컨트롤러 생성 * [feat] #63 - health check URL 화이트리스트에 등록 (#67) * [#63] remove(UsersRepository): 중복 클래스 삭제 * [#63] feat(HealthCheckController): healthcheck 컨트롤러 생성 * [#63] feat(SecurityConfig): healthcheck url white_list에 등록 * [fix] #57 - entity 연관관계 설정 SecurityConfig 수정 (#65) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [fix] #57 - security 관련 에러 대응 (#71) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 * [#57] fix(JwtAuthenticationFilter): 에러 로직 수정 * fix(SecurityConfig): webSecurityCustomizer 로직 추가 * [fix] #73 - security 수정 (#74) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 * [#57] fix(JwtAuthenticationFilter): 에러 로직 수정 * fix(SecurityConfig): webSecurityCustomizer 로직 추가 * [#57] fix:security 수정 * [#76] fix(SecurityConfig): Base64 인코딩을 하도록 변경 (#77) * [fix] #76 - 누락된 코드 추가 (#79) * [#76] fix(SecurityConfig): Base64 인코딩을 하도록 변경 * [#76] chore(SecurityConfig): 누락된 import문 추가 * [#76] chore(JwtTokenProvider): 누락된 코드 추가 * [#81] fix(JwtTokenProvider): jwtsecret을 인코딩하고 디코딩을 하도록 수정 (#82) --------- Co-authored-by: hyerinhwang-sailin * [deploy] merge to main (#87) * [deploy] merge to develop (#27) * [deploy] merge to main (#26) * [#2] chore(.gitignore): .gradle, .idea 파일 삭제 (#3) * [refactor] #4 - 도메인형 디렉터리 구조 변경 및 local, dev, prod 운영 환경 분리 (#5) * [#4] fix: 클래스 첫글자 대문자로 수정 * [#4] remove: enum 삭제 * [#4] feat(BaseSuccessCode): 성공 상태 관리를 위한 인터페이스 생성 * [#4] feat(BaseErrorCode): 에러 상태 관리를 위한 인터페이스 생성 * [#4] refactor: global 패키지로 이동 * [#4] refactor: 서버 운영 환경 분리 * [feat] #6 - dev, prod Dockerfile 분리 및 github Action CI workflow 구현 (#7) * [#6] feat(Dockerfile): prod용 도커 파일 구현 * [#6] feat(Dockerfile-dev): dev용 도커 파일 구현 * [#6] feat(dev-CI.yml): dev용 CI workflow 구현 * [#6] feat(prod-CI.yml): prod용 CI workflow 구현 * [#6] chore(.gitignore): gradle-wrapper.jar 파일은 레포지토리에 포함되도록 설정 * [#6] fix(gradle-wrapper.jar): .gitignore로 누락된 파일 추가 * [#6] chore(build.grade): plain jar 생성 방지 * [#9] docs(README.md): 서비스 소개 README v1 작성 (#10) * [#11] docs(README.md): 리드미 업데이트 (#12) * [feat] #13 - 유저, 예매, 공연, 회차 엔티티 생성 (#15) * [#13] feat(Users): 사용자 엔티티 생성 * [#13] feat(Genre): 장르 열거형 생성 * [#13] feat(BankName): 은행명 열거형 생성 * [#13] refactor(BaseTimeEntity): 업데이트 시간 관리 필드 활성화 * [#13] feat(Performance): 공연 엔티티 생성 * [#13] feat(ScheduleNumber): 회차 번호 열거형 생성 * [#13] feat(Schedule): 회차 엔티티 생성 * [#13] feat(Booking): 예매 엔티티 생성 * [#13] refactor(ScheduleNumber): 네이밍 수정 * [feat] #14 - 회원, 홍보, 등장인물, 스태프 엔티티 생성 (#16) * [#14] feat(Member): 멤버 엔티티 생성 * [#14] feat(Promotion): 홍보 엔티티 생성 * [#14] feat(Cast): 등장인물 엔티티 생성 * [#14] feat(Staff): 스태프 엔티티 생성 * [feat] #13 - 유저, 예매, 공연, 회차 엔티티 생성 (#15) * [#13] feat(Users): 사용자 엔티티 생성 * [#13] feat(Genre): 장르 열거형 생성 * [#13] feat(BankName): 은행명 열거형 생성 * [#13] refactor(BaseTimeEntity): 업데이트 시간 관리 필드 활성화 * [#13] feat(Performance): 공연 엔티티 생성 * [#13] feat(ScheduleNumber): 회차 번호 열거형 생성 * [#13] feat(Schedule): 회차 엔티티 생성 * [#13] feat(Booking): 예매 엔티티 생성 * [#13] refactor(ScheduleNumber): 네이밍 수정 * [#14} fix: 스태프, 등장인물, 홍보 엔티티 상속관계 수정 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [#18] feat(Jenkinsfile): 젠킨스 파일 생성 (#19) * [#20] refactor(Jenkinsfile): 젠킨스 파일 Webhook 테스트용 커밋 (#21) * [#22] feat(Jenkinsfile): Jenkins multibranch 스크립트 작성 (#23) * HOTFIX(Jenkinsfile): Jenkins multibranch 스크립트 수정 * HOTFIX(workflows): 빌드 후 젠킨스 배포가 진행되도록 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * [#24] feat(Jenkinsfile): slack 연동 스크립트 작성 (#25) --------- Co-authored-by: hyerinhwang-sailin * HOTFIX(workflow): 오타 수정 --------- Co-authored-by: hyerinhwang-sailin * [feat] #28 - 비회원 예매 조회 POST API 구현 (#29) * chore(application-dev.yml): dialect 추가 * chore(application-prod.yml): dialect 추가 * [#28] chore(build.gradle): security 의존성 비활성화 - security 일시적으로 비활성화 * [#28] refactor(Booking): 예매 엔티티에 빌더 및 정적팩토리 메서드 추가 * [#28] refactor(ErrorResponse): 정적 팩토리 메서드 네이밍 변환 * [#28] refactor(Schedule): 회차 엔티티에 빌더 및 정적 팩토리 메서드 추가 * [#28] refactor(Performance): 공연 엔티티에 빌더 및 정적 팩토리 메서드 추가 * [#28] refactor(SuccessResponse): 정적 팩토리 메서드 네이밍 변환 * [#28] refactor(GlobalExceptionHandler): INTERNAL_SERVER_ERROR 핸들러 메서드 추가 * [#28] feat(BookingSuccessCode): 예매 성공 메시지를 관리하는 열거형 생성 * [#28] feat(BookingErrorCode): 예매 에러 메시지를 관리하는 열거형 생성 * [#28] feat(BookingRetrieveResponse): 예매 조회 응답 DTO 생성 * [#28] feat(BookingRetrieveRequest): 예매 조회 요청 DTO 생성 * [#28] feat(BookingRepository): 예매 레포지토리 생성 및 비회원 예매 조회 시 예매 내역 가져오는 메서드 구현 * [#28] feat(BookingService): 예매 서비스 레이어 생성 및 비회원 조회 메서드 구현 * [#28] feat(BookingController): 예매 컨트롤러 생성 및 비회원 예매조회 POST API 구현 * [feat] #30 - SwaggerConfig 및 WebConfig 구현 (#31) * [#30] chore(build.gradle): springdoc 의존성 추가 * [#30] feat(SwaggerConfig): SwaggerConfig 추가 * [#30] feat(WebConfig): WebConfig 추가 * HOTFIX(workflows): push 이벤트 시 github action이 빌드 되지 않도록 수정 * HOTFIX(Jenkinsfile): 포트 수정 * [feat] #32 - 티켓 예매 가능 여부 GET API 구현 (#33) * [#32] refactor(BookingController): 메서드명 수정 * [#32] feat(ConflictException): Conflict 409에러 클래스 생성 * [#32] feat(GlobalExceptionHandler): ConflictException 등록 * [#32] feat(TicketAvailabilityRequest): TicketAvailabilityRequest DTO 생성 * [#32] feat(TicketAvailabilityResponse): TicketAvailabilityResponse DTO 생성 * [#32] feat(ScheduleSuccessCode): ScheduleSuccessCode 열거형 생성 * [#32] feat(ScheduleErrorCode): ScheduleErrorCode 열거형 생성 * [#32] feat(ScheduleRepository): ScheduleRepository 생성 * [#32] feat(ScheduleService): ScheduleService 생성 및 회차별 티켓 구매 가능 여부 판단 메서드 구현 * [#32] feat(ScheduleController): 회차별 티켓 수량 조회 GET API 구현 * [feat] #17 - 카카오 소셜 로그인 API 구현 (#36) * [#17] feat(build.gradle): jwt, security, open feign, Redis 의존성 추가 * [#17] feat(BeatApplication): OpenFeign 관련 어노테이션 추가 * [#17] feat(RedisConfig): redis 설정 * [#17] feat: redis 활용 jwt 토큰 생성 로직 구현 * [#17] feat(SecurityConfig): security 설정 * [#17] refactor: Member, Users 엔티티 수정 및 관련 enum 추가 * [#17] feat: Member, Users 도메인 관련 인증 로직 구현 * [#17] feat(MemberController): Member 관련 API 엔드포인트 구현 * [#17] feat: Security 관련 인증 객체 구현 * [#17] feat: 소셜로그인 로직 구현 * [#17] fix: 소셜로그인 오류 해결 * [#17] refactor: 코드리뷰 반영 * [#17] refactor: 코드리뷰 반영 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [feat] #34 - 비회원 예매 POST API 구현 (#35) * [#34] feat(Users): 빌더 및 정적 팩토리 메서드 추가 * [#34] feat(Entity): 엔티티 id 필드 수정 * [#34] refactor(application.yml): dialect 추가 * [#34] refactor(ScheduleService): 네이밍 수정 * [#34] refactor(BookingSuccessCode): 비회원 예매 조회 성공 메시지 추가 * [#34] feat(GuestBookingRequest): 비회원 예매 요청 DTO 생성 * [#34] feat(GuestBookingResponse): 비회원 예매 응답 DTO 생성 * [#34] refactor(BookingRetrieveService): 네이밍 수정 * [#34] feat(PerformanceRepository): 공연 레포지토리 생성 * [#34] feat(UserRepository): 유저 레포지토리 생성 * [#34] refactor(BookingRepository): 비회원 예매 시 네가지 정보가 모두 일치 해야만 다른 유저로 판단하는 메서드 구현 * [#34] refactor(ScheduleRepository): 비관적 락 적용 * [#34] feat(GuestBookingService): 비관적 락을 이용해 비회원 예매 로직 구현 * [#34] feat(BookingController): 비회원 예매 POST API 구현 * [#34] test(GuestBookingServiceConcurrencyTest): 동시성 테스트 구현 * [Refactor] #37 - 카카오 로그인 API response 수정 (#39) * [#37] rename: 빈 충돌 해결 위해 UserRepository를 UsersRepository로 rename * [#37] refactor: login response에서 refreshToken을 cookie에 담아주도록 변경 * [#37] fix: dao, repository 충돌 해결 * [#37] refactor: 어노테이션 수정 * [feat] #40 - 소개 관련 공연 정보 조회 GET API 구현 (#41) * [#40] feat: repository 추가 * [#40] feat: 공연 관련 성공, 실패 메세지 추가 * [#40] feat(PerformanceDetailResponse): 공연 상세페이지 조회 응답 dto * [#40] feat(PerformanceService): 공연 상세페이지 조회 로직 구현 * [#40] feat(PerformanceController): 공연 상세페이지 엔드포인트 구현 * [#40] feat(SecurityConfig): auth whitelist update * [#40] refactor: dto 분리 및 rename * [feat] #42 - 예매 관련 공연 정보 GET API 구현 (#43) * [#42] feat: 예매 관련 정보 조회 dto 생성 * [#42] feat: 예매 관련 정보 조회 성공 메세지 추가 * [#42] feat(ScheduleService): 잔여티켓계산, 예매가능여부확인, 예매가능여부 update 메소드 구현 * [#42] feat(PerformanceService): 예매관련공연정보의 response 생성하는 로직 구현 * [#42] feat(PerformanceController): 예매관련공연정보 조회 엔드포인트 구현 * [#42] feat(SecurityConfig): auth_whitelist update * [#42] refactor(ScheduleService): findTicketAvailability에서 getAvailableTicketCount method 사용하도록 수정 * [feat] #38 - 회원 예매 POST API 구현 (#45) * [#38] fix(Cast): Join 하는 부분 수정 및 빌더와 정적 팩토리 메서드 패턴 도입 * [#38] chore(application.yml): 계층 수정 * [#38] feat: 커스텀 어노테이션 생성 * [#38] fix(UserRepository): 중복된 클래스 삭제 * [#38] feat(UserErrorCode): 유저의 에러 메시지를 관리하는 열거형 생성 * [#38] refactor(MemberErrorCode): message 목적에 맞게 변경 * [#38] refactor(BookingSuccessCode): 회원 예매 성공 메시지 추가 * [#38] feat: 커스텀 어노테이션 생성 커밋에 누락된 클래스 추가 * [#38] refactor(GuestBookingService): schedule에서 바로 get 하도록 수정 * [#38] test(GuestBookingServiceConcurrencyTest): import문 경로명 변경 * [#38] refactor(MemberService): @Transactional 어노테이션이 필요한 메서드에 해당 옵션 추가 * [#38] feat(MemberBookingRequest): 회원 예매 요청 DTO 생성 * [#38] feat(MemberBookingResponse): 회원 예매 응답 DTO 생성 * [#38] refactor(MemberController): refreshToken을 쿠키에 넣어주도록 구현 * [#38] feat(MemberBookingService): 회원 예매 서비스 로직 구현 * [#38] feat(BookingController): 회원 예매 요청 POST API 구현 * [#38] fix: 빌드 안되는 부분 수정 * [#38] remove(MemberBookingService): 사용하지 않는 import문 삭제 * [#38] refactor: 커스텀 어노테이션 이름 수정 * [feat] #44 - 홈페이지 공연 및 홍보 조회 GET API 구현 (#47) * [#44] refactor: 코드리뷰 반영 * [#44] fix(Promotion): 기본키 이름 수정, performanceId 연관관계 설정 * [#44] feat: Repository 및 관련 로직 추가 * [#44] feat: errorcode, successcode 추가 * [#44] feat: 홈페이지 request, response dto 생성 * [#44] feat(ScheduleService): dueDate 관련 로직 구현 * [#44] feat(PerformanceService): 홈페이지 정렬 및 response 생성 로직 구현 * [#44] chore: import문 추가 * [feat] #46 - 회원 예매 조회 GET API 구현 (#48) * [#46] remove(BookingRetrieveRequest): 클래스 삭제 * [#46] refactor(BookingSuccessCode): 회원 예매 조회 성공 메시지 추가 * [#46] refactor(GuestBookingRetrieveResponse): 클래스 명 변경 * [#46] refactor(GuestBookingRetrieveRequest): 안쓰는 코드 주석처리 * [#46] refactor(GuestBookingRetrieveService): 클래스 명 수정으로 인한 리팩토링 * [#46] refactor(SecurityConfig): 토큰 사용하지 않는 api 경로 추가하기 * [#46] refactor(BookingRepository): userId로 예약 정보를 가져오는 JPA 메서드 구현 * [#46] feat(MemberBookingRetrieveResponse): 회원 조회 응답 DTO 생성 * [#46] feat(MemberBookingRetrieveService): 회원 예매 조회 로직을 담당하는 서비스 레이어 구현 * [#46] feat(BookingController): 회원 예매 조회 GET API 구현 * [feat] #49 - 예매자 관리 API 구현 (#51) * [#49] feat: 티켓 관련 success, error code 추가 * [#49] feat(Booking): 입금여부 setter 메소드 추가 * [#49] feat(TicketRetrieveResponse): 예매자 확인 response dto 생성 * [#49] feat(Ticket): 예매자 확인용 티켓 정보 response dto 생성 * [#49] feat(TicketRepository): 예매자 필터링용 메소드 생성 * [#49] feat: 예매자 입금정보 수정 request dto 생성 * [#49] feat(TicketDeleteRequest): 예매자 삭제 request dto 생성 * [#49] feat(TicketService): 예매자 관리 관련 로직 구현 * [#49] feat(TicketController): 예매자 관리 엔드포인트 구현 * [#49] chore: swagger annotation 추가 * HOTFIX(SecurityConfig): WHITELIST 경로명 수정 * [fix] #52 - auth whitelist 수정 (#53) * [#52]fix(SecurityConfig): auth_whitelist 수정 * [#52]fix(SecurityConfig): auth_whitelist 수정 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [feat] #54 - 등록한 공연 목록 조회 GET API 구현 (#55) * [#54] feat(PerformanceSuccessCode): success code 추가 * [#54] feat: 회원이 등록한 공연목록 조회 dto 생성 * [#54] feat(PerformanceService): 회원이 등록한 공연목록 조회 로직 구현 * [#54] feat(PerformanceRepository): 회원이 등록한 공연목록 조회 관련 메소드 추가 * [#54] feat(PerformanceController): 회원이 등록한 공연목록 조회 엔드포인트 생성 * [#54] fix(TicketService): exception error 수정 * [#54] chore(application.yml): yml 수정 * [fix] #58 - dev-ci.yml, prod-ci.yml 환경변수 추가 (#59) * [#58] fix(dev-CI.yml): Dev 서버 CI 워크플로우 수정 * [#58] fix(prod-CI.yml): Prod 서버 CI 워크플로우 수정 * [refactor] #61 - Performance Entity field 추가 (#62) * [#61] refactor(Performance): bankHolder 필드 추가 * [#61] chore(BookingController): swagger annotation 수정 * [feat] #63 - healthCheckController 생성 (#64) * [#63] remove(UsersRepository): 중복 클래스 삭제 * [#63] feat(HealthCheckController): healthcheck 컨트롤러 생성 * [feat] #63 - health check URL 화이트리스트에 등록 (#67) * [#63] remove(UsersRepository): 중복 클래스 삭제 * [#63] feat(HealthCheckController): healthcheck 컨트롤러 생성 * [#63] feat(SecurityConfig): healthcheck url white_list에 등록 * [fix] #57 - entity 연관관계 설정 SecurityConfig 수정 (#65) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [fix] #57 - security 관련 에러 대응 (#71) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 * [#57] fix(JwtAuthenticationFilter): 에러 로직 수정 * fix(SecurityConfig): webSecurityCustomizer 로직 추가 * [fix] #73 - security 수정 (#74) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 * [#57] fix(JwtAuthenticationFilter): 에러 로직 수정 * fix(SecurityConfig): webSecurityCustomizer 로직 추가 * [#57] fix:security 수정 * [#76] fix(SecurityConfig): Base64 인코딩을 하도록 변경 (#77) * [fix] #76 - 누락된 코드 추가 (#79) * [#76] fix(SecurityConfig): Base64 인코딩을 하도록 변경 * [#76] chore(SecurityConfig): 누락된 import문 추가 * [#76] chore(JwtTokenProvider): 누락된 코드 추가 * [#81] fix(JwtTokenProvider): jwtsecret을 인코딩하고 디코딩을 하도록 수정 (#82) * [#85] chore(application.yml): 환경변수 설정 (#86) --------- Co-authored-by: hyerinhwang-sailin --------- Co-authored-by: hyerinhwang-sailin * Revert "[deploy] merge to main (#90)" (#91) This reverts commit f519b0c82a2f01d4374eb045b9e90c6303381e50. * [fix] #93 - 누락된 어노테이션 및 누락된 경로명 추가 (#94) * [#93] fix(HealthCheckController): 누락된 어노테이션 추가 * [#93] refactor(SecurityConfig): 누락된 경로명 추가 * [bug] #84 - actuator/health 의존성 및 설정 추가 (#96) * [#84] chore(build.gradle): 의존성 추가 * [#84] chore: health/actuator yml 설정 추가 * [#84] chore: redis yml 설정 추가 * [#84] chore: yml 수정 (#99) * [bug] #101 - yml, s3 수정 (#102) * [#101] chore: yml 수정 * [#101] feat: s3 추가 * HOTIFX: prod ci-yml 수정 * Main redis host yml 수정 (#105) * [deploy] merge to main (#104) * [deploy] merge to develop (#27) * [deploy] merge to main (#26) * [#2] chore(.gitignore): .gradle, .idea 파일 삭제 (#3) * [refactor] #4 - 도메인형 디렉터리 구조 변경 및 local, dev, prod 운영 환경 분리 (#5) * [#4] fix: 클래스 첫글자 대문자로 수정 * [#4] remove: enum 삭제 * [#4] feat(BaseSuccessCode): 성공 상태 관리를 위한 인터페이스 생성 * [#4] feat(BaseErrorCode): 에러 상태 관리를 위한 인터페이스 생성 * [#4] refactor: global 패키지로 이동 * [#4] refactor: 서버 운영 환경 분리 * [feat] #6 - dev, prod Dockerfile 분리 및 github Action CI workflow 구현 (#7) * [#6] feat(Dockerfile): prod용 도커 파일 구현 * [#6] feat(Dockerfile-dev): dev용 도커 파일 구현 * [#6] feat(dev-CI.yml): dev용 CI workflow 구현 * [#6] feat(prod-CI.yml): prod용 CI workflow 구현 * [#6] chore(.gitignore): gradle-wrapper.jar 파일은 레포지토리에 포함되도록 설정 * [#6] fix(gradle-wrapper.jar): .gitignore로 누락된 파일 추가 * [#6] chore(build.grade): plain jar 생성 방지 * [#9] docs(README.md): 서비스 소개 README v1 작성 (#10) * [#11] docs(README.md): 리드미 업데이트 (#12) * [feat] #13 - 유저, 예매, 공연, 회차 엔티티 생성 (#15) * [#13] feat(Users): 사용자 엔티티 생성 * [#13] feat(Genre): 장르 열거형 생성 * [#13] feat(BankName): 은행명 열거형 생성 * [#13] refactor(BaseTimeEntity): 업데이트 시간 관리 필드 활성화 * [#13] feat(Performance): 공연 엔티티 생성 * [#13] feat(ScheduleNumber): 회차 번호 열거형 생성 * [#13] feat(Schedule): 회차 엔티티 생성 * [#13] feat(Booking): 예매 엔티티 생성 * [#13] refactor(ScheduleNumber): 네이밍 수정 * [feat] #14 - 회원, 홍보, 등장인물, 스태프 엔티티 생성 (#16) * [#14] feat(Member): 멤버 엔티티 생성 * [#14] feat(Promotion): 홍보 엔티티 생성 * [#14] feat(Cast): 등장인물 엔티티 생성 * [#14] feat(Staff): 스태프 엔티티 생성 * [feat] #13 - 유저, 예매, 공연, 회차 엔티티 생성 (#15) * [#13] feat(Users): 사용자 엔티티 생성 * [#13] feat(Genre): 장르 열거형 생성 * [#13] feat(BankName): 은행명 열거형 생성 * [#13] refactor(BaseTimeEntity): 업데이트 시간 관리 필드 활성화 * [#13] feat(Performance): 공연 엔티티 생성 * [#13] feat(ScheduleNumber): 회차 번호 열거형 생성 * [#13] feat(Schedule): 회차 엔티티 생성 * [#13] feat(Booking): 예매 엔티티 생성 * [#13] refactor(ScheduleNumber): 네이밍 수정 * [#14} fix: 스태프, 등장인물, 홍보 엔티티 상속관계 수정 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [#18] feat(Jenkinsfile): 젠킨스 파일 생성 (#19) * [#20] refactor(Jenkinsfile): 젠킨스 파일 Webhook 테스트용 커밋 (#21) * [#22] feat(Jenkinsfile): Jenkins multibranch 스크립트 작성 (#23) * HOTFIX(Jenkinsfile): Jenkins multibranch 스크립트 수정 * HOTFIX(workflows): 빌드 후 젠킨스 배포가 진행되도록 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * [#24] feat(Jenkinsfile): slack 연동 스크립트 작성 (#25) --------- Co-authored-by: hyerinhwang-sailin * HOTFIX(workflow): 오타 수정 --------- Co-authored-by: hyerinhwang-sailin * [feat] #28 - 비회원 예매 조회 POST API 구현 (#29) * chore(application-dev.yml): dialect 추가 * chore(application-prod.yml): dialect 추가 * [#28] chore(build.gradle): security 의존성 비활성화 - security 일시적으로 비활성화 * [#28] refactor(Booking): 예매 엔티티에 빌더 및 정적팩토리 메서드 추가 * [#28] refactor(ErrorResponse): 정적 팩토리 메서드 네이밍 변환 * [#28] refactor(Schedule): 회차 엔티티에 빌더 및 정적 팩토리 메서드 추가 * [#28] refactor(Performance): 공연 엔티티에 빌더 및 정적 팩토리 메서드 추가 * [#28] refactor(SuccessResponse): 정적 팩토리 메서드 네이밍 변환 * [#28] refactor(GlobalExceptionHandler): INTERNAL_SERVER_ERROR 핸들러 메서드 추가 * [#28] feat(BookingSuccessCode): 예매 성공 메시지를 관리하는 열거형 생성 * [#28] feat(BookingErrorCode): 예매 에러 메시지를 관리하는 열거형 생성 * [#28] feat(BookingRetrieveResponse): 예매 조회 응답 DTO 생성 * [#28] feat(BookingRetrieveRequest): 예매 조회 요청 DTO 생성 * [#28] feat(BookingRepository): 예매 레포지토리 생성 및 비회원 예매 조회 시 예매 내역 가져오는 메서드 구현 * [#28] feat(BookingService): 예매 서비스 레이어 생성 및 비회원 조회 메서드 구현 * [#28] feat(BookingController): 예매 컨트롤러 생성 및 비회원 예매조회 POST API 구현 * [feat] #30 - SwaggerConfig 및 WebConfig 구현 (#31) * [#30] chore(build.gradle): springdoc 의존성 추가 * [#30] feat(SwaggerConfig): SwaggerConfig 추가 * [#30] feat(WebConfig): WebConfig 추가 * HOTFIX(workflows): push 이벤트 시 github action이 빌드 되지 않도록 수정 * HOTFIX(Jenkinsfile): 포트 수정 * [feat] #32 - 티켓 예매 가능 여부 GET API 구현 (#33) * [#32] refactor(BookingController): 메서드명 수정 * [#32] feat(ConflictException): Conflict 409에러 클래스 생성 * [#32] feat(GlobalExceptionHandler): ConflictException 등록 * [#32] feat(TicketAvailabilityRequest): TicketAvailabilityRequest DTO 생성 * [#32] feat(TicketAvailabilityResponse): TicketAvailabilityResponse DTO 생성 * [#32] feat(ScheduleSuccessCode): ScheduleSuccessCode 열거형 생성 * [#32] feat(ScheduleErrorCode): ScheduleErrorCode 열거형 생성 * [#32] feat(ScheduleRepository): ScheduleRepository 생성 * [#32] feat(ScheduleService): ScheduleService 생성 및 회차별 티켓 구매 가능 여부 판단 메서드 구현 * [#32] feat(ScheduleController): 회차별 티켓 수량 조회 GET API 구현 * [feat] #17 - 카카오 소셜 로그인 API 구현 (#36) * [#17] feat(build.gradle): jwt, security, open feign, Redis 의존성 추가 * [#17] feat(BeatApplication): OpenFeign 관련 어노테이션 추가 * [#17] feat(RedisConfig): redis 설정 * [#17] feat: redis 활용 jwt 토큰 생성 로직 구현 * [#17] feat(SecurityConfig): security 설정 * [#17] refactor: Member, Users 엔티티 수정 및 관련 enum 추가 * [#17] feat: Member, Users 도메인 관련 인증 로직 구현 * [#17] feat(MemberController): Member 관련 API 엔드포인트 구현 * [#17] feat: Security 관련 인증 객체 구현 * [#17] feat: 소셜로그인 로직 구현 * [#17] fix: 소셜로그인 오류 해결 * [#17] refactor: 코드리뷰 반영 * [#17] refactor: 코드리뷰 반영 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [feat] #34 - 비회원 예매 POST API 구현 (#35) * [#34] feat(Users): 빌더 및 정적 팩토리 메서드 추가 * [#34] feat(Entity): 엔티티 id 필드 수정 * [#34] refactor(application.yml): dialect 추가 * [#34] refactor(ScheduleService): 네이밍 수정 * [#34] refactor(BookingSuccessCode): 비회원 예매 조회 성공 메시지 추가 * [#34] feat(GuestBookingRequest): 비회원 예매 요청 DTO 생성 * [#34] feat(GuestBookingResponse): 비회원 예매 응답 DTO 생성 * [#34] refactor(BookingRetrieveService): 네이밍 수정 * [#34] feat(PerformanceRepository): 공연 레포지토리 생성 * [#34] feat(UserRepository): 유저 레포지토리 생성 * [#34] refactor(BookingRepository): 비회원 예매 시 네가지 정보가 모두 일치 해야만 다른 유저로 판단하는 메서드 구현 * [#34] refactor(ScheduleRepository): 비관적 락 적용 * [#34] feat(GuestBookingService): 비관적 락을 이용해 비회원 예매 로직 구현 * [#34] feat(BookingController): 비회원 예매 POST API 구현 * [#34] test(GuestBookingServiceConcurrencyTest): 동시성 테스트 구현 * [Refactor] #37 - 카카오 로그인 API response 수정 (#39) * [#37] rename: 빈 충돌 해결 위해 UserRepository를 UsersRepository로 rename * [#37] refactor: login response에서 refreshToken을 cookie에 담아주도록 변경 * [#37] fix: dao, repository 충돌 해결 * [#37] refactor: 어노테이션 수정 * [feat] #40 - 소개 관련 공연 정보 조회 GET API 구현 (#41) * [#40] feat: repository 추가 * [#40] feat: 공연 관련 성공, 실패 메세지 추가 * [#40] feat(PerformanceDetailResponse): 공연 상세페이지 조회 응답 dto * [#40] feat(PerformanceService): 공연 상세페이지 조회 로직 구현 * [#40] feat(PerformanceController): 공연 상세페이지 엔드포인트 구현 * [#40] feat(SecurityConfig): auth whitelist update * [#40] refactor: dto 분리 및 rename * [feat] #42 - 예매 관련 공연 정보 GET API 구현 (#43) * [#42] feat: 예매 관련 정보 조회 dto 생성 * [#42] feat: 예매 관련 정보 조회 성공 메세지 추가 * [#42] feat(ScheduleService): 잔여티켓계산, 예매가능여부확인, 예매가능여부 update 메소드 구현 * [#42] feat(PerformanceService): 예매관련공연정보의 response 생성하는 로직 구현 * [#42] feat(PerformanceController): 예매관련공연정보 조회 엔드포인트 구현 * [#42] feat(SecurityConfig): auth_whitelist update * [#42] refactor(ScheduleService): findTicketAvailability에서 getAvailableTicketCount method 사용하도록 수정 * [feat] #38 - 회원 예매 POST API 구현 (#45) * [#38] fix(Cast): Join 하는 부분 수정 및 빌더와 정적 팩토리 메서드 패턴 도입 * [#38] chore(application.yml): 계층 수정 * [#38] feat: 커스텀 어노테이션 생성 * [#38] fix(UserRepository): 중복된 클래스 삭제 * [#38] feat(UserErrorCode): 유저의 에러 메시지를 관리하는 열거형 생성 * [#38] refactor(MemberErrorCode): message 목적에 맞게 변경 * [#38] refactor(BookingSuccessCode): 회원 예매 성공 메시지 추가 * [#38] feat: 커스텀 어노테이션 생성 커밋에 누락된 클래스 추가 * [#38] refactor(GuestBookingService): schedule에서 바로 get 하도록 수정 * [#38] test(GuestBookingServiceConcurrencyTest): import문 경로명 변경 * [#38] refactor(MemberService): @Transactional 어노테이션이 필요한 메서드에 해당 옵션 추가 * [#38] feat(MemberBookingRequest): 회원 예매 요청 DTO 생성 * [#38] feat(MemberBookingResponse): 회원 예매 응답 DTO 생성 * [#38] refactor(MemberController): refreshToken을 쿠키에 넣어주도록 구현 * [#38] feat(MemberBookingService): 회원 예매 서비스 로직 구현 * [#38] feat(BookingController): 회원 예매 요청 POST API 구현 * [#38] fix: 빌드 안되는 부분 수정 * [#38] remove(MemberBookingService): 사용하지 않는 import문 삭제 * [#38] refactor: 커스텀 어노테이션 이름 수정 * [feat] #44 - 홈페이지 공연 및 홍보 조회 GET API 구현 (#47) * [#44] refactor: 코드리뷰 반영 * [#44] fix(Promotion): 기본키 이름 수정, performanceId 연관관계 설정 * [#44] feat: Repository 및 관련 로직 추가 * [#44] feat: errorcode, successcode 추가 * [#44] feat: 홈페이지 request, response dto 생성 * [#44] feat(ScheduleService): dueDate 관련 로직 구현 * [#44] feat(PerformanceService): 홈페이지 정렬 및 response 생성 로직 구현 * [#44] chore: import문 추가 * [feat] #46 - 회원 예매 조회 GET API 구현 (#48) * [#46] remove(BookingRetrieveRequest): 클래스 삭제 * [#46] refactor(BookingSuccessCode): 회원 예매 조회 성공 메시지 추가 * [#46] refactor(GuestBookingRetrieveResponse): 클래스 명 변경 * [#46] refactor(GuestBookingRetrieveRequest): 안쓰는 코드 주석처리 * [#46] refactor(GuestBookingRetrieveService): 클래스 명 수정으로 인한 리팩토링 * [#46] refactor(SecurityConfig): 토큰 사용하지 않는 api 경로 추가하기 * [#46] refactor(BookingRepository): userId로 예약 정보를 가져오는 JPA 메서드 구현 * [#46] feat(MemberBookingRetrieveResponse): 회원 조회 응답 DTO 생성 * [#46] feat(MemberBookingRetrieveService): 회원 예매 조회 로직을 담당하는 서비스 레이어 구현 * [#46] feat(BookingController): 회원 예매 조회 GET API 구현 * [feat] #49 - 예매자 관리 API 구현 (#51) * [#49] feat: 티켓 관련 success, error code 추가 * [#49] feat(Booking): 입금여부 setter 메소드 추가 * [#49] feat(TicketRetrieveResponse): 예매자 확인 response dto 생성 * [#49] feat(Ticket): 예매자 확인용 티켓 정보 response dto 생성 * [#49] feat(TicketRepository): 예매자 필터링용 메소드 생성 * [#49] feat: 예매자 입금정보 수정 request dto 생성 * [#49] feat(TicketDeleteRequest): 예매자 삭제 request dto 생성 * [#49] feat(TicketService): 예매자 관리 관련 로직 구현 * [#49] feat(TicketController): 예매자 관리 엔드포인트 구현 * [#49] chore: swagger annotation 추가 * HOTFIX(SecurityConfig): WHITELIST 경로명 수정 * [fix] #52 - auth whitelist 수정 (#53) * [#52]fix(SecurityConfig): auth_whitelist 수정 * [#52]fix(SecurityConfig): auth_whitelist 수정 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [feat] #54 - 등록한 공연 목록 조회 GET API 구현 (#55) * [#54] feat(PerformanceSuccessCode): success code 추가 * [#54] feat: 회원이 등록한 공연목록 조회 dto 생성 * [#54] feat(PerformanceService): 회원이 등록한 공연목록 조회 로직 구현 * [#54] feat(PerformanceRepository): 회원이 등록한 공연목록 조회 관련 메소드 추가 * [#54] feat(PerformanceController): 회원이 등록한 공연목록 조회 엔드포인트 생성 * [#54] fix(TicketService): exception error 수정 * [#54] chore(application.yml): yml 수정 * [fix] #58 - dev-ci.yml, prod-ci.yml 환경변수 추가 (#59) * [#58] fix(dev-CI.yml): Dev 서버 CI 워크플로우 수정 * [#58] fix(prod-CI.yml): Prod 서버 CI 워크플로우 수정 * [refactor] #61 - Performance Entity field 추가 (#62) * [#61] refactor(Performance): bankHolder 필드 추가 * [#61] chore(BookingController): swagger annotation 수정 * [feat] #63 - healthCheckController 생성 (#64) * [#63] remove(UsersRepository): 중복 클래스 삭제 * [#63] feat(HealthCheckController): healthcheck 컨트롤러 생성 * [feat] #63 - health check URL 화이트리스트에 등록 (#67) * [#63] remove(UsersRepository): 중복 클래스 삭제 * [#63] feat(HealthCheckController): healthcheck 컨트롤러 생성 * [#63] feat(SecurityConfig): healthcheck url white_list에 등록 * [fix] #57 - entity 연관관계 설정 SecurityConfig 수정 (#65) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [fix] #57 - security 관련 에러 대응 (#71) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 * [#57] fix(JwtAuthenticationFilter): 에러 로직 수정 * fix(SecurityConfig): webSecurityCustomizer 로직 추가 * [fix] #73 - security 수정 (#74) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 * [#57] fix(JwtAuthenticationFilter): 에러 로직 수정 * fix(SecurityConfig): webSecurityCustomizer 로직 추가 * [#57] fix:security 수정 * [#76] fix(SecurityConfig): Base64 인코딩을 하도록 변경 (#77) * [fix] #76 - 누락된 코드 추가 (#79) * [#76] fix(SecurityConfig): Base64 인코딩을 하도록 변경 * [#76] chore(SecurityConfig): 누락된 import문 추가 * [#76] chore(JwtTokenProvider): 누락된 코드 추가 * [#81] fix(JwtTokenProvider): jwtsecret을 인코딩하고 디코딩을 하도록 수정 (#82) * [#85] chore(application.yml): 환경변수 설정 (#86) * [chore] #88 - 레디스 환경변수 추가 (#89) * [#88] chore(dev-CI.yml): dev서버 레디스 환경변수 설정 추가 * [#88] chore(prod-CI.yml): prod 서버 레디스 환경변수 설정 추가 * [deploy] merge to main (#90) * [deploy] merge to main (#83) * [deploy] merge to develop (#27) * [deploy] merge to main (#26) * [#2] chore(.gitignore): .gradle, .idea 파일 삭제 (#3) * [refactor] #4 - 도메인형 디렉터리 구조 변경 및 local, dev, prod 운영 환경 분리 (#5) * [#4] fix: 클래스 첫글자 대문자로 수정 * [#4] remove: enum 삭제 * [#4] feat(BaseSuccessCode): 성공 상태 관리를 위한 인터페이스 생성 * [#4] feat(BaseErrorCode): 에러 상태 관리를 위한 인터페이스 생성 * [#4] refactor: global 패키지로 이동 * [#4] refactor: 서버 운영 환경 분리 * [feat] #6 - dev, prod Dockerfile 분리 및 github Action CI workflow 구현 (#7) * [#6] feat(Dockerfile): prod용 도커 파일 구현 * [#6] feat(Dockerfile-dev): dev용 도커 파일 구현 * [#6] feat(dev-CI.yml): dev용 CI workflow 구현 * [#6] feat(prod-CI.yml): prod용 CI workflow 구현 * [#6] chore(.gitignore): gradle-wrapper.jar 파일은 레포지토리에 포함되도록 설정 * [#6] fix(gradle-wrapper.jar): .gitignore로 누락된 파일 추가 * [#6] chore(build.grade): plain jar 생성 방지 * [#9] docs(README.md): 서비스 소개 README v1 작성 (#10) * [#11] docs(README.md): 리드미 업데이트 (#12) * [feat] #13 - 유저, 예매, 공연, 회차 엔티티 생성 (#15) * [#13] feat(Users): 사용자 엔티티 생성 * [#13] feat(Genre): 장르 열거형 생성 * [#13] feat(BankName): 은행명 열거형 생성 * [#13] refactor(BaseTimeEntity): 업데이트 시간 관리 필드 활성화 * [#13] feat(Performance): 공연 엔티티 생성 * [#13] feat(ScheduleNumber): 회차 번호 열거형 생성 * [#13] feat(Schedule): 회차 엔티티 생성 * [#13] feat(Booking): 예매 엔티티 생성 * [#13] refactor(ScheduleNumber): 네이밍 수정 * [feat] #14 - 회원, 홍보, 등장인물, 스태프 엔티티 생성 (#16) * [#14] feat(Member): 멤버 엔티티 생성 * [#14] feat(Promotion): 홍보 엔티티 생성 * [#14] feat(Cast): 등장인물 엔티티 생성 * [#14] feat(Staff): 스태프 엔티티 생성 * [feat] #13 - 유저, 예매, 공연, 회차 엔티티 생성 (#15) * [#13] feat(Users): 사용자 엔티티 생성 * [#13] feat(Genre): 장르 열거형 생성 * [#13] feat(BankName): 은행명 열거형 생성 * [#13] refactor(BaseTimeEntity): 업데이트 시간 관리 필드 활성화 * [#13] feat(Performance): 공연 엔티티 생성 * [#13] feat(ScheduleNumber): 회차 번호 열거형 생성 * [#13] feat(Schedule): 회차 엔티티 생성 * [#13] feat(Booking): 예매 엔티티 생성 * [#13] refactor(ScheduleNumber): 네이밍 수정 * [#14} fix: 스태프, 등장인물, 홍보 엔티티 상속관계 수정 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [#18] feat(Jenkinsfile): 젠킨스 파일 생성 (#19) * [#20] refactor(Jenkinsfile): 젠킨스 파일 Webhook 테스트용 커밋 (#21) * [#22] feat(Jenkinsfile): Jenkins multibranch 스크립트 작성 (#23) * HOTFIX(Jenkinsfile): Jenkins multibranch 스크립트 수정 * HOTFIX(workflows): 빌드 후 젠킨스 배포가 진행되도록 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * [#24] feat(Jenkinsfile): slack 연동 스크립트 작성 (#25) --------- Co-authored-by: hyerinhwang-sailin * HOTFIX(workflow): 오타 수정 --------- Co-authored-by: hyerinhwang-sailin * [feat] #28 - 비회원 예매 조회 POST API 구현 (#29) * chore(application-dev.yml): dialect 추가 * chore(application-prod.yml): dialect 추가 * [#28] chore(build.gradle): security 의존성 비활성화 - security 일시적으로 비활성화 * [#28] refactor(Booking): 예매 엔티티에 빌더 및 정적팩토리 메서드 추가 * [#28] refactor(ErrorResponse): 정적 팩토리 메서드 네이밍 변환 * [#28] refactor(Schedule): 회차 엔티티에 빌더 및 정적 팩토리 메서드 추가 * [#28] refactor(Performance): 공연 엔티티에 빌더 및 정적 팩토리 메서드 추가 * [#28] refactor(SuccessResponse): 정적 팩토리 메서드 네이밍 변환 * [#28] refactor(GlobalExceptionHandler): INTERNAL_SERVER_ERROR 핸들러 메서드 추가 * [#28] feat(BookingSuccessCode): 예매 성공 메시지를 관리하는 열거형 생성 * [#28] feat(BookingErrorCode): 예매 에러 메시지를 관리하는 열거형 생성 * [#28] feat(BookingRetrieveResponse): 예매 조회 응답 DTO 생성 * [#28] feat(BookingRetrieveRequest): 예매 조회 요청 DTO 생성 * [#28] feat(BookingRepository): 예매 레포지토리 생성 및 비회원 예매 조회 시 예매 내역 가져오는 메서드 구현 * [#28] feat(BookingService): 예매 서비스 레이어 생성 및 비회원 조회 메서드 구현 * [#28] feat(BookingController): 예매 컨트롤러 생성 및 비회원 예매조회 POST API 구현 * [feat] #30 - SwaggerConfig 및 WebConfig 구현 (#31) * [#30] chore(build.gradle): springdoc 의존성 추가 * [#30] feat(SwaggerConfig): SwaggerConfig 추가 * [#30] feat(WebConfig): WebConfig 추가 * HOTFIX(workflows): push 이벤트 시 github action이 빌드 되지 않도록 수정 * HOTFIX(Jenkinsfile): 포트 수정 * [feat] #32 - 티켓 예매 가능 여부 GET API 구현 (#33) * [#32] refactor(BookingController): 메서드명 수정 * [#32] feat(ConflictException): Conflict 409에러 클래스 생성 * [#32] feat(GlobalExceptionHandler): ConflictException 등록 * [#32] feat(TicketAvailabilityRequest): TicketAvailabilityRequest DTO 생성 * [#32] feat(TicketAvailabilityResponse): TicketAvailabilityResponse DTO 생성 * [#32] feat(ScheduleSuccessCode): ScheduleSuccessCode 열거형 생성 * [#32] feat(ScheduleErrorCode): ScheduleErrorCode 열거형 생성 * [#32] feat(ScheduleRepository): ScheduleRepository 생성 * [#32] feat(ScheduleService): ScheduleService 생성 및 회차별 티켓 구매 가능 여부 판단 메서드 구현 * [#32] feat(ScheduleController): 회차별 티켓 수량 조회 GET API 구현 * [feat] #17 - 카카오 소셜 로그인 API 구현 (#36) * [#17] feat(build.gradle): jwt, security, open feign, Redis 의존성 추가 * [#17] feat(BeatApplication): OpenFeign 관련 어노테이션 추가 * [#17] feat(RedisConfig): redis 설정 * [#17] feat: redis 활용 jwt 토큰 생성 로직 구현 * [#17] feat(SecurityConfig): security 설정 * [#17] refactor: Member, Users 엔티티 수정 및 관련 enum 추가 * [#17] feat: Member, Users 도메인 관련 인증 로직 구현 * [#17] feat(MemberController): Member 관련 API 엔드포인트 구현 * [#17] feat: Security 관련 인증 객체 구현 * [#17] feat: 소셜로그인 로직 구현 * [#17] fix: 소셜로그인 오류 해결 * [#17] refactor: 코드리뷰 반영 * [#17] refactor: 코드리뷰 반영 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [feat] #34 - 비회원 예매 POST API 구현 (#35) * [#34] feat(Users): 빌더 및 정적 팩토리 메서드 추가 * [#34] feat(Entity): 엔티티 id 필드 수정 * [#34] refactor(application.yml): dialect 추가 * [#34] refactor(ScheduleService): 네이밍 수정 * [#34] refactor(BookingSuccessCode): 비회원 예매 조회 성공 메시지 추가 * [#34] feat(GuestBookingRequest): 비회원 예매 요청 DTO 생성 * [#34] feat(GuestBookingResponse): 비회원 예매 응답 DTO 생성 * [#34] refactor(BookingRetrieveService): 네이밍 수정 * [#34] feat(PerformanceRepository): 공연 레포지토리 생성 * [#34] feat(UserRepository): 유저 레포지토리 생성 * [#34] refactor(BookingRepository): 비회원 예매 시 네가지 정보가 모두 일치 해야만 다른 유저로 판단하는 메서드 구현 * [#34] refactor(ScheduleRepository): 비관적 락 적용 * [#34] feat(GuestBookingService): 비관적 락을 이용해 비회원 예매 로직 구현 * [#34] feat(BookingController): 비회원 예매 POST API 구현 * [#34] test(GuestBookingServiceConcurrencyTest): 동시성 테스트 구현 * [Refactor] #37 - 카카오 로그인 API response 수정 (#39) * [#37] rename: 빈 충돌 해결 위해 UserRepository를 UsersRepository로 rename * [#37] refactor: login response에서 refreshToken을 cookie에 담아주도록 변경 * [#37] fix: dao, repository 충돌 해결 * [#37] refactor: 어노테이션 수정 * [feat] #40 - 소개 관련 공연 정보 조회 GET API 구현 (#41) * [#40] feat: repository 추가 * [#40] feat: 공연 관련 성공, 실패 메세지 추가 * [#40] feat(PerformanceDetailResponse): 공연 상세페이지 조회 응답 dto * [#40] feat(PerformanceService): 공연 상세페이지 조회 로직 구현 * [#40] feat(PerformanceController): 공연 상세페이지 엔드포인트 구현 * [#40] feat(SecurityConfig): auth whitelist update * [#40] refactor: dto 분리 및 rename * [feat] #42 - 예매 관련 공연 정보 GET API 구현 (#43) * [#42] feat: 예매 관련 정보 조회 dto 생성 * [#42] feat: 예매 관련 정보 조회 성공 메세지 추가 * [#42] feat(ScheduleService): 잔여티켓계산, 예매가능여부확인, 예매가능여부 update 메소드 구현 * [#42] feat(PerformanceService): 예매관련공연정보의 response 생성하는 로직 구현 * [#42] feat(PerformanceController): 예매관련공연정보 조회 엔드포인트 구현 * [#42] feat(SecurityConfig): auth_whitelist update * [#42] refactor(ScheduleService): findTicketAvailability에서 getAvailableTicketCount method 사용하도록 수정 * [feat] #38 - 회원 예매 POST API 구현 (#45) * [#38] fix(Cast): Join 하는 부분 수정 및 빌더와 정적 팩토리 메서드 패턴 도입 * [#38] chore(application.yml): 계층 수정 * [#38] feat: 커스텀 어노테이션 생성 * [#38] fix(UserRepository): 중복된 클래스 삭제 * [#38] feat(UserErrorCode): 유저의 에러 메시지를 관리하는 열거형 생성 * [#38] refactor(MemberErrorCode): message 목적에 맞게 변경 * [#38] refactor(BookingSuccessCode): 회원 예매 성공 메시지 추가 * [#38] feat: 커스텀 어노테이션 생성 커밋에 누락된 클래스 추가 * [#38] refactor(GuestBookingService): schedule에서 바로 get 하도록 수정 * [#38] test(GuestBookingServiceConcurrencyTest): import문 경로명 변경 * [#38] refactor(MemberService): @Transactional 어노테이션이 필요한 메서드에 해당 옵션 추가 * [#38] feat(MemberBookingRequest): 회원 예매 요청 DTO 생성 * [#38] feat(MemberBookingResponse): 회원 예매 응답 DTO 생성 * [#38] refactor(MemberController): refreshToken을 쿠키에 넣어주도록 구현 * [#38] feat(MemberBookingService): 회원 예매 서비스 로직 구현 * [#38] feat(BookingController): 회원 예매 요청 POST API 구현 * [#38] fix: 빌드 안되는 부분 수정 * [#38] remove(MemberBookingService): 사용하지 않는 import문 삭제 * [#38] refactor: 커스텀 어노테이션 이름 수정 * [feat] #44 - 홈페이지 공연 및 홍보 조회 GET API 구현 (#47) * [#44] refactor: 코드리뷰 반영 * [#44] fix(Promotion): 기본키 이름 수정, performanceId 연관관계 설정 * [#44] feat: Repository 및 관련 로직 추가 * [#44] feat: errorcode, successcode 추가 * [#44] feat: 홈페이지 request, response dto 생성 * [#44] feat(ScheduleService): dueDate 관련 로직 구현 * [#44] feat(PerformanceService): 홈페이지 정렬 및 response 생성 로직 구현 * [#44] chore: import문 추가 * [feat] #46 - 회원 예매 조회 GET API 구현 (#48) * [#46] remove(BookingRetrieveRequest): 클래스 삭제 * [#46] refactor(BookingSuccessCode): 회원 예매 조회 성공 메시지 추가 * [#46] refactor(GuestBookingRetrieveResponse): 클래스 명 변경 * [#46] refactor(GuestBookingRetrieveRequest): 안쓰는 코드 주석처리 * [#46] refactor(GuestBookingRetrieveService): 클래스 명 수정으로 인한 리팩토링 * [#46] refactor(SecurityConfig): 토큰 사용하지 않는 api 경로 추가하기 * [#46] refactor(BookingRepository): userId로 예약 정보를 가져오는 JPA 메서드 구현 * [#46] feat(MemberBookingRetrieveResponse): 회원 조회 응답 DTO 생성 * [#46] feat(MemberBookingRetrieveService): 회원 예매 조회 로직을 담당하는 서비스 레이어 구현 * [#46] feat(BookingController): 회원 예매 조회 GET API 구현 * [feat] #49 - 예매자 관리 API 구현 (#51) * [#49] feat: 티켓 관련 success, error code 추가 * [#49] feat(Booking): 입금여부 setter 메소드 추가 * [#49] feat(TicketRetrieveResponse): 예매자 확인 response dto 생성 * [#49] feat(Ticket): 예매자 확인용 티켓 정보 response dto 생성 * [#49] feat(TicketRepository): 예매자 필터링용 메소드 생성 * [#49] feat: 예매자 입금정보 수정 request dto 생성 * [#49] feat(TicketDeleteRequest): 예매자 삭제 request dto 생성 * [#49] feat(TicketService): 예매자 관리 관련 로직 구현 * [#49] feat(TicketController): 예매자 관리 엔드포인트 구현 * [#49] chore: swagger annotation 추가 * HOTFIX(SecurityConfig): WHITELIST 경로명 수정 * [fix] #52 - auth whitelist 수정 (#53) * [#52]fix(SecurityConfig): auth_whitelist 수정 * [#52]fix(SecurityConfig): auth_whitelist 수정 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [feat] #54 - 등록한 공연 목록 조회 GET API 구현 (#55) * [#54] feat(PerformanceSuccessCode): success code 추가 * [#54] feat: 회원이 등록한 공연목록 조회 dto 생성 * [#54] feat(PerformanceService): 회원이 등록한 공연목록 조회 로직 구현 * [#54] feat(PerformanceRepository): 회원이 등록한 공연목록 조회 관련 메소드 추가 * [#54] feat(PerformanceController): 회원이 등록한 공연목록 조회 엔드포인트 생성 * [#54] fix(TicketService): exception error 수정 * [#54] chore(application.yml): yml 수정 * [fix] #58 - dev-ci.yml, prod-ci.yml 환경변수 추가 (#59) * [#58] fix(dev-CI.yml): Dev 서버 CI 워크플로우 수정 * [#58] fix(prod-CI.yml): Prod 서버 CI 워크플로우 수정 * [refactor] #61 - Performance Entity field 추가 (#62) * [#61] refactor(Performance): bankHolder 필드 추가 * [#61] chore(BookingController): swagger annotation 수정 * [feat] #63 - healthCheckController 생성 (#64) * [#63] remove(UsersRepository): 중복 클래스 삭제 * [#63] feat(HealthCheckController): healthcheck 컨트롤러 생성 * [feat] #63 - health check URL 화이트리스트에 등록 (#67) * [#63] remove(UsersRepository): 중복 클래스 삭제 * [#63] feat(HealthCheckController): healthcheck 컨트롤러 생성 * [#63] feat(SecurityConfig): healthcheck url white_list에 등록 * [fix] #57 - entity 연관관계 설정 SecurityConfig 수정 (#65) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [fix] #57 - security 관련 에러 대응 (#71) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 * [#57] fix(JwtAuthenticationFilter): 에러 로직 수정 * fix(SecurityConfig): webSecurityCustomizer 로직 추가 * [fix] #73 - security 수정 (#74) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 * [#57] fix(JwtAuthenticationFilter): 에러 로직 수정 * fix(SecurityConfig): webSecurityCustomizer 로직 추가 * [#57] fix:security 수정 * [#76] fix(SecurityConfig): Base64 인코딩을 하도록 변경 (#77) * [fix] #76 - 누락된 코드 추가 (#79) * [#76] fix(SecurityConfig): Base64 인코딩을 하도록 변경 * [#76] chore(SecurityConfig): 누락된 import문 추가 * [#76] chore(JwtTokenProvider): 누락된 코드 추가 * [#81] fix(JwtTokenProvider): jwtsecret을 인코딩하고 디코딩을 하도록 수정 (#82) --------- Co-authored-by: hyerinhwang-sailin * [deploy] merge to main (#87) * [deploy] merge to develop (#27) * [deploy] merge to main (#26) * [#2] chore(.gitignore): .gradle, .idea 파일 삭제 (#3) * [refactor] #4 - 도메인형 디렉터리 구조 변경 및 local, dev, prod 운영 환경 분리 (#5) * [#4] fix: 클래스 첫글자 대문자로 수정 * [#4] remove: enum 삭제 * [#4] feat(BaseSuccessCode): 성공 상태 관리를 위한 인터페이스 생성 * [#4] feat(BaseErrorCode): 에러 상태 관리를 위한 인터페이스 생성 * [#4] refactor: global 패키지로 이동 * [#4] refactor: 서버 운영 환경 분리 * [feat] #6 - dev, prod Dockerfile 분리 및 github Action CI workflow 구현 (#7) * [#6] feat(Dockerfile): prod용 도커 파일 구현 * [#6] feat(Dockerfile-dev): dev용 도커 파일 구현 * [#6] feat(dev-CI.yml): dev용 CI workflow 구현 * [#6] feat(prod-CI.yml): prod용 CI workflow 구현 * [#6] chore(.gitignore): gradle-wrapper.jar 파일은 레포지토리에 포함되도록 설정 * [#6] fix(gradle-wrapper.jar): .gitignore로 누락된 파일 추가 * [#6] chore(build.grade): plain jar 생성 방지 * [#9] docs(README.md): 서비스 소개 README v1 작성 (#10) * [#11] docs(README.md): 리드미 업데이트 (#12) * [feat] #13 - 유저, 예매, 공연, 회차 엔티티 생성 (#15) * [#13] feat(Users): 사용자 엔티티 생성 * [#13] feat(Genre): 장르 열거형 생성 * [#13] feat(BankName): 은행명 열거형 생성 * [#13] refactor(BaseTimeEntity): 업데이트 시간 관리 필드 활성화 * [#13] feat(Performance): 공연 엔티티 생성 * [#13] feat(ScheduleNumber): 회차 번호 열거형 생성 * [#13] feat(Schedule): 회차 엔티티 생성 * [#13] feat(Booking): 예매 엔티티 생성 * [#13] refactor(ScheduleNumber): 네이밍 수정 * [feat] #14 - 회원, 홍보, 등장인물, 스태프 엔티티 생성 (#16) * [#14] feat(Member): 멤버 엔티티 생성 * [#14] feat(Promotion): 홍보 엔티티 생성 * [#14] feat(Cast): 등장인물 엔티티 생성 * [#14] feat(Staff): 스태프 엔티티 생성 * [feat] #13 - 유저, 예매, 공연, 회차 엔티티 생성 (#15) * [#13] feat(Users): 사용자 엔티티 생성 * [#13] feat(Genre): 장르 열거형 생성 * [#13] feat(BankName): 은행명 열거형 생성 * [#13] refactor(BaseTimeEntity): 업데이트 시간 관리 필드 활성화 * [#13] feat(Performance): 공연 엔티티 생성 * [#13] feat(ScheduleNumber): 회차 번호 열거형 생성 * [#13] feat(Schedule): 회차 엔티티 생성 * [#13] feat(Booking): 예매 엔티티 생성 * [#13] refactor(ScheduleNumber): 네이밍 수정 * [#14} fix: 스태프, 등장인물, 홍보 엔티티 상속관계 수정 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [#18] feat(Jenkinsfile): 젠킨스 파일 생성 (#19) * [#20] refactor(Jenkinsfile): 젠킨스 파일 Webhook 테스트용 커밋 (#21) * [#22] feat(Jenkinsfile): Jenkins multibranch 스크립트 작성 (#23) * HOTFIX(Jenkinsfile): Jenkins multibranch 스크립트 수정 * HOTFIX(workflows): 빌드 후 젠킨스 배포가 진행되도록 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * [#24] feat(Jenkinsfile): slack 연동 스크립트 작성 (#25) --------- Co-authored-by: hyerinhwang-sailin * HOTFIX(workflow): 오타 수정 --------- Co-authored-by: hyerinhwang-sailin * [feat] #28 - 비회원 예매 조회 POST API 구현 (#29) * chore(application-dev.yml): dialect 추가 * chore(application-prod.yml): dialect 추가 * [#28] chore(build.gradle): security 의존성 비활성화 - security 일시적으로 비활성화 * [#28] refactor(Booking): 예매 엔티티에 빌더 및 정적팩토리 메서드 추가 * [#28] refactor(ErrorResponse): 정적 팩토리 메서드 네이밍 변환 * [#28] refactor(Schedule): 회차 엔티티에 빌더 및 정적 팩토리 메서드 추가 * [#28] refactor(Performance): 공연 엔티티에 빌더 및 정적 팩토리 메서드 추가 * [#28] refactor(SuccessResponse): 정적 팩토리 메서드 네이밍 변환 * [#28] refactor(GlobalExceptionHandler): INTERNAL_SERVER_ERROR 핸들러 메서드 추가 * [#28] feat(BookingSuccessCode): 예매 성공 메시지를 관리하는 열거형 생성 * [#28] feat(BookingErrorCode): 예매 에러 메시지를 관리하는 열거형 생성 * [#28] feat(BookingRetrieveResponse): 예매 조회 응답 DTO 생성 * [#28] feat(BookingRetrieveRequest): 예매 조회 요청 DTO 생성 * [#28] feat(BookingRepository): 예매 레포지토리 생성 및 비회원 예매 조회 시 예매 내역 가져오는 메서드 구현 * [#28] feat(BookingService): 예매 서비스 레이어 생성 및 비회원 조회 메서드 구현 * [#28] feat(BookingController): 예매 컨트롤러 생성 및 비회원 예매조회 POST API 구현 * [feat] #30 - SwaggerConfig 및 WebConfig 구현 (#31) * [#30] chore(build.gradle): springdoc 의존성 추가 * [#30] feat(SwaggerConfig): SwaggerConfig 추가 * [#30] feat(WebConfig): WebConfig 추가 * HOTFIX(workflows): push 이벤트 시 github action이 빌드 되지 않도록 수정 * HOTFIX(Jenkinsfile): 포트 수정 * [feat] #32 - 티켓 예매 가능 여부 GET API 구현 (#33) * [#32] refactor(BookingController): 메서드명 수정 * [#32] feat(ConflictException): Conflict 409에러 클래스 생성 * [#32] feat(GlobalExceptionHandler): ConflictException 등록 * [#32] feat(TicketAvailabilityRequest): TicketAvailabilityRequest DTO 생성 * [#32] feat(TicketAvailabilityResponse): TicketAvailabilityResponse DTO 생성 * [#32] feat(ScheduleSuccessCode): ScheduleSuccessCode 열거형 생성 * [#32] feat(ScheduleErrorCode): ScheduleErrorCode 열거형 생성 * [#32] feat(ScheduleRepository): ScheduleRepository 생성 * [#32] feat(ScheduleService): ScheduleService 생성 및 회차별 티켓 구매 가능 여부 판단 메서드 구현 * [#32] feat(ScheduleController): 회차별 티켓 수량 조회 GET API 구현 * [feat] #17 - 카카오 소셜 로그인 API 구현 (#36) * [#17] feat(build.gradle): jwt, security, open feign, Redis 의존성 추가 * [#17] feat(BeatApplication): OpenFeign 관련 어노테이션 추가 * [#17] feat(RedisConfig): redis 설정 * [#17] feat: redis 활용 jwt 토큰 생성 로직 구현 * [#17] feat(SecurityConfig): security 설정 * [#17] refactor: Member, Users 엔티티 수정 및 관련 enum 추가 * [#17] feat: Member, Users 도메인 관련 인증 로직 구현 * [#17] feat(MemberController): Member 관련 API 엔드포인트 구현 * [#17] feat: Security 관련 인증 객체 구현 * [#17] feat: 소셜로그인 로직 구현 * [#17] fix: 소셜로그인 오류 해결 * [#17] refactor: 코드리뷰 반영 * [#17] refactor: 코드리뷰 반영 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [feat] #34 - 비회원 예매 POST API 구현 (#35) * [#34] feat(Users): 빌더 및 정적 팩토리 메서드 추가 * [#34] feat(Entity): 엔티티 id 필드 수정 * [#34] refactor(application.yml): dialect 추가 * [#34] refactor(ScheduleService): 네이밍 수정 * [#34] refactor(BookingSuccessCode): 비회원 예매 조회 성공 메시지 추가 * [#34] feat(GuestBookingRequest): 비회원 예매 요청 DTO 생성 * [#34] feat(GuestBookingResponse): 비회원 예매 응답 DTO 생성 * [#34] refactor(BookingRetrieveService): 네이밍 수정 * [#34] feat(PerformanceRepository): 공연 레포지토리 생성 * [#34] feat(UserRepository): 유저 레포지토리 생성 * [#34] refactor(BookingRepository): 비회원 예매 시 네가지 정보가 모두 일치 해야만 다른 유저로 판단하는 메서드 구현 * [#34] refactor(ScheduleRepository): 비관적 락 적용 * [#34] feat(GuestBookingService): 비관적 락을 이용해 비회원 예매 로직 구현 * [#34] feat(BookingController): 비회원 예매 POST API 구현 * [#34] test(GuestBookingServiceConcurrencyTest): 동시성 테스트 구현 * [Refactor] #37 - 카카오 로그인 API response 수정 (#39) * [#37] rename: 빈 충돌 해결 위해 UserRepository를 UsersRepository로 rename * [#37] refactor: login response에서 refreshToken을 cookie에 담아주도록 변경 * [#37] fix: dao, repository 충돌 해결 * [#37] refactor: 어노테이션 수정 * [feat] #40 - 소개 관련 공연 정보 조회 GET API 구현 (#41) * [#40] feat: repository 추가 * [#40] feat: 공연 관련 성공, 실패 메세지 추가 * [#40] feat(PerformanceDetailResponse): 공연 상세페이지 조회 응답 dto * [#40] feat(PerformanceService): 공연 상세페이지 조회 로직 구현 * [#40] feat(PerformanceController): 공연 상세페이지 엔드포인트 구현 * [#40] feat(SecurityConfig): auth whitelist update * [#40] refactor: dto 분리 및 rename * [feat] #42 - 예매 관련 공연 정보 GET API 구현 (#43) * [#42] feat: 예매 관련 정보 조회 dto 생성 * [#42] feat: 예매 관련 정보 조회 성공 메세지 추가 * [#42] feat(ScheduleService): 잔여티켓계산, 예매가능여부확인, 예매가능여부 update 메소드 구현 * [#42] feat(PerformanceService): 예매관련공연정보의 response 생성하는 로직 구현 * [#42] feat(PerformanceController): 예매관련공연정보 조회 엔드포인트 구현 * [#42] feat(SecurityConfig): auth_whitelist update * [#42] refactor(ScheduleService): findTicketAvailability에서 getAvailableTicketCount method 사용하도록 수정 * [feat] #38 - 회원 예매 POST API 구현 (#45) * [#38] fix(Cast): Join 하는 부분 수정 및 빌더와 정적 팩토리 메서드 패턴 도입 * [#38] chore(application.yml): 계층 수정 * [#38] feat: 커스텀 어노테이션 생성 * [#38] fix(UserRepository): 중복된 클래스 삭제 * [#38] feat(UserErrorCode): 유저의 에러 메시지를 관리하는 열거형 생성 * [#38] refactor(MemberErrorCode): message 목적에 맞게 변경 * [#38] refactor(BookingSuccessCode): 회원 예매 성공 메시지 추가 * [#38] feat: 커스텀 어노테이션 생성 커밋에 누락된 클래스 추가 * [#38] refactor(GuestBookingService): schedule에서 바로 get 하도록 수정 * [#38] test(GuestBookingServiceConcurrencyTest): import문 경로명 변경 * [#38] refactor(MemberService): @Transactional 어노테이션이 필요한 메서드에 해당 옵션 추가 * [#38] feat(MemberBookingRequest): 회원 예매 요청 DTO 생성 * [#38] feat(MemberBookingResponse): 회원 예매 응답 DTO 생성 * [#38] refactor(MemberController): refreshToken을 쿠키에 넣어주도록 구현 * [#38] feat(MemberBookingService): 회원 예매 서비스 로직 구현 * [#38] feat(BookingController): 회원 예매 요청 POST API 구현 * [#38] fix: 빌드 안되는 부분 수정 * [#38] remove(MemberBookingService): 사용하지 않는 import문 삭제 * [#38] refactor: 커스텀 어노테이션 이름 수정 * [feat] #44 - 홈페이지 공연 및 홍보 조회 GET API 구현 (#47) * [#44] refactor: 코드리뷰 반영 * [#44] fix(Promotion): 기본키 이름 수정, performanceId 연관관계 설정 * [#44] feat: Repository 및 관련 로직 추가 * [#44] feat: errorcode, successcode 추가 * [#44] feat: 홈페이지 request, response dto 생성 * [#44] feat(ScheduleService): dueDate 관련 로직 구현 * [#44] feat(PerformanceService): 홈페이지 정렬 및 response 생성 로직 구현 * [#44] chore: import문 추가 * [feat] #46 - 회원 예매 조회 GET API 구현 (#48) * [#46] remove(BookingRetrieveRequest): 클래스 삭제 * [#46] refactor(BookingSuccessCode): 회원 예매 조회 성공 메시지 추가 * [#46] refactor(GuestBookingRetrieveResponse): 클래스 명 변경 * [#46] refactor(GuestBookingRetrieveRequest): 안쓰는 코드 주석처리 * [#46] refactor(GuestBookingRetrieveService): 클래스 명 수정으로 인한 리팩토링 * [#46] refactor(SecurityConfig): 토큰 사용하지 않는 api 경로 추가하기 * [#46] refactor(BookingRepository): userId로 예약 정보를 가져오는 JPA 메서드 구현 * [#46] feat(MemberBookingRetrieveResponse): 회원 조회 응답 DTO 생성 * [#46] feat(MemberBookingRetrieveService): 회원 예매 조회 로직을 담당하는 서비스 레이어 구현 * [#46] feat(BookingController): 회원 예매 조회 GET API 구현 * [feat] #49 - 예매자 관리 API 구현 (#51) * [#49] feat: 티켓 관련 success, error code 추가 * [#49] feat(Booking): 입금여부 setter 메소드 추가 * [#49] feat(TicketRetrieveResponse): 예매자 확인 response dto 생성 * [#49] feat(Ticket): 예매자 확인용 티켓 정보 response dto 생성 * [#49] feat(TicketRepository): 예매자 필터링용 메소드 생성 * [#49] feat: 예매자 입금정보 수정 request dto 생성 * [#49] feat(TicketDeleteRequest): 예매자 삭제 request dto 생성 * [#49] feat(TicketService): 예매자 관리 관련 로직 구현 * [#49] feat(TicketController): 예매자 관리 엔드포인트 구현 * [#49] chore: swagger annotation 추가 * HOTFIX(SecurityConfig): WHITELIST 경로명 수정 * [fix] #52 - auth whitelist 수정 (#53) * [#52]fix(SecurityConfig): auth_whitelist 수정 * [#52]fix(SecurityConfig): auth_whitelist 수정 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [feat] #54 - 등록한 공연 목록 조회 GET API 구현 (#55) * [#54] feat(PerformanceSuccessCode): success code 추가 * [#54] feat: 회원이 등록한 공연목록 조회 dto 생성 * [#54] feat(PerformanceService): 회원이 등록한 공연목록 조회 로직 구현 * [#54] feat(PerformanceRepository): 회원이 등록한 공연목록 조회 관련 메소드 추가 * [#54] feat(PerformanceController): 회원이 등록한 공연목록 조회 엔드포인트 생성 * [#54] fix(TicketService): exception error 수정 * [#54] chore(application.yml): yml 수정 * [fix] #58 - dev-ci.yml, prod-ci.yml 환경변수 추가 (#59) * [#58] fix(dev-CI.yml): Dev 서버 CI 워크플로우 수정 * [#58] fix(prod-CI.yml): Prod 서버 CI 워크플로우 수정 * [refactor] #61 - Performance Entity field 추가 (#62) * [#61] refactor(Performance): bankHolder 필드 추가 * [#61] chore(BookingController): swagger annotation 수정 * [feat] #63 - healthCheckController 생성 (#64) * [#63] remove(UsersRepository): 중복 클래스 삭제 * [#63] feat(HealthCheckController): healthcheck 컨트롤러 생성 * [feat] #63 - health check URL 화이트리스트에 등록 (#67) * [#63] remove(UsersRepository): 중복 클래스 삭제 * [#63] feat(HealthCheckController): healthcheck 컨트롤러 생성 * [#63] feat(SecurityConfig): healthcheck url white_list에 등록 * [fix] #57 - entity 연관관계 설정 SecurityConfig 수정 (#65) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [fix] #57 - security 관련 에러 대응 (#71) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 * [#57] fix(JwtAuthenticationFilter): 에러 로직 수정 * fix(SecurityConfig): webSecurityCustomizer 로직 추가 * [fix] #73 - security 수정 (#74) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 * [#57] fix(JwtAuthenticationFilter): 에러 로직 수정 * fix(SecurityConfig): webSecurityCustomizer 로직 추가 * [#57] fix:security 수정 * [#76] fix(SecurityConfig): Base64 인코딩을 하도록 변경 (#77) * [fix] #76 - 누락된 코드 추가 (#79) * [#76] fix(SecurityConfig): Base64 인코딩을 하도록 변경 * [#76] chore(SecurityConfig): 누락된 import문 추가 * [#76] chore(JwtTokenProvider): 누락된 코드 추가 * [#81] fix(JwtTokenProvider): jwtsecret을 인코딩하고 디코딩을 하도록 수정 (#82) * [#85] chore(application.yml): 환경변수 설정 (#86) --------- Co-authored-by: hyerinhwang-sailin --------- Co-authored-by: hyerinhwang-sailin * Revert "[deploy] merge to main (#90)" (#91) This reverts commit f519b0c82a2f01d4374eb045b9e90c6303381e50. * [fix] #93 - 누락된 어노테이션 및 누락된 경로명 추가 (#94) * [#93] fix(HealthCheckController): 누락된 어노테이션 추가 * [#93] refactor(SecurityConfig): 누락된 경로명 추가 * [bug] #84 - actuator/health 의존성 및 설정 추가 (#96) * [#84] chore(build.gradle): 의존성 추가 * [#84] chore: health/actuator yml 설정 추가 * [#84] chore: redis yml 설정 추가 * [#84] chore: yml 수정 (#99) * [bug] #101 - yml, s3 수정 (#102) * [#101] chore: yml 수정 * [#101] feat: s3 추가 * HOTIFX: prod ci-yml 수정 --------- Co-authored-by: hyerinhwang-sailin * Update application-prod.yml --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [feat] #50 - 공연 생성 POST API 생성 (#108) * [#50] chore: 폴더 이동 * [#50] feat: request DTO 생성 * [#50] feat: response DTO 생성 * [#50] refactor(PerformanceSuccessCode): 공연 생성 성공 메시지 추가 * [#50] chore(PerformanceService): import문 변 * [#50] chore(HomeController): import문 변 * [#50] feat(PerformanceCreateService): 공연 생성 서비스 로직 생성 * [#50] feat(PerformanceController): 공연 생성 POST API 생성 * [feat] #111 - 웹발신 구현 (#114) * [#111] feat(build.gradle): coolsms 의존성 추가 * [#111] feat: yml에 coolsms 환경변수 세팅 * [#111] feat(CoolSmsService): coolsms 웹발신 로직 구현 * [#111] feat(TicketService): coolsms 웹발신 트리거 로직 구현 * [#111] comment(TicketController): swagger 설명 수정 * [feat] #110 - 공연 수정 PUT API 구현 (#112) * [#110] feat: request DTO 생성 * [#110] feat: response DTO 생성 * [#110] feat(CastErrorCode): 등장인물 열거형 생성 * [#110] feat(StaffErrorCode): 스태프 에러 열거형 생성 * [#110] refactor(PerformanceSuccessCode): 공연 성공 수정 메시지 추가 * [#110] refactor(Performance): 업데이트 메서드 추가 * [#110] refactor(Schedule): 업데이트 메서드 추가 * [#110] refactor(Staff): 업데이트 메서드 추가 * [#110] test(GuestBookingServiceConcurrencyTest): 변경된 필드 추가 * [#110] refactor(Cast): 업데이트 메서드 추 * [#110] feat(PerformanceUpdateService): 공연 수정 서비스 로직 구현 * [#110] feat(PerformanceController): 공연 수정 PUT API 추가 * [feat] #113 - 공연 삭제 DELETE API 구현 (#116) * [#113] refactor(BookingRepository): 해당 공연을 예매한 사람이 있는지 판단하는 메서드 구현 * [#113] refactor(PerformanceErrorCode): 예매자가 한명 있을 경우 공연 취소가 안될때 보여주는 에러메시지 추가 * [#113] refactor(PerformanceSuccessCode): 공연이 삭제되었을 때 보여주는 성공 메시지 추가 * [#113] refactor(PerformanceManagementService): 멤버 아이디를 인자로 받도록 수정 및 공연 삭제 메서드 구현 * [#113] feat(PerformanceController): 공연 삭제 DELETE API 구현 * Update README.md * HOTFIX: 코드 수정 * [#119] refactor: response에 필요 필드 추가 (#120) * [feat] #117 - 공연 수정 페이지 정보 조회 GET API 구현 (#121) * [#117] remove(PerformanceCreateService): 사용하지 않는 클래스 삭제 * [#117] refactor(CastRepository): DB에 등록된 등장인물을 모두 가져오는 메서드 구현 * [#117] refactor(ScheduleRepository): DB에 등록된 회차를 모두 가져오는 메서드 구현 * [#117] refactor(StaffRepository): DB에 등록된 스태프를 모두 가져오는 메서드 구현 * [#117] refactor(PerformanceSuccessCode): 공연 수정 페이지 조회 성공 메시지 추가 * [#117] refactor(PerformanceEditResponse): 공연 수정 페이지 조회 응답 DTO 생성 * [#117] refactor(PerformanceService): 수정 페이지의 정보를 조회하는 서비스 로직 구현 * [#117] feat(PerformanceController): 공연 수정 페이지의 정보를 조회하는 GET API 구현 * [#123] fix(PerformanceController): 중복 코드 제거 (#124) * [#128] fix: 누락된 환경 변수 주입 및 수정 (#129) * [feat] #127 - presigned-url로 포스터 이미지, 등장인물 이미지 리스트, 스태프 이미지 리스트를 반환하도록 구현 (#131) * [#127] feat(SecurityConfig): 화이트 리스트에 presigned-url 추가 * [#127] refactor(FileService): 포스터 이미지, 등장인물 이미지 리스트, 스태프 이미지 리스트의 presigned-url을 반환하는 메서드 구현 * [#127] feat(FileController): presigned-url GET API 구현 * [refactor] #133 - presigned URL의 만료 시간 늘리기 (#134) * [#133] remove: 삭제된 클래스 커밋 * [#133] refactor(FileService): URL의 유효시간 2시간으로 설정 * [#135] refactor(SwaggerConfig): SwaggerConfig 리팩토링 (#136) * [#128] fix(BankName): bankname enum 추가 (#139) * [refactor] #126 - 프론트 요청 필드 반영 (#140) * [#126] refactor(BookingController): 회원 예매 조회시 성공 메시지 변경 * [#126] refactor(BookingRepository): 쿼리문 추가 * [#126] refactor(GuestBookingRequest): enum으로 리턴값 변경 * [#126] refactor(GuestBookingResponse): enum으로 리턴값 변경 * [#126] chore(GuestBookingRetrieveRequest): 주석 삭제 * [#126] refactor(GuestBookingRetrieveResponse): performanceId, posterImage, totalPaymentAmount 추가 * [#126] refactor(MemberBookingRetrieveResponse): performanceId, posterImage, totalPaymentAmount 추가 * [#126] refactor(MemberBookingRetrieveService): response에 추가된 필드 리턴하도록 리팩토링 * [#126] refactor(GuestBookingRetrieveService): response에 추가된 필드 리턴하도록 리팩토링 * [#126] refactor(GuestBookingService): displayName이 아닌 열거형으로 리턴하도록 수정 * [#126] refactor(MemberBookingRequest): 정적 팩토리 메서드 삭제 * [#126] refactor(MemberBookingResponse): enum으로 리턴하도록 수정 * [#126] refactor(MemberBookingService): enum으로 리턴하도록 수정 * [#126] test(GuestBookingServiceConcurrencyTest): DTO에서 수정된 리턴 방법 반영 * [#142] refactor(FileController): castImages, staffImages의 파라미터 value를 주지 않아도 presigned-url을 발급하도록 변경 (#143) * Update README.md * [#147] refactor: 예금주 필드 추가 (#148) * [feat] #150 - 스프링 서버를 redis와 동일한 네트워크에서 실행되도록 구현 (#151) * [#150] feat(Jenkinsfile): 스프링 서버를 redis와 동일한 네트워크에서 실행되도록 구현 * [#150] refactor(prod-CI.yml): prod에서 PR시에만 빌드 되도록 수정 * [#150] deploy(application-prod.yml): 운영서버 ddl-auto create로 초기화 (#155) --------- Co-authored-by: hyerinhwang-sailin --- src/main/resources/application-prod.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/resources/application-prod.yml b/src/main/resources/application-prod.yml index 79ce5b77..c7a9f86e 100644 --- a/src/main/resources/application-prod.yml +++ b/src/main/resources/application-prod.yml @@ -19,7 +19,7 @@ spring: jpa: hibernate: - ddl-auto: update + ddl-auto: create show-sql: true properties: hibernate: From 1eebd85dd318b64fa7d55eba7b944faab2233138 Mon Sep 17 00:00:00 2001 From: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> Date: Fri, 19 Jul 2024 20:52:02 +0900 Subject: [PATCH 6/6] =?UTF-8?q?[release]=20v1.0.0=20=EB=A6=B4=EB=A6=AC?= =?UTF-8?q?=EC=A6=88=20(#158)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * [deploy] merge to develop (#27) * [deploy] merge to main (#26) * [#2] chore(.gitignore): .gradle, .idea 파일 삭제 (#3) * [refactor] #4 - 도메인형 디렉터리 구조 변경 및 local, dev, prod 운영 환경 분리 (#5) * [#4] fix: 클래스 첫글자 대문자로 수정 * [#4] remove: enum 삭제 * [#4] feat(BaseSuccessCode): 성공 상태 관리를 위한 인터페이스 생성 * [#4] feat(BaseErrorCode): 에러 상태 관리를 위한 인터페이스 생성 * [#4] refactor: global 패키지로 이동 * [#4] refactor: 서버 운영 환경 분리 * [feat] #6 - dev, prod Dockerfile 분리 및 github Action CI workflow 구현 (#7) * [#6] feat(Dockerfile): prod용 도커 파일 구현 * [#6] feat(Dockerfile-dev): dev용 도커 파일 구현 * [#6] feat(dev-CI.yml): dev용 CI workflow 구현 * [#6] feat(prod-CI.yml): prod용 CI workflow 구현 * [#6] chore(.gitignore): gradle-wrapper.jar 파일은 레포지토리에 포함되도록 설정 * [#6] fix(gradle-wrapper.jar): .gitignore로 누락된 파일 추가 * [#6] chore(build.grade): plain jar 생성 방지 * [#9] docs(README.md): 서비스 소개 README v1 작성 (#10) * [#11] docs(README.md): 리드미 업데이트 (#12) * [feat] #13 - 유저, 예매, 공연, 회차 엔티티 생성 (#15) * [#13] feat(Users): 사용자 엔티티 생성 * [#13] feat(Genre): 장르 열거형 생성 * [#13] feat(BankName): 은행명 열거형 생성 * [#13] refactor(BaseTimeEntity): 업데이트 시간 관리 필드 활성화 * [#13] feat(Performance): 공연 엔티티 생성 * [#13] feat(ScheduleNumber): 회차 번호 열거형 생성 * [#13] feat(Schedule): 회차 엔티티 생성 * [#13] feat(Booking): 예매 엔티티 생성 * [#13] refactor(ScheduleNumber): 네이밍 수정 * [feat] #14 - 회원, 홍보, 등장인물, 스태프 엔티티 생성 (#16) * [#14] feat(Member): 멤버 엔티티 생성 * [#14] feat(Promotion): 홍보 엔티티 생성 * [#14] feat(Cast): 등장인물 엔티티 생성 * [#14] feat(Staff): 스태프 엔티티 생성 * [feat] #13 - 유저, 예매, 공연, 회차 엔티티 생성 (#15) * [#13] feat(Users): 사용자 엔티티 생성 * [#13] feat(Genre): 장르 열거형 생성 * [#13] feat(BankName): 은행명 열거형 생성 * [#13] refactor(BaseTimeEntity): 업데이트 시간 관리 필드 활성화 * [#13] feat(Performance): 공연 엔티티 생성 * [#13] feat(ScheduleNumber): 회차 번호 열거형 생성 * [#13] feat(Schedule): 회차 엔티티 생성 * [#13] feat(Booking): 예매 엔티티 생성 * [#13] refactor(ScheduleNumber): 네이밍 수정 * [#14} fix: 스태프, 등장인물, 홍보 엔티티 상속관계 수정 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [#18] feat(Jenkinsfile): 젠킨스 파일 생성 (#19) * [#20] refactor(Jenkinsfile): 젠킨스 파일 Webhook 테스트용 커밋 (#21) * [#22] feat(Jenkinsfile): Jenkins multibranch 스크립트 작성 (#23) * HOTFIX(Jenkinsfile): Jenkins multibranch 스크립트 수정 * HOTFIX(workflows): 빌드 후 젠킨스 배포가 진행되도록 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * [#24] feat(Jenkinsfile): slack 연동 스크립트 작성 (#25) --------- Co-authored-by: hyerinhwang-sailin * HOTFIX(workflow): 오타 수정 --------- Co-authored-by: hyerinhwang-sailin * [feat] #28 - 비회원 예매 조회 POST API 구현 (#29) * chore(application-dev.yml): dialect 추가 * chore(application-prod.yml): dialect 추가 * [#28] chore(build.gradle): security 의존성 비활성화 - security 일시적으로 비활성화 * [#28] refactor(Booking): 예매 엔티티에 빌더 및 정적팩토리 메서드 추가 * [#28] refactor(ErrorResponse): 정적 팩토리 메서드 네이밍 변환 * [#28] refactor(Schedule): 회차 엔티티에 빌더 및 정적 팩토리 메서드 추가 * [#28] refactor(Performance): 공연 엔티티에 빌더 및 정적 팩토리 메서드 추가 * [#28] refactor(SuccessResponse): 정적 팩토리 메서드 네이밍 변환 * [#28] refactor(GlobalExceptionHandler): INTERNAL_SERVER_ERROR 핸들러 메서드 추가 * [#28] feat(BookingSuccessCode): 예매 성공 메시지를 관리하는 열거형 생성 * [#28] feat(BookingErrorCode): 예매 에러 메시지를 관리하는 열거형 생성 * [#28] feat(BookingRetrieveResponse): 예매 조회 응답 DTO 생성 * [#28] feat(BookingRetrieveRequest): 예매 조회 요청 DTO 생성 * [#28] feat(BookingRepository): 예매 레포지토리 생성 및 비회원 예매 조회 시 예매 내역 가져오는 메서드 구현 * [#28] feat(BookingService): 예매 서비스 레이어 생성 및 비회원 조회 메서드 구현 * [#28] feat(BookingController): 예매 컨트롤러 생성 및 비회원 예매조회 POST API 구현 * [feat] #30 - SwaggerConfig 및 WebConfig 구현 (#31) * [#30] chore(build.gradle): springdoc 의존성 추가 * [#30] feat(SwaggerConfig): SwaggerConfig 추가 * [#30] feat(WebConfig): WebConfig 추가 * HOTFIX(workflows): push 이벤트 시 github action이 빌드 되지 않도록 수정 * HOTFIX(Jenkinsfile): 포트 수정 * [feat] #32 - 티켓 예매 가능 여부 GET API 구현 (#33) * [#32] refactor(BookingController): 메서드명 수정 * [#32] feat(ConflictException): Conflict 409에러 클래스 생성 * [#32] feat(GlobalExceptionHandler): ConflictException 등록 * [#32] feat(TicketAvailabilityRequest): TicketAvailabilityRequest DTO 생성 * [#32] feat(TicketAvailabilityResponse): TicketAvailabilityResponse DTO 생성 * [#32] feat(ScheduleSuccessCode): ScheduleSuccessCode 열거형 생성 * [#32] feat(ScheduleErrorCode): ScheduleErrorCode 열거형 생성 * [#32] feat(ScheduleRepository): ScheduleRepository 생성 * [#32] feat(ScheduleService): ScheduleService 생성 및 회차별 티켓 구매 가능 여부 판단 메서드 구현 * [#32] feat(ScheduleController): 회차별 티켓 수량 조회 GET API 구현 * [feat] #17 - 카카오 소셜 로그인 API 구현 (#36) * [#17] feat(build.gradle): jwt, security, open feign, Redis 의존성 추가 * [#17] feat(BeatApplication): OpenFeign 관련 어노테이션 추가 * [#17] feat(RedisConfig): redis 설정 * [#17] feat: redis 활용 jwt 토큰 생성 로직 구현 * [#17] feat(SecurityConfig): security 설정 * [#17] refactor: Member, Users 엔티티 수정 및 관련 enum 추가 * [#17] feat: Member, Users 도메인 관련 인증 로직 구현 * [#17] feat(MemberController): Member 관련 API 엔드포인트 구현 * [#17] feat: Security 관련 인증 객체 구현 * [#17] feat: 소셜로그인 로직 구현 * [#17] fix: 소셜로그인 오류 해결 * [#17] refactor: 코드리뷰 반영 * [#17] refactor: 코드리뷰 반영 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [feat] #34 - 비회원 예매 POST API 구현 (#35) * [#34] feat(Users): 빌더 및 정적 팩토리 메서드 추가 * [#34] feat(Entity): 엔티티 id 필드 수정 * [#34] refactor(application.yml): dialect 추가 * [#34] refactor(ScheduleService): 네이밍 수정 * [#34] refactor(BookingSuccessCode): 비회원 예매 조회 성공 메시지 추가 * [#34] feat(GuestBookingRequest): 비회원 예매 요청 DTO 생성 * [#34] feat(GuestBookingResponse): 비회원 예매 응답 DTO 생성 * [#34] refactor(BookingRetrieveService): 네이밍 수정 * [#34] feat(PerformanceRepository): 공연 레포지토리 생성 * [#34] feat(UserRepository): 유저 레포지토리 생성 * [#34] refactor(BookingRepository): 비회원 예매 시 네가지 정보가 모두 일치 해야만 다른 유저로 판단하는 메서드 구현 * [#34] refactor(ScheduleRepository): 비관적 락 적용 * [#34] feat(GuestBookingService): 비관적 락을 이용해 비회원 예매 로직 구현 * [#34] feat(BookingController): 비회원 예매 POST API 구현 * [#34] test(GuestBookingServiceConcurrencyTest): 동시성 테스트 구현 * [Refactor] #37 - 카카오 로그인 API response 수정 (#39) * [#37] rename: 빈 충돌 해결 위해 UserRepository를 UsersRepository로 rename * [#37] refactor: login response에서 refreshToken을 cookie에 담아주도록 변경 * [#37] fix: dao, repository 충돌 해결 * [#37] refactor: 어노테이션 수정 * [feat] #40 - 소개 관련 공연 정보 조회 GET API 구현 (#41) * [#40] feat: repository 추가 * [#40] feat: 공연 관련 성공, 실패 메세지 추가 * [#40] feat(PerformanceDetailResponse): 공연 상세페이지 조회 응답 dto * [#40] feat(PerformanceService): 공연 상세페이지 조회 로직 구현 * [#40] feat(PerformanceController): 공연 상세페이지 엔드포인트 구현 * [#40] feat(SecurityConfig): auth whitelist update * [#40] refactor: dto 분리 및 rename * [feat] #42 - 예매 관련 공연 정보 GET API 구현 (#43) * [#42] feat: 예매 관련 정보 조회 dto 생성 * [#42] feat: 예매 관련 정보 조회 성공 메세지 추가 * [#42] feat(ScheduleService): 잔여티켓계산, 예매가능여부확인, 예매가능여부 update 메소드 구현 * [#42] feat(PerformanceService): 예매관련공연정보의 response 생성하는 로직 구현 * [#42] feat(PerformanceController): 예매관련공연정보 조회 엔드포인트 구현 * [#42] feat(SecurityConfig): auth_whitelist update * [#42] refactor(ScheduleService): findTicketAvailability에서 getAvailableTicketCount method 사용하도록 수정 * [feat] #38 - 회원 예매 POST API 구현 (#45) * [#38] fix(Cast): Join 하는 부분 수정 및 빌더와 정적 팩토리 메서드 패턴 도입 * [#38] chore(application.yml): 계층 수정 * [#38] feat: 커스텀 어노테이션 생성 * [#38] fix(UserRepository): 중복된 클래스 삭제 * [#38] feat(UserErrorCode): 유저의 에러 메시지를 관리하는 열거형 생성 * [#38] refactor(MemberErrorCode): message 목적에 맞게 변경 * [#38] refactor(BookingSuccessCode): 회원 예매 성공 메시지 추가 * [#38] feat: 커스텀 어노테이션 생성 커밋에 누락된 클래스 추가 * [#38] refactor(GuestBookingService): schedule에서 바로 get 하도록 수정 * [#38] test(GuestBookingServiceConcurrencyTest): import문 경로명 변경 * [#38] refactor(MemberService): @Transactional 어노테이션이 필요한 메서드에 해당 옵션 추가 * [#38] feat(MemberBookingRequest): 회원 예매 요청 DTO 생성 * [#38] feat(MemberBookingResponse): 회원 예매 응답 DTO 생성 * [#38] refactor(MemberController): refreshToken을 쿠키에 넣어주도록 구현 * [#38] feat(MemberBookingService): 회원 예매 서비스 로직 구현 * [#38] feat(BookingController): 회원 예매 요청 POST API 구현 * [#38] fix: 빌드 안되는 부분 수정 * [#38] remove(MemberBookingService): 사용하지 않는 import문 삭제 * [#38] refactor: 커스텀 어노테이션 이름 수정 * [feat] #44 - 홈페이지 공연 및 홍보 조회 GET API 구현 (#47) * [#44] refactor: 코드리뷰 반영 * [#44] fix(Promotion): 기본키 이름 수정, performanceId 연관관계 설정 * [#44] feat: Repository 및 관련 로직 추가 * [#44] feat: errorcode, successcode 추가 * [#44] feat: 홈페이지 request, response dto 생성 * [#44] feat(ScheduleService): dueDate 관련 로직 구현 * [#44] feat(PerformanceService): 홈페이지 정렬 및 response 생성 로직 구현 * [#44] chore: import문 추가 * [feat] #46 - 회원 예매 조회 GET API 구현 (#48) * [#46] remove(BookingRetrieveRequest): 클래스 삭제 * [#46] refactor(BookingSuccessCode): 회원 예매 조회 성공 메시지 추가 * [#46] refactor(GuestBookingRetrieveResponse): 클래스 명 변경 * [#46] refactor(GuestBookingRetrieveRequest): 안쓰는 코드 주석처리 * [#46] refactor(GuestBookingRetrieveService): 클래스 명 수정으로 인한 리팩토링 * [#46] refactor(SecurityConfig): 토큰 사용하지 않는 api 경로 추가하기 * [#46] refactor(BookingRepository): userId로 예약 정보를 가져오는 JPA 메서드 구현 * [#46] feat(MemberBookingRetrieveResponse): 회원 조회 응답 DTO 생성 * [#46] feat(MemberBookingRetrieveService): 회원 예매 조회 로직을 담당하는 서비스 레이어 구현 * [#46] feat(BookingController): 회원 예매 조회 GET API 구현 * [feat] #49 - 예매자 관리 API 구현 (#51) * [#49] feat: 티켓 관련 success, error code 추가 * [#49] feat(Booking): 입금여부 setter 메소드 추가 * [#49] feat(TicketRetrieveResponse): 예매자 확인 response dto 생성 * [#49] feat(Ticket): 예매자 확인용 티켓 정보 response dto 생성 * [#49] feat(TicketRepository): 예매자 필터링용 메소드 생성 * [#49] feat: 예매자 입금정보 수정 request dto 생성 * [#49] feat(TicketDeleteRequest): 예매자 삭제 request dto 생성 * [#49] feat(TicketService): 예매자 관리 관련 로직 구현 * [#49] feat(TicketController): 예매자 관리 엔드포인트 구현 * [#49] chore: swagger annotation 추가 * HOTFIX(SecurityConfig): WHITELIST 경로명 수정 * [fix] #52 - auth whitelist 수정 (#53) * [#52]fix(SecurityConfig): auth_whitelist 수정 * [#52]fix(SecurityConfig): auth_whitelist 수정 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [feat] #54 - 등록한 공연 목록 조회 GET API 구현 (#55) * [#54] feat(PerformanceSuccessCode): success code 추가 * [#54] feat: 회원이 등록한 공연목록 조회 dto 생성 * [#54] feat(PerformanceService): 회원이 등록한 공연목록 조회 로직 구현 * [#54] feat(PerformanceRepository): 회원이 등록한 공연목록 조회 관련 메소드 추가 * [#54] feat(PerformanceController): 회원이 등록한 공연목록 조회 엔드포인트 생성 * [#54] fix(TicketService): exception error 수정 * [#54] chore(application.yml): yml 수정 * [fix] #58 - dev-ci.yml, prod-ci.yml 환경변수 추가 (#59) * [#58] fix(dev-CI.yml): Dev 서버 CI 워크플로우 수정 * [#58] fix(prod-CI.yml): Prod 서버 CI 워크플로우 수정 * [refactor] #61 - Performance Entity field 추가 (#62) * [#61] refactor(Performance): bankHolder 필드 추가 * [#61] chore(BookingController): swagger annotation 수정 * [feat] #63 - healthCheckController 생성 (#64) * [#63] remove(UsersRepository): 중복 클래스 삭제 * [#63] feat(HealthCheckController): healthcheck 컨트롤러 생성 * [feat] #63 - health check URL 화이트리스트에 등록 (#67) * [#63] remove(UsersRepository): 중복 클래스 삭제 * [#63] feat(HealthCheckController): healthcheck 컨트롤러 생성 * [#63] feat(SecurityConfig): healthcheck url white_list에 등록 * [fix] #57 - entity 연관관계 설정 SecurityConfig 수정 (#65) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [fix] #57 - security 관련 에러 대응 (#71) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 * [#57] fix(JwtAuthenticationFilter): 에러 로직 수정 * fix(SecurityConfig): webSecurityCustomizer 로직 추가 * [fix] #73 - security 수정 (#74) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 * [#57] fix(JwtAuthenticationFilter): 에러 로직 수정 * fix(SecurityConfig): webSecurityCustomizer 로직 추가 * [#57] fix:security 수정 * [#76] fix(SecurityConfig): Base64 인코딩을 하도록 변경 (#77) * [fix] #76 - 누락된 코드 추가 (#79) * [#76] fix(SecurityConfig): Base64 인코딩을 하도록 변경 * [#76] chore(SecurityConfig): 누락된 import문 추가 * [#76] chore(JwtTokenProvider): 누락된 코드 추가 * [#81] fix(JwtTokenProvider): jwtsecret을 인코딩하고 디코딩을 하도록 수정 (#82) * [#85] chore(application.yml): 환경변수 설정 (#86) * [chore] #88 - 레디스 환경변수 추가 (#89) * [#88] chore(dev-CI.yml): dev서버 레디스 환경변수 설정 추가 * [#88] chore(prod-CI.yml): prod 서버 레디스 환경변수 설정 추가 * [deploy] merge to main (#90) * [deploy] merge to main (#83) * [deploy] merge to develop (#27) * [deploy] merge to main (#26) * [#2] chore(.gitignore): .gradle, .idea 파일 삭제 (#3) * [refactor] #4 - 도메인형 디렉터리 구조 변경 및 local, dev, prod 운영 환경 분리 (#5) * [#4] fix: 클래스 첫글자 대문자로 수정 * [#4] remove: enum 삭제 * [#4] feat(BaseSuccessCode): 성공 상태 관리를 위한 인터페이스 생성 * [#4] feat(BaseErrorCode): 에러 상태 관리를 위한 인터페이스 생성 * [#4] refactor: global 패키지로 이동 * [#4] refactor: 서버 운영 환경 분리 * [feat] #6 - dev, prod Dockerfile 분리 및 github Action CI workflow 구현 (#7) * [#6] feat(Dockerfile): prod용 도커 파일 구현 * [#6] feat(Dockerfile-dev): dev용 도커 파일 구현 * [#6] feat(dev-CI.yml): dev용 CI workflow 구현 * [#6] feat(prod-CI.yml): prod용 CI workflow 구현 * [#6] chore(.gitignore): gradle-wrapper.jar 파일은 레포지토리에 포함되도록 설정 * [#6] fix(gradle-wrapper.jar): .gitignore로 누락된 파일 추가 * [#6] chore(build.grade): plain jar 생성 방지 * [#9] docs(README.md): 서비스 소개 README v1 작성 (#10) * [#11] docs(README.md): 리드미 업데이트 (#12) * [feat] #13 - 유저, 예매, 공연, 회차 엔티티 생성 (#15) * [#13] feat(Users): 사용자 엔티티 생성 * [#13] feat(Genre): 장르 열거형 생성 * [#13] feat(BankName): 은행명 열거형 생성 * [#13] refactor(BaseTimeEntity): 업데이트 시간 관리 필드 활성화 * [#13] feat(Performance): 공연 엔티티 생성 * [#13] feat(ScheduleNumber): 회차 번호 열거형 생성 * [#13] feat(Schedule): 회차 엔티티 생성 * [#13] feat(Booking): 예매 엔티티 생성 * [#13] refactor(ScheduleNumber): 네이밍 수정 * [feat] #14 - 회원, 홍보, 등장인물, 스태프 엔티티 생성 (#16) * [#14] feat(Member): 멤버 엔티티 생성 * [#14] feat(Promotion): 홍보 엔티티 생성 * [#14] feat(Cast): 등장인물 엔티티 생성 * [#14] feat(Staff): 스태프 엔티티 생성 * [feat] #13 - 유저, 예매, 공연, 회차 엔티티 생성 (#15) * [#13] feat(Users): 사용자 엔티티 생성 * [#13] feat(Genre): 장르 열거형 생성 * [#13] feat(BankName): 은행명 열거형 생성 * [#13] refactor(BaseTimeEntity): 업데이트 시간 관리 필드 활성화 * [#13] feat(Performance): 공연 엔티티 생성 * [#13] feat(ScheduleNumber): 회차 번호 열거형 생성 * [#13] feat(Schedule): 회차 엔티티 생성 * [#13] feat(Booking): 예매 엔티티 생성 * [#13] refactor(ScheduleNumber): 네이밍 수정 * [#14} fix: 스태프, 등장인물, 홍보 엔티티 상속관계 수정 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [#18] feat(Jenkinsfile): 젠킨스 파일 생성 (#19) * [#20] refactor(Jenkinsfile): 젠킨스 파일 Webhook 테스트용 커밋 (#21) * [#22] feat(Jenkinsfile): Jenkins multibranch 스크립트 작성 (#23) * HOTFIX(Jenkinsfile): Jenkins multibranch 스크립트 수정 * HOTFIX(workflows): 빌드 후 젠킨스 배포가 진행되도록 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * [#24] feat(Jenkinsfile): slack 연동 스크립트 작성 (#25) --------- Co-authored-by: hyerinhwang-sailin * HOTFIX(workflow): 오타 수정 --------- Co-authored-by: hyerinhwang-sailin * [feat] #28 - 비회원 예매 조회 POST API 구현 (#29) * chore(application-dev.yml): dialect 추가 * chore(application-prod.yml): dialect 추가 * [#28] chore(build.gradle): security 의존성 비활성화 - security 일시적으로 비활성화 * [#28] refactor(Booking): 예매 엔티티에 빌더 및 정적팩토리 메서드 추가 * [#28] refactor(ErrorResponse): 정적 팩토리 메서드 네이밍 변환 * [#28] refactor(Schedule): 회차 엔티티에 빌더 및 정적 팩토리 메서드 추가 * [#28] refactor(Performance): 공연 엔티티에 빌더 및 정적 팩토리 메서드 추가 * [#28] refactor(SuccessResponse): 정적 팩토리 메서드 네이밍 변환 * [#28] refactor(GlobalExceptionHandler): INTERNAL_SERVER_ERROR 핸들러 메서드 추가 * [#28] feat(BookingSuccessCode): 예매 성공 메시지를 관리하는 열거형 생성 * [#28] feat(BookingErrorCode): 예매 에러 메시지를 관리하는 열거형 생성 * [#28] feat(BookingRetrieveResponse): 예매 조회 응답 DTO 생성 * [#28] feat(BookingRetrieveRequest): 예매 조회 요청 DTO 생성 * [#28] feat(BookingRepository): 예매 레포지토리 생성 및 비회원 예매 조회 시 예매 내역 가져오는 메서드 구현 * [#28] feat(BookingService): 예매 서비스 레이어 생성 및 비회원 조회 메서드 구현 * [#28] feat(BookingController): 예매 컨트롤러 생성 및 비회원 예매조회 POST API 구현 * [feat] #30 - SwaggerConfig 및 WebConfig 구현 (#31) * [#30] chore(build.gradle): springdoc 의존성 추가 * [#30] feat(SwaggerConfig): SwaggerConfig 추가 * [#30] feat(WebConfig): WebConfig 추가 * HOTFIX(workflows): push 이벤트 시 github action이 빌드 되지 않도록 수정 * HOTFIX(Jenkinsfile): 포트 수정 * [feat] #32 - 티켓 예매 가능 여부 GET API 구현 (#33) * [#32] refactor(BookingController): 메서드명 수정 * [#32] feat(ConflictException): Conflict 409에러 클래스 생성 * [#32] feat(GlobalExceptionHandler): ConflictException 등록 * [#32] feat(TicketAvailabilityRequest): TicketAvailabilityRequest DTO 생성 * [#32] feat(TicketAvailabilityResponse): TicketAvailabilityResponse DTO 생성 * [#32] feat(ScheduleSuccessCode): ScheduleSuccessCode 열거형 생성 * [#32] feat(ScheduleErrorCode): ScheduleErrorCode 열거형 생성 * [#32] feat(ScheduleRepository): ScheduleRepository 생성 * [#32] feat(ScheduleService): ScheduleService 생성 및 회차별 티켓 구매 가능 여부 판단 메서드 구현 * [#32] feat(ScheduleController): 회차별 티켓 수량 조회 GET API 구현 * [feat] #17 - 카카오 소셜 로그인 API 구현 (#36) * [#17] feat(build.gradle): jwt, security, open feign, Redis 의존성 추가 * [#17] feat(BeatApplication): OpenFeign 관련 어노테이션 추가 * [#17] feat(RedisConfig): redis 설정 * [#17] feat: redis 활용 jwt 토큰 생성 로직 구현 * [#17] feat(SecurityConfig): security 설정 * [#17] refactor: Member, Users 엔티티 수정 및 관련 enum 추가 * [#17] feat: Member, Users 도메인 관련 인증 로직 구현 * [#17] feat(MemberController): Member 관련 API 엔드포인트 구현 * [#17] feat: Security 관련 인증 객체 구현 * [#17] feat: 소셜로그인 로직 구현 * [#17] fix: 소셜로그인 오류 해결 * [#17] refactor: 코드리뷰 반영 * [#17] refactor: 코드리뷰 반영 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [feat] #34 - 비회원 예매 POST API 구현 (#35) * [#34] feat(Users): 빌더 및 정적 팩토리 메서드 추가 * [#34] feat(Entity): 엔티티 id 필드 수정 * [#34] refactor(application.yml): dialect 추가 * [#34] refactor(ScheduleService): 네이밍 수정 * [#34] refactor(BookingSuccessCode): 비회원 예매 조회 성공 메시지 추가 * [#34] feat(GuestBookingRequest): 비회원 예매 요청 DTO 생성 * [#34] feat(GuestBookingResponse): 비회원 예매 응답 DTO 생성 * [#34] refactor(BookingRetrieveService): 네이밍 수정 * [#34] feat(PerformanceRepository): 공연 레포지토리 생성 * [#34] feat(UserRepository): 유저 레포지토리 생성 * [#34] refactor(BookingRepository): 비회원 예매 시 네가지 정보가 모두 일치 해야만 다른 유저로 판단하는 메서드 구현 * [#34] refactor(ScheduleRepository): 비관적 락 적용 * [#34] feat(GuestBookingService): 비관적 락을 이용해 비회원 예매 로직 구현 * [#34] feat(BookingController): 비회원 예매 POST API 구현 * [#34] test(GuestBookingServiceConcurrencyTest): 동시성 테스트 구현 * [Refactor] #37 - 카카오 로그인 API response 수정 (#39) * [#37] rename: 빈 충돌 해결 위해 UserRepository를 UsersRepository로 rename * [#37] refactor: login response에서 refreshToken을 cookie에 담아주도록 변경 * [#37] fix: dao, repository 충돌 해결 * [#37] refactor: 어노테이션 수정 * [feat] #40 - 소개 관련 공연 정보 조회 GET API 구현 (#41) * [#40] feat: repository 추가 * [#40] feat: 공연 관련 성공, 실패 메세지 추가 * [#40] feat(PerformanceDetailResponse): 공연 상세페이지 조회 응답 dto * [#40] feat(PerformanceService): 공연 상세페이지 조회 로직 구현 * [#40] feat(PerformanceController): 공연 상세페이지 엔드포인트 구현 * [#40] feat(SecurityConfig): auth whitelist update * [#40] refactor: dto 분리 및 rename * [feat] #42 - 예매 관련 공연 정보 GET API 구현 (#43) * [#42] feat: 예매 관련 정보 조회 dto 생성 * [#42] feat: 예매 관련 정보 조회 성공 메세지 추가 * [#42] feat(ScheduleService): 잔여티켓계산, 예매가능여부확인, 예매가능여부 update 메소드 구현 * [#42] feat(PerformanceService): 예매관련공연정보의 response 생성하는 로직 구현 * [#42] feat(PerformanceController): 예매관련공연정보 조회 엔드포인트 구현 * [#42] feat(SecurityConfig): auth_whitelist update * [#42] refactor(ScheduleService): findTicketAvailability에서 getAvailableTicketCount method 사용하도록 수정 * [feat] #38 - 회원 예매 POST API 구현 (#45) * [#38] fix(Cast): Join 하는 부분 수정 및 빌더와 정적 팩토리 메서드 패턴 도입 * [#38] chore(application.yml): 계층 수정 * [#38] feat: 커스텀 어노테이션 생성 * [#38] fix(UserRepository): 중복된 클래스 삭제 * [#38] feat(UserErrorCode): 유저의 에러 메시지를 관리하는 열거형 생성 * [#38] refactor(MemberErrorCode): message 목적에 맞게 변경 * [#38] refactor(BookingSuccessCode): 회원 예매 성공 메시지 추가 * [#38] feat: 커스텀 어노테이션 생성 커밋에 누락된 클래스 추가 * [#38] refactor(GuestBookingService): schedule에서 바로 get 하도록 수정 * [#38] test(GuestBookingServiceConcurrencyTest): import문 경로명 변경 * [#38] refactor(MemberService): @Transactional 어노테이션이 필요한 메서드에 해당 옵션 추가 * [#38] feat(MemberBookingRequest): 회원 예매 요청 DTO 생성 * [#38] feat(MemberBookingResponse): 회원 예매 응답 DTO 생성 * [#38] refactor(MemberController): refreshToken을 쿠키에 넣어주도록 구현 * [#38] feat(MemberBookingService): 회원 예매 서비스 로직 구현 * [#38] feat(BookingController): 회원 예매 요청 POST API 구현 * [#38] fix: 빌드 안되는 부분 수정 * [#38] remove(MemberBookingService): 사용하지 않는 import문 삭제 * [#38] refactor: 커스텀 어노테이션 이름 수정 * [feat] #44 - 홈페이지 공연 및 홍보 조회 GET API 구현 (#47) * [#44] refactor: 코드리뷰 반영 * [#44] fix(Promotion): 기본키 이름 수정, performanceId 연관관계 설정 * [#44] feat: Repository 및 관련 로직 추가 * [#44] feat: errorcode, successcode 추가 * [#44] feat: 홈페이지 request, response dto 생성 * [#44] feat(ScheduleService): dueDate 관련 로직 구현 * [#44] feat(PerformanceService): 홈페이지 정렬 및 response 생성 로직 구현 * [#44] chore: import문 추가 * [feat] #46 - 회원 예매 조회 GET API 구현 (#48) * [#46] remove(BookingRetrieveRequest): 클래스 삭제 * [#46] refactor(BookingSuccessCode): 회원 예매 조회 성공 메시지 추가 * [#46] refactor(GuestBookingRetrieveResponse): 클래스 명 변경 * [#46] refactor(GuestBookingRetrieveRequest): 안쓰는 코드 주석처리 * [#46] refactor(GuestBookingRetrieveService): 클래스 명 수정으로 인한 리팩토링 * [#46] refactor(SecurityConfig): 토큰 사용하지 않는 api 경로 추가하기 * [#46] refactor(BookingRepository): userId로 예약 정보를 가져오는 JPA 메서드 구현 * [#46] feat(MemberBookingRetrieveResponse): 회원 조회 응답 DTO 생성 * [#46] feat(MemberBookingRetrieveService): 회원 예매 조회 로직을 담당하는 서비스 레이어 구현 * [#46] feat(BookingController): 회원 예매 조회 GET API 구현 * [feat] #49 - 예매자 관리 API 구현 (#51) * [#49] feat: 티켓 관련 success, error code 추가 * [#49] feat(Booking): 입금여부 setter 메소드 추가 * [#49] feat(TicketRetrieveResponse): 예매자 확인 response dto 생성 * [#49] feat(Ticket): 예매자 확인용 티켓 정보 response dto 생성 * [#49] feat(TicketRepository): 예매자 필터링용 메소드 생성 * [#49] feat: 예매자 입금정보 수정 request dto 생성 * [#49] feat(TicketDeleteRequest): 예매자 삭제 request dto 생성 * [#49] feat(TicketService): 예매자 관리 관련 로직 구현 * [#49] feat(TicketController): 예매자 관리 엔드포인트 구현 * [#49] chore: swagger annotation 추가 * HOTFIX(SecurityConfig): WHITELIST 경로명 수정 * [fix] #52 - auth whitelist 수정 (#53) * [#52]fix(SecurityConfig): auth_whitelist 수정 * [#52]fix(SecurityConfig): auth_whitelist 수정 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [feat] #54 - 등록한 공연 목록 조회 GET API 구현 (#55) * [#54] feat(PerformanceSuccessCode): success code 추가 * [#54] feat: 회원이 등록한 공연목록 조회 dto 생성 * [#54] feat(PerformanceService): 회원이 등록한 공연목록 조회 로직 구현 * [#54] feat(PerformanceRepository): 회원이 등록한 공연목록 조회 관련 메소드 추가 * [#54] feat(PerformanceController): 회원이 등록한 공연목록 조회 엔드포인트 생성 * [#54] fix(TicketService): exception error 수정 * [#54] chore(application.yml): yml 수정 * [fix] #58 - dev-ci.yml, prod-ci.yml 환경변수 추가 (#59) * [#58] fix(dev-CI.yml): Dev 서버 CI 워크플로우 수정 * [#58] fix(prod-CI.yml): Prod 서버 CI 워크플로우 수정 * [refactor] #61 - Performance Entity field 추가 (#62) * [#61] refactor(Performance): bankHolder 필드 추가 * [#61] chore(BookingController): swagger annotation 수정 * [feat] #63 - healthCheckController 생성 (#64) * [#63] remove(UsersRepository): 중복 클래스 삭제 * [#63] feat(HealthCheckController): healthcheck 컨트롤러 생성 * [feat] #63 - health check URL 화이트리스트에 등록 (#67) * [#63] remove(UsersRepository): 중복 클래스 삭제 * [#63] feat(HealthCheckController): healthcheck 컨트롤러 생성 * [#63] feat(SecurityConfig): healthcheck url white_list에 등록 * [fix] #57 - entity 연관관계 설정 SecurityConfig 수정 (#65) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [fix] #57 - security 관련 에러 대응 (#71) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 * [#57] fix(JwtAuthenticationFilter): 에러 로직 수정 * fix(SecurityConfig): webSecurityCustomizer 로직 추가 * [fix] #73 - security 수정 (#74) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 * [#57] fix(JwtAuthenticationFilter): 에러 로직 수정 * fix(SecurityConfig): webSecurityCustomizer 로직 추가 * [#57] fix:security 수정 * [#76] fix(SecurityConfig): Base64 인코딩을 하도록 변경 (#77) * [fix] #76 - 누락된 코드 추가 (#79) * [#76] fix(SecurityConfig): Base64 인코딩을 하도록 변경 * [#76] chore(SecurityConfig): 누락된 import문 추가 * [#76] chore(JwtTokenProvider): 누락된 코드 추가 * [#81] fix(JwtTokenProvider): jwtsecret을 인코딩하고 디코딩을 하도록 수정 (#82) --------- Co-authored-by: hyerinhwang-sailin * [deploy] merge to main (#87) * [deploy] merge to develop (#27) * [deploy] merge to main (#26) * [#2] chore(.gitignore): .gradle, .idea 파일 삭제 (#3) * [refactor] #4 - 도메인형 디렉터리 구조 변경 및 local, dev, prod 운영 환경 분리 (#5) * [#4] fix: 클래스 첫글자 대문자로 수정 * [#4] remove: enum 삭제 * [#4] feat(BaseSuccessCode): 성공 상태 관리를 위한 인터페이스 생성 * [#4] feat(BaseErrorCode): 에러 상태 관리를 위한 인터페이스 생성 * [#4] refactor: global 패키지로 이동 * [#4] refactor: 서버 운영 환경 분리 * [feat] #6 - dev, prod Dockerfile 분리 및 github Action CI workflow 구현 (#7) * [#6] feat(Dockerfile): prod용 도커 파일 구현 * [#6] feat(Dockerfile-dev): dev용 도커 파일 구현 * [#6] feat(dev-CI.yml): dev용 CI workflow 구현 * [#6] feat(prod-CI.yml): prod용 CI workflow 구현 * [#6] chore(.gitignore): gradle-wrapper.jar 파일은 레포지토리에 포함되도록 설정 * [#6] fix(gradle-wrapper.jar): .gitignore로 누락된 파일 추가 * [#6] chore(build.grade): plain jar 생성 방지 * [#9] docs(README.md): 서비스 소개 README v1 작성 (#10) * [#11] docs(README.md): 리드미 업데이트 (#12) * [feat] #13 - 유저, 예매, 공연, 회차 엔티티 생성 (#15) * [#13] feat(Users): 사용자 엔티티 생성 * [#13] feat(Genre): 장르 열거형 생성 * [#13] feat(BankName): 은행명 열거형 생성 * [#13] refactor(BaseTimeEntity): 업데이트 시간 관리 필드 활성화 * [#13] feat(Performance): 공연 엔티티 생성 * [#13] feat(ScheduleNumber): 회차 번호 열거형 생성 * [#13] feat(Schedule): 회차 엔티티 생성 * [#13] feat(Booking): 예매 엔티티 생성 * [#13] refactor(ScheduleNumber): 네이밍 수정 * [feat] #14 - 회원, 홍보, 등장인물, 스태프 엔티티 생성 (#16) * [#14] feat(Member): 멤버 엔티티 생성 * [#14] feat(Promotion): 홍보 엔티티 생성 * [#14] feat(Cast): 등장인물 엔티티 생성 * [#14] feat(Staff): 스태프 엔티티 생성 * [feat] #13 - 유저, 예매, 공연, 회차 엔티티 생성 (#15) * [#13] feat(Users): 사용자 엔티티 생성 * [#13] feat(Genre): 장르 열거형 생성 * [#13] feat(BankName): 은행명 열거형 생성 * [#13] refactor(BaseTimeEntity): 업데이트 시간 관리 필드 활성화 * [#13] feat(Performance): 공연 엔티티 생성 * [#13] feat(ScheduleNumber): 회차 번호 열거형 생성 * [#13] feat(Schedule): 회차 엔티티 생성 * [#13] feat(Booking): 예매 엔티티 생성 * [#13] refactor(ScheduleNumber): 네이밍 수정 * [#14} fix: 스태프, 등장인물, 홍보 엔티티 상속관계 수정 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [#18] feat(Jenkinsfile): 젠킨스 파일 생성 (#19) * [#20] refactor(Jenkinsfile): 젠킨스 파일 Webhook 테스트용 커밋 (#21) * [#22] feat(Jenkinsfile): Jenkins multibranch 스크립트 작성 (#23) * HOTFIX(Jenkinsfile): Jenkins multibranch 스크립트 수정 * HOTFIX(workflows): 빌드 후 젠킨스 배포가 진행되도록 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * [#24] feat(Jenkinsfile): slack 연동 스크립트 작성 (#25) --------- Co-authored-by: hyerinhwang-sailin * HOTFIX(workflow): 오타 수정 --------- Co-authored-by: hyerinhwang-sailin * [feat] #28 - 비회원 예매 조회 POST API 구현 (#29) * chore(application-dev.yml): dialect 추가 * chore(application-prod.yml): dialect 추가 * [#28] chore(build.gradle): security 의존성 비활성화 - security 일시적으로 비활성화 * [#28] refactor(Booking): 예매 엔티티에 빌더 및 정적팩토리 메서드 추가 * [#28] refactor(ErrorResponse): 정적 팩토리 메서드 네이밍 변환 * [#28] refactor(Schedule): 회차 엔티티에 빌더 및 정적 팩토리 메서드 추가 * [#28] refactor(Performance): 공연 엔티티에 빌더 및 정적 팩토리 메서드 추가 * [#28] refactor(SuccessResponse): 정적 팩토리 메서드 네이밍 변환 * [#28] refactor(GlobalExceptionHandler): INTERNAL_SERVER_ERROR 핸들러 메서드 추가 * [#28] feat(BookingSuccessCode): 예매 성공 메시지를 관리하는 열거형 생성 * [#28] feat(BookingErrorCode): 예매 에러 메시지를 관리하는 열거형 생성 * [#28] feat(BookingRetrieveResponse): 예매 조회 응답 DTO 생성 * [#28] feat(BookingRetrieveRequest): 예매 조회 요청 DTO 생성 * [#28] feat(BookingRepository): 예매 레포지토리 생성 및 비회원 예매 조회 시 예매 내역 가져오는 메서드 구현 * [#28] feat(BookingService): 예매 서비스 레이어 생성 및 비회원 조회 메서드 구현 * [#28] feat(BookingController): 예매 컨트롤러 생성 및 비회원 예매조회 POST API 구현 * [feat] #30 - SwaggerConfig 및 WebConfig 구현 (#31) * [#30] chore(build.gradle): springdoc 의존성 추가 * [#30] feat(SwaggerConfig): SwaggerConfig 추가 * [#30] feat(WebConfig): WebConfig 추가 * HOTFIX(workflows): push 이벤트 시 github action이 빌드 되지 않도록 수정 * HOTFIX(Jenkinsfile): 포트 수정 * [feat] #32 - 티켓 예매 가능 여부 GET API 구현 (#33) * [#32] refactor(BookingController): 메서드명 수정 * [#32] feat(ConflictException): Conflict 409에러 클래스 생성 * [#32] feat(GlobalExceptionHandler): ConflictException 등록 * [#32] feat(TicketAvailabilityRequest): TicketAvailabilityRequest DTO 생성 * [#32] feat(TicketAvailabilityResponse): TicketAvailabilityResponse DTO 생성 * [#32] feat(ScheduleSuccessCode): ScheduleSuccessCode 열거형 생성 * [#32] feat(ScheduleErrorCode): ScheduleErrorCode 열거형 생성 * [#32] feat(ScheduleRepository): ScheduleRepository 생성 * [#32] feat(ScheduleService): ScheduleService 생성 및 회차별 티켓 구매 가능 여부 판단 메서드 구현 * [#32] feat(ScheduleController): 회차별 티켓 수량 조회 GET API 구현 * [feat] #17 - 카카오 소셜 로그인 API 구현 (#36) * [#17] feat(build.gradle): jwt, security, open feign, Redis 의존성 추가 * [#17] feat(BeatApplication): OpenFeign 관련 어노테이션 추가 * [#17] feat(RedisConfig): redis 설정 * [#17] feat: redis 활용 jwt 토큰 생성 로직 구현 * [#17] feat(SecurityConfig): security 설정 * [#17] refactor: Member, Users 엔티티 수정 및 관련 enum 추가 * [#17] feat: Member, Users 도메인 관련 인증 로직 구현 * [#17] feat(MemberController): Member 관련 API 엔드포인트 구현 * [#17] feat: Security 관련 인증 객체 구현 * [#17] feat: 소셜로그인 로직 구현 * [#17] fix: 소셜로그인 오류 해결 * [#17] refactor: 코드리뷰 반영 * [#17] refactor: 코드리뷰 반영 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [feat] #34 - 비회원 예매 POST API 구현 (#35) * [#34] feat(Users): 빌더 및 정적 팩토리 메서드 추가 * [#34] feat(Entity): 엔티티 id 필드 수정 * [#34] refactor(application.yml): dialect 추가 * [#34] refactor(ScheduleService): 네이밍 수정 * [#34] refactor(BookingSuccessCode): 비회원 예매 조회 성공 메시지 추가 * [#34] feat(GuestBookingRequest): 비회원 예매 요청 DTO 생성 * [#34] feat(GuestBookingResponse): 비회원 예매 응답 DTO 생성 * [#34] refactor(BookingRetrieveService): 네이밍 수정 * [#34] feat(PerformanceRepository): 공연 레포지토리 생성 * [#34] feat(UserRepository): 유저 레포지토리 생성 * [#34] refactor(BookingRepository): 비회원 예매 시 네가지 정보가 모두 일치 해야만 다른 유저로 판단하는 메서드 구현 * [#34] refactor(ScheduleRepository): 비관적 락 적용 * [#34] feat(GuestBookingService): 비관적 락을 이용해 비회원 예매 로직 구현 * [#34] feat(BookingController): 비회원 예매 POST API 구현 * [#34] test(GuestBookingServiceConcurrencyTest): 동시성 테스트 구현 * [Refactor] #37 - 카카오 로그인 API response 수정 (#39) * [#37] rename: 빈 충돌 해결 위해 UserRepository를 UsersRepository로 rename * [#37] refactor: login response에서 refreshToken을 cookie에 담아주도록 변경 * [#37] fix: dao, repository 충돌 해결 * [#37] refactor: 어노테이션 수정 * [feat] #40 - 소개 관련 공연 정보 조회 GET API 구현 (#41) * [#40] feat: repository 추가 * [#40] feat: 공연 관련 성공, 실패 메세지 추가 * [#40] feat(PerformanceDetailResponse): 공연 상세페이지 조회 응답 dto * [#40] feat(PerformanceService): 공연 상세페이지 조회 로직 구현 * [#40] feat(PerformanceController): 공연 상세페이지 엔드포인트 구현 * [#40] feat(SecurityConfig): auth whitelist update * [#40] refactor: dto 분리 및 rename * [feat] #42 - 예매 관련 공연 정보 GET API 구현 (#43) * [#42] feat: 예매 관련 정보 조회 dto 생성 * [#42] feat: 예매 관련 정보 조회 성공 메세지 추가 * [#42] feat(ScheduleService): 잔여티켓계산, 예매가능여부확인, 예매가능여부 update 메소드 구현 * [#42] feat(PerformanceService): 예매관련공연정보의 response 생성하는 로직 구현 * [#42] feat(PerformanceController): 예매관련공연정보 조회 엔드포인트 구현 * [#42] feat(SecurityConfig): auth_whitelist update * [#42] refactor(ScheduleService): findTicketAvailability에서 getAvailableTicketCount method 사용하도록 수정 * [feat] #38 - 회원 예매 POST API 구현 (#45) * [#38] fix(Cast): Join 하는 부분 수정 및 빌더와 정적 팩토리 메서드 패턴 도입 * [#38] chore(application.yml): 계층 수정 * [#38] feat: 커스텀 어노테이션 생성 * [#38] fix(UserRepository): 중복된 클래스 삭제 * [#38] feat(UserErrorCode): 유저의 에러 메시지를 관리하는 열거형 생성 * [#38] refactor(MemberErrorCode): message 목적에 맞게 변경 * [#38] refactor(BookingSuccessCode): 회원 예매 성공 메시지 추가 * [#38] feat: 커스텀 어노테이션 생성 커밋에 누락된 클래스 추가 * [#38] refactor(GuestBookingService): schedule에서 바로 get 하도록 수정 * [#38] test(GuestBookingServiceConcurrencyTest): import문 경로명 변경 * [#38] refactor(MemberService): @Transactional 어노테이션이 필요한 메서드에 해당 옵션 추가 * [#38] feat(MemberBookingRequest): 회원 예매 요청 DTO 생성 * [#38] feat(MemberBookingResponse): 회원 예매 응답 DTO 생성 * [#38] refactor(MemberController): refreshToken을 쿠키에 넣어주도록 구현 * [#38] feat(MemberBookingService): 회원 예매 서비스 로직 구현 * [#38] feat(BookingController): 회원 예매 요청 POST API 구현 * [#38] fix: 빌드 안되는 부분 수정 * [#38] remove(MemberBookingService): 사용하지 않는 import문 삭제 * [#38] refactor: 커스텀 어노테이션 이름 수정 * [feat] #44 - 홈페이지 공연 및 홍보 조회 GET API 구현 (#47) * [#44] refactor: 코드리뷰 반영 * [#44] fix(Promotion): 기본키 이름 수정, performanceId 연관관계 설정 * [#44] feat: Repository 및 관련 로직 추가 * [#44] feat: errorcode, successcode 추가 * [#44] feat: 홈페이지 request, response dto 생성 * [#44] feat(ScheduleService): dueDate 관련 로직 구현 * [#44] feat(PerformanceService): 홈페이지 정렬 및 response 생성 로직 구현 * [#44] chore: import문 추가 * [feat] #46 - 회원 예매 조회 GET API 구현 (#48) * [#46] remove(BookingRetrieveRequest): 클래스 삭제 * [#46] refactor(BookingSuccessCode): 회원 예매 조회 성공 메시지 추가 * [#46] refactor(GuestBookingRetrieveResponse): 클래스 명 변경 * [#46] refactor(GuestBookingRetrieveRequest): 안쓰는 코드 주석처리 * [#46] refactor(GuestBookingRetrieveService): 클래스 명 수정으로 인한 리팩토링 * [#46] refactor(SecurityConfig): 토큰 사용하지 않는 api 경로 추가하기 * [#46] refactor(BookingRepository): userId로 예약 정보를 가져오는 JPA 메서드 구현 * [#46] feat(MemberBookingRetrieveResponse): 회원 조회 응답 DTO 생성 * [#46] feat(MemberBookingRetrieveService): 회원 예매 조회 로직을 담당하는 서비스 레이어 구현 * [#46] feat(BookingController): 회원 예매 조회 GET API 구현 * [feat] #49 - 예매자 관리 API 구현 (#51) * [#49] feat: 티켓 관련 success, error code 추가 * [#49] feat(Booking): 입금여부 setter 메소드 추가 * [#49] feat(TicketRetrieveResponse): 예매자 확인 response dto 생성 * [#49] feat(Ticket): 예매자 확인용 티켓 정보 response dto 생성 * [#49] feat(TicketRepository): 예매자 필터링용 메소드 생성 * [#49] feat: 예매자 입금정보 수정 request dto 생성 * [#49] feat(TicketDeleteRequest): 예매자 삭제 request dto 생성 * [#49] feat(TicketService): 예매자 관리 관련 로직 구현 * [#49] feat(TicketController): 예매자 관리 엔드포인트 구현 * [#49] chore: swagger annotation 추가 * HOTFIX(SecurityConfig): WHITELIST 경로명 수정 * [fix] #52 - auth whitelist 수정 (#53) * [#52]fix(SecurityConfig): auth_whitelist 수정 * [#52]fix(SecurityConfig): auth_whitelist 수정 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [feat] #54 - 등록한 공연 목록 조회 GET API 구현 (#55) * [#54] feat(PerformanceSuccessCode): success code 추가 * [#54] feat: 회원이 등록한 공연목록 조회 dto 생성 * [#54] feat(PerformanceService): 회원이 등록한 공연목록 조회 로직 구현 * [#54] feat(PerformanceRepository): 회원이 등록한 공연목록 조회 관련 메소드 추가 * [#54] feat(PerformanceController): 회원이 등록한 공연목록 조회 엔드포인트 생성 * [#54] fix(TicketService): exception error 수정 * [#54] chore(application.yml): yml 수정 * [fix] #58 - dev-ci.yml, prod-ci.yml 환경변수 추가 (#59) * [#58] fix(dev-CI.yml): Dev 서버 CI 워크플로우 수정 * [#58] fix(prod-CI.yml): Prod 서버 CI 워크플로우 수정 * [refactor] #61 - Performance Entity field 추가 (#62) * [#61] refactor(Performance): bankHolder 필드 추가 * [#61] chore(BookingController): swagger annotation 수정 * [feat] #63 - healthCheckController 생성 (#64) * [#63] remove(UsersRepository): 중복 클래스 삭제 * [#63] feat(HealthCheckController): healthcheck 컨트롤러 생성 * [feat] #63 - health check URL 화이트리스트에 등록 (#67) * [#63] remove(UsersRepository): 중복 클래스 삭제 * [#63] feat(HealthCheckController): healthcheck 컨트롤러 생성 * [#63] feat(SecurityConfig): healthcheck url white_list에 등록 * [fix] #57 - entity 연관관계 설정 SecurityConfig 수정 (#65) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [fix] #57 - security 관련 에러 대응 (#71) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 * [#57] fix(JwtAuthenticationFilter): 에러 로직 수정 * fix(SecurityConfig): webSecurityCustomizer 로직 추가 * [fix] #73 - security 수정 (#74) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 * [#57] fix(JwtAuthenticationFilter): 에러 로직 수정 * fix(SecurityConfig): webSecurityCustomizer 로직 추가 * [#57] fix:security 수정 * [#76] fix(SecurityConfig): Base64 인코딩을 하도록 변경 (#77) * [fix] #76 - 누락된 코드 추가 (#79) * [#76] fix(SecurityConfig): Base64 인코딩을 하도록 변경 * [#76] chore(SecurityConfig): 누락된 import문 추가 * [#76] chore(JwtTokenProvider): 누락된 코드 추가 * [#81] fix(JwtTokenProvider): jwtsecret을 인코딩하고 디코딩을 하도록 수정 (#82) * [#85] chore(application.yml): 환경변수 설정 (#86) --------- Co-authored-by: hyerinhwang-sailin --------- Co-authored-by: hyerinhwang-sailin * Revert "[deploy] merge to main (#90)" (#91) This reverts commit f519b0c82a2f01d4374eb045b9e90c6303381e50. * [fix] #93 - 누락된 어노테이션 및 누락된 경로명 추가 (#94) * [#93] fix(HealthCheckController): 누락된 어노테이션 추가 * [#93] refactor(SecurityConfig): 누락된 경로명 추가 * [bug] #84 - actuator/health 의존성 및 설정 추가 (#96) * [#84] chore(build.gradle): 의존성 추가 * [#84] chore: health/actuator yml 설정 추가 * [#84] chore: redis yml 설정 추가 * [#84] chore: yml 수정 (#99) * [bug] #101 - yml, s3 수정 (#102) * [#101] chore: yml 수정 * [#101] feat: s3 추가 * HOTIFX: prod ci-yml 수정 * Main redis host yml 수정 (#105) * [deploy] merge to main (#104) * [deploy] merge to develop (#27) * [deploy] merge to main (#26) * [#2] chore(.gitignore): .gradle, .idea 파일 삭제 (#3) * [refactor] #4 - 도메인형 디렉터리 구조 변경 및 local, dev, prod 운영 환경 분리 (#5) * [#4] fix: 클래스 첫글자 대문자로 수정 * [#4] remove: enum 삭제 * [#4] feat(BaseSuccessCode): 성공 상태 관리를 위한 인터페이스 생성 * [#4] feat(BaseErrorCode): 에러 상태 관리를 위한 인터페이스 생성 * [#4] refactor: global 패키지로 이동 * [#4] refactor: 서버 운영 환경 분리 * [feat] #6 - dev, prod Dockerfile 분리 및 github Action CI workflow 구현 (#7) * [#6] feat(Dockerfile): prod용 도커 파일 구현 * [#6] feat(Dockerfile-dev): dev용 도커 파일 구현 * [#6] feat(dev-CI.yml): dev용 CI workflow 구현 * [#6] feat(prod-CI.yml): prod용 CI workflow 구현 * [#6] chore(.gitignore): gradle-wrapper.jar 파일은 레포지토리에 포함되도록 설정 * [#6] fix(gradle-wrapper.jar): .gitignore로 누락된 파일 추가 * [#6] chore(build.grade): plain jar 생성 방지 * [#9] docs(README.md): 서비스 소개 README v1 작성 (#10) * [#11] docs(README.md): 리드미 업데이트 (#12) * [feat] #13 - 유저, 예매, 공연, 회차 엔티티 생성 (#15) * [#13] feat(Users): 사용자 엔티티 생성 * [#13] feat(Genre): 장르 열거형 생성 * [#13] feat(BankName): 은행명 열거형 생성 * [#13] refactor(BaseTimeEntity): 업데이트 시간 관리 필드 활성화 * [#13] feat(Performance): 공연 엔티티 생성 * [#13] feat(ScheduleNumber): 회차 번호 열거형 생성 * [#13] feat(Schedule): 회차 엔티티 생성 * [#13] feat(Booking): 예매 엔티티 생성 * [#13] refactor(ScheduleNumber): 네이밍 수정 * [feat] #14 - 회원, 홍보, 등장인물, 스태프 엔티티 생성 (#16) * [#14] feat(Member): 멤버 엔티티 생성 * [#14] feat(Promotion): 홍보 엔티티 생성 * [#14] feat(Cast): 등장인물 엔티티 생성 * [#14] feat(Staff): 스태프 엔티티 생성 * [feat] #13 - 유저, 예매, 공연, 회차 엔티티 생성 (#15) * [#13] feat(Users): 사용자 엔티티 생성 * [#13] feat(Genre): 장르 열거형 생성 * [#13] feat(BankName): 은행명 열거형 생성 * [#13] refactor(BaseTimeEntity): 업데이트 시간 관리 필드 활성화 * [#13] feat(Performance): 공연 엔티티 생성 * [#13] feat(ScheduleNumber): 회차 번호 열거형 생성 * [#13] feat(Schedule): 회차 엔티티 생성 * [#13] feat(Booking): 예매 엔티티 생성 * [#13] refactor(ScheduleNumber): 네이밍 수정 * [#14} fix: 스태프, 등장인물, 홍보 엔티티 상속관계 수정 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [#18] feat(Jenkinsfile): 젠킨스 파일 생성 (#19) * [#20] refactor(Jenkinsfile): 젠킨스 파일 Webhook 테스트용 커밋 (#21) * [#22] feat(Jenkinsfile): Jenkins multibranch 스크립트 작성 (#23) * HOTFIX(Jenkinsfile): Jenkins multibranch 스크립트 수정 * HOTFIX(workflows): 빌드 후 젠킨스 배포가 진행되도록 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * [#24] feat(Jenkinsfile): slack 연동 스크립트 작성 (#25) --------- Co-authored-by: hyerinhwang-sailin * HOTFIX(workflow): 오타 수정 --------- Co-authored-by: hyerinhwang-sailin * [feat] #28 - 비회원 예매 조회 POST API 구현 (#29) * chore(application-dev.yml): dialect 추가 * chore(application-prod.yml): dialect 추가 * [#28] chore(build.gradle): security 의존성 비활성화 - security 일시적으로 비활성화 * [#28] refactor(Booking): 예매 엔티티에 빌더 및 정적팩토리 메서드 추가 * [#28] refactor(ErrorResponse): 정적 팩토리 메서드 네이밍 변환 * [#28] refactor(Schedule): 회차 엔티티에 빌더 및 정적 팩토리 메서드 추가 * [#28] refactor(Performance): 공연 엔티티에 빌더 및 정적 팩토리 메서드 추가 * [#28] refactor(SuccessResponse): 정적 팩토리 메서드 네이밍 변환 * [#28] refactor(GlobalExceptionHandler): INTERNAL_SERVER_ERROR 핸들러 메서드 추가 * [#28] feat(BookingSuccessCode): 예매 성공 메시지를 관리하는 열거형 생성 * [#28] feat(BookingErrorCode): 예매 에러 메시지를 관리하는 열거형 생성 * [#28] feat(BookingRetrieveResponse): 예매 조회 응답 DTO 생성 * [#28] feat(BookingRetrieveRequest): 예매 조회 요청 DTO 생성 * [#28] feat(BookingRepository): 예매 레포지토리 생성 및 비회원 예매 조회 시 예매 내역 가져오는 메서드 구현 * [#28] feat(BookingService): 예매 서비스 레이어 생성 및 비회원 조회 메서드 구현 * [#28] feat(BookingController): 예매 컨트롤러 생성 및 비회원 예매조회 POST API 구현 * [feat] #30 - SwaggerConfig 및 WebConfig 구현 (#31) * [#30] chore(build.gradle): springdoc 의존성 추가 * [#30] feat(SwaggerConfig): SwaggerConfig 추가 * [#30] feat(WebConfig): WebConfig 추가 * HOTFIX(workflows): push 이벤트 시 github action이 빌드 되지 않도록 수정 * HOTFIX(Jenkinsfile): 포트 수정 * [feat] #32 - 티켓 예매 가능 여부 GET API 구현 (#33) * [#32] refactor(BookingController): 메서드명 수정 * [#32] feat(ConflictException): Conflict 409에러 클래스 생성 * [#32] feat(GlobalExceptionHandler): ConflictException 등록 * [#32] feat(TicketAvailabilityRequest): TicketAvailabilityRequest DTO 생성 * [#32] feat(TicketAvailabilityResponse): TicketAvailabilityResponse DTO 생성 * [#32] feat(ScheduleSuccessCode): ScheduleSuccessCode 열거형 생성 * [#32] feat(ScheduleErrorCode): ScheduleErrorCode 열거형 생성 * [#32] feat(ScheduleRepository): ScheduleRepository 생성 * [#32] feat(ScheduleService): ScheduleService 생성 및 회차별 티켓 구매 가능 여부 판단 메서드 구현 * [#32] feat(ScheduleController): 회차별 티켓 수량 조회 GET API 구현 * [feat] #17 - 카카오 소셜 로그인 API 구현 (#36) * [#17] feat(build.gradle): jwt, security, open feign, Redis 의존성 추가 * [#17] feat(BeatApplication): OpenFeign 관련 어노테이션 추가 * [#17] feat(RedisConfig): redis 설정 * [#17] feat: redis 활용 jwt 토큰 생성 로직 구현 * [#17] feat(SecurityConfig): security 설정 * [#17] refactor: Member, Users 엔티티 수정 및 관련 enum 추가 * [#17] feat: Member, Users 도메인 관련 인증 로직 구현 * [#17] feat(MemberController): Member 관련 API 엔드포인트 구현 * [#17] feat: Security 관련 인증 객체 구현 * [#17] feat: 소셜로그인 로직 구현 * [#17] fix: 소셜로그인 오류 해결 * [#17] refactor: 코드리뷰 반영 * [#17] refactor: 코드리뷰 반영 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [feat] #34 - 비회원 예매 POST API 구현 (#35) * [#34] feat(Users): 빌더 및 정적 팩토리 메서드 추가 * [#34] feat(Entity): 엔티티 id 필드 수정 * [#34] refactor(application.yml): dialect 추가 * [#34] refactor(ScheduleService): 네이밍 수정 * [#34] refactor(BookingSuccessCode): 비회원 예매 조회 성공 메시지 추가 * [#34] feat(GuestBookingRequest): 비회원 예매 요청 DTO 생성 * [#34] feat(GuestBookingResponse): 비회원 예매 응답 DTO 생성 * [#34] refactor(BookingRetrieveService): 네이밍 수정 * [#34] feat(PerformanceRepository): 공연 레포지토리 생성 * [#34] feat(UserRepository): 유저 레포지토리 생성 * [#34] refactor(BookingRepository): 비회원 예매 시 네가지 정보가 모두 일치 해야만 다른 유저로 판단하는 메서드 구현 * [#34] refactor(ScheduleRepository): 비관적 락 적용 * [#34] feat(GuestBookingService): 비관적 락을 이용해 비회원 예매 로직 구현 * [#34] feat(BookingController): 비회원 예매 POST API 구현 * [#34] test(GuestBookingServiceConcurrencyTest): 동시성 테스트 구현 * [Refactor] #37 - 카카오 로그인 API response 수정 (#39) * [#37] rename: 빈 충돌 해결 위해 UserRepository를 UsersRepository로 rename * [#37] refactor: login response에서 refreshToken을 cookie에 담아주도록 변경 * [#37] fix: dao, repository 충돌 해결 * [#37] refactor: 어노테이션 수정 * [feat] #40 - 소개 관련 공연 정보 조회 GET API 구현 (#41) * [#40] feat: repository 추가 * [#40] feat: 공연 관련 성공, 실패 메세지 추가 * [#40] feat(PerformanceDetailResponse): 공연 상세페이지 조회 응답 dto * [#40] feat(PerformanceService): 공연 상세페이지 조회 로직 구현 * [#40] feat(PerformanceController): 공연 상세페이지 엔드포인트 구현 * [#40] feat(SecurityConfig): auth whitelist update * [#40] refactor: dto 분리 및 rename * [feat] #42 - 예매 관련 공연 정보 GET API 구현 (#43) * [#42] feat: 예매 관련 정보 조회 dto 생성 * [#42] feat: 예매 관련 정보 조회 성공 메세지 추가 * [#42] feat(ScheduleService): 잔여티켓계산, 예매가능여부확인, 예매가능여부 update 메소드 구현 * [#42] feat(PerformanceService): 예매관련공연정보의 response 생성하는 로직 구현 * [#42] feat(PerformanceController): 예매관련공연정보 조회 엔드포인트 구현 * [#42] feat(SecurityConfig): auth_whitelist update * [#42] refactor(ScheduleService): findTicketAvailability에서 getAvailableTicketCount method 사용하도록 수정 * [feat] #38 - 회원 예매 POST API 구현 (#45) * [#38] fix(Cast): Join 하는 부분 수정 및 빌더와 정적 팩토리 메서드 패턴 도입 * [#38] chore(application.yml): 계층 수정 * [#38] feat: 커스텀 어노테이션 생성 * [#38] fix(UserRepository): 중복된 클래스 삭제 * [#38] feat(UserErrorCode): 유저의 에러 메시지를 관리하는 열거형 생성 * [#38] refactor(MemberErrorCode): message 목적에 맞게 변경 * [#38] refactor(BookingSuccessCode): 회원 예매 성공 메시지 추가 * [#38] feat: 커스텀 어노테이션 생성 커밋에 누락된 클래스 추가 * [#38] refactor(GuestBookingService): schedule에서 바로 get 하도록 수정 * [#38] test(GuestBookingServiceConcurrencyTest): import문 경로명 변경 * [#38] refactor(MemberService): @Transactional 어노테이션이 필요한 메서드에 해당 옵션 추가 * [#38] feat(MemberBookingRequest): 회원 예매 요청 DTO 생성 * [#38] feat(MemberBookingResponse): 회원 예매 응답 DTO 생성 * [#38] refactor(MemberController): refreshToken을 쿠키에 넣어주도록 구현 * [#38] feat(MemberBookingService): 회원 예매 서비스 로직 구현 * [#38] feat(BookingController): 회원 예매 요청 POST API 구현 * [#38] fix: 빌드 안되는 부분 수정 * [#38] remove(MemberBookingService): 사용하지 않는 import문 삭제 * [#38] refactor: 커스텀 어노테이션 이름 수정 * [feat] #44 - 홈페이지 공연 및 홍보 조회 GET API 구현 (#47) * [#44] refactor: 코드리뷰 반영 * [#44] fix(Promotion): 기본키 이름 수정, performanceId 연관관계 설정 * [#44] feat: Repository 및 관련 로직 추가 * [#44] feat: errorcode, successcode 추가 * [#44] feat: 홈페이지 request, response dto 생성 * [#44] feat(ScheduleService): dueDate 관련 로직 구현 * [#44] feat(PerformanceService): 홈페이지 정렬 및 response 생성 로직 구현 * [#44] chore: import문 추가 * [feat] #46 - 회원 예매 조회 GET API 구현 (#48) * [#46] remove(BookingRetrieveRequest): 클래스 삭제 * [#46] refactor(BookingSuccessCode): 회원 예매 조회 성공 메시지 추가 * [#46] refactor(GuestBookingRetrieveResponse): 클래스 명 변경 * [#46] refactor(GuestBookingRetrieveRequest): 안쓰는 코드 주석처리 * [#46] refactor(GuestBookingRetrieveService): 클래스 명 수정으로 인한 리팩토링 * [#46] refactor(SecurityConfig): 토큰 사용하지 않는 api 경로 추가하기 * [#46] refactor(BookingRepository): userId로 예약 정보를 가져오는 JPA 메서드 구현 * [#46] feat(MemberBookingRetrieveResponse): 회원 조회 응답 DTO 생성 * [#46] feat(MemberBookingRetrieveService): 회원 예매 조회 로직을 담당하는 서비스 레이어 구현 * [#46] feat(BookingController): 회원 예매 조회 GET API 구현 * [feat] #49 - 예매자 관리 API 구현 (#51) * [#49] feat: 티켓 관련 success, error code 추가 * [#49] feat(Booking): 입금여부 setter 메소드 추가 * [#49] feat(TicketRetrieveResponse): 예매자 확인 response dto 생성 * [#49] feat(Ticket): 예매자 확인용 티켓 정보 response dto 생성 * [#49] feat(TicketRepository): 예매자 필터링용 메소드 생성 * [#49] feat: 예매자 입금정보 수정 request dto 생성 * [#49] feat(TicketDeleteRequest): 예매자 삭제 request dto 생성 * [#49] feat(TicketService): 예매자 관리 관련 로직 구현 * [#49] feat(TicketController): 예매자 관리 엔드포인트 구현 * [#49] chore: swagger annotation 추가 * HOTFIX(SecurityConfig): WHITELIST 경로명 수정 * [fix] #52 - auth whitelist 수정 (#53) * [#52]fix(SecurityConfig): auth_whitelist 수정 * [#52]fix(SecurityConfig): auth_whitelist 수정 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [feat] #54 - 등록한 공연 목록 조회 GET API 구현 (#55) * [#54] feat(PerformanceSuccessCode): success code 추가 * [#54] feat: 회원이 등록한 공연목록 조회 dto 생성 * [#54] feat(PerformanceService): 회원이 등록한 공연목록 조회 로직 구현 * [#54] feat(PerformanceRepository): 회원이 등록한 공연목록 조회 관련 메소드 추가 * [#54] feat(PerformanceController): 회원이 등록한 공연목록 조회 엔드포인트 생성 * [#54] fix(TicketService): exception error 수정 * [#54] chore(application.yml): yml 수정 * [fix] #58 - dev-ci.yml, prod-ci.yml 환경변수 추가 (#59) * [#58] fix(dev-CI.yml): Dev 서버 CI 워크플로우 수정 * [#58] fix(prod-CI.yml): Prod 서버 CI 워크플로우 수정 * [refactor] #61 - Performance Entity field 추가 (#62) * [#61] refactor(Performance): bankHolder 필드 추가 * [#61] chore(BookingController): swagger annotation 수정 * [feat] #63 - healthCheckController 생성 (#64) * [#63] remove(UsersRepository): 중복 클래스 삭제 * [#63] feat(HealthCheckController): healthcheck 컨트롤러 생성 * [feat] #63 - health check URL 화이트리스트에 등록 (#67) * [#63] remove(UsersRepository): 중복 클래스 삭제 * [#63] feat(HealthCheckController): healthcheck 컨트롤러 생성 * [#63] feat(SecurityConfig): healthcheck url white_list에 등록 * [fix] #57 - entity 연관관계 설정 SecurityConfig 수정 (#65) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [fix] #57 - security 관련 에러 대응 (#71) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 * [#57] fix(JwtAuthenticationFilter): 에러 로직 수정 * fix(SecurityConfig): webSecurityCustomizer 로직 추가 * [fix] #73 - security 수정 (#74) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 * [#57] fix(JwtAuthenticationFilter): 에러 로직 수정 * fix(SecurityConfig): webSecurityCustomizer 로직 추가 * [#57] fix:security 수정 * [#76] fix(SecurityConfig): Base64 인코딩을 하도록 변경 (#77) * [fix] #76 - 누락된 코드 추가 (#79) * [#76] fix(SecurityConfig): Base64 인코딩을 하도록 변경 * [#76] chore(SecurityConfig): 누락된 import문 추가 * [#76] chore(JwtTokenProvider): 누락된 코드 추가 * [#81] fix(JwtTokenProvider): jwtsecret을 인코딩하고 디코딩을 하도록 수정 (#82) * [#85] chore(application.yml): 환경변수 설정 (#86) * [chore] #88 - 레디스 환경변수 추가 (#89) * [#88] chore(dev-CI.yml): dev서버 레디스 환경변수 설정 추가 * [#88] chore(prod-CI.yml): prod 서버 레디스 환경변수 설정 추가 * [deploy] merge to main (#90) * [deploy] merge to main (#83) * [deploy] merge to develop (#27) * [deploy] merge to main (#26) * [#2] chore(.gitignore): .gradle, .idea 파일 삭제 (#3) * [refactor] #4 - 도메인형 디렉터리 구조 변경 및 local, dev, prod 운영 환경 분리 (#5) * [#4] fix: 클래스 첫글자 대문자로 수정 * [#4] remove: enum 삭제 * [#4] feat(BaseSuccessCode): 성공 상태 관리를 위한 인터페이스 생성 * [#4] feat(BaseErrorCode): 에러 상태 관리를 위한 인터페이스 생성 * [#4] refactor: global 패키지로 이동 * [#4] refactor: 서버 운영 환경 분리 * [feat] #6 - dev, prod Dockerfile 분리 및 github Action CI workflow 구현 (#7) * [#6] feat(Dockerfile): prod용 도커 파일 구현 * [#6] feat(Dockerfile-dev): dev용 도커 파일 구현 * [#6] feat(dev-CI.yml): dev용 CI workflow 구현 * [#6] feat(prod-CI.yml): prod용 CI workflow 구현 * [#6] chore(.gitignore): gradle-wrapper.jar 파일은 레포지토리에 포함되도록 설정 * [#6] fix(gradle-wrapper.jar): .gitignore로 누락된 파일 추가 * [#6] chore(build.grade): plain jar 생성 방지 * [#9] docs(README.md): 서비스 소개 README v1 작성 (#10) * [#11] docs(README.md): 리드미 업데이트 (#12) * [feat] #13 - 유저, 예매, 공연, 회차 엔티티 생성 (#15) * [#13] feat(Users): 사용자 엔티티 생성 * [#13] feat(Genre): 장르 열거형 생성 * [#13] feat(BankName): 은행명 열거형 생성 * [#13] refactor(BaseTimeEntity): 업데이트 시간 관리 필드 활성화 * [#13] feat(Performance): 공연 엔티티 생성 * [#13] feat(ScheduleNumber): 회차 번호 열거형 생성 * [#13] feat(Schedule): 회차 엔티티 생성 * [#13] feat(Booking): 예매 엔티티 생성 * [#13] refactor(ScheduleNumber): 네이밍 수정 * [feat] #14 - 회원, 홍보, 등장인물, 스태프 엔티티 생성 (#16) * [#14] feat(Member): 멤버 엔티티 생성 * [#14] feat(Promotion): 홍보 엔티티 생성 * [#14] feat(Cast): 등장인물 엔티티 생성 * [#14] feat(Staff): 스태프 엔티티 생성 * [feat] #13 - 유저, 예매, 공연, 회차 엔티티 생성 (#15) * [#13] feat(Users): 사용자 엔티티 생성 * [#13] feat(Genre): 장르 열거형 생성 * [#13] feat(BankName): 은행명 열거형 생성 * [#13] refactor(BaseTimeEntity): 업데이트 시간 관리 필드 활성화 * [#13] feat(Performance): 공연 엔티티 생성 * [#13] feat(ScheduleNumber): 회차 번호 열거형 생성 * [#13] feat(Schedule): 회차 엔티티 생성 * [#13] feat(Booking): 예매 엔티티 생성 * [#13] refactor(ScheduleNumber): 네이밍 수정 * [#14} fix: 스태프, 등장인물, 홍보 엔티티 상속관계 수정 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [#18] feat(Jenkinsfile): 젠킨스 파일 생성 (#19) * [#20] refactor(Jenkinsfile): 젠킨스 파일 Webhook 테스트용 커밋 (#21) * [#22] feat(Jenkinsfile): Jenkins multibranch 스크립트 작성 (#23) * HOTFIX(Jenkinsfile): Jenkins multibranch 스크립트 수정 * HOTFIX(workflows): 빌드 후 젠킨스 배포가 진행되도록 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * [#24] feat(Jenkinsfile): slack 연동 스크립트 작성 (#25) --------- Co-authored-by: hyerinhwang-sailin * HOTFIX(workflow): 오타 수정 --------- Co-authored-by: hyerinhwang-sailin * [feat] #28 - 비회원 예매 조회 POST API 구현 (#29) * chore(application-dev.yml): dialect 추가 * chore(application-prod.yml): dialect 추가 * [#28] chore(build.gradle): security 의존성 비활성화 - security 일시적으로 비활성화 * [#28] refactor(Booking): 예매 엔티티에 빌더 및 정적팩토리 메서드 추가 * [#28] refactor(ErrorResponse): 정적 팩토리 메서드 네이밍 변환 * [#28] refactor(Schedule): 회차 엔티티에 빌더 및 정적 팩토리 메서드 추가 * [#28] refactor(Performance): 공연 엔티티에 빌더 및 정적 팩토리 메서드 추가 * [#28] refactor(SuccessResponse): 정적 팩토리 메서드 네이밍 변환 * [#28] refactor(GlobalExceptionHandler): INTERNAL_SERVER_ERROR 핸들러 메서드 추가 * [#28] feat(BookingSuccessCode): 예매 성공 메시지를 관리하는 열거형 생성 * [#28] feat(BookingErrorCode): 예매 에러 메시지를 관리하는 열거형 생성 * [#28] feat(BookingRetrieveResponse): 예매 조회 응답 DTO 생성 * [#28] feat(BookingRetrieveRequest): 예매 조회 요청 DTO 생성 * [#28] feat(BookingRepository): 예매 레포지토리 생성 및 비회원 예매 조회 시 예매 내역 가져오는 메서드 구현 * [#28] feat(BookingService): 예매 서비스 레이어 생성 및 비회원 조회 메서드 구현 * [#28] feat(BookingController): 예매 컨트롤러 생성 및 비회원 예매조회 POST API 구현 * [feat] #30 - SwaggerConfig 및 WebConfig 구현 (#31) * [#30] chore(build.gradle): springdoc 의존성 추가 * [#30] feat(SwaggerConfig): SwaggerConfig 추가 * [#30] feat(WebConfig): WebConfig 추가 * HOTFIX(workflows): push 이벤트 시 github action이 빌드 되지 않도록 수정 * HOTFIX(Jenkinsfile): 포트 수정 * [feat] #32 - 티켓 예매 가능 여부 GET API 구현 (#33) * [#32] refactor(BookingController): 메서드명 수정 * [#32] feat(ConflictException): Conflict 409에러 클래스 생성 * [#32] feat(GlobalExceptionHandler): ConflictException 등록 * [#32] feat(TicketAvailabilityRequest): TicketAvailabilityRequest DTO 생성 * [#32] feat(TicketAvailabilityResponse): TicketAvailabilityResponse DTO 생성 * [#32] feat(ScheduleSuccessCode): ScheduleSuccessCode 열거형 생성 * [#32] feat(ScheduleErrorCode): ScheduleErrorCode 열거형 생성 * [#32] feat(ScheduleRepository): ScheduleRepository 생성 * [#32] feat(ScheduleService): ScheduleService 생성 및 회차별 티켓 구매 가능 여부 판단 메서드 구현 * [#32] feat(ScheduleController): 회차별 티켓 수량 조회 GET API 구현 * [feat] #17 - 카카오 소셜 로그인 API 구현 (#36) * [#17] feat(build.gradle): jwt, security, open feign, Redis 의존성 추가 * [#17] feat(BeatApplication): OpenFeign 관련 어노테이션 추가 * [#17] feat(RedisConfig): redis 설정 * [#17] feat: redis 활용 jwt 토큰 생성 로직 구현 * [#17] feat(SecurityConfig): security 설정 * [#17] refactor: Member, Users 엔티티 수정 및 관련 enum 추가 * [#17] feat: Member, Users 도메인 관련 인증 로직 구현 * [#17] feat(MemberController): Member 관련 API 엔드포인트 구현 * [#17] feat: Security 관련 인증 객체 구현 * [#17] feat: 소셜로그인 로직 구현 * [#17] fix: 소셜로그인 오류 해결 * [#17] refactor: 코드리뷰 반영 * [#17] refactor: 코드리뷰 반영 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [feat] #34 - 비회원 예매 POST API 구현 (#35) * [#34] feat(Users): 빌더 및 정적 팩토리 메서드 추가 * [#34] feat(Entity): 엔티티 id 필드 수정 * [#34] refactor(application.yml): dialect 추가 * [#34] refactor(ScheduleService): 네이밍 수정 * [#34] refactor(BookingSuccessCode): 비회원 예매 조회 성공 메시지 추가 * [#34] feat(GuestBookingRequest): 비회원 예매 요청 DTO 생성 * [#34] feat(GuestBookingResponse): 비회원 예매 응답 DTO 생성 * [#34] refactor(BookingRetrieveService): 네이밍 수정 * [#34] feat(PerformanceRepository): 공연 레포지토리 생성 * [#34] feat(UserRepository): 유저 레포지토리 생성 * [#34] refactor(BookingRepository): 비회원 예매 시 네가지 정보가 모두 일치 해야만 다른 유저로 판단하는 메서드 구현 * [#34] refactor(ScheduleRepository): 비관적 락 적용 * [#34] feat(GuestBookingService): 비관적 락을 이용해 비회원 예매 로직 구현 * [#34] feat(BookingController): 비회원 예매 POST API 구현 * [#34] test(GuestBookingServiceConcurrencyTest): 동시성 테스트 구현 * [Refactor] #37 - 카카오 로그인 API response 수정 (#39) * [#37] rename: 빈 충돌 해결 위해 UserRepository를 UsersRepository로 rename * [#37] refactor: login response에서 refreshToken을 cookie에 담아주도록 변경 * [#37] fix: dao, repository 충돌 해결 * [#37] refactor: 어노테이션 수정 * [feat] #40 - 소개 관련 공연 정보 조회 GET API 구현 (#41) * [#40] feat: repository 추가 * [#40] feat: 공연 관련 성공, 실패 메세지 추가 * [#40] feat(PerformanceDetailResponse): 공연 상세페이지 조회 응답 dto * [#40] feat(PerformanceService): 공연 상세페이지 조회 로직 구현 * [#40] feat(PerformanceController): 공연 상세페이지 엔드포인트 구현 * [#40] feat(SecurityConfig): auth whitelist update * [#40] refactor: dto 분리 및 rename * [feat] #42 - 예매 관련 공연 정보 GET API 구현 (#43) * [#42] feat: 예매 관련 정보 조회 dto 생성 * [#42] feat: 예매 관련 정보 조회 성공 메세지 추가 * [#42] feat(ScheduleService): 잔여티켓계산, 예매가능여부확인, 예매가능여부 update 메소드 구현 * [#42] feat(PerformanceService): 예매관련공연정보의 response 생성하는 로직 구현 * [#42] feat(PerformanceController): 예매관련공연정보 조회 엔드포인트 구현 * [#42] feat(SecurityConfig): auth_whitelist update * [#42] refactor(ScheduleService): findTicketAvailability에서 getAvailableTicketCount method 사용하도록 수정 * [feat] #38 - 회원 예매 POST API 구현 (#45) * [#38] fix(Cast): Join 하는 부분 수정 및 빌더와 정적 팩토리 메서드 패턴 도입 * [#38] chore(application.yml): 계층 수정 * [#38] feat: 커스텀 어노테이션 생성 * [#38] fix(UserRepository): 중복된 클래스 삭제 * [#38] feat(UserErrorCode): 유저의 에러 메시지를 관리하는 열거형 생성 * [#38] refactor(MemberErrorCode): message 목적에 맞게 변경 * [#38] refactor(BookingSuccessCode): 회원 예매 성공 메시지 추가 * [#38] feat: 커스텀 어노테이션 생성 커밋에 누락된 클래스 추가 * [#38] refactor(GuestBookingService): schedule에서 바로 get 하도록 수정 * [#38] test(GuestBookingServiceConcurrencyTest): import문 경로명 변경 * [#38] refactor(MemberService): @Transactional 어노테이션이 필요한 메서드에 해당 옵션 추가 * [#38] feat(MemberBookingRequest): 회원 예매 요청 DTO 생성 * [#38] feat(MemberBookingResponse): 회원 예매 응답 DTO 생성 * [#38] refactor(MemberController): refreshToken을 쿠키에 넣어주도록 구현 * [#38] feat(MemberBookingService): 회원 예매 서비스 로직 구현 * [#38] feat(BookingController): 회원 예매 요청 POST API 구현 * [#38] fix: 빌드 안되는 부분 수정 * [#38] remove(MemberBookingService): 사용하지 않는 import문 삭제 * [#38] refactor: 커스텀 어노테이션 이름 수정 * [feat] #44 - 홈페이지 공연 및 홍보 조회 GET API 구현 (#47) * [#44] refactor: 코드리뷰 반영 * [#44] fix(Promotion): 기본키 이름 수정, performanceId 연관관계 설정 * [#44] feat: Repository 및 관련 로직 추가 * [#44] feat: errorcode, successcode 추가 * [#44] feat: 홈페이지 request, response dto 생성 * [#44] feat(ScheduleService): dueDate 관련 로직 구현 * [#44] feat(PerformanceService): 홈페이지 정렬 및 response 생성 로직 구현 * [#44] chore: import문 추가 * [feat] #46 - 회원 예매 조회 GET API 구현 (#48) * [#46] remove(BookingRetrieveRequest): 클래스 삭제 * [#46] refactor(BookingSuccessCode): 회원 예매 조회 성공 메시지 추가 * [#46] refactor(GuestBookingRetrieveResponse): 클래스 명 변경 * [#46] refactor(GuestBookingRetrieveRequest): 안쓰는 코드 주석처리 * [#46] refactor(GuestBookingRetrieveService): 클래스 명 수정으로 인한 리팩토링 * [#46] refactor(SecurityConfig): 토큰 사용하지 않는 api 경로 추가하기 * [#46] refactor(BookingRepository): userId로 예약 정보를 가져오는 JPA 메서드 구현 * [#46] feat(MemberBookingRetrieveResponse): 회원 조회 응답 DTO 생성 * [#46] feat(MemberBookingRetrieveService): 회원 예매 조회 로직을 담당하는 서비스 레이어 구현 * [#46] feat(BookingController): 회원 예매 조회 GET API 구현 * [feat] #49 - 예매자 관리 API 구현 (#51) * [#49] feat: 티켓 관련 success, error code 추가 * [#49] feat(Booking): 입금여부 setter 메소드 추가 * [#49] feat(TicketRetrieveResponse): 예매자 확인 response dto 생성 * [#49] feat(Ticket): 예매자 확인용 티켓 정보 response dto 생성 * [#49] feat(TicketRepository): 예매자 필터링용 메소드 생성 * [#49] feat: 예매자 입금정보 수정 request dto 생성 * [#49] feat(TicketDeleteRequest): 예매자 삭제 request dto 생성 * [#49] feat(TicketService): 예매자 관리 관련 로직 구현 * [#49] feat(TicketController): 예매자 관리 엔드포인트 구현 * [#49] chore: swagger annotation 추가 * HOTFIX(SecurityConfig): WHITELIST 경로명 수정 * [fix] #52 - auth whitelist 수정 (#53) * [#52]fix(SecurityConfig): auth_whitelist 수정 * [#52]fix(SecurityConfig): auth_whitelist 수정 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [feat] #54 - 등록한 공연 목록 조회 GET API 구현 (#55) * [#54] feat(PerformanceSuccessCode): success code 추가 * [#54] feat: 회원이 등록한 공연목록 조회 dto 생성 * [#54] feat(PerformanceService): 회원이 등록한 공연목록 조회 로직 구현 * [#54] feat(PerformanceRepository): 회원이 등록한 공연목록 조회 관련 메소드 추가 * [#54] feat(PerformanceController): 회원이 등록한 공연목록 조회 엔드포인트 생성 * [#54] fix(TicketService): exception error 수정 * [#54] chore(application.yml): yml 수정 * [fix] #58 - dev-ci.yml, prod-ci.yml 환경변수 추가 (#59) * [#58] fix(dev-CI.yml): Dev 서버 CI 워크플로우 수정 * [#58] fix(prod-CI.yml): Prod 서버 CI 워크플로우 수정 * [refactor] #61 - Performance Entity field 추가 (#62) * [#61] refactor(Performance): bankHolder 필드 추가 * [#61] chore(BookingController): swagger annotation 수정 * [feat] #63 - healthCheckController 생성 (#64) * [#63] remove(UsersRepository): 중복 클래스 삭제 * [#63] feat(HealthCheckController): healthcheck 컨트롤러 생성 * [feat] #63 - health check URL 화이트리스트에 등록 (#67) * [#63] remove(UsersRepository): 중복 클래스 삭제 * [#63] feat(HealthCheckController): healthcheck 컨트롤러 생성 * [#63] feat(SecurityConfig): healthcheck url white_list에 등록 * [fix] #57 - entity 연관관계 설정 SecurityConfig 수정 (#65) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [fix] #57 - security 관련 에러 대응 (#71) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 * [#57] fix(JwtAuthenticationFilter): 에러 로직 수정 * fix(SecurityConfig): webSecurityCustomizer 로직 추가 * [fix] #73 - security 수정 (#74) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 * [#57] fix(JwtAuthenticationFilter): 에러 로직 수정 * fix(SecurityConfig): webSecurityCustomizer 로직 추가 * [#57] fix:security 수정 * [#76] fix(SecurityConfig): Base64 인코딩을 하도록 변경 (#77) * [fix] #76 - 누락된 코드 추가 (#79) * [#76] fix(SecurityConfig): Base64 인코딩을 하도록 변경 * [#76] chore(SecurityConfig): 누락된 import문 추가 * [#76] chore(JwtTokenProvider): 누락된 코드 추가 * [#81] fix(JwtTokenProvider): jwtsecret을 인코딩하고 디코딩을 하도록 수정 (#82) --------- Co-authored-by: hyerinhwang-sailin * [deploy] merge to main (#87) * [deploy] merge to develop (#27) * [deploy] merge to main (#26) * [#2] chore(.gitignore): .gradle, .idea 파일 삭제 (#3) * [refactor] #4 - 도메인형 디렉터리 구조 변경 및 local, dev, prod 운영 환경 분리 (#5) * [#4] fix: 클래스 첫글자 대문자로 수정 * [#4] remove: enum 삭제 * [#4] feat(BaseSuccessCode): 성공 상태 관리를 위한 인터페이스 생성 * [#4] feat(BaseErrorCode): 에러 상태 관리를 위한 인터페이스 생성 * [#4] refactor: global 패키지로 이동 * [#4] refactor: 서버 운영 환경 분리 * [feat] #6 - dev, prod Dockerfile 분리 및 github Action CI workflow 구현 (#7) * [#6] feat(Dockerfile): prod용 도커 파일 구현 * [#6] feat(Dockerfile-dev): dev용 도커 파일 구현 * [#6] feat(dev-CI.yml): dev용 CI workflow 구현 * [#6] feat(prod-CI.yml): prod용 CI workflow 구현 * [#6] chore(.gitignore): gradle-wrapper.jar 파일은 레포지토리에 포함되도록 설정 * [#6] fix(gradle-wrapper.jar): .gitignore로 누락된 파일 추가 * [#6] chore(build.grade): plain jar 생성 방지 * [#9] docs(README.md): 서비스 소개 README v1 작성 (#10) * [#11] docs(README.md): 리드미 업데이트 (#12) * [feat] #13 - 유저, 예매, 공연, 회차 엔티티 생성 (#15) * [#13] feat(Users): 사용자 엔티티 생성 * [#13] feat(Genre): 장르 열거형 생성 * [#13] feat(BankName): 은행명 열거형 생성 * [#13] refactor(BaseTimeEntity): 업데이트 시간 관리 필드 활성화 * [#13] feat(Performance): 공연 엔티티 생성 * [#13] feat(ScheduleNumber): 회차 번호 열거형 생성 * [#13] feat(Schedule): 회차 엔티티 생성 * [#13] feat(Booking): 예매 엔티티 생성 * [#13] refactor(ScheduleNumber): 네이밍 수정 * [feat] #14 - 회원, 홍보, 등장인물, 스태프 엔티티 생성 (#16) * [#14] feat(Member): 멤버 엔티티 생성 * [#14] feat(Promotion): 홍보 엔티티 생성 * [#14] feat(Cast): 등장인물 엔티티 생성 * [#14] feat(Staff): 스태프 엔티티 생성 * [feat] #13 - 유저, 예매, 공연, 회차 엔티티 생성 (#15) * [#13] feat(Users): 사용자 엔티티 생성 * [#13] feat(Genre): 장르 열거형 생성 * [#13] feat(BankName): 은행명 열거형 생성 * [#13] refactor(BaseTimeEntity): 업데이트 시간 관리 필드 활성화 * [#13] feat(Performance): 공연 엔티티 생성 * [#13] feat(ScheduleNumber): 회차 번호 열거형 생성 * [#13] feat(Schedule): 회차 엔티티 생성 * [#13] feat(Booking): 예매 엔티티 생성 * [#13] refactor(ScheduleNumber): 네이밍 수정 * [#14} fix: 스태프, 등장인물, 홍보 엔티티 상속관계 수정 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [#18] feat(Jenkinsfile): 젠킨스 파일 생성 (#19) * [#20] refactor(Jenkinsfile): 젠킨스 파일 Webhook 테스트용 커밋 (#21) * [#22] feat(Jenkinsfile): Jenkins multibranch 스크립트 작성 (#23) * HOTFIX(Jenkinsfile): Jenkins multibranch 스크립트 수정 * HOTFIX(workflows): 빌드 후 젠킨스 배포가 진행되도록 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * HOTFIX(workflows): Jenkinsfile 스크립트 수정 * [#24] feat(Jenkinsfile): slack 연동 스크립트 작성 (#25) --------- Co-authored-by: hyerinhwang-sailin * HOTFIX(workflow): 오타 수정 --------- Co-authored-by: hyerinhwang-sailin * [feat] #28 - 비회원 예매 조회 POST API 구현 (#29) * chore(application-dev.yml): dialect 추가 * chore(application-prod.yml): dialect 추가 * [#28] chore(build.gradle): security 의존성 비활성화 - security 일시적으로 비활성화 * [#28] refactor(Booking): 예매 엔티티에 빌더 및 정적팩토리 메서드 추가 * [#28] refactor(ErrorResponse): 정적 팩토리 메서드 네이밍 변환 * [#28] refactor(Schedule): 회차 엔티티에 빌더 및 정적 팩토리 메서드 추가 * [#28] refactor(Performance): 공연 엔티티에 빌더 및 정적 팩토리 메서드 추가 * [#28] refactor(SuccessResponse): 정적 팩토리 메서드 네이밍 변환 * [#28] refactor(GlobalExceptionHandler): INTERNAL_SERVER_ERROR 핸들러 메서드 추가 * [#28] feat(BookingSuccessCode): 예매 성공 메시지를 관리하는 열거형 생성 * [#28] feat(BookingErrorCode): 예매 에러 메시지를 관리하는 열거형 생성 * [#28] feat(BookingRetrieveResponse): 예매 조회 응답 DTO 생성 * [#28] feat(BookingRetrieveRequest): 예매 조회 요청 DTO 생성 * [#28] feat(BookingRepository): 예매 레포지토리 생성 및 비회원 예매 조회 시 예매 내역 가져오는 메서드 구현 * [#28] feat(BookingService): 예매 서비스 레이어 생성 및 비회원 조회 메서드 구현 * [#28] feat(BookingController): 예매 컨트롤러 생성 및 비회원 예매조회 POST API 구현 * [feat] #30 - SwaggerConfig 및 WebConfig 구현 (#31) * [#30] chore(build.gradle): springdoc 의존성 추가 * [#30] feat(SwaggerConfig): SwaggerConfig 추가 * [#30] feat(WebConfig): WebConfig 추가 * HOTFIX(workflows): push 이벤트 시 github action이 빌드 되지 않도록 수정 * HOTFIX(Jenkinsfile): 포트 수정 * [feat] #32 - 티켓 예매 가능 여부 GET API 구현 (#33) * [#32] refactor(BookingController): 메서드명 수정 * [#32] feat(ConflictException): Conflict 409에러 클래스 생성 * [#32] feat(GlobalExceptionHandler): ConflictException 등록 * [#32] feat(TicketAvailabilityRequest): TicketAvailabilityRequest DTO 생성 * [#32] feat(TicketAvailabilityResponse): TicketAvailabilityResponse DTO 생성 * [#32] feat(ScheduleSuccessCode): ScheduleSuccessCode 열거형 생성 * [#32] feat(ScheduleErrorCode): ScheduleErrorCode 열거형 생성 * [#32] feat(ScheduleRepository): ScheduleRepository 생성 * [#32] feat(ScheduleService): ScheduleService 생성 및 회차별 티켓 구매 가능 여부 판단 메서드 구현 * [#32] feat(ScheduleController): 회차별 티켓 수량 조회 GET API 구현 * [feat] #17 - 카카오 소셜 로그인 API 구현 (#36) * [#17] feat(build.gradle): jwt, security, open feign, Redis 의존성 추가 * [#17] feat(BeatApplication): OpenFeign 관련 어노테이션 추가 * [#17] feat(RedisConfig): redis 설정 * [#17] feat: redis 활용 jwt 토큰 생성 로직 구현 * [#17] feat(SecurityConfig): security 설정 * [#17] refactor: Member, Users 엔티티 수정 및 관련 enum 추가 * [#17] feat: Member, Users 도메인 관련 인증 로직 구현 * [#17] feat(MemberController): Member 관련 API 엔드포인트 구현 * [#17] feat: Security 관련 인증 객체 구현 * [#17] feat: 소셜로그인 로직 구현 * [#17] fix: 소셜로그인 오류 해결 * [#17] refactor: 코드리뷰 반영 * [#17] refactor: 코드리뷰 반영 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [feat] #34 - 비회원 예매 POST API 구현 (#35) * [#34] feat(Users): 빌더 및 정적 팩토리 메서드 추가 * [#34] feat(Entity): 엔티티 id 필드 수정 * [#34] refactor(application.yml): dialect 추가 * [#34] refactor(ScheduleService): 네이밍 수정 * [#34] refactor(BookingSuccessCode): 비회원 예매 조회 성공 메시지 추가 * [#34] feat(GuestBookingRequest): 비회원 예매 요청 DTO 생성 * [#34] feat(GuestBookingResponse): 비회원 예매 응답 DTO 생성 * [#34] refactor(BookingRetrieveService): 네이밍 수정 * [#34] feat(PerformanceRepository): 공연 레포지토리 생성 * [#34] feat(UserRepository): 유저 레포지토리 생성 * [#34] refactor(BookingRepository): 비회원 예매 시 네가지 정보가 모두 일치 해야만 다른 유저로 판단하는 메서드 구현 * [#34] refactor(ScheduleRepository): 비관적 락 적용 * [#34] feat(GuestBookingService): 비관적 락을 이용해 비회원 예매 로직 구현 * [#34] feat(BookingController): 비회원 예매 POST API 구현 * [#34] test(GuestBookingServiceConcurrencyTest): 동시성 테스트 구현 * [Refactor] #37 - 카카오 로그인 API response 수정 (#39) * [#37] rename: 빈 충돌 해결 위해 UserRepository를 UsersRepository로 rename * [#37] refactor: login response에서 refreshToken을 cookie에 담아주도록 변경 * [#37] fix: dao, repository 충돌 해결 * [#37] refactor: 어노테이션 수정 * [feat] #40 - 소개 관련 공연 정보 조회 GET API 구현 (#41) * [#40] feat: repository 추가 * [#40] feat: 공연 관련 성공, 실패 메세지 추가 * [#40] feat(PerformanceDetailResponse): 공연 상세페이지 조회 응답 dto * [#40] feat(PerformanceService): 공연 상세페이지 조회 로직 구현 * [#40] feat(PerformanceController): 공연 상세페이지 엔드포인트 구현 * [#40] feat(SecurityConfig): auth whitelist update * [#40] refactor: dto 분리 및 rename * [feat] #42 - 예매 관련 공연 정보 GET API 구현 (#43) * [#42] feat: 예매 관련 정보 조회 dto 생성 * [#42] feat: 예매 관련 정보 조회 성공 메세지 추가 * [#42] feat(ScheduleService): 잔여티켓계산, 예매가능여부확인, 예매가능여부 update 메소드 구현 * [#42] feat(PerformanceService): 예매관련공연정보의 response 생성하는 로직 구현 * [#42] feat(PerformanceController): 예매관련공연정보 조회 엔드포인트 구현 * [#42] feat(SecurityConfig): auth_whitelist update * [#42] refactor(ScheduleService): findTicketAvailability에서 getAvailableTicketCount method 사용하도록 수정 * [feat] #38 - 회원 예매 POST API 구현 (#45) * [#38] fix(Cast): Join 하는 부분 수정 및 빌더와 정적 팩토리 메서드 패턴 도입 * [#38] chore(application.yml): 계층 수정 * [#38] feat: 커스텀 어노테이션 생성 * [#38] fix(UserRepository): 중복된 클래스 삭제 * [#38] feat(UserErrorCode): 유저의 에러 메시지를 관리하는 열거형 생성 * [#38] refactor(MemberErrorCode): message 목적에 맞게 변경 * [#38] refactor(BookingSuccessCode): 회원 예매 성공 메시지 추가 * [#38] feat: 커스텀 어노테이션 생성 커밋에 누락된 클래스 추가 * [#38] refactor(GuestBookingService): schedule에서 바로 get 하도록 수정 * [#38] test(GuestBookingServiceConcurrencyTest): import문 경로명 변경 * [#38] refactor(MemberService): @Transactional 어노테이션이 필요한 메서드에 해당 옵션 추가 * [#38] feat(MemberBookingRequest): 회원 예매 요청 DTO 생성 * [#38] feat(MemberBookingResponse): 회원 예매 응답 DTO 생성 * [#38] refactor(MemberController): refreshToken을 쿠키에 넣어주도록 구현 * [#38] feat(MemberBookingService): 회원 예매 서비스 로직 구현 * [#38] feat(BookingController): 회원 예매 요청 POST API 구현 * [#38] fix: 빌드 안되는 부분 수정 * [#38] remove(MemberBookingService): 사용하지 않는 import문 삭제 * [#38] refactor: 커스텀 어노테이션 이름 수정 * [feat] #44 - 홈페이지 공연 및 홍보 조회 GET API 구현 (#47) * [#44] refactor: 코드리뷰 반영 * [#44] fix(Promotion): 기본키 이름 수정, performanceId 연관관계 설정 * [#44] feat: Repository 및 관련 로직 추가 * [#44] feat: errorcode, successcode 추가 * [#44] feat: 홈페이지 request, response dto 생성 * [#44] feat(ScheduleService): dueDate 관련 로직 구현 * [#44] feat(PerformanceService): 홈페이지 정렬 및 response 생성 로직 구현 * [#44] chore: import문 추가 * [feat] #46 - 회원 예매 조회 GET API 구현 (#48) * [#46] remove(BookingRetrieveRequest): 클래스 삭제 * [#46] refactor(BookingSuccessCode): 회원 예매 조회 성공 메시지 추가 * [#46] refactor(GuestBookingRetrieveResponse): 클래스 명 변경 * [#46] refactor(GuestBookingRetrieveRequest): 안쓰는 코드 주석처리 * [#46] refactor(GuestBookingRetrieveService): 클래스 명 수정으로 인한 리팩토링 * [#46] refactor(SecurityConfig): 토큰 사용하지 않는 api 경로 추가하기 * [#46] refactor(BookingRepository): userId로 예약 정보를 가져오는 JPA 메서드 구현 * [#46] feat(MemberBookingRetrieveResponse): 회원 조회 응답 DTO 생성 * [#46] feat(MemberBookingRetrieveService): 회원 예매 조회 로직을 담당하는 서비스 레이어 구현 * [#46] feat(BookingController): 회원 예매 조회 GET API 구현 * [feat] #49 - 예매자 관리 API 구현 (#51) * [#49] feat: 티켓 관련 success, error code 추가 * [#49] feat(Booking): 입금여부 setter 메소드 추가 * [#49] feat(TicketRetrieveResponse): 예매자 확인 response dto 생성 * [#49] feat(Ticket): 예매자 확인용 티켓 정보 response dto 생성 * [#49] feat(TicketRepository): 예매자 필터링용 메소드 생성 * [#49] feat: 예매자 입금정보 수정 request dto 생성 * [#49] feat(TicketDeleteRequest): 예매자 삭제 request dto 생성 * [#49] feat(TicketService): 예매자 관리 관련 로직 구현 * [#49] feat(TicketController): 예매자 관리 엔드포인트 구현 * [#49] chore: swagger annotation 추가 * HOTFIX(SecurityConfig): WHITELIST 경로명 수정 * [fix] #52 - auth whitelist 수정 (#53) * [#52]fix(SecurityConfig): auth_whitelist 수정 * [#52]fix(SecurityConfig): auth_whitelist 수정 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [feat] #54 - 등록한 공연 목록 조회 GET API 구현 (#55) * [#54] feat(PerformanceSuccessCode): success code 추가 * [#54] feat: 회원이 등록한 공연목록 조회 dto 생성 * [#54] feat(PerformanceService): 회원이 등록한 공연목록 조회 로직 구현 * [#54] feat(PerformanceRepository): 회원이 등록한 공연목록 조회 관련 메소드 추가 * [#54] feat(PerformanceController): 회원이 등록한 공연목록 조회 엔드포인트 생성 * [#54] fix(TicketService): exception error 수정 * [#54] chore(application.yml): yml 수정 * [fix] #58 - dev-ci.yml, prod-ci.yml 환경변수 추가 (#59) * [#58] fix(dev-CI.yml): Dev 서버 CI 워크플로우 수정 * [#58] fix(prod-CI.yml): Prod 서버 CI 워크플로우 수정 * [refactor] #61 - Performance Entity field 추가 (#62) * [#61] refactor(Performance): bankHolder 필드 추가 * [#61] chore(BookingController): swagger annotation 수정 * [feat] #63 - healthCheckController 생성 (#64) * [#63] remove(UsersRepository): 중복 클래스 삭제 * [#63] feat(HealthCheckController): healthcheck 컨트롤러 생성 * [feat] #63 - health check URL 화이트리스트에 등록 (#67) * [#63] remove(UsersRepository): 중복 클래스 삭제 * [#63] feat(HealthCheckController): healthcheck 컨트롤러 생성 * [#63] feat(SecurityConfig): healthcheck url white_list에 등록 * [fix] #57 - entity 연관관계 설정 SecurityConfig 수정 (#65) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [fix] #57 - security 관련 에러 대응 (#71) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 * [#57] fix(JwtAuthenticationFilter): 에러 로직 수정 * fix(SecurityConfig): webSecurityCustomizer 로직 추가 * [fix] #73 - security 수정 (#74) * [#57] refactor: entity 연관관계 설정 및 수정 * [#57] fix(SecurityConfig): auth_whitelist update * [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거 * [#57] refactor(SecurityConfig): auth_whitelist update * [#57] refactor: 엔티티 정적팩토리 메소드 추가 * [#57] comment(SecurityConfig): 주석 제거 * [#57] fix(JwtAuthenticationFilter): 에러 로직 수정 * fix(SecurityConfig): webSecurityCustomizer 로직 추가 * [#57] fix:security 수정 * [#76] fix(SecurityConfig): Base64 인코딩을 하도록 변경 (#77) * [fix] #76 - 누락된 코드 추가 (#79) * [#76] fix(SecurityConfig): Base64 인코딩을 하도록 변경 * [#76] chore(SecurityConfig): 누락된 import문 추가 * [#76] chore(JwtTokenProvider): 누락된 코드 추가 * [#81] fix(JwtTokenProvider): jwtsecret을 인코딩하고 디코딩을 하도록 수정 (#82) * [#85] chore(application.yml): 환경변수 설정 (#86) --------- Co-authored-by: hyerinhwang-sailin --------- Co-authored-by: hyerinhwang-sailin * Revert "[deploy] merge to main (#90)" (#91) This reverts commit f519b0c82a2f01d4374eb045b9e90c6303381e50. * [fix] #93 - 누락된 어노테이션 및 누락된 경로명 추가 (#94) * [#93] fix(HealthCheckController): 누락된 어노테이션 추가 * [#93] refactor(SecurityConfig): 누락된 경로명 추가 * [bug] #84 - actuator/health 의존성 및 설정 추가 (#96) * [#84] chore(build.gradle): 의존성 추가 * [#84] chore: health/actuator yml 설정 추가 * [#84] chore: redis yml 설정 추가 * [#84] chore: yml 수정 (#99) * [bug] #101 - yml, s3 수정 (#102) * [#101] chore: yml 수정 * [#101] feat: s3 추가 * HOTIFX: prod ci-yml 수정 --------- Co-authored-by: hyerinhwang-sailin * Update application-prod.yml --------- Co-authored-by: DongHoon Lee <125895298+hoonyworld@users.noreply.github.com> * [feat] #50 - 공연 생성 POST API 생성 (#108) * [#50] chore: 폴더 이동 * [#50] feat: request DTO 생성 * [#50] feat: response DTO 생성 * [#50] refactor(PerformanceSuccessCode): 공연 생성 성공 메시지 추가 * [#50] chore(PerformanceService): import문 변 * [#50] chore(HomeController): import문 변 * [#50] feat(PerformanceCreateService): 공연 생성 서비스 로직 생성 * [#50] feat(PerformanceController): 공연 생성 POST API 생성 * [feat] #111 - 웹발신 구현 (#114) * [#111] feat(build.gradle): coolsms 의존성 추가 * [#111] feat: yml에 coolsms 환경변수 세팅 * [#111] feat(CoolSmsService): coolsms 웹발신 로직 구현 * [#111] feat(TicketService): coolsms 웹발신 트리거 로직 구현 * [#111] comment(TicketController): swagger 설명 수정 * [feat] #110 - 공연 수정 PUT API 구현 (#112) * [#110] feat: request DTO 생성 * [#110] feat: response DTO 생성 * [#110] feat(CastErrorCode): 등장인물 열거형 생성 * [#110] feat(StaffErrorCode): 스태프 에러 열거형 생성 * [#110] refactor(PerformanceSuccessCode): 공연 성공 수정 메시지 추가 * [#110] refactor(Performance): 업데이트 메서드 추가 * [#110] refactor(Schedule): 업데이트 메서드 추가 * [#110] refactor(Staff): 업데이트 메서드 추가 * [#110] test(GuestBookingServiceConcurrencyTest): 변경된 필드 추가 * [#110] refactor(Cast): 업데이트 메서드 추 * [#110] feat(PerformanceUpdateService): 공연 수정 서비스 로직 구현 * [#110] feat(PerformanceController): 공연 수정 PUT API 추가 * [feat] #113 - 공연 삭제 DELETE API 구현 (#116) * [#113] refactor(BookingRepository): 해당 공연을 예매한 사람이 있는지 판단하는 메서드 구현 * [#113] refactor(PerformanceErrorCode): 예매자가 한명 있을 경우 공연 취소가 안될때 보여주는 에러메시지 추가 * [#113] refactor(PerformanceSuccessCode): 공연이 삭제되었을 때 보여주는 성공 메시지 추가 * [#113] refactor(PerformanceManagementService): 멤버 아이디를 인자로 받도록 수정 및 공연 삭제 메서드 구현 * [#113] feat(PerformanceController): 공연 삭제 DELETE API 구현 * Update README.md * HOTFIX: 코드 수정 * [#119] refactor: response에 필요 필드 추가 (#120) * [feat] #117 - 공연 수정 페이지 정보 조회 GET API 구현 (#121) * [#117] remove(PerformanceCreateService): 사용하지 않는 클래스 삭제 * [#117] refactor(CastRepository): DB에 등록된 등장인물을 모두 가져오는 메서드 구현 * [#117] refactor(ScheduleRepository): DB에 등록된 회차를 모두 가져오는 메서드 구현 * [#117] refactor(StaffRepository): DB에 등록된 스태프를 모두 가져오는 메서드 구현 * [#117] refactor(PerformanceSuccessCode): 공연 수정 페이지 조회 성공 메시지 추가 * [#117] refactor(PerformanceEditResponse): 공연 수정 페이지 조회 응답 DTO 생성 * [#117] refactor(PerformanceService): 수정 페이지의 정보를 조회하는 서비스 로직 구현 * [#117] feat(PerformanceController): 공연 수정 페이지의 정보를 조회하는 GET API 구현 * [#123] fix(PerformanceController): 중복 코드 제거 (#124) * [#128] fix: 누락된 환경 변수 주입 및 수정 (#129) * [feat] #127 - presigned-url로 포스터 이미지, 등장인물 이미지 리스트, 스태프 이미지 리스트를 반환하도록 구현 (#131) * [#127] feat(SecurityConfig): 화이트 리스트에 presigned-url 추가 * [#127] refactor(FileService): 포스터 이미지, 등장인물 이미지 리스트, 스태프 이미지 리스트의 presigned-url을 반환하는 메서드 구현 * [#127] feat(FileController): presigned-url GET API 구현 * [refactor] #133 - presigned URL의 만료 시간 늘리기 (#134) * [#133] remove: 삭제된 클래스 커밋 * [#133] refactor(FileService): URL의 유효시간 2시간으로 설정 * [#135] refactor(SwaggerConfig): SwaggerConfig 리팩토링 (#136) * [#128] fix(BankName): bankname enum 추가 (#139) * [refactor] #126 - 프론트 요청 필드 반영 (#140) * [#126] refactor(BookingController): 회원 예매 조회시 성공 메시지 변경 * [#126] refactor(BookingRepository): 쿼리문 추가 * [#126] refactor(GuestBookingRequest): enum으로 리턴값 변경 * [#126] refactor(GuestBookingResponse): enum으로 리턴값 변경 * [#126] chore(GuestBookingRetrieveRequest): 주석 삭제 * [#126] refactor(GuestBookingRetrieveResponse): performanceId, posterImage, totalPaymentAmount 추가 * [#126] refactor(MemberBookingRetrieveResponse): performanceId, posterImage, totalPaymentAmount 추가 * [#126] refactor(MemberBookingRetrieveService): response에 추가된 필드 리턴하도록 리팩토링 * [#126] refactor(GuestBookingRetrieveService): response에 추가된 필드 리턴하도록 리팩토링 * [#126] refactor(GuestBookingService): displayName이 아닌 열거형으로 리턴하도록 수정 * [#126] refactor(MemberBookingRequest): 정적 팩토리 메서드 삭제 * [#126] refactor(MemberBookingResponse): enum으로 리턴하도록 수정 * [#126] refactor(MemberBookingService): enum으로 리턴하도록 수정 * [#126] test(GuestBookingServiceConcurrencyTest): DTO에서 수정된 리턴 방법 반영 * [#142] refactor(FileController): castImages, staffImages의 파라미터 value를 주지 않아도 presigned-url을 발급하도록 변경 (#143) * Update README.md * [#147] refactor: 예금주 필드 추가 (#148) * [feat] #150 - 스프링 서버를 redis와 동일한 네트워크에서 실행되도록 구현 (#151) * [#150] feat(Jenkinsfile): 스프링 서버를 redis와 동일한 네트워크에서 실행되도록 구현 * [#150] refactor(prod-CI.yml): prod에서 PR시에만 빌드 되도록 수정 * chore(application-prod.yml): ddl-auto none으로 변경 --------- Co-authored-by: hyerinhwang-sailin --- src/main/resources/application-prod.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/resources/application-prod.yml b/src/main/resources/application-prod.yml index c7a9f86e..e21062b0 100644 --- a/src/main/resources/application-prod.yml +++ b/src/main/resources/application-prod.yml @@ -19,7 +19,7 @@ spring: jpa: hibernate: - ddl-auto: create + ddl-auto: none show-sql: true properties: hibernate: