본문 바로가기

앱, 어플리케이션 만드는 법 - [Kotlin] 패키지(Package) 개념

I-ri 발행일 : 2023-05-13
728x90
반응형

#주의#

이 글은 강의 글이 아닙니다.

틀린 부분, 깔끔하지 못한 부분 있을 수 있습니다.

지적해 주시면 저도 공부가 되고, 앞으로 이 글을 보실 분들에게도 도움이 될 거라 생각합니다.


728x90
패키지란?

Kotlin에서 Package는 클래스, 함수, 변수 등의 관련된 요소들을 그룹화하는 데 사용되는 기능입니다. Package는 Java와 유사하게 동작하며, Kotlin에서는 다음과 같은 기능을 제공합니다.

 

패키지선언

Kotlin에서 패키지를 선언하는 방법은 Java와 유사합니다. 다음과 같이 패키지 이름을 선언하고 중괄호 안에 포함될 클래스, 함수, 변수 등의 요소를 정의할 수 있습니다.

package com.example.myapp

class MyClass {
    // 클래스 내용
}

fun myFunction() {
    // 함수 내용
}

val myVariable = "Hello, Kotlin!"
반응형
패키지 임포트

Kotlin에서는 Java와 마찬가지로 패키지를 임포트하여 해당 패키지에 속한 클래스, 함수, 변수 등을 사용할 수 있습니다. 다음과 같이 import 키워드를 사용하여 패키지를 임포트할 수 있습니다.

import com.example.myapp.MyClass
import com.example.myapp.myFunction
import com.example.myapp.myVariable

fun main() {
    val myObject = MyClass()
    myFunction()
    println(myVariable)
}

 

패키지 가시성 제어

Kotlin에서는 패키지 내의 요소들의 가시성을 제어하기 위해 다음과 같은 가시성 변경자를 제공합니다.

  • public: 패키지 외부에서도 접근 가능
  • internal: 같은 모듈 내에서만 접근 가능
  • private: 같은 파일 내에서만 접근 가능
  • protected: 클래스 내부 및 하위 클래스에서만 접근 가능
package com.example.myapp

public class MyClass1 {
    // 클래스 내용
}

internal fun myFunction1() {
    // 함수 내용
}

private val myVariable1 = "Hello, Kotlin!"

 

패키지 수준 변수

Kotlin에서는 패키지 수준 변수를 선언할 수 있습니다. 패키지 수준 변수는 해당 패키지 내에서 모든 클래스, 함수에서 접근 가능합니다.

package com.example.myapp

val myGlobalVariable = "Hello, Kotlin!"

 

패키지 수준 함수

Kotlin에서는 패키지 수준 함수를 선언할 수 있습니다. 패키지 수준 함수는 해당 패키지 내에서 모든 클래스에서 접근 가능합니다.

package com.example.myapp

fun myGlobalFunction() {
    // 함수 내용
}
패키지 수준 클래스

Kotlin에서는 패키지 수준 클래스를 선언할 수 있습니다. 패키지 수준 클래스는 해당 패키지 내에서 모든 클래스에서 접근 가능합니다.

package com.example.myapp

class MyGlobalClass {
    // 클래스 내용
}

 

패키지 안의 하위 패키지

Kotlin에서는 패키지 안에 하위 패키지를 선언할 수 있습니다. 다음과 같이 패키지 이름 뒤에 하위 패키지 이름을 추가하여 선언할 수 있습니다.

package com.example.myapp.ui

class MyUIClass {
    // 클래스 내용
}

 

패키지 이름 축약

Kotlin에서는 패키지 이름을 축약하여 사용할 수 있습니다. 다음과 같이 as 키워드를 사용하여 패키지 이름을 축약할 수 있습니다.

import com.example.myapp.ui.MyUIClass as UI

fun main() {
    val myObject = UI()
}

위와 같이 패키지 이름을 축약하면 코드 가독성을 높일 수 있습니다.

 

패키지 계층 구조

Kotlin에서는 패키지 이름을 계층 구조로 구성하여 관리할 수 있습니다. 예를 들어, 다음과 같이 패키지를 선언하면 com.example.myapp 패키지 안에 ui, data, utils 등의 하위 패키지를 선언할 수 있습니다.

package com.example.myapp

package ui {
    class MyUIClass {
        // 클래스 내용
    }
}

package data {
    class MyDataClass {
        // 클래스 내용
    }
}

package utils {
    fun myUtilityFunction() {
        // 함수 내용
    }
}

또한, Kotlin에서는 패키지 이름을 문자열로 가져오는 기능을 제공합니다. 다음과 같이 패키지 이름을 문자열로 가져와 사용할 수 있습니다.

val packageName = MyUIClass::class.java.`package`.name

이렇게 패키지 이름을 문자열로 가져와서 사용하면 패키지 이름을 하드코딩하지 않고도 패키지 내부의 요소들을 관리할 수 있습니다.

 

728x90
반응형

댓글