์ƒˆ์†Œ์‹

๐Ÿ“ฑ iOS/-- UIKit

(iOS) ํ™”๋ฉด ์ „ํ™˜ ๊ณผ์ •์—์„œ์˜ ๋ฐ์ดํ„ฐ ์ „๋‹ฌ , ViewController ๊ฐ„์˜ ๋ฐ์ดํ„ฐ ์ „๋‹ฌ

  • -

๋ชฉ์ฐจ

 

ํ™”๋ฉด ์ „ํ™˜ ๊ณผ์ •์—์„œ์˜ ๋ฐ์ดํ„ฐ ์ „๋‹ฌ ๋ฐฉ์‹

 

ํ™”๋ฉด์ด ์ „ํ™˜๋˜๋”๋ผ๋„ ๊ณ„์†ํ•ด์„œ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋Ÿฌํ•œ ๊ฒฝ์šฐ์— ํ™”๋ฉด๊ฐ„์— ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜๋Š” ๋ฐฉ์‹์—๋Š” ํฌ๊ฒŒ ๋‘๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค.

  1. VIewController์— ๊ฐ’์„ ์ง์ ‘ ์ „๋‹ฌํ•˜๋Š” ๋ฐฉ์‹ (๋™๊ธฐ ๋ฐฉ์‹)

์ง€์†์ ์œผ๋กœ ๊ฐ’์„ ์ €์žฅํ•  ํ•„์š”๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ์— ์‚ฌ์šฉ๋˜๋Š” ๋ฐฉ์‹์ด๋‹ค. ์ฆ‰, ์ผํšŒ์„ฑ์œผ๋กœ ์‚ฌ์šฉ๋  ๊ฒฝ์šฐ์— ์‚ฌ์šฉ๋˜๋Š” ๋ฐฉ์‹์ด๋ฉฐ, ์ €์žฅ์†Œ๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ฐ’์„ ์ „๋‹ฌํ• ๋•Œ ๋ณด๋‹ค ์ฝ”๋“œ๊ฐ€ ๊ฐ„๊ฒฐํ•ด์ง„๋‹ค.

  1. ๊ณตํ†ต์˜ ์ €์žฅ์†Œ๋ฅผ ๋‘๊ณ , ๊ฐ’์„ ๊ณต์œ ํ•˜๋Š” ๋ฐฉ์‹ (๋น„๋™๊ธฐ ๋ฐฉ์‹)

์ง€์†์ ์œผ๋กœ ๊ฐ’์„ ์ €์žฅํ•  ํ•„์š”๊ฐ€ ์žˆ์„๋•Œ ์‚ฌ์šฉ๋˜๋Š” ๋ฐฉ์‹์ด๋‹ค. ์ €์žฅ์†Œ๋Š” UserDefault ,DB, CoreData๋ฅผ ์ด์šฉํ•œ๋‹ค. ํ™”๋ฉด ์ „ํ™˜๊ณผ ๋ฐ์ดํ„ฐ์˜ ์ „๋‹ฌ์ด ๋”ฐ๋กœ ์ด๋ฃจ์–ด์ง€๊ธฐ ๋•Œ๋ฌธ์— ๋น„๋™๊ธฐ ๋ฐฉ์‹์ด๋ผ๊ณ  ๋งํ•œ๋‹ค.

 

1. ViewController์— ์ง์ ‘ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜๋Š” ๋ฐฉ์‹ (๋™๊ธฐ ๋ฐฉ์‹)

* ๋™์ž‘์ˆœ์„œ

  1. BeforeVC์—์„œ AfterVC๋กœ ์ „๋‹ฌํ•  ๊ฐ’์„ ์ค€๋น„ํ•œ๋‹ค.
    • ex) ํ…์ŠคํŠธ ํ•„๋“œ๋กœ ์ž…๋ ฅ๋ฐ›๊ธฐ, DatePicker๋กœ Date๊ฐ’ ๋ฐ›๊ธฐ...
  2. AfterVC์—์„œ ๊ฐ’์„ ๋Œ€์ž…๋ฐ›์„ ํ”„๋กœํผํ‹ฐ๋ฅผ ์ •์˜ํ•œ๋‹ค.
    • ๋ฐ›์•„์˜ฌ ๊ฐ’์˜ ํƒ€์ž…๊ณผ ๊ฐ™์€ ํ”„๋กœํผํ‹ฐ ์ •์˜ํ•˜๊ธฐ, ๊ฐ’์ด ๋งŽ๊ณ  ํƒ€์ž…์ด ๋‹ค์–‘ํ• ๋•Œ๋Š”NSMutableDictionary๋ฅผ ํ†ตํ•˜๋ฉด ํŽธ๋ฆฌํ•˜๋‹ค.
  3. BeforeVC์—์„œ AfterVC์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ์ง์ ‘ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ์ด๋ฏธ ์ƒ์„ฑ๋œ ์ธ์Šคํ„ด์Šค์˜ ์ฐธ์กฐ๋ฅผ ์ฝ์–ด์˜จ๋‹ค.
    • ํ”„๋ ˆ์  ํ…Œ์ด์…˜ ๋ฐฉ์‹์ผ ๊ฒฝ์šฐ์—๋Š” self.storyboard?.instantiateViewController(withIdentifier:์Šคํ† ๋ฆฌ๋ณด๋“œID>)๋ฉ”์„œ๋“œ ์‚ฌ์šฉ.
    • ์„ธ๊ทธ์›จ์ด ๋ฐฉ์‹์ผ ๊ฒฝ์šฐ์—๋Š” ์ž๋™์œผ๋กœ ๋ชฉ์ ์ง€์˜ ์ธ์Šคํ„ด์Šค๊ฐ€ ์ƒ์„ฑ๋˜๋ฏ€๋กœ.destination์†์„ฑ๋งŒ ์‚ฌ์šฉํ•ด์ฃผ๋ฉด ๋œ๋‹ค.
  4. BeforeVC์—์„œ๋Š” AfterVC์˜ ํ”„๋กœํผํ‹ฐ์— ๊ฐ’์„ ๋Œ€์ž…ํ•œ๋‹ค.
  5. ํ™”๋ฉด์ „ํ™˜ํ•œ๋‹ค.

 

1-(1) : ํ”„๋ ˆ์  ํ…Œ์ด์…˜ ๋ฐฉ์‹์—์„œ ๋‹ค์Œ ํ™”๋ฉด์œผ๋กœ ๋ฐ์ดํ„ฐ ์ „๋‹ฌ ๋ฐฉ์‹

BeforeVC (์ดˆ๋ก์ƒ‰) , AfterVC(๋ณด๋ผ์ƒ‰)์„ ๊ตฌ์„ฑํ•ด์ฃผ๊ณ , ์œ„์—์„œ ๋งํ•œ 1~5๋ฒˆ์„ ํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

class BeforeVC: UIViewController {

    @IBOutlet weak var textField: UITextField!

    @IBAction func submit(_ sender: Any) {
        guard let AfterVCInstance = self.storyboard?.instantiateViewController(withIdentifier: "AfterVC") as? AfterVC  else{ return }

        AfterVCInstance.labelText = textField.text!
        present(AfterVCInstance, animated: true)

    }
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
    }
}

๋‹ค์Œํ™”๋ฉด์— ๋Œ€ํ•œ ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•˜๋ฉด UIViewController ํด๋ž˜์Šค์ด๋‹ค. ๋”ฐ๋ผ์„œ ์ƒ์„ฑํ•œ ์ธ์Šคํ„ด์Šค๋ฅผ asํ‚ค์›Œ๋“œ๋ฅผ ํ†ตํ•˜์—ฌ AfterVC๋กœ ๋‹ค์šด์บ์ŠคํŒ…์„ ํ•ด์ค˜์•ผ AfterVC์˜ ํ”„๋กœํผํ‹ฐ์— ๊ฐ’์„ ๋Œ€์ž… ํ•  ์ˆ˜ ์žˆ๋‹ค.

class AfterVC: UIViewController {
    var labelText : String = ""

    @IBOutlet weak var label: UILabel!
    override func viewDidLoad() {
        super.viewDidLoad()
        label.text = labelText
        // Do any additional setup after loading the view.
    }
}

 

1-(2) : ๋„ค๋น„๊ฒŒ์ด์…˜ ์ปจํŠธ๋กค๋Ÿฌ์—์„œ์˜ ๋‹ค์Œ ํ™”๋ฉด์œผ๋กœ ๋ฐ์ดํ„ฐ ์ „๋‹ฌ ๋ฐฉ์‹

๊ธฐ๋ณธ์ ์œผ๋กœ 1-(1) ํ”„๋ ˆ์  ํ…Œ์ด์…˜๋ฐฉ์‹๊ณผ ๊ฑฐ์˜ ์œ ์‚ฌํ•˜๋‹ค. ํ•˜์ง€๋งŒ ๋„ค๋น„๊ฒŒ์ด์…˜ ์ปจํŠธ๋กค๋Ÿฌ์—์„œ์˜ ํ™”๋ฉด์ด๋™์€ pushViewController, popViewController๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด ๋ถ€๋ถ„์— ๋Œ€ํ•œ ์ˆ˜์ •์ด ํ•„์š”ํ•˜๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๋‹ค์Œ ํ™”๋ฉด์œผ๋กœ ๋„˜์–ด๊ฐ€๋Š” ๋ฒ„ํŠผ ๋˜ํ•œ ์ƒ๋‹จ ๋„ค๋น„๊ฒŒ์ด์…˜๋ฐ”๋กœ ์ด๋™์‹œ์ผœ์ฃผ์–ด์•ผ ํ•œ๋‹ค.

 

1-(3) : ์„ธ๊ทธ์›จ์ด์—์„œ ๋‹ค์Œ ํ™”๋ฉด์œผ๋กœ ๋ฐ์ดํ„ฐ ์ „๋‹ฌ ๋ฐฉ์‹

์„ธ๊ทธ์›จ์ด๋กœ ํ™”๋ฉด์ „ํ™˜ํ•˜๋Š” ๋ฐฉ์‹์€ 2๊ฐ€์ง€์ด๋‹ค. ๋ฉ”๋‰ด์–ผ ์„ธ๊ทธ์›จ์ด(์ฝ”๋“œ๋กœ ์ž‘์„ฑํ•˜๋Š” ๋ฐฉ์‹) , ๊ทธ๋ฆฌ๊ณ  ์•ก์…˜ ์„ธ๊ทธ์›จ์ด(Ctrl + ๋“œ๋ž˜๊ทธ ์—ฐ๊ฒฐ). ๋‘๊ฐ€์ง€ ๊ฒฝ์šฐ์˜ ์„ธ๊ทธ์›จ์ด์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ• ๋•Œ์˜ ๋ฐฉ์‹์€ ์ผ์น˜ํ•œ๋‹ค. ๋ฉ”๋‰ด์–ผ ์„ธ๊ทธ์›จ์ด๋Š” self.performSegue(withIdenfier:<์Šคํ† ๋ฆฌ๋ณด๋“œID>, sender:self) ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ํ•˜์ง€๋งŒ ๊ฐ’์„ ์ „๋‹ฌํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ๋„ฃ์„ ๋ถ€๋ถ„์€ ์ „์ฒ˜๋ฆฌ ๋ฉ”์†Œ๋“œ์ธ prepare ํ•จ์ˆ˜ ๋‚ด๋ถ€์— ๋„ฃ์–ด์ฃผ๋ฉด ๋œ๋‹ค.

*๋‹ค๋งŒ NavigationController๋ฅผ imbedํ•œ Segue๋Š” prepare์ด ๋˜์ง€ ์•Š๋Š”๋‹ค. *

๋‹ค์Œ ํ™”๋ฉด์˜ ViewController์— ๋Œ€ํ•œ ์ธ์Šคํ„ด์Šค๋Š” ์ž๋™์œผ๋กœ ์ƒ์„ฑ๋œ๋‹ค. segue์˜ ์†์„ฑ์ธ destination๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.

๋ฌผ๋ก  ๋‹ค์Œํ™”๋ฉด์ธ afterVC ํด๋ž˜์Šค ๋‚ด๋ถ€์—๋Š” ๊ฐ’์„ ๋ฐ›์•„์˜ฌ ํ”„๋กœํผํ‹ฐ๊ฐ€ ์ •์˜๋˜์–ด์žˆ์–ด์•ผ ํ•œ๋‹ค. (์•„๋ž˜ ์ฝ”๋“œ์—์„œ๋Š” pramText๊ฐ€ afterVC Class๋‚ด๋ถ€์— ์ •์˜๋˜์–ด์žˆ์–ด์•ผํ•œ๋‹ค.)

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
       let destVC = segue.destination
       guard let afterVC = destVC as? AfterVC else { return }
       dest.pramText = "์ „๋‹ฌํ•  ๊ฐ’"
    }

 

 

 


 

 

2. ์ด์ „ ํ™”๋ฉด์œผ๋กœ ๊ฐ’์„ ์ „๋‹ฌํ•˜๊ธฐ

 

2-(1) : ์ง์ ‘ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜๋Š” ๋ฐฉ์‹

์œ— ๋‚ด์šฉ์€ BeforeVC์—์„œ AfterVC๋กœ์˜ ๊ฐ’ ์ „๋‹ฌ๋ฐฉ์‹์ด์—ˆ๋‹ค. ํ•˜์ง€๋งŒ AfterVC์—์„œ BeforeVC๋กœ ๊ฐ’์„ ์ „๋‹ฌํ•˜๋Š”๊ฒƒ์€ ์•ฝ๊ฐ„ ๋‹ค๋ฅด๋‹ค.

  1. ํ™”๋ฉด ๋ณต๊ท€ ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์•ผํ•œ๋‹ค. ํ”„๋ ˆ์  ํ…Œ์ด์…˜์ธ ๊ฒฝ์šฐ dismiss , ๋„ค๋น„๊ฒŒ์ด์…˜ ์ปจํŠธ๋กค๋Ÿฌ๋ผ๋ฉด popViewController ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
  2. ์ด์ „ํ™”๋ฉด์˜ ์ธ์Šคํ„ด์Šค๋Š” ์ด๋ฏธ ์กด์žฌํ•œ๋‹ค. (๊ทธ๋ž˜์•ผ ๋‹ค์Œํ™”๋ฉด์œผ๋กœ ๋„˜์–ด ์˜ฌ ์ˆ˜์žˆ์œผ๋‹ˆ) ํ”„๋ ˆ์  ํ…Œ์ด์…˜ ๋ฐฉ์‹์ด๋ผ๋ฉด self.presentingViewController ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค. ๋„ค๋น„๊ฒŒ์ด์…˜ ์ปจํŠธ๋กค๋Ÿฌ๋ผ๋ฉด self.navigationController?.viewControllers ๋ฐฐ์—ด์„ ์‚ฌ์šฉํ•˜๋ฉด๋œ๋‹ค.
  3. ์ด์ „ํ™”๋ฉด์€ ์ด๋ฏธ ํ•œ๋ฒˆ ์ƒ์„ฑ๋œ ์ธ์Šคํ„ด์Šค์ด๋‹ค. ๋”ฐ๋ผ์„œ ๊ฐ’์„ ์—…๋ฐ์ดํŠธ ํ•˜๋Š” ์ฝ”๋“œ๋ฅผ viewDidLoad() ๋ฉ”์†Œ๋“œ์— ๋„ฃ์œผ๋ฉด ์•ˆ๋œ๋‹ค. ๋Œ€์‹  ํ™”๋ฉด์ด ๊ทธ๋ ค์งˆ๋•Œ๋งˆ๋‹ค ๋งค๋ฒˆ ์‹คํ–‰๋˜๋Š” ViewWIllAppear(_:)๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด๋œ๋‹ค.

 

๋”๋ณด๊ธฐ

* <์ด์ „ํ™”๋ฉด : Navigation Controller  / ๋‹ค์Œํ™”๋ฉด : present๋กœ ๋„์šด ํ™”๋ฉด> ์˜ ๊ฒฝ์šฐ์—์„œ ์ด์ „ ํ™”๋ฉด์œผ๋กœ ๊ฐ’ ์ „๋‹ฌํ•˜๋ ค๋ฉด

 

self.presentingViewController ์œผ๋กœ ์ ‘๊ทผํ•˜๊ฒŒ๋˜๋ฉด UINavigationController์ด๋‹ค. ๋”ฐ๋ผ์„œ

self.presentingViewController ๋ฅผ UINavigationController๋กœ ์บ์ŠคํŒ…, ๊ทธ๋ฆฌ๊ณ  ๋‹ค์‹œํ•œ๋ฒˆ .viewControllers[0] ๋ฅผ ํ†ตํ•ด ์ ‘๊ทผํ•˜๋ฉด ๋œ๋‹ค.

 

 

2-(2) : ์ €์žฅ์†Œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜๋Š” ๋ฐฉ์‹

 

AppDelegate ์ด์šฉํ•˜๊ธฐ

  • ์•ฑ์˜ ์ƒ๋ช…์ฃผ๊ธฐ๋ฅผ ์œ„์ž„๋ฐ›์•„ ์ฒ˜๋ฆฌํ•˜๋Š” AppDelegate๋Š” ํ”„๋กœ์ ํŠธ ๋‚ด๋ถ€์— ํ•˜๋‚˜๋งŒ ์กด์žฌํ•˜๋ฉฐ, ์—ฌ๋Ÿฌ ๋ทฐ ์ปจํŠธ๋กค๋Ÿฌ์—์„œ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
  • ๋‹ค๋งŒ ์•ฑ์˜ ์‹œ์ž‘๊ณผ ์ข…๋ฃŒ๊นŒ์ง€๋งŒ ๋ฐ์ดํ„ฐ๊ฐ€ ์œ ํšจํ•˜๋‹ค. (๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅ๋˜๋ฏ€๋กœ)
  • AppDelegate๋Š” iOS์‹œ์Šคํ…œ์—์„œ ํ•˜๋‚˜์˜ ์ธ์Šคํ„ด์Šค๋งŒ ์กด์žฌํ•˜๋„๋ก ๋ณด์žฅ๋œ๋‹ค(์‹ฑ๊ธ€ํ†ค) . ๋”ฐ๋ผ์„œ ์ง์ ‘ ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ• ์ˆ˜ ์—†๊ณ , UIApplication.shared.delegate๋ฅผ ํ†ตํ•ด ํ˜„์žฌ ์ƒ์„ฑ๋œ ์ธ์Šคํ„ด์Šค๋ฅผ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  AppDelegate๋กœ ๋‹ค์šด์บ์ŠคํŒ…์„ ํ•ด์ค˜์•ผ ์ง์ ‘ ์ •์˜ํ•œ ํ”„๋กœํผํ‹ฐ์— ์ฐธ์กฐ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.
  1. AppDelegate ํŒŒ์ผ์— ์›ํ•˜๋Š” ํ”„๋กœํผํ‹ฐ๋ฅผ ์ •์˜ํ•œ๋‹ค.
  2. ์‹ค์ œ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃฐ ViewController์—์„œ ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.
    • let ad = UIApplication.shared.delegate as? AppDelegate

 

UserDefault ์ด์šฉํ•˜๊ธฐ

  • ๋ฐ˜์˜๊ตฌ์ ์ด๋‹ค. (์•ฑ์„ ์‚ญ์ œํ•˜๊ธฐ ์ „๊นŒ์ง€ ์œ ์ง€๋œ๋‹ค)
  • ์ฃผ๋กœ ๊ฐ„๋‹จํ•œ ์„ค์ • ์ •๋ณด๋“ฑ์„ ์ €์žฅํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋œ๋‹ค.
  • appDelegate์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋‹จ์ผ๊ฐ์ฒด์ด๋‹ค.
  • ํด๋ž˜์Šค ํ”„๋กœํผํ‹ฐ์ด๋ฏ€๋กœ ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•˜์ง€ ์•Š๊ณ  ์‚ฌ์šฉ๊ฐ€๋Šฅํ•˜๋‹ค.
  • ๋‚ด๋ถ€์ ์œผ๋กœ plist์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๊ตฌ์กฐ์ด๋‹ค. ๋”ฐ๋ผ์„œ ๋ณด์•ˆ์ƒ ๊ฐ•๋ ฅํ•˜์ง€ ์•Š๋‹ค.
let ud = UserDefaults.standard // UserDefault ๊ฐ์ฒด ์ธ์Šคํ„ด์Šค๋ฅผ ๊ฐ€์ ธ์˜จ๋‹ค.
ud.set("kim", forKey: "name") // "name"์ด๋ผ๋Š” key๋กœ "kim"์„ ์ €์žฅํ•œ๋‹ค.
let name = ud.value(forKey: "name") as? String // "name"key๋ฅผ ํ†ตํ•ด ๊ฐ’์— ์ ‘๊ทผํ•œ๋‹ค.
ud.string(forKey:) // string๋งŒ ์˜ต์…”๋„๋กœ ๋ฐ˜ํ™˜๋œ๋‹ค.
ud.bool(forKey:)
ud.double(forKey:)
ud.object(forKey:) // anyํƒ€์ž…์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
ud.value(forKey:) // anyํƒ€์ž…์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
.
.
.
๋กœ ๊ฐ’์„ ์›ํ•˜๋Š” ํƒ€์ž…์œผ๋กœ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ๋„ ์žˆ๋‹ค.
Contents

ํฌ์ŠคํŒ… ์ฃผ์†Œ๋ฅผ ๋ณต์‚ฌํ–ˆ์Šต๋‹ˆ๋‹ค

์ด ๊ธ€์ด ๋„์›€์ด ๋˜์—ˆ๋‹ค๋ฉด ๊ณต๊ฐ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค.