์˜ˆ์‹œ ์ฝ”๋“œ

struct ContentView: View {
    @State private var count = 0
    @State private var isOne = false
    
    var body: some View {
        VStack {
            Button("๋ฒ„ํŠผ ๋ˆŒ๋ฆฐ ํšŸ์ˆ˜ \(count)") {
                self.count += 1
            }
            Toggle(isOn: $isOne) {
                Text("ํ† ๊ธ€ ์ƒํƒœ \(isOne ? "on" : "off")")
            }
        }
    }
}

SwiftUI์—์„œ View ๋‹จ์œ„์˜ ๊ฐ„๋‹จํ•œ ๊ฐ’์„ State๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๊ด€๋ฆฌํ•˜๋Š”๋ฐ ์ด๋•Œ Button์€ State์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•ด self๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  Toggle์€ ๋‹ฌ๋Ÿฌ ์‚ฌ์ธ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ์•Œ์ˆ˜ ์žˆ๋‹ค. 

์‚ฌ์‹ค ๊ฐ๊ฐ ํ”„๋กœํผํ‹ฐ์— ์ ‘๊ทผํ•  ๋•Œ ์—ญํ• ๊ณผ ์œ„์น˜๊ฐ€ ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

 

State์˜ ๊ฐ’์ด ๋ณ€๊ฒฝ๋˜๋ฉด ์ด ๊ฐ’๊ณผ ๊ด€๋ จ์žˆ๋Š” ๋ทฐ๋ฅผ ๋‹ค์‹œ ๊ทธ๋ฆฌ๊ฒŒ ๋œ๋‹ค. ์ด๋•Œ ์ด State์˜ ๊ฐ’์„ ๋ฐ˜์˜ํ•˜์—ฌ View๊ฐ€ ํ™”๋ฉด์— ๊ฐฑ์‹ ๋œ๋‹ค. dollar sign(๋‹ฌ๋Ÿฌ ์‚ฌ์ธ : ์ดํ•˜ $) ๋Š” ์†์„ฑ์˜ ๊ฐ’์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๊ณ  ์ด๋ฅผ "ํ”„๋กœ์ ์…˜"์ด๋ผ๊ณ  ํ•œ๋‹ค.

Toggle์„ ๋ณด๋ฉด isOn ์ธ์ž๋กœ Binding์„ ์ „๋‹ฌํ•ด์•ผ ํ•จ์„ ์•Œ ์ˆ˜ ์žˆ๋Š”๋ฐ $๊ธฐํ˜ธ๋ฅผ ์‚ฌ์šฉํ•ด์„œ State ๊ฐ’์— ์ ‘๊ทผํ•˜๊ฒŒ ๋˜๋ฉด SwiftUI๋Š” Binding ํƒ€์ž…์„ ๋ฐ˜ํ™˜ํ•˜๊ฒŒ ๋œ๋‹ค. 

Binding์€ ๊ฐ’์˜ ์ €์žฅ์†Œ๋ฅผ ์ฐธ์กฐํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ’์„ ์ฝ๋Š” ๊ฒƒ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋ฐ”๊พธ๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค. ๋”ฐ๋ผ์„œ Toggle์˜ isOn์—๋Š” State๋ฅผ ๋‹ฌ๋Ÿฌ์‚ฌ์ธ์œผ๋กœ ์ „๋‹ฌํ•˜๊ฒŒ ๋œ๋‹ค.

 

Button์„ ๋ณด๋ฉด action ์ธ์ž๋Š” ํด๋กœ์ ธ๋กœ ์ „๋‹ฌ๋œ๋‹ค. ์ฆ‰ Binding์ด ํ•„์š”ํ•œ ๊ฒƒ์ด ์•„๋‹Œ action ํด๋กœ์ ธ๋ฅผ ์ „๋‹ฌํ•˜๋Š” ๊ฒƒ์ด๋‹ค. 

์ด๋•Œ ํด๋กœ์ ธ๋Š” View์˜ body์™€๋Š” ๋ณ„๋„์˜ Context์—์„œ ์‹คํ–‰๋œ๋‹ค. ๋™์ผํ•œ Context๊ฐ€ ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์— State๋Š” Binding์„ ์ƒ์„ฑํ•˜์ง€ ์•Š๋Š”๋‹ค. 

์ด๋Ÿฐ ๊ฒฝ์šฐ State ๋ณ€์ˆ˜์— ์ง์ ‘ ์ ‘๊ทผํ•˜์—ฌ ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜๊ฒŒ ๋˜๊ธฐ ๋•Œ๋ฌธ์— self๋กœ ์ ‘๊ทผํ•œ๋‹ค. 

 

์‚ฌ์‹ค ์ด๊ฑฐ ChatGPT์—์„œ ์•Œ๋ ค์คซ์–ด์š” ๐Ÿ˜ ์ž˜ ์“ฐ๋ฉด ๊ณต๋ถ€๋ž‘ ์ฝ”๋”ฉํ•˜๋Š”๋ฐ ์—„์ฒญ ๋„์›€์ด ๋ ๋“ฏ ํ•ฉ๋‹ˆ๋‹ค.

(๊ทธ๋ƒฅ ํ˜ผ์ž๋งŒ ์ฝ๊ณ  ๋„˜์–ด๊ฐ€๋ ค๋‹ค๊ฐ€ ChatGPT ์„ฑ๋Šฅ๋ณด๊ณ  ๊ฐํƒ„ํ•ด์„œ -๊ฑฐ์ฆŒ ์• ํ”Œ๋ฌธ์„œ ๊น”๋” ๋ฒˆ์—ญ- ์ •๋ฆฌํ•ด์„œ ๋ธ”๋กœ๊ทธ์— ๋‹ค์‹œ ์ ์Œ)

์‹ฌ๊ฐํ•œ ๋ฌธ์ œ ์ค‘ ํ•˜๋‚˜๋Š” ์ถœ์ฒ˜๊ฐ€ ๋ถˆ๋ถ„๋ช…ํ•จ.. ์ถœ์ฒ˜ ํ‘œ๊ธฐ ํ•ด์•ผ ํ•˜๋Š”๋ฐ...๋ฌธ์ œ์‹œ ๋Œ“๊ธ€ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค!

 

์ฐธ๊ณ  ์‚ฌ์ดํŠธ 

https://chat.openai.com/chat