Skip to content

feat : 좌석 선택 api에 대기열 기능 연결#34

Merged
pokerbearkr merged 76 commits intodevfrom
feat/queue/layers
May 26, 2025
Merged

feat : 좌석 선택 api에 대기열 기능 연결#34
pokerbearkr merged 76 commits intodevfrom
feat/queue/layers

Conversation

@kmchaejin
Copy link
Collaborator

@kmchaejin kmchaejin commented May 26, 2025

🔎 작업 내용

  • 좌석 선택 api에 대기열 기능 연결
  • queue 관련 테스트 코드 추가

🛠️ 변경 사항

  • errorcode 추가
  • selectSeat() 안에 queueService 메서드 호출
  • addQueue, deleteQueue 메서드에 대한 테스트코드 작성

🙏 코드 리뷰 전 확인 체크리스트

  • 불필요한 콘솔 로그, 주석 제거
  • 커밋 메시지 컨벤션 준수 (type : )
  • 기능 정상 동작 확인

pokerbearkr and others added 30 commits May 16, 2025 10:00
kmchaejin and others added 24 commits May 23, 2025 12:58
@pokerbearkr pokerbearkr merged commit e97d809 into dev May 26, 2025
1 check passed
@pokerbearkr pokerbearkr deleted the feat/queue/layers branch May 26, 2025 10:43
jiyun-im-dev added a commit that referenced this pull request May 26, 2025
* Feat/init (#1)

* docs : PR Template 작성

* docs : readmd.md 변경

* feat: 초기 패키지 구조 설정

---------

Co-authored-by: pokerbearkr <ogdongwon@gmail.com>

* refactor : SeatStatus 엔티티를 SeatScheduleInfo로 변경 (#2)

* Feat/cicd (#4)

* feat : github action CI/CD

* fix: grant executable permission to gradlew

* docs : edit yml file

* docs : gradlew 권한부여 yml에 추가

docs : gradlew 권한부여 yml에 추가
아마... 모든 컴퓨터에서 실행됨

* refactor : Reservation entity 필드 수정 (#5)

* docs : PR Template 작성

* docs : readmd.md 변경

* feat : entity 수정

* refactor : enum 클래스 분리 및 repo에 JPA 상속

---------

Co-authored-by: pokerbearkr <ogdongwon@gmail.com>

* feat(concert): implement concert API and add schedule/venue DTOs (#7)

* feat: implement schedule API (#8)

* feat:venue-api (#10)

* feat : 로컬 로그인 기능 추가 (#9)

* docs : PR Template 작성

* docs : readmd.md 변경

* feat: 로컬 로그인 기능 추가

* build: 시크릿 키 환경 변수 추가

JWT 시크릿 키를 Github 시크릿에서 가져오도록 추가

---------

Co-authored-by: pokerbearkr <ogdongwon@gmail.com>

* feat : payment기능 구현

* fix : h2 db 예약어 처리

* feat : 결제 api 구현

* fix : 개발용 임시 접속 허용

* docs : toss key 추가

* fix : 환경변수 수정

* feat : 카카오 로그인 기능 구현 (#13)

* build: .gitignore 업데이트

* build: OAuth2 의존성 추가

* style: DTO 클래스 이름 변경

* feat: 카카오 로그인 기능 추가

* reafactor : schedule-api apply querydsl

* feat : Seat 관련 엔티티, 데이터 생성 api, 분산락 기반 좌석 선택 기능 추가 (#15)

* feat : Seat 엔티티 필드, Status 타입, Dto 추가

* feat : 공연장 좌석 정보 생성을 위한 3-layer 구현

* feat : 회차 생성 시, 회차별 좌석 정보 생성 기능 추가

* fix : Seat의 일부 필드명 DB와 충돌 문제 해결

* feat : Aop를 활용한 Redisson 분산락 기능 추가

* feat : 좌석 선택 동시성 제어 테스트 코드 추가

* feat : Reservation 도메인 및 대기열 기능 구현 (#16)

* docs : PR Template 작성

* docs : readmd.md 변경

* feat : entity 수정

* refactor : enum 클래스 분리 및 repo에 JPA 상속

* feat : create(), saveSeatInfo() 기본 틀 구현

* feat : 예매상태 변경하는 메서드 구현 및 생성자 수정

* feat : updatePrice() 메서드 구현

* feat : 일정시간 후  좌석반환, 공통응답 구현

* feat : reservation 도메인 예외처리

* refactor : 다른 api와 중복되는 api 삭제

* feat : redis 연결설정 및 예매 대기 기능 구현

* feat : 소켓 연결 끊겼을 때 sorted set에서 데이터 삭제하는 로직 구현

* refactor : 전체 코드 리팩토링

* feat : 예매취소, 예매조회 api 및 유효성 검증 구현

* refactor : 인터셉터에서 데이터 추출 방식 변경 및 주석 제거

* chore : .gitignore update

* feat : 소켓 연결 테스트코드 작성

* chore : 테스트코드 수정

* fix : 테스트코드 오류 수정, SecurityConfig oauth 설정 주석 처리

* chore : 주석 해제

* chore : dev-ci.yml에 redis 설정 추가

* chore : redis 버전 변경, 호스트명 변경

* feat : 티켓팅 가능 시간 체크하는 로직 추가

* fix : seat 테이블 컬럼 수정 반영

---------

Co-authored-by: pokerbearkr <ogdongwon@gmail.com>

* feat: 인기공연 조회 캐싱 api 구현 (#17)

* feat : 결제 완료, 예매 정보 저장 로직 연결 (#18)

* docs : PR Template 작성

* docs : readmd.md 변경

* feat : entity 수정

* refactor : enum 클래스 분리 및 repo에 JPA 상속

* feat : create(), saveSeatInfo() 기본 틀 구현

* feat : 예매상태 변경하는 메서드 구현 및 생성자 수정

* feat : updatePrice() 메서드 구현

* feat : 일정시간 후  좌석반환, 공통응답 구현

* feat : reservation 도메인 예외처리

* refactor : 다른 api와 중복되는 api 삭제

* feat : redis 연결설정 및 예매 대기 기능 구현

* feat : 소켓 연결 끊겼을 때 sorted set에서 데이터 삭제하는 로직 구현

* refactor : 전체 코드 리팩토링

* feat : 예매취소, 예매조회 api 및 유효성 검증 구현

* refactor : 인터셉터에서 데이터 추출 방식 변경 및 주석 제거

* chore : .gitignore update

* feat : 소켓 연결 테스트코드 작성

* chore : 테스트코드 수정

* fix : 테스트코드 오류 수정, SecurityConfig oauth 설정 주석 처리

* chore : 주석 해제

* chore : dev-ci.yml에 redis 설정 추가

* chore : redis 버전 변경, 호스트명 변경

* feat : 티켓팅 가능 시간 체크하는 로직 추가

* fix : seat 테이블 컬럼 수정 반영

* refactor : 결제 도메인이랑 로직 연결

* chore : 사용안하는 클래스 삭제

* refactor : 소켓 연결시 헤더에서 token 추출

---------

* Fix: 로컬 로그인 기능 오류 수정 (#21)

* build: .gitignore 업데이트

* build: OAuth2 의존성 추가

* style: DTO 클래스 이름 변경

* feat: 카카오 로그인 기능 추가

* feat: 네이버 로그인 구조 잡기

* chore: 패키지 구조 수정

* feat: 로컬 회원가입 기능 추가

* fix: 로컬 로그인 기능 수정

* feat : 공연 예매 페이지 조회 기능 추가 (동기화 기능 미구현) (#19)

* feat : 회차별 좌석 정보 Redis 적재 스케줄링 기능 추가

* feat : Redis 캐시 기반 좌석 조회 (DB와의 동기화 구현 필요)

* Feat: ttl 적용하여 캐싱 기능 개선 (#20)

* 조회수 증가 방식 수정

* 랭킹 조회 메서드 추가

* ConcertServiceImpl에 랭킹 조회 기능 추가

* ConcertController에 API 추가

* fix : payment 권한문제 해결, CI시에 DB 추가 (#22)

* fix : 권한 문제 해결

* fix : CI 시에 DB추가

* fix : CI 시에 test 제외

* Fix: 로그인이 무조건 성공하는 에러 수정 (#24)

* build: .gitignore 업데이트

* build: OAuth2 의존성 추가

* style: DTO 클래스 이름 변경

* feat: 카카오 로그인 기능 추가

* feat: 네이버 로그인 구조 잡기

* fix: 로그인이 무조건 성공하는 오류 수정

* chore: remove unused imports

* feat : Queue 관련 로직 수정, 좌석 선택 시 hasPassed 여부 검증 (#23)

* docs : PR Template 작성

* docs : readmd.md 변경

* feat : entity 수정

* refactor : enum 클래스 분리 및 repo에 JPA 상속

* feat : create(), saveSeatInfo() 기본 틀 구현

* feat : 예매상태 변경하는 메서드 구현 및 생성자 수정

* feat : updatePrice() 메서드 구현

* feat : 일정시간 후  좌석반환, 공통응답 구현

* feat : reservation 도메인 예외처리

* refactor : 다른 api와 중복되는 api 삭제

* feat : redis 연결설정 및 예매 대기 기능 구현

* feat : 소켓 연결 끊겼을 때 sorted set에서 데이터 삭제하는 로직 구현

* refactor : 전체 코드 리팩토링

* feat : 예매취소, 예매조회 api 및 유효성 검증 구현

* refactor : 인터셉터에서 데이터 추출 방식 변경 및 주석 제거

* chore : .gitignore update

* feat : 소켓 연결 테스트코드 작성

* chore : 테스트코드 수정

* fix : 테스트코드 오류 수정, SecurityConfig oauth 설정 주석 처리

* chore : 주석 해제

* chore : dev-ci.yml에 redis 설정 추가

* chore : redis 버전 변경, 호스트명 변경

* feat : 티켓팅 가능 시간 체크하는 로직 추가

* fix : seat 테이블 컬럼 수정 반영

* refactor : 결제 도메인이랑 로직 연결

* chore : 사용안하는 클래스 삭제

* refactor : 소켓 연결시 헤더에서 token 추출

* feat : 대기열 TTL을 좌석 선택 화면 접근 후부터 적용하도록 수정

* feat : 예매취소시 좌석 반환

* feat : SeatScheduleInfo Service에 대기열 passed 여부 확인 및 좌석 선택 완료 후 queue에서 삭제

---------

Co-authored-by: pokerbearkr <ogdongwon@gmail.com>

* Refactor: 공연장 삭제 softdelete적용 및 레디스 캐싱 개선 (#25)

* refactor : 소켓메세지 전송할 때 body 안넣어도 되도록 수정 및 오류 해결 (#26)

* docs : PR Template 작성

* docs : readmd.md 변경

* feat : entity 수정

* refactor : enum 클래스 분리 및 repo에 JPA 상속

* feat : create(), saveSeatInfo() 기본 틀 구현

* feat : 예매상태 변경하는 메서드 구현 및 생성자 수정

* feat : updatePrice() 메서드 구현

* feat : 일정시간 후  좌석반환, 공통응답 구현

* feat : reservation 도메인 예외처리

* refactor : 다른 api와 중복되는 api 삭제

* feat : redis 연결설정 및 예매 대기 기능 구현

* feat : 소켓 연결 끊겼을 때 sorted set에서 데이터 삭제하는 로직 구현

* refactor : 전체 코드 리팩토링

* feat : 예매취소, 예매조회 api 및 유효성 검증 구현

* refactor : 인터셉터에서 데이터 추출 방식 변경 및 주석 제거

* chore : .gitignore update

* feat : 소켓 연결 테스트코드 작성

* chore : 테스트코드 수정

* fix : 테스트코드 오류 수정, SecurityConfig oauth 설정 주석 처리

* chore : 주석 해제

* chore : dev-ci.yml에 redis 설정 추가

* chore : redis 버전 변경, 호스트명 변경

* feat : 티켓팅 가능 시간 체크하는 로직 추가

* fix : seat 테이블 컬럼 수정 반영

* refactor : 결제 도메인이랑 로직 연결

* chore : 사용안하는 클래스 삭제

* refactor : 소켓 연결시 헤더에서 token 추출

* feat : 대기열 TTL을 좌석 선택 화면 접근 후부터 적용하도록 수정

* feat : 예매취소시 좌석 반환

* feat : SeatScheduleInfo Service에 대기열 passed 여부 확인 및 좌석 선택 완료 후 queue에서 삭제

* refactor : 소켓메세지 전송할 때 body 안넣어도 되도록 수정 및 오류 해결

* chore : 웹소켓 테스트용 text 파일 추가

---------

Co-authored-by: pokerbearkr <ogdongwon@gmail.com>

* feat : 예매 정보 생성 기능 추가 (#27)

* feat : 회차별 좌석 정보 Redis 적재 스케줄링 기능 추가

* feat : Redis 캐시 기반 좌석 조회 (DB와의 동기화 구현 필요)

* feat : 선점한 좌석에 대해 결제창으로 넘어갈 때, 예매 정보 생성 기능 추가 (결제가 완료되기 전의 상태를 나타냄)

* refactor : Redis key-value 구조를 성능을 위해 변경

* refactor : 1인 1매 정책으로 변경

* refactor : seat, seatScheduleInfo 파일 패키지 위치 변경

* refactor : Seat 관련 클래스 이름 변경 및 일부 위치 변경 (2)

* refactor : 누락된 패키지 이동 추가 (3)

* refactor : redis key 오타 변경

* feat : 테스트를 위해 Redis에 데이터 적재용 api 추가

* docs : readme.md 작성 (#28)

* Update README.md

---------

Co-authored-by: crocusia <132359536+crocusia@users.noreply.github.com>

* Feat: Redis 캐싱 개선 (#29)

* feat: 레디스를 활용한 조회 성능 캐싱

* gitignore 추가

* Remove application.yml from tracking

* refactor: redisconfig

* Feat: 카카오 소셜 로그인 기능 구현 (#32)

* build: .gitignore 업데이트

* build: OAuth2 의존성 추가

* style: DTO 클래스 이름 변경

* feat: 카카오 로그인 기능 추가

* feat: 네이버 로그인 구조 잡기

* feat: 카카오 로그인 기능 추가

* feat : 좌석 상태 변경 스케줄러 추가 (#33)

* build: .gitignore 업데이트

* build: OAuth2 의존성 추가

* style: DTO 클래스 이름 변경

* feat: 카카오 로그인 기능 추가

* feat: 네이버 로그인 구조 잡기

* refactor : 불필요한 애매 정보 생성 api 제거

* feat : SeateSchedulerInfo 상태 업데이트 메서드, redisKey 생성 메서드 추가

* refactor : 회차별 좌석 상태 변경 메서드 적용

* feat: 카카오 로그인 기능 추가

* feat : TTL 기반 상태 변경을 위한 메서드 추가

* feat : TTL 만료된 데이터 상태 변경을 위한 스케줄링 기능 추가

* feat : 예매 취소, 결제 완료 기능에 좌석 상태 변경 메서드 적용

* refactor(Seat, SeatScheduleInfo) : CustomExeption 예외로 수정

* refactor : Redis Value 저장 형식 통일

* refactor : 만료시간 설정 변경

---------

Co-authored-by: jiyun-im-dev <jiyun.im.dev@gmail.com>

* feat : 좌석 선택 api에 대기열 기능 연결 (#34)

Co-authored-by: pokerbearkr <ogdongwon@gmail.com>
Co-authored-by: jiyun-im-dev <jiyun.im.dev@gmail.com>
Co-authored-by: crocusia <132359536+crocusia@users.noreply.github.com>

---------

Co-authored-by: pokerbearkr <ogdongwon@gmail.com>
Co-authored-by: crocusia <132359536+crocusia@users.noreply.github.com>
Co-authored-by: kmchaejin <109498876+kmchaejin@users.noreply.github.com>
Co-authored-by: HeeMang-Lee <hemsej018@naver.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants