๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ“’ | Kotlin/โœจ | ๊ฐœ๋…

[Kotlin] ๋ฐฐ์—ด๊ณผ Map์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ธฐ

by immgga 2023. 10. 27.

์š”์ฆ˜ ํ•„์ž๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ๋ฅผ ํ’€๊ณ  ์žˆ๋‹ค.

์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ๋ฅผ ํ’€๋‹ค ๋ณด๋ฉด ๋ฐฐ์—ด์€ ๊ฑฐ์˜ ๋Œ€๋ถ€๋ถ„์˜ ๋ฌธ์ œ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ ๊ฐ™๊ณ , HashMap๋„ ์ข…์ข… ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ ๊ฐ™์•˜๋‹ค.

๊ทธ๋ž˜์„œ ์ด๋ฒˆ์— ์ฝ”ํ‹€๋ฆฐ์˜ ๋ฐฐ์—ด๊ณผ HashMap์˜ ์ฐจ์ด์— ๋Œ€ํ•ด ๊ฐ„๋‹จํžˆ ์„ค๋ช…ํ•ด๋ณด๊ณ ์ž ํ•œ๋‹ค.

์•ž์œผ๋กœ ์ด๋Ÿฐ ๊ฐ„๋‹จํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ฐœ๋…์— ๋Œ€ํ•œ ํฌ์ŠคํŒ…์ด ์˜ฌ๋ผ์˜ฌ ๊ฒƒ ๊ฐ™๋‹ค.

 

1. ๋ฐฐ์—ด(Array)

๋ฐฐ์—ด์€ ์ฝ”ํ‹€๋ฆฐ์„ ๊ณต๋ถ€ํ•˜์ง€ ์•Š์€ ์‚ฌ๋žŒ์ด๋ผ๋„ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ฅผ ํ•˜๋‚˜๋ผ๋„ ๊ณต๋ถ€ํ•ด ๋ณธ ๊ฒฝํ—˜์ด ์žˆ์œผ๋ฉด ๋ฐ”๋กœ ์•Œ ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค.

๋ฐ”๋กœ ๋ฐ์ดํ„ฐ์˜ ์ง‘ํ•ฉ์„ ๋ฐฐ์—ด์ด๋ผ๊ณ  ํ•˜๋Š”๋ฐ ์ž๋ฐ”์˜ ๋ฐฐ์—ด ์„ ์–ธ๊ณผ๋Š” ๋‹ฌ๋ฆฌ ์ฝ”ํ‹€๋ฆฐ์˜ ๋ฐฐ์—ด์€ ์ƒ๋‹นํžˆ ํŽธ๋ฆฌํ•˜๋ฉด์„œ๋„ ๋ณต์žก(?)ํ•˜๋‹ค.(ํ•„์ž ๊ธฐ์ค€)

ํ•„์ž๊ฐ€ ์™œ ๋ณต์žกํ•˜๊ฒŒ ๋Š๊ผˆ๋ƒ๋ฉด, ์ฝ”๋“œ๋กœ ์„ค๋ช…ํ•ด ์ฃผ๊ฒ ๋‹ค.

 

์ž๋ฐ”์˜ ๊ฒฝ์šฐ์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ฐฐ์—ด์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.

int[] intArray;
String[] stringArray;

int intArray[];
String stringArray[];

 

ํ•˜์ง€๋งŒ ์ฝ”ํ‹€๋ฆฐ์˜ ๊ฒฝ์šฐ์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์„ ์–ธํ•  ์ˆ˜ ์žˆ๋‹ค.

val intArray1 = intArrayOf()
val intArray2 = arrayOf<Int>()
val intArray3 = Array(3) {0}

์ฝ”ํ‹€๋ฆฐ๊ณผ ์ž๋ฐ”์˜ List ํ˜•์‹์€ Array๋งŒ ์žˆ๋Š” ๊ฒƒ์€ ์•„๋‹ˆ์ง€๋งŒ(List ๋“ฑ) ์˜ˆ๋ฅผ ๋“ค์–ด์„œ Array๋กœ๋งŒ ์„ค๋ช…ํ–ˆ๋‹ค.

 

Array๋Š” List์ฒ˜๋Ÿผ ๋ณด๋Š” List์™€ ํŽธ์ง‘ํ•˜๋Š” List(MutableList)๊ฐ€ ๋‚˜๋‰˜์–ด ์žˆ๋Š” ๊ฒƒ์ด ์•„๋‹Œ set๊ณผ get์„ ๋ชจ๋‘ ํ•  ์ˆ˜ ์žˆ๋‹ค.

val array = Array<Char>(5) { 'a' }
array[array.lastIndex] = 'b'
println("array set result: ${array.toList()}")
val get = array[array.lastIndex]
println("array get result: $get")

array[array.lastIndex] = 'b'๋Š” array.set(array.lastIndex, 'b')๋ฅผ ๋ณ€ํ˜•ํ•œ ์ฝ”๋“œ์ด๊ณ 

get ๋ณ€์ˆ˜๋Š” array.get(array.lastIndex)๋ฅผ ๋ณ€ํ˜•ํ•œ ์ฝ”๋“œ์ด๋‹ค. ์ฝ”ํ‹€๋ฆฐ์Šค๋Ÿฝ๊ฒŒ

์œ„์˜ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฐ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค.

๊ธฐ์กด์˜ a, a, a, a, a์˜ ๋ฐฐ์—ด์—์„œ ๋งˆ์ง€๋ง‰ a๋ฅผ b๋กœ ๋ณ€๊ฒฝํ–ˆ๊ณ , ๋ณ€๊ฒฝํ•œ ๋งˆ์ง€๋ง‰ index๋ฅผ ๊ฐ€์ ธ์˜จ ๋ชจ์Šต์ด๋‹ค.

ํ•˜์ง€๋งŒ ๋‹จ์ ๋„ ์žˆ๋Š”๋ฐ

๋ฐฐ์—ด์˜ ํฌ๊ธฐ๋ฅผ ๋ฐ”๊ฟ€ ์ˆ˜ ์—†๋‹ค๋Š” ์ ์ด๋‹ค!

์ฒ˜์Œ์— ๋ฐฐ์—ด์„ ์„ ์–ธํ•  ๋•Œ ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๋ฅผ ์ •ํ•ด์•ผ ํ•˜๋Š”๋ฐ,

val array = Array<Char>(5) { 'a' }

๋‚˜์ค‘์— ์ € array์˜ ํฌ๊ธฐ๋ฅผ ์ดˆ๊ณผํ•˜๋Š” index์— ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฝ์ž…ํ•˜๊ฑฐ๋‚˜ ๋ถˆ๋Ÿฌ์˜ค๋ ค๊ณ  ํ•˜๋ฉด

ArrayIndexOutOfBoundsException์ด ๋ฐœ์ƒํ•  ๊ฒƒ์ด๋‹ค.

์œ„์˜ ๋‹จ์  ํ•˜๋‚˜๋กœ๋„ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ๋ฅผ ํ’€ ๋•Œ์˜ ์„ ํƒ์ง€๊ฐ€ ๋งŽ์ด ๋–จ์–ด์งˆ ํ…๋ฐ, ๋˜ ๋‹ค๋ฅธ ๋‹จ์ ์ด ํ•˜๋‚˜ ๋” ์žˆ๋‹ค.

์™œ์ธ์ง€๋Š” ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ Array์—์„œ drop์ด ๋˜์ง€ ์•Š์•˜๋‹ค.

ํ•„์ž๋Š” ์œ„์˜ array์—์„œ 1๋ฒˆ์งธ์˜ index๋ฅผ ์‚ญ์ œํ•˜๊ธฐ ์œ„ํ•ด drop์„ ์‚ฌ์šฉํ–ˆ๋‹ค.

array.drop(1)
println("array drop result: ${array.toList()}")

ํ•˜์ง€๋งŒ drop์ด ์ด๋ฃจ์–ด์ง€์ง€ ์•Š์•˜๋‹ค.

drop์ด ๋œ ๋ชจ์Šต์„ print ํ•ด์„œ ๋ณด์ด๊ฒŒ ํ•˜๋ ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฐฉ๋ฒ•์„ ์จ์•ผ๋งŒ ํ–ˆ๋‹ค.

println("array drop result: ${array.drop(1).toList()}")

array.drop()์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ฐ”๋กœ array์— ๋ฐ˜์˜๋˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ ๋”ฐ๋กœ ๋ณ€์ˆ˜๋กœ ๋งŒ๋“ค์–ด ์ฃผ์–ด์•ผ ์‚ญ์ œ๋œ ๋ฒ„์ „์˜ array๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋“ฏํ–ˆ๋‹ค.

์œ„์˜ 2๊ฐœ์˜ ๋‹จ์ ์„ ์ง์ ‘ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค๋ฅผ ํ’€๋ฉด์„œ ์ฐพ์•„๋‚ธ(?) ๋‹จ์ ๋“ค์ด๋‹ค.

๊ทธ๋ž˜์„œ ํ•„์ž๋Š” ๋ณ€๊ฒฝ ๊ฐ€๋Šฅํ•œ ๋ฆฌ์ŠคํŠธ์ธ MutableList๋ฅผ ์ž์ฃผ ์‚ฌ์šฉํ•œ๋‹ค ใ…Žใ…Ž.

 

ํ•„์ž๊ฐ€ ๋ฐฐ์—ด์„ ์ด์šฉํ•ด ํ•ด๊ฒฐํ•œ ๋ฌธ์ œ๋“ค(ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค)

3๋ฒˆ์„ ์ œ์™ธํ•œ ๋‚˜๋จธ์ง€ ๋ฌธ์ œ๋“ค์€ 2์ฐจ์› ๋ฐฐ์—ด์„ ์ด์šฉํ•ด ํ’€์—ˆ๋‹ค.

1. ๊ณต์› ์‚ฐ์ฑ…(lv 1)

https://school.programmers.co.kr/learn/courses/30/lessons/172928

2. ๋ฐ”ํƒ• ํ™”๋ฉด ์ •๋ฆฌ(lv 1)

https://school.programmers.co.kr/learn/courses/30/lessons/161990

3. ๋ง์น ํ•˜๊ธฐ(lv 1)

https://school.programmers.co.kr/learn/courses/30/lessons/161989

 

2. Map(HashMap)

์ด๋ฒˆ์—๋Š” Map์„ ์•Œ์•„๋ณผ ๊ฑด๋ฐ

map์€ key์™€ value๋กœ ๋‚˜๋‰˜์–ด ์žˆ์–ด์„œ key๋กœ ํŠน์ • value๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ๊ณ , ํŠน์ • key์— ์—ฌ๋Ÿฌ ๊ฐœ์˜ value๋ฅผ ๋„ฃ์„ ์ˆ˜ ์—†๋‹ค๋Š” ํŠน์ง•์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค(key์™€ value๊ฐ€ 1:1์˜ ๊ด€๊ณ„๋ฅผ ๊ฐ€์ง„๋‹ค.).

์—ฌ๊ธฐ์„œ HashMap๊ณผ MutableMap์˜ ์ฐจ์ด๋ฅผ ๊ถ๊ธˆํ•ดํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ๋Š”๋ฐ,

HashMap์€ MutableMap Interface์— ์†ํ•˜๋Š” ๋‹ค์–‘ํ•œ Map ์ค‘ ํ•˜๋‚˜๋ผ๊ณ  ํ•œ๋‹ค. ๊ทธ๋ ‡๊ธฐ์— hashMap์€ mutableMap์˜ ํ•œ ์ข…๋ฅ˜๋ผ๊ณ  ํ•œ๋‹ค.

๊ด€๋ จ ์ž๋ฃŒ ๋งํฌ: https://velog.io/@moonpiderman/Kotlin-MutableMap-vs-HashMap

 

[Kotlin] MutableMap vs HashMap

MutableMap vs HashMap

velog.io

 

๋ฐ”๋กœ ์˜ˆ์ œ๋ฅผ ํ†ตํ•ด ํ™•์ธํ•ด ๋ณด์ž.

key๊ฐ€ int์ด๊ณ  value๋„ int์ธ map์„ ์ƒ์„ฑํ•ด ์ฃผ์—ˆ๋‹ค.

map์˜ ์ƒ์„ฑ ๋ฐฉ๋ฒ•์€ Map<Type, Type>()์„ ์ด์šฉํ•ด์„œ๋„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ์šฐ๋ฆฌ๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ์–ธ์–ด๋Š” kotlin์ด๊ธฐ ๋•Œ๋ฌธ์— ์ข€ ์ฝ”ํ‹€๋ฆฐ์Šค๋Ÿฌ์šด(?) map ์ƒ์„ฑ์„ ํ•ด์ฃผ๋„๋ก ํ•˜์ž.

val map = mapOf(0 to 0, 1 to 1, 2 to 2)
val mutableMap = mutableMapOf(0 to 0, 1 to 1, 2 to 2)

๊ธฐ๋ณธ Map์€ mapOf()์œผ๋กœ, MutableMap์€ mutableMapOf()์œผ๋กœ ์ƒ์„ฑ ๊ฐ€๋Šฅํ•˜๋‹ค.(๊ทธ๋Ÿผ hashMap๋„ ์–ด๋–ป๊ฒŒ ์ƒ์„ฑํ•˜๋Š”์ง€ ๊ฐ์ด ์žกํž ๊ฒƒ์ด๋‹ค.)

์ถœ๋ ฅํ•˜๋ฉด ๊ฐ„๋‹จํ•˜๊ฒŒ ์ด๋Ÿฐ ํ˜•์‹์œผ๋กœ ์ถœ๋ ฅ๋œ๋‹ค.

์ด์ œ map์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ •ํ•ด ๋ณด๊ฒ ๋‹ค.

์ฐธ๊ณ ๋กœ ๊ธฐ๋ณธ map์€ ๋ฐ์ดํ„ฐ ์ˆ˜์ •๊ณผ ์ˆ˜์ •, ์‚ญ์ œ๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•œ ๋ถˆ๋ณ€ํ˜•์ด๊ธฐ ๋•Œ๋ฌธ์— mutableMap์„ ์ด์šฉํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ๋ณ€๊ฒฝํ•ด ๋ณด๊ฒ ๋‹ค.

mutableMap[3] = 3
println("mutableMap set result: $mutableMap")
mutableMap.remove(3)
println("mutableMap remove result: $mutableMap")
mutableMap[2] = 5
println("mutableMap modify result: $mutableMap")

์ฝ”๋“œ ์ˆœ์„œ๋Œ€๋กœ ์„ค๋ช…ํ•˜์ž๋ฉด,

  1. mutableMap์— key๊ฐ€ 3์ด๊ณ , value๊ฐ€ 3์ธ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค.
  2. mutableMap์— key๊ฐ€ 3์ธ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œํ•œ๋‹ค.
  3. mutableMap์— key๊ฐ€ 2์ธ ๋ฐ์ดํ„ฐ์˜ value๋ฅผ 5๋กœ ๋ณ€๊ฒฝํ•œ๋‹ค.

์ด๋‹ค. ์‹คํ–‰ ๊ฒฐ๊ณผ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

์•„๊นŒ ํ•„์ž๊ฐ€ ํ•œ ๊ฐœ์˜ key์— ์—ฌ๋Ÿฌ ๊ฐœ์˜ value๊ฐ€ ๋“ค์–ด๊ฐˆ ์ˆ˜ ์—†๋‹ค๊ณ  ํ–ˆ์—ˆ๋Š”๋ฐ, ๊ทธ๋ž˜์„œ ๊ธฐ์กด์˜ ๋ฐ์ดํ„ฐ์ธ 2๊ฐ€ ์‚ฌ๋ผ์ง€๊ณ  ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ์ธ 5๋กœ ๋ฎ์–ด ์”Œ์›Œ์ง„ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 

ํ•„์ž๊ฐ€ Map์„ ์ด์šฉํ•ด ํ•ด๊ฒฐํ•œ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋ฌธ์ œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

1. ๋‹ฌ๋ฆฌ๊ธฐ ๊ฒฝ์ฃผ(lv 1)

https://school.programmers.co.kr/learn/courses/30/lessons/178871

 

์œ„์˜ ๋ฌธ์ œ๋Š” ๋ฐฐ์—ด๊ณผ map์„ ๋ชจ๋‘ ์ด์šฉํ•ด์„œ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ๋ฐฐ์—ด์„ ์‚ฌ์šฉํ•˜๋ฉด ์‹œ๊ฐ„ ์ดˆ๊ณผ๊ฐ€ ๋ฐœ์ƒํ•  ๊ฒƒ์ด๋‹ค.(๋‚ด๊ฐ€ ๊ทธ๋žฌ์—ˆ๋‹ค ใ… )

 

3. ์‹œ๊ฐ„ ๋ณต์žก๋„

๋ฐฐ์—ด๊ณผ Map์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ ์•„์ฃผ ๊ฐ„๋‹จํžˆ ์„ค๋ช…ํ•˜์ž๋ฉด,

๋ฐฐ์—ด์—์„œ ํŠน์ • ๊ฐ’์„ ์ฐพ์œผ๋ ค๊ณ  ํ•  ๋•Œ, O(n)์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ ๊ฐ€์ง„๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด์„œ ๋ฐฐ์—ด A์—์„œ A[5]์˜ ๊ฐ’์„ ์ฐพ์œผ๋ ค๊ณ  ํ•  ๋•Œ, A[5]๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•ด A[0] -> A[1]... ์ˆœ์„œ๋Œ€๋กœ ๊ฒ€์ƒ‰ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” O(n)์ด ๋œ๋‹ค.

๋งŒ์•ฝ 2์ฐจ์› ๋ฐฐ์—ด์—์„œ ํŠน์ • ๊ฐ’์„ ์ฐพ์œผ๋ ค๊ณ  ํ•œ๋‹ค๋ฉด, O(n x n)์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ ๊ฐ€์ง€๊ฒŒ ๋  ๊ฒƒ์ด๋‹ค.

 

Map์—์„œ ํŠน์ • ๊ฐ’์„ ์ฐพ์„ ๋•Œ์—๋Š” O(1)์˜ ์‹œ๊ฐ„์„ ๊ฐ€์ง€๋Š”๋ฐ,

Map์˜ key์— ์ ‘๊ทผํ•ด์„œ value๋ฅผ ์•Œ์•„๋‚ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

 

์‹œ๊ฐ„ ๋ณต์žก๋„์˜ ๋” ์ž์„ธํ•œ ์„ค๋ช…์€ ๋‹ค์Œ์˜ ๊ธ€๋“ค์„ ๋ณด๊ณ  ๊ณต๋ถ€ํ•ด ๋ณด๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค.

https://bb-library.tistory.com/144

 

[Kotlin] ์ปฌ๋ ‰์…˜(Collections)

Kotlin Collections ์ฝ”ํ‹€๋ฆฐ ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ์ปฌ๋ ‰์…˜์„ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค. ์ฝ”ํ‹€๋ฆฐ์˜ ์ปฌ๋ ‰์…˜์€ ํฌ๊ฒŒ ๊ฐ€๋ณ€ ์ปฌ๋ ‰์…˜์ธ mutable๊ณผ ๋ถˆ๋ณ€ ์ปฌ๋ ‰์…˜์ธ immutable๋กœ ๋‚˜๋‰œ๋‹ค. ์—ฌ๊ธฐ์„œ ๊ฐ€๋ณ€ ์ปฌ๋ ‰์…˜์ด๋ผ๊ณ 

bb-library.tistory.com

 

4. ์ •๋ฆฌ

  • ๋‘˜ ๋‹ค ํŠน์ • ์ƒํ™ฉ์—์„œ ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™๋‹ค.
  • ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ’€ ๋•Œ์—๋Š” ๋ถˆ๋ณ€์„ฑ๋ณด๋‹ค ๊ฐ€๋ณ€์„ฑ์ด ์ข‹์€ ๊ฒƒ์€ ์–ด์ฉ” ์ˆ˜๊ฐ€ ์—†๋Š” ๊ฒƒ ๊ฐ™๋‹ค. ๊ฐ€๋ณ€์„ฑ๊ณผ ๋ถˆ๋ณ€์„ฑ์˜ ์ฐจ์ด๋„ ์ถ”ํ›„๊ฒŒ ๊ณต๋ถ€ํ•ด ๋ด์•ผ๊ฒ ๋‹ค.
  • ํ•œ์ฐธ ๋™์•ˆ ๋†“๊ณ  ์žˆ๋˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๋‹ค์‹œ ํ‘ธ๋‹ˆ๊นŒ ์˜›๋‚ ์— ํ•œ์ฐธ ํ’€ ๋•Œ์˜ ๊ฐ์ด ๋‹ค ์‚ฌ๋ผ์ง„ ๊ฒƒ ๊ฐ™๋‹ค. ์ด๋ž˜์„œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ณต๋ถ€๋Š” ๊พธ์ค€ํžˆ ํ•ด์•ผ ํ•œ๋‹ค๋Š” ๋ง์„ ๋ฐ”๋กœ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.
  • ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ๋ฅผ ํ’€๊ณ  ๋‚˜๋ฉด ์—ญ์‹œ ์„ฑ์ทจ๊ฐ์ด ์ปธ๋‹ค. ๋ชจ๋“  ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋ฅผ ํ†ต๊ณผํ–ˆ์„ ๋•Œ์˜ ์งœ๋ฆฟํ•จ(?)์€ ์žŠ์„ ์ˆ˜๊ฐ€ ์—†๋‹ค.
    ์•ž์œผ๋กœ ์ข…์ข… ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ •๋ฆฌ ํฌ์ŠคํŒ…๋„ ์˜ฌ๋ ค์•ผ ํ•  ๊ฒƒ ๊ฐ™๋‹ค.
728x90

'๐Ÿ“’ | Kotlin > โœจ | ๊ฐœ๋…' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Kotlin] ์ƒ์†(Inheritance)  (0) 2024.06.14
[Kotlin] coroutine ๊ฐœ๋… ์ •๋ฆฌ  (0) 2022.04.03