Skip to content

Latest commit

ย 

History

History
155 lines (102 loc) ยท 8.1 KB

File metadata and controls

155 lines (102 loc) ยท 8.1 KB

Class & Struct

  • ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์™€ ๋‹ฌ๋ฆฌ Swift๋Š” ์‚ฌ์šฉ์ž ์ •์˜ ๊ตฌ์กฐ์ฒด์™€ ํด๋ž˜์Šค์— ๋Œ€ํ•ด ๋ณ„๋„์˜ ์ธํ„ฐํŽ˜์ด์Šค์™€ ๊ตฌํ˜„ ํŒŒ์ผ์„ ๋งŒ๋“ค ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. Swift์—์„œ ๋‹จ์ผ ํŒŒ์ผ๋กœ ๊ตฌ์กฐ์ฒด ๋˜๋Š” ํด๋ž˜์Šค๋ฅผ ์ •์˜ํ•˜๋ฉด ํ•ด๋‹น ํด๋ž˜์Šค ๋˜๋Š” ๊ตฌ์กฐ์ฒด์— ๋Œ€ํ•œ ์™ธ๋ถ€ ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ์ž๋™์œผ๋กœ ๋‹ค๋ฅธ ์ฝ”๋“œ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ตฌ์กฐ์ฒด์™€ ํด๋ž˜์Šค๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ณตํ†ต์ ์„ ๊ฐ€์ง‘๋‹ˆ๋‹ค.

  • ๊ฐ’์„ ์ €์žฅํ•˜๋Š” ํ”„๋กœํผํ‹ฐ ์ •์˜
  • ๊ธฐ๋Šฅ ์ œ๊ณต์„ ์œ„ํ•œ ๋ฉ”์„œ๋“œ ์ •์˜
  • ์„œ๋ธŒ ์Šคํฌ๋ฆฝํŠธ ๊ตฌ๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ’์— ์ ‘๊ทผ์„ ์ œ๊ณตํ•˜๋Š” ์„œ๋ธŒ ์Šคํฌ๋ฆฝํŠธ ์ •์˜
  • ์ดˆ๊ธฐํ™” ์ƒํƒœ๋ฅผ ์„ค์ •ํ•˜๊ธฐ ์œ„ํ•œ ์ดˆ๊ธฐํ™” ์ •์˜
  • ๊ธฐ๋ณธ ๊ตฌํ˜„์„ ๋„˜์–ด ๊ธฐ๋Šฅ์  ํ™•์žฅ์„ ์œ„ํ•œ ํ™•์žฅ
  • ํŠน์ • ์ข…๋ฅ˜์˜ ํ‘œ์ค€ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ํ”„๋กœํ† ์ฝœ ์ค€์ˆ˜

๊ตฌ์กฐ์ฒด๋Š” struct ํ‚ค์›Œ๋“œ๋กœ ํด๋ž˜์Šค๋Š” class ํ‚ค์›Œ๋“œ๋กœ ์‹œ์ž‘ํ•ด ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ตฌ์กฐ์ฒด๋‚˜ ํด๋ž˜์Šค์˜ ๋ณ€์ˆ˜๋ฅผ ์†์„ฑ(property)์ด๋ผ๊ณ  ํ•˜๊ณ  ํ•จ์ˆ˜๋ฅผ ๋ฉ”์„œ๋“œ(method)๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

class Dog {
    var name = "๊ฐ•์•„์ง€"
    var weight = 0
    
    func sit() {
        print("์•‰์•˜์Šต๋‹ˆ๋‹ค.")
    }
    
    func layDown() {
        print("๋ˆ„์› ์Šต๋‹ˆ๋‹ค.")
    }
}

struct Bird {
    var name = "์ƒˆ"
    var weight = 0.0
    
    func fly() {
        print("๋‚ ์•„๊ฐ‘๋‹ˆ๋‹ค.")
    }
}

ํด๋ž˜์Šค์™€ ๊ตฌ์กฐ์ฒด ๋‘˜๋‹ค ๋ฉ”๋ชจ๋ฆฌ์— ์ฐ์–ด๋‚ธ ๊ฒƒ์„ ์ธ์Šคํ„ด์Šค(instance)๋ผ๊ณ  ํ•˜๊ณ  ์ธ์Šคํ„ด์Šค๋Š” ์‹ค์ œ๋กœ ๋ฉ”๋ชจ๋ฆฌ์— ํ• ๋‹น๋˜์–ด ๊ตฌ์ฒด์  ์‹ค์ฒด๋ฅผ ๊ฐ–์ถ˜ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ตฌ์กฐ์ฒด์™€ ํด๋ž˜์Šค ๋ชจ๋‘ ์ƒˆ๋กœ์šด ์ธ์Šคํ„ด์Šค๋ฅผ ์œ„ํ•ด ์ดˆ๊ธฐํ™” ๊ตฌ๋ฌธ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ํ˜•ํƒœ๋Š” ๊ตฌ์กฐ์ฒด๋‚˜ ํด๋ž˜์Šค ์ด๋ฆ„ ๋’ค์— ๋นˆ ์†Œ๊ด„ํ˜ธ๋ฅผ ๋ถ™์—ฌ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ๋˜๋ฉด ๋ชจ๋“  ํ”„๋กœํผํ‹ฐ๊ฐ€ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ์ดˆ๊ธฐํ™”๋˜๋Š” ํด๋ž˜์Šค ๋˜๋Š” ๊ตฌ์กฐ์ฒด์˜ ์ƒˆ๋กœ์šด ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ธ์Šคํ„ด์Šค์˜ ํ”„๋กœํผํ‹ฐ์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•ด ์  ๊ตฌ๋ฌธ(.)์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

var bori = Dog()
var aBird = Bird()

bori.weight	= 0.3
bori.weight			// 0.3
aBird.fly()			// ๋‚ ์•„๊ฐ‘๋‹ˆ๋‹ค.

๊ตฌ์กฐ์ฒด์™€ ํด๋ž˜์Šค์˜ ์ฐจ์ด์ 

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

ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰ํ•˜๊ฒŒ ๋˜๋ฉด OS๋Š” ๋ฉ”๋ชจ๋ฆฌ์— ๊ณต๊ฐ„์„ ํ• ๋‹นํ•ด์ฃผ๋Š”๋ฐ ํ• ๋‹นํ•ด์ฃผ๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์€ Code, Data, Heap, Stack 4๊ฐ€์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

Code ์˜์—ญ์€ ์šฐ๋ฆฌ๊ฐ€ ์ž‘์„ฑํ•œ ์†Œ์Šค์ฝ”๋“œ๊ฐ€ ๊ธฐ๊ณ„์–ด ํ˜•ํƒœ๋กœ ๋“ค์–ด ๊ฐ€๋Š” ๋ถ€๋ถ„์œผ๋กœ CPU๊ฐ€ ์ˆœ์ฐจ์ ์œผ๋กœ ํ•œ์ค„์”ฉ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์ค‘ ์ฝ”๋“œ๊ฐ€ ๋ฐ”๋€Œ๋ฉด ์•ˆ๋˜๋‹ˆ Read-Only๋กœ ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.

Data ์˜์—ญ์€ ์ „์—ญ๋ณ€์ˆ˜๋‚˜ ํƒ€์ž…์†์„ฑ์ด ํ• ๋‹น๋˜๋Š” ์˜์—ญ์œผ๋กœ ํ”„๋กœ๊ทธ๋žจ์˜ ์‹œ์ž‘๊ณผ ๋™์‹œ์— ํ• ๋‹น๋˜๊ณ , ํ”„๋กœ๊ทธ๋žจ์ด ์ข…๋ฃŒ๋˜์–ด์•ผ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์†Œ๋ฉธ๋˜๋Š” ์˜์—ญ์ž…๋‹ˆ๋‹ค.

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

Stack ์˜์—ญ์€ ํ•จ์ˆ˜์˜ ์‹คํ–‰์‹œ ํ•„์š” ๋ฐ์ดํ„ฐ๊ฐ€ ์ƒ์„ฑ๋˜๊ณ  ์‚ฌ์šฉ ์™„๋ฃŒ ํ›„์—๋Š” ์ €์žฅ๋œ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ํ•ด์ œ๋ฉ๋‹ˆ๋‹ค.

Stack vs Heap

์Šคํƒ์˜์—ญ์€ CPU๊ฐ€ ํšจ์œจ์ ์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ตฌ์„ฑํ•˜๊ธฐ์— ์ตœ์ ํ™”๊ฐ€ ๋˜์–ด์žˆ์–ด ์†๋„๊ฐ€ ๋น ๋ฅด๊ณ  ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ง์ ‘ ํ•ด์ œํ•˜์ง€ ์•Š์•„๋„ ๋˜๋Š” ๋ฐ˜๋ฉด ํž™ ์˜์—ญ์€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ง์ ‘ ๊ด€๋ฆฌํ•ด์•ผํ•˜๋ฏ€๋กœ ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜์˜ ์œ„ํ—˜์„ฑ์ด ์žˆ๊ณ  ํ• ๋‹น/ํ•ด์ œ ์ž‘์—…์œผ๋กœ ์ธํ•ด ์†๋„๊ฐ€ ์Šคํƒ์— ๋น„ํ•ด ๋А๋ฆฝ๋‹ˆ๋‹ค. ๋˜ ์Šคํƒ์˜์—ญ์€ ๋ฉ”๋ชจ๋ฆฌ ํฌ๊ธฐ์— ๋Œ€ํ•œ ์ œํ•œ์ด ์žˆ์ง€๋งŒ ํž™ ์˜์—ญ์€ ์ปดํ“จํ„ฐ์— ๋‚จ์•„์žˆ๋Š” ๋ฉ”๋ชจ๋ฆฌ ๋‚ด์—์„œ๋Š” ๋ฉ”๋ชจ๋ฆฌ ํฌ๊ธฐ์— ๋Œ€ํ•œ ์ œํ•œ์ด ์—†์Šต๋‹ˆ๋‹ค.


Swift์˜ Type์€ ํฌ๊ฒŒ Value Type(๊ฐ’ ํƒ€์ž…)๊ณผ Reference Type(์ฐธ์กฐ ํƒ€์ž…)์œผ๋กœ ๋‚˜๋‰ฉ๋‹ˆ๋‹ค. ๊ฐ’ ํƒ€์ž…์€ ๋ณ€์ˆ˜ ๋˜๋Š” ์ƒ์ˆ˜์— ํ• ๋‹น๋  ๋•Œ๋‚˜ ํ•จ์ˆ˜๋กœ ์ „๋‹ฌ๋  ๋•Œ ๋ณต์‚ฌ ๋˜๋Š” ๊ฐ’์ธ ํƒ€์ž…์ด๊ณ  ์ฐธ์กฐ ํƒ€์ž…์€ ๋ณต์‚ฌ๋ณธ ๋Œ€์‹ ์— ์กด์žฌํ•˜๋Š” ๊ฐ™์€ ์ธ์Šคํ„ด์Šค์— ๋Œ€ํ•œ ์ฐธ์กฐ๊ฐ€ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

๊ตฌ์กฐ์ฒด๋Š” Value Type(๊ฐ’ ํƒ€์ž…), ํด๋ž˜์Šค๋Š” Reference Type(์ฐธ์กฐ ํƒ€์ž…)์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ๋ฉ”๋ชจ๋ฆฌ ๊ตฌ์กฐ ๊ด€๋ จํ•ด์„œ ์–˜๊ธฐ๋ฅผ ํ•ด๋ณด๋ฉด ๊ฐ’ ํƒ€์ž…์ธ ๊ตฌ์กฐ์ฒด์˜ ์ธ์Šคํ„ด์Šค(๊ทธ ์ค‘ ํ”„๋กœํผํ‹ฐ. ๋ฉ”์„œ๋“œ๋Š” ๋ฐ์ดํ„ฐ ์˜์—ญ์— ์ €์žฅ๋œ๋‹ค.)๋Š” Stack ์˜์—ญ์— ๋ฐ์ดํ„ฐ๋ฅผ ๋ณต์‚ฌํ•ด์„œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹นํ•˜๊ณ , ์ฐธ์กฐ ํƒ€์ž…์ธ ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค๋Š” Heap ์˜์—ญ์— ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹นํ•˜๊ณ  ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰ํ•˜๊ฒŒ ๋˜๋ฉด Heap์˜ ์ฃผ์†Œ๋ฅผ ์ „๋‹ฌํ•ด์ค๋‹ˆ๋‹ค. ๊ตฌ์กฐ์ฒด๋‚˜ ํด๋ž˜์Šค ์ž์ฒด๋Š” ๋ฐ์ดํ„ฐ ์˜์—ญ์— ์ €์žฅ๋ผ์š”.

Value Type ๊ฐ’ -> Stack์— ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น Reference Type ๊ฐ’ -> Heap์— ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น

์ถ”๊ฐ€) Value Type์ด Heap์—, Reference Type ์ด Stack์— ์ €์žฅ๋˜๋Š” ์ƒํ™ฉ๋„ ์žˆ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ฐธ๊ณ 

class Person {
    var name = "์‚ฌ๋žŒ"
}



struct Animal {
    var name = "๋™๋ฌผ"
}




var p = Person()    // x1234  <- Heap์˜ ์ฃผ์†Œ๋ฅผ ๊ฐ€๋ฆฌํ‚ด
p.name              // ์‚ฌ๋žŒ

var a = Animal()
a.name              // ๋™๋ฌผ



var p2 = p       // (ํด๋ž˜์Šค)     // x1234 <- ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๊ฐ€ ๋ณต์‚ฌ๋˜์„œ ๋‹ด๊น€


p.name = "ํ˜œ๋ฆฌ"

p.name          // ํ•ด๋ฆฌ
p2.name         // ํ•ด๋ฆฌ
    




var a2 = a       // (๊ตฌ์กฐ์ฒด)
a.name = "๊ฐ•์•„์ง€"

a.name          // ๊ฐ•์•„์ง€
a2.name         // ๋™๋ฌผ

์ด๋Ÿฐ ์ฐจ์ด๊ฐ€ ์ธ์Šคํ„ด์Šค ์„ ์–ธ์‹œ ์ƒ์ˆ˜(let)๋‚˜ ๋ณ€์ˆ˜(var)๋กœ ์ƒ์„ฑํ•  ๋•Œ์—๋„ ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค.

  • ์ธ์Šคํ„ด์Šค ์ƒ์ˆ˜(let)์œผ๋กœ ์„ ์–ธ์‹œ ๊ตฌ์กฐ์ฒด -> ์ €์žฅ ์†์„ฑ์ด ์ „๋ถ€ ์ƒ์ˆ˜๋กœ ์„ ์–ธ๋จ ํด๋ž˜์Šค -> ๊ฐ€๋ฅดํ‚ค๋Š” ์ธ์Šคํ„ด์Šค ๊ณ ์ •(์ €์žฅ ์†์„ฑ์€ ๊ฐ let/var ์„ ์–ธ์— ๋”ฐ๋ฆ„)
  • ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜(var)๋กœ ์„ ์–ธ์‹œ์—๋Š” ๊ตฌ์กฐ์ฒด๋„ ์ €์žฅ ์†์„ฑ์˜ ๊ฐ let/var ์„ ์–ธ์— ๋”ฐ๋ฅธ๋‹ค.

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

์–ธ์ œ ๊ตฌ์กฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์–ธ์ œ ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋‚˜!

  • ์—ฐ๊ด€๋œ ๋ฐ์ดํ„ฐ๋“ค์„ ๋‹จ์ˆœํžˆ ๋ฌถ๋Š” ๊ฒƒ์ด ๋ชฉ์ ์ผ ๋•Œ๋Š” ๊ตฌ์กฐ์ฒด๊ฐ€ ๋‚ซ์Šต๋‹ˆ๋‹ค.

  • ๊ตฌ์กฐ์ฒด์— ์ €์žฅ๋œ ์ €์žฅ ์†์„ฑ๋“ค์ด ๊ฐ’ ํƒ€์ž…์ด๋ฉฐ ์ฐธ์กฐํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ๋ณต์‚ฌํ•˜๋Š” ๊ฒƒ์ด ํ•ฉ๋‹นํ•  ๋•Œ ๊ตฌ์กฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

  • ํ•ด๋‹น ๋ชจ๋ธ์„ serializeํ•ด์„œ ์ „์†กํ•˜๊ฑฐ๋‚˜ ํŒŒ์ผ๋กœ ์ €์žฅํ•  ๊ฒฝ์šฐ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

  • Objectice-C์™€ ์ƒํ˜ธ ์šด์šฉ์„ฑ์„ ์›ํ•  ๋•Œ๋Š” ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

    • Objective-C์—์„œ ์ง€์›ํ•˜๋Š” API๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•  ๋•Œ๋Š” Objective-C์˜ ํด๋ž˜์Šค๋ฅผ ์ƒ์†๋ฐ›์•„ ์‚ฌ์šฉํ•ด์•ผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฐ ๊ฒฝ์šฐ์—๋Š” ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ๊ณ ์œ ํ•œ ๊ฐ’์„ ์ œ์–ดํ•ด์•ผ ํ•  ๋•Œ๋Š” ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”.

    • ํด๋ž˜์Šค๋Š” ์ฐธ์กฐ ํƒ€์ž…์ด๊ธฐ ๋•Œ๋ฌธ์— ์Šค์œ„ํ”„ํŠธ์—์„œ ๊ณ ์œ ํ•œ ๊ฐ’์œผ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ฐธ์กฐ ํƒ€์ž…์„ ์‚ฌ์šฉํ•˜๋ฉด ์•ฑ์˜ ์—ฌ๋Ÿฌ ๊ณณ์—์„œ ์‚ฌ์šฉํ•˜๋”๋ผ๋„ ํ•œ ์˜์—ญ์—์„œ ์ ์šฉํ•œ ์ˆ˜์ •์ด ๋‹ค๋ฅธ ์˜์—ญ์—์„œ๋„ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ฃผ๋กœ ํŒŒ์ผ ๊ด€๋ฆฌ๋‚˜ ๋„คํŠธ์›Œํฌ ์—ฐ๊ฒฐ๊ณผ ๊ฐ™์€ ์ž‘์—…์„ ๋‹ค๋ฃฐ ๋•Œ ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

[์ฐธ๊ณ ]