๐Ÿ‘‹ ์•ˆ๋…•ํ•˜์„ธ์š”! ALPACO ํ”„๋กœ์ ํŠธ ๋ฌธ์„œ์— ์˜ค์‹  ๊ฒƒ์„ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค

์ด ๋ฌธ์„œ๋Š” ALPACO ํ”„๋กœ์ ํŠธ์˜ ๋ฐฉ๋Œ€ํ•œ ๋ฌธ์„œ๋“ค์„ ์‰ฝ๊ฒŒ ํƒ์ƒ‰ํ•˜๊ณ  ์›ํ•˜๋Š” ์ •๋ณด๋ฅผ ๋น ๋ฅด๊ฒŒ ์ฐพ์„ ์ˆ˜ ์žˆ๋„๋ก ๋„์™€๋“œ๋ฆฌ๋Š” ์•ˆ๋‚ด์„œ์ž…๋‹ˆ๋‹ค. ์ €ํฌ๋Š” ALPACO๋ฅผ ์ดํ•ดํ•˜๊ณ , ์‚ฌ์šฉํ•˜๊ณ , ๊ฐœ๋ฐœํ•˜๊ณ , ์šด์˜ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๋ชจ๋“  ์ •๋ณด๋ฅผ ์ฒด๊ณ„์ ์œผ๋กœ ์ •๋ฆฌํ•ด๋‘์—ˆ์Šต๋‹ˆ๋‹ค.

์•„๋ž˜ ๋ชฉ์ฐจ๋ฅผ ํ†ตํ•ด ๊ด€์‹ฌ ์žˆ๋Š” ๋ถ„์•ผ์˜ ๋ฌธ์„œ๋ฅผ ์ฐพ์•„๋ณด์„ธ์š”!

๐ŸŒŸ ํ”„๋กœ์ ํŠธ ์ „์ฒด ์†Œ๊ฐœ

ALPACO ํ”„๋กœ์ ํŠธ๊ฐ€ ๋ฌด์—‡์ธ์ง€, ์–ด๋–ค ๋ชฉํ‘œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š”์ง€, ์ฃผ์š” ๊ธฐ๋Šฅ๊ณผ ์ „์ฒด ์‹œ์Šคํ…œ ์•„ํ‚คํ…์ฒ˜, ๊ทธ๋ฆฌ๊ณ  ์‚ฌ์šฉ๋œ ๊ธฐ์ˆ  ์Šคํƒ์— ๋Œ€ํ•œ ์ „๋ฐ˜์ ์ธ ๊ฐœ์š”๋ฅผ ํ™•์ธํ•˜๊ณ  ์‹ถ์œผ์‹œ๋‹ค๋ฉด ๋‹ค์Œ ๋ฌธ์„œ๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”.

๐Ÿ™‹โ€โ™€๏ธ ์‚ฌ์šฉ์ž๋ฅผ ์œ„ํ•œ ๊ฐ€์ด๋“œ

ALPACO ํ”Œ๋žซํผ์„ ์ง์ ‘ ์‚ฌ์šฉํ•ด๋ณด๊ณ  ์‹ถ์œผ์‹ ๊ฐ€์š”? ๋‹ค์Œ ๋ฌธ์„œ๋Š” ํšŒ์›๊ฐ€์ž…๋ถ€ํ„ฐ ์ฃผ์š” ๊ธฐ๋Šฅ ์‚ฌ์šฉ๋ฒ•๊นŒ์ง€ ์นœ์ ˆํ•˜๊ฒŒ ์•ˆ๋‚ดํ•ด ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

  • ๐Ÿš€ ALPACO ์‚ฌ์šฉ์ž ๋งค๋‰ด์–ผ:
    • ํ”Œ๋žซํผ ์ ‘์† ๋ฐ ๊ตฌ๊ธ€ ๋กœ๊ทธ์ธ ๋ฐฉ๋ฒ•
    • AI๋ฅผ ์ด์šฉํ•œ ์ฝ”๋”ฉ ๋ฌธ์ œ ์ƒ์„ฑํ•˜๊ธฐ
    • ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ ๋ฌธ์ œ ํ’€์ด (์ฝ”๋“œ ์—๋””ํ„ฐ ์‚ฌ์šฉ, AI ํ—ฌํผ ํ™œ์šฉ, ์ฝ”๋“œ ์ œ์ถœ ๋ฐ ์ฑ„์ )
    • ์ฑ„์  ๊ฒฐ๊ณผ ํ™•์ธ ๋ฐ ํ’€์ด ๊ณต์œ 
    • ์ปค๋ฎค๋‹ˆํ‹ฐ ๊ธฐ๋Šฅ ํ™œ์šฉ (๊ฒŒ์‹œ๊ธ€ ์ž‘์„ฑ, ๋Œ“๊ธ€, ์ข‹์•„์š”)
    • ๋‚ด๊ฐ€ ์ƒ์„ฑํ•œ ๋ฌธ์ œ ๊ด€๋ฆฌ (๋‚ด ์ €์žฅ์†Œ) ๋ฐ ์ „์ฒด ์ œ์ถœ ํ˜„ํ™ฉ ๋ณด๊ธฐ

๐Ÿง‘โ€๐Ÿ’ป ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ๊ฐ€์ด๋“œ

ALPACO ๊ฐœ๋ฐœ์— ์ฐธ์—ฌํ•˜๊ฑฐ๋‚˜, ์‹œ์Šคํ…œ์˜ ๊ธฐ์ˆ ์ ์ธ ๋ถ€๋ถ„์„ ๋” ๊นŠ์ด ์ดํ•ดํ•˜๊ณ  ์‹ถ์œผ์‹  ๋ถ„๋“ค์„ ์œ„ํ•œ ๋ฌธ์„œ์ž…๋‹ˆ๋‹ค.

๐Ÿ–ฅ๏ธ ํ”„๋ก ํŠธ์—”๋“œ (Application)

ALPACO์˜ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ํ”„๋ก ํŠธ์—”๋“œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋Œ€ํ•œ ์ƒ์„ธ ๊ฐ€์ด๋“œ์ž…๋‹ˆ๋‹ค.

โš™๏ธ ๋ฐฑ์—”๋“œ (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) ๊ด€๋ฆฌ
    • ์ผ๋ฐ˜์ ์ธ ๋ฌธ์ œ ํ•ด๊ฒฐ ํŒ ๋ฐ ๋ณด์•ˆ ๋ชจ๋ฒ” ์‚ฌ๋ก€

๐ŸŽจ ์‚ฌ์ดํŠธ ๊ตฌ์„ฑ ๋ฐ ๋กœ๊ณ 

์ด ๋ฌธ์„œ ์‚ฌ์ดํŠธ ์ž์ฒด์˜ ๊ตฌ์„ฑ๊ณผ ์‚ฌ์šฉ๋œ ๋กœ๊ณ ์— ๋Œ€ํ•œ ์ •๋ณด์ž…๋‹ˆ๋‹ค.


ALPACO ํ”„๋กœ์ ํŠธ ๋ฌธ์„œ๊ฐ€ ์—ฌ๋Ÿฌ๋ถ„๊ป˜ ์œ ์šฉํ•œ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๊ณ , ํ”„๋กœ์ ํŠธ๋ฅผ ๋” ๊นŠ์ด ์ดํ•ดํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค. ๊ถ๊ธˆํ•œ ์ ์ด ์žˆ๋‹ค๋ฉด ์ฃผ์ €ํ•˜์ง€ ๋ง๊ณ  ๊ด€๋ จ ๋ฌธ์„œ๋ฅผ ์ฐพ์•„๋ณด๊ฑฐ๋‚˜ ๋ฌธ์˜ํ•ด ์ฃผ์„ธ์š”!