๐Ÿง‘๐Ÿป‍๐Ÿ’ผ ํ›„๊ธฐ/๋ฉด์ ‘ํ›„๊ธฐ

ํ•ด์ปค์Šค๊ต์œก๊ทธ๋ฃน iOS๋ถ€๋ฌธ ํ•„๊ธฐ/๋ฉด์ ‘ํ›„๊ธฐ

JerryiOS 2023. 5. 12. 00:04

ํ•ด์ปค์Šค ๊ต์œก๊ทธ๋ฃน

- ์ค‘๊ฒฌ๊ธฐ์—…

- ๊ต์œก์—…๊ณ„

- ๊ฐ•๋‚จ์—ญ ๊ทผ์ฒ˜

 

ํ•„๊ธฐ ํ›„๊ธฐ

- ์†์ฝ”๋”ฉ์œผ๋กœ ๋‚˜์™”๋‹ค.

- ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์—์„œ ์—ฐ์Šตํ•˜๋˜๋Œ€๋กœ ์ƒ๊ฐ๋‚˜๋˜๋Œ€๋กœ ํ’€์—ˆ๋‹ค.

- ์‹œ๊ฐ„์ด ์กฐ๊ธˆ ๋ชจ์ž๋ผ์„œ ๋‹ค ํ’€์ง€๋Š” ๋ชปํ–ˆ๋‹ค.

๋ฉด์ ‘ ํ›„๊ธฐ

- ์„ธ๋ฏธ์ •์žฅ ์ด์ƒ ์ž…์–ด์•ผํ•ด์„œ ํ’€์„ธํŒ… ์ •์žฅ์„ ์ž…๊ณ  ๊ฐ€์•ผํ•  ๊ฒƒ ๊ฐ™์€ ๋Š๋‚Œ?์„ ๋ฐ›์•˜๋‹ค.

- ๋Œ€์ „์— ๊ฑฐ์ฃผ ์ค‘์ด์–ด์„œ ๋ฉด์ ‘๋น„๋Š” 3๋งŒ์› ๋ฐ›์•˜๋‹ค.

- ๋ฉด์ ‘๊ด€๋‹˜์ด ๋ธ”๋กœ๊ทธ์—์„œ ๋‹ค๋ฅธ ํšŒ์‚ฌ๋“ค ๋ฉด์ ‘ํ›„๊ธฐ๋ฅผ ๋ณด์…จ๋‹ค๊ณ  ํ•˜์…”์„œ ๋‹นํ™ฉํ–ˆ๋‹คใ…‹ใ…‹

- ๋ฉด์ ‘๊ด€๋‹˜์ด ๋ฉด์ ‘ ์‹œ๊ฐ„ ๋‚ด๋‚ด ๋ฐฐ๋ คํ•ด์ฃผ์‹œ๋Š” ๊ฒƒ์ด ๋Š๊ปด์ ธ์„œ ์ข‹์•˜๋‹ค.

- ์š”์ฆ˜ ๊ทธ๋ฃน ํ”„๋กœ์ ํŠธ ์ค‘์ด๋ผ ์ค€๋น„๋ฅผ ๋งŽ์ด ๋ชปํ•ด๊ฐ€์„œ ๋Œ€๋‹ต์„ ๋ชปํ–ˆ๋˜ ๊ฒƒ๋“ค์ด ๋„ˆ๋ฌด ์•„์‰ฌ์› ๋‹ค.

 

์ž˜๋ชป ๋Œ€๋‹ตํ–ˆ๋˜ ์งˆ๋ฌธ

MVVM, MVC ์ฐจ์ด์ 

์ œ๋ฆฌ๋‹˜ ๋ธ”๋กœ๊ทธ์— ์žˆ์—ˆ๋˜ ๊ฑด๋ฐ ใ…Žใ…Ž ์ด๋ฒˆ์—” ๋Œ€๋‹ตํ•  ๊ธฐํšŒ๋ฅผ ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.
Q. MVC์™€ MVVM์˜ ์ฐจ์ด๊ฐ€ ๋ฌด์—‡์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋‚˜์š”?

MVC ํŒจํ„ด์€ ... ViewController์˜ .. ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค ใ… ใ…  
(์ด๋ ‡๊ฒŒ ๋‹ต๋ณ€ํ•˜๊ณ  ์ง‘์— ๋Œ์•„๊ฐ€๋Š” ๊ธธ์— ์ƒ๊ฐ๋‚˜์„œ ๊ณ ํ†ต์Šค๋Ÿฌ์› ๋‹ค.)

ํ•ด์•ผํ–ˆ์„ ๋‹ต๋ณ€

A.
MVC ํŒจํ„ด์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋ชจ๋ธ, ๋ทฐ ๋ฐ ์ปจํŠธ๋กค๋Ÿฌ์˜ ์„ธ ๊ฐ€์ง€ ๊ตฌ์„ฑ ์š”์†Œ๋กœ ๋ถ„๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

MVVM ํŒจํ„ด์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋ชจ๋ธ, ๋ทฐ ๋ฐ ๋ทฐ๋ชจ๋ธ์˜ ์„ธ ๊ฐ€์ง€ ๊ตฌ์„ฑ ์š”์†Œ๋กœ ๋ถ„๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

MVC๋Š” ์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ ๋ทฐ์™€ ๋ชจ๋ธ ์‚ฌ์ด์˜ ์ƒํ˜ธ์ž‘์šฉ์„ ์กฐ์ •ํ•˜๊ณ , MVVM์€ ๋ทฐ๋ชจ๋ธ์ด ๋ทฐ์™€ ๋ชจ๋ธ ์‚ฌ์ด์˜ ์ƒํ˜ธ์ž‘์šฉ์„ ์กฐ์ •ํ•ฉ๋‹ˆ๋‹ค.
๋˜ํ•œ, MVVM์€ ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ์„ ํ†ตํ•ด ๋ทฐ์™€ ๋ทฐ๋ชจ๋ธ ๊ฐ„์˜ ๋ฐ์ดํ„ฐ ๋™๊ธฐํ™”๋ฅผ ์šฉ์ดํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

 

ํ€ต์†ŒํŠธ, ๋จธ์ง€์†ŒํŠธ์˜ ์ฐจ์ด์ 

Q. ํ€ต์†ŒํŠธ์™€ ๋จธ์ง€์†ŒํŠธ์˜ ์ฐจ์ด์ ์„ ์•„์‹œ๋‚˜์š”?

(๋จธ๋ฆฟ์†์œผ๋กœ ์˜ˆ์ „์— ์œ ํŠœ๋ธŒ๋กœ ๋ดค๋˜ ๋ณ‘ํ•ฉ์ •๋ ฌ ์˜์ƒ์„ ๋– ์˜ฌ๋ ค๋ณด๋‹ค๊ฐ€.. ๋‹ต๋ณ€์„ ๋ชปํ•˜๊ฒ ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค.)
์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค.. ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.

ํ•ด์•ผํ–ˆ์„ ๋‹ต๋ณ€

ํ€ต์ •๋ ฌ์€ ํ”ผ๋ฒ—์„ ๊ธฐ์ค€์œผ๋กœ ๋ฐฐ์—ด์„ ๋ถ„ํ• ํ•˜์—ฌ ์ •๋ ฌํ•˜๊ณ , ์žฌ๊ท€์ ์œผ๋กœ ์ •๋ ฌํ•ฉ๋‹ˆ๋‹ค.

๋ณ‘ํ•ฉ์ •๋ ฌ์€ ๋ฐฐ์—ด์„ ๋ฐ˜์œผ๋กœ ๋‚˜๋ˆˆ ํ›„ ๊ฐ๊ฐ์„ ์ •๋ ฌํ•œ ๋’ค ๋ณ‘ํ•ฉํ•˜์—ฌ ์ตœ์ข… ์ •๋ ฌ๋œ ๋ฐฐ์—ด์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

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

 

Priority

Q. iOS Constraint์—์„œ Priority ๊ฐœ๋…์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.. 

ํ•ด์•ผํ–ˆ์„ ๋‹ต๋ณ€

iOS Constraint์˜ Priority๋Š” ์ œ์•ฝ ์กฐ๊ฑด์˜ ์ค‘์š”๋„๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฐ’์œผ๋กœ, ์ œ์•ฝ ์กฐ๊ฑด ๊ฐ„์˜ ์ƒ๋Œ€์ ์ธ ์šฐ์„ ์ˆœ์œ„๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.

Priority ๊ฐ’์€ 1๋ถ€ํ„ฐ 1000๊นŒ์ง€์˜ ๋ฒ”์œ„๋ฅผ ๊ฐ€์ง€๋ฉฐ, ๊ฐ’์ด ๋†’์„์ˆ˜๋ก ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋†’์•„์ง‘๋‹ˆ๋‹ค.

Priority๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ทฐ์˜ ํฌ๊ธฐ, ์œ„์น˜ ๋˜๋Š” ๊ด€๊ณ„๋ฅผ ์กฐ์ •ํ•˜๊ณ  ์ถฉ๋Œ ์‹œ ์–ด๋–ค ์ œ์•ฝ ์กฐ๊ฑด์„ ์šฐ์„ ์‹œํ• ์ง€ ๊ฒฐ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๊ธฐ๋ณธ์ ์œผ๋กœ Priority๋Š” 1000์œผ๋กœ ์„ค์ •๋˜๋ฉฐ, ๋ณ€๊ฒฝํ•˜์—ฌ ํ•„์š”ํ•œ ์ œ์•ฝ ์กฐ๊ฑด์— ์šฐ์„ ์ˆœ์œ„๋ฅผ ๋ถ€์—ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹ต๋ณ€์„ ์ ๋‹ค๋ณด๋‹ˆ ์•Œ๊ณ  ์žˆ์—ˆ๋˜ ๊ฐœ๋…์ด์—ˆ๋‹ค. 

์Šคํ† ๋ฆฌ๋ณด๋“œ์—์„œ๋Š” ์ด๊ฑฐ ์กฐ์ •ํ•ด์„œ ์ œ์•ฝ ์šฐ์„ ์ˆœ์œ„ ๋”ฐ์งˆ ์ˆ˜ ์žˆ๋‹ค.

 

์ด๋ ‡๊ฒŒ ๊ธ€๋กœ ์ ์–ด๋ณด๊ณ  ๋‚˜๋‹ˆ ๊ธฐ์–ต๋ ฅ์ด ๋งŽ์ด ๋ถ€์กฑํ•œ ๊ฒƒ ๊ฐ™๋‹ค.
ํ”„๋กœ์ ํŠธํ•˜๋Š” ๋™์•ˆ UIkit ํ•™์Šต๋„ ์ง‘์ค‘์ ์œผ๋กœ ํ•ด์„œ ๊ธฐ์–ต๋ ฅ์„ ๋Œ์–ด์˜ฌ๋ ค์•ผ๊ฒ ๋‹ค..

๋ฐ˜์‘ํ˜•