Skip to content

Latest commit

ย 

History

1,069 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

ToMyongJi backend repository

๐Ÿ’ก ํˆฌ๋ช…์ง€ (To Myongji)

logo

iOS Web

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

"To Myongji (๋ช…์ง€๋Œ€ํ•™๊ต ํ•™์ƒ๋“ค์„ ์œ„ํ•ด)" ํˆฌ๋ช…์ง€๋Š” ํ•™์ƒํšŒ๋น„ ์ง‘ํ–‰ ๋‚ด์—ญ์„ ํˆฌ๋ช…ํ•˜๊ฒŒ ๊ณต๊ฐœํ•˜์—ฌ ํ•™์ƒ ์‚ฌํšŒ์˜ ์‹ ๋ขฐ๋ฅผ ํšŒ๋ณตํ•˜๊ธฐ ์œ„ํ•œ ํ•™์ƒํšŒ๋น„ ํ†ตํ•ฉ ๊ด€๋ฆฌ ํ”Œ๋žซํผ์ž…๋‹ˆ๋‹ค. ๊ต๋‚ด ํšก๋ น ์‚ฌ๊ฑด์„ ๊ณ„๊ธฐ๋กœ ๊ธฐํš๋˜์—ˆ์œผ๋ฉฐ , ๊ธฐ์กด ์—‘์…€ ๋ฐฉ์‹์˜ ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ ํ•œ๊ณ„๋ฅผ ๊ธฐ์ˆ ์ ์œผ๋กœ ๊ทน๋ณตํ•˜๊ณ ์ž ์‹œ์ž‘๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ›  ๊ธฐ์ˆ  ์Šคํƒ

๐Ÿ”ง Backend

โš™๏ธ Ops

๐Ÿ›  Collaboration

๐Ÿ— ์‹œ์Šคํ…œ ์•„ํ‚คํ…์ฒ˜

img.png

๐Ÿš€ ํ•ต์‹ฌ ๊ธฐ์ˆ ์  ์„ฑ๊ณผ (Technical Depth)

  1. ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ ํ™•๋ณด ๋ฐ ์ž๋™ํ™”

    ๋‹จ์ˆœ CRUD๋ฅผ ๋„˜์–ด, ์„œ๋น„์Šค ๋„์ž… ์žฅ๋ฒฝ์„ ๋‚ฎ์ถ”๊ณ  ์‹ ๋ขฐ๋„๋ฅผ ๋†’์ด๊ธฐ ์œ„ํ•ด 4๊ฐ€์ง€ ์—…๋กœ๋“œ ํŒŒ์ดํ”„๋ผ์ธ์„ ๊ตฌ์ถ•ํ–ˆ์Šต๋‹ˆ๋‹ค.

  • Tossbank PDF ๊ฒ€์ฆ (Trust): PDF ๋‚ด ๊ณ ์œ  ๋ฒˆํ˜ธ๋ฅผ ํŒŒ์‹ฑํ•˜์—ฌ ์ง„์œ„ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•˜๊ณ , ๊ฒ€์ฆ๋œ ๋‚ด์—ญ์— ์ธ์ฆ ๋งˆํฌ๋ฅผ ๋ถ€์—ฌํ•˜์—ฌ ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ ๋ณด์žฅํ–ˆ์Šต๋‹ˆ๋‹ค.
  • AI OCR (Convenience): ๋ชจ๋ฐ”์ผ ์˜์ˆ˜์ฆ ์ด๋ฏธ์ง€๋ฅผ ํ…์ŠคํŠธ๋กœ ์ž๋™ ๋ณ€ํ™˜ํ•˜์—ฌ ํ•™์ƒํšŒ ๊ฐ„๋ถ€์˜ ์žฅ๋ถ€ ์ž‘์„ฑ ์ˆ˜๊ณ ๋ฅผ ํš๊ธฐ์ ์œผ๋กœ ๋‹จ์ถ•ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • Batch CSV Upload (Onboarding): ๊ธฐ์กด ์—‘์…€ ๊ธฐ๋ฐ˜ ์žฅ๋ถ€ ๋ฐ์ดํ„ฐ๋ฅผ ํ•œ ๋ฒˆ์— ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•˜์—ฌ ์‹ ๊ทœ ํ•™์ƒํšŒ์˜ ์„œ๋น„์Šค ๋„์ž… ์žฅ๋ฒฝ ์ œ๊ฑฐํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ์ˆ˜๊ธฐ ์ž…๋ ฅ (Basic): ์˜ˆ์™ธ ์ผ€์ด์Šค๋ฅผ ๋Œ€๋น„ํ•œ ๊ธฐ๋ณธ์ ์ธ ์ง์ ‘ ์ž…๋ ฅ ๊ธฐ๋Šฅ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  1. ๊ณ ์„ฑ๋Šฅ ์กฐํšŒ ๋ฐ ์บ์‹ฑ ์ „๋žต
  • ์บ์‹œ ์ ์ค‘๋ฅ  ์ตœ์ ํ™”: ์กฐํšŒ ์†๋„ ํ–ฅ์ƒ์„ ์œ„ํ•ด ํŽ˜์ด์ง•(Pagination) ์ฒ˜๋ฆฌ๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ณ , ์บ์‹ฑ ๋‹จ์œ„๋ฅผ ํŽ˜์ด์ง€๋ณ„๋กœ ์„ธ๋ถ„ํ™”ํ•˜์—ฌ ์บ์‹œ ์ ์ค‘๋ฅ (Hit Rate)์„ ๋†’์˜€์Šต๋‹ˆ๋‹ค.
  • Cache Stampede ๋ฐฉ์ง€: Redis ์ ์šฉ ์‹œ sync = true ์„ค์ •์„ ํ™œ์šฉํ•˜์—ฌ, ์ „๊ต์ƒ ๋™์‹œ ์ ‘์† ์‹œ ๋ฐœ์ƒํ•˜๋Š” ๋Œ€๋Ÿ‰์˜ DB ๋ถ€ํ•˜(Cache Miss ์ƒํ™ฉ)๋ฅผ 1ํšŒ์˜ ์กฐํšŒ๋กœ ์ตœ์†Œํ™”ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ๋ณตํ•ฉ ์ธ๋ฑ์Šค ์ ์šฉ: (student_club_id, date DESC, id DESC) ์ธ๋ฑ์Šค๋กœ filesort ๋น„์šฉ์„ ์ œ๊ฑฐํ•˜๊ณ  t3 ์ธ์Šคํ„ด์Šค์˜ ์ž์› ํšจ์œจ์„ฑ์„ ๊ทน๋Œ€ํ™”ํ–ˆ์Šต๋‹ˆ๋‹ค.
  1. ์ธํ”„๋ผ ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ ๋น„์šฉ ์ตœ์ ํ™” (FinOps)
  • RDS to MySQL Container ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜: AWS ์ •์ฑ… ๋ณ€ํ™”์— ๋Œ€์‘ํ•˜์—ฌ RDS ๋Œ€์‹  EC2 ๋‚ด Docker MySQL ํ™˜๊ฒฝ์œผ๋กœ ์ด์ „ํ•จ์œผ๋กœ์จ ์œ ์ง€ ๋น„์šฉ์„ 50% ์ด์ƒ ์ ˆ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค.
  • Alloy ๊ธฐ๋ฐ˜ ํ†ตํ•ฉ ๋งคํŠธ๋ฆญ ์ˆ˜์ง‘: Grafana Alloy๋ฅผ ํ™œ์šฉํ•ด Prometheus ๋งคํŠธ๋ฆญ(CPU, RAM)๊ณผ Loki ๋กœ๊ทธ๋ฅผ ๋™์‹œ์— ์ˆ˜์ง‘ํ•˜์—ฌ ์ธํ”„๋ผ ๊ฐ€์šฉ์„ฑ ์‹ค์‹œ๊ฐ„ ๋ชจ๋‹ˆํ„ฐ๋ง์„ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • OOM ๋ฐฉ์ง€: ์ €์‚ฌ์–‘ t3.micro ํ™˜๊ฒฝ์—์„œ ๊ฐ€์šฉ RAM ํ™•๋ณด๋ฅผ ์œ„ํ•ด ๋ฆฌ๋ˆ…์Šค Swap ๋ฉ”๋ชจ๋ฆฌ๋ฅผ 3GB๋กœ ์ฆ์„คํ•˜๊ณ  ๋ฆฌ์†Œ์Šค ํ• ๋‹น์„ ์ตœ์ ํ™”ํ–ˆ์Šต๋‹ˆ๋‹ค.
  1. ์ฝ”๋“œ ํ’ˆ์งˆ ๋ฐ ์•ˆ์ •์„ฑ (Reliability)
  • ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž๋™ํ™”: * ๋‹จ์œ„ ํ…Œ์ŠคํŠธ(Unit Test): JUnit5์™€ Mockito๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์„œ๋น„์Šค ๋ ˆ์ด์–ด์˜ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ๋…๋ฆฝ์ ์œผ๋กœ ๊ฒ€์ฆํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ(Integration Test): API ์—”๋“œํฌ์ธํŠธ๋ถ€ํ„ฐ DB ์—ฐ๋™๊นŒ์ง€์˜ ์ „์ฒด ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ฒ€์ฆํ•˜์—ฌ ๋ฐฐํฌ ์•ˆ์ •์„ฑ ํ™•๋ณดํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ๊ฐ์‚ฌ(Audit) ์‹œ์Šคํ…œ: ๋ฐ์ดํ„ฐ์˜ ์ƒ์„ฑ/์‚ญ์ œ ์ž์œจ์„ฑ์€ ๋ณด์žฅํ•˜๋˜, ์ˆ˜์ • ๋ฐ ์‚ญ์ œ ๋ฐœ์ƒ ์‹œ ๋กœ๊ทธ๋ฅผ ํ†ตํ•ด ์ด๋ ฅ์„ ์ถ”์ ํ•˜๋Š” ํˆฌ๋ช…ํ•œ ๊ฐ์‹œ ์ฒด๊ณ„ ๊ตฌ์ถ•ํ–ˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ”‘ Troubleshooting

  1. [Performance] ์ธ๋ฑ์‹ฑ ๋ฐ ์บ์‹ฑ์„ ํ†ตํ•œ ์กฐํšŒ ์„ฑ๋Šฅ 12.5๋ฐฐ ๊ฐœ์„ .
  • ๋ฌธ์ œ: 13,000๋ช… ์žฌํ•™์ƒ ๋™์‹œ ์ ‘์† ์‹œ, t3.micro์˜ ์ž์› ํ•œ๊ณ„๋กœ ์ธํ•œ CPU ํฌ๋ ˆ๋”ง ๊ณ ๊ฐˆ ๋ฐ ์„œ๋ฒ„ ์ •์ง€ ์œ„ํ—˜.

  • ์›์ธ: ๊ธฐ์กด ์ธ๋ฑ์Šค๊ฐ€ ์ •๋ ฌ ์กฐ๊ฑด(date, id)์„ ํฌํ•จํ•˜์ง€ ์•Š์•„ DB ๋ฉ”๋ชจ๋ฆฌ ๋‚ด ๊ฐ•์ œ ์ •๋ ฌ(Using filesort)์ด ๋ฐœ์ƒํ•˜์—ฌ CPU ๋ถ€ํ•˜ ๊ฐ€์ค‘.

  • ํ•ด๊ฒฐ: (student_club_id, date DESC, id DESC) ๋ณตํ•ฉ ์ธ๋ฑ์Šค๋กœ ์ •๋ ฌ ์—ฐ์‚ฐ์„ ์ œ๊ฑฐํ•˜๊ณ , Redis์— sync=true ์„ค์ •์„ ์ ์šฉํ•˜์—ฌ Cache Stampede(์บ์‹œ ๋งŒ๋ฃŒ ์‹œ DB ๋ถ€ํ•˜ ์ ๋ฆผ) ํ˜„์ƒ์„ ๋ฐฉ์ง€.

  • ์„ฑ๊ณผ: DB CPU ์ ์œ ์œจ 23.8% โ†’ 0.42% โ†’ 24.96% โ†’ 0.57% ๊ฐ์†Œ, ์‘๋‹ต ์‹œ๊ฐ„ 254ms โ†’ 20ms โ†’ 81ms โ†’ 35ms๋กœ ๊ฐœ์„ .

  1. [FinOps] RDS ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ๋ฐ ๋ฉ”๋ชจ๋ฆฌ ํ•œ๊ณ„(OOM) ๊ทน๋ณต
  • ๋ฌธ์ œ: AWS ํ”„๋ฆฌํ‹ฐ์–ด ๋งŒ๋ฃŒ๋กœ ์ธํ•œ ์›” $40 ์ด์ƒ์˜ ๋น„์šฉ ๋ถ€๋‹ด ๋ฐ ์„œ๋น„์Šค ์ข…๋ฃŒ ์œ„๊ธฐ.

  • ๊ธฐ์ˆ ์  ๋‚œ๊ด€: RAM 1GB ํ™˜๊ฒฝ์—์„œ Spring, MySQL, Redis, Monitoring ์Šคํƒ ๋™์‹œ ๊ตฌ๋™ ์‹œ OOM Killer์— ์˜ํ•œ ์ƒ์‹œ ๋‹ค์šด ๋ฐœ์ƒ.

  • ํ•ด๊ฒฐ: RDS๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  EC2 ๋‚ด Docker MySQL๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•˜์—ฌ ๋น„์šฉ์„ 50% ์ด์ƒ ์ ˆ๊ฐ. ๋ถ€์กฑํ•œ ๋ฌผ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ๋Š” ๋ฆฌ๋ˆ…์Šค Swap(3GB) ์ฆ์„ค๊ณผ Docker deploy.resources.limits ์„ค์ •์„ ํ†ตํ•œ ์ปจํ…Œ์ด๋„ˆ๋ณ„ ์ž์› ๊ฒฉ๋ฆฌ๋กœ ํ•ด๊ฒฐ.

  • ์„ฑ๊ณผ: ์ถ”๊ฐ€ ํ•˜๋“œ์›จ์–ด ๋น„์šฉ ์—†์ด ์„œ๋น„์Šค ๊ฐ€์šฉ์„ฑ(Availability) ํ™•๋ณด ๋ฐ ์šด์˜๋น„ ์ตœ์ ํ™”.

  1. [Infrastructure] Nginx-Certbot ์ˆœํ™˜ ์˜์กด์„ฑ ํ•ด๊ฒฐ (SSL ๋ฐœ๊ธ‰)
  • ๋ฌธ์ œ: Nginx๋Š” ์ธ์ฆ์„œ๊ฐ€ ์—†์œผ๋ฉด ๊ตฌ๋™๋˜์ง€ ์•Š๊ณ , Certbot์€ Nginx๊ฐ€ ๋–  ์žˆ์–ด์•ผ ์ธ์ฆ์„œ๋ฅผ ๋ฐœ๊ธ‰๋ฐ›๋Š” ๊ต์ฐฉ ์ƒํƒœ(Deadlock) ๋ฐœ์ƒ.

  • ํ•ด๊ฒฐ: standalone ๋ชจ๋“œ๋ฅผ ํ™œ์šฉํ•˜์—ฌ Nginx๋ฅผ ์ผ์‹œ ์ค‘์ง€ํ•œ ์ƒํƒœ์—์„œ Certbot์ด ์ง์ ‘ 80ํฌํŠธ๋ฅผ ์ ์œ ํ•ด ์ธ์ฆ์„œ๋ฅผ ์„ ๋ฐœ๊ธ‰ ๋ฐ›๋„๋ก ์กฐ์น˜. ์ดํ›„ ๋ณผ๋ฅจ ๋งˆ์šดํŠธ๋กœ ์ธ์ฆ์„œ๋ฅผ ๊ณต์œ ํ•˜์—ฌ Nginx ์ •์ƒ ๊ธฐ๋™ ์„ฑ๊ณต.

  • ๊ฒฐ๊ณผ: Docker ํ™˜๊ฒฝ์—์„œ์˜ HTTPS ๊ตฌ์ถ• ์ž๋™ํ™” ๋ฐ ์„œ๋ฒ„ ์ด์ „ ํ”„๋กœ์„ธ์Šค ์ •๋ฆฝ.

  1. [Monitoring] absent() ํ•จ์ˆ˜๋ฅผ ํ™œ์šฉํ•œ "๋ฐ์ดํ„ฐ ์ฆ๋ฐœ" ์•Œ๋ฆผ ๊ตฌ์ถ•
  • ๋ฌธ์ œ: ์ปจํ…Œ์ด๋„ˆ ๋‹ค์šด ์‹œ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ์ž์ฒด๊ฐ€ ์ค‘๋‹จ๋˜์–ด, ์ผ๋ฐ˜์ ์ธ ์ž„๊ณ„์น˜(up == 0) ์•Œ๋ฆผ์ด 'No Data' ์ƒํƒœ๋กœ ๋น ์ง€๋ฉฐ ์•Œ๋ฆผ์ด ๋ฌด๋ ฅํ™”๋จ.

  • ํ•ด๊ฒฐ: Prometheus์˜ absent() ํ•จ์ˆ˜๋ฅผ ๋„์ž…. "๋ฐ์ดํ„ฐ๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š๋Š” ์ƒํ™ฉ" ์ž์ฒด๋ฅผ ์กฐ๊ฑด์œผ๋กœ ์„ค์ •ํ•˜์—ฌ ์ปจํ…Œ์ด๋„ˆ ์†Œ๋ฉธ ์‹œ์—๋„ ๋””์Šค์ฝ”๋“œ ์•Œ๋ฆผ์ด ์˜ค๋„๋ก ์ฟผ๋ฆฌ ์ตœ์ ํ™”.

  • ๊ฒฐ๊ณผ: ์žฅ์•  ์ธ์ง€ ์†๋„ ํ–ฅ์ƒ ๋ฐ ์ปจํ…Œ์ด๋„ˆ ์ •์ง€ ํ›„ 1๋ถ„ ์ด๋‚ด ๋Œ€์‘ ์ฒด๊ณ„ ๊ตฌ์ถ•.

  1. [Search] Full-Text Search ๋„์ž…์„ ํ†ตํ•œ ๊ฒ€์ƒ‰ ํšจ์œจํ™”
  • ๋ฌธ์ œ: LIKE %keyword% ์‚ฌ์šฉ ์‹œ ๋ฐ์ดํ„ฐ ์–‘์— ๋น„๋ก€ํ•œ ์„ฑ๋Šฅ ์ €ํ•˜ ๋ฐ ํ•œ๊ตญ์–ด ๋‹จ์–ด ์ผ๋ถ€ ๊ฒ€์ƒ‰(์˜ˆ: '์ƒํšŒ') ์‹œ ์ธ๋ฑ์Šค ๋ฏธ์ ์šฉ ๋ฌธ์ œ.

  • ํ•ด๊ฒฐ: MySQL Full-Text Index์™€ **n-gram parser(token_size=2)**๋ฅผ ๋„์ž…ํ•˜์—ฌ 2๊ธ€์ž ๋‹จ์œ„์˜ ํ† ํฐ ์ƒ‰์ธ ์ƒ์„ฑ. RDS ํŒŒ๋ผ๋ฏธํ„ฐ(ft_min_word_len) ์ตœ์ ํ™” ๋ณ‘ํ–‰.

  • ๊ฒฐ๊ณผ: ๋Œ€๋Ÿ‰ ๋ฐ์ดํ„ฐ์…‹์—์„œ๋„ ์œ ์—ฐํ•œ ํ‚ค์›Œ๋“œ ๊ฒ€์ƒ‰ ์ง€์› ๋ฐ ์ผ์ •ํ•œ ์กฐํšŒ ์†๋„ ๋ณด์žฅ.

โœจ ์ฃผ์š” ๊ธฐ๋Šฅ

๐Ÿ“Š ์˜์ˆ˜์ฆ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ

  • ์ž๋™ ๊ฒ€์ฆ ๋“ฑ๋ก: ํ† ์Šค๋ฑ…ํฌ PDF ํŒŒ์‹ฑ ๋ฐ AI OCR์„ ํ†ตํ•œ ์ž๋™ ๊ธฐ์ž….
  • ๋ฐ์ดํ„ฐ ์ถ”์ถœ: ์›”๋ณ„ ์žฅ๋ถ€ ๋ฐ์ดํ„ฐ CSV ๋‹ค์šด๋กœ๋“œ ๊ธฐ๋Šฅ.
  • ํŽ˜์ด์ง• ์กฐํšŒ: Redis ์บ์‹ฑ์ด ์ ์šฉ๋œ ๊ณ ์„ฑ๋Šฅ ์˜์ˆ˜์ฆ ๋ชฉ๋ก ์กฐํšŒ.

๐Ÿ‘ฅ ์†Œ์† ์ธ์ฆ ๋ฐ ๋ณด์•ˆ

  • ์ธ๊ฐ€ ์‹œ์Šคํ…œ: ํšŒ์žฅ ๋ฐ ๋ถ€์› ์ •๋ณด๋ฅผ ๊ด€๋ฆฌ์ž๊ฐ€ ์‚ฌ์ „์— ๋“ฑ๋กํ•˜์—ฌ ์†Œ์† ๋งค์นญ ํ›„ ๊ฐ€์ž… ํ—ˆ์šฉ .
  • ๋กœ๊ทธ ์ถ”์ : Grafana Loki๋ฅผ ํ†ตํ•œ ๋ฏผ๊ฐ ์•ก์…˜(์ˆ˜์ •/์‚ญ์ œ) ์‹ค์‹œ๊ฐ„ ๋กœ๊น… ๋ฐ ๊ฐ์‚ฌ.

๐Ÿ“ˆ ์„ฑ๋Šฅ ๊ฐœ์„  ์ง€ํ‘œ (VU 300 ๊ธฐ์ค€)

์ง€ํ‘œ ๊ฐœ์„  ์ „ (Full Scan) ๊ฐœ์„  ํ›„ (Index + Cache) ๊ฐœ์„  ํšจ๊ณผ
DB CPU ์‚ฌ์šฉ๋ฅ  24.96% 0.57% ์•ฝ 98% ๊ฐ์†Œ
ํ‰๊ท  ์‘๋‹ต ์‹œ๊ฐ„ 81ms 35ms ์•ฝ 2.3๋ฐฐ ํ–ฅ์ƒ
์ฒ˜๋ฆฌ๋Ÿ‰ (Iterations) 7,955ํšŒ 9,780ํšŒ ์•ฝ 23% ์ฆ๊ฐ€

๐Ÿ—„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ค๊ณ„ (ERD)

img_1.png

About

๐Ÿซง ์šฐ๋ฆฌ ํ•™๊ณผ ํ•™์ƒํšŒ๋น„๊ฐ€ ๊ถ๊ธˆํ•˜๋ฉด ํˆฌ๋ช…์ง€

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages