✔︎ Map보다 DTO 클래스를 사용해야 하는 이유
- 컴파일 에러 유발 가능성
- String 텍스트를 key로 사용 → 오타의 가능성
- 가독성이 떨어짐
- 타입캐스팅 비용이 발생한다
- 불변성을 확보할 수 없음
✔︎ POJO(Plain Old Java Object)
특정 기술에 종속되어 동작하는 것이 아닌 순수한 자바 객체(물론 객체지향적인 원리에 충실해야한다)
-
POJO 지향
- 기술과 환경에 종속되면 자바 코드는 가독성이 떨어져 유지 보수의 어려움이 생긴다. 확장성 또한 매우 떨어진다.
- 따라서 어떠한 기술에도 의존하지 않는 순수한 객체인 pojo 를 지향 해야한다.
-
스프링에서 POJO
- PSA를 통해 가능하다.
- PSA(Potable Service Abstraction, 환경의 변화와 관계 없이 일관된 방식의 기술로 접근 환경을 제공하려는 추상화 구조)
✔︎ @NoArgsConstructor(access = AccessLevel.PROTECTED)
무분별한 객체 생성에 대해 한번 더 체크할 수 있다.
✔︎ 참고