Monday(03.17)
https://koreatstm.tistory.com/268
Airflow
MLOps Machine Learning Operations๋จธ์ ๋ฌ๋(ML) ๋ชจ๋ธ์ ๋ฐฐํฌ, ๋ชจ๋ํฐ๋ง, ์ ์ง ๊ด๋ฆฌํ๋ ์ผ๋ จ์ ๊ณผ์ ์ ์๋ฏธ๋ชฉํ: ML ๋ชจ๋ธ์ ๊ฐ๋ฐ ์๋ช ์ฃผ๊ธฐ๋ฅผ ์๋ํํ๊ณ ์ต์ ํํ๋ ๊ฒ์ด ๋ชฉํํ์์ฑ์ํฌํ๋ก์ฐ ์๋ํ:
koreatstm.tistory.com
Tuesday(03.18)
์์
AirFlow ์ค์ต
https://koreatstm.tistory.com/268#%EC%8B%A4%EC%8A%B5-1
ํน๊ฐ
์ ์ฌ์ง์์๋ฅ ์์ฑ ๊ฐ์ด๋
1. ์ ์ฌ์ง์์๋ฅ๋?
- ์ ์ฌ์ง์์๋ ๋ด๊ฐ ์ด๋ค ์ฌ๋์ธ์ง ๋ณด์ฌ์ฃผ๋ ์ค์ํ ๋๊ตฌ, ๋ฉด์ ๊ธฐํ๋ฅผ ์ป๋ ์ฒซ ๋ฒ์งธ ๊ด๋ฌธ
- ๋์ ๊ฐ์ ๊ณผ ๊ฒฝํ์ ํจ๊ณผ์ ์ผ๋ก ๋ณด์ฌ์ฃผ์ด์ผ ํ๋ค.
2. ์ง์์ ์์ฑ ์ ์ ์ ์ฌํญ
- ์ง์ ์๊ฒฉ๊ณผ ์๊ฑด์ ๋ง์ถ๊ธฐ: ์ง์ํ๋ ํ์ฌ์ ์ง๋ฌด์ ๋ง๋ ๊ฒฝํ๊ณผ ์ญ๋์ ๊ฐ์กฐ
- ๊ฐ์ ์ดํ: ๊ฒฝ์ง๋ํ, ํ๋ก์ ํธ, ๋ด์ฌํ๋ ๋ฑ์ ํตํด ๋ด๊ฐ ๊ฐ์ง ๊ฐ์ ๊ฐ์กฐ
3. ์ง์์ ์์
- ์์ฌ ์์์ด ์์ผ๋ฉด ๊ทธ์ ๋ง์ถฐ ์์ฑํ๊ณ , ์์ ์์์ ์ฌ์ฉํ ๊ฒฝ์ฐ ์๋ ์์๋๋ก ์์ฑ
- ํค์๋, ์ง์ ๊ธฐ์ , ์ง์ ์ง๋ฌด, ๊นํ๋ธ/๋ธ๋ก๊ทธ
- ์ธ์ ์ฌํญ, ํ๋ ฅ ์ฌํญ, ๊ฒฝ๋ ฅ ์ฌํญ, ์คํฌ, ์๊ฒฉ์ฆ/์ดํ, ์์ ๋ด์ญ
4. ๊ธฐ๋ณธ ์ฌํญ
- ๊ฒฝ๋ ฅ ์ฌํญ: ์ง๋ฌด์ ๊ด๋ จ ์๋ ๊ฒฝํ๋ง ๊ธฐ์
- ํ๋ก์ ํธ ํ์ด์ง: ํ๋ก์ ํธ ๊ธฐ๊ฐ, ์ญํ , ๊ฐ๋ฐ ํ๊ฒฝ, ์ฑ๊ณผ ๋ฑ ๊ตฌ์ฒด์ ์ผ๋ก ์์ฑ
์๊ธฐ์๊ฐ์ ์์ฑ ์ ๋ต
1. ๊ธฐ์ vs ์ง๋ฌด ์ด์
- ์ง๋ฌด ์ด์ ์ด ์ค์. ๋ด๊ฐ ์ ์ด ์ง๋ฌด๋ฅผ ์ ํ ์ ์๋์ง, ๋๋ง์ ๊ฐ์ ์ ํตํด ํ์ฌ์ ๊ธฐ์ฌํ ์ ์์์ ๊ฐ์กฐ
2. ๋๊ด์ vs ๋ฏธ๊ด์
- ๋๊ด์์ผ๋ก ๋จผ์ ํต์ฌ์ ๋งํ๊ณ ๋ด์ฉ์ ์ฑ์ฐ๊ธฐ
3. ์๊ธฐ์๊ฐ์ ์์ฑ ํ
- ์ ํํ ์ํฉ ์ค๋ช : ๊ฐ์ ํํ๋ณด๋ค๋ ์ํฉ์ ์ ํํ๊ฒ ์ค๋ช
- STAR-LC ๊ธฐ๋ฒ ํ์ฉ: ์ํฉ, ๊ณผ์ , ํ๋, ๊ฒฐ๊ณผ, ๋ฐฐ์ด ์ ์ ํฌํจํด ๊ฒฝํ์ ๊ตฌ์ฒด์ ์ผ๋ก ์์
4. ์์
- ์ฑ๊ฒฉ์ ์ฅ๋จ์ : ์ง๋ฌด ๊ด๋ จ ์ฅ์ ๊ณผ ๋จ์ ์ ๊ทน๋ณต ๋ฐฉ์์ ํจ๊ป ์์
์ง๋ฌด๊ฒฝํ ๋ฐ ์ง์๋๊ธฐ
1. ์ง๋ฌด๊ฒฝํ
- ๊ด๋ จ ๊ฒฝํ ๊ฐ์กฐ: ์ง์ ์ง๋ฌด์ ๊ด๋ จ๋ ๊ฒฝํ์ ์ค์ฌ์ผ๋ก ์์ฑํ๊ณ , ๋ชฉํ, ๊ณผ์ , ์ฑ๊ณผ๋ฅผ ๊ตฌ์ฒด์ ์ผ๋ก ์์
2. ์ง์๋๊ธฐ
- ํ์ฌ์ ๋ํ ๊ด์ฌ: ํ์ฌ์ ๋น์ ์ด๋ ๊ฐ์ ์ ๋ํด ์ธ๊ธํ๊ณ , ์ ๋ด๊ฐ ์ด ์ง๋ฌด์ ์ ํฉํ์ง ๊ตฌ์ฒด์ ์ผ๋ก ์ค๋ช
3. ์ ์ฌ ํ ํฌ๋ถ
- ๋จ๊ธฐ ๋ฐ ์ค์ฅ๊ธฐ ๋ชฉํ: ์ ์ฌ ํ 1๋ , 3๋ , 5๋ ํ ๋์ ๋ชฉํ๋ฅผ ๊ตฌ์ฒด์ ์ผ๋ก ์์ฑ
Wednesday(03.19)
https://koreatstm.tistory.com/269
MLFlow
๊ฐ๋ MinIO๋? MinIO๋ AWS S3์ ํธํ๋๋ ์ค๋ธ์ ํธ ์คํ ๋ฆฌ์ง ์์คํ ์ผ๋ก, ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ๊ด๋ฆฌํ๋ ์ญํ ์ค์ต ์์ฒญ์ฌํญ data๋ minio์ raw-data ๋ฒํท์์ ๊ฐ์ ธ์์ airflow๋ก ๋งค ์๊ฐ ์ ๊ฐ์ ์คํ
koreatstm.tistory.com
Thursday(03.20)
2์ฃผ ๋์์ ์น์ ๋ํด์ ๋ฐฐ์ด๋ค. ํ๋ก ํธ์ ๋ฐฑ์ค๋(Flask, Fast API)๋ฅผ ๋ฐฐ์ฐ๋๋ฐ, ๊ธฐ๋ณธ์ ์ผ๋ก ์๋ ๊ฒ๋ค์ด ์์ด์, ๋ณต์ต + ํท๊ฐ๋ ธ๋๊ฒ ์ ๋ฆฌ ํ๋ ๋ฐฉ์์ผ๋ก ๊ณต๋ถํ๋ ค ํ๋ค.
- ์ธํฐ๋ท๊ณผ ์น์ ์ฐจ์ด
- ์ธํฐ๋ท์ ์ ์ธ๊ณ์ ์ปดํจํฐ, ์๋ฒ, ๋คํธ์ํฌ๋ค์ด ์ฐ๊ฒฐ๋์ด ์ ๋ณด๋ฅผ ๊ตํํ๋ ๊ฑฐ๋ํ ๋คํธ์ํฌ
- ์ธํฐ๋ท์ ๋ฐ์ดํฐ์ ํต์ ์ ์ํ ๊ธฐ๋ฐ ์ธํ๋ผ๋ฅผ ์ ๊ณต
- ์น์ ์ธํฐ๋ท ์์์ ๋์ํ๋ ์๋น์ค ์ค ํ๋. ์น์ ๋ธ๋ผ์ฐ์ ๋ฅผ ํตํด ๋ค์ํ ์น ํ์ด์ง๋ฅผ ๋ณด์ฌ์ฃผ๋ ์์คํ ์ผ๋ก, ์น ์๋ฒ์ ์น ๋ธ๋ผ์ฐ์ ๊ฐ์ ์ ๋ณด ๊ตํ ๋ฐฉ์์ธ HTTP๋ฅผ ์ฌ์ฉ. ์ฆ, ์น์ ์ธํฐ๋ท์ ํตํด ์ ๋ณด๋ฅผ ์๊ฐ์ ์ผ๋ก ์ ๊ณตํ๋ ๋ฐฉ์
- ์ธํฐ๋ท์ ์ ์ธ๊ณ์ ์ปดํจํฐ, ์๋ฒ, ๋คํธ์ํฌ๋ค์ด ์ฐ๊ฒฐ๋์ด ์ ๋ณด๋ฅผ ๊ตํํ๋ ๊ฑฐ๋ํ ๋คํธ์ํฌ
- ์ธํฐ๋ท ์์ ์กด์ฌํ๋ ์๋น์ค๋ค
- Email: ์ด๋ฉ์ผ ์๋ฒ๋ฅผ ํตํด ๋ฉ์์ง๋ฅผ ์ ์กํ๊ณ ๋ฐ์ ์ ์๋ ์๋น์ค
- Web: HTTP๋ฅผ ํตํด ์น ํ์ด์ง๋ฅผ ์์ฒญํ๊ณ ์๋ต์ ๋ฐ๋ ์๋น์ค
- FTP: ํ์ผ ์ ์ก์ ์ํ ํ๋กํ ์ฝ๋ก, ์๋ฒ์ ํด๋ผ์ด์ธํธ ๊ฐ์ ํ์ผ์ ์ฃผ๊ณ ๋ฐ์ ์ ์๋ค.
- HTTP ๋ฉ์๋
- ์น ์๋ฒ์ ํด๋ผ์ด์ธํธ ๊ฐ์ ์์ฒญ๊ณผ ์๋ต์ ์ ์ํ๋ ๋์ ๋ฐฉ์
- GET: ์๋ฒ์์ ๋ฐ์ดํฐ๋ฅผ ์กฐํ
- POST: ์๋ฒ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ก
- PUT: ์๋ฒ์ ๋ฐ์ดํฐ๋ฅผ ์์
- PATCH: ์๋ฒ์ ์ผ๋ถ ๋ฐ์ดํฐ๋ฅผ ์์
- DELETE: ์๋ฒ์์ ๋ฐ์ดํฐ๋ฅผ ์ญ์
- API (Application Programming Interface)
- ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ์ ๋ฐ์ดํฐ ๊ตํ์ ์ํ ์ธํฐํ์ด์ค๋ก, ๋ ํ๋ก๊ทธ๋จ ๊ฐ์ ์ํธ์์ฉ์ ์ ์ํ๋ ๊ท๊ฒฉ
- API๋ฅผ ํตํด ์ ํ๋ฆฌ์ผ์ด์ ์ด ์๋ก ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๊ฑฐ๋, ํน์ ๊ธฐ๋ฅ์ ํธ์ถ
- ์ธํฐํ์ด์ค: ๋ค๋ฅธ ์์คํ ๊ณผ ์ํธ์์ฉ์ ํ ์ ์๋๋ก ์ ์๋ ๋ฉ์๋๋ ํ๋กํ ์ฝ ์ธํธ
- ์ ๋ณด ์์ฒญ ๋ฐ ์๋ต ๊ท๊ฒฉ: ์ ๋ณด๋ฅผ ์์ฒญํ๋ ๋ฐฉ์๊ณผ ๋ฐ๋ ๋ฐฉ์์ ๋ํ ๊ท๊ฒฉ์ ์ ์
- API ์ ํ
- Private API: ํน์ ๊ธฐ์ ์ด๋ ์ ํ๋ฆฌ์ผ์ด์ ์์๋ง ์ฌ์ฉ๋๋ API
- Partner API: ํํธ๋ ๊ธฐ์ ์ด ์ฌ์ฉํ ์ ์๋๋ก ์ ๊ณต๋๋ API. ์ธ๋ถ์์ ์ฐ๋์ ์ํด ์ ํ์ ์ผ๋ก ๊ณต๊ฐ
- Public API: ๋๊ตฌ๋ ์ฌ์ฉํ ์ ์๋๋ก ๊ณต๊ฐ๋ API
- Open API
- Open API๋ ๋๊ตฌ๋ ์ฌ์ฉํ ์ ์๋๋ก ๊ณต๊ฐ๋ API
- ๋ค์ํ ๊ธฐ์ ์ด๋ ์๋น์ค๊ฐ ์ธ๋ถ ๊ฐ๋ฐ์์๊ฒ ์ ๊ณตํ๋ API๋ก, ์ด๋ฅผ ํตํด ๋ค๋ฅธ ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ์ฐ๋
- REST ๋ฐฉ์์ ๋ง์ด ์ฌ์ฉํ๋ฉฐ, RESTful API๋ ํน์ ๊ท์น์ ์ค์ํ๋ Open API
- REST์ RESTful
- HTTP๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ ์ํคํ ์ฒ ์คํ์ผ๋ก, ์์(Resource)์ URL๋ก ํํํ๊ณ , HTTP ๋ฉ์๋(GET, POST, PUT, DELETE ๋ฑ)๋ฅผ ํตํด ์์์ ๋ํ ํ์๋ฅผ ํํํ๋ ๋ฐฉ์
- RESTful์ REST ์ํคํ ์ฒ ์คํ์ผ์ ์ค์ํ๋ API๋ฅผ ์๋ฏธ
- REST์ 6๊ฐ์ง ํน์ง
- Server-Client: ์๋ฒ์ ํด๋ผ์ด์ธํธ๋ ๋ถ๋ฆฌ๋์ด ์์ผ๋ฉฐ, ํด๋ผ์ด์ธํธ๋ ์๋ฒ์ ์์์ ์์ฒญํ๊ณ , ์๋ฒ๋ ํด๋ผ์ด์ธํธ์๊ฒ ์์์ ๋ฐํ
- Stateless: ๊ฐ ์์ฒญ์ ๋ ๋ฆฝ์ ์ด๋ฉฐ, ์๋ฒ๋ ํด๋ผ์ด์ธํธ ์ํ๋ฅผ ์ ์ฅํ์ง ์๊ณ , ๋ชจ๋ ์์ฒญ์ ์์ ์ด ํ์ํ ์ ๋ณด๋ฅผ ํฌํจ
- Uniform Interface: RESTful API๋ ํ์คํ๋ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํ์ฌ, ๋ค์ํ ์์คํ ๊ฐ์ ์ํธ์์ฉ์ ์ผ๊ด๋๊ฒ ๋ง๋ ๋ค.
- Layered System: ํด๋ผ์ด์ธํธ๋ ์ค๊ฐ ์๋ฒ๋ ๋ก๋๋ฐธ๋ฐ์ ๋ฑ ์ฌ๋ฌ ๋ ์ด์ด๋ฅผ ๊ฑฐ์ณ์ ์๋ต์ ๋ฐ์ ์ ์๋ค. ๊ฐ ๋ ์ด์ด๋ ๋ค๋ฅธ ๋ ์ด์ด์ ๋ ๋ฆฝ์ ์ผ๋ก ๋์ํ ์ ์๋ค.
- Cacheable: ์๋ฒ์์ ์๋ตํ๋ ๋ฐ์ดํฐ๋ ์บ์๊ฐ ๊ฐ๋ฅํด์ผ ํ๋ฉฐ, ํด๋ผ์ด์ธํธ๊ฐ ๋ฐ๋ณต์ ์ผ๋ก ๋์ผํ ๋ฐ์ดํฐ๋ฅผ ์์ฒญํ ๋ ์ฑ๋ฅ์ ์ต์ ํํ ์ ์๋ค.
- Code on Demand (optional): ์๋ฒ์์ ํด๋ผ์ด์ธํธ์๊ฒ ๋์ ์ธ ์ฝ๋๋ฅผ ์ ์กํ ์ ์๋ค.
- REST API ์ค๊ณ ๊ท์น
- ๋ช ์ฌ ์ฌ์ฉ: ์์์ ์ผ๋ฐ์ ์ผ๋ก ๋ช ์ฌ๋ก ํํํ๊ณ , ๋์ฌ๋ฅผ ์ฌ์ฉํ์ง ์๋๋ค.
- ์๋ฌธ์ ์ฌ์ฉ: URL์ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ณํ์ง ์์ผ๋ฉฐ, ์ผ๋ฐ์ ์ผ๋ก ์๋ฌธ์๋ฅผ ์ฌ์ฉ
- ์ฌ๋์(/): ์ฌ๋์๋ ์์์ ๊ณ์ธต ๊ด๊ณ๋ฅผ ๋ํ๋ด๋ ๋ฐ ์ฌ์ฉ
- HTTP ๋ฉ์๋ ์ฌ์ฉ: ์์์ ๋ํ ํ์๋ HTTP ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ํํ
- HTTP ์ํ ์ฝ๋(์์ฃผ ์ฌ์ฉ ์์ฃผ)
- 200 OK: ์์ฒญ์ด ์ฑ๊ณต์ ์ผ๋ก ์ฒ๋ฆฌ
- 201 Created: ๋ฆฌ์์ค๊ฐ ์ฑ๊ณต์ ์ผ๋ก ์์ฑ
- 400 Bad Request: ํด๋ผ์ด์ธํธ์ ์๋ชป๋ ์์ฒญ
- 401 Unauthorized: ์ธ์ฆ๋์ง ์์ ์์ฒญ
- 404 Not Found: ์์ฒญํ ๋ฆฌ์์ค๋ฅผ ์ฐพ์ ์ ์๋ค.
- 500 Internal Server Error: ์๋ฒ์์ ์ค๋ฅ๊ฐ ๋ฐ์

2๋ฒ์งธ 5์ฃผ ์ฐ์ ์ฐ์ ์์ฑ์๋ก ์ ์ ๋์๋ค!!!
๊พธ์คํ ๊ธฐ๋กํ๋ฉฐ ๊ณต๋ถ ํ๊ณ ์๋๋ฐ, ๋๋ฌด ์ข์ ์์์ด๋ค ๐ฅน
๊ต์ก๊ณผ์ ์ ๋ถ๊ธฐ์ ์ ๋์ ๋งํผ ์กฐ๊ธ ๋ ์ ์งํด๊ฐ์ ๐
Friday(03.21)
๋ง์ง์ ์ฐพ์๋ค.
FISA๋ฅผ ํ๋ฉด์ ๋ณ์ 5์ ์ค ์๋น์ ์๋ฝ๋ฐ์ ์์๋๋ฐ, ์ฌ๊ธด ์ง์ง ๋ง์๋ค.
https://koreatstm.tistory.com/216#Thursday%C2%A0(01.02)-1
๊ฐ์ถ ๊ฐ์ถ ๊ฐ์ถ!!!
๋ค์ด๋ฒ ์ง๋
๋ชจ๋ฒ๋ฐ์
map.naver.com


HTML&CSS&JavaScript
๊น๋จน์ ๊ฒ ์์ฃผ ์ ๋ฆฌ
HTML ์์
- block ์์: ํ ์ค ์ ์ฒด ์ฐจ์ง (e.g., h1, p, div)
- inline ์์: ๋ด์ฉ๋งํผ๋ง ๊ณต๊ฐ ์ฐจ์ง (e.g., a, span, img)
- table ์์๋ thead, tbody ๋ด๋ถ์ tr(ํ), th(ํค๋), td(๋ฐ์ดํฐ)๋ฅผ ํฌํจ
HTML ํผ (<form> ํ๊ทธ)
- <input>์ name ์์ฑ์ ์๋ฒ๋ก ์ ์ก๋ ๋ ๋ณ์ ์ญํ
- <label for="id">๋ฅผ ์ฌ์ฉํ๋ฉด ํด๋น input๊ณผ ์ฐ๊ฒฐ ๊ฐ๋ฅ
CSS ์ ํ์ ์ฐ์ ์์
- class (.)๋ณด๋ค id (#)์ ์ฐ์ ์์๊ฐ ๋์
- ๊ฐ์ class๊ฐ ์ฌ๋ฌ ๋ฒ ์ ์ธ๋๋ฉด ๋ง์ง๋ง ์ ์ธ์ด ์ ์ฉ๋จ
- inline style (style="color: blue;")์ด ์ต์ฐ์
JavaScript
AJAX๋ฅผ ์ด์ฉํด ์๋ฒ์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ ์ค์๊ฐ์ผ๋ก ์นํ์ด์ง์ ๋ฐ์
- ๋ฒํผ ํด๋ฆญ ์ ํ ์คํธ ๋ณ๊ฒฝ
- ์ ๋ ฅํ ๊ฐ ์ค์๊ฐ ๋ฐ์
- ์๋ฒ์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ ํ๋ฉด์ ํ์
Bootstrap ํ์ฉ
- navbar(๋ค๋น๊ฒ์ด์ ๋ฐ)๋ฅผ fixed๋ก ๊ณ ์ ๊ฐ๋ฅ.
- container, row, col์ ํ์ฉํ์ฌ ๋ฐ์ํ ๋ ์ด์์ ๊ตฌ์ฑ.
- btn, text-muted, fw-bolder ๋ฑ์ ํด๋์ค๋ฅผ ํ์ฉํด ์คํ์ผ ์ ์ฉ.
Saturday(03.22)
ํน๊ฐ ์ ๋ฆฌ(2์ฐจ์ ์์ฃผ๋ก ์ ๋ฆฌํ์๋ค.)
DevOps๋ ๋ฌด์์ธ๊ฐ?
- DevOps๋ ๊ฐ๋ฐ๊ณผ ์ด์์ ํตํฉํ์ฌ ํจ์จ์ ์ธ ๊ฐ๋ฐ๊ณผ ๋ฐฐํฌ, ์ง์์ ์ธ ํตํฉ(CI) ๋ฐ ๋ฐฐํฌ(CD)๋ฅผ ๊ฐ๋ฅํ๊ฒ ํ๋ ๋ฌธํ์ด์ ๋ฐฉ๋ฒ๋ก
- DevOps์ ๋์ ์ผ๋ก ์์์ ์ ์ค์ด๊ณ , ์๋ํ๋ ํ๊ฒฝ์์ ์ฝ๋๋ฅผ ํ ์คํธํ๊ณ ๋ฐฐํฌํ ์ ์์
https://koreatstm.tistory.com/140
Jenkins๋?
1. CI / CD ๊ฐ ๋ฌด์์ธ๊ฐ CI/CD๋?CI: Continuous Integration ์ฆ, ์ง์์ ์ธ ํตํฉ์ด๋ผ๋ ์๋ฏธ์ดํ๋ฆฌ์ผ์ด์ ์ ์๋ก์ด ์ฝ๋ ๋ณ๊ฒฝ ์ฌํญ์ด ์ ๊ธฐ์ ์ผ๋ก ๋น๋ ๋ฐ ํ ์คํธ ๋์ด ๊ณต์ ๋ ํฌ์งํ ๋ฆฌ์ ํตํฉํ๋ ๊ฒ์ ์
koreatstm.tistory.com
๋ถํธํ ์ํฉ (์ ํต์ ์ธ ๊ฐ๋ฐ ๋ฐฉ์)
- ์์์ ์ผ๋ก ๊ฐ๋ฐ ์๋ฒ์์ ๋น๋ ์๋ฒ๋ก ์ฝ๋๋ฅผ ์ฎ๊ธฐ๊ณ ๋น๋ ์คํจ ์ ์์ ์ ์ํด ๋ค์ ์ฌ๋ฆฌ๋ ์์ ์ ๋นํจ์จ์
- ๋น๋ ์ฑ๊ณต ํ ํ ์คํธ ์๋ฒ์ ๋ฐฐํฌํ ๋๋ ์๋๋๋ก ๋์ํ์ง ์๋ ๊ฒฝ์ฐ ๋ฐ์
- ๋จธ์ง ์ถฉ๋๋ ๋ฐ์ํ๋ฉฐ, ๋ฒ์ ๊ด๋ฆฌ์ ์ด๋ ค์
- -> DevOps๋ ์ด๋ฌํ ๋ถํธํจ์ ํด๊ฒฐํ๊ธฐ ์ํด ์๋ํ์ ์ผ๊ด์ฑ ์๋ ๋ฐฐํฌ ํ๊ฒฝ์ ์ ๊ณตํ๊ณ , CI/CD์ ์๋ํ๋ ํ ์คํธ๋ฅผ ํตํด ๊ฐ๋ฐ๊ณผ ์ด์์ ํตํฉํ๊ณ , ๋น ๋ฅด๊ฒ ํผ๋๋ฐฑ์ ๋ฐ์ ์ ์๊ฒ ํ๋ค.
- DevOps๋ฅผ ๋์ ํ๋ฉด ๊ฐ๋ฐ์์๋ถํฐ ๋ฐฐํฌ๊น์ง ์๋ํ๊ฐ ์ด๋ฃจ์ด์ง๊ณ , ๋น ๋ฅธ ํผ๋๋ฐฑ์ ๋ฐ์ ์ ์๋ค.
DevOps์์์ Git ๋ธ๋์น ๊ด๋ฆฌ
- main ๋ธ๋์น์์ ๋ฆฌ๋ฒ ์ด์ค๋ฅผ ํ๋ค?
- ์๊ท๋ชจ ํ์ฌ์์๋ ๋ฆฌ๋ฒ ์ด์ค๊ฐ ์ ์ฉํ ์ ์๋ค.
- ๋ฆฌ๋ฒ ์ด์ค๋ ์ปค๋ฐ ํ์คํ ๋ฆฌ๋ฅผ ๊น๋ํ๊ฒ ์ ์งํ ์ ์๋๋ก ๋์์ฃผ๊ธฐ ๋๋ฌธ์, ์๊ท๋ชจ ํ์์ ํจ์จ์ ์ผ๋ก ๋ธ๋์น๋ฅผ ๊ด๋ฆฌํ ์ ์๋ค. ๋ค๋ง, ๋จธ์ง๋ ์ถฉ๋์ ํด๊ฒฐํ๋ ๋ฐ ์ ๋ฆฌํ์ง๋ง, ๋ฆฌ๋ฒ ์ด์ค๋ ์ปค๋ฐ ๋ด์ญ์ ๊น๋ํ๊ฒ ์ ์งํ๋ ๋ฐ ์ข๋ค.
Jenkins์ ํ์ดํ๋ผ์ธ
- Jenkins๋ ์๋ํ๋ CI/CD ํ์ดํ๋ผ์ธ์ ๊ตฌํํ๋ ๋๊ตฌ๋ก, ์คํฌ๋ฆฝํธํ๊ณผ ์ ์ธํ ๋ฌธ๋ฒ์ ๊ธฐ๋ฐ์ผ๋ก ํ์ดํ๋ผ์ธ์ ์์ฑํ ์ ์๋ค.
- ์คํฌ๋ฆฝํธํ ๋ฌธ๋ฒ: ์์ ๋ก์ด ๊ตฌ์ฑ์ด ๊ฐ๋ฅํ์ง๋ง ๊ด๋ฆฌ๊ฐ ์ด๋ ค์ธ ์ ์๋ค.
- ์ ์ธํ ๋ฌธ๋ฒ: ๊ตฌ์กฐ์ ์ด๊ณ ๊ท์น์ ์ธ ๋ฐฉ์์ผ๋ก ํ์ดํ๋ผ์ธ์ ์ ์ํ ์ ์์ด ๊ฐ๋ ์ฑ์ด ์ข๋ค.
- Jenkins๋ ์์ค ์ฝ๋ ๋น๋, ํ ์คํธ, ๋ฐฐํฌ๊น์ง์ ์๋ํ๋ ํ๋ก์ธ์ค๋ฅผ ์ ์ํ๊ณ ๊ด๋ฆฌํ ์ ์๊ฒ ๋์์ค
Docker, Harbor, Kubernetes
- Docker: ์ ํ๋ฆฌ์ผ์ด์ ์ ์ปจํ ์ด๋ํํ์ฌ ๊ฐ๋ฐ๊ณผ ๋ฐฐํฌ๋ฅผ ํจ์จ์ ์ผ๋ก ๊ฐ๋ฅํ๊ฒ ํจ
- Harbor: ์ฌ์ค ๋ ์ง์คํธ๋ฆฌ, Docker ์ด๋ฏธ์ง๋ฅผ ์ ์ฅํ๊ณ ๊ด๋ฆฌํ๋ ์์คํ ECR(Amazon Elastic Container Registry)์ ์ ์ฌ
- Kubernetes: ์ปจํ ์ด๋ ์ค์ผ์คํธ๋ ์ด์ ๋๊ตฌ๋ก, ์คํ ์ค์ผ์ผ๋ง, Self/Auto healing์ ์ง์ํ์ฌ ๋๊ท๋ชจ ์ปจํ ์ด๋ ํ๊ฒฝ์ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌ
'๐ฐ Woori FISA > ํ๊ธฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ฐ๋ฆฌ FISA AI์์ง๋์ด๋ง 13์ฃผ์ฐจ ๊ณผ์ (0) | 2025.04.01 |
---|---|
์ฐ๋ฆฌ FISA AI์์ง๋์ด๋ง 12์ฃผ์ฐจ ๊ณผ์ (0) | 2025.03.24 |
์ฐ๋ฆฌ FISA AI์์ง๋์ด๋ง 9์ฃผ์ฐจ ๊ณผ์ (0) | 2025.03.03 |
์ฐ๋ฆฌ FISA AI์์ง๋์ด๋ง 8์ฃผ์ฐจ ๊ณผ์ (0) | 2025.02.27 |
์ฐ๋ฆฌ FISA AI์์ง๋์ด๋ง 7์ฃผ์ฐจ ๊ณผ์ (0) | 2025.02.17 |
Monday(03.17)
https://koreatstm.tistory.com/268
Airflow
MLOps Machine Learning Operations๋จธ์ ๋ฌ๋(ML) ๋ชจ๋ธ์ ๋ฐฐํฌ, ๋ชจ๋ํฐ๋ง, ์ ์ง ๊ด๋ฆฌํ๋ ์ผ๋ จ์ ๊ณผ์ ์ ์๋ฏธ๋ชฉํ: ML ๋ชจ๋ธ์ ๊ฐ๋ฐ ์๋ช ์ฃผ๊ธฐ๋ฅผ ์๋ํํ๊ณ ์ต์ ํํ๋ ๊ฒ์ด ๋ชฉํํ์์ฑ์ํฌํ๋ก์ฐ ์๋ํ:
koreatstm.tistory.com
Tuesday(03.18)
์์
AirFlow ์ค์ต
https://koreatstm.tistory.com/268#%EC%8B%A4%EC%8A%B5-1
ํน๊ฐ
์ ์ฌ์ง์์๋ฅ ์์ฑ ๊ฐ์ด๋
1. ์ ์ฌ์ง์์๋ฅ๋?
- ์ ์ฌ์ง์์๋ ๋ด๊ฐ ์ด๋ค ์ฌ๋์ธ์ง ๋ณด์ฌ์ฃผ๋ ์ค์ํ ๋๊ตฌ, ๋ฉด์ ๊ธฐํ๋ฅผ ์ป๋ ์ฒซ ๋ฒ์งธ ๊ด๋ฌธ
- ๋์ ๊ฐ์ ๊ณผ ๊ฒฝํ์ ํจ๊ณผ์ ์ผ๋ก ๋ณด์ฌ์ฃผ์ด์ผ ํ๋ค.
2. ์ง์์ ์์ฑ ์ ์ ์ ์ฌํญ
- ์ง์ ์๊ฒฉ๊ณผ ์๊ฑด์ ๋ง์ถ๊ธฐ: ์ง์ํ๋ ํ์ฌ์ ์ง๋ฌด์ ๋ง๋ ๊ฒฝํ๊ณผ ์ญ๋์ ๊ฐ์กฐ
- ๊ฐ์ ์ดํ: ๊ฒฝ์ง๋ํ, ํ๋ก์ ํธ, ๋ด์ฌํ๋ ๋ฑ์ ํตํด ๋ด๊ฐ ๊ฐ์ง ๊ฐ์ ๊ฐ์กฐ
3. ์ง์์ ์์
- ์์ฌ ์์์ด ์์ผ๋ฉด ๊ทธ์ ๋ง์ถฐ ์์ฑํ๊ณ , ์์ ์์์ ์ฌ์ฉํ ๊ฒฝ์ฐ ์๋ ์์๋๋ก ์์ฑ
- ํค์๋, ์ง์ ๊ธฐ์ , ์ง์ ์ง๋ฌด, ๊นํ๋ธ/๋ธ๋ก๊ทธ
- ์ธ์ ์ฌํญ, ํ๋ ฅ ์ฌํญ, ๊ฒฝ๋ ฅ ์ฌํญ, ์คํฌ, ์๊ฒฉ์ฆ/์ดํ, ์์ ๋ด์ญ
4. ๊ธฐ๋ณธ ์ฌํญ
- ๊ฒฝ๋ ฅ ์ฌํญ: ์ง๋ฌด์ ๊ด๋ จ ์๋ ๊ฒฝํ๋ง ๊ธฐ์
- ํ๋ก์ ํธ ํ์ด์ง: ํ๋ก์ ํธ ๊ธฐ๊ฐ, ์ญํ , ๊ฐ๋ฐ ํ๊ฒฝ, ์ฑ๊ณผ ๋ฑ ๊ตฌ์ฒด์ ์ผ๋ก ์์ฑ
์๊ธฐ์๊ฐ์ ์์ฑ ์ ๋ต
1. ๊ธฐ์ vs ์ง๋ฌด ์ด์
- ์ง๋ฌด ์ด์ ์ด ์ค์. ๋ด๊ฐ ์ ์ด ์ง๋ฌด๋ฅผ ์ ํ ์ ์๋์ง, ๋๋ง์ ๊ฐ์ ์ ํตํด ํ์ฌ์ ๊ธฐ์ฌํ ์ ์์์ ๊ฐ์กฐ
2. ๋๊ด์ vs ๋ฏธ๊ด์
- ๋๊ด์์ผ๋ก ๋จผ์ ํต์ฌ์ ๋งํ๊ณ ๋ด์ฉ์ ์ฑ์ฐ๊ธฐ
3. ์๊ธฐ์๊ฐ์ ์์ฑ ํ
- ์ ํํ ์ํฉ ์ค๋ช : ๊ฐ์ ํํ๋ณด๋ค๋ ์ํฉ์ ์ ํํ๊ฒ ์ค๋ช
- STAR-LC ๊ธฐ๋ฒ ํ์ฉ: ์ํฉ, ๊ณผ์ , ํ๋, ๊ฒฐ๊ณผ, ๋ฐฐ์ด ์ ์ ํฌํจํด ๊ฒฝํ์ ๊ตฌ์ฒด์ ์ผ๋ก ์์
4. ์์
- ์ฑ๊ฒฉ์ ์ฅ๋จ์ : ์ง๋ฌด ๊ด๋ จ ์ฅ์ ๊ณผ ๋จ์ ์ ๊ทน๋ณต ๋ฐฉ์์ ํจ๊ป ์์
์ง๋ฌด๊ฒฝํ ๋ฐ ์ง์๋๊ธฐ
1. ์ง๋ฌด๊ฒฝํ
- ๊ด๋ จ ๊ฒฝํ ๊ฐ์กฐ: ์ง์ ์ง๋ฌด์ ๊ด๋ จ๋ ๊ฒฝํ์ ์ค์ฌ์ผ๋ก ์์ฑํ๊ณ , ๋ชฉํ, ๊ณผ์ , ์ฑ๊ณผ๋ฅผ ๊ตฌ์ฒด์ ์ผ๋ก ์์
2. ์ง์๋๊ธฐ
- ํ์ฌ์ ๋ํ ๊ด์ฌ: ํ์ฌ์ ๋น์ ์ด๋ ๊ฐ์ ์ ๋ํด ์ธ๊ธํ๊ณ , ์ ๋ด๊ฐ ์ด ์ง๋ฌด์ ์ ํฉํ์ง ๊ตฌ์ฒด์ ์ผ๋ก ์ค๋ช
3. ์ ์ฌ ํ ํฌ๋ถ
- ๋จ๊ธฐ ๋ฐ ์ค์ฅ๊ธฐ ๋ชฉํ: ์ ์ฌ ํ 1๋ , 3๋ , 5๋ ํ ๋์ ๋ชฉํ๋ฅผ ๊ตฌ์ฒด์ ์ผ๋ก ์์ฑ
Wednesday(03.19)
https://koreatstm.tistory.com/269
MLFlow
๊ฐ๋ MinIO๋? MinIO๋ AWS S3์ ํธํ๋๋ ์ค๋ธ์ ํธ ์คํ ๋ฆฌ์ง ์์คํ ์ผ๋ก, ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ๊ด๋ฆฌํ๋ ์ญํ ์ค์ต ์์ฒญ์ฌํญ data๋ minio์ raw-data ๋ฒํท์์ ๊ฐ์ ธ์์ airflow๋ก ๋งค ์๊ฐ ์ ๊ฐ์ ์คํ
koreatstm.tistory.com
Thursday(03.20)
2์ฃผ ๋์์ ์น์ ๋ํด์ ๋ฐฐ์ด๋ค. ํ๋ก ํธ์ ๋ฐฑ์ค๋(Flask, Fast API)๋ฅผ ๋ฐฐ์ฐ๋๋ฐ, ๊ธฐ๋ณธ์ ์ผ๋ก ์๋ ๊ฒ๋ค์ด ์์ด์, ๋ณต์ต + ํท๊ฐ๋ ธ๋๊ฒ ์ ๋ฆฌ ํ๋ ๋ฐฉ์์ผ๋ก ๊ณต๋ถํ๋ ค ํ๋ค.
- ์ธํฐ๋ท๊ณผ ์น์ ์ฐจ์ด
- ์ธํฐ๋ท์ ์ ์ธ๊ณ์ ์ปดํจํฐ, ์๋ฒ, ๋คํธ์ํฌ๋ค์ด ์ฐ๊ฒฐ๋์ด ์ ๋ณด๋ฅผ ๊ตํํ๋ ๊ฑฐ๋ํ ๋คํธ์ํฌ
- ์ธํฐ๋ท์ ๋ฐ์ดํฐ์ ํต์ ์ ์ํ ๊ธฐ๋ฐ ์ธํ๋ผ๋ฅผ ์ ๊ณต
- ์น์ ์ธํฐ๋ท ์์์ ๋์ํ๋ ์๋น์ค ์ค ํ๋. ์น์ ๋ธ๋ผ์ฐ์ ๋ฅผ ํตํด ๋ค์ํ ์น ํ์ด์ง๋ฅผ ๋ณด์ฌ์ฃผ๋ ์์คํ ์ผ๋ก, ์น ์๋ฒ์ ์น ๋ธ๋ผ์ฐ์ ๊ฐ์ ์ ๋ณด ๊ตํ ๋ฐฉ์์ธ HTTP๋ฅผ ์ฌ์ฉ. ์ฆ, ์น์ ์ธํฐ๋ท์ ํตํด ์ ๋ณด๋ฅผ ์๊ฐ์ ์ผ๋ก ์ ๊ณตํ๋ ๋ฐฉ์
- ์ธํฐ๋ท์ ์ ์ธ๊ณ์ ์ปดํจํฐ, ์๋ฒ, ๋คํธ์ํฌ๋ค์ด ์ฐ๊ฒฐ๋์ด ์ ๋ณด๋ฅผ ๊ตํํ๋ ๊ฑฐ๋ํ ๋คํธ์ํฌ
- ์ธํฐ๋ท ์์ ์กด์ฌํ๋ ์๋น์ค๋ค
- Email: ์ด๋ฉ์ผ ์๋ฒ๋ฅผ ํตํด ๋ฉ์์ง๋ฅผ ์ ์กํ๊ณ ๋ฐ์ ์ ์๋ ์๋น์ค
- Web: HTTP๋ฅผ ํตํด ์น ํ์ด์ง๋ฅผ ์์ฒญํ๊ณ ์๋ต์ ๋ฐ๋ ์๋น์ค
- FTP: ํ์ผ ์ ์ก์ ์ํ ํ๋กํ ์ฝ๋ก, ์๋ฒ์ ํด๋ผ์ด์ธํธ ๊ฐ์ ํ์ผ์ ์ฃผ๊ณ ๋ฐ์ ์ ์๋ค.
- HTTP ๋ฉ์๋
- ์น ์๋ฒ์ ํด๋ผ์ด์ธํธ ๊ฐ์ ์์ฒญ๊ณผ ์๋ต์ ์ ์ํ๋ ๋์ ๋ฐฉ์
- GET: ์๋ฒ์์ ๋ฐ์ดํฐ๋ฅผ ์กฐํ
- POST: ์๋ฒ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ก
- PUT: ์๋ฒ์ ๋ฐ์ดํฐ๋ฅผ ์์
- PATCH: ์๋ฒ์ ์ผ๋ถ ๋ฐ์ดํฐ๋ฅผ ์์
- DELETE: ์๋ฒ์์ ๋ฐ์ดํฐ๋ฅผ ์ญ์
- API (Application Programming Interface)
- ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ์ ๋ฐ์ดํฐ ๊ตํ์ ์ํ ์ธํฐํ์ด์ค๋ก, ๋ ํ๋ก๊ทธ๋จ ๊ฐ์ ์ํธ์์ฉ์ ์ ์ํ๋ ๊ท๊ฒฉ
- API๋ฅผ ํตํด ์ ํ๋ฆฌ์ผ์ด์ ์ด ์๋ก ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๊ฑฐ๋, ํน์ ๊ธฐ๋ฅ์ ํธ์ถ
- ์ธํฐํ์ด์ค: ๋ค๋ฅธ ์์คํ ๊ณผ ์ํธ์์ฉ์ ํ ์ ์๋๋ก ์ ์๋ ๋ฉ์๋๋ ํ๋กํ ์ฝ ์ธํธ
- ์ ๋ณด ์์ฒญ ๋ฐ ์๋ต ๊ท๊ฒฉ: ์ ๋ณด๋ฅผ ์์ฒญํ๋ ๋ฐฉ์๊ณผ ๋ฐ๋ ๋ฐฉ์์ ๋ํ ๊ท๊ฒฉ์ ์ ์
- API ์ ํ
- Private API: ํน์ ๊ธฐ์ ์ด๋ ์ ํ๋ฆฌ์ผ์ด์ ์์๋ง ์ฌ์ฉ๋๋ API
- Partner API: ํํธ๋ ๊ธฐ์ ์ด ์ฌ์ฉํ ์ ์๋๋ก ์ ๊ณต๋๋ API. ์ธ๋ถ์์ ์ฐ๋์ ์ํด ์ ํ์ ์ผ๋ก ๊ณต๊ฐ
- Public API: ๋๊ตฌ๋ ์ฌ์ฉํ ์ ์๋๋ก ๊ณต๊ฐ๋ API
- Open API
- Open API๋ ๋๊ตฌ๋ ์ฌ์ฉํ ์ ์๋๋ก ๊ณต๊ฐ๋ API
- ๋ค์ํ ๊ธฐ์ ์ด๋ ์๋น์ค๊ฐ ์ธ๋ถ ๊ฐ๋ฐ์์๊ฒ ์ ๊ณตํ๋ API๋ก, ์ด๋ฅผ ํตํด ๋ค๋ฅธ ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ์ฐ๋
- REST ๋ฐฉ์์ ๋ง์ด ์ฌ์ฉํ๋ฉฐ, RESTful API๋ ํน์ ๊ท์น์ ์ค์ํ๋ Open API
- REST์ RESTful
- HTTP๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ ์ํคํ ์ฒ ์คํ์ผ๋ก, ์์(Resource)์ URL๋ก ํํํ๊ณ , HTTP ๋ฉ์๋(GET, POST, PUT, DELETE ๋ฑ)๋ฅผ ํตํด ์์์ ๋ํ ํ์๋ฅผ ํํํ๋ ๋ฐฉ์
- RESTful์ REST ์ํคํ ์ฒ ์คํ์ผ์ ์ค์ํ๋ API๋ฅผ ์๋ฏธ
- REST์ 6๊ฐ์ง ํน์ง
- Server-Client: ์๋ฒ์ ํด๋ผ์ด์ธํธ๋ ๋ถ๋ฆฌ๋์ด ์์ผ๋ฉฐ, ํด๋ผ์ด์ธํธ๋ ์๋ฒ์ ์์์ ์์ฒญํ๊ณ , ์๋ฒ๋ ํด๋ผ์ด์ธํธ์๊ฒ ์์์ ๋ฐํ
- Stateless: ๊ฐ ์์ฒญ์ ๋ ๋ฆฝ์ ์ด๋ฉฐ, ์๋ฒ๋ ํด๋ผ์ด์ธํธ ์ํ๋ฅผ ์ ์ฅํ์ง ์๊ณ , ๋ชจ๋ ์์ฒญ์ ์์ ์ด ํ์ํ ์ ๋ณด๋ฅผ ํฌํจ
- Uniform Interface: RESTful API๋ ํ์คํ๋ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํ์ฌ, ๋ค์ํ ์์คํ ๊ฐ์ ์ํธ์์ฉ์ ์ผ๊ด๋๊ฒ ๋ง๋ ๋ค.
- Layered System: ํด๋ผ์ด์ธํธ๋ ์ค๊ฐ ์๋ฒ๋ ๋ก๋๋ฐธ๋ฐ์ ๋ฑ ์ฌ๋ฌ ๋ ์ด์ด๋ฅผ ๊ฑฐ์ณ์ ์๋ต์ ๋ฐ์ ์ ์๋ค. ๊ฐ ๋ ์ด์ด๋ ๋ค๋ฅธ ๋ ์ด์ด์ ๋ ๋ฆฝ์ ์ผ๋ก ๋์ํ ์ ์๋ค.
- Cacheable: ์๋ฒ์์ ์๋ตํ๋ ๋ฐ์ดํฐ๋ ์บ์๊ฐ ๊ฐ๋ฅํด์ผ ํ๋ฉฐ, ํด๋ผ์ด์ธํธ๊ฐ ๋ฐ๋ณต์ ์ผ๋ก ๋์ผํ ๋ฐ์ดํฐ๋ฅผ ์์ฒญํ ๋ ์ฑ๋ฅ์ ์ต์ ํํ ์ ์๋ค.
- Code on Demand (optional): ์๋ฒ์์ ํด๋ผ์ด์ธํธ์๊ฒ ๋์ ์ธ ์ฝ๋๋ฅผ ์ ์กํ ์ ์๋ค.
- REST API ์ค๊ณ ๊ท์น
- ๋ช ์ฌ ์ฌ์ฉ: ์์์ ์ผ๋ฐ์ ์ผ๋ก ๋ช ์ฌ๋ก ํํํ๊ณ , ๋์ฌ๋ฅผ ์ฌ์ฉํ์ง ์๋๋ค.
- ์๋ฌธ์ ์ฌ์ฉ: URL์ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ณํ์ง ์์ผ๋ฉฐ, ์ผ๋ฐ์ ์ผ๋ก ์๋ฌธ์๋ฅผ ์ฌ์ฉ
- ์ฌ๋์(/): ์ฌ๋์๋ ์์์ ๊ณ์ธต ๊ด๊ณ๋ฅผ ๋ํ๋ด๋ ๋ฐ ์ฌ์ฉ
- HTTP ๋ฉ์๋ ์ฌ์ฉ: ์์์ ๋ํ ํ์๋ HTTP ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ํํ
- HTTP ์ํ ์ฝ๋(์์ฃผ ์ฌ์ฉ ์์ฃผ)
- 200 OK: ์์ฒญ์ด ์ฑ๊ณต์ ์ผ๋ก ์ฒ๋ฆฌ
- 201 Created: ๋ฆฌ์์ค๊ฐ ์ฑ๊ณต์ ์ผ๋ก ์์ฑ
- 400 Bad Request: ํด๋ผ์ด์ธํธ์ ์๋ชป๋ ์์ฒญ
- 401 Unauthorized: ์ธ์ฆ๋์ง ์์ ์์ฒญ
- 404 Not Found: ์์ฒญํ ๋ฆฌ์์ค๋ฅผ ์ฐพ์ ์ ์๋ค.
- 500 Internal Server Error: ์๋ฒ์์ ์ค๋ฅ๊ฐ ๋ฐ์

2๋ฒ์งธ 5์ฃผ ์ฐ์ ์ฐ์ ์์ฑ์๋ก ์ ์ ๋์๋ค!!!
๊พธ์คํ ๊ธฐ๋กํ๋ฉฐ ๊ณต๋ถ ํ๊ณ ์๋๋ฐ, ๋๋ฌด ์ข์ ์์์ด๋ค ๐ฅน
๊ต์ก๊ณผ์ ์ ๋ถ๊ธฐ์ ์ ๋์ ๋งํผ ์กฐ๊ธ ๋ ์ ์งํด๊ฐ์ ๐
Friday(03.21)
๋ง์ง์ ์ฐพ์๋ค.
FISA๋ฅผ ํ๋ฉด์ ๋ณ์ 5์ ์ค ์๋น์ ์๋ฝ๋ฐ์ ์์๋๋ฐ, ์ฌ๊ธด ์ง์ง ๋ง์๋ค.
https://koreatstm.tistory.com/216#Thursday%C2%A0(01.02)-1
๊ฐ์ถ ๊ฐ์ถ ๊ฐ์ถ!!!
๋ค์ด๋ฒ ์ง๋
๋ชจ๋ฒ๋ฐ์
map.naver.com


HTML&CSS&JavaScript
๊น๋จน์ ๊ฒ ์์ฃผ ์ ๋ฆฌ
HTML ์์
- block ์์: ํ ์ค ์ ์ฒด ์ฐจ์ง (e.g., h1, p, div)
- inline ์์: ๋ด์ฉ๋งํผ๋ง ๊ณต๊ฐ ์ฐจ์ง (e.g., a, span, img)
- table ์์๋ thead, tbody ๋ด๋ถ์ tr(ํ), th(ํค๋), td(๋ฐ์ดํฐ)๋ฅผ ํฌํจ
HTML ํผ (<form> ํ๊ทธ)
- <input>์ name ์์ฑ์ ์๋ฒ๋ก ์ ์ก๋ ๋ ๋ณ์ ์ญํ
- <label for="id">๋ฅผ ์ฌ์ฉํ๋ฉด ํด๋น input๊ณผ ์ฐ๊ฒฐ ๊ฐ๋ฅ
CSS ์ ํ์ ์ฐ์ ์์
- class (.)๋ณด๋ค id (#)์ ์ฐ์ ์์๊ฐ ๋์
- ๊ฐ์ class๊ฐ ์ฌ๋ฌ ๋ฒ ์ ์ธ๋๋ฉด ๋ง์ง๋ง ์ ์ธ์ด ์ ์ฉ๋จ
- inline style (style="color: blue;")์ด ์ต์ฐ์
JavaScript
AJAX๋ฅผ ์ด์ฉํด ์๋ฒ์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ ์ค์๊ฐ์ผ๋ก ์นํ์ด์ง์ ๋ฐ์
- ๋ฒํผ ํด๋ฆญ ์ ํ ์คํธ ๋ณ๊ฒฝ
- ์ ๋ ฅํ ๊ฐ ์ค์๊ฐ ๋ฐ์
- ์๋ฒ์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ ํ๋ฉด์ ํ์
Bootstrap ํ์ฉ
- navbar(๋ค๋น๊ฒ์ด์ ๋ฐ)๋ฅผ fixed๋ก ๊ณ ์ ๊ฐ๋ฅ.
- container, row, col์ ํ์ฉํ์ฌ ๋ฐ์ํ ๋ ์ด์์ ๊ตฌ์ฑ.
- btn, text-muted, fw-bolder ๋ฑ์ ํด๋์ค๋ฅผ ํ์ฉํด ์คํ์ผ ์ ์ฉ.
Saturday(03.22)
ํน๊ฐ ์ ๋ฆฌ(2์ฐจ์ ์์ฃผ๋ก ์ ๋ฆฌํ์๋ค.)
DevOps๋ ๋ฌด์์ธ๊ฐ?
- DevOps๋ ๊ฐ๋ฐ๊ณผ ์ด์์ ํตํฉํ์ฌ ํจ์จ์ ์ธ ๊ฐ๋ฐ๊ณผ ๋ฐฐํฌ, ์ง์์ ์ธ ํตํฉ(CI) ๋ฐ ๋ฐฐํฌ(CD)๋ฅผ ๊ฐ๋ฅํ๊ฒ ํ๋ ๋ฌธํ์ด์ ๋ฐฉ๋ฒ๋ก
- DevOps์ ๋์ ์ผ๋ก ์์์ ์ ์ค์ด๊ณ , ์๋ํ๋ ํ๊ฒฝ์์ ์ฝ๋๋ฅผ ํ ์คํธํ๊ณ ๋ฐฐํฌํ ์ ์์
https://koreatstm.tistory.com/140
Jenkins๋?
1. CI / CD ๊ฐ ๋ฌด์์ธ๊ฐ CI/CD๋?CI: Continuous Integration ์ฆ, ์ง์์ ์ธ ํตํฉ์ด๋ผ๋ ์๋ฏธ์ดํ๋ฆฌ์ผ์ด์ ์ ์๋ก์ด ์ฝ๋ ๋ณ๊ฒฝ ์ฌํญ์ด ์ ๊ธฐ์ ์ผ๋ก ๋น๋ ๋ฐ ํ ์คํธ ๋์ด ๊ณต์ ๋ ํฌ์งํ ๋ฆฌ์ ํตํฉํ๋ ๊ฒ์ ์
koreatstm.tistory.com
๋ถํธํ ์ํฉ (์ ํต์ ์ธ ๊ฐ๋ฐ ๋ฐฉ์)
- ์์์ ์ผ๋ก ๊ฐ๋ฐ ์๋ฒ์์ ๋น๋ ์๋ฒ๋ก ์ฝ๋๋ฅผ ์ฎ๊ธฐ๊ณ ๋น๋ ์คํจ ์ ์์ ์ ์ํด ๋ค์ ์ฌ๋ฆฌ๋ ์์ ์ ๋นํจ์จ์
- ๋น๋ ์ฑ๊ณต ํ ํ ์คํธ ์๋ฒ์ ๋ฐฐํฌํ ๋๋ ์๋๋๋ก ๋์ํ์ง ์๋ ๊ฒฝ์ฐ ๋ฐ์
- ๋จธ์ง ์ถฉ๋๋ ๋ฐ์ํ๋ฉฐ, ๋ฒ์ ๊ด๋ฆฌ์ ์ด๋ ค์
- -> DevOps๋ ์ด๋ฌํ ๋ถํธํจ์ ํด๊ฒฐํ๊ธฐ ์ํด ์๋ํ์ ์ผ๊ด์ฑ ์๋ ๋ฐฐํฌ ํ๊ฒฝ์ ์ ๊ณตํ๊ณ , CI/CD์ ์๋ํ๋ ํ ์คํธ๋ฅผ ํตํด ๊ฐ๋ฐ๊ณผ ์ด์์ ํตํฉํ๊ณ , ๋น ๋ฅด๊ฒ ํผ๋๋ฐฑ์ ๋ฐ์ ์ ์๊ฒ ํ๋ค.
- DevOps๋ฅผ ๋์ ํ๋ฉด ๊ฐ๋ฐ์์๋ถํฐ ๋ฐฐํฌ๊น์ง ์๋ํ๊ฐ ์ด๋ฃจ์ด์ง๊ณ , ๋น ๋ฅธ ํผ๋๋ฐฑ์ ๋ฐ์ ์ ์๋ค.
DevOps์์์ Git ๋ธ๋์น ๊ด๋ฆฌ
- main ๋ธ๋์น์์ ๋ฆฌ๋ฒ ์ด์ค๋ฅผ ํ๋ค?
- ์๊ท๋ชจ ํ์ฌ์์๋ ๋ฆฌ๋ฒ ์ด์ค๊ฐ ์ ์ฉํ ์ ์๋ค.
- ๋ฆฌ๋ฒ ์ด์ค๋ ์ปค๋ฐ ํ์คํ ๋ฆฌ๋ฅผ ๊น๋ํ๊ฒ ์ ์งํ ์ ์๋๋ก ๋์์ฃผ๊ธฐ ๋๋ฌธ์, ์๊ท๋ชจ ํ์์ ํจ์จ์ ์ผ๋ก ๋ธ๋์น๋ฅผ ๊ด๋ฆฌํ ์ ์๋ค. ๋ค๋ง, ๋จธ์ง๋ ์ถฉ๋์ ํด๊ฒฐํ๋ ๋ฐ ์ ๋ฆฌํ์ง๋ง, ๋ฆฌ๋ฒ ์ด์ค๋ ์ปค๋ฐ ๋ด์ญ์ ๊น๋ํ๊ฒ ์ ์งํ๋ ๋ฐ ์ข๋ค.
Jenkins์ ํ์ดํ๋ผ์ธ
- Jenkins๋ ์๋ํ๋ CI/CD ํ์ดํ๋ผ์ธ์ ๊ตฌํํ๋ ๋๊ตฌ๋ก, ์คํฌ๋ฆฝํธํ๊ณผ ์ ์ธํ ๋ฌธ๋ฒ์ ๊ธฐ๋ฐ์ผ๋ก ํ์ดํ๋ผ์ธ์ ์์ฑํ ์ ์๋ค.
- ์คํฌ๋ฆฝํธํ ๋ฌธ๋ฒ: ์์ ๋ก์ด ๊ตฌ์ฑ์ด ๊ฐ๋ฅํ์ง๋ง ๊ด๋ฆฌ๊ฐ ์ด๋ ค์ธ ์ ์๋ค.
- ์ ์ธํ ๋ฌธ๋ฒ: ๊ตฌ์กฐ์ ์ด๊ณ ๊ท์น์ ์ธ ๋ฐฉ์์ผ๋ก ํ์ดํ๋ผ์ธ์ ์ ์ํ ์ ์์ด ๊ฐ๋ ์ฑ์ด ์ข๋ค.
- Jenkins๋ ์์ค ์ฝ๋ ๋น๋, ํ ์คํธ, ๋ฐฐํฌ๊น์ง์ ์๋ํ๋ ํ๋ก์ธ์ค๋ฅผ ์ ์ํ๊ณ ๊ด๋ฆฌํ ์ ์๊ฒ ๋์์ค
Docker, Harbor, Kubernetes
- Docker: ์ ํ๋ฆฌ์ผ์ด์ ์ ์ปจํ ์ด๋ํํ์ฌ ๊ฐ๋ฐ๊ณผ ๋ฐฐํฌ๋ฅผ ํจ์จ์ ์ผ๋ก ๊ฐ๋ฅํ๊ฒ ํจ
- Harbor: ์ฌ์ค ๋ ์ง์คํธ๋ฆฌ, Docker ์ด๋ฏธ์ง๋ฅผ ์ ์ฅํ๊ณ ๊ด๋ฆฌํ๋ ์์คํ ECR(Amazon Elastic Container Registry)์ ์ ์ฌ
- Kubernetes: ์ปจํ ์ด๋ ์ค์ผ์คํธ๋ ์ด์ ๋๊ตฌ๋ก, ์คํ ์ค์ผ์ผ๋ง, Self/Auto healing์ ์ง์ํ์ฌ ๋๊ท๋ชจ ์ปจํ ์ด๋ ํ๊ฒฝ์ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌ
'๐ฐ Woori FISA > ํ๊ธฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ฐ๋ฆฌ FISA AI์์ง๋์ด๋ง 13์ฃผ์ฐจ ๊ณผ์ (0) | 2025.04.01 |
---|---|
์ฐ๋ฆฌ FISA AI์์ง๋์ด๋ง 12์ฃผ์ฐจ ๊ณผ์ (0) | 2025.03.24 |
์ฐ๋ฆฌ FISA AI์์ง๋์ด๋ง 9์ฃผ์ฐจ ๊ณผ์ (0) | 2025.03.03 |
์ฐ๋ฆฌ FISA AI์์ง๋์ด๋ง 8์ฃผ์ฐจ ๊ณผ์ (0) | 2025.02.27 |
์ฐ๋ฆฌ FISA AI์์ง๋์ด๋ง 7์ฃผ์ฐจ ๊ณผ์ (0) | 2025.02.17 |