๋ชฉ๋กLanguage/Swift (12)

suvera-dev ๐Ÿฅฆ

๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ๊ณผ Swift - ์ ‘๊ทผ์ œ์–ด

์ €๋ฒˆ ํฌ์ŠคํŒ…์—์„œ ๊ตฌ์กฐ์ฒด, ํด๋ž˜์Šค, ํ”„๋กœํผํ‹ฐ, ๋ฉ”์„œ๋“œ์— ๋Œ€ํ•ด ์งš์–ด๋ดค๋Š”๋ฐ์š”. ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” ์ ‘๊ทผ์ œ์–ด์— ๋Œ€ํ•ด ์ •๋ฆฌํ•ด๋ดค์Šต๋‹ˆ๋‹ค. ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํŒจ๋Ÿฌ๋‹ค์ž„์—์„œ ์ค‘์š”ํ•œ ๋‚ด์šฉ ์ค‘์— '์€๋‹‰ํ™”'๋ผ๋Š” ๊ฐœ๋…์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•œ ํ•ต์‹ฌ ๊ธฐ๋Šฅ์ธ ์ ‘๊ทผ์ œ์–ด์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ ‘๊ทผ์ œ์–ด - ์ฝ”๋“œ๋ผ๋ฆฌ ์ƒํ˜ธ์ž‘์šฉ์„ ํ•  ๋•Œ ํŒŒ์ผ ๊ฐ„ ๋˜๋Š” ๋ชจ๋“ˆ ๊ฐ„์— ์ ‘๊ทผ์„ ์ œํ•œํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ. - ์ ‘๊ทผ์ œ์–ด๋ฅผ ํ†ตํ•ด ์ฝ”๋“œ์˜ ์ƒ์„ธ ๊ตฌํ˜„์€ ์ˆจ๊ธฐ๊ณ  ํ—ˆ์šฉ๋œ ๊ธฐ๋Šฅ๋งŒ ์‚ฌ์šฉํ•˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณต. ์ ‘๊ทผ์ œ์–ด๊ฐ€ ์™œ ํ•„์š”ํ• ๊นŒ? - ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํŒจ๋Ÿฌ๋‹ค์ž„์—์„œ ์ค‘์š”ํ•œ ์บก์Šํ™”์™€ ์€๋‹‰ํ™”๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ์ด์œ ๋Š” ์™ธ๋ถ€์—์„œ ๋ณด๊ฑฐ๋‚˜ ์ ‘๊ทผํ•˜๋ฉด ์•ˆ๋˜๋Š” ์ฝ”๋“œ๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ. - ๋ถˆํ•„์š”ํ•œ ์ ‘๊ทผ์œผ๋กœ ์˜๋„์น˜ ์•Š์€ ๊ฒฐ๊ณผ๋ฅผ ์ดˆ๋ž˜ํ•˜๊ฑฐ๋‚˜ ๊ผญ ํ•„์š”ํ•œ ๋ถ€๋ถ„๋งŒ ์ œ๊ณตํ•ด์•ผํ•˜๋Š”๋ฐ ์ „์ฒด ์ฝ”๋“œ๊ฐ€ ๋…ธ์ถœ๋  ..

Language/Swift 2023. 3. 31. 18:10
๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ๊ณผ Swift - Struct, Class, Property, Method

๊ธฐ๋ณธ๊ธฐ ๋ณด์ถฉ์„ ์œ„ํ•ด ์Šค์œ„ํ”„ํŠธ์˜ ๊ต๊ณผ์„œ๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋Š” ์•ผ๊ณฐ์ฑ…์„ ๋‹ค์‹œ ๋ณด๋Š” ์ค‘์ธ๋ฐ์š”. ๊ธฐ๋ณธ์ ์ธ ๋‚ด์šฉ์ด์ง€๋งŒ ์—ญ์‹œ ๋ณผ ๋•Œ๋งˆ๋‹ค ์ƒˆ๋กœ์šด ๊ฒƒ ๊ฐ™๋„ค์š” ใ…‹ใ…‹ใ…Žใ…Ž ์ž‘๋…„์— ์›ํ‹ฐ๋“œ์—์„œ ์ง„ํ–‰ํ–ˆ๋˜ ํ”„๋ฆฌ์˜จ๋ณด๋”ฉ ๊ฐ•์˜๋ฅผ ๋“ค์—ˆ์„ ๋•Œ๋„ ์•ผ๊ณฐ๋‹˜์ด ๊ธฐ์ดˆ์ ์ธ ๊ฐœ๋…์„ ๋งค์šฐ ๊ฐ•์กฐํ•˜์‹œ๋ฉด์„œ ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ 1์ฐจ์‹œ์— ์†Œ๊ฐœํ•ด์ฃผ์…จ๋˜ ๊ฒƒ์ด ์ƒ๊ฐ๋‚˜๋„ค์š”.. ^^.. ๋งค๋‹ฌ 1๊ถŒ์”ฉ์€ ๊ผญ ์ฑ…์„ ์ฝ์œผ๋ ค๊ณ  ํ•˜๋Š”๋ฐ, ์ด๋ฒˆ ๋‹ฌ์—” ๊ฐ์ฒด์ง€ํ–ฅ์˜ ์‚ฌ์‹ค๊ณผ ์˜คํ•ด. ๋ผ๋Š” ์ฑ…์„ ๊ตฌ๋งคํ–ˆ์Šต๋‹ˆ๋‹ค. ์ €๋ฒˆ ๋‹ฌ๊นŒ์ง„ ์ž๊ธฐ๊ณ„๋ฐœ์„œ, ์ธ๋ฌธํ•™ ๋„์„œ๋ฅผ ํ•œ ๋‹ฌ์— 1~2๊ถŒ ์ •๋„ ์ฝ์—ˆ๋Š”๋ฐ ์ด๋ฒˆ ๋‹ฌ์—” ๊ฐœ๋ฐœ ์„œ์ ์„ ์ข€ ์ฝ์–ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค ! ์จ‹๋“ , ์ฑ…์„ ์ฝ๊ธฐ ์ „์— Swift์—์„œ์˜ ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํŒจํ„ฐ๋‹ค์ž„์„ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ๋ฒ•์„ ์งš์–ด๋ณด๊ณ ์ž ๋ณต์Šต์„ ํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค ! 1ํƒ„์—์„œ๋Š” ๊ตฌ์กฐ์ฒด, ํด๋ž˜์Šค, ํ”„๋กœํผํ‹ฐ, ๋ฉ”..

Language/Swift 2023. 3. 30. 15:01
Swift) SOLID ์›์น™ in Swift

SOLID ์›์น™์ด๋ž€ ? SOLID ์›์น™์ด๋ž€ ๊ฐ์ฒด์ง€ํ–ฅ ์„ค๊ณ„์— ๋” ์ข‹์€ ์•„ํ‚คํ…์ณ๋ฅผ ์„ค๊ณ„ํ•˜๊ธฐ ์œ„ํ•ด ์ง€์ผœ์•ผํ•˜๋Š” ์›์น™๋“ค์˜ 5๊ฐ€์ง€๋ฅผ ์•ž์˜ ์•ฝ์–ด๋งŒ ๋”ฐ์„œ ์ •๋ฆฌํ•œ ๋‹จ์–ด์ž…๋‹ˆ๋‹ค. SOLID ์›์น™์„ ์™œ ์•Œ์•„์•ผํ•˜์ฃ  ? ๊ฐœ๋ฐœ์„ ํ•  ๋•Œ ๋‹น์žฅ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ๋„ ์ค‘์š”ํ•˜์ง€๋งŒ, ์ƒˆ๋กญ๊ฒŒ ์–ด๋–ค ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋˜๊ฑฐ๋‚˜ ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ํ•„์š”ํ•  ๋•Œ ๋”์šฑ ์ƒ์‚ฐ์„ฑ ์žˆ๊ณ  ์œ ์—ฐํ•˜๊ฒŒ ๋Œ€์ฒ˜๊ฐ€ ๊ฐ€๋Šฅํ•ด์•ผ ์ข‹๊ฒ ์ฃ .? ์ด๋Ÿฌํ•œ ์ข‹์€ ์„ค๊ณ„๋ฅผ ์œ„ํ•œ ์ตœ์†Œํ•œ์˜ ์›์น™๋“ค์„ ์ •๋ฆฌํ•œ๊ฒŒ SOLID ์›์น™์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ์š”. VIPER๋‚˜ MVVM๋„ ๋ชจ๋‘ ์ด๋Ÿฐ ์›์น™์— ์ž…๊ฐํ•ด์„œ ๋งŒ๋“ค์–ด์กŒ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. SOLID ์›์น™์„ ์ ์šฉํ•˜์—ฌ ์„ค๊ณ„ํ•˜๋ฉด ! 1. ์žฌ์‚ฌ์šฉ๊ณผ ์œ ์ง€๊ด€๋ฆฌ๊ฐ€ ์‰ฌ์šด, ๋ณ€๊ฒฝ์— ์œ ์—ฐํ•œ ์ฝ”๋“œ๋ฅผ ๊ฐ€์ง€๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ด๋Š” ํŠผํŠผํ•œ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋ฉฐ ๋†’์€ ํ™•์žฅ์„ฑ์„ ๊ฐ€์ง€๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. 2. ๋†’์€ ..

Language/Swift 2022. 4. 14. 22:06
Swift) ํ”„๋กœํ† ์ฝœ ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ

์šฐ๋ฆฌ๊ฐ€ iOS ๊ฐœ๋ฐœ์„ ํ•˜๋ฉด์„œ ์“ฐ๋Š” Swift ์–ธ์–ด๋Š” ํ”„๋กœํ† ์ฝœ ์ง€ํ–ฅ ์–ธ์–ด ๋ผ๊ณ  ํ•˜์ฃ  ! ํ”ํžˆ ์•Œ๊ณ ์žˆ๋Š” ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์€ ์‚ฌ๋ฌผ์„ ๊ฐ์ฒด๋กœ ํ˜•์„ฑํ•˜์—ฌ ๊ณตํ†ต์ ์„ ๊ฐ–๋Š” ๋ชจ๋“  ๊ณณ์—์„œ ์ƒ์†๋ฐ›๋Š” ๊ฐ์ฒด ๋‚ด๋ถ€์˜ ๋กœ์ง์„ ์บก์Šํ™” ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์€ SuperClass์— ์ข…์†์ ์ด๋ผ๋Š” ์ ๊ณผ Value Type์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค๋Š” ๊ฒƒ์ด ๋‹จ์ ์ธ๋ฐ์š” ! ๋˜, ๋‹จ ํ•˜๋‚˜์˜ SuperClass ๋งŒ ์ƒ์†ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์‹œ๊ฐ„์ด ์ง€๋‚˜๋ฉด ๊ธฐ๋Šฅ๋„ ํ™•์žฅ๋˜๋ฏ€๋กœ ์ด์— ๋”ฐ๋ผ ๋ณต์žก๋„๊ฐ€ ๋†’์•„์ง€๊ณ  ๊ด€๋ฆฌ๋„ ์–ด๋ ค์›Œ ์ง€๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ํ”„๋กœํ† ์ฝœ ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์€ ํ•„์š”ํ•œ ๋ถ€๋ถ„๋งŒ ํ”„๋กœํ† ์ฝœ๋กœ ๋ถ„๋ฆฌํ•ด์„œ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ณ , ๋‹ค์ค‘ ํ”„๋กœํ† ์ฝœ์„ ๊ตฌํ˜„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค ! ๋˜, ํ”„๋กœํ† ์ฝœ ๊ทœ์น™์„ class, struct, enum์— ์ ์šฉํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ํ™•์žฅ ๋ถ€๋ถ„์—์„œ๋„ OOP..

Language/Swift 2022. 4. 3. 23:46