iOS
iOS
[Swift/iOS] ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ(Functional Programming)
1. ์ •์˜๋ถ€์ž‘์šฉ์„ ์ตœ์†Œํ™”ํ•˜๊ณ , ๋ถˆ๋ณ€์„ฑ๊ณผ ์ˆœ์ˆ˜ ํ•จ์ˆ˜๋ฅผ ๊ฐ•์กฐํ•˜๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํŒจ๋Ÿฌ๋‹ค์ž„.cf. ์‚ฌ์ด๋“œ ์ดํŽ™ํŠธ(๋ถ€์ž‘์šฉ, ๋ถ€์ˆ˜ ํšจ๊ณผ): ์–ด๋–ค ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ–ˆ์„ ๋•Œ, ๊ทธ ํ•จ์ˆ˜์˜ ๋ฐ˜ํ™˜๊ฐ’ ์ด์™ธ์— ํ˜ธ์ถœ๋œ ํ•จ์ˆ˜ ๋ฐ–์—์„œ ํ”„๋กœ๊ทธ๋žจ์˜ ์ƒํƒœ ๋ณ€ํ™”๊ฐ€ ๋ฐœ์ƒํ•  ๋•Œ. 2. ํŠน์ง•(1) ์ˆœ์ˆ˜ ํ•จ์ˆ˜๋™์ผํ•œ ์ž…๋ ฅ์— ๋Œ€ํ•ด ํ•ญ์ƒ ๋™์ผํ•œ ์ถœ๋ ฅ์„ ๋ฐ˜ํ™˜ํ•˜๋ฉฐ, ์™ธ๋ถ€ ์ƒํƒœ๋ฅผ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๋Š” ํ•จ์ˆ˜.ํ•จ์ˆ˜ ์™ธ๋ถ€์˜ ๊ฐ’์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•„์„œ ๋ถ€์ž‘์šฉ์ด ์—†๋‹ค.์™ธ๋ถ€ ๋ณ€์ˆ˜๋‚˜ ์ƒํƒœ์— ์˜์กดํ•˜์ง€ ์•Š๋Š”๋‹ค.ํ…Œ์ŠคํŒ…ํ•˜๊ธฐ ์ข‹๋‹ค. ๊ฒฐ๊ณผ๊ฐ€ ์˜ค์ง ๋งค๊ฐœ๋ณ€์ˆ˜์—๋งŒ ์˜์กดํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์งœ๊ธฐ ์‰ฝ๋‹ค.๊ณตํ†ต์ ์œผ๋กœ ์ ‘๊ทผํ•ด์•ผ ํ•˜๋Š” ์ƒํƒœ๊ฐ€ ์—†๊ธฐ์—, parallelํ•˜๊ฒŒ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ์€ ๋‹จ์ˆœํžˆ ์‚ฌ์ด๋“œ ์ดํŽ™ํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ๋ง์ž๊ฐ€ ์•„๋‹ˆ๋ผ, ์ž˜ ๊ด€๋ฆฌํ•ด์„œ ์ฝ”๋“œ๋ฅผ ํ…Œ์ŠคํŠธํ•˜๊ธฐ ์ข‹์€ ๊ตฌ์กฐ๋กœ ๋งŒ๋“ค์ž..
user-img
iOS
[iOS] View Drawing Cycle
1. UIViewAn object that manages the content for a rectangular area on the screen. ํ™”๋ฉด์˜ ์ง์‚ฌ๊ฐํ˜• ์˜์—ญ์— ๋Œ€ํ•œ ์ฝ˜ํ…์ธ ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๊ฐ์ฒด.๋ทฐ๋Š” ์•ฑ์˜ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค์˜ ๊ธฐ๋ณธ ๊ตฌ์„ฑ ์š”์†Œ์ด๋‹ค.UIView ํด๋ž˜์Šค๋Š” ๋ชจ๋“  ๋ทฐ์— ๋Œ€ํ•ด ๊ณตํ†ต์ ์ธ ํ–‰๋™์„ ์ •์˜ํ•œ๋‹ค. ๋ทฐ ๊ฐ์ฒด๋Š” bounds ์ง์‚ฌ๊ฐํ˜• ์•ˆ์˜ ์ฝ˜ํ…์ธ ๋ฅผ ๋žœ๋”๋งํ•˜๊ณ , ์ฝ˜ํ…์ธ ์™€์˜ ๋ชจ๋“  ์ธํ„ฐ๋ ‰์…˜์„ ์ฒ˜๋ฆฌํ•œ๋‹ค. ๋˜ํ•œ ๊ตฌ์ฒด์ ์ธ ํด๋ž˜์Šค๋กœ, ๊ณ ์ •์ ์ธ ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์ƒ‰์ƒ์„ ๋ณด์—ฌ์ฃผ๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๊ณ  ์ธ์Šคํ„ด์Šคํ™” ํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ณด๋‹ค ์ •๊ตํ•œ ์ฝ˜ํ…์ธ ๋ฅผ ๊ทธ๋ฆฌ๊ธฐ ์œ„ํ•ด ์„œ๋ธŒ ํด๋ž˜์Šคํ™”ํ•  ์ˆ˜๋„ ์žˆ๋‹ค.๋ผ๋ฒจ, ์ด๋ฏธ์ง€, ๋ฒ„ํŠผ, ๋‹ค๋ฅธ ์ธํ„ฐํŽ˜์ด์Šค ์š”์†Œ๋“ค์„ ๋ณด์—ฌ์ฃผ๊ธฐ ์œ„ํ•ด, UIKit ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๋ทฐ ์„œ๋ธŒ ํด๋ž˜์Šค๋“ค์„ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.Dr..
user-img