CH0. ๋์
0.1. ์ค๊ณ๊ฐ ์ ์๋ชป๋๋๊ฐ?
์์คํ ์ ์ฒ์ ๊ตฌ์ถํ ๋
- ์๋ํ ๊ณํ์ ์ธ์ (์ฝ๋๋ฅผ ๊น๋ํ๊ฒ ์ง์ ์กํ ์ํ๋ก ์ ์งํ๊ธฐ ์ํด)
ํ์ง๋ง ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ์๋ชป ๊ตฌํ or ์ฃ์ง ์ผ์ด์ค์ ์ํด ๋งํ๊ฒ ๋จ
0.2. ์บก์ํ์ ์ถ์ํ
์บก์ํ
- ํ๋์ ๋จ์ํ & ๋ฐ์ดํฐ ๊ฐ์ถ๊ธฐ
- ์ฝ๋์ ์ํํ ์์ ์๋ณ -> ๊ฐ์ฒด๋ ํจ์๋ฅผ ๋ถ์ฌ
์ถ์ํ
- ๊ฐ์ฒด๋ ํจ์๋ฅผ ์ถ์ํ๋ผ ํจ
import requests
parsed = requests.get(<some_url>).json()
์ ์ถ์ํ ๋ ์์
ํ๋จ๊ณ ๋ ๋์๊ฐ๋ฉด ์์ ์ ์๋ณํ๊ณ ์ด๋ฆ์ ๋ถ์ฌํด์ ๋ ๋์ ์์ค์ ์ถ์ํ๋ฅผ ํ ์ ์์
import duckduckgo
ductductgo.query('Sausages').results
์ฑ ์ ์ฃผ๋ ์ค๊ณ : ์ฝ๋๋ฅผ ๋ฐ์ดํฐ๋ ์๊ณ ๋ฆฌ์ฆ์ด ์๋๋ผ ํ๋์ ์ค์ฌ์ผ๋ก ์๊ฐ
0.3. ๊ณ์ธตํ
์บก์ํ์ ์ถ์ํ๋ฅผ ํ๋ฉด ์ธ๋ถ์ฌํญ์ ๊ฐ์ถ๊ณ ๋ฐ์ดํฐ์ ์ผ๊ด์ฑ์ ๋ณดํธํ ์ ์์
3๊ณ์ธต ์ํคํ ์ฒ
[Three-Tier Client-Server Architecture in Distributed System - GeeksforGeeks](https://www.geeksforgeeks.org/three-tier-client-server-architecture-in-distributed-system/)
์ด ์ฑ ์ ๋๋จธ์ง ๋ถ๋ถ์ 3๊ณ์ธต ๋ชจ๋ธ์ ํ๊ฐ์ง ์์น์ ์ง์คํ๋ ๋ชจ๋ธ๋ก ๋ณ๊ฒฝํ ๊ฒ (ํ )
0.4. ์์กด์ฑ ์ญ์ ์์น
SOLID์ D์ธ ์์กด์ฑ ์ญ์ ์์น (Dependency inversion principle - DIP)
์ ์
- ๊ณ ์์ค์ ๋ชจ๋์ ์ ์์ค์ ๋ชจ๋์ ์์กดํด์๋ ์ ๋๋ค. ๋ ๋ชจ๋ ๋ชจ๋ ์ถ์ํ์ ์์กดํด์ผ ํ๋ค.
- ์ถ์ํ๋ ์ธ๋ถ ์ฌํญ์ ์์กดํด์๋ ์ ๋๋ค. ๋ฐ๋๋ก ์ธ๋ถ์ฌํญ์ ์ถ์ํ์ ์์กดํด์ผ ํ๋ค.
์๋ก ๋ ๋ฆฝ์ ์ผ๋ก ๋ณ๊ฒฝํ๊ธธ ์ํจ (๊ณ ์์ค & ์ ์์ค)
- ๊ณ ์์ค : ๋น์ฆ๋์ค์ ํ์์ ๋ฐ๋ผ ์ฝ๊ฒ ๋ณ๊ฒฝ ๊ฐ๋ฅํด์ผ ํจ
์ด ๋ ์ฌ์ด์ ์ถ์ํ๋ฅผ ์ฌ์ฉํ๋ฉด ๋ ๊ณ์ธต์ด ์๋ก ๋ ๋ฆฝ์ ์ผ๋ก ๋ณ๊ฒฝ๋ ์ ์๋ค.