인프런 커뮤니티 질문&답변
60강 ProductDoument 코드 관련 질문 있습니다!
해결된 질문
작성
·
30
0
안녕하세요, 강사님!
바쁘신 와중에 질문드려 죄송합니다...
단순한 질문 같지만 ProductDocument 코드에 대해 궁금한 것이 있어 질문드립니다.
Elasticsearch 관련 Document 코드에 @AllArgsConstructor나 @Data같은 롬복(lombok) 애노테이션을 사용해도 문제가 없을까요...?
추가로 실제 실무에서 Document에 롬복을 사용하는지 강사님 코드대로 직접 생성자, getter & setter를 작성하는지 알고 싶습니다!
답변 2
1
안녕하세요! 질문 잘 해주셨어요 ! 전혀 죄송하지 않으셔도 되요 :)
질문해주신 내용에 답변 드려볼게요~~
"롬복(lombok) 애노테이션을 사용해도 문제가 없을까요…?"
-> 네! 롬복 애노테이션을 사용해도 전혀 문제없어요 !
"실제 실무에서 Document에 롬복을 사용하는지 강사님 코드대로 직접 생성자,
getter & setter를 작성하는지 알고 싶습니다!"
-> 실무에서는 대부분 롬복을 사용해요 ! 코드가 훨씬 간결해지고 유지보수가 편해지기 때문이죠 !
강의에서는 조금 더 직관적으로 눈으로 코드를 확인할 수 있게
일부러 롬복을 쓰지 않고 코드를 작성했습니다:)
추가로 더 궁금하신 점이나 다른 질문 있으시면 편하게 질문 남겨주세요~
0
안녕하세요, 인프런 AI 인턴입니다. 뚠뚠맨님.
ProductDocument 코드에서 Lombok 애노테이션을 사용하는 것에 대한 궁금증이 있으시군요. 좋은 질문 감사합니다.
Lombok 애노테이션 사용
@AllArgsConstructor 및 @Data 사용:
- @AllArgsConstructor: 모든 필드를 인자로 받아 초기화하는 생성자를 자동으로 생성합니다. 객체 생성이 편리해지는 장점이 있지만, 모든 필드를 포함하므로 객체의 불변성을 제대로 관리하고자 할 때는 주의가 필요할 수 있습니다.
- @Data: 대부분의 Getter, Setter, toString 등의 메서드를 자동으로 만듭니다. 개발 생산성을 높여주지만, 데이터 클래스의 내부 구조가 변경될 때 예상치 못한 효과가 있을 수 있으므로 주의가 필요합니다.
- @AllArgsConstructor: 모든 필드를 인자로 받아 초기화하는 생성자를 자동으로 생성합니다. 객체 생성이 편리해지는 장점이 있지만, 모든 필드를 포함하므로 객체의 불변성을 제대로 관리하고자 할 때는 주의가 필요할 수 있습니다.
실무 사용 사례:
- 실무에서는 상황에 따라 다릅니다. Lombok을 사용하여 코드를 간결하게 만드는 경우도 많지만, 코드 유지보수 측면에서 모든 메서드와 생성자를 명시적으로 작성하는 것이 선호되기도 합니다. 명시적으로 작성하면 코드의 직관성이 높아져, 협업 시 이해하기 쉬운 장점이 있습니다.
- 도메인 모델: 보통 중요한 비즈니스 로직을 포함하는 도메인 모델에는 Lombok보다는 명시적인 코드를 작성하여 관리하는 편입니다. 하지만 단순한 데이터 전송 객체(DTO) 등에서는 Lombok의 사용이 일반적입니다.
- 실무에서는 상황에 따라 다릅니다. Lombok을 사용하여 코드를 간결하게 만드는 경우도 많지만, 코드 유지보수 측면에서 모든 메서드와 생성자를 명시적으로 작성하는 것이 선호되기도 합니다. 명시적으로 작성하면 코드의 직관성이 높아져, 협업 시 이해하기 쉬운 장점이 있습니다.
추천: 장점과 단점을 고려하여, 팀의 코드 작성 및 유지보수 정책에 따라서 결정하시면 됩니다. 초기에 Lombok을 사용하고 필요에 따라 명시적으로 수정해 나가는 방식도 가능합니다.
추가 정보를 원하시거나 유사한 사례를 확인하고자 하신다면 다음 링크를 참조해 주세요:
- Lombok 사용의 장단점과 주의사항
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.





넵! 덕분에 궁금했던 내용이 해결되었습니다.
감사합니다!