[우아한테크코스] 4월 14일 TIL

less than 1 minute read

오늘 배운 것

  1. 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 매칭