프로그래밍 언어/코틀린

코틀린 18. 프로젝트 구조

닉네임못짓는사람 2020. 12. 27. 22:23
반응형

이번 글에서는 코틀린 프로젝트의 구조에 대해서 알아보도록 하겠습니다.

프로젝트


먼저, 우리가 만드는 코틀린 프로그램은 모두 하나의 프로젝트 안에서 만들어집니다.

프로젝트는 이 구조의 최상위에 위치하고 있으며, 모듈, 패키지, 클래스 등을 포함하고 있습니다.

예를 들어 프로그램 A, B를 만든다고 하면, 총 두 개의 프로젝트를 만들게 되는 겁니다.

우리가 IDE를 사용해서 프로그래밍을 할 때에도, 최상위에 위치한 프로젝트를 가장 먼저 만들게 됩니다.

모듈


모듈은 프로젝트의 바로 하위에 위치한 개념으로, 패키지와 클래스를 포함하고 있습니다.

이 모듈은 우리가 직접 만들어서 사용할 수도 있고, 이미 만들어져 있는 '라이브러리 모듈'을 가져와 사용할 수도 있습니다.

패키지


프로젝트와 모듈이 물리적인 개념이라면, 패키지는 논리적인 개념이라고 할 수 있습니다.

패키지는 파일의 '소속'을 정하는 개념인데요.

모듈 안에서 각각의 파일들을 논리적인 그룹으로 묶어서 관리한다고 볼 수 있습니다.

 

예를 들어 A와 B라는 그룹이 있다고 생각해봅시다.

이 두 그룹에는 Person이라는 사람이 각각 있는데, 우리는 이를 A그룹의 Person, B그룹의 Person처럼

논리적으로 나눠서 둘을 구분할 수 있게 되는데, 패키지가 바로 이런 개념이라고 볼 수 있습니다.

 

패키지는 논리적인 개념이기 때문에 따로 파일을 만들 필요는 없고,

다른 코드 파일 최상위에 패키지 명을 적어주시면 됩니다.

이렇게 파일 첫 줄에 package라는 키워드와 패키지명을 적어주는 것만으로

이 파일을 my.pac이라는 패키지에 포함시킬 수 있게 됩니다.

참고로 파일의 패키지를 지정하지 않으면 자동적으로 default패키지에 속하게 됩니다.

 

이렇게 같은 패키지에 속하게 된 파일들은 서로 변수, 함수 등을 공유할 수 있게 됩니다.

이렇게 두 파일을 하나의 패키지에 속하도록 묶어주기만 해도, 별다른 작업 없이

다른 파일에 있는 함수를 가져와서 사용할 수 있습니다.

 

반면, 다른 패키지에 속한 파일은 이렇게 간단하게 서로 불러올 수는 없습니다.

이 때는 import라는 것을 사용해서 다른 패키지를 불러와야 합니다.

예를 들어 이렇게 AnotherClass파일을 my.sub패키지에 속하도록 변경해준다면, ExamClass파일에 빨간 줄이 그어집니다.

같은 패키지 내에 속하지 않기 때문에 callExam함수를 불러올 수 없기 때문이죠.

때문에 이렇게 다른 패키지를 불러오고 싶을 땐 import '패키지 명'의 형식으로 불러오시면 됩니다.

이때 만약 my.sub패키지의 A클래스만 가져오고 싶다면 my.sub.A처럼 써주시면 되고,

위와 같이 .*를 써주시면 해당 패키지 내용을 전부 가져와서 쓴다는 의미입니다.

파일


파일은 우리가 직접 코드를 작성하는 파일을 말합니다.

코틀린의 경우 파일명과 클래스명이 일치할 필요가 없고, 하나의 파일에 여러 개의 클래스가 있더라도 알아서 컴파일할 수 있습니다.

코틀린은 파일이나 폴더를 기준으로 코드를 구분하지 않고, 파일 내에 있는 패키지를 기준으로 나누기 때문입니다.

 

이렇게 이번 글에서는 코틀린의 프로젝트 구조에 대해 알아봤습니다.

이번 글은 이 정도로 마치도록 하겠습니다.

감사합니다.

반응형

'프로그래밍 언어 > 코틀린' 카테고리의 다른 글

코틀린 20. 리스트(List)  (0) 2020.12.28
코틀린 19. 접근제한자  (0) 2020.12.28
코틀린 17. const와 상수  (0) 2020.12.26
코틀린 16. 추상화  (0) 2020.12.26
코틀린 15. 오버라이딩과 오버로딩  (0) 2020.12.26