Table of Contents
์ฝ๋ฉ ์คํฐ๋ ๋์์ ๊ณต์ ํ๋ซํผ
-
๊ธฐ์ /ํธ๋ ๋ ๋ํฅ
โ ์ต๊ทผ ์ฝ๋ก๋ 19 ์ํฅ์ผ๋ก ์ฌํ ๊ทผ๋ฌด๊ฐ ๋์ด๋๊ณ IT ๊ธฐ์ ์ ์ค์์ฑ์ด ๋ ๋์์ง๊ณ ์๋ค. ๊ทธ๋์ ํด๋ํฐ์ด๋ ์ปดํจํฐ๋ก ํํ๊ฒ ์ฝ๋ฉ ๊ด๋ จ ์จ๋ผ์ธ ํด๋์ค๋ฅผ ๋ง์ด ๋ณผ ์ ์๋ค. ์ฃผ๋ก ํ์ ์ ์ข ์ฌํ๋ ํ์ง์๋ ๊ต์๊ฐ ์ฃผ์ ๋ฅผ ์ก๊ณ ๊ด๋ จ ๋ด์ฉ์ ๋ํด ๊ฐ์๋ฅผ ์ ์ํ๊ณ ์๊ฐ์์ด ๊ตฌ์ ํ์ฌ ๊ณต๋ถํ๋ ํ์์ด ๋ง์ ๋ถ๋ถ์ ์ฐจ์งํ๋ค.
โ ๋ง์ ์์ ๊ฐ์๋ ์ ํ๊ถ์ด ๋ง์์ก๋ค๋ ์ฅ์ ์ด ์์ง๋ง ๋ฐ๋๋ก ์๊ฐ์์ ์ ์ฅ์์ ์ด๋ค ๊ฐ์๊ฐ ์ข์์ง ํ์ธํ๊ธฐ ํ๋ค๊ณ ์ฃผ๋์ ํ์ต๋ณด๋ค ์ฃผ์ ์ ํ์ต์ด ์ด๋ฃจ์ด์ง๋ค๋ ๋จ์ ์ด ์๋ค. ๊ทธ๋์ ์ฃผ๋ณ์ ํํ ์ทจ์ค์์ด๋ ์ง๋ฌด๋ฅผ ๋ณ๊ฒฝํ๊ธฐ ์ํด IT๋ฅผ ๋ฐฐ์ฐ๋ ์ฌ๋๋ค์ ์์ ์ธ์ ์คํฐ๋๋ฅผ ๊ตฌ์ฑํ์ฌ ์ถ๊ฐ์ ์ผ๋ก ๊ณต๋ถ๋ฅผ ์งํํ๋ค. ์ฌ๋ฌ IT ๊ณต๋ถ ์ค ์๊ณ ๋ฆฌ์ฆ์ด๋ CS ์ง์์ ์ฃผ๋ก ๋ธ๋ก๊ทธ์ ์์ฑ๋ ๊ธ๋ก ์ ์ ์ผ๋ก ๊ณต๋ถํ๊ณ ์ง์์ ๊ณต์ ํ๋ ์์ฌ์์ด ์๋ค. ์ฒ์ ์ปดํจํฐ๊ณตํ ์ด๋ก ์ ์ ํ๋ ์ด์ฉ์์๊ฒ๋ ์ด๋ ต๊ฒ ๋ค๊ฐ์จ๋ค. ์ ๋ฌธ๊ฐ๋ ์๋์ง๋ง ๋ง์ ๊ฒฝํ์ ํตํด ์๊ณ ๋ฆฌ์ฆ ๋ฐ CS ์ง์์ ์ตํ๊ณ ์๋ ์ทจ์ค์์ด๋ ํ์๋ค์ด ๋์์์ ์ ์ํด ๋น์ทํ ์ธ๋์ ๊ฐ์ด ์ง์์ ๋์์์ด๋ผ๋ ๋งค๊ฐ์ฒด๋ก ๊ณต์ ํ๋ฉด ์ด๋จ๊น ๋ผ๋ ์๊ฐ์ผ๋ก ์์ํ๊ฒ ๋์๋ค.
-
๊ตญ๋ด/์ธ ํํฉ
โ ๊ตญ๋ด ์๋น์ค๋ก๋ ๋ํ์ ์ผ๋ก ์จ๋ผ์ธ ํด๋์ค '์ธํ๋ฐ'์ด๋ '์ฝ๋์' ๋ฑ ๋ง์ ์จ๋ผ์ธ ํด๋์ค ํ๋ซํผ์ด ์๋ค. MOOC๋ผ๋ ์ธ๊ณ ๋ช ๋ฌธ ๋ํ์ ๊ฐ์๋ฅผ ๋ฌด๋ฃ๋ก ์๊ฐํ ์ ์๋ ์๋น์ค๋ ์๋ค. ์ต๊ทผ ์ธํ๋ฐ์ ํ์ฌ 1,000์ฌ ๊ฐ ์ด์์ IT ๋ถ์ผ ์จ๋ผ์ธ ๊ฐ์ ์ฝํ ์ธ ๋ฅผ ์๊ฐํ ์ ์์ ๋ฟ ์๋๋ผ ์ ๊ฑฐ๋์ก 10์ต์์ ๋ํํ์๋ค. ์ฝ๋์์ ์ง๋ 2017๋ ์ค๋ฆฝ๋์คํํธ์ ์ผ๋ก, ์ง๋ํด 4์ 20์ต ์ ๊ท๋ชจ์ ์๋ฆฌ์ฆA ํฌ์๋ฅผ ์ ์นํ๋ฉฐ ํ์ฌ๋ 1.2๋ง๋ช ์ด์์ด ์ ๋ฃ ๊ตฌ๋ ์ค์ด๋ค.
โ ํ์ง๋ง ๋๋ถ๋ถ ์ฌ์ดํธ๋ ์ด๋ฏธ ํ์ ์์ ์ข ์ฌํ๊ฑฐ๋ ๊ต์๊ฐ ์ ๋ฌธ์ ์ธ ์ง์์ ์ ๋ฌํ๋ ํํ๋ก ์ด๋ฃจ์ด์ง๋ค. ๊ฐ๋ณ์ ์ผ๋ก ๊ฐ์ธ์ด ๋ชจ๋ฅด๋ ์ ์ ๋จ๊ธฐ์ง ์์ผ๋ฉด ๊ฒ์์์ง์ ํ์ฉํด์ ์ฐพ์์ผํ๋ ๋จ์ ์ด ์๋ค.
-
๋ฒค์น๋งํน ๋๋ ์ ์ฌ ์๋น์ค ์ฌ๋ก ์๊ฐ
โ ์คํ๋งํฌ์์ ์ ๊ณตํ๋ "๋ฐฑ์ค ์จ๋ผ์ธ ์ ์ง"๋ฅผ ๋ํ์ ์ธ ์ ์ฌ ์ฌ๋ก๋ก ๋ค ์ ์๋ค. ์ด๋ 14,000 ์ฌ๊ฐ์ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ๋ฅผ 67๊ฐ์ง ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก ์ฑ์ ๋ฐ์ ์ ์๋ ์ฌ์ดํธ์ด๋ค. ๋ฟ๋ง ์๋๋ผ ๋ค์ํ ์ง๋ฌธ๊ณผ ๋ต๋ณ์ด ์ค๊ฐ๋ ๊ฒ์ํ๊ณผ ํ ์คํฐ๋๋ฅผ ํ ์ ์๋ ์คํฐ๋ ๊ทธ๋ฃน ์๋น์ค๋ฅผ ์ ๊ณตํ์ฌ ํ๋ก๊ทธ๋จ์ด ๋ํ ์ค๋น์ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํ์ด์ ๋ํ ๋ฌธํฑ์ ์กฐ๊ธ ๋ ๋ฎ์ถ๊ณ ์๋ค.
โ ํ์ง๋ง ๋ฌธ์ ํด์ค ๊ฐ์๋ ์คํ๋ผ์ธ์ผ๋ก๋ง ์ ๊ณตํ๋ ๋ฌธ์ ์ ์ด ์๋ค. ์จ๋ผ์ธ ๋ฌธ์ ํด์ค ๊ฐ์๋ ์ ์ ๋ฐฑ์ค์ ๋น๋กฏํ ๋ค์ํ ์ ํ๋ฒ๋ค์ ์ํด ์ ํ๋ธ์์ ์งํ๋๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค.
-
์๋น์/์์ฅ์ ์ค ์ ์๋ ๊ฐ์น
โ ์ฝ๋ฉ์ ์ฃผ๋ก ๋ฌธ์ ํด๊ฒฐ์ ํ๊ธฐ ์ํด ์ฌ์ฉ๋ฉ๋๋ค. ๋ฌธ์ ํด๊ฒฐ์ ํ๊ณ ๋ ๋ค ์ฑ์ทจ๊ฐ์ ์์ฒญ๋ฉ๋๋ค. ํ์ง๋ง ๋จ์ํ ๋ฌธ์ ํด๊ฒฐ๋ง์ ์ํด ์ฝ๋ฉํ๋ ๊ฒ์ด ์๋๋ผ ๋ด๊ฐ ๋ง๋ ์ฝ๋๋ก ๋ค๋ฅธ ์ฌ๋๋ค์๊ฒ ๋์์ ์ค ์ ์๋ค๋ฉด ๋ ํ์กฑํ ๋ณด์์ ์ป๊ฒ ๋ ๊ฒ์ ๋๋ค. ์คํฐ๋ ํ์์ผ๋ก ๋๊ตฌ๋ ์ฝ๋ฉ ๋์์ ๊ฐ์๋ฅผ ์ ๋ก๋ ํ ์ ์๊ณ ์ํ๋ ๋์์์ ๋ณผ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ฏ๋ก ๋๊ตฌ๋ ์ง์์ ํ์๊ฐ ๋์ด ๋๋ฌด์ด ํ์ํ ์ฌ๋์ ๋์์ค ์ ์์ผ๋ฉฐ ์ด๋ ค์ด ๋ฌธ์ ๋ ์์ฝ๊ฒ ๋์์๊ฐ์๋ฅผ ํตํด ๋์์ ๋ฐ์ ์ ์๋ ์๋น์ค๋ฅผ ์ ๊ณต ํ ์ ์์ต๋๋ค.
โ ๋ฐ๋ผ์ ๋์์ ํ๋ซํผ์ ํตํด ๋์์์ ์ฌ๋ฆผ์ผ๋ก์จ ๋๊ตฌ๋ ์๋น๊ฒ ์ง์์ ํ์๊ฐ ๋ ์ ์๊ธฐ ๋๋ฌธ์ ์ฝ๋ฉ์ ํ ๋ ๋จ์ ์ฝ๋ฉ ๊ทธ ์ด์์ ๊ฐ์น๋ฅผ ์คํํ ์ ์์ต๋๋ค.
-
ํฅํ ์ ๋ง
โ ์๊ณ ๋ฆฌ์ฆ ๋ถ๋ถ์์ ๋ฐฑ์ค์ Q&A ์์คํ ์ ๋์ฒดํ ์ ์์ ๋ฟ๋ง ์๋๋ผ, ๋ฐฑ์ค Slack์ ๋์์ ์ด ๋ ์ ์์ผ๋ฉฐ ์๋ธ ์๋น์ค๋ก ํ์ฉ๊ฐ๋ฅํ๋ค. ๋ํ, ๊ตฌ์ถ๋ ์์คํ ๋ฐ ์๋น์ค๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ค์ํ๋ถ์ผ์ ์คํฐ๋ ๋์์ ๊ณต์ ํ๋ซํผ์ ๊ตฌ์ฑํ ์ ์๋ค.
ํ๋ก์ ํธ๋ฅผ ์ ์์ ์ผ๋ก ์คํํ๊ธฐ ์ํด์ ์๋ ํ๋ก๊ทธ๋จ๋ค์ด ์ค์น๋์ด ์์ด์ผ ํฉ๋๋ค
- node.js 14.15.0
- python 3.8.5
- react 17.0.1
- npm 6.14.8
- mysql 8.0.23
- fastapi 0.63.0
-
Git clone ๋ฐ๊ธฐ
-
๋ฐฑ์๋ ๊ฐ์ํ๊ฒฝ ์ค์
pip install -r requirements.txt
-
ํ๋ก ํธ์๋ ํ์ ํจํค์ง ์ค์น
npm i
-
.env
ํ์ผ ์์ฑ (์ ํ๋ก์ ํธ์๋ envํ์ผ์ด ์ญ์ ๋์ด ์์ต๋๋ค.)
-
๋ฐฑ์๋ ์คํ
๋ก์ปฌ์์ ํ๊ธฐ ์ํด์๋ python main.py๋ก ์คํ
๋์ปค ์คํ์
docker run ์ต์
์ ํตํด ์คํ -
ํ๋ก ํธ์๋ ์คํ
๋ก์ปฌ์์ ์คํ์
npm start
๋์ปค๋ build ํ ๋น๋ ํ์ผ์
docker run ์ต์
์ ํตํด ์คํ
โป ๋ ๋ค ๋์ปคํ์ผ์ ์์ฑ๋์ด ์์ต๋๋ค.
ํด๋น ์๋น์ค๋ AWS EC2๋ฅผ ํตํด ๋ฐฐํฌํ์๊ณ Docker์ Jenkins๋ฅผ ์ด์ฉํด CI/CD ๊ตฌ์ถํ์์ต๋๋ค:
- AWS EC2 ์ธ์คํด์ค ์์ฑ (ubuntu)
- docker ์ค์น
- ํ์ํ ์ด๋ฏธ์ง๋ฅผ docker hub๋ฅผ ํตํด ์ด๋ฏธ์ง ์ค์น ๋ฐ ์ปจํ
์ด๋ ์์ฑ
- Jenkins
- MySQL
- Jenkins์ Gitlab repository ์ฐ๋
- ๊ฐ ํด๋ ์์ dockerfile ์์ฑ
- fileserver๋ฅผ ๋์ปค ๋คํธ์ํฌ๋ฅผ ํตํด ์์ฑ
- auto crawler ์ปจํ ์ด๋ ์์ฑ
- Nginx ์ค์ (frontend/nginx ํด๋์ homepage.conf)
- fileserver, mlserver, frontend, backend๋ฅผ nginx๋ก ์ฐ๊ฒฐ
- ํ๋ก์ ํธ root ์์น์ Jenkins ํ์ผ ์์ฑ
- Build and Test ๊ณผ์
- Build (frontend, backend, mlserver)
- Run (์ปจํ ์ด๋ ์คํ)
docker ps
๋ฅผ ํตํด 7๊ฐ์ ์ปจํ ์ด๋ ์ ์คํ๋๋ ๊ฒ์ ํ์ธ
-
๋ฉ์ธ ํ์ด์ง
๊ฐ๋จํ ์๋น์ค ์ค๋ช ๊ณผ ํจ๊ป ๊ฐ์ฅ ๋ง์ ์ถ์ฒ์ ๋ฐ์ ์์๋ค์ Carousel๋ก ๋ณด์ฌ์ค๋๋ค.
- ๋ก๊ทธ์ธ ๋ฐ ํ์๊ฐ์ ํ์ด์ง
ํ์๊ฐ์ ์ E-mail ์ธ์ฆ์ ํตํด ๊ฐ์ ์ ํ ์ ์์ต๋๋ค.
client์์ SHA256์ ํตํด ํ๋ฒ ์ํธํ๋ฅผ ํด์ฃผ๊ณ server์์ ํ๋ฒ ๋ SHA256 ์ํธํ๋ฅผ ๊ฑฐ์น ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ณ์ ์ ๋ณด๋ฅผ ์ ์ฅํด ๋ณด์์ ๊ฐํํ์์ต๋๋ค.
-
๋ฉ์ธํ์ด์ง (ํด๋์ค - ํํฐ)
์๊ณ ๋ฆฌ์ฆ ํน์ Computer Science๋ณ๋ก ์ํ๋ ๊ฐ์๋ฅผ ํํฐ๋ง ํด์ ๋ณผ ์ ์์ต๋๋ค.
๋ํ, ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ณ๋ก ์ํ๋ ์ธ์ด์ ๊ฐ์๋ฅผ ์ ํํ ์ ์์ต๋๋ค.
-
๋ฉ์ธํ์ด์ง (ํด๋์ค - ๊ฒ์)
์ํ๋ ํค์๋๋ฅผ ๊ฒ์ํ๋ฉด ํด๋น๋๋ ์์๋ค๋ง ๋ณด์ฌ์ค๋๋ค.
๊ฒ์ ๋ฒ์๋ ์ด์ฉ์์ ์ด๋ฆ, ๊ฐ์ ์ ๋ชฉ, ๊ฐ์ ๋ด์ฉ๋ค์ ํฌํจ๋ ํค์๋์ ๋๋ค.
-
๋ฉ์ธํ์ด์ง (ํด๋์ค - ํ์ด์ง ์ด๋)
ํ์ด์ง ํ๋จ์ ๋ฒํผ์ ํตํด ํ์ด์ง๋ฅผ ์ด๋ํ ์ ์์ต๋๋ค. ํ ํ์์ง์ ์ต๋ 12๊ฐ์ ์์์ ๋ณด์ฌ์ค๋๋ค.
-
๋น๋์ค ์์ธํ์ด์ง
์์ธ ํ์ด์ง๋ก ์ด๋ํ๋ฉด ์์์ ์์ฒญํ ์ ์์ต๋๋ค.
ํํธ๋ฅผ ๋๋ฌ ์ข์์๋ฅผ ํ์ํ ์ ์์ผ๋ฉฐ ์์ฑ๋ ์ฌ์๋ชฉ๋ก์ ์์์ ์ถ๊ฐํ ์ ์์ต๋๋ค.
๋๊ธ์ ๋จ๊ธฐ๊ฑฐ๋ ๋๊ธ์ ์์ ํ ์ ์์ต๋๋ค.
-
๋์์ ์ ๋ก๋
๋น๋์ค(์ต๋ 250MB)์ ์ธ๋ค์ผ์ ์ง์ ํ์ฌ ์์์ ์ ๋ก๋ํ ์ ์์ต๋๋ค.
์์ ๋ถ๋ฅ๋ ์๊ณ ๋ฆฌ์ฆ / CS ์ค ์ ํํด์ ์ฌ๋ฆฌ๋ฉฐ ์นดํ ๊ณ ๋ฆฌ๋ฅผ ์ง์ ํด์ ์ฌ๋ฆด ์ ์์ต๋๋ค.
์์ ์ ๋ก๋๊ฐ ์๋ฃ๋๋ฉด ํ์ธํ ์ ์๋๋ก ๋ง์ดํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
-
๋ง์ดํ์ด์ง
๋ง์ดํ์ด์ง์์ ์ฌ๋ฆฐ ์์, ์ฌ์ ๋ชฉ๋ก, ์ฑํ๋ ๋ต๋ณ ์ ๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
๋ง์ด ํ๋ ์ด๋ฆฌ์คํธ์ ํค์๋๋ฅผ ์์ฑํ๊ณ ์ถ๊ฐ ๋ฒํผ์ ํด๋ฆญํด ์ฌ์๋ชฉ๋ก์ ์์ฑํ ์ ์์ต๋๋ค. ๋ํ Go To Watch ๋ฒํผ์ ํด๋ฆญํ๋ฉด ์์ ์ฌ์ ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
ํ๋กํ ์ด๋ฏธ์ง ๋ฒํผ์ ํตํด ํ๋กํ ์ด๋ฏธ์ง๋ฅผ ๋ณ๊ฒฝํ ์ ์์ผ๋ฉฐ ๋๋ค์๊ณผ ํจ์ค์๋๋ฅผ ์์ ํ ์ ์์ต๋๋ค.
-
์ฌ์๋ชฉ๋ก
์ฌ์๋ชฉ๋ก์ ์๋ ์์๋ค์ ํด๋ฆญํ๋ฉด ๋ฐ๋ก ์์์ฌ์ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
-
์ง์์ธ
๊ถ๊ธํ ๊ฒ์ ์ง๋ฌธํ๊ณ ์ฑํํ ์ ์๋ ์ง์์ธ ๊ฒ์ํ ์ ๋๋ค.
๊ฒ์์ ํตํด ์ํ๋ ํค์๋๋ฅผ ๊ฒ์ํ ์ ์์ผ๋ฉฐ ๋ต๋ณ์ด ๋ง์์ ๋๋ ๊ฒฝ์ฐ ์ฑํํ๊ธฐ ๋ฒํผ์ ํด๋ฆญํ ์ ์์ต๋๋ค.
- ๊ตฌํ์ - Team Leader, BackEnd, JIRA
- ๊ถ์ธ์ง - BackEnd, DataBase
- ๋ฐ๋ ธ์ - FrontEnd, UCC
- ์ด๊ฒฝ์ฐ - FrontEnd
- ์ ์๋ฆผ - FrontEnd, Notion