해결된 질문
작성
·
277
2
답변 2
2
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) 본 강의의 경우는 실제 리팩토링을 진행 하기 때문에 패키지 구성을 특히 동일하게 구성하였습니다!!
너무너무 날카롭고 좋은 질문 감사드립니다~ ㅎㅎㅎㅎㅎ 🙇
더 질문이 생기신다면 언제든 편하게 부탁드립니다~
감사합니다! 좋은 하루 되세요!!!!! :)