물리적인 구조
프로젝트: 코틀린으로 어플리케이션을 짤 때 관련한 모든 내용을 담는 큰 틀
모듈: 하나의 프로젝트는 여러 모듈로 이루어질 수 있다. 이 모듈은 직접 만들 수도 있고 필요한 기능을 이미 구현해 둔 라이브러리 모듈을 가져와 붙일 수도 있기 때문에 편리한 기능 단위이다.
모듈은 폴더와 파일로 구성: 코틀린 코드 파일(.kr) 뿐만 아니라 모듈과 관련된 설정 및 리소스 파일 등도 포함될 수 있다.
논리적인 구조
패키지: 개발 시에 소속 코드의 소속을 지정하기 위한 논리적 단위
코드를 작성할 때는 코드 내에서 사용하는 이름이 용도에 따라 서로 충돌하지 않도록 고유한 패키지 이름을 지정하는 것이 좋다.
* 일반적인 패키지 이름 짓는 법
개발한 회사가 가진 서비스 도메인을 거꾸로 배열하고,
youtube.com → com.youtube
그 뒤에 프로젝트명을 붙인 후,
com.youtube.dimo
기능별로 세분화
com.youtube.dimo.base
com.youtube.dimo.kotlin.android
com.youtube.dimo.talk
com.youtube.dimo.kotlin
com.youtube.dimo
코드 파일을 패키지에 넣는 방법
: 코드 파일 맨 윗줄에 package를 적고 패키지 이름을 써준다.
package com.youtube.dimo
fun main(){
// ...
}
- 패키지 이름을 지정하지 않으면 자동으로 default 패키지로 묶이게 된다.
- 코틀린은 자바와 달리 폴더 구조와 패키지 명을 일치시키지 않아도 된다. 단순히 파일 상단에 패키지만 명시해주면 컴파일러가 알아서 처리한다.
같은 패키지 내에서는 변수. 함수, 클래스를 공유할 수 있는데, 패키지가 다르면 import 해야한다.
package com.youtube.dimo
import com.youtube.dimo.base
fun main(){
// ...
}
이 때, 이름이 중복되는 요소가 있다면 패키지명을 포함한 full name을 명시해야한다.
코틀린은 자바와 달리 클래스명과 파일명이 일치하지 않아도 되며 하나의 파일에 여러개의 클래스를 넣어도 알아서 컴파일이 가능하다!
→ 이는 파일이나 폴더를 기준으로 구분하지 않고 파일내에 있는 package 키워드를 기준으로 구분하기 때문
'Language > Kotlin' 카테고리의 다른 글
[Kotlin] 고차함수와 람다함수 (0) | 2023.09.07 |
---|---|
[Kotlin] 스코프와 접근제한자 (0) | 2023.09.06 |
[Kotlin] 오버라이딩, 추상화, 인터페이스 (0) | 2023.09.05 |
[Kotlin] 클래스의 상속 (0) | 2023.09.05 |
[Kotlin] 클래스의 생성자 (0) | 2023.09.05 |