티스토리 뷰

😶‍🌫️ 파일 시스템에 기반한 물리적인 구조

  • 프로젝트: Kotlin으로 어플리케이션을 만들 때 관련된 모든 내용을 담는 큰 틀이다.
  • 모듈: 하나의 프로젝트는 여러 개의 모듈로 이뤄질 수 있다.
    • 모듈은 직접 만들거나 필요한 기능을 미리 구현해 둔 라이브러리 모듈을 갖고와 붙일 수도 있다.
    • 모듈안에는 다수의 폴더와 파일이 들어 갈 수 있다.
    • 파일 및 폴더: 여기에는 Kotlin 파일 뿐만 아니라 모듈과 관련된 설정 및 리소스 파일도 들어 갈 수 있다.

😶‍🌫️ 코틀린의 논리적인 구조: 패키지

  • 패키지: 개발시 소스 코드의 소속을 정하기 위한 논리적인 단위이다.
  • 코드를 작성할 때는 코드 내에서 사용하는 이름이 용도에 따라 서로 충돌하지 않도록 유니크한 패키지 이름을 지어주는 것이 좋다.
  • 일반적으로 패키지 이름을 지을 때는 개발한 회사가 갖고 있는 도메인을 거꾸로 하고 그 뒤에 프로젝트 명을 지은 후 기능별로 세분화하여 짓는다.
  • 그럼 코드 파일을 어떻게 패키지 명으로 묶을 수 있을까?
  • 코드 파일을 패키지에 넣는 방법은 코드 파일 맨 윗줄에 package를 적고 패키지 이름을 써주면 된다.
  • 패키지를 명시하지 않으면 자동으로 default 패키지에 묶이게 되는 것도 알아두자.

😶‍🌫️ Java와 차이점

  • Java의 경우 폴더 명과 패키지 명을 일치시켜야 하는 반면 Kotlin은 그렇지 않아도 코드를 작성할 수 있다.
  • 단순히 코틀린 파일 상단에 패키지 명만 일치시키면 된다.(컴파일러가 알아서 처리해줌) 그렇기 때문에 같은 패키지 내에서는 변수, 함수, 클래스를 공유할 수 있는데, 패키지가 다르면 그냥 쓸수는 없다.
  • 해당 패키지를 쓰기 위해서는 import를 해야한다. 코드 파일에서 package 바로 밑에 import를 해주면 되는데 사용할 외부 패키지 이름을 써주면 외부 패키지의 변수나 함수, 클래스를 그대로 사용할 수 있다.
  • 이때 패키지명 중에서 중복되는 것이 있다면, 중복 부분을 포함한 full name을 package에 명시해야 한다.
  • Kotlin의 경우 파일명과 클래스 명이 일치하지 않아도 된다. 또한 하나의 파일에 여러 개의 클래스를 작성해도 알아서 컴파일이 가능하다.
  • 이는 파일이나 폴더를 기준으로 구분하지 않고 파일내에 있는 패키지 키워드로 구분하기 때문이다.