[우아한테크코스] 4월 14일 TIL
오늘 배운 것
- spring chess
pojo
Plain Old Java Object로 순수한 자바 객체이다.
따라서 spring에 직접적으로 의존한 순간 pojo라고 볼 수 없다.
특정 기술의 클래스를 상속받거나, 직접 의존하게 되어 확장성이 매우 떨어진다는 단점이 있다.
자바 직렬화 역직렬화
-
직렬화
객체나 데이터를 byte 형태로 데이터 변환하는 것
자바 기본 타입,Serializable
을 상속받은 객체는 직렬화 가능
java.io.ObjectOutputStream
객체로 직렬화 -
역직렬화
byte 형태를 다시 객체나 데이터로 변환하는 것
직렬화 대상의 클래스가 import 되어있어야 한다.
직렬화 대상 객체는 동일한serialVersionUID
를 가지고 있어야 한다.(ex 1L) -
직렬화의 방법
- CSV
- JSON
직렬화는 자바 시스템 간의 데이터 교환을 위해서 존재한다. 적재적소 (cache, servlet session, 자바 rmi)에 사용되어야 한다.
따라서 이번 체스 미션에서 디폴트 생성자를 넣어주어야지 @RequestBody에서 객체를 전달 받을 수 있었다.
spring에 get과 is
스프링은 is는 날아가고 getter가 없으면 객체로 받아오지 못한다.
따라서 모든 dto에 getter가 필요했다.
dao vs repository
-
dao
entity로 db의 데이터와 프로그래밍 언어 1:1 매칭 가능
이렇게 sql 작성하고 객체 필드에 하나씩 매핑 필요 -
repository
pojo로는 접근 불가, 도메인과 1:1 매칭