๐ ์๋ ํ์ธ์! ALPACO ํ๋ก์ ํธ ๋ฌธ์์ ์ค์ ๊ฒ์ ํ์ํฉ๋๋ค
์ด ๋ฌธ์๋ ALPACO ํ๋ก์ ํธ์ ๋ฐฉ๋ํ ๋ฌธ์๋ค์ ์ฝ๊ฒ ํ์ํ๊ณ ์ํ๋ ์ ๋ณด๋ฅผ ๋น ๋ฅด๊ฒ ์ฐพ์ ์ ์๋๋ก ๋์๋๋ฆฌ๋ ์๋ด์์ ๋๋ค. ์ ํฌ๋ ALPACO๋ฅผ ์ดํดํ๊ณ , ์ฌ์ฉํ๊ณ , ๊ฐ๋ฐํ๊ณ , ์ด์ํ๋ ๋ฐ ํ์ํ ๋ชจ๋ ์ ๋ณด๋ฅผ ์ฒด๊ณ์ ์ผ๋ก ์ ๋ฆฌํด๋์์ต๋๋ค.
์๋ ๋ชฉ์ฐจ๋ฅผ ํตํด ๊ด์ฌ ์๋ ๋ถ์ผ์ ๋ฌธ์๋ฅผ ์ฐพ์๋ณด์ธ์!
๐ ํ๋ก์ ํธ ์ ์ฒด ์๊ฐ
ALPACO ํ๋ก์ ํธ๊ฐ ๋ฌด์์ธ์ง, ์ด๋ค ๋ชฉํ๋ฅผ ๊ฐ์ง๊ณ ์๋์ง, ์ฃผ์ ๊ธฐ๋ฅ๊ณผ ์ ์ฒด ์์คํ ์ํคํ ์ฒ, ๊ทธ๋ฆฌ๊ณ ์ฌ์ฉ๋ ๊ธฐ์ ์คํ์ ๋ํ ์ ๋ฐ์ ์ธ ๊ฐ์๋ฅผ ํ์ธํ๊ณ ์ถ์ผ์๋ค๋ฉด ๋ค์ ๋ฌธ์๋ฅผ ์ฐธ๊ณ ํ์ธ์.
- ๐ ALPACO ํ๋ก์ ํธ ๋ฉ์ธ ํ์ด์ง: ํ๋ก์ ํธ์ ์์์ ์ ๋๋ค. ALPACO์ ๋น์ ๊ณผ ํต์ฌ ๊ฐ์น๋ฅผ ๋ด๊ณ ์์ต๋๋ค.
๐โโ๏ธ ์ฌ์ฉ์๋ฅผ ์ํ ๊ฐ์ด๋
ALPACO ํ๋ซํผ์ ์ง์ ์ฌ์ฉํด๋ณด๊ณ ์ถ์ผ์ ๊ฐ์? ๋ค์ ๋ฌธ์๋ ํ์๊ฐ์ ๋ถํฐ ์ฃผ์ ๊ธฐ๋ฅ ์ฌ์ฉ๋ฒ๊น์ง ์น์ ํ๊ฒ ์๋ดํด ๋๋ฆฝ๋๋ค.
- ๐ ALPACO ์ฌ์ฉ์ ๋งค๋ด์ผ:
- ํ๋ซํผ ์ ์ ๋ฐ ๊ตฌ๊ธ ๋ก๊ทธ์ธ ๋ฐฉ๋ฒ
- AI๋ฅผ ์ด์ฉํ ์ฝ๋ฉ ๋ฌธ์ ์์ฑํ๊ธฐ
- ์ฝ๋ฉ ํ ์คํธ ๋ฌธ์ ํ์ด (์ฝ๋ ์๋ํฐ ์ฌ์ฉ, AI ํฌํผ ํ์ฉ, ์ฝ๋ ์ ์ถ ๋ฐ ์ฑ์ )
- ์ฑ์ ๊ฒฐ๊ณผ ํ์ธ ๋ฐ ํ์ด ๊ณต์
- ์ปค๋ฎค๋ํฐ ๊ธฐ๋ฅ ํ์ฉ (๊ฒ์๊ธ ์์ฑ, ๋๊ธ, ์ข์์)
- ๋ด๊ฐ ์์ฑํ ๋ฌธ์ ๊ด๋ฆฌ (๋ด ์ ์ฅ์) ๋ฐ ์ ์ฒด ์ ์ถ ํํฉ ๋ณด๊ธฐ
๐งโ๐ป ๊ฐ๋ฐ์๋ฅผ ์ํ ๊ฐ์ด๋
ALPACO ๊ฐ๋ฐ์ ์ฐธ์ฌํ๊ฑฐ๋, ์์คํ ์ ๊ธฐ์ ์ ์ธ ๋ถ๋ถ์ ๋ ๊น์ด ์ดํดํ๊ณ ์ถ์ผ์ ๋ถ๋ค์ ์ํ ๋ฌธ์์ ๋๋ค.
๐ฅ๏ธ ํ๋ก ํธ์๋ (Application)
ALPACO์ ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ฅผ ๊ตฌ์ฑํ๋ ํ๋ก ํธ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ํ ์์ธ ๊ฐ์ด๋์ ๋๋ค.
- ๐จ ํ๋ก ํธ์๋ ์ ํ๋ฆฌ์ผ์ด์
๊ฐ์ด๋:
- Next.js, TypeScript, Tailwind CSS ๋ฑ ์ฃผ์ ๊ธฐ์ ์คํ ์๊ฐ
- ๋ก์ปฌ ๊ฐ๋ฐ ํ๊ฒฝ ์ค์ ๋ฐ ์คํ ๋ฐฉ๋ฒ
- ํ๋ก๋์ ๋น๋ ๋ฐ AWS S3/CloudFront๋ฅผ ์ด์ฉํ ๋ฐฐํฌ ์ ๋ต
- GitHub Actions๋ฅผ ํ์ฉํ CI/CD ํ์ดํ๋ผ์ธ ์ค๋ช
โ๏ธ ๋ฐฑ์๋ (Lambda ๋ง์ดํฌ๋ก์๋น์ค)
ALPACO์ ํต์ฌ ๋ก์ง์ ๋ด๋นํ๋ AWS Lambda ๊ธฐ๋ฐ ๋ง์ดํฌ๋ก์๋น์ค ์ํคํ ์ฒ(MSA) ๋ฐ ๊ฐ ์๋น์ค๋ณ ์์ธ ๊ฐ๋ฐ ๊ฐ์ด๋์ ๋๋ค.
- ๐๏ธ MSA Lambda ๊ฐ๋ฐ ๊ฐ์ด๋:
- ALPACO ํ๋ก์ ํธ์ MSA ์์น ๋ฐ Lambda ํจ์ ์ค๊ณ ํจํด
- ์๋น์ค ๊ฐ ํต์ ๋ฐฉ๋ฒ (API Gateway, Lambda ์ง์ ํธ์ถ, SSE ์คํธ๋ฆฌ๋ฐ)
- ๋ฐ์ดํฐ ๊ด๋ฆฌ (DynamoDB) ์ ๋ต ๋ฐ Lambda Layer ํ์ฉ๋ฒ
- ๋ก์ปฌ ๊ฐ๋ฐ ๋ฐ ํ ์คํธ ํ๊ฒฝ ๊ตฌ์ฑ
- ๊ฐ ๋ง์ดํฌ๋ก์๋น์ค ์์ธ API ๋ช
์ธ ๋ฐ ๊ธฐ์ ๊ฐ์ด๋:
- ๐ค AI ์ฑ๋ด (Chatbot): ์ฌ์ฉ์ ๋ฌธ์ ํ์ด๋ฅผ ๋๋ AI ์ฑ๋ด ์๋น์ค์ ์ํคํ ์ฒ, API ์๋ํฌ์ธํธ, ์ธ์ฆ ๋ฐฉ์ ๋ฐ ๋ฐฐํฌ ๋ฐฉ๋ฒ์ ์ค๋ช ํฉ๋๋ค.
- โ๏ธ ์ฝ๋ ์คํ ๋ฐ ์ฑ์ ์๋น์ค (Code Execution Service): ์ฌ์ฉ์๊ฐ ์ ์ถํ ์ฝ๋๋ฅผ ์์ ํ๊ฒ ์คํํ๊ณ ์ฑ์ ํ๋
code-executor
๋ฐcode-grader
Lambda์ ์ํคํ ์ฒ, API, ๋ฐ์ดํฐ ๋ชจ๋ธ์ ๋ค๋ฃน๋๋ค. - ๐ฃ๏ธ ์ปค๋ฎค๋ํฐ API (Community API): ๊ฒ์๋ฌผ, ๋๊ธ, ์ข์์ ๋ฑ ์ปค๋ฎค๋ํฐ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ API์ ์๋ํฌ์ธํธ, ๋ฐ์ดํฐ ๋ชจ๋ธ, Lambda ํจ์ ๋ฐ ๋ฐฐํฌ ๋ฐฉ๋ฒ์ ์๋ดํฉ๋๋ค.
- ๐งฉ ๋ฌธ์ ์์ฑ ์๋น์ค V3 (Problem Generator V3): LLM์ ์ด์ฉํด ์ฝ๋ฉ ๋ฌธ์ ๋ฅผ ๋์ ์ผ๋ก ์์ฑํ๋ ์๋น์ค์ ์ํคํ ์ฒ, ํต์ฌ ํ์ดํ๋ผ์ธ, ์ธํ๋ผ ๋ฐ API ์ฌ์ฉ๋ฒ์ ์์ธํ ์ค๋ช ํฉ๋๋ค.
- ๐ ๋ฌธ์ API (Problems API): ์์ฑ๋ ์ฝ๋ฉ ๋ฌธ์ ์ ๋ณด๋ฅผ ์กฐํํ๋ API์ ์๋ํฌ์ธํธ, ๋ฐ์ดํฐ ๋ชจ๋ธ, Lambda ํจ์ ๋ฐ ๋ฐฐํฌ ๋ฐฉ๋ฒ์ ์๋ดํฉ๋๋ค.
- ๐พ ์ ์ถ API (Submissions API): ์ฌ์ฉ์์ ์ฝ๋ ์ ์ถ ๊ธฐ๋ก์ ์กฐํํ๋ API์ ์๋ํฌ์ธํธ, Lambda ํจ์, ํ๋ก ํธ์๋ ์ฐ๋ ๋ฐฉ์ ๋ฐ ๋ฐฐํฌ ๋ฐฉ๋ฒ์ ์ค๋ช ํฉ๋๋ค.
โ๏ธ ์ธํ๋ผ (Infrastructure as Code - Terraform)
ALPACO ํ๋ซํผ์ ๊ตฌ์ฑํ๋ ๋ชจ๋ AWS ์ธํ๋ผ๋ฅผ ์ฝ๋๋ก ๊ด๋ฆฌ(IaC)ํ๋ ๋ฐฉ๋ฒ์ ๋ํ ํฌ๊ด์ ์ธ ๊ฐ์ด๋์ ๋๋ค.
- ๐ ๏ธ Terraform ์ธํ๋ผ ์ฌ์ฉ ๊ฐ์ด๋:
- Terraform์ ์ฌ์ฉํ AWS ์ธํ๋ผ ๋ฐฐํฌ ๋ฐ ๊ด๋ฆฌ์ ํต์ฌ ์์น
- ์๊ฒฉ ์ํ ๊ด๋ฆฌ (S3, DynamoDB) ์ค์ (
backend-setup
๋ชจ๋) - ๊ฐ ์๋น์ค ๋ชจ๋(Cognito, App, API, Chatbot ๋ฑ)๋ณ ๋ฐฐํฌ ์ง์นจ ๋ฐ ์์
- CI/CD ํตํฉ ๋ฐ ์ํฌ๋ฆฟ ๊ด๋ฆฌ ์ ๋ต
๐ ๏ธ ์ด์์๋ฅผ ์ํ ๊ฐ์ด๋
ALPACO ํ๋ซํผ์ ์์ ์ ์ธ ์ด์ ๋ฐ ๊ด๋ฆฌ๋ฅผ ์ฑ ์์ง๋ ๋ถ๋ค์ ์ํ ๋งค๋ด์ผ์ ๋๋ค.
- โ๏ธ ALPACO ํ๋ซํผ ์ด์ ๋งค๋ด์ผ:
- ์์คํ ์ํ ๋ฐ ๋ก๊ทธ ๋ชจ๋ํฐ๋ง (CloudWatch)
- ๋ฐ์ดํฐ ๊ด๋ฆฌ (DynamoDB - ๋ฌธ์ , ์ปค๋ฎค๋ํฐ, ์ ์ถ ๋ฐ์ดํฐ)
- ์ฌ์ฉ์ ๊ด๋ฆฌ (Amazon Cognito)
- ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ทผ ๋ฐ ๋๋ฉ์ธ ๊ด๋ฆฌ (Route 53, ACM, CloudFront)
- ํ๋ก ํธ์๋ ์ ํ๋ฆฌ์ผ์ด์ ํธ์คํ (S3) ๊ด๋ฆฌ
- ์ผ๋ฐ์ ์ธ ๋ฌธ์ ํด๊ฒฐ ํ ๋ฐ ๋ณด์ ๋ชจ๋ฒ ์ฌ๋ก
๐จ ์ฌ์ดํธ ๊ตฌ์ฑ ๋ฐ ๋ก๊ณ
์ด ๋ฌธ์ ์ฌ์ดํธ ์์ฒด์ ๊ตฌ์ฑ๊ณผ ์ฌ์ฉ๋ ๋ก๊ณ ์ ๋ํ ์ ๋ณด์ ๋๋ค.
- ๐ ์ฌ์ดํธ ์ค์ ํ์ผ (
_config.yml
): ์ด ๋ฌธ์ ์ฌ์ดํธ(Just the Docs ํ ๋ง)์ ์ ๋ชฉ, ์ค๋ช , ๋ก๊ณ ๊ฒฝ๋ก ๋ฑ ๊ธฐ๋ณธ ์ค์ ์ ๋ด๊ณ ์์ต๋๋ค. - ๐ผ๏ธ ๋ก๊ณ ์์
ํด๋ (
assets/
): ๋ฌธ์ ๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฌ์ฉ๋๋ ๋ก๊ณ SVG ํ์ผ(alpaco_full_logo.svg
,alpaco_square_logo_blue.svg
)๊ณผ ๊ธฐํ ์ด๋ฏธ์ง(logo.png
๋ฑ)๊ฐ ์ ์ฅ๋์ด ์์ต๋๋ค.
ALPACO ํ๋ก์ ํธ ๋ฌธ์๊ฐ ์ฌ๋ฌ๋ถ๊ป ์ ์ฉํ ์ ๋ณด๋ฅผ ์ ๊ณตํ๊ณ , ํ๋ก์ ํธ๋ฅผ ๋ ๊น์ด ์ดํดํ๋ ๋ฐ ๋์์ด ๋๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ๊ถ๊ธํ ์ ์ด ์๋ค๋ฉด ์ฃผ์ ํ์ง ๋ง๊ณ ๊ด๋ จ ๋ฌธ์๋ฅผ ์ฐพ์๋ณด๊ฑฐ๋ ๋ฌธ์ํด ์ฃผ์ธ์!