Skip to content
@FISA-TechSeminar

FISA-TechSeminar

WeMakeIT โ€“ ๊ธˆ์œต๊ถŒ ํŠธ๋ž˜ํ”ฝ ๊ด€๋ฆฌ ์‹ค์ฆ ์‹คํ—˜ ํ”„๋กœ์ ํŠธ

โ€œRedis ์บ์‹ฑ์œผ๋กœ ๊ธˆ์œต ์„œ๋น„์Šค ์•ˆ์ •์„ฑ ๊ฐ•ํ™”โ€


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

๋ฐœํ‘œ ์˜์ƒ

๐ŸŽฅ ๋ฐœํ‘œ ์˜์ƒ ๋ณด๋Ÿฌ๊ฐ€๊ธฐ

  • ๊ธˆ์œต ์„œ๋น„์Šค๋Š” ์•ˆ์ •์„ฑ๊ณผ ์‹ ๋ขฐ์„ฑ์ด ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค.

  • ์ „ํ†ต์ ์ธ 3-Tier ๊ตฌ์กฐ ์‹œ์Šคํ…œ์€ ํŠธ๋ž˜ํ”ฝ ํญ์ฆ ์‹œ DB์™€ API ์„œ๋ฒ„์— ๋ณ‘๋ชฉ์ด ์‰ฝ๊ฒŒ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

  • ์šฐ๋ฆฌ๋Š” ๊ฐœ๋ฐœ์ž ๊ด€์ ์—์„œ ์‹ค์งˆ์ ์ธ ์„ฑ๋Šฅ ๊ฐœ์„  ๋ฐฉ๋ฒ•์„ ํƒ๊ตฌํ•˜๊ณ , ์บ์‹ฑ ์ „๋žต์„ ์ ์šฉํ•ด ๋ณ‘๋ชฉ ํ˜„์ƒ์„ ์™„ํ™”ํ–ˆ์Šต๋‹ˆ๋‹ค.

  • ์ด๋ฅผ ์‹คํ—˜์œผ๋กœ ๊ฒ€์ฆํ•ด ์„ฑ๋Šฅ ๊ฐœ์„  ํšจ๊ณผ๋ฅผ ์ˆ˜์น˜๋กœ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค.


๐Ÿšฉ ํ•ต์‹ฌ ๋ฌธ์ œ์˜์‹

image image

๐Ÿ‘‰๐Ÿป ๋‹จ์ˆœ ๊ธฐ๋Šฅ ๊ตฌํ˜„์ด ์•„๋‹Œ, ํŠธ๋ž˜ํ”ฝ ๊ด€๋ฆฌ์™€ ์‹œ์Šคํ…œ ์•ˆ์ •์„ฑ์ด ํ•ต์‹ฌ ๊ณผ์ œ


๐ŸŽฏ ์‹คํ—˜ ๋ชฉํ‘œ

  1. ์‹ค์ œ ๊ธˆ์œต๊ถŒ๊ณผ ์œ ์‚ฌํ•œ 3-Tier ๊ตฌ์กฐ์—์„œ
  2. ์บ์‹œ ๋ฏธ์ ์šฉ/Cache Update/Cache Evict ์ „๋žต์„ ๋น„๊ต
  3. k6 + Grafana + Prometheus๋กœ ๋Œ€๊ทœ๋ชจ ํŠธ๋ž˜ํ”ฝ ์‹œ๋ฎฌ๋ ˆ์ด์…˜
  4. DB ๋ถ€ํ•˜, ์‘๋‹ต์†๋„, ์—๋Ÿฌ์œจ ๋“ฑ ์ •๋Ÿ‰์  ์ง€ํ‘œ ๊ธฐ๋ฐ˜ ์„ฑ๋Šฅ ๋ถ„์„

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

  • Spring Boot โ€“ API ์„œ๋ฒ„ ๋ฐ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง
  • Redis โ€“ ์บ์‹ฑ ๋ฐ ๋ถ„์‚ฐ๋ฝ ๊ตฌํ˜„
  • Oracle โ€“ RDBMS
  • k6 โ€“ ๋ถ€ํ•˜ ํ…Œ์ŠคํŠธ
  • Prometheus, Grafana โ€“ ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ ์‹œ๊ฐํ™”

๐Ÿ“œ ์‹คํ—˜ ์‹œ๋‚˜๋ฆฌ์˜ค

์ „๋žต ์„ค๋ช… ๊ธฐ๋Œ€ ํšจ๊ณผ
No Cache ๋ชจ๋“  ์š”์ฒญ์„ DB ์ง์ ‘ ์กฐํšŒ ๋ณ‘๋ชฉยท์‘๋‹ต ์ง€์—ฐยท์žฅ์•  ์œ„ํ—˜
Cache Update ๊ฐ’ ๋ณ€๊ฒฝ ์‹œ ์บ์‹œ ๊ฐฑ์‹  ๋น ๋ฅธ ์‘๋‹ต, DB ๋ถ€ํ•˜ ์™„ํ™”
Cache Evict ๊ฐ’ ๋ณ€๊ฒฝ ์‹œ ์บ์‹œ ์‚ญ์ œ ์ •ํ•ฉ์„ฑโ†‘, hit/miss ๋น„๊ต ๊ฐ€๋Šฅ

API

  • ๊ณ„์ขŒ ์ด์ž ์กฐํšŒ, ์†ก๊ธˆ, ์ƒ์„ธ์กฐํšŒ ๋“ฑ ์‹ค์ œ ๊ธˆ์œต ์„œ๋น„์Šค ํŒจํ„ด ๋ฐ˜์˜

๐Ÿงช ํ…Œ์ŠคํŠธ ์กฐ๊ฑด

  • ๐Ÿ‘ฅ ๋™์‹œ ์‚ฌ์šฉ์ž: 100๋ช…

  • โฑ ์ง€์† ์‹œ๊ฐ„: 10๋ถ„


๐Ÿ“Š ์ธก์ • ํ•ต์‹ฌ ์ง€ํ‘œ

  • ์ฒ˜๋ฆฌ๋Ÿ‰: ์ดˆ๋‹น ์š”์ฒญ ์ˆ˜(RPS), ์ด ์ฒ˜๋ฆฌ ์š”์ฒญ ์ˆ˜
  • ์‘๋‹ต์†๋„: ํ‰๊ท , ์ตœ๋Œ€, p95 ๋“ฑ ๋ถ„ํฌ
  • ์—๋Ÿฌ์œจ: ์‹คํŒจ ์š”์ฒญ ๋น„์œจ (์„ฑ๊ณต๋ฅ )
  • ์‹œ์Šคํ…œ ๋ฆฌ์†Œ์Šค: CPU, ๋ฉ”๋ชจ๋ฆฌ ๋“ฑ (Prometheus ํ™œ์šฉ)

๐Ÿ ์„ฑ๋Šฅ ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ ์š”์•ฝ

์ „๋žต ์ด ์ฒ˜๋ฆฌ ๊ฑด์ˆ˜ ํ‰๊ท  RPS
No Cache 23,715 39.0
Cache Update 59,001 99.2
Cache Evict 59,254 96.7
  • ์บ์‹œ ๋ฏธ์ ์šฉ: DB ๊ณผ๋ถ€ํ•˜, ์‘๋‹ต ์ง€์—ฐ, ์žฅ์•  ๋ฐœ์ƒ ๊ฐ€๋Šฅ์„ฑ ๋†’์Œ
  • ์บ์‹œ Update/Evict: ๋ชจ๋‘ ์„ฑ๋Šฅ ๊ฐœ์„  ํšจ๊ณผ
    • ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ์—์„œ๋Š” ์•ฝ 2.5% ์„ฑ๋Šฅ ์ฐจ์ด
      (ํŠธ๋ž˜ํ”ฝยท์บ์‹œ ๋ฏธ์Šค ํญ์ฆ ์‹œ ์ฐจ์ด ๋” ์ปค์งˆ ์ˆ˜ ์žˆ์Œ)
  • 100% ์„ฑ๊ณต๋ฅ , ํ‰๊ท  39 RPS, ์ตœ๋Œ€ 53.5 RPS
    โ†’ ์‹ค์ œ ๊ธˆ์œต ์„œ๋น„์Šค ์š”๊ตฌ์น˜์— ๊ทผ์ ‘ํ•˜๋Š” ์•ˆ์ •์„ฑ ํ™•์ธ

๐Ÿ’ก Cache Update๊ฐ€ RPS๋Š” ๋†’์€๋ฐ Cache Evict๋ณด๋‹ค ์ด ์ฒ˜๋ฆฌ ๊ฑด์ˆ˜๊ฐ€ ์ ์€ ์ด์œ  โ†’ Cache Evict ์ „๋žต์€ ๊ฐ’ ๋ณ€๊ฒฝ ์‹œ ์บ์‹œ๋ฅผ ์‚ญ์ œํ•˜๋ฏ€๋กœ, ์ดํ›„ ํ•ด๋‹น ํ‚ค ์กฐํšŒ ์‹œ ์บ์‹œ ๋ฏธ์Šค๊ฐ€ ๋ฐœ์ƒ. ์ด ๋ฏธ์Šค ์š”์ฒญ์ด DB๋ฅผ ๊ฑฐ์ณ ์ฒ˜๋ฆฌ๋˜์ง€๋งŒ, ํ…Œ์ŠคํŠธ ์ง‘๊ณ„์—์„œ๋Š” ์ด๊ฒƒ๋„ ์ด ์ฒ˜๋ฆฌ ๊ฑด์ˆ˜์— ํฌํ•จ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฑด์ˆ˜๊ฐ€ ๋” ๋†’๊ฒŒ ๋‚˜ํƒ€๋‚จ.


๐Ÿ’ก ๋ถ„์„ ๊ฒฐ๊ณผ & ๊ธฐ์ˆ ์  ์ธ์‚ฌ์ดํŠธ

๐Ÿ“Š ๋ถ„์„ ๊ฒฐ๊ณผ

  • Cache Update โ€“ ์„ฑ๋Šฅ ์ตœ๊ณ (99.2 req/s), ๊ทธ๋Ÿฌ๋‚˜ ๊ตฌํ˜„ ๋ณต์žกยท๋™์‹œ์„ฑ ์ œ์–ด ๋ถ€๋‹ด

  • Cache Evict โ€“ 2.5% ๋А๋ฆฌ์ง€๋งŒ ์™„๋ฒฝํ•œ ๋ฐ์ดํ„ฐ ์ •ํ•ฉ์„ฑยท์œ ์ง€๋ณด์ˆ˜์„ฑ ์šฐ์ˆ˜

๊ธˆ์œต๊ถŒ ํŠน์„ฑ์ƒ ์ •ํ•ฉ์„ฑ๊ณผ ์‹ ๋ขฐ์„ฑ > ๋ฏธ๋ฏธํ•œ ์„ฑ๋Šฅ ์ฐจ์ด โ†’ ์ตœ์ข… ์ฑ„ํƒ: Cache Evict

๐Ÿ›  ๊ธฐ์ˆ ์  ์ธ์‚ฌ์ดํŠธ

  • ํŠธ๋ž˜ํ”ฝ ๊ด€๋ฆฌยท์บ์‹ฑ ์ „๋žต ์„ค๊ณ„๋Š” ์‹ค๋ฌด ๊ฒฝ์Ÿ๋ ฅ์„ ์ขŒ์šฐํ•˜๋Š” ํ•ต์‹ฌ ์—ญ๋Ÿ‰

  • ๋‹จ์ˆœ ๊ธฐ๋Šฅ ๊ตฌํ˜„๋ณด๋‹ค ์‹œ์Šคํ…œ ๊ตฌ์กฐยท์šด์˜ ๊ด€์ ์—์„œ์˜ ๋ฌธ์ œ ํ•ด๊ฒฐ ๋Šฅ๋ ฅ์ด ์ค‘์š”

  • ์‹คํ—˜, ๋ถ„์„, ํ˜‘์—… ๊ณผ์ •์„ ํ†ตํ•ด ํŒ€ ๋ชจ๋‘๊ฐ€ ์„ฑ์žฅ
    โ†’ ํ•จ๊ป˜ ๊ณ ๋ฏผํ•˜๊ณ  ์ง์ ‘ ๊ฒ€์ฆํ•œ ๊ฒฝํ—˜์ด ๊ฐ€์žฅ ๊ฐ’์ง


๐Ÿค ํŒ€ & ์—ญํ•  ์†Œ๊ฐœ

  • WeMakeIT ํŒ€์€ ๊ธฐ์ˆ  ํ† ๋ก , ์‹คํ—˜, ๊ฒฐ๊ณผ ๊ณต์œ ๊นŒ์ง€ ์ „์› ์ ๊ทน ์ฐธ์—ฌ
  • ๊ฐ์ž ์—ญํ• (๋ฐฑ์—”๋“œ, ์ธํ”„๋ผ, ํ…Œ์ŠคํŠธ, ์‹œ๊ฐํ™” ๋“ฑ)์„ ๋ถ„๋‹ดํ•ด
    ํ•จ๊ป˜ ๋ฌธ์ œ๋ฅผ ์ •์˜ยทํ•ด๊ฒฐยท์„ฑ์žฅํ•˜๋Š” ๋ฌธํ™”๋ฅผ ๊ฒฝํ—˜

๐Ÿ“ธ ๋Œ€์‹œ๋ณด๋“œ/์‹คํ—˜ ํ™”๋ฉด

  • 3๊ฐœ ์ „๋žต ๋น„๊ต ํ‘œ
    แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2025-08-10 แ„‹แ…ฉแ„’แ…ฎ 1 26 26
  • Cache Update Grafana ๋Œ€์‹œ๋ณด๋“œ
    image
  • Cache Evict Grafana ๋Œ€์‹œ๋ณด๋“œ
    image

์ด๋ฒˆ ํ”„๋กœ์ ํŠธ๋Š” ๊ฐœ๋ฐœ์ž๋กœ์„œ ๊ธˆ์œต๊ถŒ IT์˜ ์•ˆ์ •์„ฑ๊ณผ ์‹ ๋ขฐ์„ฑ์— ๊ธฐ์—ฌํ•  ์ˆ˜ ์žˆ๋Š” ์˜๋ฏธ ์žˆ๋Š” ๊ฒฝํ—˜์ด์—ˆ์Šต๋‹ˆ๋‹ค. ์€ํ–‰ ์‹œ์Šคํ…œ์—์„œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๋ณ‘๋ชฉ ํ˜„์ƒ์„ ์ง์ ‘ ๋‹ค๋ค„๋ณด๊ณ , ์ด๋ฅผ ํ•ด๊ฒฐํ•ด๋ณด๋Š” ๊ณผ์ •์—์„œ ๋งŽ์€ ๊ฒƒ์„ ๋ฐฐ์šฐ๊ณ  ์„ฑ์žฅํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.


๐Ÿ’ฌ ๋ฌธ์˜ยทํ˜‘์—…ยทํ”ผ๋“œ๋ฐฑ์€ PR/์ด์Šˆ/๋””์Šค์ปค์…˜์œผ๋กœ ์–ธ์ œ๋“  ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค!

Popular repositories Loading

  1. Better-Bank-BE Better-Bank-BE Public

    Java

  2. Better-Bank-FE Better-Bank-FE Public

    JavaScript

  3. .github .github Public

Repositories

Showing 3 of 3 repositories

People

This organization has no public members. You must be a member to see who’s a part of this organization.

Top languages

Loadingโ€ฆ

Most used topics

Loadingโ€ฆ