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

Jon님의 프로필 이미지

작성한 질문수

Kotlin으로 개발하는 Spring Boot Web MVC

좋은 강의 감사합니다. dto 관련하여 질문이 있습니다.

작성

·

293

0

1.

data class User(

  var id: Long? = null,

  var name: String? = null,

)

2. 

data class User(

  var id: Long

  var name: String,

)

강사님 코드를 보면 공통적으로

User().apply {

  this.id = xxx

  this.name = xxx

}

를 많이 하시던데, 이럴땐 constructor에 넣지않아도되는 ?= null을 써야할 것 같은데..

이것을 나누는 기준이 무엇인지 궁금합니다.

좋은강의 감사합니다 ^_^

답변 3

0

Jon님의 프로필 이미지
Jon
질문자

답변 감사합니다 ^^ 회사에서 코틀린을 이용한 스프링부트로 프로젝트를 하고있는데, 도움이 많이 되었습니다.

덕분에 작은 서비스이지만 릴리즈까지했어요~! 

apply 패턴과 runCatching 패턴에 대해 더 알아보고 적용도 많이해보겠습니다 ^^

강사님 강의 너무 좋았습니다. 빨리 다음강의가 나왔으면 좋겠네요 !! ㅎㅎ 

( 이번강의에서 조금 아쉬웠던점은 테스트코드를 다 작성하지 않은 것이 조금 아쉽네요 ㅠㅠ
의도는 혼자서 공부해보라는 의도셨던것 같았지만... 인터넷강의를 보는 이유가 공부도 공부이지만, 실제 어떻게 사용되는지 보는것때문에 저는 보는편이라 .. 어렵지 않다면 다음 강의때는 전체적인 테스트코드도 한번씩 보여주시면 좋을것같습니다 !  물론 이번 강의에서 누락된 테스트코드는 개인적으로 다 작성해보았습니다 ^^) 

0

Steve (예상국)님의 프로필 이미지
Steve (예상국)
지식공유자

kotlin에서는 lombok를 이용한 builder 패턴을 사용하지 않고 변수의 내용을 적용할때 apply 패턴을 많이 이용한다고 말씀드리면 조금더 도움이 될듯 하고 이를 활용한 패턴은 추후 JPA등 DB와 연동 될때 더 빛을 발할 수 있을것 같습니다.

해당 강의는 kotlin이라기 보다는 spring기초 강의에 가깝기에 kotlin을 사용하지만 많이 활용한다고 표현하기에는 어렵다고 말씀드릴수 있을듯 합니다 ^^;;

0

Steve (예상국)님의 프로필 이미지
Steve (예상국)
지식공유자

안녕하세요

먼저 질문을 주셔서 너무 감사 드립니다.

음... 명확하게 어떤 부분인지 제가 알수 있다면, 몇강에 어디인지 질문을 주시면 더 좋을 듯 합니다 ^^;

일단 저는 default로 data class 에서는 var xxx ?= null 로 씁니다.

그 이유는 kotlin의 장점은 null point에 대해서 강점을 가지기 때문에 명시적으로 null이 올수도 있음을 작성하면서 동시에 매개변수가 없는 기본 생성자를 가져가기 위함입니다.

그리고 두번재로는 apply 패턴으로써 객체 생성에 이어서 apply는 자기 자신을 넘겨 줌으로써 해당 객체의 내용을 채웁니다.

이렇게 kotlin 에서는 몇가지 패턴이 존재 하는데요 제가 주로 사용하는게 apply 패턴과 runCatching 패턴을 사용합니다. 

현재 강의에서는 runCatching를 사용하지 않았지만, 이어지는 강의에서는 많이 쓰일듯 합니다 ^^

Jon님의 프로필 이미지

작성한 질문수

질문하기