BE Resources - 3sam5oh/webtoon-search-service GitHub Wiki

JAVA(JDK)

  • version : jdk21

jdk21 ๊ณต์‹๋ฌธ์„œ ๋‹ค์šด๋กœ๋“œ

  • SequencedCollection ์ด ์ธํ„ฐํŽ˜์ด์Šค๋Š” ์ปฌ๋ ‰์…˜์˜ ์–‘์ชฝ ๋์— ์š”์†Œ๋ฅผ ์ถ”๊ฐ€, ๊ฒ€์ƒ‰, ์ œ๊ฑฐํ•˜๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • SequencedSet
  • SequencedMap



sequencedcollectiondiagram20220216






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






  • Type Pattern์„ ํ™œ์šฉํ• ์ˆ˜์žˆ๋„๋ก
  • ์˜ˆ์‹œ ๋‹ค์šด๋กœ๋“œ (1)
  • Garbage Collection

git๋งํฌ Naver D2




Spring Boot

  • version : 3.3.1




Lombok

  • version : 1.18.34




MapStruct

  • version : 1.5.5
  • mapstruct vs modelMapper
  1. ์ปดํŒŒ์ผ ์‹œ์  ๋งคํ•‘์ฝ”๋“œ ์ƒ์„ฑ -> ๋น ๋ฅธ ์„ฑ๋Šฅ, ์•ˆ์ „์„ฑ๋ณด์žฅ, ์˜ค๋ฅ˜๊ฐ์†Œ
  2. Annotation processor
  3. ๋ณต์žกํ•œ ๋งคํ•‘์— ๋” ์œ ์—ฐ.

*dependency implementation 'org.mapstruct:mapstruct:1.5.5.Final' annotationProcessor 'org.mapstruct:mapstruct-processor:1.5.5.Final'

// Lombok๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ )))lombok -> mapstruct ์ˆœ์œผ๋กœ annotationProcessor 'org.projectlombok:lombok-mapstruct-binding:0.2.0'




JWT

jjwt-api-0.11.5




Sops

version : 3.9.0 Sops




DB MySQL

version : 8.0.33




OpenSearch(with dependency)

opensearch 2.6.0

client5 > 5.2.1

opensearch-java Client User Guide

opensearch-starter


- ์˜์†์„ฑ ๋ ˆ์ด์–ด์—์„œ ์˜คํ”ˆ์„œ์น˜๋ฅผ ๊ตฌํ˜„ํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ curd ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋ฅผ ์ œ๊ณต, ์ ์šฉํ•  ๋ฒ„์ „ 1.5.1

spring-data-opensearch


Grafana Loki

  • version: 3.1.x

Grafana Loki ๊ณต์‹ ๋ฌธ์„œ

From GPT

  1. ํšจ์œจ์ ์ธ ๋กœ๊ทธ ์ €์žฅ
  • Loki๋Š” ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋งŒ ์ธ๋ฑ์‹ฑํ•˜๊ณ  ๋กœ๊ทธ ๋ฐ์ดํ„ฐ ์ž์ฒด๋Š” ์••์ถ•๋œ ํ˜•ํƒœ๋กœ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์ธ๋ฑ์‹ฑ์„ ์ตœ์†Œํ™”ํ•˜์—ฌ ์Šคํ† ๋ฆฌ์ง€์™€ ๊ฒ€์ƒ‰ ์„ฑ๋Šฅ์„ ์ตœ์ ํ™”ํ•ฉ๋‹ˆ๋‹ค.
  1. ๋น„์šฉ ์ ˆ๊ฐ
  • Loki๋Š” ๋กœ๊ทธ ๋ฐ์ดํ„ฐ์˜ ์ธ๋ฑ์‹ฑ์„ ์ตœ์†Œํ™”ํ•˜๊ธฐ ๋•Œ๋ฌธ์—, Elasticsearch์™€ ๊ฐ™์€ ๋‹ค๋ฅธ ๋กœ๊ทธ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์— ๋น„ํ•ด ์Šคํ† ๋ฆฌ์ง€ ๋น„์šฉ๊ณผ ์ธ๋ฑ์‹ฑ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ๋‚ฎ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๋Œ€๋Ÿ‰์˜ ๋กœ๊ทธ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ๊ด€๋ฆฌํ•  ๋•Œ ํฐ ๋น„์šฉ ์ ˆ๊ฐ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.
  1. Kubernetes ์นœํ™”์ 
  • Loki๋Š” Kubernetes ํ™˜๊ฒฝ๊ณผ ๊ธด๋ฐ€ํ•˜๊ฒŒ ํ†ตํ•ฉ๋˜๋„๋ก ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Prometheus์™€ ์œ ์‚ฌํ•œ ๋ผ๋ฒจ๋ง ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜์—ฌ, Kubernetes์—์„œ ๋กœ๊ทธ ๋ฐ์ดํ„ฐ๋ฅผ ์‰ฝ๊ฒŒ ์ˆ˜์ง‘ํ•˜๊ณ  ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  1. Grafana์™€์˜ ํ†ตํ•ฉ
  • Loki๋Š” Grafana์™€ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ํ†ตํ•ฉ๋ฉ๋‹ˆ๋‹ค. Grafana ๋Œ€์‹œ๋ณด๋“œ๋ฅผ ํ†ตํ•ด Loki์— ์ €์žฅ๋œ ๋กœ๊ทธ ๋ฐ์ดํ„ฐ๋ฅผ ์‰ฝ๊ฒŒ ์‹œ๊ฐํ™”ํ•˜๊ณ  ๋ถ„์„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๋กœ๊ทธ ๋ฐ์ดํ„ฐ์™€ ๋ฉ”ํŠธ๋ฆญ ๋ฐ์ดํ„ฐ๋ฅผ ํ†ตํ•ฉํ•˜์—ฌ ๋ชจ๋‹ˆํ„ฐ๋ง ํ™˜๊ฒฝ์„ ๋‹จ์ˆœํ™”ํ•ฉ๋‹ˆ๋‹ค.
  1. ๊ฐ„๋‹จํ•œ ์•„ํ‚คํ…์ฒ˜
  • Loki๋Š” ๋ณต์žกํ•œ ์ธํ”„๋ผ ๊ตฌ์„ฑ์ด ํ•„์š”ํ•˜์ง€ ์•Š์œผ๋ฉฐ, ์„ค์ •์ด ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๋น ๋ฅด๊ฒŒ ์„ค์ •ํ•˜๊ณ  ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ค๋‹ˆ๋‹ค.
  1. ๋‹ค์–‘ํ•œ ๋กœ๊ทธ ์ˆ˜์ง‘ ๋„๊ตฌ์™€ ํ†ตํ•ฉ
  • Loki๋Š” Fluentd, Fluent Bit, Promtail ๋“ฑ ๋‹ค์–‘ํ•œ ๋กœ๊ทธ ์ˆ˜์ง‘ ๋„๊ตฌ์™€ ํ†ตํ•ฉ๋˜์–ด, ๋‹ค์–‘ํ•œ ์†Œ์Šค์—์„œ ๋กœ๊ทธ ๋ฐ์ดํ„ฐ๋ฅผ ์‰ฝ๊ฒŒ ์ˆ˜์ง‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  1. ์ „์ฒด ํ…์ŠคํŠธ ๊ฒ€์ƒ‰์ด ํ•„์š” ์—†๋Š” ๊ฒฝ์šฐ
  • Loki๋Š” ์ „์ฒด ํ…์ŠคํŠธ ๊ฒ€์ƒ‰์„ ์ œ๊ณตํ•˜์ง€ ์•Š์ง€๋งŒ, ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ๊ธฐ๋ฐ˜์˜ ํ•„ํ„ฐ๋ง์„ ํ†ตํ•ด ํšจ์œจ์ ์œผ๋กœ ๋กœ๊ทธ๋ฅผ ์กฐํšŒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์ „์ฒด ํ…์ŠคํŠธ ๊ฒ€์ƒ‰์ด ํ•„์š” ์—†๋Š” ๋กœ๊ทธ ๋ฐ์ดํ„ฐ์— ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.

๊ฒฐ๋ก 

  • Loki๋Š” ๋กœ๊ทธ ๋ฐ์ดํ„ฐ์˜ ์ €์žฅ ๋ฐ ๊ด€๋ฆฌ๋ฅผ ๋ณด๋‹ค ํšจ์œจ์ ์ด๊ณ  ๊ฒฝ์ œ์ ์œผ๋กœ ํ•  ์ˆ˜ ์žˆ๋Š” ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. Kubernetes ํ™˜๊ฒฝ๊ณผ์˜ ๋›ฐ์–ด๋‚œ ํ†ตํ•ฉ์„ฑ, Grafana์™€์˜ ์›ํ™œํ•œ ์—ฐ๋™, ๊ทธ๋ฆฌ๊ณ  ๋‚ฎ์€ ์Šคํ† ๋ฆฌ์ง€ ๋น„์šฉ ๋•๋ถ„์— ๋งŽ์€ ์กฐ์ง์—์„œ Loki๋ฅผ ์„ ํƒํ•˜์—ฌ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ „์ฒด ํ…์ŠคํŠธ ๊ฒ€์ƒ‰์ด ํ•„์š” ์—†๋Š” ๋กœ๊ทธ ๋ฐ์ดํ„ฐ์˜ ๊ฒฝ์šฐ, Loki๋Š” ํŠนํžˆ ์ ํ•ฉํ•œ ์†”๋ฃจ์…˜์ž…๋‹ˆ๋‹ค.

์˜๊ฒฌ

  • ๋กœ๊ทธ์˜ ์ „์ฒด ํ…์ŠคํŠธ ๊ฒ€์ƒ‰์ด ํ•„์š” ์—†๋‹ค๋ฉด ๋‹ค๋ฅธ ๋กœ๊ทธ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์— ๋น„ํ•ด ๊ฐ€๋ฒผ์šด Loki๋งŒ ์‚ฌ์šฉํ•˜๋Š”๊ฒŒ ์–ด๋–จ๊นŒ ์‹ถ์Šต๋‹ˆ๋‹ค.




Redis

  • version: 7.2.5

Redis ๊ณต์‹ ๋ฌธ์„œ




Nginx

  • version: 1.27.0

Nginx ๊ณต์‹ ๋ฌธ์„œ

Nginx Github




Logstash / Fluent Bit

Logstash

  • version: 8.14

Logstash ๊ณต์‹ ๋ฌธ์„œ


Fluent Bit

  • version: 3.0.x

Fluent Bit ๊ณต์‹ ๋ฌธ์„œ


Fluent Bit vs Logstash (feat. GPT)

Fluent Bit๊ณผ Logstash๋Š” ๋ชจ๋‘ ๋กœ๊ทธ ๋ฐ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘, ์ฒ˜๋ฆฌ, ์ „์†ก์„ ์œ„ํ•œ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ๋‘ ๋„๊ตฌ์˜ ํŠน์ง•๊ณผ ์ฐจ์ด์ ์„ ๋น„๊ตํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

Fluent Bit:

  1. ๊ฒฝ๋Ÿ‰ํ™”:

    • C๋กœ ์ž‘์„ฑ๋˜์–ด ๋งค์šฐ ์ž‘์€ ๋ฉ”๋ชจ๋ฆฌ ํ’‹ํ”„๋ฆฐํŠธ (์•ฝ 650KB)
    • ๋ฆฌ์†Œ์Šค ์‚ฌ์šฉ์ด ์ ์Œ
  2. ์†๋„:

    • ๋น ๋ฅธ ์ฒ˜๋ฆฌ ์†๋„
  3. ํ”Œ๋žซํผ:

    • ๋‹ค์–‘ํ•œ ํ”Œ๋žซํผ ์ง€์› (Linux, Windows, macOS, ์ž„๋ฒ ๋””๋“œ ์‹œ์Šคํ…œ)
  4. ์‚ฌ์šฉ ์‚ฌ๋ก€:

    • ์ฃผ๋กœ ์—ฃ์ง€ ์ปดํ“จํŒ…, IoT, ์ปจํ…Œ์ด๋„ˆ ํ™˜๊ฒฝ์—์„œ ์‚ฌ์šฉ
  5. ์„ค์ •:

    • ๋น„๊ต์  ๊ฐ„๋‹จํ•œ ์„ค์ •
  6. ํ”Œ๋Ÿฌ๊ทธ์ธ:

    • ์ œํ•œ๋œ ์ˆ˜์˜ ํ”Œ๋Ÿฌ๊ทธ์ธ, ํ•˜์ง€๋งŒ ํ•„์ˆ˜์ ์ธ ๊ฒƒ๋“ค์€ ํฌํ•จ
  7. ํ™•์žฅ์„ฑ:

    • C๋กœ ํ”Œ๋Ÿฌ๊ทธ์ธ ๊ฐœ๋ฐœ ๊ฐ€๋Šฅ

Logstash:

  1. ๋ฆฌ์†Œ์Šค ์‚ฌ์šฉ:

    • Java ๊ธฐ๋ฐ˜์œผ๋กœ ์ƒ๋Œ€์ ์œผ๋กœ ํฐ ๋ฉ”๋ชจ๋ฆฌ ํ’‹ํ”„๋ฆฐํŠธ
    • ๋ฆฌ์†Œ์Šค ์‚ฌ์šฉ๋Ÿ‰์ด ๋” ๋งŽ์Œ
  2. ๊ธฐ๋Šฅ:

    • ๋” ํ’๋ถ€ํ•œ ๊ธฐ๋Šฅ๊ณผ ๋‹ค์–‘ํ•œ ํ”Œ๋Ÿฌ๊ทธ์ธ ์ œ๊ณต
  3. ํ”Œ๋žซํผ:

    • ์ฃผ๋กœ ์„œ๋ฒ„ ํ™˜๊ฒฝ์—์„œ ์‚ฌ์šฉ
  4. ์‚ฌ์šฉ ์‚ฌ๋ก€:

    • ๋Œ€๊ทœ๋ชจ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ, ๋ณต์žกํ•œ ๋ฐ์ดํ„ฐ ๋ณ€ํ™˜ ์ž‘์—…์— ์ ํ•ฉ
  5. ์„ค์ •:

    • ๋” ๋ณต์žกํ•˜๊ณ  ์ƒ์„ธํ•œ ์„ค์ • ๊ฐ€๋Šฅ
  6. ํ”Œ๋Ÿฌ๊ทธ์ธ:

    • ๋งค์šฐ ๋‹ค์–‘ํ•˜๊ณ  ํ’๋ถ€ํ•œ ํ”Œ๋Ÿฌ๊ทธ์ธ ์ƒํƒœ๊ณ„
  7. ํ™•์žฅ์„ฑ:

    • Ruby๋กœ ํ”Œ๋Ÿฌ๊ทธ์ธ ๊ฐœ๋ฐœ ๊ฐ€๋Šฅ
  8. Elastic Stack:

    • Elasticsearch, Kibana์™€ ํ•จ๊ป˜ ELK ์Šคํƒ์˜ ์ผ๋ถ€๋กœ ์ž์ฃผ ์‚ฌ์šฉ

์ฃผ์š” ์ฐจ์ด์ :

  1. ์„ฑ๋Šฅ๊ณผ ๋ฆฌ์†Œ์Šค ์‚ฌ์šฉ:

    • Fluent Bit: ๋” ๊ฐ€๋ณ๊ณ  ๋น ๋ฆ„, ์ ์€ ๋ฆฌ์†Œ์Šค ์‚ฌ์šฉ
    • Logstash: ๋” ๋งŽ์€ ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ฌ์šฉํ•˜์ง€๋งŒ ๋ณต์žกํ•œ ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅ
  2. ์‚ฌ์šฉ ํ™˜๊ฒฝ:

    • Fluent Bit: ์ œํ•œ๋œ ๋ฆฌ์†Œ์Šค ํ™˜๊ฒฝ, ์—ฃ์ง€ ์ปดํ“จํŒ…, ์ปจํ…Œ์ด๋„ˆ์— ์ ํ•ฉ
    • Logstash: ์„œ๋ฒ„ ํ™˜๊ฒฝ, ๋Œ€๊ทœ๋ชจ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ์— ์ ํ•ฉ
  3. ๊ธฐ๋Šฅ์˜ ๋ณต์žก์„ฑ:

    • Fluent Bit: ๊ฐ„๋‹จํ•˜๊ณ  ์ง๊ด€์ ์ธ ์„ค์ •
    • Logstash: ๋” ๋ณต์žกํ•˜์ง€๋งŒ ๊ฐ•๋ ฅํ•œ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ๊ธฐ๋Šฅ
  4. ํ”Œ๋Ÿฌ๊ทธ์ธ ์ƒํƒœ๊ณ„:

    • Fluent Bit: ์ œํ•œ์ ์ด์ง€๋งŒ ํ•„์ˆ˜์ ์ธ ํ”Œ๋Ÿฌ๊ทธ์ธ ์ œ๊ณต
    • Logstash: ๋งค์šฐ ๋‹ค์–‘ํ•˜๊ณ  ํ’๋ถ€ํ•œ ํ”Œ๋Ÿฌ๊ทธ์ธ ์ƒํƒœ๊ณ„
  5. ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ๋Šฅ๋ ฅ:

    • Fluent Bit: ๊ธฐ๋ณธ์ ์ธ ํ•„ํ„ฐ๋ง๊ณผ ๋ณ€ํ™˜
    • Logstash: ๋ณต์žกํ•œ ๋ฐ์ดํ„ฐ ๋ณ€ํ™˜, ํ’๋ถ€ํ•œ ํ•„ํ„ฐ ์˜ต์…˜

์„ ํƒ ๊ธฐ์ค€:

  • ๋ฆฌ์†Œ์Šค๊ฐ€ ์ œํ•œ๋œ ํ™˜๊ฒฝ์ด๋‚˜ ๊ฒฝ๋Ÿ‰ํ™”๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ Fluent Bit์„ ์„ ํƒ
  • ๋ณต์žกํ•œ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ๋‚˜ ๋ณ€ํ™˜์ด ํ•„์š”ํ•œ ๋Œ€๊ทœ๋ชจ ํ™˜๊ฒฝ์—์„œ๋Š” Logstash๋ฅผ ์„ ํƒ
  • ์ปจํ…Œ์ด๋„ˆ ํ™˜๊ฒฝ์ด๋‚˜ ์—ฃ์ง€ ์ปดํ“จํŒ…์—๋Š” Fluent Bit์ด ๋” ์ ํ•ฉ
  • ELK ์Šคํƒ์„ ์™„์ „ํžˆ ํ™œ์šฉํ•˜๊ณ ์ž ํ•œ๋‹ค๋ฉด Logstash๊ฐ€ ๋” ์ ํ•ฉ
  • ๊ฐ„๋‹จํ•œ ๋กœ๊ทธ ์ˆ˜์ง‘ ๋ฐ ์ „์†ก๋งŒ ํ•„์š”ํ•˜๋‹ค๋ฉด Fluent Bit์œผ๋กœ ์ถฉ๋ถ„
  • ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ ์†Œ์Šค์™€ ๋ณต์žกํ•œ ๋ฐ์ดํ„ฐ ํŒŒ์ดํ”„๋ผ์ธ์ด ํ•„์š”ํ•˜๋‹ค๋ฉด Logstash๊ฐ€ ๋” ์ ํ•ฉ

์‹ค์ œ ์‚ฌ์šฉ ์‹œ๋‚˜๋ฆฌ์˜ค:

  1. ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ์‚ฌ์šฉ: ๋งŽ์€ ์กฐ์ง์—์„œ๋Š” Fluent Bit๊ณผ Logstash๋ฅผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. Fluent Bit์„ ์—ฃ์ง€๋‚˜ ์†Œ์Šค์— ๊ฐ€๊นŒ์šด ๊ณณ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•˜๊ณ , ์ด๋ฅผ ์ค‘์•™ Logstash ์ธ์Šคํ„ด์Šค๋กœ ์ „์†กํ•˜์—ฌ ๋” ๋ณต์žกํ•œ ์ฒ˜๋ฆฌ๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

  2. ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ํ™˜๊ฒฝ: ์ปจํ…Œ์ด๋„ˆํ™”๋œ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜์—์„œ๋Š” ๊ฐ ์„œ๋น„์Šค ์ปจํ…Œ์ด๋„ˆ์— Fluent Bit์„ ์‚ฌ์ด๋“œ์นด๋กœ ๋ฐฐํฌํ•˜์—ฌ ๋กœ๊ทธ๋ฅผ ์ˆ˜์ง‘ํ•˜๊ณ , ์ค‘์•™ ๋กœ๊ทธ ์ €์žฅ์†Œ๋‚˜ ๋ถ„์„ ์‹œ์Šคํ…œ์œผ๋กœ ์ „์†กํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  3. IoT ํ™˜๊ฒฝ: ๋ฆฌ์†Œ์Šค๊ฐ€ ์ œํ•œ๋œ IoT ๋””๋ฐ”์ด์Šค์—์„œ๋Š” Fluent Bit์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘ํ•˜๊ณ  ์ค‘์•™ ์‹œ์Šคํ…œ์œผ๋กœ ์ „์†กํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  4. ๋Œ€๊ทœ๋ชจ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ: ๋Œ€๋Ÿ‰์˜ ๋กœ๊ทธ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ณ  ๋ณต์žกํ•œ ๋ณ€ํ™˜์ด ํ•„์š”ํ•œ ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ํ™˜๊ฒฝ์—์„œ๋Š” Logstash๊ฐ€ ๋” ์ ํ•ฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฒฐ๋ก : Fluent Bit๊ณผ Logstash๋Š” ๊ฐ๊ฐ์˜ ๊ฐ•์ ์ด ์žˆ๋Š” ๊ฐ•๋ ฅํ•œ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ์„ ํƒ์€ ํ”„๋กœ์ ํŠธ์˜ ์š”๊ตฌ์‚ฌํ•ญ, ์ธํ”„๋ผ ํ™˜๊ฒฝ, ์ฒ˜๋ฆฌํ•ด์•ผ ํ•  ๋ฐ์ดํ„ฐ์˜ ๋ณต์žก์„ฑ ๋“ฑ์„ ๊ณ ๋ คํ•˜์—ฌ ์ด๋ฃจ์–ด์ ธ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋•Œ๋กœ๋Š” ๋‘ ๋„๊ตฌ๋ฅผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ๊ฐ์˜ ์žฅ์ ์„ ์ตœ๋Œ€ํ•œ ํ™œ์šฉํ•˜๋Š” ๊ฒƒ๋„ ์ข‹์€ ์ „๋žต์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ค‘์š”ํ•œ ๊ฒƒ์€ ์ž์‹ ์˜ ์‚ฌ์šฉ ์‚ฌ๋ก€์™€ ํ™˜๊ฒฝ์— ๊ฐ€์žฅ ์ ํ•ฉํ•œ ๋„๊ตฌ๋‚˜ ์กฐํ•ฉ์„ ์„ ํƒํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์˜๊ฒฌ

  • ์œ„ ํ† ๊ธ€ ๋‚ด์šฉ์„ ๊ณ ๋ คํ•˜์—ฌ ๊ฐ„๋‹จํ•œ ๋กœ๊ทธ ์ˆ˜์ง‘ ๋ฐ ์ „์†ก์šฉ์œผ๋กœ ์ถฉ๋ถ„ํ•˜๊ณ , ๋ฆฌ์†Œ์Šค ์‚ฌ์šฉ์ด ์ ๊ณ  ๋น ๋ฅธ ์ฒ˜๋ฆฌ ์†๋„๋ฅผ ๊ฐ€์ง„ Fluent Bit ์‚ฌ์šฉ์ด ์–ด๋–จ๊นŒ ์‹ถ์Šต๋‹ˆ๋‹ค.




Docker

  • version: 27.0.3

Docker ๊ณต์‹ ๋ฌธ์„œ




K8s

  • version: 1.30

Kubernetes ๊ณต์‹ ๋ฌธ์„œ

Amazon EKS




Grafana, Prometheus (๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ ์‹œ๊ฐํ™”)

Grafana

  • version: 11.1

Grafana ๊ณต์‹ ๋ฌธ์„œ


Prometheus

  • version: 2.53
  • Dependencies
    • implementation 'org.springframework.boot:spring-boot-starter-actuator'    // Promethesus์—์„œ ์‚ฌ์šฉํ•  ๋ฉ”ํŠธ๋ฆญ ์ •๋ณด๋ฅผ ์œ„ํ•ด
    • implementation 'io.micrometer:micrometer-registry-prometheus'

Prometheus ๊ณต์‹ ๋ฌธ์„œ




Grafana k6 (๋ถ€ํ•˜ ํ…Œ์ŠคํŠธ)

  • version: 0.52.x
  • CLI ๋„๊ตฌ๋กœ ์„ค์น˜ํ•ด์„œ ์‚ฌ์šฉ
  • Javasccript ์‚ฌ์šฉ

Grafana k6 ๊ณต์‹ ๋ฌธ์„œ

์˜๊ฒฌ

  • ์Šคํ„ฐ๋”” ํ•„์š”

From GPT

Grafana k6๋Š” ์˜คํ”ˆ ์†Œ์Šค ์„ฑ๋Šฅ ํ…Œ์ŠคํŠธ ๋„๊ตฌ๋กœ, ๊ฐœ๋ฐœ์ž์™€ DevOps ํŒ€์ด ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜, API ๋ฐ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์˜ ์„ฑ๋Šฅ์„ ํ…Œ์ŠคํŠธํ•˜๊ณ  ๋ชจ๋‹ˆํ„ฐ๋งํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Grafana Labs๊ฐ€ ์ธ์ˆ˜ํ•˜์—ฌ Grafana ์ƒํƒœ๊ณ„์˜ ์ผ๋ถ€๊ฐ€ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ฃผ์š” ๊ธฐ๋Šฅ๊ณผ ํŠน์ง•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ฃผ์š” ๊ธฐ๋Šฅ ๋ฐ ํŠน์ง•

  1. ์Šคํฌ๋ฆฝํŠธ ๊ธฐ๋ฐ˜ ํ…Œ์ŠคํŠธ:

    • k6๋Š” JavaScript๋กœ ์ž‘์„ฑ๋œ ํ…Œ์ŠคํŠธ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๊ฐœ๋ฐœ์ž๋“ค์ด ์นœ์ˆ™ํ•œ ์–ธ์–ด๋ฅผ ํ†ตํ•ด ํ…Œ์ŠคํŠธ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ์œ ์ง€ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค.
  2. ํ™•์žฅ์„ฑ:

    • k6๋Š” ๋‹จ์ผ ์ธ์Šคํ„ด์Šค์—์„œ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ํ•„์š”์— ๋”ฐ๋ผ ๋ถ„์‚ฐ๋œ ํ™˜๊ฒฝ์—์„œ ์ˆ˜์ฒœ ๊ฐœ์˜ ๋™์‹œ ๊ฐ€์ƒ ์‚ฌ์šฉ์ž๋ฅผ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  3. ๊ฒฐ๊ณผ ์‹œ๊ฐํ™” ๋ฐ ๋ชจ๋‹ˆํ„ฐ๋ง:

    • k6๋Š” ๋‹ค์–‘ํ•œ ๋ฐฑ์—”๋“œ์— ๊ฒฐ๊ณผ๋ฅผ ๋ณด๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Grafana์™€ ํ†ตํ•ฉํ•˜์—ฌ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์„ฑ๋Šฅ ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ๋ฅผ ์‹œ๊ฐํ™”ํ•˜๊ณ  ๋ชจ๋‹ˆํ„ฐ๋งํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  4. ์‚ฌ์šฉ์ž ์‹œ๋‚˜๋ฆฌ์˜ค ์‹œ๋ฎฌ๋ ˆ์ด์…˜:

    • ๋ณต์žกํ•œ ์‚ฌ์šฉ์ž ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ์‰ฝ๊ฒŒ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ํ•  ์ˆ˜ ์žˆ์–ด, ๋‹ค์–‘ํ•œ ์‚ฌ์šฉ์ž ํ–‰๋™ ํŒจํ„ด์„ ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  5. ์ž๋™ํ™”:

    • CI/CD ํŒŒ์ดํ”„๋ผ์ธ์— ์‰ฝ๊ฒŒ ํ†ตํ•ฉํ•  ์ˆ˜ ์žˆ์–ด, ์ง€์†์ ์ธ ์„ฑ๋Šฅ ํ…Œ์ŠคํŠธ๊ฐ€ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.
  6. ๊ฒฝ๋Ÿ‰ํ™”:

    • k6๋Š” ๊ฒฝ๋Ÿ‰ํ™”๋œ ๋„๊ตฌ๋กœ, ์„ฑ๋Šฅ ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•  ๋•Œ ์ตœ์†Œํ•œ์˜ ์‹œ์Šคํ…œ ์ž์›์„ ์‚ฌ์šฉํ•˜์—ฌ ํšจ์œจ์„ฑ์„ ๊ทน๋Œ€ํ™”ํ•ฉ๋‹ˆ๋‹ค.
  7. ๋‹ค์–‘ํ•œ ํ”„๋กœํ† ์ฝœ ์ง€์›:

    • HTTP/1.1, HTTP/2, WebSocket ๋“ฑ์„ ์ง€์›ํ•˜์—ฌ ๋‹ค์–‘ํ•œ ์œ ํ˜•์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‚ฌ์šฉ ์‚ฌ๋ก€

  1. ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„ฑ๋Šฅ ํ…Œ์ŠคํŠธ:

    • ๋‹ค์–‘ํ•œ ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ํ†ตํ•ด ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์„ฑ๋Šฅ์„ ํ…Œ์ŠคํŠธํ•˜๊ณ  ๋ณ‘๋ชฉ ์ง€์ ์„ ์ฐพ์•„๋ƒ…๋‹ˆ๋‹ค.
  2. API ๋ถ€ํ•˜ ํ…Œ์ŠคํŠธ:

    • RESTful ๋ฐ GraphQL API์˜ ์„ฑ๋Šฅ์„ ํ…Œ์ŠคํŠธํ•˜๊ณ , ๋†’์€ ๋ถ€ํ•˜ ์‹œ์˜ ์‘๋‹ต ์‹œ๊ฐ„์„ ๋ถ„์„ํ•ฉ๋‹ˆ๋‹ค.
  3. ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ํ…Œ์ŠคํŠธ:

    • ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜์˜ ์„ฑ๋Šฅ์„ ํ…Œ์ŠคํŠธํ•˜์—ฌ ์„œ๋น„์Šค ๊ฐ„์˜ ์ƒํ˜ธ์ž‘์šฉ ๋ฐ ์˜์กด์„ฑ์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
  4. CI/CD ํ†ตํ•ฉ:

    • ์ง€์†์ ์ธ ๋ฐฐํฌ ํŒŒ์ดํ”„๋ผ์ธ์— ์„ฑ๋Šฅ ํ…Œ์ŠคํŠธ๋ฅผ ํ†ตํ•ฉํ•˜์—ฌ, ์ƒˆ๋กœ์šด ๋ฆด๋ฆฌ์Šค๊ฐ€ ์„ฑ๋Šฅ์— ๋ฏธ์น˜๋Š” ์˜ํ–ฅ์„ ๋ฏธ๋ฆฌ ํŒŒ์•…ํ•ฉ๋‹ˆ๋‹ค.

Grafana์™€์˜ ํ†ตํ•ฉ

k6๋Š” Grafana์™€ ์›ํ™œํ•˜๊ฒŒ ํ†ตํ•ฉ๋˜์–ด, ์„ฑ๋Šฅ ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ๋ฅผ Grafana ๋Œ€์‹œ๋ณด๋“œ๋ฅผ ํ†ตํ•ด ์‹ค์‹œ๊ฐ„์œผ๋กœ ์‹œ๊ฐํ™”ํ•˜๊ณ  ๋ถ„์„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์„ฑ๋Šฅ ํ…Œ์ŠคํŠธ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฅธ ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ์ดํ„ฐ์™€ ํ•จ๊ป˜ ๋ถ„์„ํ•  ์ˆ˜ ์žˆ์–ด, ์‹œ์Šคํ…œ ์„ฑ๋Šฅ์„ ๋ณด๋‹ค ์ข…ํ•ฉ์ ์œผ๋กœ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฒฐ๋ก 

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




Amazon S3(with dependency)

Amazon S3

  1. ์ฃผ์š” ๋ชฉ์ : ์ผ๋ฐ˜์ ์ธ ๋ฐ์ดํ„ฐ ์ €์žฅ ๋ฐ ์•ก์„ธ์Šค
  2. ์•ก์„ธ์Šค ์†๋„: ์ฆ‰์‹œ ๋˜๋Š” ๊ฑฐ์˜ ์ฆ‰์‹œ ์•ก์„ธ์Šค ๊ฐ€๋Šฅ (๋ฐ€๋ฆฌ์ดˆ ๋‹จ์œ„)
  3. ๋น„์šฉ: ๊ณ ๊ฐ€์šฉ์„ฑ ๋ฐ ์‹ ์†ํ•œ ์•ก์„ธ์Šค๋ฅผ ์ œ๊ณตํ•˜๋ฏ€๋กœ ๋น„๊ต์  ๋†’์€ ๋น„์šฉ
  4. ์‚ฌ์šฉ ์‚ฌ๋ก€: ์ž์ฃผ ์•ก์„ธ์Šคํ•ด์•ผ ํ•˜๋Š” ๋ฐ์ดํ„ฐ, ์›น ์‚ฌ์ดํŠธ ์ฝ˜ํ…์ธ , ๋ฐ์ดํ„ฐ ๋ฐฑ์—… ๋ฐ ๋ณต๊ตฌ, ๋น…๋ฐ์ดํ„ฐ ๋ถ„์„, ๋ชจ๋ฐ”์ผ ๋ฐ IoT ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ
  5. ์Šคํ† ๋ฆฌ์ง€ ํด๋ž˜์Šค: ์—ฌ๋Ÿฌ ์Šคํ† ๋ฆฌ์ง€ ํด๋ž˜์Šค๊ฐ€ ์žˆ์–ด ์‚ฌ์šฉ ํŒจํ„ด์— ๋”ฐ๋ผ ๋น„์šฉ ์ตœ์ ํ™” ๊ฐ€๋Šฅ. ์˜ˆ๋ฅผ ๋“ค์–ด, Standard, Standard-IA (Infrequent Access), One Zone-IA, Intelligent-Tiering ๋“ฑ

Amazon S3 Glacier

  1. ์ฃผ์š” ๋ชฉ์ : ์žฅ๊ธฐ ์•„์นด์ด๋น™ ๋ฐ ๋ฐฑ์—…, ๋“œ๋ฌผ๊ฒŒ ์•ก์„ธ์Šคํ•˜๋Š” ๋ฐ์ดํ„ฐ ์ €์žฅ
  2. ์•ก์„ธ์Šค ์†๋„: ๋Š๋ฆฐ ์•ก์„ธ์Šค ์‹œ๊ฐ„. Standard, Bulk, Expedited ์„ธ ๊ฐ€์ง€ ๋ณต๊ตฌ ์˜ต์…˜์ด ์žˆ์œผ๋ฉฐ, ๋ช‡ ๋ถ„์—์„œ ๋ช‡ ์‹œ๊ฐ„๊นŒ์ง€ ๊ฑธ๋ฆด ์ˆ˜ ์žˆ์Œ
  3. ๋น„์šฉ: ๋งค์šฐ ์ €๋ ดํ•œ ๋น„์šฉ. ์ฃผ๋กœ ์žฅ๊ธฐ ๋ณด๊ด€์„ ์œ„ํ•œ ์ €๋น„์šฉ ์Šคํ† ๋ฆฌ์ง€
  4. ์‚ฌ์šฉ ์‚ฌ๋ก€: ๋ฒ•์  ๊ทœ์ œ ์ค€์ˆ˜๋ฅผ ์œ„ํ•œ ๋ฐ์ดํ„ฐ ๋ณด๊ด€, ๋””์ง€ํ„ธ ์ž์‚ฐ ์•„์นด์ด๋น™, ๋กœ๊ทธ ๋ฐ ๋ถ„์„ ๋ฐ์ดํ„ฐ ์žฅ๊ธฐ ์ €์žฅ
  5. ์Šคํ† ๋ฆฌ์ง€ ํด๋ž˜์Šค: Glacier ๋ฐ Glacier Deep Archive. Glacier Deep Archive๋Š” Glacier๋ณด๋‹ค ๋” ์ €๋ ดํ•˜์ง€๋งŒ ๋ณต๊ตฌ ์‹œ๊ฐ„์ด ๋” ์˜ค๋ž˜ ๊ฑธ๋ฆผ

๋ณต๊ตฌ ์‹œ๊ฐ„

Amazon S3 Glacier

  • Expedited: ๋ช‡ ๋ถ„ ์ด๋‚ด์— ์•ก์„ธ์Šค ๊ฐ€๋Šฅ
  • Standard: 3~5์‹œ๊ฐ„ ๋‚ด์— ์•ก์„ธ์Šค ๊ฐ€๋Šฅ
  • Bulk: 5~12์‹œ๊ฐ„ ๋‚ด์— ์•ก์„ธ์Šค ๊ฐ€๋Šฅ

Amazon S3 Glacier Deep Archive

  • Standard: 12์‹œ๊ฐ„ ์ด๋‚ด์— ์•ก์„ธ์Šค ๊ฐ€๋Šฅ
  • Bulk: 48์‹œ๊ฐ„ ์ด๋‚ด์— ์•ก์„ธ์Šค ๊ฐ€๋Šฅ

S3 Pricing

แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2024-07-09 แ„‹แ…ฉแ„’แ…ฎ 3 57 46 แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2024-07-09 แ„‹แ…ฉแ„’แ…ฎ 3 58 10

Dependencies

  • implementation(platform("software.amazon.awssdk:bom:2.21.1"))
  • implementation("software.amazon.awssdk:s3")

aws-sdk-java-v2 Github

AWS SDK JDK 21 support

แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2024-07-09 แ„‹แ…ฉแ„’แ…ฎ 5 13 53

์˜๊ฒฌ

  • ๋ฐ์ดํ„ฐ ์•ก์„ธ์Šค๊ฐ€ ์žฆ์ง€ ์•Š๊ณ  ๋กœ๊ทธ ํŒŒ์ผ ์•„์นด์ด๋น™ ์šฉ๋„๋กœ ์‚ฌ์šฉํ•˜๊ธฐ์— ๋น„์šฉ์ด ๋” ์ €๋ ดํ•œ Amazon S3 Glacier ์‚ฌ์šฉ์ด ์ ์ ˆํ•  ๋“ฏ ํ•ฉ๋‹ˆ๋‹ค.




LLM - Open AI / Ollama(Llama3 8B)

Open AI

  • version: 4.0.0

Open AI API Pricing

แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2024-07-09 แ„‹แ…ฉแ„’แ…ฎ 2 34 57 แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2024-07-09 แ„‹แ…ฉแ„’แ…ฎ 2 35 16

Ollama(Llama3 8B)

Ollama Github, Llama 3 Requirements

แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2024-07-09 แ„‹แ…ฉแ„’แ…ฎ 2 46 44 แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2024-07-09 แ„‹แ…ฉแ„’แ…ฎ 2 46 21

์˜๊ฒฌ

  • ํ”„๋กœ์ ํŠธ ์ง„ํ–‰ ์‹œ ์‚ฌ์šฉ token์€ 100๋งŒ๊ฑด์œผ๋กœ ์ถฉ๋ถ„ํ•  ๋“ฏํ•˜์—ฌ 5๋‹ฌ๋Ÿฌ ์ง€๋ถˆํ•˜๊ณ  GPT ์‚ฌ์šฉํ•˜๋Š”๊ฒŒ ์ข‹์•„๋ณด์ž…๋‹ˆ๋‹ค.
โš ๏ธ **GitHub.com Fallback** โš ๏ธ