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

junuuu님의 프로필 이미지
junuuu

작성한 질문수

실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)

3강. 코틀린 코드 작성 준비하기

build.gradle과 패키징 관련 문의

해결된 질문

작성

·

276

2

  1. - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
안녕하세요 build.gradle과 패키지 관련해서 궁금한점이 생겨서 문의드립니다.
 
첫번째로 plugins 부분과 compileKotlin, complieTestKotlin 부분은 코틀린의 공식문서 Tools -> Build tools -> Gradle에서 발견할 수 있었습니다.
 
하지만 dependencies 부분의 stdlib-jdk8 부분은 발견할 수 없었습니다.
 
찾아본 결과 jdk8 기능과 호환되는 코틀린 표준 라이브러리라고 알게되었는데 이부분은 어떤 레퍼런스를 참고하셨는지 궁금합니다.
 
 
 
두번째로 패키지구조를 자바와 코틀린을 동일하게 구성하였는데 만약 다르게 구성하는 경우도 가능한가요? 가능하다면 동일하게 구성한 이유는 그냥 관례상 하는건가요?
 
 
감사합니다.

답변 2

2

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

친절한 답변덕분에 이해가 잘 되었습니다 너무 감사드립니다ㅎㅎ


2

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

안녕하세요~ j님!!! 크으~ 좋은 질문이십니다 ㅎㅎㅎㅎ

차례로 답변 드려보자면~

 

[1. gradle 관련]

우선, 수업시간에 추가했던 kotlin-stdlib-jdk8 의 경우, 특정한 레퍼런스를 보고 추가한 것은 아닙니다!! 제가 경험해본 여러 코틀린 프로젝트에서 가장 기본적인 gradle 설정을 추출하여 추가한 것이에요! (물론 프로젝트를 진행할때 여기저기 다양한 글들을 참고하였습니다 😊)

또한 수업시간에 계속해서 필요한 플러그인을 추가할텐데요!! 각 플러그인들은 특정 기능을 구현할 때 (Kotlin class를 @Entity로 간주한다거나, @Service로 간주한다거나 등등...) 막히는 부분을 해결하기 위해 점진적으로 추가될 예정입니다!!

 

하지만 물론, 공식 docs에서 해당 라이브러리를 언급한 기록은 있습니다!!

예를 들어 kotlin-stdlib-jdk8은 Spring Boot Kotlin Support 공식 documentation에서 언급되고 있어요!

https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#features.kotlin.requirements

 

추가로 kotlin-stdlib-jdk8 라이브러리는 다 합쳐도 100줄이 안되는 작은 라이브러리 입니다 ㅎㅎㅎ 때문에 본 강의에서 해당 라이브러리의 기능을 직접적으로 사용하지는 않지만, 수업시간에 셋팅하신 그대로 다른 프로젝트에도 적용하실 수 있도록 구성해 보았습니다!!

 

 

[2. package 관련]

다음으로 package 관련 답변을 드리겠습니다! 사실 말씀해주신것처럼 패키지를 다르게 구성하여도 되고, 관례상 동일하게 구성한 것도 맞습니다!! 하지만 더 주요했던 포인트는 저희가 Java 코드를 Kotlin 코드로 리팩토링을 점진적으로 진행하게 되는데요! 이때 package가 다르면 import 문까지 수정을 해주어야 하기 때문입니다!

예를 들어, com.group.library.a에 있던 A.java 클래스가 com.group.library.a A.kt 클래스로 변환된다면, A를 사용하고 있는 곳에서는 import 문의 수정 없이 해당 A 클래스를 그대로 쓸 수 있는데요!

com.group.library.new의 A.kt 클래스로 변환된다면 (즉 패키지가 달라진다면) A 클래스를 사용하고 있는 모든 곳에서

import com.group.library.new.A

라고 수정해주어야 합니다!!

 

결론적으로 1) 꼭 리팩토링이 아니어도 관례상 spring 프로젝트에서 사용하는 패키지 구성을 언어와 무관하게 구성하기도 하고요 2) 본 강의의 경우는 실제 리팩토링을 진행 하기 때문에 패키지 구성을 특히 동일하게 구성하였습니다!!

 

 

너무너무 날카롭고 좋은 질문 감사드립니다~ ㅎㅎㅎㅎㅎ 🙇

더 질문이 생기신다면 언제든 편하게 부탁드립니다~

감사합니다! 좋은 하루 되세요!!!!! :)

 

junuuu님의 프로필 이미지
junuuu

작성한 질문수

질문하기