- Published on
๐ PROJECT | HELLO SKATING 1์ฐจ ๊ฐ๋ฐ ํ๊ธฐ
HELLO SKATING ์ฌ์ดํธ ๊ฐ๋ฐ ์ผ์ง - 1์ฐจ ์คํ
ํผ๊ฒจ์ค์ผ์ดํ , ํ ์ธต ๋ ์ฆ๊ฒ๊ฒ ์ฆ๊ธฐ๊ธฐ
![]() | ![]() |
Background
์ง๋ 2์, 2022 ๋ฒ ์ด์ง ์ฌ๋ฆผํฝ์์ ํน์ ๊ตญ๊ฐ ์ ์ธ ์๋นํ ๋ฐํ ์ ์๋ก ์์ฐ์น ์์ ํ์ ์ผ๋ก Motion estimation ๋ชจ๋ธ๋ก prediction์ ํ ์ ์ด ์์๋ค. ์๋นํ ๋ง์ ๊ตญ๋ด ํฌ๋ถ๋ค์ด ์น์ฌ์ดํธ๋ฅผ ๋ง๋๋ ๊ฒ์ ํฌ๋งํ์ จ๊ณ , ํ์ฌ ์์ฌ ๊ณผ์ ์ผ๋ก ๋ฐ์ ์๊ฐ์ ์ชผ๊ฐ์ ๋ง๋ค๊ฒ ๋์๋ค.
์ฌ์ค ๋ํ์ ์ ํํ๊ธฐ ์ ์ ๋ณ๋ค๋ฅธ ์ทจ์ง์ด ์๋๋ฉด ํผ๊ฒจ์ธ๋ค์ ์ํ ์ฑ ๊ฐ๋ฐ๋ก ์ฐฝ์ ์ ํฌ๋งํ์์ผ๋, ์ธ์์ ์ด์ฐ๋ ์ง ๋ชจ๋ฅด๊ธฐ์ ๋ํ์์ ์ ์ฑํ๊ฒ ๋์๋ค(?). ๋ค๋ฅธ ์คํฌ์ธ ์ ๋นํด ์ผ์ ๊ด๋ จํด์ ์ ๋ฆฌ๋๊ฒ๋ ์๊ณ KSU์ฌ์ดํธ์ ๋ค์ด๊ฐ๋ฉด ๊ทธ๋ ๊ฒ ๋์ฅํ์ด ์๋ค.. ํใ ใ
์ฌํํผ ๋ํ ์ผ์ ์ ๊ดํด์๋ 2์ฐจ ์คํ ๋ ์ ๊ธฐํ๊ณ 1์ฐจ ์คํ ๋๋ 2์์ jupyter notebook์ผ๋ก ๊ฐ๋จํ๊ฒ ๋ง๋ค์๋ ๊ธฐ๋ฅ๋ค์ ์๋น์คํํ๋ ๊ฒ์ ๋ชฉํ๋ก ๊ฐ๋ฐ์ ์์ํ๊ฒ ๋์๋ค.
์ฌ์ค ์์ฆ ๋๋ฌด.. ๋ฒ์์ ์๊ณ ๋ด ๋ถ์ผ์ ๋ํด ํํ๊ฐ ์กฐ๊ธ ์์ ์ข ๋ ๊ฐ๋ฐ์์ค๋ฝ๊ฒ ์ง์คํ ์ ์๋ ๋ฌด์ธ๊ฐ๋ฅผ ํ๊ฒ ๋์๋ค.
Preliminary
์๋๋ ๊ท์ฐฎ์์ ๊ทธ๋ฅ jupyter notebook ๊ทธ๋๋ก ์น ์ดํ๋ฆฌ์ผ์ด์ ๋ง๋ค์ด์ฃผ๋ ๊ฑธ๋ก ํ๋ ค๋ค๊ฐ ๋ญ๊ฐ.. ๋๋ง์ ์ฌ์ดํธ๋ฅผ ์ด์ํ๊ณ ์ถ์ด์ ๋ ธ์ ์ ๋ฐ๊ฟจ๋ค.
์ฌ์ค ๋๋ ์๋ ์ด๋งํด๋ html์ 1๋ ๋ชจ๋ฅด๋ ์ธ๊ฐ์ด์๋๋ฐ ์ด์ฉ๋ค๋ณด๋ ๋ฐ์ดํฐ ํฌ๋กค๋งํ๋ฉด์ ๋์ถฉ ๋ฌธ๋ฒ์ด ์ตํ์ง๊ณ 2021๋ ๋ชจ์ข ์ ์ฌ๊ฑด๋ค๋ก react๋ฅผ 2๋ฌ ์์ ๋ฅ์ํ๊ฒ ์ฐ๊ฒ ๋์๋ค. ๋น์ทํ๊ฒ ํ์ฌ 1๋ ์ง์ง ๋๋ ์ฌ์ด๋ ํ๋ก์ ํธ๋ react native๋ฅผ ์จ์ ๊ทธ๋ฐ์ง react ํ๋ ์์ํฌ ์ฐ๋๋ฐ ํฌ๊ฒ ๋ฌธ์ ๋ ์์ด์ React framework๋ฅผ ์ฐ๊ฒ ๋์๋ค. ๋ฌธ์ ๋ ๋ฐฑ์๋์ธ๋ฐ.. ๋ฐฑ์๋๋ ์๋ชจ๋ฅด๊ฒ ์ง๋ง ๋์ถฉ ํฌ๊ฒ 3๊ฐ์ง๋ก ๋๋ ์ ์์ ๊ฒ ๊ฐ๋ค.
- ๋ณธ์ธ ์ํฌ์คํ ์ด์ ์ ๊ตฌ๋นํด์ ๋ฐ๋ก ์๊ฐ ์๋ฒ๋ฅผ ๋๋ค
- AWS๊ฐ์ ํด๋ผ์ฐ๋ ์๋ฒ์ ๋ฐฑ์๋ ๊ตฌ์ถํ๊ณ ์๋ฒ๋ฆฌ์ค ํํ๋ก ๊ตฌํํ๋ค.
- ๊ฐ๋จํ๊ฒ ๊ตฌํํ ์ ์์ Flask๋ก ๋์ ์ฌ์ดํธ ์ฐ๋์ด ๊ฐ๋ฅํ๊ฒ ํ๋ค..?(์ฌ์ค Flask๊ฐ ์ฌ์์ ์ฐ๋ ค๋ค๊ฐ์ ์ด๋ป๊ฒ ์ฐ๊ฒฐํ์ง ์ถ์ด์ ์ฒ ํ)
๋ฌผ๋ก ๋๋ ์ํฌ์คํ ์ด์ ์ด ๋์ด ์๋ ๊ฒ ๋น์ฐํ๊ณ .. 1์ธ ๊ธฐ์ ์ ์ด์ํ์ง ์๋ ์ด์ ํ์ ์์ ๊ฒ ๊ฐ์์ ํ๋ฆฌํฐ์ด๋ก AWS ์๋ฒ๋ฆฌ์ค๋ก ํด๋ณด์๋ผ๊ณ ํด์ ์ ํํ๋ค.
์ฌ์ค tensorflow ๊ฐ์ด ๋ฌด๊ฑฐ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์จ๋ณด์ง ์์์ ์ ๋ชจ๋ฅด๊ฒ ๋๋ฐ, ์ผ๋จ์ ๊ทธ๋๋ง ์กฐ๊ธ์ด๋๋ง ์จ๋ณธ Aws๋ฅผ ์ ํํ๊ฒ ๋์๋ค.
๊ทธ๋์ ์ฌํผ.. ์ฐ๊ฒ ๋ ์ฃผ์ ๊ธฐ๋ฅ๋ค์:
- Front-end: React framework v6
- Back-end: Python3.8, Docker, AWS as serverless - lambda, s3,
Front End
ํ์คํ ํ๋ก ํธ์๋๋ ๊พธ์คํ ๊ณต๋ถํด์ผํ๋ ๋ถ์ผ๊ฐ ๋ง๋ ๊ฒ ๊ฐ๋ค. ๋ถ๋ช
์ฃผ์ ๋ผ์ฐํฐ ์ ์ค์ ํ๋๋ฐ.. ์๊ณ ๋ณด๋ ๋ด๊ฐ ์์ฃผ ์ฐ๋ 2๋
์ ๋ฐฉ์์ ๋ ์ด์ ์ฐ์ง ์๋ ๊ฒ์ด์๊ณ (HashRouter) ์์ฆ ๋์ ์ฌ์ดํธ๋ฅผ ์ํด BrowserRouter์ ๊ฐ์ด ์ฌ์ฉํด์ ์๋ก์ด๊ฑธ ์ตํ๋ ๊ณ๊ธฐ๊ฐ ๋ ๊ฒ ๊ฐ๋ค. ๋ผ๊ณ ๋ ํ์ง๋ง ๋๋ ํ๋ก ํธ์๋์ง์ผ๋ก ๊ฐ ์๊ฐ์ ์๋ค..ใ
ใ
๊ทธ๊ฒ ๋นผ๊ณ ๋ ์๊ฐ๋ณด๋ค ๊ธ๋ฐฉ ๋ง๋ค์๋ค. ํ์ํ ๊ฒ๋ง ๋ฃ์ด ์ ํ 2์ผ ์์ ๋ฐ์ง ๋ง๋ค์๋ค.
์๋๋ ํ์ ์์ฌ๊ฐ ์์๋ UI ๋์์ด๋ ๋ถ์๊ฒ ๋์์ธ ๋งก๊ธฐ๋ ค๊ณ ํ๋๋ฐ, ์ฑ์ง ๊ธํด์ ๋ด๋ฉ๋๋ก ๋ง๋ค์๋ค.
Back End
ํ๋ถ์์ ๋คํธ์ํฌ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ณผ๋ชฉ์ ๋ฃ์ง ์๊ธฐ๋ ํ๊ณ ์คํ์์ค ๊ด๋ จ ๊ณผ๋ชฉ์ ์ํํ๊ฒ ๋ค์ด์ ๊ด๋ จ ์ง์์ด ๊ฑฐ์ ์๋ค.. ใ
ใ
ใ
๋ด๊ฐ ์๋ ํ ์ ์ ๋ค์ด ์์ฒญํ๋ฉด ์๋ฒ์์ ๊ทธ๊ฒ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ฑด gateway๋ฅผ ํตํด์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๋ ๋ญ ๊ทธ๋ฐ ๊ฑฐ๋ก ์๊ณ ์๋ค. ์๋๋ง๊ตฌ
๋ฐฑ์๋๋ ํฌ๊ฒ container image๋ฅผ ํตํด์ lambda function์ ๊ตฌ์ถํ๊ฑฐ๋ serverless ๋ฅผ ํตํด์ function์ ๋ง๋๋ ๋ ๊ฐ์ง ๋ฐฉ๋ฒ์ ์ตํ๋ค. ๋ค๋ง container image๋ docker ์ฌ์ ์ง์๊ณผ ์ฝ๋๋ฅผ aws ์์์๋ ์ ๋ณด์ธ๋ค๋ ์ ์ด ๋จ์ ์๋ ๋จ์ ์ด์ง๋ง, serverless์ ๋นํด์๋ ์ค๋ฅ๊ฐ ๋ ? ๋๋ ํธ์ด๋ผ container image๋ฅผ ์ฌ์ฉํ์๋ค. ์ด์ ์ด ํจ์๋ฅผ ์ธ๋ถ๋ฅผ ์ด๋ป๊ฒ ๋นผ๋๊ฐ ๋ฌธ์ ์ธ๋ฐ..
์ฌํํผ ์๋์ ์ผ๋ก ํ๋ก ํธ์๋๋ณด๋ค ์ฝ์ง์ด ๋ง์์ ์ฝ์ง ์ฐ๋๊ธฐ๋ฅผ ๋จ๊ฒจ๋ณด์๋ค.
์ฝ์ง ์ฐ๋๊ธฐ
- AWS lambda์ layer
aws ๋ด์ฅ ํ์ด์ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ธ ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๊ณ ์ถ์ผ๋ฉด ๋ณ๋๋ก layer์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ๋ ค์ผ ํ๋ค. ์์์ ์ผ๋ก layer ์ฌ๋ฆฌ๋๊ฒ ์๊ฐ๋ณด๋ค ๋ฒ๊ฑฐ๋กญ๊ธฐ๋ ํ๊ณ ๋ฉ๋ชจ๋ฆฌ ์ ํ์ผ๋ก ARN layer์ด๋๊ฑธ ๋์๋ฐ์๋ค. ๋จ์ ์.. ์ต์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์๋ ์ ์๋ค๋ ๊ฒ..?? ๋ญ ์ฌํํผ ์ ์ฉํ๊ฒ ์ฐ๋ ์ค..
์์์ ์ผ๋ก ์ฌ๋ฆฌ๋ ๋ฐฉ๋ฒ์ ํด๋น ๋งํฌ ์ฐธ๊ณ .
- ๋ฌด๊ฑฐ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ layer
์์์ ์์ ํ๋ฏ lambda๋ 250MB์ ๋ฉ๋ชจ๋ฆฌ ์ ํ์ ๊ฐ์ง๊ณ ์๋ค. /tmp๋ผ๊ณ ์์ ์ ์ฅํ๋ ๊ณณ์๋ฐ๋ก ํ์ 500MB๊น์ง ์ธ ์๋ ์์ผ๋ (๋์ถฉ ์๋ lambda function์ ์ถ๊ฐํ๋ฉด ๋๋ค.)
sys.path.append("/tmp")
BUT.. tensorflow 2.0์ ๊ฐ์ด ์ ๋ฌด๊ฑฐ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ lambda layer์ ์ฌ๋ฆฌ๋ ๊ฒ์ ๋ถ๊ฐ๋ฅํ๋ค.. ๋ชจ๋ธ์ ํ๋ จํ๋ ์ ์ฅ์ด๋ผ๋ฉด sagemaker๋ผ๊ณ ํด์ ๋ฐ๋ก ๊ตฌ๋ ๋ฃ ๋ด๊ณ ์ฌ์ฉํ๋ ๊ฒ์ด ๋ง์ง๋ง ๋๋ prediction ๊ธฐ๋ฅ๋ง ์ฌ์ฉํ ๊ฒ์ด๋ผ์ ๋์๊ฐ์ ์ฌ๋์ด ์์๊น ์ถ์ด์ ํ๋ฃจ ์ข ์ผ ๊ฒ์ํ๋ค ใ ใ
์ฐพ์๋ณธ ๋ฐ๋ก๋ npm์ ์ด์ฉํ serverless์ docker๋ฅผ ์ด์ฉํ์ฌ AWS์ ์ฌ๋ฆฌ๋ ๊ฒ ๊ฐ์๋ฐ serverless์๋ template์ผ๋ก aws-python-docker๋ก ์์ฑ์ด ๊ฐ๋ฅํ ๊ฒ ๊ฐ๋ค.
- ๊ด๋ จ ๋งํฌ - Stack overflow
- ๊ด๋ จ ๋งํฌ - github @aws-samples: ๋์ปค ํ์ผ ์์ฑํ๋๋ฐ ์ฐธ๊ณ
์๋์ฐ์์๋ docker ๊ด๋ จ ์๋ฌ๊ฐ ํด๊ฒฐ์ด ์๋์ด์ ์ฐ๋ถํฌ ํ๊ฒฝ์ผ๋ก ์ฎ๊ฒผ๋ค. tflite์ด ๊ทธ๋ ๊ฒ๋ ๋ฌธ์ ์ฌ์ ์ฐธ.. ๊ณ ์๋ ๋ง์ด ํ๋ค. ๊ฒฐ๋ก ์ tensorflow๋ ๋ฌด๊ฑฐ์์ lite๋ฅผ ์ฐ๋ ๊ฑธ ๊ถํ๋ ๊ฒ ๊ฐ๊ณ , ๋์ผ prediction๋ง ์ฌ์ฉํด์ ์ผ๋จ์ ์ฌ๋ ค๋ณด๊ธฐ๋ก ํ๋ค.
- ๊ด๋ จ ๋งํฌ - Stack overflow
- ECR ์ฌ๋ฆฌ๋๋ฐ ๋์ ๋ ๋งํฌ - ML bookcamp
- Docker login ERROR
์ด๋ฐ์์ผ๋ก ํ ์คํธ๋ฅผ ๊ฑฐ์น๋ค์ ๋์ปค๋ฅผ ์ด์ฉํด์ ์ปจํ ์ด์ง ์ด๋ฏธ์ง๋ฅผ ํ ๋๋ก lambda ํจ์๋ฅผ ๋ง๋ค์๋ค.
์ ๋ฆฌํ์๋ฉด ๊ฐ๋จํ๊ฒ ์ด ๋ฆฌํฌ ์ฐธ๊ณ ํด์ ๋ง๋ค์ด๋ณด๊ณ ML bookcamp ์ ์ ๋ณด์ ์ถํฉํด์ container image๋ฅผ ๊ตฌ์ถํ๊ณ ๋๋ ค๋ณด์๋ค.. ๊ฒฐ๊ตญ Dockerfile ๋ง๊ฒ ์ค์ ํ๋๋ฐ ๊ฑฐ์ ์ฝ์งํ ๊ฒ ๊ฐ๋ค
FROM public.ecr.aws/lambda/python:3.8
WORKDIR ${LAMBDA_TASK_ROOT}
COPY app.py app.py
COPY requirements.txt requirements.txt
RUN python3.8 -m pip install --upgrade pip
RUN python3.8 -m pip install -r requirements.txt
CMD ["app.handler"]
์ ๊ทผ๋ฐ ๋ด๊ฐ ์ฌ์ฉํ๋ ๋ชจ๋ธ์ tflite๊ฐ ์๋๋ค๊ณ ํด์ tensorflow๋ก ์ฌ๋ ธ๋๋ฐ ํด๋น ๋์ปค ํ์ผ๋ก ์ ์ฌ๋ ธ๋ค. ๋์ปค๋ก ์ด์ฉํ๋ ๋ฐฉ๋ฒ ์ธ์๋ ์๋ ๋ฏ ์ถ๋ค.
sudo $(aws ecr get-login --no-include-email)
- API Gateway
์ํ๊น๊ฒ๋ ๋ด ๊ธฐ๋ฅ์ 1๋ถ 30์ด์์ ๋ด์ง๋ 2๋ถ์ ์ฒ๋ฆฌ ์๊ฐ์ด ํ์ํ๋ฐ, API gateway๋ ๊ธฐ๋ค๋ ค์ฃผ์ง ์์.. ใ ใ 30์ด๊ฐ ์ต๋์ด๊ณ 2022๋ ํ์ฌ๊น์ง 29์ด๊ฐ ๊ณ ์ ์ธ ๊ฒ ๊ฐ๋ค.
๊ทธ๋์ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ด ์๋ ์ฐพ์๋ณธ ๊ฒฐ๊ณผ ๋ญ๊ฐ ์ฐพ๊ธดํ๋๋ฐ.. ๊ณผ๊ธ ํญํ์ด ๋ ๊ฒ ๊ฐ์ ์์์ฃผ์ํ๊ณ ์๋ค..
- ๊ด๋ จ ๋งํฌ - Aws ๊ณต์ ๋ฌธ์
์ธํฐ๋ท์ ์ฐพ์๋ณธ ๊ฒฐ๊ณผ SQS ๋ฅผ ๋ง๋ค์ด์ ๋๊ธฐ ํ๋ฅผ ๋ง๋ค์ด ํธ์ถํ๊ฑฐ๋ ๋ก๋ ๋ฐธ๋ฐ์ (ALB, ELB)๋ฅผ ๋ง๋ค๋ฉด ์ ํ์์ด ํธ์ถํ ์ ์๋ค๊ณ ๋ ํ๋๋ฐ, single function url๋ก๋ ํธ์ถ์ด ๊ฐ๋ฅํ๋ค๊ณ ํ๋ค.
๋ฌผ๋ก sqs๋ gateway, load balencer ์ด๋ฐ ๊ฒ๋ค์ ๋ณ๋๋ก ๋น์ฉ์ด ํธ์ถ๋๋ค๊ณ ํ๋ ์ฃผ์ํ ๊ฒ..
์ฌํํผ single function url ๋ก ํธ์ถํ๋ฉด์ invoke ํ์๋ ๋ค๋ฅด๋ค๊ณ ํด์ ๊ทธ์ ๋ง๊ฒ๋ container image๋ฅผ ๋ค์ ๋ง๋ค์ด์ ์ ๋ฐ์ดํธํ๋ค. base64๊ฐ ๊ผฌ์ด๋๊ฒ ์ฐธ ๊ณ ์ญ์ด์๋๋ฐ 5์ผ๋ด๋ด ๊ณ ์ํ ๋ณด๋์ด ์๋ ๊ฒ ๊ฐ๋ค ใ ใ
- Frontend-Backend ๋ฟ๋ฆฌ๊ธฐ
์ฒ์ ํ์ด์ฌ์ผ๋ก request test ํ๊ฒ๊ณผ javascript๋ก request testํ๋ ์์ค ๋ถ๋ฅด๋ ํ์์ด ์ข ๋ฌ๋ผ์ ์ข ๊ณ ์ํ๋ค. ๊ณ ์์ ๊ฑฐ์ Backend์์ ํ๋ ๊ตฌ๋ง..
- python ์ event["body"]๋ก ๋ฐ์ดํฐ๋ฅผ ๋ฐ๋๋ค๊ณ ํ์ ๋ string์ผ๋ก ๋ฐ์๋ฒ๋ฆฌ๊ณ ์์ฃผ ์ด์ํ ํํ๋ก ๋ฐ๊ฒ ๋๋ค. data ํ๋ผ๋ฏธํฐ๋ก ๋๊ธฐ๋ฉด์ ์ด์ํด์ง ๊ฒ ๊ฐ๋ค.
- javascript๋ก ๋๊ฒจ๋ฐ์ ๋๋ json์ผ๋ก ์ ๋๊ฒจ๋ฐ๋ ๊ฑธ ํ์ธ
function url๋ก ๋จ์ํ๊ฒ ๋ถ๋ ๋ค. ์๋ํ๋ฉด.. ์๊ฐ ๊ฐ๋น ๋ชปํ๊ณ api gateway cors ์ด์ฉ๊ตฌ๋ ํ์์์ ๊ฒช๊ธฐ ์ซ์ด์ ใ ใ . ๋ณด์ ๋ฌธ์ ๊ฐ ๊ฑฑ์ ๋๋๋ฐ, ์ฐจ์ฐจ beta ํ ์คํธ ํ๋ฉด์ ๋ณด์ํด์ผ๊ฒ ๋ค.
- Sports DB ์ถ๊ฐ
๋ฌด๋ฃ ๋ฒ์ ์ Sportds DB api๋ฅผ ์ด์ฉํ์ฌ ๊ตญ์ ํผ๊ฒจ์ค์ผ์ดํ ๋ํ ์บ๋ฆฐ๋๋ฅผ ๋ง๋ค์ด๋ณด์๋ค. ๋ค๋ง ํธ์ถํ ๋๋ง๋ค ๊ฐ๊ฒฉ์ด ์ฑ ์ ์ด ๋์ด์ ์์ local์์ ํธ์ถํด์ DB๋ฅผ jsonํ ์์ผ์ ์ฌ๋ฆฌ๋ ์ข.. ๊ตฌ๋ฅ๋ค๋ฆฌ ๋ฐฉ์์ ์ด์ฉํ์๋ค. ๊ฒฐ๊ตญ ๋ด์ชฝ์์ ์ ๋ฐ์ดํธ ํ์ง ์์ผ๋ฉด ์์ฉ์์ด์ ๋นํจ์จ์ ์ธ ๋ฐฉ๋ฒ์ด๋ค.
- ๋ ํ๋์ ๋๊ด, lambda ์์ฒด๋ก ์ด๋ฏธ์ง ๋ฃ๊ธฐ์ ๋ถ์กฑํ๋ค. ๊ฒฐ๊ตญ API Gateway..
lambda๋ก ์ด๋ฏธ์ง๋ฅผ base64๋ฅผ ํธํํด์ ๋ณด๋ผ ๋ 502 ๋ฉ์ธ์ง๊ฐ ๊ณ์ํด์ ๋จ๊ฒ ๋๋๋ฐ ์ด๋ lambda๋ฅผ ํตํด์ ๋ฐ๋ก ํธ์ถํ๊ฒ ๋ ๊ฒฝ์ฐ, 100kb ๋ด ์ด๋ฏธ์ง๋ง ๋๋ค๋ ๊ฒ์ด๋ค.. ๋ ์ฉ.. ๊ฒฐ๊ตญ์๋ gif ์ด๋ฏธ์ง๋ ์๋ตํด๋ฒ๋ฆฌ๊ณ ๊ฒฐ๊ณผ๋ง์ด๋ผ๋ ์ถ๋ ฅํ๊ธธ ๋ฐ๋ฌ์..
๊ทธ๋ฐ๋ฐ ํ๋ค๋ณด๋ API gateway๋ timeout ์ ํ์ผ๋ก ๋ ๊ฐ์ ๊ฒฝ์ฐ timeout ๋๋ฌธ์ api gateway๋ฅผ ํ์ง ์๋๋ค๋๊ฒ ์๊ฐ์ด ๋ฌ๋ค..
๋๋ถ๋ถ 503 error๋ก Service unavailable์ ์ด์ ํด๋นํ๋ฏ๋ก ๋ค์ lambda์์ ๋ค์ ํธ์ถ๋ฐ๊ณ ์ ๋ ฅ์ 100kb ๋ฏธ๋ง์ผ๋ก ์ค์ด๋ ๋ฐฉ๋ฒ์ผ๋ก ํํ๋ค.
Wrap up & Conclusion
๊ฒฐ๋ก ์ ์ผ๋ก tensorflow 1.4์ ํ์ด์ฌ 3.8์ ์ฑ๊ณต์ ์ผ๋ก AWS์ ์ฌ๋ ค ๋ชจ๋ธ๋ก ํ์ฌ๊ธ estimationํ๋๋ฐ ์ฑ๊ณตํ์๋ค. ํ์ง๋ง, cost๋ฉด์์ ๋งค์ฐ ๋นํจ์จ์ ์ด๋ผ๊ณ ๋๊ผ๊ณ , ๋ค๋ฅธ ๋์์ ์ฐพ์๋ณด๋ ๊ฒ์ด ์ข์ ๊ฒ ๊ฐ๋ค๋ ๊ฒฐ๋ก ์ ๋ด๋ ธ๋ค. ๋ํ ์๋ชป๋ ์ด๋ฏธ์ง ์ ๋ ฅ๊ณผ ๊ฐ์ ์์ธ์ํฉ์ ๊ณ ๋ คํ์ง ์๊ณ ๋ง๋ค๋ค๋ณด๋, aws์ ๋ฌธ์ ๊ฐ ์๊ธฐ์ง ์์๊น๋ผ๋ ๊ฑฑ์ ๋ ํ๊ฒ ๋์๋ค. ํ์ฌ Beta๋ก ๋ด๋์ ์ฌ์ดํธ๋ 10์ ์ดํ์๋ ํ์ํ์๊ณ , ์ฌ๋๋ง๋ค ์ฐฉ์ง ์ง์ ์ด ๋ค๋ฅธ ์ด๋ฏธ์ง๋ก ์ด์ฉํ estimation์๋ ํ๊ณ๊ฐ ์์์ ๊ณ ๋ คํ์ฌ ์๋ก์ด AI ๊ฐ๋ฐ์ ํฌ์ปค์ฑ์ ๋ง์ถ์๋ค. Beta ๋ฒ์ ์์ ์ด๋ฏธ์ง๋ฅผ ์ ๋ ฅ์ผ๋ก ์ด์ฉํ ์ด์ ๋ ํ์ฌ monocular video๋ฅผ ์ด์ฉํ estimation์ด frame rate๊ฐ ๋ฐ๋ผ์ฃผ์ง ์์์ ์๋๋ฐ, ์ต๊ทผ ์ฐ๊ตฌ๋ก ์๋๊ฐ ๋น ๋ฅธ ์์์ ์บก์ณํ ์ ์๋ ์ฐ๊ตฌ๊ฐ ๋์์ ์๋ง.. ์์์ ์ด์ฉํ judge ai๊ณผ ์ฐฉ์ง ์ง์ ์ supervised learning์ผ๋ก ํ๋ จํ๋ฉด ์ด๋ ์ ๋ ์ฑ๊ณผ๊ฐ ๋์ค์ง ์์๊น ์์ธกํ๋ค.. ์ฌํผ ํ๋ก์ ํธ๋ฅผ ํตํด ๋ฐฐ์ด ๊ฒ๊ณผ ๊ฒฐ๋ก ์ ์๋์ ๊ฐ๋ค!
- tensorflow๋ฅผ AWS์ ์ฌ๋ ค์ model estimation์ ํ ์ ์์!
- React๋ฅผ ์ด์ฉํ์ฌ ๋ชจ๋ฐ์ผ ์น์ฌ์ดํธ๋ฅผ ๊ฐ๋จํ๊ฒ ๋ง๋ค ์ ์๊ฒ ๋์๋ค!
- Judge AI์์ ์ด๋ฏธ์ง๋ฅผ ์ ๋ ฅ๋ฐ๋ ๊ฒ์ ์๋ฌด๋๋ ๋นํจ์จ์ ์ด๋ผ๊ณ ์๊ฐํ์ฌ ์์์ ์ ๋ ฅ๋ฐ๋ ๋ฐฉ๋ฒ์ผ๋ก ๋ค์ ๊ฐ๋ฐ์ ํ๋ ๊ฒ์ผ๋ก ๊ฒฐ์ ํ์๋ค. (๊ทธ๊ฒ ์ธ์ ์ผ์ง ๋ชจ๋ฅด๊ฒ ์ง๋ง..)
- Authors
- Name
- Amelia Young
- GitHub
- @ameliacode