12. 기본 프로젝트 구조
2021. 5. 4. 08:57
코틀린의 기본적인 프로젝트 구조에 대해서 알아보자.
1. 프로젝트
실제 코딩을 할 때는 프로젝트(project)구조로 진행을 한다. 프로젝트는 코틀린으로 어플리케이션을 개발할 때 관련한 모든 내용을 담는 '큰 틀'이다.
2. 모듈(module)
하나의 프로젝트는 여러개의 모듈로 구성된다.
모듈은 여러 파일, 폴더로 구성된다.
- 직접 구현하거나 라이브러리 모듈을 사용한다.
- 모듈에는 코틀린 파일(.kt) 뿐만 아니라 모듈과 관련된 설정, 리소스 파일등도 포함된다.
3. 물리 구조 vs 논리 구조
3- 1. 물리구조 : 프로젝트, 모듈, 폴더 및 파일
- 실제 파일 시스템에 기반한 물리적인 구조를 담당한다.
3-2. 논리 구조 : 패키지
- 개발 시의 소스코드의 소속을 지정하기 위한 논리적 단위
- 코드를 작성할 때 코드내에서 사용하는 이름이 용도에 따라 서로 충돌하면 안된다.
- 따라서 유니크한 패키지 이름을 지어준다.
3-3. 패키지 작명방식
- 일반적으로 패키지 이름을 지을 때는 회사가 개발한 도메인이름을 거꾸로 배열한 후,
- 그 뒤에 프로젝트 명을 붙인 후,
- 그 아래에 기능별로 세분화하는 방식으로 적는다.
예시.
도메인 : youtube.com
프로젝트 이름 : dowon
- 도메인 이름을 거꾸로 배열 : com.youtube
- 프로젝트 이름 붙임 : com.youtube.donwoo
- 기능별로 세분화
- com.youtube.donwoo.base
- com.youtube.donwoo.kotlin
- com.youtube.donwoo.android
- com.youtube.donwoo.talk
- ...
3-4. 패키지 분류
어떻게 패키지로 묶을 수 있는가?
코드파일을 패키지에 넣는 방법은 코드파일 맨 윗줄에 package 키워드를 적고 패키지 이름을 적으면 된다.
- 패키지를 명시하지 않으면 자동으로 'default' 패키지로 묶이게 된다.
- 코틀린은 자바와 달리 폴더명과 패키지 구조를 일치시키지 않아도 된다.
ex) package com.youtube.donwoo
3-5. 공유
- 같은 패키지 내에서는 변수, 함수, 클래스를 이름만으로 공유해서 쓸 수 있다.
- 그러나 다른 패키지에서는 바로 쓸수는 없다.
- 다른 패키지를 공유하기 위해서는 import 키워드를 통해서 해당 외부 패키지를 임포트해야한다.
- 이름이 중복되는 경우에는 패키지명을 포함한 풀네임을 명시해야한다.
ex) import com.youtube.donwoo.base
코틀린은 자바와 달리 하나의 파일안에 여러개의 클래스를 넣어도 컴파일이 가능하다. 이는 파일이나 폴더인 물리적인 구조를 기준으로 하지않고 파일내에 있는 package 키워드를 기준으로 구분하기 때문이다.
이 구조는 코틀린으로 실제 어플리케이션을 만들 때 뿐만 아니라 접근제한자 개념에서 사용하는 개념이므로 꼭 기억하길 바란다.
'Kotlin 문법' 카테고리의 다른 글
14. 고차함수와 람다함수 (0) | 2021.05.04 |
---|---|
13. 변수, 함수, 클래스의 접근 범위(스코프)와 접근 제한자 (0) | 2021.05.04 |
11. 오버라이딩과 추상화 (0) | 2021.05.04 |
10. 클래스의 상속 (0) | 2021.05.04 |
9. 클래스의 생성자 (0) | 2021.04.14 |