2022. 11. 7. 22:32ใComputerScience
Architecture (11/4 ๊ฐ์ฆ์)
View controller
View ๋ผ๋ ์ค๋ ๋๊ฐ ํ์์ด ๋๋ค
OS์์๋ Process์์ ์๋ง์ thread๊ฐ ๋๋ค
์ํคํ ์ณ๋?
ํ๋์ view๋ง ๋ณธ๋ค๋ฉด ์ฌ๋ฌ ์ปดํฌ๋ํธ์ ๋ชจ์์ด์ง๋ง,
๋์ ์ธ (๋ฐํ์) ์ธก๋ฉด์์๋ Process, App ํ๋๋ฅผ ์๋ฏธ
๋ฉ๋ชจ๋ฆฌ์์ ์ฃฝ์ง ์๋ ์์ญ
๋์ ์ด๊ณ ์ ์ ์ธ ์ธก๋ฉด์ ๋ค ๋ณด์์ผ ํ๋ค.
MVC: Logical architecture
Runtime architecture
Process, Thread
์ค์ ๋ก ๋ฐํ์์์ ๋ฐ๋ผ๋ณด๋ ๊ตฌ์กฐ (OS๊ฐ ์ธ์ํ๋ ๊ตฌ์กฐ)
๋ ๊ฐ์ ์ฑ์ด ๋ฐ์ดํฐ๋ฅผ ๊ณต์ ํด์ผ ํ๋ค๋ฉด?
ํ๋ก์ธ์ค: ๋ฐ์ดํฐ๋ฅผ ์ ์ํ์ง ์๋๋ค.
๊ทธ๋ผ? ์ธ์ ๋ฉ์ธ์ง ํต์ ๋ฑ๋ฑ์ ๋ฐฉ๋ฒ์ด ์๋ค.
Conceptual architecture
์ฐ์์์ ๋ง๊ฒ ๋ถ์ธ ์ด๋ฆ๋ค
์ด์ฉ๊ตฌ ๋ทฐ ์ปจํธ๋กค๋ฌ (Signin VC)
์ฐ์์๋ค์ ๋ชจ์ (์ปจ์ )
Physical architecture
์ด๊ฒ ๋ถ๋ฆฌ๋๊ฒ ๋๋ฉด, ๋ค๋ฅธ OS
์๋ฒ์ ์๋ ๊ตฌ์กฐ (๋คํธ์ํฌ ์ผ์ด๋ธ)
์์ดํฐ์ ์๋ ๊ตฌ์กฐ (LTE ๋ฌด์ )
MVC, MVVM ๋ฑ๋ง ์ํคํ ์ฒ์ ํด๋น๋๋ ๊ฒ์ด ์๋๋ค.
๋ฐํ์ ์ํคํ ์ณ๊ฐ ํ๋ก๊ทธ๋๋ฐํ ๋ ๋ง์ ๊ณ ๋ฏผ์ ํ๊ฒ ํ๋ค.
๋๋์ง ๊ฒ์ ์ค๋ ๋ ์์ (ํ ์ฐ๋ ๋์ ๋ค ๋๋ฉด ์ปจํ๋ฆญ, ์ ์ง ๋ฌธ์ )
-> ๋ฉํฐ ์ค๋ ๋ (์ค๋ ๋ ๋ถ๋ฆฌ๋ฅผ ํ๋ค.)
๋ ์ด๋ฐ ๋ฐฉ์์ ๊ณ ๋ฏผํ๋ฉด์ ํ๋ก๊ทธ๋๋ฐ ํด์ผํ๋ค.
์ฐ๋ฆฌ์ ์๋ฃจ์ ์ ๋ถ๋ฆฌํ์ฌ, ์ ํฉํ ์ํคํ ์ณ๋ฅผ ์ฐพ์๊ฐ๋ฉด ๋๋ค.
์์: ์ ํ ๋ฎค์ง
view๋ก ๋ณด๋๊ฑด ํ๋์ ํ๋ก์ธ์ค์ ํด๋นํจ
๋ทฐ๋ฅผ ๋ณผ ํ์๊ฐ ์๋ค๋ฉด ๋ฐฑ๊ทธ๋ผ์ด๋๋ก ๋๋ฆฐ๋ค.
Background process๊ฐ ๋๋ค
Thread์ Process์ ์ฐจ์ด
๋ฉ๋ชจ๋ฆฌ ๋ฐ์ดํฐ ๊ณต์
๋ฐฑ๊ทธ๋ผ์ด๋ ์ค๋ ๋๋ก ์ผ์ ์ผ๊ธ์ผ๊ธ ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฌ์ค๋ฉด ์ข๊ฒ ๋ค.
-> ๋ฐฑ๊ทธ๋ผ์ด๋ ํ๋ก์ธ์ค๋ฅผ ๋ง๋ค๋ฉด ์ข๊ฒ ๋ค.
๋ทฐ๋ฅผ ๋ณด๊ณ ์์ผ๋ฉด์, ์๋์ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์ค๊ณ ์ถ๋ค๋ฉด?
-> ๋ฐฑ๊ทธ๋ผ์ด๋ ์ค๋ ๋๋ก ๋ฐ์์ฌ ์ ์๋ค. (๋ค ํ๋ก์ธ์ค์ฌ์ผ ํ๋ ๊ฑด ์๋๋ค)
์ด๋ฐ๊ฑธ ๊ณ ๋ฏผํ๋ฉด์ ํ๋ก๊ทธ๋จ์ ์ง์ผํ๋ค.
์ด์ํ ๋ฒ๊ทธ, ๋์ ๋ณด์ด์ง ์๋ ๋ฒ๊ทธ๋ฅผ ์๋ฐฉํ ์ ์๋ค.
๊ทธ๋ฌํ ์ปจ์ ์ ์ด์ผ๊ธฐํด๋ณด์ (์ด๋ค ์ํคํ ์ณ๊ฐ ์ข๋ค๋ฅผ ๋ ผํ๋๊ฒ ์๋๋ผ)
QA (Quality Assurance)
์ฃผ๋์ด ๊ฐ๋ฐ์์์ ๋ ์ข์ ๊ฐ๋ฐ์๋ก ๋์๊ฐ๋ ค๋ฉด?
์ด๊ธ ๊ฐ๋ฐ์ ํ์๋ค์ QA ๊ด๋ จ job์ ๋ง์ด ๊ฐ๊ฒ ๋๋ค.
๊ณ ๊ธ์ง๊ณ , ์ข์ ์ฝ๋๋ฅผ ๋ง์ด ๋ณด๊ฒ ๋๋ฉด ๋ฐฐ์ธ ์ ์๋ค.
ํ์ฌ๋ค์ logical architecture๊ฐ ์ด๋ฏธ fix ๋ ๊ฒฝ์ฐ๋ ๋ง๋ค.
๋น๊ทผ๋ง์ผ์ ์๋ฅผ ๋ค์ด RX Swift, ์๋ผ๋ชจํ์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ฌ์ฉ
(ํน์ ํ๋ ์์ํฌ, ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์์กด์ ์ธ ๊ฒฝ์ฐ๋ ์๋ค.)
์ ํํ๊ฒ ์ ๋์ํ๋๊ฐ?
๋ง์ ํ ์คํธ ์ผ์ด์ค๋ฅผ ์์ฑํ๊ณ , ํ ์คํธ ํ๋ ์ ๋ฌด
: ์ฝ๋ฉ์ด ์ ํํ๊ฒ, ๋ชจ๋ edge case์์ ๋์ํ๋๊ฐ?
: Verification ์ ๋ฌด
+ ๋์์ธ ๋๋ก ๊ฐ๋ฐ์ด ์ ๋์๋๊ฐ? (Validation ์ ๋ฌด)
์๋ํ ๋์์ธ ๋๋ก ์๋๋ ๊ฒฝ์ฐ๊ฐ ์๊ณ ,
ํด๋ผ์ด์ธํธ๊ฐ ์ํ๋ ๋๋ก ์๋ฒ API๊ฐ ์์ฑ์ด ์ ๋ ๊ฒฝ์ฐ๋ ์๋ค.
ํญ์ happy ์๋๋ฆฌ์ค๋ง ์์ด์๋ ์๋๋ค. (์ ์ ๋ค์ ์๋ฑํ ํ๋์ ํ๊ฒ ๋๋ค.)
์ฐ๋ฆฌ์ ์๋ฃจ์ ์์, ํด๋น ์ํคํ ์ณ๊ฐ ์ต์ ์ ๋ฐฉ๋ฒ์ธ์ง
QA ๋ฆฌ์คํธ๋ฅผ ํตํด ์์๋ณผ ์ ์๋ค.
์ฐ๋ฆฌ๊ฐ ์ค๋ ๋๋ฅผ ๋๋์ด์ผ๊ฒ ๋ค.
ํ๋ก์ธ์ค๋ฅผ ๋ถ๋ฆฌํด์ผ๊ฒ ๋ค
ํด๋น ์ฑํฐ์ ๋ชฉ์ : ์ด๋ฌํ ๋ ผ์๋ฅผ ํด๋ณด๊ณ ์ถ์๋ค.
์ํคํ ์ณ๋ ๊ฐ๊ฐ์ ์ปดํฌ๋ํธ๊ฐ ๊ทธ ์์ฒด๋ก ์ค๋ช ๊ฐ๋ฅํ์ง๋ง,
ํจ๊ป ํ์ ๋ ์ํธ ๊ฐ์ ๋์์ ์ค๋ช ํ๋ ๊ฒ์ด ์ํคํ ์ณ์ด๋ค.
์ํคํ ์ฒ: ํ ๋ชฉ์์ ํ์ฉํ๋ ๋ง
(๋น๋น ์์ฒด๋ก, ๋ ๋ค๋ฆฌ๋ ๋ชจ๋ ๊ทธ ์์ฒด๋ก ์๋ฏธ๊ฐ ์๋ค.
๊ทธ๋ฐ๋ฐ, ๋น๋ฉ ์ฌ์ด๋ฅผ ์ด์ด์ฃผ๋ ๋ค๋ฆฌ๋ ์ํคํ ์ณ๋ฅผ ์๋ฏธํ๋ค.)
3-5๋ ๊ฐ๋ฐํ๋ค๋ณด๋ฉด
์ค๋ ๋ or ํ๋ก์ธ์ค์ ๊ฐ์ด ์กํ๋ ๊ฒ
Physical condition ์๊ฐ ์ํ๊ณ ํ๋ก๊ทธ๋จ ์ง๋ฉด ์ด๋กํด?
๋คํธ์ํฌ๊ฐ ์์ ๋จน๊ณ , ๋ฐฐํฐ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ ๋ ์ฐ๊ฒ ํด์ผํ๋ค.
ํ์ค์ด ๊ต์๋ ์ ํ๋ธ ๊ผญ ๋ณด์ ์ธ์ฌ์ดํธ๊ฐ ์๋ค.
๋ชจ๋ OS ์์ ๋๋์ด์ง ๊ฒ
OOP -> ๋์์ธ ํจํด 23๊ฐ
์ฐ์์๋ ๋ฌ๋ผ
๊ทธ์น๋ง ๊ฐ์ ํจํด์ ๋ฌธ์ ๋ฅผ ํ๊ณ ์๋ค
Ex) ๊ฐ์ด ๋ณํ์ ๋ ๋นจ๋ฆฌ ์ฝ์ด์ค๊ณ ์ถ๋ค
-> ๊ทธ ๊ฐ์ ์ง์ผ๋ณด๊ณ ์๋ค๊ฐ ์๋ ค์ค
Observable ๋ฑ๋ฑ
๋คํธ์ํฌ๋ผ๋ ๊ฑด ๋์ด์ง ์ ์๋ค๋ ๊ฑธ ๊ณ ๋ คํด์ผ ํจ
sync๋ผ๊ณ ์ฐ๋ฆฌ๊ฐ ์๊ฐํ์ง๋ง, ๋น๋๊ธฐ ์ฒ๋ฆฌ๋ฅผ ํด๋๊ณ ,
sync์ฒ๋ผ ๋ณด์ด๊ฒ ํ๋ ๊ฒฝ์ฐ๊ฐ iOS์์๋ ๋ง์ด ๋ณด์ธ๋ค.
๋น๋๊ธฐ๋ฅผ ๋๊ธฐ์ฒ๋ผ ๋ณด์ด๋๋ก ์ฒ๋ฆฌํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค.
Sequence Diagram
Object - Thread ๊ฐ์ ๋ฐ์ดํฐ ์ ๋ฌ ๊ตฌ์กฐ
๊ทธ๋ฅ ์น ํ์ ๊ทธ๋ฆฐ๋ค
ํ์ ์ ํ๋ ค๋ฉด -> ์์ผ๋ก ๊ทธ๋ฆฌ๋๊ฒ ์ ์ผ ๋น ๋ฅด์ง ์์๊น?
๋ชจ๋ API๊ฐ ๋น์ทํ Flow๋ฅผ ๊ฐ์ง๊ณ ์๋ ๋๋ -> ์ค๊ณ๋ฅผ ํ๊ณ ๊ฐ๋ฐ
UML : ๋ฐ๋ฅ๋ถํฐ ๋ค ๋ง๋ค ๋ (ํฐ ์กฐ์ง์์ ์ ์๋ฏธํ ๊ฒ)
iOS์ lifecycle (์ ์ฝ ์กฐ๊ฑด์ด ์๋ค)
์ฐ๋ฆฌ์ ์ฑ ๊ฐ๋ฐ: ์ฐธ์กฐํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฑ ๋ฐ๋ฐ๋ฅ์ด ๋ง์ ๊ฒ
์ฐ๋ฆฌ๋ ์๊ณ , agileํ๊ณ ๊ธฐ๋ฏผํ ์กฐ์ง (ํ์ง๋ง ๊ธฐ๋ก์ ๋จ๊ฒ)
10๋ช ์ด์ ๋ค์ด๊ฐ๋ฉด ์์ฌ์ํต ๋น์ฉ์ด ํฌ๋ค
๊ณตํต์ ์ ํํ๋ ์ธ์ด๋ฅผ ๋ง๋ค์ -> UML
์ ๋ต์ ์ฐพ๋ ๊ฒ์ด ์๋๋ผ
ํจ๊ป ์๊ฐํด๋ณด๋ Chapter
์ฝ๋ ๋ฆฌ๋ทฐ: QA ์ ๊ฒ ๋ฆฌ์คํธ ์ค ํ๋
์๋ก์ ํจํด์ด ํ์ ํจํด์ด ๋์ด๊ฐ๋ ์ข์ ํ๋ก์ธ์ค
์ฐ๋ฆฌ๋ ์ Clean Architecture๋ฅผ ์ถ๊ตฌํด์ผ ํ๋๊ฐ?
๋จ์ธ๋ ๋ํ: ์ฝ๋๋ฅผ ์์ฑํ๋ค๋ณด๋ ํด๋ฆฐ ์ํคํ ์ณ๊ฐ ๋๋๋ผ
๋ฌธ์ ๋ค์ ๋น์ท๋น์ทํ๋๊น, ์๊พธ ๋ค๋ฌ๋ค๋ณด๋ฉด ๋น์ทํด์ง๋ค.
๋ฌธ์ ๋ ํ๋์์ ๋ ๋จ์ด์ง ๊ฒ ์๋ค. ๋ค๋ค ์ ์ฌํ ๋ฌธ์
(ํน๋ณํ ํน๋ณํ๊ณ ์ข์ ๋ฌธ์ ๋ ์๋ค)
'ComputerScience' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[RaspberryPi] ๋ผ์ฆ๋ฒ ๋ฆฌํ์ด๋ก NAS ์๋ฒ ๋ง๋ค๊ธฐ (0) | 2024.05.16 |
---|---|
[์๋ฃ๊ตฌ์กฐ] ๊ธฐ๋ง๊ณ ์ฌ Summary (0) | 2023.07.21 |