[Kotlin] ํด๋ž˜์Šค ์ ‘๊ทผ ์ œ์–ด์ž์™€ ์ˆ˜์ •์ž(protected, inner, private, open)

2025. 2. 27. 15:10ยทLanguages/Kotlin

์„ฌ๋„ค์ผ.jpg

Kotlin ํด๋ž˜์Šค ์ ‘๊ทผ ์ œ์–ด์ž์™€ ์ˆ˜์ •์ž์˜ ์‹ฌ์ธต ๋ถ„์„

๊ฐœ์š”

Kotlin์€ ํ˜„๋Œ€์ ์ด๊ณ  ํ‘œํ˜„๋ ฅ ๋†’์€ ์–ธ์–ด ์„ค๊ณ„๋ฅผ ์œ„ํ•ด ํด๋ž˜์Šค์™€ ๋ฉค๋ฒ„์˜ ๊ฐ€์‹œ์„ฑ ๋ฐ ํ™•์žฅ์„ฑ์„ ์„ธ๋ฐ€ํ•˜๊ฒŒ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋Š” ๋‹ค์–‘ํ•œ ํ‚ค์›Œ๋“œ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋ณธ ๋ณด๊ณ ์„œ๋Š” protected, inner, private, open์˜ ํ•ต์‹ฌ ๊ฐœ๋…์„ ํ•ด๋ถ€ํ•˜๊ณ , ๊ฐ ํ‚ค์›Œ๋“œ์˜ ๋™์ž‘ ๋ฉ”์ปค๋‹ˆ์ฆ˜, ์ƒํ˜ธ ์ฐจ์ด์ , ์‹ค์ œ ๊ฐœ๋ฐœ ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ์˜ ์ตœ์  ํ™œ์šฉ ์ „๋žต์„ ์ฒด๊ณ„์ ์œผ๋กœ ๋ถ„์„ํ•ฉ๋‹ˆ๋‹ค. ํŠนํžˆ Java์™€์˜ ๋น„๊ต๋ฅผ ํ†ตํ•ด Kotlin์˜ ์„ค๊ณ„ ์ฒ ํ•™์„ ๋ช…ํ™•ํžˆ ์ดํ•ดํ•˜๊ณ , ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ, ๋ชจ๋“ˆํ™”, ์บก์Аํ™” ์ธก๋ฉด์—์„œ์˜ ๊ณ ๋ ค์‚ฌํ•ญ์„ ์ข…ํ•ฉ์ ์œผ๋กœ ๋…ผ์˜ํ•ฉ๋‹ˆ๋‹ค.


1. private: ์—„๊ฒฉํ•œ ์บก์Аํ™”์˜ ๊ตฌํ˜„

1.1 ๊ฐœ๋…์  ์ •์˜

  • ํด๋ž˜์Šค ์ˆ˜์ค€: ์„ ์–ธ๋œ ํด๋ž˜์Šค ๋‚ด๋ถ€์—์„œ๋งŒ ์ ‘๊ทผ ํ—ˆ์šฉ.
  • ์ตœ์ƒ์œ„ ์„ ์–ธ: ๋™์ผ ํŒŒ์ผ ๋‚ด์—์„œ๋งŒ ์ ‘๊ทผ ๊ฐ€๋Šฅ.
  • Java ๋Œ€๋น„: ํŒจํ‚ค์ง€ ๊ฐ€์‹œ์„ฑ ์—†์Œ. Kotlin์˜ private์€ Java์˜ private๋ณด๋‹ค ๋” ์—„๊ฒฉํ•œ ์Šค์ฝ”ํ”„ ์ ์šฉ.
class DatabaseConfig {  
    private val connectionString = "jdbc:mysql://localhost:3306/mydb"  // ์™ธ๋ถ€ ์ ‘๊ทผ ๋ถˆ๊ฐ€
    fun connect() = println(connectionString)  
}  

1.2 ํ™œ์šฉ ์‹œ๋‚˜๋ฆฌ์˜ค

  • ๋‚ด๋ถ€ ๊ตฌํ˜„ ์„ธ๋ถ€์‚ฌํ•ญ ์€๋‹‰: ํด๋ž˜์Šค์˜ ๋‚ด๋ถ€ ์ƒํƒœ(์˜ˆ: DB ์—ฐ๊ฒฐ ๋ฌธ์ž์—ด) ๋…ธ์ถœ ๋ฐฉ์ง€.
  • ์ฝ”๋“œ ์•ˆ์ •์„ฑ ๊ฐ•ํ™”: ์˜๋„์น˜ ์•Š์€ ์™ธ๋ถ€ ์ˆ˜์ • ์ฐจ๋‹จ์œผ๋กœ ๋ฒ„๊ทธ ๋ฐœ์ƒ ๊ฐ€๋Šฅ์„ฑ ๊ฐ์†Œ.
  • ๋ฆฌํŒฉํ† ๋ง ์šฉ์ด์„ฑ: private ๋ฉค๋ฒ„ ์ˆ˜์ •์ด ์™ธ๋ถ€ ์ฝ”๋“œ์— ๋ฏธ์น˜๋Š” ์˜ํ–ฅ ์ตœ์†Œํ™”.

2. protected: ์ œํ•œ๋œ ์ƒ์† ๊ณ„์ธต ๋‚ด ๊ณต์œ 

2.1 ๊ฐœ๋…์  ํŠน์„ฑ

  • ํด๋ž˜์Šค ๊ณ„์ธต ์ œํ•œ: ์„ ์–ธ ํด๋ž˜์Šค์™€ ํ•˜์œ„ ํด๋ž˜์Šค์—์„œ๋งŒ ์ ‘๊ทผ ํ—ˆ์šฉ.
  • Java์™€์˜ ์ฐจ์ด์ : ๋™์ผ ํŒจํ‚ค์ง€ ๊ฐ€์‹œ์„ฑ ์—†์Œ. ์ˆœ์ˆ˜ ์ƒ์† ๊ด€๊ณ„์—๋งŒ ์˜์กด.
  • ์ตœ์ƒ์œ„ ์„ ์–ธ ๋ถˆ๊ฐ€: ํด๋ž˜์Šค ๋ฉค๋ฒ„๋กœ๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅ.
open class Animal {  
    protected val sound = "Generic animal sound"  // ํ•˜์œ„ ํด๋ž˜์Šค ์ „์šฉ
}  

class Cat : Animal() {  
    fun makeSound() = println(sound)  // ์ •์ƒ ์ ‘๊ทผ  
}  

2.2 ์ ์šฉ ์ „๋žต

  • ํ…œํ”Œ๋ฆฟ ๋ฉ”์„œ๋“œ ํŒจํ„ด: ์ถ”์ƒ ๋ฉ”์„œ๋“œ์˜ ๋ณดํ˜ธ๋œ ๊ตฌํ˜„ ์ œ๊ณต.
  • ์ƒ์† ์ œ์–ด: ํ”„๋ ˆ์ž„์›Œํฌ ๊ฐœ๋ฐœ ์‹œ ํ™•์žฅ ํฌ์ธํŠธ ๋ช…์‹œ์  ํ‘œ์‹œ.
  • API ์„ค๊ณ„: ๋‚ด๋ถ€ ์‚ฌ์šฉ์„ ์œ„ํ•œ ๋ฉ”์„œ๋“œ์™€ ์™ธ๋ถ€ ๊ณต๊ฐœ API ๋ถ„๋ฆฌ.

3. internal: ๋ชจ๋“ˆ ๋‹จ์œ„ ์บก์Аํ™”

3.1 ํ•ต์‹ฌ ๋ฉ”์ปค๋‹ˆ์ฆ˜

  • ๋ชจ๋“ˆ ์ •์˜: ํ•จ๊ป˜ ์ปดํŒŒ์ผ๋˜๋Š” Kotlin ํŒŒ์ผ ์ง‘ํ•ฉ(Gradle ์†Œ์Šค์…‹, IDEA ๋ชจ๋“ˆ ๋“ฑ).
  • Java ํ˜ธํ™˜์„ฑ: JVM์—์„œ public์œผ๋กœ ์ปดํŒŒ์ผ๋˜๋‚˜, Kotlin ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ ‘๊ทผ ์ œ์–ด.
  • ์‚ฌ์šฉ์ฒ˜: ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋‚ด๋ถ€ API, ๋ชจ๋“ˆ๊ฐ„ ์˜์กด์„ฑ ๊ด€๋ฆฌ.
internal class AnalyticsTracker {  // ๋ชจ๋“ˆ ๋‚ด๋ถ€ ์ „์šฉ 
    fun trackEvent(event: String) = println("Logging: $event")  
}  

3.2 ์‹ค๋ฌด ์ ์šฉ

  • ๋ชจ๋“ˆ ๊ฒฝ๊ณ„ ๊ฐ•ํ™”: ๋ชจ๋“ˆ ๊ฐ„ ์šฐ๋ฐœ์  ์˜์กด์„ฑ ๋ฐฉ์ง€.
  • ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ฐœ๋ฐœ: ์™ธ๋ถ€ ๋…ธ์ถœ ๋ถˆํ•„์š”ํ•œ ๋‚ด๋ถ€ ํด๋ž˜์Šค ์€๋‹‰.
  • ๋Œ€๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ: ๊ธฐ๋Šฅ ๋ชจ๋“ˆํ™”๋ฅผ ํ†ตํ•œ ๋นŒ๋“œ ์ตœ์ ํ™”.

4. open: ํ™•์žฅ ๊ฐ€๋Šฅ์„ฑ์˜ ๋ช…์‹œ์  ํ—ˆ์šฉ

4.1 ์„ค๊ณ„ ์ฒ ํ•™

  • ๊ธฐ๋ณธ final ์›์น™: ๋ชจ๋“  ํด๋ž˜์Šค/๋ฉ”์„œ๋“œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ƒ์† ๋ถˆ๊ฐ€. ์˜๋„์  ๊ฐœ๋ฐฉ ํ•„์š”.
  • Java ์ƒ์† ๋ชจ๋ธ ๋Œ€๋น„: ์ทจ์•ฝ ๊ธฐ๋ฐ˜ ํด๋ž˜์Šค ๋ฌธ์ œ(Fragile Base Class) ํ•ด๊ฒฐ.
  • ์ด์ค‘ ์ œ์–ด: ํด๋ž˜์Šค open ์„ ์–ธ + ๊ฐœ๋ณ„ ๋ฉค๋ฒ„ open ํ•„์š”.
open class Shape {  
    open fun draw() = println("Drawing generic shape")  // ์žฌ์ •์˜ ํ—ˆ์šฉ  
    fun calculateArea() = println("Area calculation")  // final  
}  

class Circle : Shape() {  
    override fun draw() = println("Drawing circle")  // ์ •์ƒ ์žฌ์ •์˜  
}  

4.2 ํ™œ์šฉ ๊ฐ€์ด๋“œ๋ผ์ธ

  • ํ”„๋ ˆ์ž„์›Œํฌ ํ™•์žฅ์ : ํ”Œ๋Ÿฌ๊ทธ์ธ ์•„ํ‚คํ…์ฒ˜ ์„ค๊ณ„ ์‹œ ํ•ต์‹ฌ ํด๋ž˜์Šค ๊ฐœ๋ฐฉ.
  • ์˜๋„ ๋ฌธ์„œํ™”: open์„ ํ†ตํ•ด ํ™•์žฅ ์˜๋„๋ฅผ ๊ฐœ๋ฐœ์ž์—๊ฒŒ ๋ช…์‹œ.
  • ๋ณด์•ˆ ์ค‘์š” ์ฝ”๋“œ ๋ณดํ˜ธ: ํ•ต์‹ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋“ฑ์€ final ์œ ์ง€.

5. inner: ์™ธ๋ถ€ ํด๋ž˜์Šค ์ปจํ…์ŠคํŠธ ๊ณต์œ 

5.1 ๋™์ž‘ ์›๋ฆฌ

  • ์•”์‹œ์  ์ฐธ์กฐ ๋ณด์œ : ์™ธ๋ถ€ ํด๋ž˜์Šค ์ธ์Šคํ„ด์Šค์— ๋Œ€ํ•œ this@Outer ์ฐธ์กฐ.
  • ๋ฉ”๋ชจ๋ฆฌ ์˜ํ–ฅ: ์ฐธ์กฐ ์œ ์ง€๋กœ ์ธํ•œ ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜ ๊ฐ€๋Šฅ์„ฑ ์ฃผ์˜.
  • Java ๋Œ€๋น„: ๋ช…์‹œ์  inner ํ‚ค์›Œ๋“œ ํ•„์š”. ๊ธฐ๋ณธ ์ค‘์ฒฉ ํด๋ž˜์Šค๋Š” ์ •์ .
class Outer {  
    private val secret = 42  

    inner class Inner {  
        fun revealSecret() = println("The secret is $secret")  // ์™ธ๋ถ€ ์ฐธ์กฐ ์ ‘๊ทผ
    }  
}  

// ์‚ฌ์šฉ: Outer().Inner().revealSecret()  

5.2 ์‚ฌ์šฉ ๊ถŒ์žฅ ์‚ฌ๋ก€

  • ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ: ์™ธ๋ถ€ ์ƒํƒœ์™€ ๋ฐ€์ ‘ํ•œ ์—ฐ๊ด€์„ฑ ์žˆ๋Š” ํ•ธ๋“ค๋Ÿฌ ๊ตฌํ˜„.
  • UI ์ปดํฌ๋„ŒํŠธ: RecyclerView.ViewHolder์™€ ๊ฐ™์€ ํŒจํ„ด.
  • ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ํ•„์ˆ˜: ๋ผ์ดํ”„์‚ฌ์ดํด์ด ์งง์€ ๊ฐ์ฒด์— ํ•œํ•ด ์‚ฌ์šฉ.

6. ๋น„๊ต ๋ถ„์„: ์ƒํ™ฉ๋ณ„ ํ‚ค์›Œ๋“œ ์„ ํƒ ๋งคํŠธ๋ฆญ์Šค

ํ‚ค์›Œ๋“œ ๊ฐ€์‹œ์„ฑ ๋ฒ”์œ„ ์ƒ์† ์˜ํ–ฅ ๋ฉ”๋ชจ๋ฆฌ ๊ณ ๋ ค์‚ฌํ•ญ ์ฃผ์š” ์‚ฌ์šฉ ์‚ฌ๋ก€
private ํด๋ž˜์Šค/ํŒŒ์ผ ๋‚ด๋ถ€ ๋ฌด๊ด€ ์—†์Œ ๋‚ด๋ถ€ ๊ตฌํ˜„ ์€๋‹‰
protected ํด๋ž˜์Šค + ํ•˜์œ„ ํด๋ž˜์Šค ์ง์ ‘์  ์˜ํ–ฅ ์—†์Œ ํ™•์žฅ ๊ฐ€๋Šฅ ์ปดํฌ๋„ŒํŠธ ์„ค๊ณ„
internal ๋™์ผ ๋ชจ๋“ˆ ๋ฌด๊ด€ ์—†์Œ ๋ชจ๋“ˆํ™” ์•„ํ‚คํ…์ฒ˜ ๊ตฌํ˜„
open ๊ฐ€์‹œ์„ฑ๊ณผ ๋…๋ฆฝ์  ์ƒ์† ํ—ˆ์šฉ ์—†์Œ ํ”„๋ ˆ์ž„์›Œํฌ ํ™•์žฅ์  ์ œ๊ณต
inner ์™ธ๋ถ€ ํด๋ž˜์Šค ์ธ์Šคํ„ด์Šค ํ•„์š” ๋ฌด๊ด€ ์ฐธ์กฐ ์œ ์ง€ ๊ฐ€๋Šฅ์„ฑ ๋ฐ€์ ‘ํ•œ ์ปดํฌ๋„ŒํŠธ ์—ฐ๋™

7. ๊ณ ๊ธ‰ ํ™œ์šฉ ์‹œ๋‚˜๋ฆฌ์˜ค ๋ฐ ์ฃผ์˜์‚ฌํ•ญ

7.1 ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ์ „๋žต

  • inner ํด๋ž˜์Šค ์‚ฌ์šฉ ์‹œ: ์•ฝํ•œ ์ฐธ์กฐ(WeakReference) ๋˜๋Š” ๋ผ์ดํ”„์‚ฌ์ดํด ๊ด€์ฐฐ์ž ํŒจํ„ด ์ ์šฉ.
  • ๋ฆฌ์Šค๋„ˆ ํ•ด์ œ: inner ํด๋ž˜์Šค๊ฐ€ ์™ธ๋ถ€ ์ฐธ์กฐ๋ฅผ ๋ณด์œ ํ•  ๋•Œ ๋ช…์‹œ์  null ํ• ๋‹น ํ•„์š”.

7.2 ๋ชจ๋“ˆ ์„ค๊ณ„ ์ตœ์ ํ™”

  • internal API ๋ฌธ์„œํ™”: KDoc์— @InternalAPI ํƒœ๊ทธ ์‚ฌ์šฉ์œผ๋กœ ๊ฐœ๋ฐœ์ž ์ฃผ์˜ ํ™˜๊ธฐ.
  • ๋ชจ๋“ˆ ๊ฒฝ๊ณ„ ํ…Œ์ŠคํŠธ: ๋‹ค๋ฅธ ๋ชจ๋“ˆ์—์„œ internal ํด๋ž˜์Šค ์ ‘๊ทผ ์‹œ๋„ ๊ฒ€์ฆ.

7.3 ์ƒ์† ๊ณ„์ธต ์„ค๊ณ„

  • open ํด๋ž˜์Šค ๊ณ„์•ฝ: ํ•˜์œ„ ํด๋ž˜์Šค๊ฐ€ ์ง€์ผœ์•ผ ํ•  ๋ถˆ๋ณ€์‹(invariant) ๋ฌธ์„œํ™”.
  • ์ƒ์† ๊ธˆ์ง€ ํ•„์š” ์‹œ: final ์žฌ์„ ์–ธ ๋˜๋Š” sealed ํด๋ž˜์Šค ํ™œ์šฉ.

8. ๊ฒฐ๋ก : Kotlin์˜ ์˜๋„์  ์„ค๊ณ„ ์ฒ ํ•™

Kotlin์˜ ์ ‘๊ทผ ์ œ์–ด์ž์™€ ์ˆ˜์ •์ž๋Š” ์–ธ์–ด ์„ค๊ณ„์ž๋“ค์ด ์ถ”๊ตฌํ•˜๋Š” ๋ช…์‹œ์„ฑ๊ณผ ์•ˆ์ „์„ฑ์„ ๋ฐ˜์˜ํ•ฉ๋‹ˆ๋‹ค. Java์˜ ์•”๋ฌต์  ํ—ˆ์šฉ(๊ธฐ๋ณธ ํŒจํ‚ค์ง€ ๊ฐ€์‹œ์„ฑ, ๋ฌด์ œํ•œ ์ƒ์†)์—์„œ ๋ฒ—์–ด๋‚˜, ๊ฐœ๋ฐœ์ž๋กœ ํ•˜์—ฌ๊ธˆ ์‹œ์Šคํ…œ์˜ ํ™•์žฅ์ ๊ณผ ์บก์Аํ™” ๊ฒฝ๊ณ„๋ฅผ ์˜์‹์ ์œผ๋กœ ์„ ํƒํ•˜๋„๋ก ์œ ๋„ํ•ฉ๋‹ˆ๋‹ค. inner์˜ ์ฐธ์กฐ ๊ด€๋ฆฌ, internal์„ ํ†ตํ•œ ๋ชจ๋“ˆ ๊ฒฝ๊ณ„ ๊ฐ•ํ™”, open์˜ ์„ ํƒ์  ์ƒ์† ํ—ˆ์šฉ์€ ๋Œ€๊ทœ๋ชจ ์‹œ์Šคํ…œ ๊ฐœ๋ฐœ์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์ผ๋ฐ˜์ ์ธ ๋ฌธ์ œ๋“ค(๋ชจ๋“ˆ ๊ฐ„ ๊ฒฐํ•ฉ๋„, ์˜ˆ๊ธฐ์น˜ ์•Š์€ ์ƒ์† ์˜ค๋ฅ˜, ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜)์— ๋Œ€ํ•œ Kotlin์˜ ์ฒด๊ณ„์ ์ธ ํ•ด๋ฒ•์ž…๋‹ˆ๋‹ค. ํ˜„๋Œ€์  ์†Œํ”„ํŠธ์›จ์–ด ์•„ํ‚คํ…์ฒ˜ ์„ค๊ณ„์— ์žˆ์–ด ์ด๋Ÿฌํ•œ ๊ธฐ๋Šฅ๋“ค์„ ์ „๋žต์ ์œผ๋กœ ํ™œ์šฉํ•˜๋ฉด ์œ ์ง€๋ณด์ˆ˜์„ฑ๊ณผ ์‹œ์Šคํ…œ ์•ˆ์ •์„ฑ์„ ๋™์‹œ์— ํ™•๋ณดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

728x90
์ €์ž‘์žํ‘œ์‹œ ๋น„์˜๋ฆฌ ๋ณ€๊ฒฝ๊ธˆ์ง€ (์ƒˆ์ฐฝ์—ด๋ฆผ)
'Languages/Kotlin' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • Kotlin 2.1.10 ๋ณ€๊ฒฝ์ 
  • [Kotlin] ์ฝ”๋ฃจํ‹ด: ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ ์‹œ์Šคํ…œ
  • [Kotlin] class์™€ object ์ฐจ์ด์ 
  • [Kotlin] ์ฝ”ํ‹€๋ฆฐ let, run, apply, also, with์˜ ์ฐจ์ด์™€ ์ ์ ˆํ•œ ์‚ฌ์šฉ ์ƒํ™ฉ ๋ถ„์„
์ง€๋‹ˆ๐Ÿงž‍โ™‚๏ธ๐Ÿฅญ
์ง€๋‹ˆ๐Ÿงž‍โ™‚๏ธ๐Ÿฅญ
์ผ์ƒ, ๊ฒŒ์ž„, ๋ง›์ง‘, ์—ฌํ–‰, ๊ฐœ๋ฐœ, IT ๋ธ”๋กœ๊ทธ๐Ÿงž
  • ์ง€๋‹ˆ๐Ÿงž‍โ™‚๏ธ๐Ÿฅญ
    ์š”์ˆ  ๋žจํ”„๐Ÿซ–
    ์ง€๋‹ˆ๐Ÿงž‍โ™‚๏ธ๐Ÿฅญ
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • All (549)
      • Languages (57)
        • JAVA (13)
        • JSP (1)
        • C_C++ (4)
        • Html (3)
        • CSS (1)
        • JavaScript (18)
        • Python (3)
        • Kotlin (13)
        • TypeScript (1)
      • Framework (14)
        • spring (11)
        • jstl (1)
        • angular (2)
      • Tool (28)
        • Eclipse (5)
        • vsCode (3)
        • scrcpy (2)
        • Git (1)
        • IntelliJ (6)
        • Visual-studio (1)
        • UML (1)
        • Gradle (8)
      • DB (6)
        • Oracle (1)
        • MySql (3)
        • Mongo (2)
      • OS (14)
        • Linux (2)
        • Windows (12)
      • Server (8)
        • Tomcat (1)
        • Apache (1)
        • Node.js (6)
      • Programmings (25)
        • Design Pattern (2)
        • Funny (20)
        • Algorithms (3)
      • Cloud (8)
        • Docker (1)
        • Kubernetes (4)
        • Istio (1)
        • ArgoCD (2)
      • IT (5)
        • gRPC (3)
        • RESTful (3)
        • Web UI (5)
        • AI (4)
      • Book (6)
      • TIP (187)
      • Life (53)
      • Game (83)
      • Storage (22)
      • ์‹๋‹น (15)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
    • ์‚ฌ์ดํŠธ๋งต
    • RSS
    • ๊ธฐํƒ€ ์†Œ๋“
  • ๋งํฌ

    • ๊ตฌ๊ธ€
    • ๋„ค์ด๋ฒ„
    • ์ •๋ถ€24
    • Spring Framework ๋ฆด๋ฆฌ์ฆˆ ๋…ธํŠธ
    • Kotlin ๋ฆด๋ฆฌ์ฆˆ ๋…ธํŠธ
    • ์นด์นด์˜ค ์• ๋“œํ•
    • ๋ธ”๋กœ๊ทธ ์‚ฌ์ดํŠธ๋งต
    • ๋ธ”๋กœ๊ทธ RSS
  • ๊ณต์ง€์‚ฌํ•ญ

    • ์•ˆ๋…•ํ•˜์„ธ์š”
  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    ๋ธŒ๋ฆฌํ•‘
    ๋ชฌ์Šคํ„ฐํ—Œํ„ฐ๋‚˜์šฐ
    ๋ฐ์ผ๋ฆฌ ๋‰ด์Šค
    ์˜ค๋Š˜์˜๋‰ด์Šค
    ๋‰ด์Šค
    ํ€˜์ŠคํŠธ
    ๋‰ด์Šค ๋ธŒ๋ฆฌํ•‘
    ๋ชฌ์Šคํ„ฐํ—Œํ„ฐ์™€์ผ์ฆˆ
    ํƒœ๊ตญ
    ํ•œ๋ˆˆ์— ๋ณด๋Š” ์˜ค๋Š˜์˜ ๋‰ด์Šค
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
์ง€๋‹ˆ๐Ÿงž‍โ™‚๏ธ๐Ÿฅญ
[Kotlin] ํด๋ž˜์Šค ์ ‘๊ทผ ์ œ์–ด์ž์™€ ์ˆ˜์ •์ž(protected, inner, private, open)
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”