๋ชฉ๋กLanguage (13)

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
RxSwift) subscribe, bind, drive ์ฐจ์ด

RxSwift ์—์„œ ๊ตฌ๋…์„ ํ•˜๊ธฐ ์œ„ํ•œ ๋ฉ”์„œ๋“œ 3๊ฐ€์ง€ ! ์›๋ž˜๋Š” subscribe ๋งŒ ์•Œ๊ณ ์žˆ์—ˆ๊ณ , UI ์ž‘์—…ํ•ด์ค„๋•Œ bind ๋งŒ ์ผ๋Š”๋ฐ .. ์ฐจ์ด๋ฅผ ์ž˜ ๋ชจ๋ฅด๊ณ  ๊ทธ๋ƒฅ ์“ด ๊ฒƒ ๊ฐ™๋‹ค ใ…‹ใ…‹ subscribe๋Š” ๋ง๊ทธ๋Œ€๋กœ ๊ตฌ๋…ํ•˜๋Š”๊ฑฐ ๊ตฌ๋…๋Œ€์ƒ์˜ ์ƒํƒœ๊ฐ€ ๋ณ€ํ•˜๋ฉด ๊ฐ’์„ ๋ฐ›์•„์™€์„œ ์ฒ˜๋ฆฌ ๋ณ€ํ•˜๋Š” ๋‹ค์Œ๊ฐ’, ์—๋Ÿฌ, ๋๋‚  ๋•Œ๋ฅผ ์•Œ๊ณ  ์ฝ”๋“œ ๊ตฌํ˜„ ๊ฐ€๋Šฅ. UI ์ž‘์—…์— ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ๋ฉ”์„œ๋“œ๋Š” bind ์™€ drive bind๋Š” Observable๊ณผ Observer๋ฅผ ํ•˜๋‚˜๋กœ ๋ฌถ์–ด์ฃผ๋Š” ์—ญํ•  - bind์˜ ๋‚ด๋ถ€์—๋Š” subscribe ๊ฐ€ ์žˆ์Œ - ์˜ต์ €๋ฒ„๋ธ”์ด ๋ฐฉ์ถœํ•œ ์ด๋ฒคํŠธ๋ฅผ ๊ทธ๋Œ€๋กœ binder์—๊ฒŒ ์ „๋‹ฌ ๊ทธ๋ฆฌ๊ณ  binder๋Š” UI ์—…๋ฐ์ดํŠธ์— ์‚ฌ์šฉ๋˜๋Š” ์˜ต์ €๋ฒ„์˜ ์ผ์ข… - bind๋Š” onNext ์ด๋ฒคํŠธ์— ๋Œ€ํ•ด์„œ๋งŒ ๋ฐ˜์‘ํ•˜๊ณ  error์ด๋ฒคํŠธ๊ฐ€ ๋“ค์–ด์˜ค๋ฉด ์—๋Ÿฌ ๋กœ๊ทธ๋ฅผ..

Language/RxSwift 2022. 4. 14. 08:45