본문 바로가기
반응형

개발 기초 다지기69

공연 예매하기 (nest.js transactionalEntityManager) 공연 예매하기 기능 구현을 위해 nest.js에서의 첫 트랜젝션에 시도하게 되었다. express 때 트랜젝션에 대해 학습하긴 했지만, 팀플에서도 그렇고 항상 내가 맡은 부분은 트랜젝션이 필요하지 않은 부분이다보니 혼자의 힘으로는 첫 시도라고 할 수 있다.  막막하지만 처음이다 보니 한 발짝 더 나아가는 것 같아 설레는 마음도 들었다. 기본적인 예매 관련 세팅- create-reservation.dto.tsexport class CreateReservationDto { @IsInt() @IsNotEmpty({message:'공연 스케쥴 Id를 입력해주세요.'}) performanceScheduleId: number; @IsInt() @IsPositive() @IsNotEm.. 2024. 7. 9.
예매 가능여부 반환(메모리 내 계산 vs 데이터베이스 필드) 예매 상세페이지에서 현재 티켓이 예매가 가능한지 여부를 반환하는 코드를 구현해야 했다. 구현을 위해 머릿속에는 두가지 방법이 생각났다. 1. 조회 시점마다 남아있는 좌석 수를 확인해서 반환 할 것이냐 2. 데이터베이스 테이블 내에 가능 여부 필드를 따로 생성할 것인가 이다.  메모리 내 계산 vs 데이터베이스 필드 생성결정하기 전 각각의 장단점에 대해 알아보았다.1.  메모리 내에서 계산하여 추가 속성 반환장점유연성: isAvailable 필드를 필요에 따라 동적으로 계산할 수 있어, 조건이 변하더라도 쉽게 변경할 수 있다.데이터베이스 일관성: 데이터베이스 스키마에 영향을 주지 않으며, 추가 필드로 인한 데이터베이스 수정이 필요 없다.간단한 유지보수: 코드 내에서 필요한 필드를 추가하므로, 데이터베이스를.. 2024. 7. 8.
티켓예매 사이트 공연 날짜/시간 body에서 배열형식으로 받기 열심히 티켓예매 사이트 개인 과제를 진행중이다. 공연 등록에서 고려해야할 점은 하나의 공연이 여러날짜에, 그리고 같은 날짜여도 여러 시간에 나눠서 진행된다는 것이다. 그렇기에 공연을 등록할 때, 배열을 통해 한번에 여러 날짜와 시간을 입력해야한다. body를 통해 어떻게 배열을 받을 수 있지?과제 발제 문서를 통해 이 부분을 배열로 받으면 된다는 힌트를 얻었다. 그렇다면 배열은 어떠한 방식으로 받을 수 있을까?우선은 body를 통해 배열이 들어온다고 생각했을 때, 제일 먼저 만나게 되는 곳이 어디인지 생각해보았다. 바로 내가 만든 createPerformanceDto였다.  createPerformanceDto공연 스케줄에 대한 데이터 DTO를 먼저 만들어주었다.class PerformanceSchedu.. 2024. 7. 8.
카테고리별로 공연 목록을 조회 (쿼리 vs URL 경로) Typescript와 Nest.js를 이용한 첫 과제를 진행중이다. entity와 dto는 스키마와 validator느낌이라 괜찮은편이지만 module쪽은 모든 코드에 주석을 달면서했음에도 불구하고 아직도 이해가 쉽지 않다. 그래도 강의를 참고하고 이것저것 찾아가며 구현을 해나가고 있다. 그 중 오늘 구현한 공연 목록 조회. 그 중 쿼리를 이용한 전체/카테고리 별로 선택해서 보는 것을 정리해보려 한다. '전체, 카테고리 별로 나누어서 조회' 어떻게 해야할까? 위 이미지처럼 콘서트를 클릭하면, 콘서트 카테고리에 속한 공연 목록들이 반환돼야하는 것이다.  인터파크 티켓의 경우에는 URL경로를 통해 목록을 조회했다.나는 보통 이런 정렬 기능을 사용할 때, 쿼리파라미터를 사용하는 것이 적절하다고 들어왔기에 둘의.. 2024. 7. 4.
반응형