전체 글(103)
-
20240306 (수) 최종 프로젝트 티켓레이더 2주차 - 다시 처음으로
오늘은 다시 초심으로 돌아가 CRUD 부분을 확인보았다. 1. Seat, Place 수정 기존 Place에 어드레스가 없어서 추가를 해줬다. 이는 곧 추가 구현할 동적 쿼리에서 주소를 기반으로 검색을 하는 작업에 사용될 것이다. 또 Place와 Seat 사이에 관계를 걸어줘서 Place가 수정이 되면 Seat도 수정이 될수 있도록 해주었다. 그리고 Seat 엔티티에 최대 좌석 갯수와 각종 함수들을 추가해줬다. fun isFull(): Boolean { return (seatR >= maxSeatR && seatS >= maxSeatS && seatA >= maxSeatA) } fun isClosed(): Boolean { return bookable == Bookable.CLOSED } fun close..
2024.03.06 -
20240305 (화) 최종 프로젝트 티켓레이더 2주차 - Lock 구현
오늘 작업한 내용 1. MemberRepositoryTest package com.codersgate.ticketraider.domain.member.repository import com.codersgate.ticketraider.domain.member.entity.Member import com.codersgate.ticketraider.domain.member.entity.MemberRole import org.assertj.core.api.AssertionsForInterfaceTypes.assertThat import org.junit.jupiter.api.Test import org.springframework.beans.factory.annotation.Autowired import org..
2024.03.05 -
20240304 (월) 최종 프로젝트 티켓레이더 2주차 - Test-code
1. EventServiceImpl 구현완료 package com.codersgate.ticketraider.domain.event.service import com.codersgate.ticketraider.domain.category.repository.CategoryRepository import com.codersgate.ticketraider.domain.event.dto.EventRequest import com.codersgate.ticketraider.domain.event.dto.EventResponse import com.codersgate.ticketraider.domain.event.repository.EventRepository import com.codersgate.ticketr..
2024.03.04 -
20240229 (목) 최종 프로젝트 티켓레이더 1주차 - CRUD 마무리단계
오늘 한 일 1. Event(price,seat) 리팩토링 이렇게 되어 있던 것을 Create와 Update Request를 합치고 아래에 해당 코드를 짜주었다 그리고 1번사진을 이렇게 바꾸었다. 2. Seat 테이블 이름 변경 Seat 테이블의 이름을 AvailableSeat로 변경하였다. 이유는 Seat 테이블이 그냥 좌석이 주체가 되는게 아닌 유저가 티켓을 구매할때 이 Seat 테이블을 기준으로 예약이 가능한지, 아닌지를 구분하는 용도로 쓰이기 때문에 그냥 “좌석”이라는 단어인 Seat는 직관적이지 않다. 3. 락 키 구현 관련 정책설정 우리는 동시성 제어를 해볼것인데 락을 구현할때 이 락이 걸리는 시점과 락키를 구분지을 방법을 의논하였다. 우선 유저입장에서 티켓을 예매하고 결제하는 과정을 써보자면..
2024.02.29 -
20240228 (수) 최종 프로젝트 티켓레이더 1주차 - 본격적인 코딩
오늘 한 내용 1. Price, Seat 구현 2. OneToOne 관계 설정 오류 3. 로그인시 토큰 문제 해결 1. Price, Seat 구현 Price와 Seat는 따로 패키지를 만들지 않고 Controller와 ServiceImpl은 Event와 공유하며 Response, Repository, Model 만 구분해서 만들었다. 이유는 저 두개는 Event 가 만들어질 때 자동으로 만들어져야 하는 구조로 우리가 계획을 하였고 따라서 ServiceImpl에서 CreateEvent시 Price, Seat의 생성 코드를 작성하였다. override fun createEvent( categoryId: Long, eventRequest: CreateEventRequest, ) { val category = ..
2024.02.28 -
20240227 (화) 최종 프로젝트 티켓레이더 1주차 - 회의 진행 중..
오늘은 Category 패키지 부분을 작성하고 3시쯤 튜터님께 피드백을 받았다. 우리가 진행하기로 한 티케팅 어플리케이션에서 우리조만의 특별한 강점? 같은거를 생각해보는게 좋다고하셨다. 일단 처음으로 락구현쪽으로 말씀을 주셨는데 단순한 락구현 말고도 어떤 프로그램을 사용할거고, 대기열은 어떻게 처리할건지를 (특히 유저입장에서는 어떨지) 생각해보라고 하셨다. 이부분은 아직 구현해보려면 멀었기에 잠시 뒷전으로 미뤘고 그 다음으로 들은 내용이 단순히 이벤트 테이블에 모든걸 처리하는것보단 세세하게 ERD를 짜보는것이 좋다고 하셨고 우리조가 생각해낸것이 좌석 정보(Seat) 장소(Place) 가격(Price) 테이블이다. 우선 장소는 컨트롤러와 서비스가 있는 패키지로 만들 예정이고 이름, 총 좌석수, R,S,A ..
2024.02.27