인프런 커뮤니티 질문&답변

최재영님의 프로필 이미지
최재영

작성한 질문수

스프링부트 JUnit 테스트 - 시큐리티를 활용한 Bank 애플리케이션

회원가입 서비스 코드 리팩토링

DTO를 이너클래스로 계속추가하는 이유

해결된 질문

작성

·

498

0

bank.dto.user 패키지안에 req, resp 패키지를 만들어서 각각 DTO 클래스를 추가하는것과

선생님이 하신 UserReqDto , UserRespDto 에 이너클래스로 추가하는건 무슨차이가 있나요 ???

답변 2

0

최주호님의 프로필 이미지
최주호
지식공유자

자바 클래스로 DTO를 만들면 DTO파일이 너무 많이 늘어나서!! 관리를 용이하게 하고!

 

이름도

 

최근에는 이렇게 만듭니다. 가령 회원가입이라면

 

UserRequest 클래스 안에

JoinDTO static 이너 클래스를 만들어서

 

외부에서 사용할때는 UserRequest.JoinDTO 이렇게 사용하면 이름 짓기가 좋아서 저는 위와 같이 사용하고 있습니다.

 

패키지를 만들고, 파일을 생성하는 방법으로 하셔도 됩니다!! 차이라기 보다는 각 회사의 컨벤션이라고 이해해도 될것 같습니다. 스타일?

최재영님의 프로필 이미지
최재영
질문자

아하.. 외부에서 사용할떄 UserRequest.JoinDTO 이렇게 보이는게 쫌 깔끔하지 않아보여서 찝찝했는데 실무에서는 회사 스타일에 따라서 하면 되겠군요 ! 감사합니다

0

안녕하세요 최재영 님, 인프런 AI 인턴이에요.

DTO를 이너클래스로 추가하는 방법과 외부 클래스로 추가하는 방법에는 몇 가지 차이가 있습니다. 일반적으로 DTO는 데이터 전달을 위한 객체로 사용되며, 이너클래스로 추가할 때와 외부 클래스로 추가할 때의 차이점은 다음과 같습니다.

  1. 코드 구조: 이너클래스로 추가할 경우, 상위 클래스에 종속되는 형태로 코드 구조가 구성됩니다. 이에 따라, 이너클래스에서는 상위 클래스의 멤버 변수와 메서드에 자유롭게 접근할 수 있습니다. 반면 외부 클래스로 추가할 경우, 별도의 클래스로 구성되기 때문에 독립적인 구조를 가집니다.

  2. 코드 가독성: 이너클래스로 추가할 경우, 관련된 클래스들이 하나의 파일에 모여 있기 때문에 코드 가독성이 향상될 수 있습니다. 하지만 이너클래스를 계속 추가하는 경우에는 클래스 파일이 점점 커질 수 있으므로, 파일의 크기나 복잡성에 주의해야 합니다. 외부 클래스로 추가할 경우에는 각각의 파일에 하나의 클래스가 있기 때문에 파일 단위로 관리할 수 있습니다.

  3. 재사용성: 이너클래스로 추가하는 경우, 해당 이너클래스는 상위 클래스에 종속되기 때문에 외부 클래스에서 재사용하기 어렵습니다. 외부 클래스로 추가하는 경우에는 별도의 클래스로 구성되기 때문에 다른 클래스에서도 쉽게 재사용할 수 있습니다.

따라서, DTO를 이너클래스로 추가하거나 외부 클래스로 추가하는 것은 개발자의 선택에 따라 다를 수 있습니다. 프로젝트의 구조와 요구사항에 맞게 적절한 방법을 선택하여 사용하시면 됩니다. 감사합니다!

최재영님의 프로필 이미지
최재영

작성한 질문수

질문하기