[Kotlin] 12. 기본 프로젝트 구조

오도원공육사·2021년 5월 25일
0

코틀린 기초문법

목록 보기
12/13

코틀린의 기본적인 프로젝트 구조에 대해서 알아보자.

지금까지는 play.kotlinlang.org에서 실습을 진행했기 때문에 하나의 파일안에서 모든 내용을 담는 형태로만 배웠다.

1. 프로젝트

프로젝트?!

하지만 실제 코딩을 할 때는 프로젝트(project)구조로 진행을 한다. 프로젝트는 코틀린으로 어플리케이션을 개발할 때 관련한 모든 내용을 담는 '큰 틀'이다.

2. 모듈(module)

하나의 프로젝트는 여러개의 모듈로 구성된다.


모듈은 여러 파일, 폴더로 구성된다.

  • 직접 구현하거나 라이브러리 모듈을 사용한다.
  • 모듈에는 코틀린 파일(.kt) 뿐만 아니라 모듈과 관련된 설정, 리소스 파일등도 포함된다.

3. 물리 구조 vs 논리 구조

3- 1. 물리구조 : 프로젝트, 모듈, 폴더 및 파일

  • 실제 파일 시스템에 기반한 물리적인 구조를 담당한다.

3-2. 논리 구조 : 패키지

  • 개발 시의 소스코드의 소속을 지정하기 위한 논리적 단위
  • 코드를 작성할 때 코드내에서 사용하는 이름이 용도에 따라 서로 충돌하면 안된다.
  • 따라서 유니크한 패키지 이름을 지어준다.

3-3. 패키지 작명방식

  • 일반적으로 패키지 이름을 지을 때는 회사가 개발한 도메인이름을 거꾸로 배열한 후,
  • 그 뒤에 프로젝트 명을 붙인 후,
  • 그 아래에 기능별로 세분화하는 방식으로 적는다.

예시.

도메인 : youtube.com

프로젝트 이름 : dowon

  1. 도메인 이름을 거꾸로 배열 : com.youtube
  2. 프로젝트 이름 붙임 : com.youtube.dowon
  3. 기능별로 세분화
    • com.youtube.dowon.base
    • com.youtube.dowon.kotlin
    • com.youtube.dowon.android
    • com.youtube.dowon.talk
    • ...

3-4. 패키지 분류

어떻게 패키지로 묶을 수 있는가?

코드파일을 패키지에 넣는 방법은 코드파일 맨 윗줄에 package 키워드를 적고 패키지 이름을 적으면 된다.

package com.youtube.dowon

fun main() {
	println("프로젝트의 기본 구조")
}
  • 패키지를 명시하지 않으면 자동으로 'default' 패키지로 묶이게 된다.
  • 코틀린은 자바와 달리 폴더명과 패키지 구조를 일치시키지 않아도 된다.
  • 파일 상단에 패키지만 명시해주면 컴파일러가 알아서 처리한다.

3-5. 공유

  • 같은 패키지 내에서는 변수, 함수, 클래스를 이름만으로 공유해서 쓸 수 있다.
  • 그러나 다른 패키지에서는 바로 쓸수는 없다.
  • 다른 패키지를 공유하기 위해서는 import 키워드를 통해서 해당 외부 패키지를 임포트해야한다.
package com.youtube.dowon

import com.youtube.dowon.base

fun main() {
	println("프로젝트의 기본 구조")
}
  • 이름이 중복되는 경우에는 패키지명을 포함한 풀네임을 명시해야한다.
  • ex) com.youtube.dowon.A

코틀린은 자바와 달리 하나의 파일안에 여러개의 클래스를 넣어도 컴파일이 가능하다. 이는 파일이나 폴더인 물리적인 구조를 기준으로 하지않고 파일내에 있는 package 키워드를 기준으로 구분하기 때문이다.

이 구조는 코틀린으로 실제 어플리케이션을 만들 때 뿐만 아니라 접근제한자 개념에서 사용하는 개념이므로 꼭 기억하길 바란다.

profile
잘 먹고 잘살기

0개의 댓글

관련 채용 정보