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

유경호님의 프로필 이미지
유경호

작성한 질문수

자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide)

20강. 코틀린의 scope function

20강. 코틀린의 scope function 수강 중 질문

해결된 질문

작성

·

211

1

안녕하세요. 최태현님 오늘자로 해당 강의 다 수강완료하였습니다. 먼저 좋은 강의 제공해주셔서 감사하다는 말씀 드립니다.

작은 질문을 하나 드리고자 하는데요. 강의 내용과는 다소 무관한 질문입니다.

20강. 코틀린의 scope function 강의 중 11:25에 나오는 코드인데요.

val person = personRepository.save(Person("최태현", 100))

찾아보니 이러한 방식으로 Repository를 통해 저장한 인스턴스를 받아와 쓰는 형태의 코드를 꽤 작성하시는 거 같습니다.

 

다만 제가 의문인 것은 만약 JPA를 사용한다고 한다면 엔티티 매니저에 의해 영속화된 Person("최태현", 100)엔티티나 personRepository.save()를 통해 반환된 엔티티나 완전히 동일한 객체일탠데 왜 굳이 이렇게 코드가 작성되는지 궁금합니다. 🙂

 

val person = Person("최태현", 100)
val person2 = personRepository.save(person)
println(person.equals(person2)) // true

person이나 person2나 엔티티 매니저에 의해 같은 객체일 것 같은데 말이죠. 한 줄로 간결한 코드를 만들기 위함일까요?


너무 강의와 무관한 질문이라 결례를 범하는지는 모르겠습니다만 최태현님의 의견이 궁금하여 질문 남깁니다. 감사합니다.

답변 1

1

최태현님의 프로필 이미지
최태현
지식공유자

안녕하세요, 경호님! 🙂 질문 주셔서 감사합니다.

질문 주신 내용이 아래와 같을까요?!

 

[아래]

우리가 Person 이라는 클래스를 만들어 DB에 저장하려 하는데,

val person = Person("최태현", 100)
personRepository.save(person)

로 할 수도 있고

val person = personRepository.save(Person("최태현", 100))

이라 할 수도 있는데 후자의 코드를 사용하는 이유는 무엇인가?!

 

이 질문에 대해 답변드려보면, 특별한 이유가 있지는 않습니다! 단순히 한 줄로 줄였다 라고 봐주셔도 될 것 같아요! 🙂 답변이 도움이 되었으면 좋겠습니다. 감사합니다! 🙏

유경호님의 프로필 이미지
유경호
질문자

정확히 의도를 파악해주셨습니다. ㅎㅎㅎ 별 거 아닌 질문에 답변 잘 해주셔서 너무 감사합니다. 좋은 일만 가득 하십쇼!

유경호님의 프로필 이미지
유경호

작성한 질문수

질문하기