[Spring](도서관/열람실 프로젝트) 좌석 예약 서비스 개선기
·
Projects/열람실 & 도서관 프로젝트
좌석 서비스를 예약 도중 버그를 발견을 해서 기록을 남기고자 작성한 글입니다. ​ 예시 상황을 들겠습니다. A라는 사용자와 B라는 사용자가 있습니다. ​ 둘다 좌석 예약 페이지를 보고 있습니다. ​ 만약 A 사용자가 1번 좌석을 예약 했지만 B 사용자는 페이지 새로고침이 안되어 있는 상황이라 1번 좌석이 비어있는 것으로 나오고 있습니다. ​ 이 상황에서 B사용자가 1번 좌석을 예약하면 똑같은 좌석이 동시에 두번 예약이 되는 상황이였습니다. 위 gif 파일을 보시면 알 수 있듯이 좌석테이블에 예약테이블을 JOIN 해서 갖고오기 때문에 하나의 좌석이 두번 표시되고 있었습니다. ​ 그래서 검증 프로세스를 하나 더 추가했습니다 로그인을 했는지 예약을 할 그 자리가 비어 있는지(추가) 로그인한 사람이 이미 다른 ..
[Spring](도서관/열람실 프로젝트) 좌석 예약 서비스 구현
·
Projects/열람실 & 도서관 프로젝트
​Restful API 방식으로 좌석 예약 서비스를 구현해보겠습니다. ​ 사용가 요청 보내는 방식은 "/seat/{좌석번호}" URI로 보냅니다. ​ 사용자가 위의 URI 형식으로 요청을 보낼 시, GET 요청을 하면 좌석정보(예약 정보까지) 갖고오고, POST 요청을 보내면 좌석 예약, PUT 요청을 보내면 좌석 연장, DELETE 요청을 보내면 좌석반납을 진행합니다. ​ 먼저 Controller 코드 입니다. 이 Controller 에는 RestController라는 어노테이션을 붙였습니다. ​ 먼저 좌석 예약을 하는 메서드 입니다. Post방식으로 받기 때문에 어노테이션을 PostMapping 을 선언해줬습니다. URI에 좌서번호가 담겨오기 때문에 @Pathvariable를 통해 seatId를 갖고..