Deep_Dev
article thumbnail
[์•„ํ‚คํ…์ฒ˜ํŒจํ„ด][iOS] MVC ํŒจํ„ด
๐ŸŽ iOS/Design Pattern 2023. 5. 11. 02:03

๐Ÿ“š MVC ํŒจํ„ด ๋””์ž์ธ ํŒจํ„ด ์ค‘ ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ํŒจํ„ด Model - View - Controller ๊ตฌ์กฐ์˜ ์•„ํ‚คํ…์ฒ˜ ํŒจํ„ด ๐Ÿ’ก ์ผ๋ฐ˜์ ์ธ MVC ํŒจํ„ด - Model ---------- ์•ฑ์˜ ๋ฐ์ดํ„ฐ์™€ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง ( ์ฃผ๋กœ struct๋‚˜ class ) - View ----------- ํ™”๋ฉด๊ณผ control๋ฅผ ์Šคํฌ๋ฆฐ์„ ํ†ตํ•ด ๋ณด์—ฌ์ฃผ๋Š” ์—ญํ•  ( ์ฃผ๋กœ UiKit ์ƒ์† ) - Controller ------ View์™€ Model์„ ์ž‡๋Š” ์—ญํ•  ( ์ฃผ๋กœ UiViewController ์ƒ์† ) View์™€ Model์ด ์ง์ ‘์ ์œผ๋กœ ์†Œํ†ตํ•˜๋Š”๊ฒŒ ์•„๋‹ˆ๋ผ Controller๋ฅผ ํ†ตํ•ด ์†Œํ†ตํ•˜๊ฒŒ ๋œ๋‹ค. ์ฆ‰, View๋Š” Model์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด์—ฌ์ฃผ๊ณ , Model์„ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•œ๋‹ค. ์ด๋ฅผ Controller๊ฐ€ ์ž‡๋Š”๊ฒƒ ๐Ÿ’ก ์• ํ”Œ์˜ MVC ํŒจํ„ด V..

article thumbnail
[iOS] ๋‘๋ฒˆ์งธ ์•ฑ ์ถœ์‹œ ( *๋ฆฌ์  )

๋‚˜์˜ ๋‘๋ฒˆ์งธ ์•ฑ ์ถœ์‹œ ๊ธฐ๋ก 4.12 ~ 4.27 ( "15์ผ ์ด๋‚ด" ) ๊ธฐํš ๊ทœ์น™ ๊ฐœ๋ฐœ ๊ฐœ๋ฐœ์ด์™ธ์˜ ๊ณผ์ • ์ถœ์‹œ๋ฅผ ๋งˆ์น˜๊ณ  ๋ฆฌ์  ๋Š๋‚€์  ๊ธฐํš ์ด๋ฒˆ ์•ฑ์˜ ๊ธฐํš ๋ชฉ์ ๋„ "๋‚˜์˜ ์ƒํ™œ"์—์„œ ๋‚˜์™”๋‹ค. ๋ฐฐ๋‹ฌ์Œ์‹์„ ์‹œํ‚ฌ ๋•Œ ๋ฌด์—‡์„ ์‹œํ‚ฌ์ง€ ๊ณ ๋ฏผ์ด ๋ผ์„œ ์ด๊ฒƒ์ €๊ฒƒ ๋“ค์–ด๊ฐ€๋ณด๊ณ , ์ฐพ์•„๋ณด๋Š” ๊ฒฝํ—˜์€ ๋ˆ„๊ตฌ๋‚˜ ํ–ˆ์„๊ฒƒ์ด๋‹ค. ๋ˆ„๊ตฐ๊ฐ€ ๋ฌด์—‡์„ ๋จน์„์ง€ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ œ์‹œํ•ด์คฌ์œผ๋ฉด ๊ณ ๋ฅผ ์ˆ˜ ์žˆ์„๊ฑฐ๊ฐ™์€๋ฐ, ๊ทธ๋ ‡๋‹ค๊ณ  ์ฐพ์•„๋ณด๊ธฐ์—” ๊ท€์ฐฎ๊ณ .. ์ถ”์ฒœํ•ด์ค„์‚ฌ๋žŒ๋„ ์—†๋‹ค. ๊ทธ๋ž˜์„œ ๋งŒ๋“ค๊ฒŒ ๋˜์—ˆ๋‹ค. 1. ์Œ์‹์ด ๋งˆ์Œ์— ์•ˆ๋“ค๋ฉด ๋ฐ”๋กœ๋ฐ”๋กœ ๋„˜๊ฒจ์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ•„์š”์—†๋Š” ๊ธฐ๋Šฅ์€ ๋ชจ๋‘ ๋นผ๊ณ  ๋‹จ์ˆœํ•˜๊ณ , ๋น ๋ฅด๊ฒŒ ๋™์ž‘ํ•ด์•ผํ•œ๋‹ค. 2. ์›ํ•˜๋Š” ๋ฉ”๋‰ด๊ฐ€ ๋“ฑ์žฅํ–ˆ์œผ๋ฉด, ๋”ฐ๋กœ ์•ฑ์„ ๋˜ ๋“ค์–ด๊ฐ€์ง€ ์•Š๊ณ  ๋ฐ”๋กœ ์ด๋™ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค. 3. ๊ฐœ๋ฐœ์„ ํ•˜๋ฉด์„œ ๋Œ€ํ‘œ์ ์ด๊ณ  ๊ธฐ๋ณธ์ ์ธ ์Œ์‹ ๋ฆฌ์ŠคํŠธ๋Š” ์ฃผ์–ด์ง€์ง€๋งŒ, ์‚ฌ์šฉ์ž์˜ ..

article thumbnail
[iOS] ์ฒซ ๋ฒˆ์งธ ์•ฑ ์ถœ์‹œ

๋‚˜์˜ ์ฒซ ์•ฑ ์ถœ์‹œ ๊ธฐ๋ก 2023.02.24 ~ 2023.03.24 ( "1๊ฐœ์›”" ) ๊ธฐํš ๊ทœ์น™ ๊ฐœ๋ฐœ ๊ฐœ๋ฐœ์ด์™ธ์˜ ๊ณผ์ • ์ถœ์‹œ๋ฅผ ๋งˆ์น˜๊ณ  ์‹ค์ œ ์•ฑ์„ ์‚ฌ์šฉํ•˜๋ฉฐ ์•„์‰ฌ์šด์  ๋Š๋‚€์  ๊ธฐํš ์•ฑ์˜ ๊ธฐํš ๋ชฉ์ ์€ "๋‚ด๊ฐ€ ํ•„์š”ํ•ด์„œ, ๋‚ด๊ฐ€ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ" ์˜€๋‹ค. ์šด๋™์„ ํ•  ๋•Œ ์šด๋™์‹œ๊ฐ„๊ณผ, ์‰ฌ๋Š”์‹œ๊ฐ„ ํ™•์ธ์„ ์œ„ํ•˜์—ฌ ์• ํ”Œ์›Œ์น˜๋ฅผ ์ฐจ๊ณ  ํ•˜๋Š”๋ฐ ์†๋ชฉ์— ์‹œ๊ณ„๋ฅผ ์ฐจ๊ณ  ์žˆ๋‹ค๋Š”๊ฒŒ ์–ด๋Š ์ˆœ๊ฐ„๋ถ€ํ„ฐ ์กฐ๊ธˆ ๊ฑธ๋ฆฌ์ ๊ฑฐ๋ฆฌ๊ฒŒ ๋Š๊ปด์ง€๊ณ , ์‰ฌ๋Š”์‹œ๊ฐ„์ด ๋ช‡ ๋ถ„์— ์‹œ์ž‘๋˜์—ˆ๋Š”์ง€ ๊ธฐ์–ตํ•˜๊ณ  ์žˆ์–ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. 1. ๊ธฐ์กด์— ์•„์ดํฐ ๋‚ด์˜ ํƒ€์ž„์›Œ์น˜๋ฅผ ์ด์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ์—ˆ์ง€๋งŒ, ์‰ฌ๋Š” ์‹œ๊ฐ„์ด ์–ธ์ œ ๋๋‚˜๋Š”๊ฑด์ง€ ๋ˆˆ์œผ๋กœ ํ™•์ธํ•ด์•ผ ํ•œ๋‹ค. -> ์†Œ๋ฆฌ๋กœ ์•Œ๋ฆผ์ด ์™”์œผ๋ฉด ์ข‹๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค. ๋ฉ”์ธ ๊ธฐ๋Šฅ์€ 'ํƒ€์ด๋จธ'์ด๊ณ  ๋ถ€๊ฐ€์ ์ธ ๊ธฐ๋Šฅ๋“ค์„ ๋„ฃ๊ณ  ์‹ถ์—ˆ๋‹ค. ๊ทธ๋ž˜์„œ ํ™”๋ฉด์„ Tab Bar๋ฅผ ์ด์šฉํ•˜์—ฌ ..

article thumbnail
[iOS] Delegate ํŒจํ„ด์— ๋Œ€ํ•ด์„œ
๐ŸŽ iOS/UIKit 2023. 4. 5. 17:02

๐Ÿ“Œ Delegate Pattern Delegate ํŒจํ„ด์€ iOS์—์„œ ์ •๋ง ๋งŽ์ด ์“ฐ์ด์ง€๋งŒ, ๋ญ”์ง€ ๋ชจ๋ฅด๊ณ  ๊ทธ๋ƒฅ ์ฝ”๋“œ๋ฅผ ์น˜๊ณ  ์žˆ๊ธฐ ์ œ์ผ ์‰ฌ์šด ๊ฒƒ๋“ค ์ค‘ ํ•˜๋‚˜์ธ ๊ฒƒ ๊ฐ™๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, UITableView๋ฅผ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด์„œ UITableViewDataSource, UITableViewDelegate๋ฅผ ๋‹น์—ฐํ•˜๊ฒŒ ViewController์— ์ฑ„ํƒํ•˜๊ณค ํ•˜์ง€๋งŒ ์™œ ๊ผญ ํ…Œ์ด๋ธ”๋ทฐ๋ฅผ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด UITableViewDataSource๋ฅผ ์ฑ„ํƒํ•ด์•ผ ํ•˜๋Š”์ง€, UITableViewDataSource์™€ UITableViewDelegate๋Š” ์™œ ํ”„๋กœํ† ์ฝœ๋กœ ๊ตฌํ˜„๋˜์–ด ์žˆ๋Š”์ง€ ๋“ฑ๋“ฑ์„ ์„ค๋ช…ํ•˜๋Š” ๊ฑด ํŠนํžˆ๋‚˜ ์ดˆ์‹ฌ์ž์—๊ฒ ์‰ฝ์ง€ ์•Š์€ ์ผ์ด๋‹ค. ์• ํ”Œ์€ ์™œ ๊ทธ๋ ‡๊ฒŒ๋‚˜ ๋งŽ์€ UI์š”์†Œ๋“ค์— Delegate ํŒจํ„ด์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ๊ฑธ๊นŒ ํ•ญ์ƒ ์ดํ•ดํ•œ ๋“ฏ ์•ˆ ํ•œ๋“ฏ, ..

article thumbnail
[iOS]AutoLayout : TableView_Text_Dynamic_Cell
๐ŸŽ iOS/UIKit 2023. 4. 4. 18:04

๐Ÿ“Œ AutoLayout : TableView_Text_Dynamic_Cell Text Line์— ๋”ฐ๋ผ Cell์˜ ๋†’์ด๋ฅผ ๋™์ ์œผ๋กœ ๋ณ€ํ•˜๊ฒŒ ํ•˜๋Š” ๋ฐฉ๋ฒ• tableView tableViewCell ์„ค์ •ํ›„ Label 4๊ฐœ๋ฅผ ๋ชจ๋‘ ์ƒํ•˜์ขŒ์šฐ 20์„ ์ค€๋‹ค. ( ์ œ์ผ ์šฐ์ธก ์ƒ๋‹จ์˜ bottom์€ ์ œ๊ฑฐ ) ์™ผ์ชฝ 3๊ฐœ์˜ ๋ผ๋ฒจ Hugging Priority - Vertical์„ ์กฐ์ ˆํ•˜์—ฌ ์ •๋ ฌํ•œ๋‹ค. Cell์˜ identifier ์„ค์ • tableView๋ฅผ VC์™€ dataSource, delegate ์—ฐ๊ฒฐ protocol ์ถ”๊ฐ€ ํ›„ ์ฝ”๋“œ ์ž…๋ ฅ ํ˜„์žฌ๊นŒ์ง€์˜ ๊ฒฐ๊ณผ MyCell์˜ Class๋ฅผ ๊ฐ™์€ ํŒŒ์ผ์— ์ƒ์„ฑํ•˜์—ฌ์ฃผ๊ณ  ( ๋‹ค๋ฅธ ํŒŒ์ผ์— ๋งŒ๋“ค์–ด์ค˜๋„ ๋œ๋‹ค ) Cell์•ˆ์˜ Label์ค‘ ์ตœํ•˜๋‹จ์˜ ๊ฒƒ์„ IBOulet ์„ค์ •ํ•œ๋‹ค. talbeViewCell์˜..

article thumbnail
[iOS] AutoLayout : TableView_Expand
๐ŸŽ iOS/UIKit 2023. 4. 4. 16:50

๐Ÿ“Œ AutoLayout : TableView_Expand ์ž์œ ๋กœ์šด ๋™์  ๋†’์ด Table View์˜ Cell ์„ ํด๋ฆญํ–ˆ์„๋•Œ Cell ์˜ ๋†’์ด๊ฐ€ ๋™์ ์œผ๋กœ ๋ณ€ํ•˜๋Š” ( expand ) Layout tableView - tableViewCell - Label ๋ ˆ์ด์•„์›ƒ ์„ค์ • ํ›„ MyCell ํด๋ž˜์Šค๋ฅผ ์ƒ์„ฑํ•˜์—ฌ label Outlet ์„ค์ • ์ดํ›„ tableView์— ํ•ด๋‹นํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ๊ตฌ์„ฑํ•ด์ค€๋‹ค. ๋‹ค ๋œ๋‹ค๋ฉด ์Šคํ† ๋ฆฌ๋ณด๋“œ์˜ tableView๋ฅผ ์ƒ์œ„ VC์— dataSource, delegate๋ฅผ ์—ฐ๊ฒฐํ•œ๋‹ค. ( TableViewCell์˜ identifier = expandCell ์„ค์ •ํ›„ Class๋ฅผ ์ƒ์„ฑํ•ด์ฃผ์—ˆ๋˜ MyCell๊ณผ ์—ฐ๊ฒฐํ•ด์ฃผ์–ด์•ผํ•œ๋‹ค. ) ( Label ์˜ Lines๋Š” 0 ์œผ๋กœ ํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค. ) Label์— ๋“ค์–ด๊ฐˆ ์ž„์‹œ ..

article thumbnail
[iOS]AutoLayout : pop up _ animation
๐ŸŽ iOS/UIKit 2023. 4. 2. 14:06

๐Ÿ“Œ AutoLayout : Popup _ Animation ํŒ์—…๊ณผ ์• ๋‹ˆ๋ฉ”์ด์…˜ ํšจ๊ณผ MainStoryboard์— 'Show popup' ๋ฒ„ํŠผ์„ ํ•˜๋‚˜ ์ถ”๊ฐ€ํ•ด์ค€๋‹ค. cmd + n ์„ ๋ˆŒ๋Ÿฌ cocoa Touch ํŒŒ์ผ 1๊ฐœ, StoryBoard ํŒŒ์ผ 1๊ฐœ๋ฅผ ๊ฐ๊ฐ ๋งŒ๋“ค์–ด์ค€๋‹ค. ๋งŒ๋“  ์Šคํ† ๋ฆฌ๋ณด๋“œ๋ฅผ ์šฐ์ธก์—์„œ class ์—ฐ๊ฒฐ๊ณผ StoryBoard ID๋ฅผ ์ง€์ •ํ•˜๊ณ  'Use Storyboard ID'๊นŒ์ง€ ์ฒดํฌํ•œ๋‹ค. ๋‹ค์Œ๊ณผ ๊ฐ™์ด View์•ˆ์— imageView, Button 3๊ฐœ๋ฅผ ๋งŒ๋“ค๊ณ  ๋ ˆ์ด์•„์›ƒ์„ ์™„๋ฃŒํ•œ๋‹ค. * imageView์˜ ์‚ฌ์ง„์ด ๋†’์ด๊ฐ€ ๋„ˆ๋ฌด ๋†’๊ฒŒ ๋‚˜์˜ค๋ฉด ์„ค์ •์—์„œ Aspect fit์„ ์„ ํƒํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์‚ฌ์ง„์˜ ๋†’์ด๋ฅผ ์ง€์ •ํ•ด์ฃผ๊ณ , Constant๊ฐ’์„ ์กฐ์ ˆํ•˜์—ฌ ๋†’์ด๋ฅผ ๋‚ฎ์ถ˜๋‹ค. * ํ•˜๋‹จ Button 2๊ฐœ๋Š” ์ƒํ•˜์ขŒ์šฐ 20์„ ์ฃผ..

article thumbnail
[iOS] AutoLayout : Graph _ Animated
๐ŸŽ iOS/UIKit 2023. 3. 31. 20:38

๐Ÿ“Œ AutoLayout : Graph_Animated ๊ทธ๋ž˜ํ”„๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ ์• ๋‹ˆ๋ฉ”์ด์…˜ ์ค‘์•™์— ๋ณด์ด๋Š” ๋ง‰๋Œ€ํ˜• Graph Layout์„ ๋งŒ๋“ค์–ด๋ณด๋Š”๊ฒƒ์ด๋‹ค. View ์•ˆ์— View๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ๋ง‰๋Œ€๋ฅผ ๋งŒ๋“ค๊ณ  ๋ง‰๋Œ€ ํ•˜๋‚˜๋ฅผ ์šฐํด๋ฆญํ•˜์—ฌ ์ƒ์œ„View์˜ 'Equals Height' ์„ค์ •ํ•˜๊ณ  Structure์— ๋ณด์ด๋“ฏ์ด ์ƒ์œ„ View ~ ๋ง‰๋Œ€ View 6๊ฐœ๋ฅผ ๋ชจ๋‘ ์„ ํƒํ•˜์—ฌ 'Equal Height' ์„ค์ • 6๊ฐœ ๋ง‰๋Œ€View๋งŒ ์„ ํƒํ•˜์—ฌ Equal Widths๋กœ ๋„“์ด๋ฅผ ๊ฐ™๊ฒŒ ๋งŒ๋“ค์–ด์ค€๋‹ค. ํ•˜๋‚˜ํ•˜๋‚˜์˜ ๋ง‰๋Œ€ View์˜ ๋†’์ด๋Š” Equal Height to ์˜ Multiplier๋ฅผ ์กฐ์ ˆํ•ด์ค€๋‹ค. ํ•˜์ง€๋งŒ ์—ฌ๊ธฐ๊นŒ์ง€๋Š” Multiplier๋ฅผ ์ด์šฉํ•ด์„œ ๊ตฌํ˜„ํ•œ ๊ฒƒ์ด์ง€๋งŒ, ์‚ฌ์šฉ์žํ•œํ…Œ ์ž…๋ ฅ์„ ๋ฐ›๊ฑฐ๋‚˜ ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด์„œ ์ž…๋ ฅ๋ฐ›์€ ๊ฐ’์œผ๋กœ ํ‘œํ˜„ํ•˜๊ธฐ์œ„ํ•ด์„  ์ด..