* 이 내용은 이펙티브 자바 12장 아이템 90의 내용을 토대로 작성되었다. 직렬화의 위험성 기본적으로 객체를 직렬화 한다면 implements Serializable을 많이 사용한다. implements Serializable을 사용해 자동으로 객체는 바이트 스트림으로 직렬화 하고 그것을 역직렬화 하는데 이 때 공격자는 바이트 스트림을 수정해 객체에서 외부에서 접근 불가하게 private으로 선언된 값을 참조할 수 있으며 수정해 불변식을 깨뜨릴 수 있다. 예를 들어 아래와 같이 기간을 저장하는 Period라는 클래스가 있다고 하자. public class Period implements Serializable { private final Date start; private final Date end; ..
보통 serialize 기능을 사용한다고 하면 Jackson을 많이 사용한다. serialize는 간단하게 설명하면 객체를 byte[]로 변환해서 전송하는 것을 의미하며 여기에 압축, 암호화 등 원하는 로직이 들어가곤 한다. 반대는 deserialize로 byte[]를 받아서 객체로 변환하는 것이다. 여하튼 요지는 Jackson serializer를 많이 사용하는데, (Jackson serializer가 무엇인지는 추후 정리해보겠다.) Jackson serializer말고도 Kryo serializer라는게 있다는 것을 알게 되는 기회가 생겨서 알게 된 내용들을 정리해본다. Kryo serializer란? 빠르고 컴팩트하게 직렬화를 할 목적으로 만들어진 경량 직렬화 프레임워크이다. 아무래도 속도와 용량을..
- Total
- Today
- Yesterday
- 메시지큐
- k8s
- ssh
- annotation
- MAC
- rabbitmq
- DATABASE
- 스프링부트
- mockito
- JPA
- enum
- 공간데이터
- 이클립스
- Spring
- 역직렬화
- Java
- Caching
- HttpClient
- eclipse
- postgres
- springboot
- PostgreSQL
- DB
- 캐시
- cache
- 자바
- 어노테이션
- 캐싱
- Intellij
- 데이터베이스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |