Week 6 ํ์ต ์ ๋ฆฌ
1. ์ํํธ์จ์ด์์ง๋์ด๋ง๊ณผ AI์์ง๋์ด๋ง
2. Linux, ์ ์คํฌ๋ฆฝํธ
3. Streamlit์ ํ์ฉํ ์นํ๋กํ ํ์ ๊ตฌํํ๊ธฐ
4. ํ์ด์ฌ ํ๊ฒฝ ์ค์ ๊ณผ ๋๋ฒ๊น
1. ์ํํธ์จ์ด์์ง๋์ด๋ง๊ณผ AI์์ง๋์ด๋ง
์ํํธ์จ์ด ์์ง๋์ด๋ง์ด๋? โ ์ํํธ์จ์ด๋ฅผ๊ฐ๋ฐํ๋๊ณผ์ ์์ ์ฒด๊ณ์ ์ด๊ณ ํจ์จ์ ์ธ๋ฐฉ๋ฒ์์ฌ์ฉํ์ฌ ์ํํธ์จ์ด์ํ์ง๊ณผ์ ์ง๋ณด์์ฑ์๋ณด์ฅํ๋ํ๋ฌธ๋ถ์ผ
- ์ข์ ์ํํธ์จ์ด ์ค๊ณ ์ ํ์ํ ๊ฐ๋
- ๋ชจ๋์ฑ: ํฐ ํ๋ก๊ทธ๋จ์ ์๊ณ ๋ ๋ฆฝ์ ์ธ ๋ถ๋ถ์ผ๋ก ๋๋๋ ๊ฒ, ๋ ๊ณ ๋ก ์กฐ๋ฆฝํ๋ฏ์ด
- ์์ง๋: ํ๋์ ๋ชจ๋ ์์์ ์๋ก ๋ค๋ฅธ ํจ์๊ฐ ์ฎ์ด๋ ์ ๋
- ๊ฒฐํฉ๋: ๋ชจ๋ ๊ฐ ์ํธ์์กด์ฑ ์ ๋
โ ๋์์์ง๋(๋ชจ๋๋ด๊ต๋ฅ)์๋์จํ๊ฒฐํฉ๋(๋ชจ๋๋ผ๋ฆฌ๋๊ต๋ฅ)๋ฅผ๊ฐ์ง์ํํธ์จ์ด๋ฅผ์งํฅ
- ํ
์คํธ โ ํ๋ก๊ทธ๋จ์ด ์์๋๋ก ์๋ํ๊ณ ๋ฌธ์ ๊ฐ ์๋์ง ํ์ธํ๋ ๊ณผ์
- Unit Test: ๊ฐ๋ณ๋จ์ํ ์คํธ
- Integration Test: ๋ค๋ฅธ๋จ์, ๊ตฌ์ฑ์์ ๋์ ํ ์คํธ
- End to End Test: ์ฒ์๋ถํฐ ๋๊น์ง ๋ชจ๋ ํ ์คํธ
- Performance Test: ์ฑ๋ฅ,๋ถํ ํ ์คํธ
- ๋ฌธ์ํ
โ ์ํํธ์จ์ด๋ฅผ ์ด์ฉํ๊ธฐ ์ํ README, API๋ฌธ์, ์ํคํ ์ฒ ๋ฌธ์
์ข์ ์ํํธ์จ์ด๋ ์ข์ ๋ฌธ์๊ฐ ์กด์ฌ โ ๊ฐ์ธ ํ๋ก์ ํธ์์๊ณ ๋ฌธ์ํ๋ฅผ ์ ๊ฒฝ ์ฐ๋ฉด ์ข์
ํ๋์ ์ ์ฒด์ ์ธ ์ํํธ์จ์ด๋ฅผ ํ์ธํ ์ ์์
- AI ์์ง๋์ด๋ง
์ํ์จ์ด ์์ง๋์ด๋ง๊ณผ AI ์์ง๋์ด๋ง์ ๋น์ทํด ๋ณด์ด์ง๋ง ์ญํ๊ณผ ๊ด์ฌ์ฌ๊ฐ ๋ค๋ฆ์ ์ธ์งํ๋ ๊ฒ์ด ์ข์
2. Linux, ์ ์คํฌ๋ฆฝํธ
- Linux
โ ํนํ ์๋ฒ์ ๊ด๋ จ๋ ์ง๊ตฐ์ด๋ฉด Linux๋ฅผ ๋ค๋ฃฐ ์ผ์ด ๋ง์
- ์
- sh - ์ต์ด์ ์
- bash - Linux ํ์ค ์
- zsh - Mac ์นดํ๋ฆฌ๋ OS ๊ธฐ๋ณธ ์
โ ์ฌ์ฉ์๊ฐ ๋ฌธ์๋ฅผ ์ ๋ ฅํด ์ปดํจํฐ์ ๋ช ๋ นํ ์ ์๋๋ก ํ๋ ํ๋ก๊ทธ๋จ
- ์ UX
username@hostname:current_folder ํํ๋ก ์กด์ฌ
hostname: ์ปดํจํฐ ๋คํธ์ํฌ์ ์ ์๋ ์ฅ์น์ ํ ๋น๋ ์ด๋ฆ. IP ๋์ ๊ธฐ์ตํ๊ธฐ ์ฌ์ด ๊ธ์๋ก ์ ์ฅ
- ์๋ฒ์์ ์์ฃผ ์ฌ์ฉํ๋ ์ ์ปค๋ฉ๋
โ ๊ต์ฅํ ๋ง๊ธฐ ๋๋ฌธ์ ๊ฐ์ PPT๋ฅผ ํ์ธํ๋๋ก ํจ
3. Streamlit์ ํ์ฉํ ์นํ๋กํ ํ์ ๊ตฌํํ๊ธฐ
- ํ๋กํ ํ์
โ AI ๋ชจ๋ธ์ Input โ Output์ ํ์ธํ ์ ์๋๋ก ์ค์
- Streamlit
โ AI ์์ง๋์ด๊ฐ Python์ ์ฌ์ฉํ์ฌ ๊ฐ๋จํ๊ณ ์ฝ๊ฒ ํ๋กํ ํ์ ์ ๋ง๋ค ์ ์์
Streamlit Cloud๊ฐ ์กด์ฌํด ๋ฐฐํฌ๋ ์ฝ๊ฒ ๊ฐ๋ฅ, ํ๋ฉด ๋ นํ ๊ธฐ๋ฅ์ ์ ๊ณตํด ํ๋กํ ํ์ ๋ นํ ๊ฐ๋ฅ
Streamlit์ ํ๋ฉด์์ ๋ฌด์ธ๊ฐ ์ ๋ฐ์ดํธ๋๋ฉด ์ ์ฒด Streamlit ์ฝ๋๊ฐ ๋ค์ ์คํ๋จ
ex 1) Code๊ฐ ์์ ๋๋ ๊ฒฝ์ฐ
ex 2) ์ฌ์ฉ์๊ฐ Streamlit์ ์์ ฏ๊ณผ ์ํธ์์ฉํ๋ ๊ฒฝ์ฐ (๋ฒํผ ํด๋ฆญ, ์ ๋ ฅ์์์ ํ ์คํธ ์ ๋ ฅ ์๋ฑ)
โ ์ด๋ Session State๋ฅผ ์ฌ์ฉํ๋ฉด ํด๊ฒฐ ๊ฐ๋ฅ
-
Session State โ Global Variable์ฒ๋ผ ๊ณต์ ํ ์ ์๋ ๋ณ์๋ฅผ ๋ง๋ค๊ณ ์ ์ฅ
- ์ฌ์ฉํ๋๊ฒฝ์ฐ
- ์ํ๋ฅผ ์ ์งํ๊ณ ์ถ์ ๊ฒฝ์ฐ
- ํน์ ๋ณ์๋ฅผ ๊ณต์ ํ๊ณ ์ถ์ ๊ฒฝ์ฐ
- ์ฌ์ฉ์ ๋ก๊ทธ์ธ ์ํ ์ ์ง
- ์ฑํ ์์ ๋ํ ํ์คํ ๋ฆฌ ์ ์ง
- ์ฌ๋ฌ๋จ๊ณ์ Form
- ์ฌ์ฉํ๋๊ฒฝ์ฐ
-
Streamlit Caching
โ ์บ์ฑ์ ์ฌ์ฉํด ํจ์ ํธ์ถ ๊ฒฐ๊ณผ๋ฅผ Local์ ์ ์ฅํด, ์ฑ์ด ๋๋นจ๋ผ์ง, ์บ์ฑ๋ ๊ฐ์ ๋ชจ๋ ์ฌ์ฉ์๊ฐ ์ฌ์ฉํ ์ ์์. ๋ฐ๋ฉด, ์ฌ์ฉ์๋ง๋ค ๋ค๋ฅด๊ฒ ์ ๊ทผํด์ผ ํ๋ฉด Session State์ ์ ์ฅ ํ๋ ๊ฒ์ ์ถ์ฒ
Streamlit์ ๊ฐ๋ฐํ๋ ๊ณผ์ ์์ ์ ์ผ ์ด๋ ค์ด Session State์ ๋ํด ๊ผญ ์ดํดํ๊ธฐ
4. ํ์ด์ฌ ํ๊ฒฝ ์ค์ ๊ณผ ๋๋ฒ๊น
๋ด๊ฐ ์ฌ์ฉํ๊ณ ์ ํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํธํ๋๋ ํ์ด์ฌ ๋ฒ์ ์ Pypi์์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ฒ์ํด ํ์ธ ๊ฐ๋ฅ
- ํ์ด์ฌ ์ค์น ๋ฐฉ๋ฒ
- ํ์ด์ฌ ๊ณต์ ํํ์ด์ง์์ ํ์ผ์ ๋ค์ด๋ฐ์ ์ค์น
- Conda๋ก ์ค์น
- Docker๋ก ํ์ด์ฌ ์ด๋ฏธ์ง ์ค์น
- ํจํค์ง ๊ด๋ฆฌ์(brew, apt, winget)๋ก ์ค์น
- pyenv๋ก ์ค์น
-
๊ฐ์ํ๊ฒฝ
- venv
- conda
- pyenv-virtualenv
- pipenv
-
venv ๊ตฌ์กฐ
- bin ํด๋: shell์์ ๋ช ๋ น์ด ์ ๋ ฅ ์, ์ด ๊ฒฝ๋ก ๋ด์์ ์ ์ผ ๋จผ์ ์ฐพ์ python ์ ๋ ฅ ์ ์ด๋ค python์ ์คํ์ํค๋ ์ง ์ ์ ์์
- lib ํด๋: ํจํค์ง ์ค์น ์, ์ด ๊ฒฝ๋ก์ ์ค์น. import ์ ์ด ๊ฒฝ๋ก์์ ์ ์ผ ๋จผ์ ์ฐพ์
-
pip ํจํค์ง ๋งค๋์
- pip list --ยญnot-required --ยญformat=freeze: ์ด๋ ํ ํจํค์ง๋ฅผ ์คํํ ๋ ํ์ํ ํจํค์ง๋ฅผ ๋ณด์ฌ์ค
- pip freeze > requirements.txt: ๋ช ๋ น์ด๋ฅผ ํตํด requirements.txt๋ฅผ ๋ง๋ค ์ ์์
-
๋๋ฒ๊น Process