์ท๊ฐ๊ฒ์์ ์ผํ ๋ ์์๋ ์ผ์ด๋ค. ์ฐ๋ฆฌ๋ ๋ฌด์์์ ์ผ๋ก ํ ์ธ ํ์ฌ๋ฅผ ์ด์๋๋ฐ ํ์ด๋ฐ์ ๋์น ์๋๋ค์ด ํ๊ฒฐ๊ฐ์ด ํฌ๋๊ฑฐ๋ฆฌ๊ณ ๋ ํ๋ค. ํ ์ธ ํ ๋ ๋ฌธ์ ์ข ์ฃผ๋ฉด ์ข๊ฒ ๋ค๊ณ . ๋งค๋ฒ ๋ฉฐ์น ์ ๊น์ง ํ ์ธ ํ๋ค๋ ๊ฑธ ์๊ณ ๋๋ฉด ์์ํ๋ค๊ณ . ์ต์ ๋ฒ ํจํด์ ์ด๋ฌํ ์๋๋ค์ ์ํ ๋ฌธ์ ๋ฐ์ก๊ณผ ๊ฐ๋ค.
“๊ด์ฐฐ์”๋ผ๋ ๋จ์ด๋ฅผ ๋ณด๋ฉด ํด๋น ์ด๋ฆํ๋ฅผ ๋ฌ๊ณ ์๋ ๊ฐ์ฒด๋ ์ด๋ ํ ์ญํ ์ ์ํํ ๊ฒ ๊ฐ์๊ฐ? ๋๊ตฐ๊ฐ๋ฅผ ๋ฉด๋ฐํ ์ง์ผ๋ณด๋ ์ญํ ์ ์๋๊น? ์ต์ ๋ฒ ํจํด์์๋ ์ด ์ต์ ๋ฒ์ ์๋ฏธ๊ฐ ์กฐ๊ธ ๋ค๋ฅด๋ค. ๋จ์ํ ์ง์ผ๋ณธ๋ค, ๋ณด๋ค๋ `์ฐ๋ฝ์ ๊ธฐ๋ค๋ฆฐ๋ค`๋ผ๋ ๊ฒ์ด ๋ ์ณ์ ํํ์ผ ๊ฒ์ด๋ค.
๋ง์น ์ท๊ฐ๊ฒ ํ ์ธ ํ์ฌ ๋ฌธ์๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ ์๋๊ณผ ๊ฐ๋ค. ์ท๊ฐ๊ฒ๋ฅผ ์ฃผ์ํ๊ณ , ๊ด์ฐฐํ์ง๋ง ๊ฒฐ๊ตญ ์ท๊ฐ๊ฒ์์ ๋ฌธ์๋ฅผ ๋ณด๋ด์ฃผ์ด์ผ ์๋์ ํ๋์ ๊ฒฐ์ ํ ์ ์๋ค. ์ท๊ฐ๊ฒ๋ฅผ ๋ค๋ฆด์ง, ๋ค๋ฆฌ์ง ์์์ง ๊ทธ๋ฆฌ๊ณ ์ท์ ์ด์ง, ์ฌ์ง ์์ ์ง. ๊ทธ๋ฆฌ๊ณ ์ท๋ค์ ๋๋ฌ๋ณด๋ค๊ฐ ๋๋ค์ ๊ฒฐ์ ์ ๋ด๋ฆด ๊ฒ์ด๋ค. ์ฌ์ ํ ์ด ์ท๊ฐ๊ฒ์ ์๋ฆผ ๋ฌธ์๋ฅผ ๋ฐ์์ง, ๋ฐ์ง ์์์ง. ์ด๋ฌํ ๊ณผ์ ์ ํจํดํ ํ ๊ฒ์ ์ต์ ๋ฒ ํจํด์ด๋ผ๊ณ ํ๋ค.
์๋์ ๋ณด๋ด๋ ์ท๊ฐ๊ฒ๋ฅผ Subject, ์๋๋ค์ Observer๋ผ๊ณ ํ๋ค.
์ด๋ฌํ ์ต์ ๋ฒ ํจํด์ ์ฌ์ฉํ๋ฉด ์๋๋ค๋ ๋ณธ์ธ๋ค์ ์ฑ
์์ ๋ค ํ ์๊ฐ์ ์ ํํ๊ฒ ์ ์ ์๊ธฐ์ ๋ถํ์ํ ์กฐํ๊ฐ ํ์์น ์๋ค. ๋ํ ๊ฐ๊ฒ๋ฅผ ๋ฏ์ด ๊ณ ์น ํ์ ์์ด ์๋ก์ด ์๋์ ๋ฒํธ๋ง ์ถ๊ฐํ๋ฉด ๋๊ธฐ ๋๋ฌธ์ SOLID ๋ฒ์น์์ ํ์ฅ์๋ ์ด๋ ค ์๊ณ ๋ณ๊ฒฝ์๋ ๋ซํ ์๋ Open-Close Principle ๊ฐ๋ฐฉ ํ์ ๋ฒ์น์ ์ ์งํฌ ์ ์๋ค. ๊ฒ๋ค๊ฐ ์ธ์ ๋ ์ง ์ท๊ฐ๊ฒ์์ ๊ด๊ณ๋ฅผ ์๋์ด ๋์ ์ ์๊ธฐ์ ๋ฌด์กฐ๊ฑด์ ์ธ ๊ด๊ณ๊ฐ ์๋๋ผ๋ ์ฅ์ ์ด ์๋ค. ์ด๋ ์๋์ ์ธ์ ๋ ์ง ์ด๋ฌํ ๊ด๊ณ๋ฅผ ๋์ ์ ์๋๋ฐ ์ด๋ ์๋๊ณผ ์ท๊ฐ๊ฒ๋ ํ ์ธ ํ์ฌ์ ๋ํ ์๋ฆผ์ ์ฃผ๊ณ ๋ฐ๊ฑฐ๋, ์ฃผ๊ณ ๋ฐ์ง ์๋ ๊ด๊ณ๋ผ๋ ์ ์ ๊ฐ ์ถ ์์ ์กด์ฌํ๊ธฐ ๋๋ฌธ์ด๋ค. ์ฆ, ์ฑ์ด ์คํ๋๋ ๋ฐํ์์๋ ์ด๋ฌํ ๊ด๊ณ๊ฐ ๋ฏธ๋ฆฌ ์ ํด์ ธ ์๊ธฐ์ ์ด์ ๋ํ ์
๋ฐ์ดํธ๊ฐ ๊ฐ๋ฅํ๋ค.
๋ค๋ง ์๋๋ค์ด ์๋ฆผ ๋ฌธ์๋ฅผ ๋ฐ๋ ํ์ด๋ฐ์ ๋ฌด์์์ ์ด๊ธฐ์ ๋ง์๋๋ก ์ ํ ์ ์๋ค. ๋ํ ์๋์ด ๋ ์ด์ ์ด ์ท๊ฐ๊ฒ๋ฅผ ์ค์ง ์๊ธฐ๋ก ๋ง์ ๋จน์์ง๋ง ๋ฒํธ ์ญ์ ํ๋ ๊ฒ์ ์์๋ค๋ฉด, ๋ถํ์ํ ๋ฌธ์๋ฅผ ๋ฐ๊ฒ ๋์ด ์ท๊ฐ๊ฒ๋ ์๋ ๋ชจ๋ ์๋ก์ ์์์ ๋ญ๋นํ๋ ๊ฒฐ๊ณผ๋ฅผ ๋ณ์ ์ ์๋ค. ํ๋ก๊ทธ๋จ ์์ผ๋ก๋ ๋ฉ๋ชจ๋ฆฌ ๋์๊ฐ ์๊ธฐ๊ฒ ๋๋ ๊ฒ์ด๋ค. ๊ฒ๋ค๊ฐ ์ด ํจํด์ ์์ฃผ ์ฌ์ฉํ๋ค๋ฉด ๊ตฌ์กฐ์ ๋์์ด ์ ์ ๋ณต์กํด์ง๊ณ ์์๋ณด๊ธฐ๊ฐ ํ๋ค์ด์ง๋ค.
๋๋ฌธ์ ์ด๋ฌํ ์ฅ๋จ์ ์ ๊ณ ๋ คํด ์ ์ ํ ์ฌ์ฉ์ด ํ์ํ๋ค.
'๐ iOS > ๐ ๊ฐ๋ ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Network] TLS/SSL (1) | 2024.10.28 |
---|---|
[ํจ๋ฌ๋ค์] ํจ์ํ ํ๋ก๊ทธ๋๋ฐ (1) | 2024.10.23 |
[iOS]Unit Test์ ์ฌ์ฉ (0) | 2024.02.05 |
[๋์์ธ ํจํด]Delegate Pattern (2) | 2024.01.27 |