-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. Weβll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[deploy] merge develop to main #130
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
* [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 <[email protected]> * [#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 <[email protected]> * HOTFIX(workflow): μ€ν μμ --------- Co-authored-by: hyerinhwang-sailin <[email protected]>
* 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 ꡬν
* [#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 ꡬν
* [#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 <[email protected]>
* [#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): λμμ± ν μ€νΈ ꡬν
* [#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
* [#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 μ¬μ©νλλ‘ μμ
* [#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: 컀μ€ν μ΄λ Έν μ΄μ μ΄λ¦ μμ
* [#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λ¬Έ μΆκ°
* [#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 ꡬν
* [#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 μΆκ°
* [#52]fix(SecurityConfig): auth_whitelist μμ * [#52]fix(SecurityConfig): auth_whitelist μμ --------- Co-authored-by: DongHoon Lee <[email protected]>
* [#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 μμ
* [#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 <[email protected]>
* [#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] 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 μμ
* [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 <[email protected]> * [#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 <[email protected]> * HOTFIX(workflow): μ€ν μμ --------- Co-authored-by: hyerinhwang-sailin <[email protected]> * [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 <[email protected]> * [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 <[email protected]> * [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 <[email protected]> * [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 <[email protected]> * [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 <[email protected]> * [#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 <[email protected]> * HOTFIX(workflow): μ€ν μμ --------- Co-authored-by: hyerinhwang-sailin <[email protected]> * [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 <[email protected]> * [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 <[email protected]> * [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 <[email protected]> * [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 <[email protected]> --------- Co-authored-by: hyerinhwang-sailin <[email protected]>
* [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 <[email protected]> * [#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 <[email protected]> * HOTFIX(workflow): μ€ν μμ --------- Co-authored-by: hyerinhwang-sailin <[email protected]> * [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 <[email protected]> * [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 <[email protected]> * [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 <[email protected]> * [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 <[email protected]> * [#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 <[email protected]> * HOTFIX(workflow): μ€ν μμ --------- Co-authored-by: hyerinhwang-sailin <[email protected]> * [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 <[email protected]> * [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 <[email protected]> * [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 <[email protected]> * [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 <[email protected]> * [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 <[email protected]> * [#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 <[email protected]> * HOTFIX(workflow): μ€ν μμ --------- Co-authored-by: hyerinhwang-sailin <[email protected]> * [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 <[email protected]> * [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 <[email protected]> * [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 <[email protected]> * [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 <[email protected]> --------- Co-authored-by: hyerinhwang-sailin <[email protected]> * Revert "[deploy] merge to main (#90)" (#91) This reverts commit f519b0c. * [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 <[email protected]> * Update application-prod.yml --------- Co-authored-by: DongHoon Lee <[email protected]>
* [#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 μμ±
* [#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 μΆκ°
* [#113] refactor(BookingRepository): ν΄λΉ 곡μ°μ μ맀ν μ¬λμ΄ μλμ§ νλ¨νλ λ©μλ ꡬν * [#113] refactor(PerformanceErrorCode): μ맀μκ° νλͺ μμ κ²½μ° κ³΅μ° μ·¨μκ° μλ λ 보μ¬μ£Όλ μλ¬λ©μμ§ μΆκ° * [#113] refactor(PerformanceSuccessCode): 곡μ°μ΄ μμ λμμ λ 보μ¬μ£Όλ μ±κ³΅ λ©μμ§ μΆκ° * [#113] refactor(PerformanceManagementService): λ©€λ² μμ΄λλ₯Ό μΈμλ‘ λ°λλ‘ μμ λ° κ³΅μ° μμ λ©μλ ꡬν * [#113] feat(PerformanceController): κ³΅μ° μμ DELETE API ꡬν
* [#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 ꡬν
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Related issue π
Work Description βοΈ
Trouble Shooting β½οΈ
Related ScreenShot π·
Uncompleted Tasks π
To Reviewers π’