References: Do it! 코틀린 프로그래밍
코틀린에서의 모듈, 패키지, 클래스 개념에 대해 알아봅니다.
1. 프로젝트.
최상단 개념입니다. 프로젝트는 모듈, 패키지, 클래스를 포함합니다.
한 프로젝트는 여러 모듈을 가질 수 있습니다.
처음 프로젝트 생성 후 좌측 리스트를 보면 기본적으로 프로젝트 단위로 구성을 볼 수 있습니다.
2. 모듈
프로젝트 바로 아래의 개념입니다. 모듈은 패키지와 클래스를 포함합니다.
한 모듈은 여러 패키지를 가질 수 있습니다.
프로젝트 우클릭 후 New > Module을 클릭해 모듈을 프로젝트 아래에 추가할 수 있습니다.
프로젝트 아래에 모듈이 추가된 것을 확인할 수 있습니다.
보기단위를 패키지로 바꾸면 좀 더 명확하게 구분지어 볼 수 있습니다.
3. 패키지
모듈의 아래 개념입니다.
기본(default)패키지와 사용자가 명명한 패키지가 있습니다.
이름이 별도로 지정되지 않은 파일의 경우 모두 기본 패키지에 속하게 됩니다.
모듈 아래 자동 생성된 src에 우클릭 후 New > Package를 클릭하면 패키지를 만들 수 있습니다.
패키지의 이름은 보통 사이트 이름을 뒤집어서 많이 씁니다.
예를 들어 sub.domain.com인 경우 패키지 이름은 com.domain.sub이런식으로 짓습니다.
그리고 필요에따라 기능별로 뒤에 단어를 추가합니다.
예를 들어 com.domain.sub.do.somthing이런식으로 구분하면 관리가 좀 더 용이해집니다.
예시로 다음과 같이 패키지를 생성했습니다.
com.exampple.ktmodule패키지를 생성 후 실제 폴더가 어떻게 생성되었는지 확인해 봅시다.
[.]단위로 구분되어어 src 아래에 com\example\ktmodule폴더 순서로 생성된 것을 확인할 수 있습니다.
3-1. 기본패키지
기본패키지란 코틀린 프로그래밍에서 자주 사용되는 클래스와 함수등을 미리 만들어 둔 것으로 import를 별도로 사용하지 않아도 바로 사용할 수 있는것들 입니다.
기본패키지는 kotlin-stdlib-sources.jar에 위치합니다.
IntelliJ에서 String을 정의 한 후 String에 ctrl + B를 누르면 확인할 수 있습니다.
기본패키지는 다음과 같습니다.
kotlin.*
kotlin.annotation.*
kotlin.collections.*
kotlin.io.*
kotlin.ramges.*
kotlin.sequences.*
kotlin.text.*
4. 클래스
패키지 아래에 위치한 개념이며 실제 코틀린 파일에 정의됩니다.
위에 만든 패키지를 우클릭 해 새 코틀린 파일을 생성합니다.
생성한 코틀린 파일엔 다음과 같은 코드가 자동으로 입력된 것을 확인할 수 있습니다.
package com.example.ktmodule
이전에 만든 "HelloKotlin.kt" 파일을보면 차이가 있습니다.
fun main() {
println("Hello kotlin!")
}
package의 유무를 확인할 수 있습니다.
package가 명시적으로 입력되지 않은 모든 파일(클래스)는 기본(default) 패키지에 속하게 됩니다.
실제 코틀린 파일의 위치를 보면 "HelloKotlin.kt"는 패키지 아래에 위치하지 않음을 확인할 수 있습니다.
같은 패키지 내에서 모든 클래스의 이름은 유일해야 합니다.
다르게 말하면 패키지가 다르면 같은 이름의 클래스 이름을 사용할 수 있습니다.
테스트를 해보겠습니다.
KotlinModule에 기본패키지에 코틀린 파일을 하나 추가합니다.
그 후 두 코틀린 파일에 다음과 같이 클래스를 정의해 봅시다.
class person(val name: String, val age: Int)
별 문제 없이 정의가 됩니다. 이제 package com.example.ktmodule를 주석처리 해 봅시다.
오류가 발생한 것을 확인할 수 있습니다.
"KotlinModuleClass.kt"파일의 Person 클래스를 KotlinModuleClass로 변경해 봅시다.
package com.example.ktmodule
class KotlinModuleClass(val name: String, val age: Int)
파일명과 클래스명이 같으면 해당 파일의 확장자가 숨김처리 됩니다.
Person 클래스를 갖고있는 DefaultKotlinClass는 .kt 확장자가 그대로 남아있음을 확인할 수 있습니다.
'Programming' 카테고리의 다른 글
[Kotlin] 05. 변수 선언과 자료형 (0) | 2019.08.21 |
---|---|
[Kotlin] 04. 사용자 클래스 사용하기. (0) | 2019.08.21 |
[Kotlin] 02. main 함수의 매개변수 args (0) | 2019.08.21 |
[Kotlin] 01. HelloKotlin! (0) | 2019.08.20 |
[Kotlin] 00. 코틀린 개발환경 구축하기 (0) | 2019.08.20 |