Dto 필드에는 기본/참조 자료형 뭐가 적절한가?

ZEDY·2024년 3월 31일
0

[Backend] 서버 개발

목록 보기
4/10

Dto를 설계하면서 생긴 의문점에 대해 고민해봤습니다.

Dto란?

DTO (Data Transfer Object)는 데이터 전송 객체로, 애플리케이션의 각 계층 간에 데이터를 전송하는 데 사용됩니다. 주로 서비스와 클라이언트 사이, 또는 서비스 간에 데이터를 전달하는 데에 쓰입니다. DTO는 데이터베이스 또는 외부 서비스와 통신하는 데 필요한 데이터를 캡슐화하고 전달하기 위해 사용됩니다.

DTO의 주요 특징

  1. 데이터 전송 용도
    DTO는 데이터를 전송하는 용도로 사용됩니다. 주로 서비스 간에 데이터를 주고 받을 때 사용됩니다.

  2. 캡슐화
    DTO는 데이터를 캡슐화하여 관련 있는 데이터를 묶어서 전달합니다. 이는 데이터의 응집력을 높이고 관련 있는 데이터를 함께 처리할 수 있도록 합니다.

  3. 간단한 구조
    DTO는 주로 데이터의 전송을 목적으로 하기 때문에 간단한 구조를 가집니다. 보통 데이터 필드와 해당 필드에 접근하는 메서드를 가지고 있습니다.

  4. 불변성 (Immutability)
    일반적으로 DTO는 불변성을 가지고 있습니다. 즉, DTO의 데이터는 생성된 후에 변경되지 않습니다.

  5. 클래스 간 결합도 감소
    DTO를 사용하면 서로 다른 계층 간의 결합도를 감소시킬 수 있습니다. 서비스 계층이나 클라이언트가 DTO를 직접 사용하므로, 데이터 구조의 변경이나 업데이트가 발생해도 해당 계층만 수정하면 됩니다.

Java 자료형 : 기본 자료형 VS 참조 자료형

1. 기본 자료형 (primitive type)

장점

  • 메모리 사용량이 작습니다. 기본 자료형은 값만을 저장하므로 객체보다 메모리 사용이 더 효율적입니다.
  • 메모리 할당 및 초기화 비용이 적습니다. 객체를 생성하는 것보다 빠르게 처리될 수 있습니다.

단점

  • null 값을 가질 수 없습니다. 필드가 null이 될 수 있는 상황에서는 사용할 수 없습니다.
  • 기능이 제한적입니다. 객체의 메서드를 사용할 수 없으며, 데이터에 대한 복잡한 작업을 수행할 수 없습니다.

2. 참조 자료형 (reference type)

장점

  • null 값을 가질 수 있습니다. 필드가 null일 수 있는 상황에서 유용합니다.
  • 객체의 메서드를 사용할 수 있으며, 데이터에 대한 복잡한 작업을 수행할 수 있습니다.

단점

  • 메모리 사용량이 더 많습니다. 객체를 생성하고 관리하는 데 추가적인 메모리가 필요합니다.
  • 메모리 할당 및 초기화 비용이 더 큽니다. 객체를 생성하는 데 시간이 더 오래 걸릴 수 있습니다.

DTO (Data Transfer Object)의 필드에 대해 기본 자료형(primitive type)과 참조 자료형(reference type) 중 어떤 것이 적절한지는 상황에 따라 다를 수 있습니다. 각각의 장단점을 고려하여 선택해야 합니다.

DTO에 적절한 자료형은?

따라서 필드에 적절한 자료형을 선택할 때는 다음 사항을 고려해야 합니다.

  • 해당 필드가 null이 될 수 있는지 여부
  • 필드의 용도와 기능

일반적으로는 기본 자료형을 사용할 수 있는 경우에는 기본 자료형을 사용하는 것이 메모리 사용 및 성능 측면에서 유리합니다. 그러나 null을 처리해야 하는 경우나 객체의 기능을 활용해야 하는 경우에는 참조 자료형을 사용해야 합니다.

일반적으로 DTO (Data Transfer Object)에는 기본 자료형(primitive type)을 사용하는 것이 일반적입니다. 이는 DTO가 주로 데이터 전송을 목적으로 하기 때문에, 데이터를 효율적으로 전달하고 메모리 사용을 최적화하기 위해서입니다.

기본 자료형을 사용하는 것이 객체를 사용하는 것보다 메모리 사용량이 작고, 처리 속도가 더 빠릅니다. 또한 DTO는 주로 데이터 전송을 위한 용도로 사용되므로, 객체의 메서드를 사용할 필요가 없습니다. 따라서 복잡한 객체 구조나 추가적인 기능이 필요하지 않은 경우에는 기본 자료형을 사용하는 것이 적합합니다.

그러나 DTO에 객체를 사용하는 경우도 있을 수 있습니다. 예를 들어 DTO에는 문자열(String)이나 컬렉션(List, Map 등)과 같은 객체를 사용하는 경우가 많습니다. 이는 데이터의 구조가 복잡하거나 유연성이 필요한 경우에 사용될 수 있습니다. 그러나 객체를 사용할 때는 메모리 사용량이 더 많아질 수 있으므로, 성능에 영향을 미칠 수 있습니다.

따라서 DTO에는 기본 자료형을 사용하는 것이 일반적이지만, 상황에 따라 객체를 사용하는 것도 가능합니다. 어떤 방식이 적합한지는 해당 DTO의 목적과 요구사항에 따라 다를 수 있습니다.

결론

기본 자료형을 주로 쓰지만, 때에 따라 참조 자료형을 쓰기도 한다.

profile
IT기획/운영

0개의 댓글