외부에 엔티티를 직접 노출할 때의 위험성

song yuheon·2023년 10월 14일
0

Java

목록 보기
42/46
post-thumbnail
post-custom-banner

엔티티란?


객체 지향 프로그래밍에서 엔티티는 주로 도메인 모델을 설계할 때 중요한 역할을 한다.
엔티티는 애플리케이션의 핵심 비즈니스 로직을 나타내는 객체로 일반적으로 데이터베이스의 테이블과 1:1로 매칭되는 경우가 많다.
ORM 프레임워크에서는 이러한 엔티티 객체가 직접 데이터베이스와 연동되어 데이터의 CRUD 연산을 수행한다.


엔티티를 외부에 노출 할때의 위험성


노출의 위험성

  • 기본 설정으로 엔티티의 모든 속성이 외부에 노출될 수 있다.
    이는 보안 문제를 초래할 수 있다.

API 응답형태의 변동성

  • 엔티티가 변경될 경우 이에 따라 API 응답 형태도 변동될 수 있다.
    이는 클라이언트와의 약속을 깨트릴 수 있다.

컬렉션 반환의 문제점

  • 컬렉션을 직접 반환할 경우 추후에 API 스펙 변경이 어렵다.
    별도의 Result 클래스를 생성하여 해결할 수 있지만 이 역시 추가적인 작업이 필요하다.

정리


API의 응답 형태에 맞추어 데이터를 전달하기 위해선 엔티티를 직접 사용하기 보다는 DTO를 만들어서 한가지 목적으로 사용하는 것이 바람직하다


profile
backend_Devloper
post-custom-banner

0개의 댓글