본문 바로가기
코틀린

코틀린(11) - 코틀린의 기본적인 프로젝트 구조

by 왈레 2022. 3. 21.

정의 위주의 내용

 

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

 

모듈 : 하나의 프로젝트는 여러개의 모듈로 이루어져 있다.

모듈은 '직접' 만들 수도 있고 필요한 기능을 이미 구현해 "라이브러리 모듈" 가져와 붙일 수도 있기 때문에 굉장히 편리한 기능 단위이다.

 

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

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

 

이렇게 프로젝트, 모듈, 폴더 파일들이 실제 파일시스템에 기반한 물리적인 구조 담당한다고 하면 논리적인 구조로는 "패키지"라는 것이 있다. 패키지는 개발시에 소스 코드의 '소속' 지정하기 위함이다.

 

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

일반적으로 패키지의 이름을 지을 때는 개발한 회사가 가진 도메인을 거꾸로 지정하고(youtube.com -> com.youtube) 뒤에 프로젝트명을 붙힌 (com.youtube.dimo) 그아래에 기능별로 세분화하는 방식으로 짓는다.

 

코드 파일들을 패키지로 묶는법

  • 코드파일 맨위에 package를 적고 패키지 이름을 써주면 된다. ex) package com.youtube.owner
  • 참고로 패키지를 명시하지 않으면 자동으로 'defualt' 패키지로 묶인다.
  • 코틀린은 자바와 달리 폴더 구조와 패키지명을 일치시키지 않아도 된다. (컴파일러가 알아서 처리한다.)
  • 같은 패키지 내에서는 변수,함수,클래스를 공유 할 수 있다. 그런데 패키지가 다르면 그냥 쓸 수는 없다.  'import'를 사용해야 한다. 코드 파일내에서 패키지 선언 바로 아래애 'import'를 쓰고 사용할 외부 패키지 이름을 써주면 다른 패키지의 변수나 함수, 클래스 등을 그대로 사용할 수 있다. 이때 이름이 중복되는 요소가 있다면 패키지명을 포함한 풀네임을 명시하면 된다.

 

자바를 배운 사람들에게 한가지 더!

코틀린은 클래스명과 파일명이 일치하지않아도 되며 하나의 파일에 "여러개의 클래스' 넣어도 알아서 컴파일이 가능하다. 이는 파일이나 폴더를 기준으로 구분하지 않고 파일내에 있는 package 키워드를 기준으로 구분하기 때문이다.

 

리소스 파일 : 공통으로 사용되는 XAML, XML, 이미지, 동영상, 음악 컴파일되지 않는 모든 "비실행 파일" 말한다.

(프로그램은 '코드' '데이터' 구성된다. 코드의 논리와 무관환 데이터들을 '리소스'라고 하며 메뉴, 비트맵, 엑셀러레이터, 아이콘, 커서 등등이 여기에 속한다)

 

파일시스템 : 파일의 이름을 정하고 저장, 검색을 위해서 논리적으로 어디에 위치 시켜야하는지 등의 파일

 

패키지 : 어떤 기능들을 구현하는 모듈들의 합이다. ex) 날씨 정보를 알아보는 패키지, 위치정보를 알아보는 패키지

 

모듈 : 코드를 모아서 기능하나 구현 해놓은 파일

댓글