프로그래밍 언어/코틀린

[Kotlin]11. 프로젝트의 구조

엔지니어 규 2022. 5. 13. 21:33
728x90

프로젝트

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

프로젝트는 우리가 코틀린으로 어플리케이션을 짤 때 관련된 모든 내용을 담는 큰 틀이다.

 

하나의 프로젝트는 여러개의 모듈로 이루어질 수 있으며,

 

이 모듈은 직접 만들수도 있고 필요한 기능을 이미 구현해 둔 '라이브러리 모듈'을 가지고와 붙일 수도 있기때문에,

 

굉장히 편리한 기능 단위이다.

 

또한 모듈안에는 다수의 폴더와 파일이 들어갈 수 있다.

 

여기에는 코틀린 코드파일 뿐만 아니라, 모듈과 관련된 설정및 리소스 파일 등도 포함될 수 있다.

 

이런 방식으로 프로젝트, 모듈, 폴더및 파일이 실제 파일 시스템에 기반한 물리적인 구조를 담당한다.

 

위의 그림을 참고하면 쉽게 이해할 수 있다.

 

 

패키지

논리적인 구조로는 패키지라는것이 존재한다.

 

패키지는 개발시에 소스코드의 '소속'을 지정하기 위한 논리적인 단위이다.

 

코드를 작성할 떄는 코드내에서 사용하는 이름이 용도에 따라 서로 충돌하지 않도록 유니크한 패키지 이름을 짓는것이 좋다.

 

일반적으로 패키지의 이름을  지을때는  개발한 회사가 가지 도메인을 거꾸로 배열하고,

 

그뒤에 프로젝트명을 붙인후 그 아래에 기능별로 세분화하는 방법으로 짓는다. 위의 그림을 참고하자.

 

 

 

 

 

package com.google.engineergyu
 
fun main(){
 
    println("프로젝트의 구조")
 
}
 
 
cs

코드파일을 패키지에 넣는 방법은 위의 소스코드 처럼 코드파일 맨 윗줄에 package 를 적고 패키지 이름을 써 주면 된다.

패키지를 명시하지 않으면 자동으로 'default' 패키지로 묶이게 된다.

 

코틀린은 자바와 달리 폴더구조와 패키지명을 일치시키지 않아도 된다.   

단순히 파일상단에 패키지명만 명시해주면, 컴파일러가 알아서 처리하게 된다. 

 

 

 

 

 

 

같은 패키지 내에서는 변수, 함수 ,클래스를 공유할 수 있지만 패키지가다르면 그냥 쓸수 없고, import 라는 작업을 해야 한다.

 
 
 
 
package com.google.engineergyu
 
import com.google.engineergyu.chat
 
fun main(){
 
    println("프로젝트의 구조")
 
}
 
cs

코드 파일내에서 패키지 선언 바로 아래에 'import' 를 쓰고 사용할 외부 패키지 이름을 써주면 

다른 패키지의 변수나 함수, 클래스 등을 그대로 사용할 수 있다.

 

 

 

 

 

 

 

이때 위 그림처럼 이름이 중복되는 요소가 있다면 패키지명 포함, full name을 명시해야한다.

 

또한 코틀린은 클래스명과 파일명이 일치하지 않아도 되며 하나의 파일에 '여러개의 클래스'를 넣어도 알아서 컴파일이 가능하다.

 

이는 파일이나 폴더를 기준으로 구분하지 않고 파일내에 있는 Package 키워드를 기준으로 구분하기 때문이다. 

 

 

이러한 코틀린의 프로젝트 구조는 실제 어플리케이션을 만들때 뿐만 아니라 접근제한자에도 사용되는 개념이다.

 

 

 

728x90