JAVA

[기술면접] dto와 pojo

dev22 2023. 5. 26. 12:37
728x90

Pojo와 DTO는 모두 객체 지향 프로그래밍에서 데이터를 전달하거나 저장하기 위한 클래스입니다. 그러나 둘 사이에는 몇 가지 차이점이 있습니다.

 

POJO (Plain Old Java Object): POJO는 단순히 데이터를 저장하고 접근하기 위한 클래스입니다. POJO는 Java의 기본적인 객체 지향 원칙을 따르며, 일반적으로 getter와 setter 메서드를 사용하여 데이터에 접근합니다. POJO는 특정 프레임워크나 라이브러리에 종속되지 않으며, 순수하게 데이터를 표현하기 위한 목적으로 사용됩니다. 비즈니스 로직을 갖지 않고 데이터만 담고 있는 단순한 구조를 가지고 있습니다.

 

DTO (Data Transfer Object): DTO는 데이터의 전송을 목적으로 사용되는 객체입니다. 주로 여러 개의 필드로 구성되며, 여러 계층 간 데이터 교환에 사용됩니다. DTO는 주로 데이터베이스 조회, 원격 호출, 웹 서비스와 같은 작업에서 사용됩니다. DTO는 데이터의 전송을 위해 사용되기 때문에 일반적으로 직렬화할 수 있는 형태로 구성됩니다. DTO는 비즈니스 로직을 포함하지 않으며, 단순히 데이터를 저장하고 전달하기 위한 용도로 사용됩니다.

주요 차이점:

  1. 용도: POJO는 순수하게 데이터 저장을 위한 객체로 사용되며, DTO는 데이터 전송을 위한 객체로 사용됩니다.
  2. 의존성: POJO는 특정 프레임워크나 라이브러리에 종속되지 않으며, 일반적인 Java 객체입니다. DTO는 주로 특정 계층 간 데이터 전송을 위해 사용되기 때문에 특정 프레임워크나 기술에 종속될 수 있습니다.
  3. 비즈니스 로직: POJO는 단순한 데이터 저장 객체이므로 비즈니스 로직을 포함하지 않습니다. DTO도 비즈니스 로직을 포함하지 않으며, 단순히 데이터 전달을 위한 용도로 사용됩니다.

이러한 차이점으로 인해, POJO는 주로 도메인 객체나 데이터베이스 모델링에서 사용되고, DTO는 주로 데이터 전송 계층에서 사용됩니다. 그러나 현실적으로 POJO와 DTO의 용어는 종종 혼용되어 사용되기도 하며, 프로젝트나 개발 팀의 관례에 따라 다를 수 있습니다.