본문 바로가기

내일 배움 캠프

2024-01-19

오늘은 프로젝트 16일차이다.

오늘도 어제와 마찬가지로 프로젝트 와이어프레임으로 기반한 프론트 구성을 진행했고 오늘 담당한 모든 프론트 페이지를 전부 구현했다. 구현한 페이지는 공연장 생성페이지, 공연 정보 생성 페이지, 공연 생성 페이지, 등급 생성 페이지, 구역 등급 생성페이지, 경매 생성 페이지, 공연 단건 조회 페이지까지 총 7개의 페이지를 구현하였으며

오늘 경매 생성페이지를 구현을 마치고 테스트까지 완료했다. 경매 생성 페이지를 만들다 보니 검증해야할 부분이 많아서 시간이 오래걸렸다. 첫번째로 등록한 공연장의 구역에 총 좌석 개수보다 경매 좌석이 큰지 작은지 검도해야했고, 그다음으로 그전에 저장한 경매 좌석이 중복체크를 진행해야했다. 여기까지 검증하는건 사실 큰 문제는 아니였지만 http, js, css 3개의 구성을 신경쓰다보니 시간이 너무 오래 걸렸다. 마지막으로 생성 요청을 보낼때 에러가 발생했다. 기존에도 발견한적 있지만 Dto 클래스에서 필드값이 하나만 있을때 JSON으로 보내면 역직렬화를 하는데 이 역직렬화 할때 실제로 클라이언트에서 데이터를 보내도 JSON에서 데이터가 있는지 체크를 못하는 현상이다. 

이렇게만 있다면 기본 생성자가 없어서 서블렛에서 JSON에서 객체로 역직렬화 할때 파싱을 못한다.

@Getter
@RequiredArgsConstructor
public class AuctionCreateRequest {

    @NotNull(message = "경매 좌석 번호를 입력해주세요.")
    private final Integer seatNumber;
    
}

따라서 @JsonCreator를 통해 클래스의 인스턴스로 파싱하게 끔 도와준다. 이런식으로 마지막 오류를 해결하고 완성했다.

@Getter
public class AuctionCreateRequest {

    @NotNull(message = "경매 좌석 번호를 입력해주세요.")
    private final Integer seatNumber;
    
    	@JsonCreator
	public AuctionCreateRequest(Integer seatNumber) {
		this.seatNumber = seatNumber;
	}
}

 

오늘 생성한 페이지는 구역 등급 생성페이지와 경매 좌석 생성 페이지이다.

'내일 배움 캠프' 카테고리의 다른 글

2024-01-23  (0) 2024.01.23
2024-01-22  (0) 2024.01.23
2024-01-18  (0) 2024.01.19
2024-01-17  (0) 2024.01.18
2024-01-16  (1) 2024.01.17