HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
[New] 타일러팀
[New] 타일러팀
/
코코아 헤어샵
코코아 헤어샵
/
📚
회의록
/
✔️
(2022.06.22)
✔️

(2022.06.22)

  • 예약 파트 겹치는 부분
    • 예약 확인(최연호), 예약 취소(이일환)
    • RESERVED, CANCELED?
    • 취소 수수료 & 제한 어떻게 할지
      • 카카오헤어샵은 2시간 전까지 전액 → 이후 10퍼 취소 수수료 → 예약 30분 후 노쇼 전액 수수료
      • 2시간 전까지 취소 가능 / 2시간 전 이후 부터는 취소 아예 불가능 ← 확정
    • entity → dto, dto → entity 어떻게 할지? → converter사용
    • 사용자 id 어떻게 받아와지는지 → service에서 쓰는 법
    • service 단에서 사용자 id로 검증하는 방법
    • 예약 컬럼 추가 할지 말지
      • 헤어샵 이름, 디자이너 이름, 직급, 메뉴 이름
      • 컬럼으로 추가 안하면 join 여러번 해서 가져와야 되는 이슈
      • join 여러번 해서 가져오기 ← 확정
 
  • 예약가능한 날짜 구현
    • 한달치의 data 생성 (맨처음)
    • 하루가 지날때마다 (자정) data 생성
      • 모든 디자이너 검색
      • 30분 단위의 data 생성
      • @Scheduled
    • table
      • Long id (bigint)
      • Long hairshop_id (bigint)
      • Long designer_id (bigint)
      • LocalDate date (date)
      • LocalTime start_time (date)
      • boolean reserved (TYNYINT(1))
    • 로직
      • 예약 가능한 시간 요청
        • 헤어샵, 날짜 parameter로 받는다.
        • 헤어샵, 날짜를 이용해서 테이블 조회 (false인 row만) & client에게 return
      • 예약 요청이 들어오면 해당 시간에 속하는 row는 “reserved column” true로 update
      • notion image
         

application.yml (test)

spring: datasource: # url: jdbc:h2:mem:test url: jdbc:h2:tcp://localhost/~/kokoa username: sa password: driver-class-name: org.h2.Driver jpa: generate-ddl: true open-in-view: false show-sql: true hibernate: ddl-auto: create properties: hibernate: format_sql: true dialect: org.hibernate.dialect.H2Dialect
 
  • validation 체크같은 경우는 대부분 entity에서 구현
 
  • 예약자, 헤어샵은 본인의 예약만 확인, 취소 가능해야 함
    • jwt 토큰의 user_id와 검증 필요
  • 예약자 별 예약 확인
    • get /reservations/user
  • 헤어샵 별 예약 확인
    • 요청(request) jwt의 userId와 hairshop id(@PathVariable로 받음)를 가지고 있는 userId(DB를 통해 hairshop을 가지고있는 user 검색) 를 검증한다.
    • get /reservations/hairshops/{}
  • 예약자별 예약 취소
    • patch /reservations/{}/user
    • 해당 예약의 user_id가 jwt 토큰의 user_id와 일치하는지 검증
  • 헤어샵별 예약 취소
    • patch /reservations/{}/hairshop
    • 해당 예약의 hairshop의 user_id가 jwt 토큰의 user_id와 일치하는지 검증
  • 검증은 controller or service에서 진행 (미정)
    • controller 단에서 하는 것이 나아 보임
    • hairshop_id로 user_id 가져오는 메소드를 service에 생성
    • 가져온 user_id로 controller에서 검증