• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

코틀린으로 엔티티 작성

22.07.14 11:54 작성 조회수 815

0

  • - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
  • - 먼저 유사한 질문이 있었는지 검색해보세요.
  • - 서로 예의를 지키며 존중하는 문화를 만들어가요.
  • - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

강의의 내용과 질문이 관계 없을수도 있지만 정답이 있는 부분이 아닌 것 같아 너무 궁금해서 남겨봅니다.. ㅠ

강의중에 코틀린을 사용할 때 되도록 불변으로 만드는 것이 좋다고 하셔서 User 엔티티를 이런식으로 작성했습니다.

이렇게 되면 유저의 필드를 변경하고 싶을 때 새로운 User 객체를 만들어야 합니다.

그래서 User 엔티티 안에 이런 메서드를 작성했습니다.

 

두 번째 방법으로 private set을 사용해서 setter만 막고 updateName 함수를 만들어줬습니다.

 

세 번째로 프로퍼티를 아예 private으로 설정하고 getter와 updateName 함수를 만들어줬습니다.

 

네 번째는 그냥 var로 만들어 기본 생성되는 getter와 setter를 사용한다 입니다.

 

정답이 있는 문제는 아니지만 저는 2, 3번이 좋은 방법이라는 생각이 듭니다. 그런데 자바의 저런 보일러 플레이트 코드들을 줄일 수 있는 것이 코틀린의 장점중 하나인데, 저렇게 사용하면 무슨 소용이 있나 싶기도 합니다.

그러다보니 코틀린은 getter, setter를 사용하는 것을 권장하게 설계되어있나? 라는 생각이 듭니다.

1번이나 4번 처럼 사용하는 것이 좀 더 코틀린스러운 개발 방법일까요?

답변 1

답변을 작성해보세요.

2

안녕하세요~ dev.taeyeong님!!! 아이고~ 맞습니다~~ 이게 또 엄청엄청 고민되는 주제이지요!!!

 

관련해서 글로만 답변드리기는 어려워 영상을 준비해 보았습니다 ㅎㅎㅎ 

 

 

글로도 요약 드리자면!!

1) 저는 setter를 열어는 두지만 setter를 직접 쓰지 않고 update 함수를 쓰는 것을 선호하며

2) setter 자체가 열려 있어도 쓰지 않는 팀원들과 Align이 맞아 있기 때문입니다!

3) 하지만 말씀해주신 2번, 3번 option도 충분히 괜찮은 옵션이기에 팀끼리 Convention으로 잘 정한다면 사용에 문제 없다고 생각합니다!!

 

 

고민되셨을텐데 좋은 질문 감사드립니다~!!!

언제든 또 질문 있으시면 편하게 남겨주시고~ 남은 한 주도 잘 마무리 하세요!! 감사합니다 ㅎㅎㅎ

강의 준비하고 계셨군요... 좀 기다려볼 걸 그랬네요 ㅎㅎ;

다음 강의도 꼭 구매하겠습니다 ㅎㅎ

좋은 주말 보내세요~! 감사합니다~

아이고 아닙니다 ㅎㅎㅎ 기다리시기 전에 미리 알려드리면 좋죠~!!!

다음 강의도 알차게 준비해보겠습니다! 필요하신 경우에 구매해주세요 ㅎㅎㅎㅎ

dev.taeyeong님도 주말 잘 보내세요! 감사합니다~!!! 😊