Skip to content
@kakaotech-large-scale-challenge

kakaotech-large-scale-challenge

KTB: ๋Œ€๊ทœ๋ชจ ๋ถ€ํ•˜ ํ…Œ์ŠคํŠธ ๋Œ€ํšŒ

ํŒ€์› ๊ตฌ์„ฑ ๋ฐ ์—ญํ• 

image image image image image image
Jinho.Hong(ํ™์ง„ํ˜ธ) Ayaan.Park(๋ฐ•์ฐฌ์˜) Jully.Han(ํ•œ์ฃผ๋ฆฌ) Milo.Kim(๊น€๋ฏผ์ œ) Winter.Park(๋ฐ•ํ˜„ํ˜œ) Dorothy.Kim(๊น€๋„์œค)
ํŒ€์žฅ
ํด๋ผ์šฐ๋“œ
ํด๋ผ์šฐ๋“œ ํ’€์Šคํƒ ํ’€์Šคํƒ AI AI

๐Ÿ“ ๋ชฉ์ฐจ


๐Ÿšฉ ๋Œ€ํšŒ์„ค๋ช…

๋Œ€๊ทœ๋ชจ ์„œ๋น„์Šค ๊ฐœ๋ฐœ ๋ฐ ์šด์˜์„ ์œ„ํ•œ ์‹ค์ „ ์—”์ง€๋‹ˆ์–ด๋ง ๋Œ€ํšŒ


๊ธฐ๋ณธ ์„ค๋ช…

KakaoTechBootcamp AI Chat ์„œ๋น„์Šค ์†Œ๊ฐœ

แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2024-12-17 แ„‹แ…ฉแ„’แ…ฎ 4 35 14
  • ๊ธฐ์กด์— ๋งŒ๋“ค์–ด์ ธ ์žˆ๋Š” ์„œ๋น„์Šค๋ฅผ ๊ฐ ํŒ€๋“ค์—๊ฒŒ ์ œ๊ณตํ•˜๊ณ ,ํ•ด๋‹น ์„œ๋น„์Šค๋ฅผ ์ตœ์ ํ™”ํ•˜์—ฌ ์ตœ๋Œ€ํ•œ์˜ ๋ถ€ํ•˜๋ฅผ ๊ฒฌ๋”œ ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„

แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2024-12-17 แ„‹แ…ฉแ„’แ…ฎ 3 04 30

  • ํ† ๋„ˆ๋จผํŠธ ํ˜•ํƒœ๋กœ ๋Œ€ํšŒ ์ง„ํ–‰
  • ๊ฐ ํŒ€์— ๋Œ€ํ•˜์—ฌ ๋ถ€ํ•˜ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ ํ›„ ๋ณด๋‹ค ๋งŽ์€ ์ ‘์†์ž์—๊ฒŒ ์„œ๋น„์Šค๋ฅผ ๋ฌธ์ œ ์—†์ด ์ œ๊ณตํ•œ ํŒ€์ด ์Šน๋ฆฌ

์ง„ํ–‰๊ธฐ๊ฐ„

24/12/09 ~ 24/12/13(์ด 5์ผ)


์ง„ํ–‰ ๋ฐฉ์‹(๋ถ€ํ•˜ ํ…Œ์ŠคํŠธ)

  • ๋™์‹œ ์ ‘์†์ž ์ˆ˜ ์ฆ๊ฐ€ (๋ณ€๊ฒฝ๋  ์ˆ˜๋„ ์žˆ์Œ)
    • ์ดˆ๊ธฐ 100๋ช…์—์„œ ์‹œ์ž‘ํ•˜์—ฌ ๋งค 30์ดˆ๋งˆ๋‹ค 100๋ช…์”ฉ ์ฆ๊ฐ€
    • ์ตœ๋Œ€ 3,000๋ช…๊นŒ์ง€ ์ˆœ์ฐจ์  ์ฆ๊ฐ€ ๋ชฉํ‘œ
    • ๊ฐ ์‚ฌ์šฉ์ž๋‹น ์ตœ์†Œ 1๊ฐœ ์ด์ƒ์˜ WebSocket ์—ฐ๊ฒฐ ์œ ์ง€
  • ์ œํ•œ๋œ ๋ฆฌ์†Œ์Šค๋กœ ์ตœ๋Œ€ํ•œ์˜ ํšจ์œจ ๋‹ฌ์„ฑ
    • ์ตœ๋Œ€ 30๋Œ€์˜ t3.small ์ธ์Šคํ„ด์Šค ์‚ฌ์šฉ
    • ๋‹ค์–‘ํ•œ ์•„ํ‚คํ…์ณ ์‹œ๋„
    • ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ AWS ๊ถŒํ•œ
      • EC2
      • Elastic Load Balancing
      • Auto Scaling
      • Route 53
      • ACM
      • S3
      • CloudFront
      • CloudWatch

โ˜๏ธ ์•„ํ‚คํ…์ฒ˜

แ„แ…กแ„‡แ…ฎแ„แ…ขแ†ทAWSแ„‡แ…ฎแ„’แ…กแ„แ…ฆแ„‰แ…ณแ„แ…ณ drawio (1)

  • ์ฃผ์–ด์ง„ ๋„๋ฉ”์ธ์— CloudFront์™€ ์„œ๋ธŒ ๋„๋ฉ”์ธ์— ELB ์—ฐ๊ฒฐ
  • ํ”„๋ก ํŠธ
    • ํด๋ผ์šฐ๋“œ ํ”„๋ก ํŠธ์™€ S3 ๋ฒ„ํ‚ท์„ ํ™œ์šฉํ•˜์—ฌ ํ˜ธ์ŠคํŒ…
  • ๋ฐฑ์—”๋“œ
    • ์ธ์Šคํ„ด์Šค ์ด 20๊ฐœ ์ƒ์„ฑ
    • ์˜คํ† ์Šค์ผ€์ผ๋Ÿฌ๋ฅผ ํ™œ์šฉํ•ด ๊ฐ ์ธ์Šคํ„ด์Šค์˜ ๊ฐœ์ˆ˜๊ฐ€ ์ผ์ •ํ•˜๊ฒŒ ์œ ์ง€๋˜๋„๋ก ์„ค์ •
    • ๊ฐ ์ธ์Šคํ„ด์Šค์— ๋„์ปค ์ปจํ…Œ์ด๋„ˆ๋ฅผ 5๊ฐœ์”ฉ ๋„์šฐ๊ณ  ๊ฐ๊ฐ์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋กœ๋“œ๋ฒจ๋Ÿฐ์‹ฑ
    • ์ด 100๊ฐœ์˜ ์„œ๋น„์Šค์— ๋กœ๋“œ๋ฐธ๋Ÿฐ์‹ฑ
    • ํŒŒ์ผ ์„œ๋น„์Šค์™€ ๊ฐ™์€ ๊ฒฝ์šฐ๋Š” S3 ๋ฒ„ํ‚ท์— ์—…๋กœ๋“œํ•˜๊ณ  ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ๋ ˆ๋””์Šค์— ์ €์žฅํ•˜๋Š” ๋ฐฉ์‹
  • DB
    • MongoDB๋กœ ๊ตฌ์ถ•๋˜์–ด ์žˆ๋˜ ์„œ๋น„์Šค๋ฅผ Redis๋กœ ๋ณ€๊ฒฝ
    • Redis Cluster์„ ํ†ตํ•œ ์ •ํ•ฉ์„ฑ ๋ณด์žฅ

โ“ ๊ธฐ์ˆ ์‚ฌ์šฉ์ด์œ 

Cloud

  • ์ธ์Šคํ„ด์Šค์˜ ์„ฑ๋Šฅ๊ณผ ๊ฐœ์ˆ˜ ์ œํ•œ์ด ์กด์žฌํ•จ
  • ์ตœ๋Œ€ํ•œ ๋ถ€๊ฐ€๊ธฐ๋Šฅ๋“ค์€ ์ธ์Šคํ„ด์Šค๋ฅผ ๋„์šฐ์ง€ ์•Š๊ณ  AWS์˜ ์„œ๋น„์Šค๋กœ ๋Œ€์ฒด
    • ํ”„๋ก ํŠธ ํ˜ธ์ŠคํŒ…์„ S3+CloudFront(CDN)์„ ํ™œ์šฉ
    • ๋ถ€ํ•˜ ํ…Œ์ŠคํŠธ์˜ ์ตœ๋Œ€ ์š”์ฒญ ์ˆ˜๋ฅผ 2~3๋งŒ ๋‹จ์œ„๋กœ ์žก๊ณ , ํด๋ผ์šฐ๋“œ ํ”„๋ก ํŠธ์—์„œ ๊ฐ๋‹น ๊ฐ€๋Šฅํ•œ์ง€ ํ™•์ธ ํ›„ ๋„์ž…
    • ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋กœ๋“œ๋ฐธ๋Ÿฐ์‹ฑ๋„ Nginx๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ELB ์‚ฌ์šฉ
  • AutoScailig Group
    • ์ธ์Šคํ„ด์Šค ํƒฌํ”Œ๋ฆฟ ์ œ์ž‘ ํ›„ ๋“ฑ๋ก
    • ์ตœ๋Œ€ 30๊ฐœ ์ธ์Šคํ„ด์Šค ์ œํ•œ์ด ์žˆ์—ˆ๊ธฐ์— 20๊ฐœ ์ด์ƒ ๋Š˜์–ด๋‚˜์„œ ์‹ค๊ฒฉํŒจ ๋˜์ง€ ์•Š๋„๋ก ์ •์ฑ… ์„ค์ •
  • ELB
    • ๊ฐ ์ธ์Šคํ„ด์Šค์— 20๊ฐœ์˜ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋„์›Œ์„œ ์ด 100๊ฐœ์˜ ์„œ๋น„์Šค ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ
    • ์ด 4๊ฐœ์˜ ํƒ€๊นƒ ๊ทธ๋ฃน์„ ์ œ์ž‘ ํ›„ ๊ฐ๊ฐ ์—ฐ๊ฒฐ ํฌํŠธ ๋ณ€๊ฒฝ์œผ๋กœ ๋Œ€์‘
  • CloudWatch
    • ๋ถ€ํ•˜๊ฐ€ ๊ฑธ๋ ธ์„ ๋•Œ, ๋ณ‘๋ชฉ์ง€์ ์„ ํŒŒ์•…ํ•˜๊ณ  ์กฐ์น˜ํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ฐ ์ธ์Šคํ„ด์Šค์— CloudAgent ์„ค์น˜ํ•˜์—ฌ ๋ฉ”ํŠธ๋ฆญ ์ˆ˜์ง‘
    • ๋Œ€์‹œ๋ณด๋“œ๋ฅผ ์ œ์ž‘ํ•˜์—ฌ ๋Œ€ํšŒ์ง„ํ–‰ ์ค‘์— ์ง€์†์  ๋ชจ๋‹ˆํ„ฐ๋ง
    • ๊ฐ ์ธ์Šคํ„ด์Šค ๋ฟ๋งŒ ์•„๋‹Œ ELB ๋“ฑ๋“ฑ์˜ ์„œ๋น„์Šค๋“ค๋„ ๋ชจ๋‹ˆํ„ฐ๋ง
  • CloudFront
    • ํด๋ผ์šฐ๋“œ ํ”„๋ก ํŠธ๋ฅผ ํ™œ์šฉํ•œ ํ”„๋ก ํŠธ ํ˜ธ์ŠคํŒ…
    • S3๋ฒ„ํ‚ท์„ ์—ฐ๊ฒฐ
    • ๋งŒ์•ฝ S3์—์„œ ์—๋Ÿฌ๋ฅผ ๋ฐ˜ํ™˜ํ•  ๊ฒฝ์šฐ index.html ๋กœ ๋ผ์šฐํŒ… ๋˜๋„๋ก ์„ค์ •
  • Route 53
    • ์ฃผ์–ด์ง„ ๋„๋ฉ”์ธ์„ ๊ธฐ๋ฐ˜์œผ๋กœ, ์„œ๋ธŒ๋„๋ฉ”์ธ์„ ์„ค์ •ํ•˜์—ฌ ๋ผ์šฐํŒ… ์„ค์ •

Back

  • ๋Œ€์šฉ๋Ÿ‰ ํŠธ๋ž˜ํ”ฝ ์ฒ˜๋ฆฌ๋ฅผ ํ•ด์•ผ ํ•˜๊ธฐ์— ๋ฉ”์„ธ์ง€ ํ๋ฅผ ์‚ฌ์šฉํ• ๊นŒ ๋…ผ์˜
    • Kafka vs RabbitMQ ๊ณ ๋ ค
      • RabbitMQ๋Š” Push ๋ชจ๋ธ ๊ธฐ๋ฐ˜ ์„ค๊ณ„์ด๊ธฐ ๋•Œ๋ฌธ์— Kafka๋ณด๋‹จ ๋ ˆ์ดํ„ด์‹œ๊ฐ€ ๋‚ฎ์œผ๋ฉฐ ๋ฉ”์„ธ์ง€ ์ „๋‹ฌ ๋ณด์žฅ์„ ํ•˜๊ธฐ ๋–„๋ฌธ์— ์†Œ์ผ“ ํ†ต์‹ ์—์„  RabbitMQ๊ฐ€ ์œ ๋ฆฌ
    • ํ•˜์ง€๋งŒ RabbitMQ๋ฅผ ํ™œ์šฉํ–ˆ์„ ๋•Œ, t3.small ์ด๋ผ๋Š” ์„ฑ๋Šฅ ํ•œ๊ณ„์— ์˜ํ•ด์„œ ๋ณ‘๋ชฉ์ง€์ ์ด ๋ ๊นŒ ์šฐ๋ ค
      • ์ตœ๋Œ€ 3000๋ช…๊นŒ์ง€ WebSocket ์—ฐ๊ฒฐ์ด ์ด๋ฃจ์–ด์ง€๊ณ  ๋ฉ”์„ธ์ง€๊ฐ€ ์ง€์†์ ์œผ๋กœ ์†ก์ˆ˜์‹ ๋˜์–ด ๋ฉ”์„ธ์ง€๊ฐ€ RabbitMQ ํ์— ์Œ“์ž„
      • ํ์— ์Œ“์ธ ๋ฉ”์„ธ์ง€๊ฐ€ ๋งŽ์•„์งˆ์ˆ˜๋ก ์†Œ๋น„์ž๊ฐ€ ํ•ด๋‹น ๋ฉ”์„ธ์ง€๋ฅผ ๊ฐ€์ ธ๊ฐˆ ๋•Œ๊นŒ์ง€์˜ ์‹œ๊ฐ„์ด ๋ฐœ์ƒ -> ์‹ค์‹œ๊ฐ„ ํ†ต์‹  ์‹œ์Šคํ…œ์—์„œ ํฐ ๋ฌธ์ œ๊ฐ€ ์šฐ๋ ค๊ฐ€ ๋˜๊ธฐ ๋•Œ๋ฌธ์— RabbitMQ๋Š” ์‚ฌ์šฉ์•ˆํ•˜๊ธฐ๋กœ ๊ฒฐ์ •
    • ์ตœ์ข…์ ์œผ๋กœ ๋ฉ”์‹œ์ง€ํ๋ฅผ ํ™œ์šฉํ•˜์ง€์•Š๊ณ  Redis Cluster์„ ํ†ตํ•œ ์ƒค๋”ฉ์œผ๋กœ ๋Œ€์ฒด
  • Redis Cluster
    • t3.small์€ ์‹ฑ๊ธ€ ์ฝ”์–ด๊ธฐ ๋•Œ๋ฌธ์— ํ•œ ์„œ๋ฒ„ ๋‚ด์— ์—ฌ๋Ÿฌ Redis๋ฅผ ๋‘๋Š” ๊ฒƒ์€ ๊ทธ๋ฆฌ ํšจ์œจ์ ์ด์ง€ ์•Š์„ ๊ฒƒ์ด๋ผ ์ƒ๊ฐ
    • ์ €์žฅ ๊ณต๊ฐ„
      • ์˜์–ด๋Š” 1๋ฐ”์ดํŠธ, ํ•œ๊ธ€์€ 3๋ฐ”์ดํŠธ ์ •๋„๋กœ ๋‘์—ˆ์„ ๋•Œ ํ•œ ์ฑ„ํŒ…์˜ ๋ฉ”์‹œ์ง€๋‚˜ ์œ ์ €์˜ ํ† ํฐ ๊ฐ’ ๋“ฑ์„ ์ €์žฅํ•˜๋Š”๋ฐ ํ•˜๋‚˜์˜ Key ๋‹น 100๋ฐ”์ดํŠธ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ๊ฐ€์ •
      • ์ธ์Šคํ„ด์Šค์˜ RAM์€ 2GB์ด์ง€๋งŒ OS, ํ”„๋กœ์„ธ์Šค ๋“ฑ์˜ ์‚ฌ์šฉ ๊ณต๊ฐ„์„ ๊ฐ€์ •ํ•˜์—ฌ Redis๊ฐ€ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ณต๊ฐ„์€ 1.5GB๋ผ๊ณ  ๊ฐ€์ •ํ•˜์—ฌ ๋ฐ์ดํ„ฐ์˜ ๊ฐฏ์ˆ˜๋ฅผ 1500๋งŒ๊ฐœ ์ €์žฅํ•  ์ˆ˜ ์žˆ๊ณ  ๋„‰๋„‰ํ•˜๊ฒŒ ์žก์•„๋„ 500 ~ 1000๋งŒ๊ฐœ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒฐ๋ก ์„ ๋„์ถœ -> ๋ถ€ํ•˜ ํ…Œ์ŠคํŠธ์—์„œ ์•„๋ฌด๋ฆฌ ์ž‘์—…์„ ๋งŽ์ด ํ•ด๋„ 1000๋งŒ๊ฐœ๋ฅผ ๋„˜๊ธธ ์ผ์€ ์—†์„ ๊ฒƒ์ด๋ผ ์ƒ๊ฐํ•˜์˜€๊ณ  ๋ฐ์ดํ„ฐ ์ €์žฅ ๊ฐฏ์ˆ˜๋Š” ํด๋Ÿฌ์Šคํ„ฐ ๊ฐฏ์ˆ˜ ์„ ์ • ๊ธฐ์ค€์—์„œ ์ œ์™ธ
    • ์ž‘์—… ์ฒ˜๋ฆฌ ํšจ์œจ
      • ์ €์žฅ ๊ณต๊ฐ„์„ ์ œ์™ธํ•˜๋ฉด ํด๋Ÿฌ์Šคํ„ฐ์˜ ๊ฐฏ์ˆ˜๋ฅผ ์„ ์ •ํ•˜๋Š” ๊ธฐ์ค€ ์ค‘ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ฒƒ์€ Single Thread์ธ Redis์—์„œ์˜ ์ž‘์—… ์ฒ˜๋ฆฌ ํšจ์œจ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜์˜€์Šต๋‹ˆ๋‹ค. -> ๋งˆ์Šคํ„ฐ 5 + ๋ ˆํ”Œ๋ฆฌ์นด 5๋กœ ๊ตฌ์„ฑ
      • ๋งˆ์Šคํ„ฐ ๋…ธ๋“œ 5๋Œ€๋กœ ๊ตฌ์„ฑํ•˜์—ฌ ๊ฐ ๋…ธ๋“œ์— ๋Œ€ํ•œ ํ•ด์‹ฑ์€ ๋ฐฑ์—”๋“œ ์„œ๋ฒ„์—์„œ ํ•˜๊ณ  ๋งˆ์Šคํ„ฐ ๋…ธ๋“œ๋Š” ์ž‘์—… ์ฒ˜๋ฆฌ๋งŒ ๋‹ด๋‹น
      • ๋ ˆํ”Œ๋ฆฌ์นด ๋…ธ๋“œ๋Š” Read ์ž‘์—… ์ˆ˜ํ–‰
      • ๋ถ€ํ•˜ ํ…Œ์ŠคํŠธ ๋Œ€ํšŒ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ ˆํ”Œ๋ฆฌ์นด ๋…ธ๋“œ์˜ ๋ฐ์ดํ„ฐ ์ •ํ•ฉ์„ฑ์€ ๊ณ ๋ ค x
    • ๊ณ ๊ฐ€์šฉ์„ฑ
      • ๋งˆ์Šคํ„ฐ ๋…ธ๋“œ ๋‹น ๋ ˆํ”Œ๋ฆฌ์นด ๋…ธ๋“œ๋ฅผ ํ•œ ๊ฐœ์”ฉ ๋‘์–ด failover ๋ฐœ์ƒ ๋Œ€๋น„
      • ํด๋Ÿฌ์Šคํ„ฐ ๋ชจ๋“œ์—์„œ ๊ฐ ๋…ธ๋“œ๊ฐ€ ์„œ๋กœ๋ฅผ ๊ฐ์‹œํ•˜๋ฉฐ HA๋ฅผ ๋ณด์žฅ
  • ํŒŒ์ผ ์‹œ์Šคํ…œ
    • ๋””์Šคํฌ์— ์ €์žฅํ•˜๋˜ ํŒŒ์ผ ์‹œ์Šคํ…œ์„ S3 ๋ฒ„ํ‚ท์— ์ €์žฅํ•˜๋„๋ก ๋ณ€๊ฒฝ
    • Redis์—์„œ ๋ฉ”ํƒ€ํŒŒ์ผ์„ ์ €์žฅํ•˜๊ณ  ํ•„์š”ํ•  ๋•Œ ํ”„๋ก ํŠธ์— URL ์ „๋‹ฌ

๐Ÿ† ๊ฒฐ๊ณผ๋ฌผ

แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ2

  • ๋Œ€์ƒ ์ˆ˜์ƒ
    • ์นด์นด์˜ค ๋Œ€ํ‘œ์ด์‚ฌ ์ƒ์žฅ ์ˆ˜์—ฌ
    • ๋น•์Šค 30๋งŒ์› ์ƒํ’ˆ๊ถŒ
  • ์ตœ์ข… 3400๋ช…์˜ ๋ถ€ํ•˜ ํ…Œ์ŠคํŠธ ์ค‘ 150๊ฐœ ์‹คํŒจ
    • ์ด์™ธ ์ˆ˜์ƒํŒ€(2,3๋“ฑ)์— ๋น„ํ•ด์„œ ์•ฝ 400~500๊ฐœ ์ •๋„ ํ…Œ์ŠคํŠธ๋ฅผ ๋” ๋งŽ์ด ํ†ต๊ณผ
    • ์ด์™ธ์—๋„ ์ด๋ฒคํŠธ ์ „์œผ๋กœ ์šฐ์Šน์ž์—๊ฒŒ ๋„์ „์œผ๋กœ ๋ช‡๋ช‡ ํŒ€๋“ค๊ณผ ๋Œ€๊ฒฐํ›„ ์ „๋ถ€ ์••๋„์  ์Šน๋ฆฌ

๐Ÿค” ํšŒ๊ณ 

  • ๋ฐฑ์—”๋“œ ์„œ๋ฒ„ ํ•˜๋‚˜์— ๋„์ปค ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ถ”๊ฐ€๋กœ ๋ฐฐํฌํ•˜์—ฌ ์ฒ˜๋ฆฌ๋Ÿ‰์„ ๋Š˜๋ฆฌ๋ ค ํ–ˆ์œผ๋‚˜, t3.small ์ธ์Šคํ„ด์Šค์˜ CPU๊ฐ€ 1๊ฐœ๋ฟ์ด๋ผ ์„ฑ๋Šฅ ํ–ฅ์ƒ์ด ๋ฏธ๋ฏธํ–ˆ์Œ
    • JS ์ฝ”๋“œ๋ฅผ Java๋กœ ๋ฆฌํŒฉํ† ๋งํ•˜๊ณ  ์“ฐ๋ ˆ๋“œ ํ’€์„ ์กฐ์ •ํ•˜์—ฌ ๋ฉ€ํ‹ฐ ์“ฐ๋ ˆ๋“œ์˜ ์ด์ ์„ ํ™œ์šฉํ–ˆ๋‹ค๋ฉด ๋” ์ข‹์•˜์„ ๊ฒƒ
  • S3 ํŒŒ์ผ ์—…๋กœ๋“œ ๋กœ์ง์„ ๋ฐฑ์—”๋“œ์—์„œ ๊ตฌํ˜„ํ–ˆ์œผ๋‚˜, ํ”„๋ก ํŠธ์—”๋“œ์—์„œ ์ฒ˜๋ฆฌํ•˜๋ฉด ๋” ํšจ์œจ์ ์ผ ๋“ฏ

Pinned Loading

  1. ktb-BootcampChat ktb-BootcampChat Public

    Forked from extinctmule/ktb-BootcampChat

    JavaScript

Repositories

Showing 4 of 4 repositories

Top languages

Loadingโ€ฆ

Most used topics

Loadingโ€ฆ