엔티티란?
객체 지향 프로그래밍에서 엔티티는 주로 도메인 모델을 설계할 때 중요한 역할을 한다.
엔티티는 애플리케이션의 핵심 비즈니스 로직을 나타내는 객체로 일반적으로 데이터베이스의 테이블과 1:1로 매칭되는 경우가 많다.
ORM 프레임워크에서는 이러한 엔티티 객체가 직접 데이터베이스와 연동되어 데이터의 CRUD 연산을 수행한다.
엔티티를 외부에 노출 할때의 위험성
노출의 위험성
- 기본 설정으로 엔티티의 모든 속성이 외부에 노출될 수 있다.
이는 보안 문제를 초래할 수 있다.
API 응답형태의 변동성
- 엔티티가 변경될 경우 이에 따라 API 응답 형태도 변동될 수 있다.
이는 클라이언트와의 약속을 깨트릴 수 있다.
컬렉션 반환의 문제점
- 컬렉션을 직접 반환할 경우 추후에 API 스펙 변경이 어렵다.
별도의 Result 클래스를 생성하여 해결할 수 있지만 이 역시 추가적인 작업이 필요하다.
정리
API의 응답 형태에 맞추어 데이터를 전달하기 위해선 엔티티를 직접 사용하기 보다는 DTO를 만들어서 한가지 목적으로 사용하는 것이 바람직하다