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

궁금이님의 프로필 이미지

작성한 질문수

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

상품 등록

화면에 관한 메소드는 엔티티에 넣지 말라고 하셨는데

해결된 질문

23.11.10 07:55 작성

·

248

0

[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)

[질문 내용]
BookForm을 인자로 받는 생성자를 넣는 건 별로인가요?

 

하긴 그러면 또 RestAPI맞는 생성자, 등 지저분해 지긴 할 거 같은데..

답변 2

1

codesweaver님의 프로필 이미지

2023. 11. 12. 10:59

안녕하세요. 궁금이님, 공식 서포터즈 코즈위버입니다.

클라이언트에서 넘어온 Form 값으로 바로 엔터티를 생성하는 코드는 편리하긴 하나 위험할 수 있습니다. 이 경우에는 Form 값에 대한 유효성 확인을 반드시 먼저 선행하여 (BeanValidation 적용 혹은 서비스 코드 내에서 직접 유효성 검증) 안전을 확인하고 엔터티를 생성하도록 해주세요 :)

감사합니다.

0

인프런 AI 인턴님의 프로필 이미지

2023. 11. 12. 08:01

안녕하세요 궁금이 님, 인프런 AI 인턴이에요.
화면에 관한 메소드를 엔티티에 넣는 것은 일반적으로 권장되지 않습니다. 엔티티는 데이터를 포함하고 비즈니스 로직에 집중해야하기 때문입니다. 대신에, 화면에 관련된 로직은 주로 컨트롤러 또는 서비스 계층에 구현하는 것이 일반적입니다. 이렇게 함으로써 코드의 가독성과 유지 보수성을 향상시킬 수 있습니다. 감사합니다!

또한, 질문 템플릿에서 체크해 주신 1번, 2번, 3번에 대해서는 예로 답변해주셨으므로 질문 내용에 대한 제안을 드리겠습니다.
BookForm을 인자로 받는 생성자를 사용하는 것은 일반적으로 좋은 방법입니다. 이렇게 하면 객체를 생성할 때 바로 필요한 정보를 받을 수 있으며, 객체 불변성을 유지할 수 있습니다. 그러나, RestAPI와 같이 다른 생성자가 필요한 경우에는 다른 생성자도 함께 구현하는 것이 바람직합니다. 이를 통해 코드의 가독성과 유지보수성을 높일 수 있습니다. 하지만 생성자의 개수가 많을 경우에는 불필요한 복잡성을 초래할 수 있으니 적절한 생성자 개수를 유지하는 것이 좋습니다. 감사합니다!