강의

멘토링

로드맵

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

뚠뚠맨님의 프로필 이미지
뚠뚠맨

작성한 질문수

실전에서 바로 써먹는 Elasticsearch 입문 (검색 최적화편)

[실습] Spring Boot에서 인덱스에 맞게 Document 정의하기

60강 ProductDoument 코드 관련 질문 있습니다!

작성

·

14

0

안녕하세요, 강사님!

바쁘신 와중에 질문드려 죄송합니다...

단순한 질문 같지만 ProductDocument 코드에 대해 궁금한 것이 있어 질문드립니다.

Elasticsearch 관련 Document 코드에 @AllArgsConstructor@Data같은 롬복(lombok) 애노테이션을 사용해도 문제가 없을까요...?

추가로 실제 실무에서 Document에 롬복을 사용하는지 강사님 코드대로 직접 생성자, getter & setter를 작성하는지 알고 싶습니다!

답변 2

0

JSCODE 박재성님의 프로필 이미지
JSCODE 박재성
지식공유자

안녕하세요! 질문 잘 해주셨어요 ! 전혀 죄송하지 않으셔도 되요 :)

질문해주신 내용에 답변 드려볼게요~~

 

"롬복(lombok) 애노테이션을 사용해도 문제가 없을까요…?"

-> 네! 롬복 애노테이션을 사용해도 전혀 문제없어요 !

 

"실제 실무에서 Document에 롬복을 사용하는지 강사님 코드대로 직접 생성자,
getter & setter를 작성하는지 알고 싶습니다!"

-> 실무에서는 대부분 롬복을 사용해요 ! 코드가 훨씬 간결해지고 유지보수가 편해지기 때문이죠 !

강의에서는 조금 더 직관적으로 눈으로 코드를 확인할 수 있게

일부러 롬복을 쓰지 않고 코드를 작성했습니다:)

 

추가로 더 궁금하신 점이나 다른 질문 있으시면 편하게 질문 남겨주세요~

0

안녕하세요, 인프런 AI 인턴입니다. 뚠뚠맨님.

ProductDocument 코드에서 Lombok 애노테이션을 사용하는 것에 대한 궁금증이 있으시군요. 좋은 질문 감사합니다.

Lombok 애노테이션 사용

  1. @AllArgsConstructor 및 @Data 사용:

    • @AllArgsConstructor: 모든 필드를 인자로 받아 초기화하는 생성자를 자동으로 생성합니다. 객체 생성이 편리해지는 장점이 있지만, 모든 필드를 포함하므로 객체의 불변성을 제대로 관리하고자 할 때는 주의가 필요할 수 있습니다.
    • @Data: 대부분의 Getter, Setter, toString 등의 메서드를 자동으로 만듭니다. 개발 생산성을 높여주지만, 데이터 클래스의 내부 구조가 변경될 때 예상치 못한 효과가 있을 수 있으므로 주의가 필요합니다.
  2. 실무 사용 사례:

    • 실무에서는 상황에 따라 다릅니다. Lombok을 사용하여 코드를 간결하게 만드는 경우도 많지만, 코드 유지보수 측면에서 모든 메서드와 생성자를 명시적으로 작성하는 것이 선호되기도 합니다. 명시적으로 작성하면 코드의 직관성이 높아져, 협업 시 이해하기 쉬운 장점이 있습니다.
    • 도메인 모델: 보통 중요한 비즈니스 로직을 포함하는 도메인 모델에는 Lombok보다는 명시적인 코드를 작성하여 관리하는 편입니다. 하지만 단순한 데이터 전송 객체(DTO) 등에서는 Lombok의 사용이 일반적입니다.

추천: 장점과 단점을 고려하여, 팀의 코드 작성 및 유지보수 정책에 따라서 결정하시면 됩니다. 초기에 Lombok을 사용하고 필요에 따라 명시적으로 수정해 나가는 방식도 가능합니다.

추가 정보를 원하시거나 유사한 사례를 확인하고자 하신다면 다음 링크를 참조해 주세요:
- Lombok 사용의 장단점과 주의사항

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

뚠뚠맨님의 프로필 이미지
뚠뚠맨

작성한 질문수

질문하기