본문 바로가기

Language/Kotlin

[Kotlin] 기본 프로젝트 구조

728x90
반응형

물리적인 구조

프로젝트: 코틀린으로 어플리케이션을 짤 때 관련한 모든 내용을 담는 큰 틀

모듈: 하나의 프로젝트는 여러 모듈로 이루어질 수 있다. 이 모듈은 직접 만들 수도 있고 필요한 기능을 이미 구현해 둔 라이브러리 모듈을 가져와 붙일 수도 있기 때문에 편리한 기능 단위이다.

모듈은 폴더와 파일로 구성: 코틀린 코드 파일(.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 키워드를 기준으로 구분하기 때문

728x90
반응형