• 코드 컨벤션

    Code Convention

  • 깃플로우 전략

    Github Rules

  • 배포 계획

    • 프론트 정적 웹 서버: AWS S3 + CloudFront
    • 백엔드 웹 앱 서버: AWS EC2 + RDS + ElasticCache + ALB
    • CI/CD: 미정
  • 이번 주 한 일

    • 기획 및 기획 개편
    • 개발 환경 설정
    • ERD, Wireframe, APi명세서 작성 완료
    • git projects 를 이용하여 일정 및 진행도 공유
    • 팀원 개인
      • 정성호(팀장)
      • 김진훈
      • 김민중
      • 김혜윤
  • 이외에도 기술적인 방향을 잡기 위한 질문을 정리해두시면 가장 좋습니다!

    → 단, “A는 어떻게 구현하나요”의 질문은 삼가주세요.

    → “A와 B를 알아보았는데, 둘 중 A가 낫다고 판단했는데 맞을까요?”의 식의 고민의 흔적을 담아 질문해주세요.

    • 현재 Seat table 와 place table 가 구분되어 있는데, seat table를 단독으로 사용하지 않는 상황에서 구분할 필요성이 있을까요? → 이대로 하자~

    • /api/v1/places/{placecId}/goods/{goodsId}/sequences/{sequenceId}/seats/{seatId}

      이 순서? 이렇게 작성하는 것이 맞을까요? → 이건 너무해…. 복합키로서 필요한 것만 쓰자;;;

      → 만약 어떤 메소드가 goodId가 필요하다면, 그거는 queryparameter로

    • dto → entity 변환 시

      1. User of(String email, String password…),

      2. User of(UserCreateRequest) entity는 request에 의존하지 않고 그 자체로 존재해야 한다고 생각

      Request.toEntity(User) → User of(String email, String password…)

      튜터님의 의견은? 궁금합니다? 저희는 User.of(request) 방식으로 결정했습니다.

      이 부분의 이후 문제점을 발견, Sequence 같은 경우 request가 필요하지 않는데 이것을 통일화하기 위해서는 SequenceRequest를 만들어야 하는데 불필요한 request dto인데 맞는 것일까?

      → 하지만, 한 팀원의 의견(익명성 보장)은 굳이 entity를 생성하는 부분에서 이 request를 파라미터로 전달하는 부분이 꼭 모든 부분에서 통일화가 되어야 하는가? request를 전달하는 방식을 사용하자는 것은 개발의 편의성, 변경 가능성을 고려해서 적절한 방식을 혼용해서 사용하는 것이 어떤가입니다.

      → 이 request를 파라미터로 전달하는 방식과 필드를 파라미터로 전달하는 방식을 혼용해서 사용하는 것이 코드 내 통일성(= 컨벤션)을 위배하는 것인가? 에 대한 의견이 궁금합니다. → 저는 코딩 컨벤션이라는게 entity의 생성방식을 고정하는 것은 아니라고 생각하는데..

      튜터님 한 말씀 ✅
      **request.toEntity() → Entity.builder().build** 
      builder 패턴?
      
    • 패키지 정렬? 배열?을 어떤 기준으로 하는 것이 명확할까요?

      • 특히, goods(공연), sequence(회차), 좌석(seat), 공연장(place) 가 너무 depth 가 깊지않게 구성하고 싶은데 service나 controller가 작성되지 않더라도 패키지 분리가 좋을까요? 아니면 place → seat , goods → sequence 이런식으로 하위로 넣어주는 것이 명확할까요

      그냥 빼서 쓰자!

    • 엔티티와 request, response dto 에서 원시타입과 참조타입의 사용

      • 특정 필드에 대해서, 참조 타입 대신에 원시 타입을 사용해도 되는 부분?
      • 만약 쓴다면, dto 와 entity 의 각 타입을 맞춰줘야 합니까?
      • 만약 안 맞춰줘도 된다면, dto에서 참조 타입과 원시 타입 중 사용하기에 더 맞는 부분은 무엇일까요?
      • jdbc api에서 쿼리문을 만들어줄때 sql dataType이 원시 타입으로으로 매핑해?
    • 경매 남은 시간에 관련하여 의견이 있는데, 어떻게 생각하시나요? Good Idea

      1. 좌석 추가 시, 경매 등록(DB에)
      2. redis 에 key(경매 id), value(해당 경매에 대한 입찰가) 남은 시간 등록(현재 ~ 경매 종료될 때까지의 시간) TTL
      3. 유저들이 좌석을 선택
      4. 웹 소켓을 여는데, STOMP 방식(채팅방 처럼), 1번 좌석을 선택한 모든 유저들을 하나의 채팅방에 초대하는 형식
      5. 여기서 redis에 저장된 남은 시간을 뿌려줌
      6. 경매 종료 == redis 에 키가 expire됨
      7. 키에 대해서 listener를 두고 계속 체크
      8. 이제 키가 없어지면, 경매 종료를 호출
      • 궁금증
        • 종료 체크 시 listener를 둔다.
        • 이걸 어떤식으로 할 것인가?
        • 답변
          • redis KeyExpirationEventMessageListener
  • 숙제: 멘토링 결과 다음 주까지 해올 일

    • 공통으로 진행해야 하는일
      • 서비스 로직구현 완료 및 테스트코드 작성으로 통한 로직 오류 잡기
      • 유저 - 김혜윤
      • 경매 - 김민중
      • 예약 - 김진훈
      • 공연 - 정성호
    • 개인별 할일 - 정성호
      • 엔티티 리팩토링
      • 공연 서비스 로직 MVP 30% 로직구현
    • 개인별 할일 - 김진훈
      • 엔티티 리팩토링
      • 예매 서비스 로직 MVP 30% 로직구현
    • 개인별 할일 - 김민중
      • 엔티티 리팩토링
      • 경매 서비스 로직 MVP 30% 로직구현
    • 개인별 할일 - 김혜윤
      • 회원 서비스 로직 MVP 50% 로직구현
      • 토스 결재(포인트) 연동 설계