๐ชช NAME
- ํฉ์ธํ, Sehyun Hwang
- hwanghyun3@gmail.com
- Lives in Seoul
๐ SYNOPSIS
๊ฐ๋ฐํ์ด ์กฐํ๋กญ๊ฒ ์ผํ ์ ์๋๋ก ๋ ธ๋ ฅํ๋ ๋ฐฑ์๋ ๊ฐ๋ฐ์ ํฉ์ธํ์ ๋๋ค. ์ ๋ ๋ํ์์์ ์น ๊ฐ๋ฐ์ ํ๊ณ ๋ ํ๋ก ํ์ฌ ํ์ ์์๋ 4๋ ์ฐจ์ ์ ์ด๋ค์์ต๋๋ค. ์ ๊ฐ ๋ฅ์คํธ๋ฉ์์ ์ผํ๋ ์ง๋ฅํ ์๋ํ ํ์, ์ ๊ฐ ์ ์ฌํ๊ธฐ ์ง์ ์ ๊ท๋ก ๊พธ๋ ค์ ธ ํ์ฌ๋ ์ฐจ๋, ๋ณดํ์ ์์ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃจ๋ ์๋น์ค๋ฅผ ๋ค์ํ ๊ณ ๊ฐ์ฌ์ ๋ฉํํ ์ ์์ ์ ๋๋ก ์ฑ์ฅํ์ต๋๋ค. ์๊ณ ๋ฆฌ์ฆ POC๋ถํฐ ์๋น์ค ์ด์๊น์ง ์ง์ ๋ฐ๋ก ๋ฐ์๋ ์๊ธฐ๋ ์์์ง๋ง, ํ์ฌ๋ ์๋น์ค ์ค๊ณ, ๊ฐ๋ฐ ๋ฐฉํฅ ์ ์, ์ธํ๋ผ ๋ฐฉ๋ฉด์์ ์ญํ ์ ๋คํ๊ณ ์์ต๋๋ค.
- Long-running task management๋ฅผ ํจ๊ณผ์ ์ผ๋ก ์ํํ๊ธฐ ์ํ MSA ์ค๊ณ, ๋ฐฐํฌ์ ๋ํด์ ํ๋ถํ ๊ฒฝํ์ด ์์ต๋๋ค.
- ์ด๋ฅผ ์ํด ํด๋ผ์ฐ๋ ํ๊ฒฝ์์๋ AWS์ Serverless service, ๋ก์ปฌ ํ๊ฒฝ์์๋ Redis์ Node.js๋ฅผ ์ด์ฉํฉ๋๋ค.
- Linux ์ธํ๋ผ๋ถํฐ ํด๋ผ์ฐ๋ ๊ธฐ์ ํธ๋ ๋๊น์ง ํญ๋์ ์ดํดํ๊ณ ์์ผ๋ฉฐ, ๋ฐฐํฌ์ ์๋น์ค์ ์ทจ์ง๋ฅผ ๊ณ ๋ คํด front-, back-end์ ๊ฐ๋ฐ ๋ฐฉํฅ์ ์ค์ ํ๊ณ ๊ฐ๋ฐํ๊ณ ์๋น์คํํ ์ ์์ต๋๋ค.
- ๊ฐ๋ฐ์์ ์งํฅํ๋ ๋ฐ๊ฐ ๋๋ ทํ ํธ์ด๋ฉฐ, ์ด๋ฅผ ๊น์ด ์ ๋ขฐํด์ฃผ๋ ๋๋ฃ๋ค๊ณผ ํจ๊ป ํ์ ํ์ง๋ง ๋น ๋ฅด๊ณ ์์ ์ ์ธ ์ํํธ์จ์ด๋ฅผ ๋ง๋ค์ด์์ต๋๋ค.
- ์ปดํจํฐ๋ฅผ ๋ค๋ฃจ๋ ๊ธฐ์ ์ธ์ผ๋ก์ ๋ด๊ฐ ๋ง๋ ์ํํธ์จ์ด๊ฐ ๋ฏธ์น๋ ์ํฅ์ ๋ํด์ ์ฑ ์๊ฐ์ ๋๋ผ๊ณ , ์ด๋ฅผ ์ํด ์ฌ์ฉ์/๋น๊ฐ๋ฐ์์์ ์์ฌ์ํต์ ๊ด์ฌ์ด ๋ง์ต๋๋ค.
๐ฎ Culture & Beliefs
โ๏ธ Use of Design Principles
๊ฐ๋ฐ์๋ค์ ๊ธฐ๋ฅ์ ์๊ตฌ์ ๊ธฐ์ ์ ์ ์ฝ์ด ์ถฉ๋ํ๋ ์ํฉ์ ํญ์ ๋ง๋ฅ๋จ๋ฆฝ๋๋ค. ์ ๋ ์ด๋ฌํ ์ํฉ์์ ํ์ฌ ์๋น์ค ๊ตฌ์กฐ์์ ๊ผญ ์ทจํด์ผ ํ ์ฅ์ ์ ์ ๋ณํ๊ณ ์ด๋ฅผ ํ ๋๋ก ์ค๊ณ ์์น์ ์ง์ ํด ๋ฌธ์ ๋ฅผ ํ์ด์์ต๋๋ค. ์ข ํฉ์ ์ผ๋ก ๊ฐ Microservice๊ฐ ์ํํ๋ ์ญํ ์ ๊ตฌ๋ถ, ์ ์ํ๊ณ ์ด๋ฅผ ์นจ๋ฒํ์ง ์๋๋ก ์์ฌ ๊ฒฐ์ ์ ๋ด๋ฆฌ๋ ์ ๋ฌด๋ฅผ ๋งก์์์ต๋๋ค. ์ค๊ณ ์๋/์์น์ ์ด์์ ๋ฌธ์ํํด ํ์๋ค๊ณผ ๋ ผ์ํ์ฌ ๋ผ๋๋ฅผ ๊ตฌ์ฑํ๊ณ , ์ ๋ฌด๋ฅผ ๋ถ๋ดํ๊ณ ์ด์ ๋ถ์ฌ๋๊ฐ ์๋น์ค๋ฅผ ์์ฑํฉ๋๋ค.
X-ray ์ํ ๊ฒ์ฌ ์์คํ ์ ์ ๋ฉด ์ฌ๊ฐ๋ฐํ๋ ํ๋ก์ ํธ์ ์ด๊ธฐ ๋จ๊ณ์์๋ ๊ณ ์ ๊ท๊ฒฉ์ ๊ฐ์ง 3์ข ๋ฅ์ ํ๋์จ์ด์ ๋ณต์กํ ๋น์ฆ๋์ค ๋ก์ง์ ์ ์ ๊ฐ๋ฐ ์ธ๋ ฅ์ผ๋ก ๊ตฌํํด์ผ ํ๋ ๊ณผ์ ๊ฐ ์์์ต๋๋ค. ์ ๋ ์ ์ฒด ์์คํ ์ 1) ๊ฐ ์ฅ๋น์ ๋ช ๋ น์ ์ ๋ฌํ๋ ํ๋กํ ์ฝ์ ๊ตฌํํ Microservice์, ์ด๋ค Microservice๋ฅผ ๋์ ํ๋กํ์ผ ๋จ์๋ก ์ถ์ํํ ํ๋์จ์ด ์คํ, 2) ๊ฒ์ฌ ์ํ์ ํ์ํ ๋น์ฆ๋์ค ๋ก์ง๊ณผ ๊ฒ์ฌ ์ด๋ ฅ์ ๊ด๋ฆฌํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์คํ์ผ๋ก ํฌ๊ฒ ๋๋๊ณ ๊ธฐ์ ์คํ์ ํ ๋นํ์ต๋๋ค. ํ๋์จ์ด ์คํ์์๋ Stream interface์ ์ด๋ฒคํธ ๊ธฐ๋ฐ ์ฒ๋ฆฌ์ ๊ฐ์ ์ด ์๋ Node.js๋ฅผ ์ด์ฉํ์ผ๋ฉฐ, ๊ฐ์ฒด ์งํฅ์ ์ธ TypeScript type์ Event Emitter์ ์ ์ฉํด ํ๋์จ์ด ํ๋กํ ์ฝ์ ์ ๊ตํ๊ณ ํธ๋ฆฌํ๊ฒ ๊ฐ๋ฐํ ์ ์๋๋ก ๊ตฌ์ฑํ์ผ๋ฉฐ, C++ SDK๋ฅผ ์ด์ฉํด ์ด๋ฏธ์ง ํ๋ ๋ชจ๋์ ๊ตฌํํ์ต๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ์คํ์์๋ ์ ๊ฐ ๊ฐ๋ฐํ ์ด๋ฏธ์ง ํ๋๊ณผ ์ด๋ฌผ ๊ฒ์ฌ ๊ณผ์ ์ Postgre SQL์ ์ ์ฌํ ์ ์๋๋ก ํ๋ Schema ์ค๊ณ์ ์ฐธ์ฌํ์ผ๋ฉฐ, ์ด๋ฏธ์ง ๋ฐ์ดํฐ S3 compatible storage๋ฅผ ์ฑํํ์ต๋๋ค. ๋ช ํํ ์์คํ ๊ตฌ์ฑ ๋์ ๊ฐ๋ฐ ์์ ๋นํด ์ธ๋ ฅ๊ณผ ์๊ฐ์ด ๋งค์ฐ ๋ถ์กฑํ ์ํฉ์์ ์ค๋ฌผ ์ฅ๋น๋ฅผ ์ด์ฉํ ๊ฐ๋ฐ๊ณผ ํ ์คํธ๋ฅผ ์ต์ํํ ์ ์์์ต๋๋ค.
๋ฅ์คํธ๋ฉ์์ ์์ ํ์ ๊ฐ์ฅ ํต์ฌ ์๋น์ค๋ผ๊ณ ํ ์ ์๋ ๋ฒํธํ ์ธ์ ๋ชจ๋์ 1) Statelessํ๊ณ ์ํ ํ์ฅ์ด ์ฉ์ดํด์ผ ํ๋ฉฐ, 2) ์ด๋ฏธ์ง ์ฒ๋ฆฌ ์ปจํ ์ด๋๋ Worker ์ญํ ์ ์ํํ๋ฉฐ, Worker ๋ด์์๋ ๊ฒ์ฆ๋์ง ์์ ๋น๋๊ธฐ ์ฝ๋๋ฅผ ์ฌ์ฉํ์ง ์๋๋ค๋ ์์น์ ๊ธฐ๋ฐํด ๊ฐ๋ฐํ์ต๋๋ค. ํด๋น ๋ชจ๋์ด ๊ธฐ์ ์ฉ ์๋ฃจ์ ์ผ๋ก ๋ฉํ๋ ๋, ๊ณ ๊ฐ์ฌ๋ง๋ค ์๋ฒ ๋๋ ๋ณด๋, PC ํ๊ฒฝ, ๊ณ ์ฑ๋ฅ ์๋ฒ ํ๊ฒฝ ๋ฑ ๋ค์ํ ์ธํ๋ผ ์์์ ๊ตฌ๋๋ ๊ฒ์ ์๊ตฌ๋ฐ์ ์ํฉ์์ Horizontal scaling์ ํ์์ ์ธ ๊ณ ๋ ค ์ฌํญ์ด์์ผ๋ฉฐ, ๋ ๋์๊ฐ ํด๋ผ์ฐ๋์์ ๊ตฌ๋๋๋ SaaS ์๋น์ค๋ก ๋ฐ์ ํ ๊ฐ๋ฅ์ฑ์ด ๋ ผ์๋ ์ฌ์ค๋ ๋ฐ์๋์์ต๋๋ค.
Worker ๋ด๋ถ์์ ๋น๋๊ธฐ ์ฒ๋ฆฌ๋ฅผ ์ง์ํ๋ ์ด์ ๋ ์ถ๋ก ๊ฐ์์ ์ํด ์ฌ์ฉํ๋ Tensor RT framework์ ๋น๋๊ธฐ ์ฒ๋ฆฌ์ ์ถฉ๋ ๊ฐ๋ฅ์ฑ์ ๋ฐฉ์งํ๊ณ ์์ ์ฑ์ ๋์ด๊ธฐ ์ํจ์ด์์ต๋๋ค. Main thread์์๋ Redis stream ๋๋ mmap ์ ์ ์ฌ๋ ๋ฉ์์ง๋ฅผ polling ํ๋ ์์ ๋ง ์ํํ๋ ๋จ์ํ ๊ตฌ์กฐ๋ฅผ ์ ํํ์ผ๋ฉฐ, ํฌ์ ํ ์ปดํจํ ๋ฆฌ์์ค์ ๋น๋กํด Worker ๊ฐ์๋งํผ ์ ํ์ ์ผ๋ก ์ฑ๋ฅ์ด ํฅ์ํจ์ ํ์ธํ์ต๋๋ค. Stateless๋ฅผ ์งํฅํ๊ธฐ ๋๋ฌธ์ ๊ฐ์ ์ฝ๋๋ฒ ์ด์ค๋ก๋ถํฐ ์๋์ ๊ฐ์ ๋ค์ํ ํํ์ ์๋น์ค๋ฅผ ๊ตฌํํ ์ ์์์ต๋๋ค:
- ์นด๋ฉ๋ผ์ ์ง์ ์ฐ๊ฒฐ๋๋ ์ค์๊ฐ๊ณผ request/response ์๋น์ค ๋ชจ๋๊ฐ ์กด์ฌํฉ๋๋ค.
- ์๋ฒ ๋๋ ํ๊ฒฝ์์๋ ์ฐ์ ์ฉ ์นด๋ฉ๋ผ๋ฅผ ํตํ ์ด๋ฏธ์ง ํ๋ ์๋น์ค๋ 60 FPS ์ด์, AI ๋ชจ๋์ ์ฝ 5 FPS์ผ๋ก ๊ตฌ๋๋๋ ์ํ์์, ๊ณ ๊ฐ์ฌ๊ฐ ์ํ ๋ ์ถ๋ก ๊ฒฐ๊ณผ๋ฅผ ์ฝ 1 FPS๋ก ๊ฐ์ ธ๊ฐ ์ ์์์ต๋๋ค.
- ์๋ฒ ํ๊ฒฝ์์๋ 40๊ฐ์ GPU worker๋ฅผ ์ด์ฉํด 300 RPS๋ฅผ ๋ฌ์ฑํ์ต๋๋ค.
- ๋ํ ์ ํ๋ ํ๋ณด๋ฅผ ์ต์ฐ์ ๊ณผ์ ๋ก ํ๋ ๋ฅ๋ฌ๋ ๋ด๋น ํ์๊ณผ์ ํ๋ ฅ์๋ ๊ฐ์ ์ ๋ณด์์ต๋๋ค.
๐จ Creativity
์์ ์ค์ ํ ์ค๊ณ ์์น์ ์ค์ํ๊ธฐ ์ํด์๋ ๋
์ฐฝ์ ์ธ ๊ตฌํ์ด ํ์ํ ๋๊ฐ ์์๋๋ฐ, ์ ๊ฐ ์ผํ๋ ํ์ ์ค๋ ฅ ์๋ ๊ฐ๋ฐ์๋ค๋ก ์ด๋ฃจ์ด์ ธ ์์ผ๋ ์ธ์์ด ์์์ธ ํ์, ์ฝ๋ ์์ด ๋ง๊ณ ํ
์คํธ๊ฐ ๋ณต์กํ๋ค๋ฉด ํ์ค์ ์ธ ๊ฐ๋ฐ ๋ฐฉ์์ ์ฑํํ๊ธฐ ํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์์ต๋๋ค. ์ฐ์ ์ ์ฒด ์์คํ
์ด ์์ ๋ฐ์ ๋์์ ํ์ง ์๋๋ก ์ธํ๋ผ์ ์ ์ฝ ์ฌํญ, ์ฌ์ฉํ๊ณ ์ ํ๋ ๋ธ๋ผ์ฐ์ ์ Web API์ Linux system call๊น์ง ๊ณ ๋ คํด ๊ฐ ๋ชจ๋์ ์ญํ ์ ์ด์์ ์ผ๋ก ์ง์ ํด ๋ด
๋๋ค. (์ถํ ํํ๋ ๊ฐ๋ฅ์ฑ์ด ๋ฌผ๋ก ์์ต๋๋ค.) ์ด๋ ๋ค์ํ ์ด์ ์์ ๊ฒํ , ์คํ, ์ฆ๋ช
์ด ํ์ํ๋ค๋ฉด, ํ์ด์ผ ํ ๋ฌธ์ ๋ฅผ ๋จ์ํํ ๊ฐ๋ฐ ํ๊ฒฝ ๋๋ ํ
์คํธ ์ผ์ด์ค๋ฅผ ๋ณ๋๋ก ๊ตฌ์ถํด ์ปค๋ฎค๋์ผ์ด์
ํ์ต๋๋ค. ์ด๋ repl.it
, CodePen
, StackBlitz
, TypeScript Playground
, Google CoLab๊ณผ ๊ฐ์ Browser IDE ๋๋ ์ปจํ
์ด๋ ํ๊ฒฝ์ ์ด์ฉํด ์คํ์ ๋ํ ์ ๊ทผ์ฑ์ ๋์ด๊ณ ์คํ ๊ฒฐ๊ณผ๋ฅผ ๊ด๋ฆฌํ ์ ์๋๋ก ์ ๊ฒฝ ์ผ์ต๋๋ค.
๋ฒํธํ์ ์ธ์ํ๋ HTTP API๋ฅผ ๊ฐ๋ฐํ๋ ํ๋ก์ ํธ ์์๋ Web application server ์์ด Nginx + Redis๋ง์ผ๋ก ๊ธฐ๋ฅ์ ๊ตฌํํ ๊ฒฝํ์ด ์์ต๋๋ค. ์ค๊ณ๋ ๊ต๊ณผ์์ ์ธ Fan-out ํจํด์ด์์ง๋ง, Python ๋ฒํธํ ์ธ์ ์ปจํ ์ด๋์์ Fast API ๋ฑ์ ์๋ฒ ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํ์ง ์๊ณ Nginx์์ ๋ด๋นํ๊ฒ ํจ์ผ๋ก์จ ์๋์ ์์ ์ฑ์ ๋์ด์ฌ๋ ธ์ต๋๋ค. ํ์ค์ ์ธ HTTP ์ํ ์ฝ๋๋ฅผ ๊ตฌํํ๊ธฐ ์ํด์๋ Nginx์์ HTTP ๊ด๋ จ ๋ก์ง์ด ์๋ํด์ผ ํ๋๋ฐ, ์ด๋ฅผ ์ํด์ OpenResty ์ Lua scripting์ ์ด์ฉํ์ต๋๋ค. ์ด๋ ์ฝ๋์ ๋ ํด๊ฐ ์ด๋ ค์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์ Node.js๋ฅผ ์ด์ฉํด ์ปค๋ฒ๋ฆฌ์ง๊ฐ 100%์ ๊ฐ๊น์ด ํ ์คํธ ์ฝ๋๋ฅผ ์์ฑํ์ต๋๋ค. ์ด์ ๊ฐ์ด ๋ ํผ๋ฐ์ค๊ฐ ์๋ ์ค๊ณ๋ฅผ ๊ตฌํํ ๋๋ ํ์๋ค์ ๋นํด ์๋์ ์ผ๋ก ๊ณผ๋คํ๊ฒ ์ฐฝ์์ ์ด์ง ์๋๋ก ํ ์คํธ ์ฝ๋๋ฅผ ์์ฑํ๊ณ ๋ฐฐ๊ฒฝ์ ๋ฌธ์๋ก ์์ฑํด ํ์๋ค๊ณผ ํฉ์๋ฅผ ์ด๋ฃฐ ์ ์๋๋ก ๋ ธ๋ ฅํ์ต๋๋ค.
๐ซ Relational
Illustration by Scott Garrett Source
์ ๋ ๊ฐ์ฑ ์๋ ๊ฐ๋ฐ์๋ค์ด ๋ชจ์ธ ๊ฐ๋ฐ ์กฐ์ง์์ ์ผํด์๊ณ ์์ผ๋ก๋ ๊ทธ๋ฌํ ์กฐ์ง์์ ์ผํ๊ณ ์ถ์ต๋๋ค. ๋ชจํธํ ๋ฌธ์ ๋ฅผ ๋ง๋ฅ๋จ๋ ธ์ ๋, ๋ค์ํ ํฌ๋ง๊ณผ ์ฐ๋ ค๊ฐ ์์ ๋กญ๊ฒ ๋ ผ์๋๊ณ , ์ด๊ฒ์ด ์ค๊ณ์ ๊ฐ๋ฐ์ ๋ฐ์๋๋ ๊ณผ์ ์์ ์ฆ๊ฑฐ์์ ๋๊ผ์ต๋๋ค. ์ ๋ ์ธ์ ์ ๋ฐ์ ๊ด์ฌ์ด ๋ง๊ณ ๋ค์ํ ๋ถ์ผ์ ๊ฒฝ๊ณ๋ฅผ ๋๋๋๋ ์ง์ ์ ๊ฐ์ง๊ณ ์ถ๋ค๋ ์๊ฐ์ ์ค๋์ ๋ถํฐ ํ์๋๋ฐ, ๊ฐ๋ฐ ์ ๋ฌด๋ ์ด๋ฌํ ์ด์ ๋ก ์ ๊ฐ ์ข์ํ๊ณ ์ํ ์ ์๋ ์ผ์ด๋ผ๊ณ ํ์ ์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ์ ๋ ์ ์ฌ์ ์ผ๋ก ๋ฐ์ํ ์ ์๋ ๋ฌธ์ ๋ค์ ์ ์ ์ ์ผ๋ก ํ์ ์ ๊ธฐํ๊ณ , ๊ธฐ์ ์คํ๊ณผ AWS API๋ค์ ์ถ์ฒํด ์ฃผ๋ฉด์ ํ์๋ค์ ๊ฐ๋ฐ์ ์ง์ํ๋ ์ ๋ฌด๋ฅผ ํด์์ต๋๋ค. ๋ํ Linux OS์ C++์ ๋ํ ์ง์์ ๊ธฐ๋ฐ์ผ๋ก ์ปจํ ์ด๋ ๋ด๋ถ, AWS Lambda, ์๋ฒ ๋๋ ํ๊ฒฝ ๋ฑ ํน์ํ ํ๊ฒฝ์์ ๋ฐ์ํ ๋ฌธ์ ์ ๋ํด์ Troubleshooter ์ญํ ์ ํ์ผ๋ฉฐ, ์ด๋ฌํ ์ญํ ์ ํ ์ ์์ด ๊ธฐ์๊ฒ ์๊ฐํ๊ณ ์์ต๋๋ค.
๐ฑ Tech Lunchbox
๐๏ธ Architecture: Docker Compose, Nginx, Redis
- OCI Specification, Docker API์ 1:1 ๋์์ด ์ด๋ฃจ์ด์ง๋ค๋ ๋ฉด์์ Docker Compose๋ฅผ ๊ฐ๋ฐ, ๋ฐฐํฌ์ ๋ชจ๋ ํ์ฉํ๊ณ ์์ต๋๋ค.
- MSA์์ ๊ฐ ์๋น์ค์ ์์กด์ฑ์ ํต์ ํ๊ธฐ ์ํด ์๋น์ค๋ณ env/envfile๊ณผ volume, network ์น์ ์ ์ฃผ๋ก ๊ฐ๋ฐํ๊ณ ์ ์ฌํ ์ฝ๋ ๋ฆฌ๋ทฐํฉ๋๋ค.
- Nginx๋ ํ๋ก์ ํธ ์ธ๋ถ์์ Gateway๋ก์, Redis๋ ํ๋ก์ ํธ ๋ด๋ถ์ Message broker๋ก์ ํ์ฉํด์์ต๋๋ค.
- Nginx reverse proxy rule์ ์์ฑํ๊ณ Nginx push stream module ๊ณผ ๊ฐ์ ์ถ๊ฐ Nginx module์ ํ์ฉํ ์ ์์ต๋๋ค.
- Redis์ ๊ฑฐ์ ๋ชจ๋ ๋ด์ฅ ์๋ฃํ์ ์ ์ฌ์ ์์ ํ์ฉํ ์ ์๊ณ , ์ปจํ ์ด๋๋ณ ์ฐ๋ ๋ฐฉ์์ ์ ์ํ ์ ์์ต๋๋ค.
๐ฉ๏ธ Serverless AWS
- Python, Node.js ์ธ์ด๋ก Lambda function์ Production์์ ๊พธ์คํ ์ฌ์ฉํ์ต๋๋ค.
- Container ํํ์ Lambda ๋ก AI inference๋ฅผ ๊ตฌ๋ํ ์ ์์ต๋๋ค.
- SNS, SQS, EventsBridge ๋ฑ์ AWS ์๋น์ค๋ค๋ก Lambda์ Trigger/destination์ ๊ตฌ์ฑํ ์ ์์ต๋๋ค.
- Step Functions๋ก AWS ์๋น์ค๋ค์ ๋น์ฆ๋์ค ๋ก์ง์ ๋ฐ๋ผ์ ์ฐ๋ํ ์ ์์ต๋๋ค.
- Step Functions์ API Gateway๋ฅผ ์ฐ๋ํด ์ฝ๋ฉ ์์ด Microservice๋ฅผ ๊ตฌ์ฑํ ์ ์์ต๋๋ค.
- TypeScript AWS CDK๋ก ๋ธ๋์น๋ณ๋ก Serverless CI๋ฅผ ๊ตฌ์ฑํ ์ ์์ต๋๋ค.
๐ค Languages: JavaScript, Python, Shell, C++โฆ
- Node.js ๋ฅผ ์ด์ฉํด ๋ณต์กํ ๋น์ฆ๋์ค ๋ก์ง์ ์ด๊ดํ๋ ์ํํธ์จ์ด๋ฅผ ๊ฐ๋ฐํฉ๋๋ค.
- JavaScript์ ๋ฐ์ด๋ ์ ์ฐ์ฑ๊ณผ ๋น๋๊ธฐ ์ฒ๋ฆฌ ์ฑ๋ฅ ๋๋ฌธ์ ํด๋น ์ญํ ์ ์ฃผ๋ก ํ ๋นํ์ต๋๋ค.
- ํน์ ํ๋ ์์ํฌ์ ์ข ์๋๊ธฐ๋ณด๋ค๋ Frontend-, server-side์ ๊ด๊ณ ์์ด JavaScript ๊ธฐ๋ณธ๊ธฐ์ ์ถฉ์คํ Full stack ๊ฐ๋ฐ์ ์งํฅํฉ๋๋ค.
- ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ์์ด์ ์ ๊ฐ ๊ฐ์ฅ ์ ๋ฌธ์ ์ธ ์ธ์ด์ ๋๋ค.
- Python ์ ์ฃผ๋ก AI์ ๊ด๋ จ๋ ์์
์ ๋ํด์ ๋ช
ํํ ์ญํ ์ ๋ฐฐ์ ํด์์ต๋๋ค.
- MSA ๊ตฌ์กฐ ์์์ ์ฃผ์ด์ง ์ญํ ์ ์ ํํ ํ ์ ์๋, ๋๋ฌด ํฌ์ง ์์ ํ๋ ์์ํฌ๋ฅผ ์ ํํด์ ์ฌ์ฉํ์ผ๋ฉฐ, Python ๊ฐ๋ฐ์์ ๊ฐ์ฅ ๋ง์ด ํ์ ํด๋ดค์ต๋๋ค.
- ํ์ํ ๊ธฐ๋ฅ ๊ตฌํ์ ์ถฉ์คํ ํ ์ ์๋ ์์ค์ด๋, Python ๊ณ ์ ์ ํน์ฑ์ ์ดํดํ๊ณ ์ฝ๋๋ฒ ์ด์ค๋ฅผ ๋ฆฌ๋ํ ์ ์๋ ์์ค์ ์๋๋๋ค.
- Shell script ์ Makefile ์ ์ด์ฉํด Linux OS์ ์ง์ ์ํธ์์ฉ์ด ํ์ํ ์คํฌ๋ฆฝํธ๋ฅผ ์์ฑํ๊ณ DevOps ์
๋ฌด๋ฅผ ์ํํฉ๋๋ค.
- ์ ํ๋ฆฌ์ผ์ด์
๊ฐ๋ฐ์ ์ฐ์ด๋ ๋ค๋ฅธ ์คํฌ๋ฆฝํธ ์ธ์ด ์์ค์ผ๋ก Shell script์ ๋ฅ์ํฉ๋๋ค.
- ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ๋ฌด๊ดํ๊ฒ Linux system call, Child process์ ์ง์ ์ํธ์์ฉํ ์ ์์ด์ Shell script ๋ฅผ ์ค์ํ๊ณ ์์ต๋๋ค.
- Dependency๊ฐ ๋ณต์กํ ๊ฒฝ์ฐ๋, ๋ค์ํ ์ธ์ด๊ฐ ์ฐ์ด๋ MSA ๊ตฌ์กฐ์์ ํน์ ์ธ์ด์ ์์กดํ์ง ์๊ธฐ ์ํด์ Makefile ์ ์ ์ฉํ๊ฒ ์ฌ์ฉํ์ต๋๋ค.
- ์ ํ๋ฆฌ์ผ์ด์
๊ฐ๋ฐ์ ์ฐ์ด๋ ๋ค๋ฅธ ์คํฌ๋ฆฝํธ ์ธ์ด ์์ค์ผ๋ก Shell script์ ๋ฅ์ํฉ๋๋ค.
- ํ๋์จ์ด ์ฐ๋ ๊ด๋ จํด์ C++ ๋ฅผ ์ด์ฉํด ์ฌํ์ฉ ๊ฐ๋ฅํ ์ฝ๋๋ฅผ ์์ฑํ ์ ์์ต๋๋ค.
- ์ฐ์ ์ฉ ์นด๋ฉ๋ผ, X-ray detector ๋ฑ์ C++ SDK๋ฅผ ํตํด ์ ์ดํ๊ณ Linux IPC๋ฅผ ํตํด ๋ค๋ฅธ Microservice์ ๋ฐ์ดํฐ๋ฅผ ์ ๊ณตํ๋ ๊ฐ๋ฐ์ ํ์ต๋๋ค.
- Modern C++ ๋ฌธ๋ฒ๊ณผ ๊ฐ์ฒด๋ฅผ ์ด์ฉํด ์์ ํ๊ณ ํจ์จ์ ์ธ ๊ฐ๋ฐ์ ์งํฅํ์ต๋๋ค.