Skip to main content Link Menu Expand (external link) Document Search Copy Copied

Table of contents

  1. ์ ์šฉ๋œ ๊ธฐ์ˆ ์Šคํƒ
    1. Backend
    2. Infrastructure & Cloud
    3. Front
  2. ๐Ÿ’ก ์•„ํ‚คํ…์ฒ˜
    1. [Backend] ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ํŒŒ๋“œ
    2. [Backend] EC2 Instnace ํ‰๊ท  CPU ์‚ฌ์šฉ๋ฅ ์— ๋”ฐ๋ฅธ ๋…ธ๋“œ ์Šค์ผ€์ผ ์ธ/์•„์›ƒ
    3. [Backend] Git Actions multijob CI/CD ์ž๋™ํ™”
    4. [Frontend] Front UI
  3. ๐Ÿ”จ ์„ฑ๋Šฅ ์ด์Šˆ ํ•ด๊ฒฐ ๋ฐ ์ตœ์ ํ™” ๊ณผ์ •
  4. ๐Ÿ“• ํ”„๋กœ์ ํŠธ๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ๋”ฐ๋กœ ๊ณต๋ถ€ ๋ฐ ์ •๋ฆฌํ•œ ํฌ์ŠคํŒ…
  5. ๐Ÿ“— ํ”„๋กœ์ ํŠธ ์ง„ํ–‰ ํฌ์ŠคํŒ…

1์ธ ํ”„๋กœ์ ํŠธ๋กœ ์ง„ํ–‰๋œ ์ž๋™ํ™” ๋ฐ ์„ฑ๋Šฅ๊ฐœ์„ ์— ์ดˆ์ ์„ ๋‘” Spring-Java ๊ธฐ๋ฐ˜ ์ฑ„ํŒ… ๋ฐฑ์—”๋“œ/ํ”„๋ก ํŠธ ์„œ๋ฒ„ ํ”„๋กœ์ ํŠธ์ž…๋‹ˆ๋‹ค ๐Ÿ˜Š

2022.11 ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด์„œ 2024.02 ๊นŒ์ง€ ์•ฝ 1๋…„ 3๊ฐœ์›”์ด ๊ฑธ๋ ธ๋„ค์š”! ์ค‘๊ฐ„์ค‘๊ฐ„ ํ˜„์—…๊ณผ ๋ณ‘ํ–‰ํ•˜๋‹ค๋ณด๋‹ˆ ๋”๋”˜๋ถ€๋ถ„๋„ ์žˆ์—ˆ์ง€๋งŒ ๊ฒฐ๊ตญ ๋งˆ๋ฌด๋ฆฌํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ œ๊ฐ€ ์ข‹์•„ํ•˜๋Š” ์ž๋™ํ™”์™€ ์„ฑ๋Šฅ๊ฐœ์„ ์„ ๋งˆ์Œ๊ป ํ•  ์ˆ˜ ์žˆ์–ด์„œ ์ •๋ง ์žฌ๋ฏธ์žˆ๋Š” ํ”„๋กœ์ ํŠธ์˜€์Šต๋‹ˆ๋‹ค.


์ ์šฉ๋œ ๊ธฐ์ˆ ์Šคํƒ

ํ˜„์žฌ ์ ์šฉ๋œ ๊ธฐ์ˆ ์Šคํƒ์€ ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

Backend

  • Spring-Boot / Java 17
  • Spring-Security / Data-JPA / Cloud
  • Postgresql, Redis
  • Tomcat, Nginx
  • JUnit5, Mockito, testContainer, nGrinder
  • JWT

Infrastructure & Cloud

  • Docker, Kubernetes
  • AWS-IAM / EKS / ECR / RDS / EC2 / ELB / Route-53 / Cloud-Watch / Auto Scaleing
  • Git Actions, shell script, gradle script
  • Grafana & Prometheus, io.micrometer
  • Kafka, RabbitMQ

Front

  • Spring stomp
  • Thymeleaf, html, css

๐Ÿ’ก ์•„ํ‚คํ…์ฒ˜

[Backend] ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ํŒŒ๋“œ

img

[Backend] EC2 Instnace ํ‰๊ท  CPU ์‚ฌ์šฉ๋ฅ ์— ๋”ฐ๋ฅธ ๋…ธ๋“œ ์Šค์ผ€์ผ ์ธ/์•„์›ƒ

img

[Backend] Git Actions multijob CI/CD ์ž๋™ํ™”

img

[Frontend] Front UI

Image 1Image 2Image 3Image 4Image 5


๐Ÿ”จ ์„ฑ๋Šฅ ์ด์Šˆ ํ•ด๊ฒฐ ๋ฐ ์ตœ์ ํ™” ๊ณผ์ •

์„ฑ๋Šฅ ์ตœ์ ํ™” ๋ฐฉ๋ฒ•๊ณผ ๊ฒฐ๊ณผ๋ฅผ link ์— ์ƒ์„ธํžˆ ์ •๋ฆฌํ•˜์˜€์Šต๋‹ˆ๋‹ค! ์ด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์ž‘์„ฑํ•œ ํฌ์ŠคํŒ…์ž…๋‹ˆ๋‹ค.

  • 2023-01-16 ์„ฑ๋Šฅ ์ตœ์ ํ™” ๊ณผ์ • - 1 : ๋„์ปค ๋ฆฌ์†Œ์Šค ์ถ”๊ฐ€์™€ ์„œ๋ฒ„ ์ˆ˜ํ‰ ํ™•์žฅ๋ฅผ ํ†ตํ•œ ์„ฑ๋Šฅ ์ตœ์ ํ™” ์ง„ํ–‰
  • 2023-01-17 ์„ฑ๋Šฅ ์ตœ์ ํ™” ๊ณผ์ • - 2 : JPA-Batch๋ฅผ ํ†ตํ•œ ์„ฑ๋Šฅ ์ตœ์ ํ™” ์ง„ํ–‰
  • 2023-01-24 ์„ฑ๋Šฅ ์ตœ์ ํ™” ๊ณผ์ • - 3 : JDBC-Batch ์„ฑ๋Šฅ ๊ทธ๋ž˜ํ”„ ํ™•์ธ
  • 2023-01-27 ์„ฑ๋Šฅ ์ตœ์ ํ™” ๊ณผ์ • - 4 : JDBC Batch ์ตœ์ ํ™” ๋ฐ Postgresql ๋ณ‘๋ ฌ ํ”„๋กœ์„ธ์„œ ํ™•์žฅ
  • 2023-03-05 ์„ฑ๋Šฅ ์ตœ์ ํ™” ๊ณผ์ • - 5 : AWS-RDS ๊ทธ๋ž˜ํ”„ ์ง€ํ‘œ ๊ด€์ฐฐ ๋ฐ db connection ์ฆ๊ฐ€๋ฅผ ํ†ตํ•œ ์„ฑ๋Šฅ ์ตœ์ ํ™” ์ง„ํ–‰
  • 2023-03-11 ์„ฑ๋Šฅ ์ตœ์ ํ™” ๊ณผ์ • - 6 : ๋ถ€ํ•˜ ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•œ ํˆด ์ œ์ž‘ ๋ฐ ์‹ค์ œ ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ
  • 2023-03-16 ์„ฑ๋Šฅ ์ตœ์ ํ™” ๊ณผ์ • - 7 : RDB ์ธ๋ฑ์‹ฑ ํ™œ์„ฑํ™”๋ฅผ ํ†ตํ•œ ์„ฑ๋Šฅ ์ตœ์ ํ™” ์ง„ํ–‰
  • 2023-05-01 ์„ฑ๋Šฅ ์ตœ์ ํ™” ๊ณผ์ • - 8 : ์ด๋ฒคํŠธ ์ „์†ก ์Šค๋ ˆ๋“œ ์ฆ๊ฐ€๋ฅผ ํ†ตํ•œ ์„ฑ๋Šฅ ์ตœ์ ํ™” ์ง„ํ–‰
  • 2023-12-21 ์„ฑ๋Šฅ ์ตœ์ ํ™” ๊ณผ์ • - 9 : HPA(max 3), ReadinessProbe, CPU limit, EKS NodeGroup AutoScaling O(CPU usage 50%), Caching, ํ†ฐ์ผ“ ์ตœ์ ํ™”

    ๊ฐœ์„ ๋œ ์ง€ํ‘œํ™•์ธ

    img img img

    MetricBeforeAfterChange
    Total Tests40,228181,050349.29% ๐ŸŸข
    Error Rate51.11%(20,560)0.00%(0)No Error ๐ŸŸข
    TPS ํ‰๊ท  (Average)109.27312.16185.94% ๐ŸŸข
    TPS p5069.00319.00362.32% ๐ŸŸข
    TPS p954.00217.455362.50% ๐ŸŸข
    TPS p992.84132.284556.34% ๐ŸŸข
    TPS p99.91.6396.525852.76% ๐ŸŸข
    MTTFB ํ‰๊ท  (Average)1605.44 ms950.89 ms-40.68% ๐ŸŸข
    MTTFB p501636.55 ms919.20 ms-43.90% ๐ŸŸข
    MTTFB p9524013.28 ms1322.11 ms-94.47% ๐ŸŸข
    MTTFB p9927690.40 ms1833.22 ms-93.40% ๐ŸŸข
    MTTFB p99.928157.50 ms2099.12 ms-92.52% ๐ŸŸข
    MTTFB ์ฐจ์ด ํ‰๊ท  (Average Difference)2838.38 ms112.52 ms-96.04% ๐ŸŸข
    MTTFB ํ‰๊ท ์ ์ธ ๋ณ€๋™๋ฅ  (Average Variability)75.00%10.67%-85.77% ๐ŸŸข
  • 2023-12-29 ์„ฑ๋Šฅ ์ตœ์ ํ™” ๊ณผ์ • - 10 : Nginx Ingress replicaSet=2~3

    ๊ฐœ์„ ๋œ ์ง€ํ‘œํ™•์ธ

    img img img

    MetricIngress Pod 1Ingress Pod 2Change
    Total Tests181,050240,58732.93% ๐ŸŸข
    Error Rate0.00%(0)0.00%(3)N/A
    TPS ํ‰๊ท  (Average)312.16410.5531.51% ๐ŸŸข
    TPS p50319.00422.5032.38% ๐ŸŸข
    TPS p95217.45288.6032.69% ๐ŸŸข
    TPS p99132.28147.6211.62% ๐ŸŸข
    TPS p99.996.5237.04-61.68% ๐Ÿ”ด
    MTTFB ํ‰๊ท  (Average)950.89 ms709.86 ms-25.29% ๐ŸŸข
    MTTFB p50919.20 ms693.65 ms-24.54% ๐ŸŸข
    MTTFB p951322.11 ms958.64 ms-27.49% ๐ŸŸข
    MTTFB p991833.22 ms1117.45 ms-39.05% ๐ŸŸข
    MTTFB p99.92099.12 ms1396.80 ms-33.54% ๐ŸŸข
    MTTFB ์ฐจ์ด ํ‰๊ท  (Average Difference)112.52 ms58.82 ms-47.66% ๐ŸŸข
    MTTFB ํ‰๊ท ์ ์ธ ๋ณ€๋™๋ฅ  (Average Variability)10.67%7.67%-28.09% ๐ŸŸข
  • 2024-01-03 ์„ฑ๋Šฅ ์ตœ์ ํ™” ๊ณผ์ • - 11 : RDB b-tree Long type PK indexing

    ๊ฐœ์„ ๋œ ์ง€ํ‘œํ™•์ธ
    MetricBeforeAfterChange
    Total Tests220,313236,9577.54% ๐ŸŸข
    Error Rate0.00%(7)0.00%(0)-
    TPS ํ‰๊ท 377.24404.367.18% ๐ŸŸข
    TPS p50390.25420.507.76% ๐ŸŸข
    TPS p95270.60277.902.69% ๐ŸŸข
    TPS p9992.5864.34-30.53% ๐Ÿ”ด
    TPS p99.934.0543.1726.74% ๐ŸŸข
    MTTFB ํ‰๊ท 496.27 ms456.42 ms-8.03% ๐ŸŸข
    MTTFB p50480.31 ms431.84 ms-10.07% ๐ŸŸข
    MTTFB p95882.81 ms799.67 ms-9.41% ๐ŸŸข
    MTTFB p991163.81 ms1130.67 ms-2.84% ๐ŸŸข
    MTTFB p99.91225.86 ms1275.62 ms4.06% ๐Ÿ”ด
    MTTFB ์ฐจ์ด ํ‰๊ท 106.51 ms74.02 ms-30.46% ๐ŸŸข
    MTTFB ํ‰๊ท ์ ์ธ ๋ณ€๋™๋ฅ 20.77%15.27%-26.60% ๐ŸŸข
  • 2024-02-04 ์„ฑ๋Šฅ ์ตœ์ ํ™” ๊ณผ์ • - 12 : RDB ์บ์‹ฑ (Look-Aside + Write-Around)

    ๊ฐœ์„ ๋œ ์ง€ํ‘œํ™•์ธ

    img img img

    MetricBeforeAfterChange
    Total Tests12,35616,78836.00% ๐ŸŸข
    Error Rate0.00%(0)0.00%(0)0 โšช
    TPS ํ‰๊ท  (Average)228.81310.8935.87% ๐ŸŸข
    TPS p50240.50307.5027.84% ๐ŸŸข
    TPS p95162.40282.8574.20% ๐ŸŸข
    TPS p99107.09237.47121.77% ๐ŸŸข
    TPS p99.990.36223.55147.24% ๐ŸŸข
    MTTFB ํ‰๊ท  (Average)438.32 ms324.82 ms-25.93% ๐ŸŸข
    MTTFB p50432.94 ms323.11 ms-25.27% ๐ŸŸข
    MTTFB p95733.43 ms380.09 ms-48.14% ๐ŸŸข
    MTTFB p99912.43 ms471.73 ms-48.31% ๐ŸŸข
    MTTFB p99.9951.93 ms496.67 ms-47.85% ๐ŸŸข
    MTTFB ์ฐจ์ด ํ‰๊ท  (Average Difference)65.06 ms24.31 ms-62.68% ๐ŸŸข
    MTTFB ํ‰๊ท ์ ์ธ ๋ณ€๋™๋ฅ  (Average Variability)13.73%7.67%-44.11% ๐ŸŸข

๐Ÿ“• ํ”„๋กœ์ ํŠธ๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ๋”ฐ๋กœ ๊ณต๋ถ€ ๋ฐ ์ •๋ฆฌํ•œ ํฌ์ŠคํŒ…

๊ทธ ๋ฐ–์— Reactor, R2DBC, Spring-WebFlux Transactional ์ฒ˜๋ฆฌ, K8S, AWS, etc.

๐Ÿ“— ํ”„๋กœ์ ํŠธ ์ง„ํ–‰ ํฌ์ŠคํŒ…


Table of contents