BE Resources - 3sam5oh/webtoon-search-service GitHub Wiki
- version : jdk21
jdk21 ๊ณต์๋ฌธ์ ๋ค์ด๋ก๋
- SequencedCollection ์ด ์ธํฐํ์ด์ค๋ ์ปฌ๋ ์ ์ ์์ชฝ ๋์ ์์๋ฅผ ์ถ๊ฐ, ๊ฒ์, ์ ๊ฑฐํ๋ ๋ฉ์๋๋ฅผ ์ ๊ณตํฉ๋๋ค.
- SequencedSet
- SequencedMap
๊ฐ์ ์ค๋ ๋๋ ์์คํ ์ ์ต์ํ์ ์ค๋ฒํค๋๋ฅผ ๊ฐํ๊ธฐ ๋๋ฌธ์ ํ ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ฒ ๊ฐ์ ์ค๋ ๋๋ฅผ ๊ฐ์ง ์ ์์ต๋๋ค.
- Type Pattern์ ํ์ฉํ ์์๋๋ก
- ์์
- Garbage Collection
- version : 3.3.1
- version : 1.18.34
- version : 1.5.5
- mapstruct vs modelMapper
- ์ปดํ์ผ ์์ ๋งคํ์ฝ๋ ์์ฑ -> ๋น ๋ฅธ ์ฑ๋ฅ, ์์ ์ฑ๋ณด์ฅ, ์ค๋ฅ๊ฐ์
- Annotation processor
- ๋ณต์กํ ๋งคํ์ ๋ ์ ์ฐ.
*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'
jjwt-api-0.11.5
version : 3.9.0 Sops
version : 8.0.33
opensearch-java Client User Guide
- ์์์ฑ ๋ ์ด์ด์์ ์คํ์์น๋ฅผ ๊ตฌํํ๋๋ฐ ํ์ํ curd ๋ ํฌ์งํ ๋ฆฌ๋ฅผ ์ ๊ณต, ์ ์ฉํ ๋ฒ์ 1.5.1
- version: 3.1.x
- ํจ์จ์ ์ธ ๋ก๊ทธ ์ ์ฅ
- Loki๋ ๋ฉํ๋ฐ์ดํฐ๋ง ์ธ๋ฑ์ฑํ๊ณ ๋ก๊ทธ ๋ฐ์ดํฐ ์์ฒด๋ ์์ถ๋ ํํ๋ก ์ ์ฅํฉ๋๋ค. ์ด๋ ์ธ๋ฑ์ฑ์ ์ต์ํํ์ฌ ์คํ ๋ฆฌ์ง์ ๊ฒ์ ์ฑ๋ฅ์ ์ต์ ํํฉ๋๋ค.
- ๋น์ฉ ์ ๊ฐ
- Loki๋ ๋ก๊ทธ ๋ฐ์ดํฐ์ ์ธ๋ฑ์ฑ์ ์ต์ํํ๊ธฐ ๋๋ฌธ์, Elasticsearch์ ๊ฐ์ ๋ค๋ฅธ ๋ก๊ทธ ๊ด๋ฆฌ ์์คํ ์ ๋นํด ์คํ ๋ฆฌ์ง ๋น์ฉ๊ณผ ์ธ๋ฑ์ฑ ์ค๋ฒํค๋๊ฐ ๋ฎ์ต๋๋ค. ์ด๋ ๋๋์ ๋ก๊ทธ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ๊ด๋ฆฌํ ๋ ํฐ ๋น์ฉ ์ ๊ฐ์ ๊ฐ๋ฅํ๊ฒ ํฉ๋๋ค.
- Kubernetes ์นํ์
- Loki๋ Kubernetes ํ๊ฒฝ๊ณผ ๊ธด๋ฐํ๊ฒ ํตํฉ๋๋๋ก ์ค๊ณ๋์์ต๋๋ค. Prometheus์ ์ ์ฌํ ๋ผ๋ฒจ๋ง ๋ฐฉ์์ ์ฌ์ฉํ์ฌ, Kubernetes์์ ๋ก๊ทธ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ฒ ์์งํ๊ณ ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
- Grafana์์ ํตํฉ
- Loki๋ Grafana์ ์์ฐ์ค๋ฝ๊ฒ ํตํฉ๋ฉ๋๋ค. Grafana ๋์๋ณด๋๋ฅผ ํตํด Loki์ ์ ์ฅ๋ ๋ก๊ทธ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ฒ ์๊ฐํํ๊ณ ๋ถ์ํ ์ ์์ต๋๋ค. ์ด๋ ๋ก๊ทธ ๋ฐ์ดํฐ์ ๋ฉํธ๋ฆญ ๋ฐ์ดํฐ๋ฅผ ํตํฉํ์ฌ ๋ชจ๋ํฐ๋ง ํ๊ฒฝ์ ๋จ์ํํฉ๋๋ค.
- ๊ฐ๋จํ ์ํคํ ์ฒ
- Loki๋ ๋ณต์กํ ์ธํ๋ผ ๊ตฌ์ฑ์ด ํ์ํ์ง ์์ผ๋ฉฐ, ์ค์ ์ด ๊ฐ๋จํฉ๋๋ค. ์ด๋ ๋น ๋ฅด๊ฒ ์ค์ ํ๊ณ ์ฌ์ฉํ ์ ์๋๋ก ํด์ค๋๋ค.
- ๋ค์ํ ๋ก๊ทธ ์์ง ๋๊ตฌ์ ํตํฉ
- Loki๋ Fluentd, Fluent Bit, Promtail ๋ฑ ๋ค์ํ ๋ก๊ทธ ์์ง ๋๊ตฌ์ ํตํฉ๋์ด, ๋ค์ํ ์์ค์์ ๋ก๊ทธ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ฒ ์์งํ ์ ์์ต๋๋ค.
- ์ ์ฒด ํ ์คํธ ๊ฒ์์ด ํ์ ์๋ ๊ฒฝ์ฐ
- Loki๋ ์ ์ฒด ํ ์คํธ ๊ฒ์์ ์ ๊ณตํ์ง ์์ง๋ง, ๋ฉํ๋ฐ์ดํฐ ๊ธฐ๋ฐ์ ํํฐ๋ง์ ํตํด ํจ์จ์ ์ผ๋ก ๋ก๊ทธ๋ฅผ ์กฐํํ ์ ์์ต๋๋ค. ์ด๋ ์ ์ฒด ํ ์คํธ ๊ฒ์์ด ํ์ ์๋ ๋ก๊ทธ ๋ฐ์ดํฐ์ ์ ํฉํฉ๋๋ค.
๊ฒฐ๋ก
- Loki๋ ๋ก๊ทธ ๋ฐ์ดํฐ์ ์ ์ฅ ๋ฐ ๊ด๋ฆฌ๋ฅผ ๋ณด๋ค ํจ์จ์ ์ด๊ณ ๊ฒฝ์ ์ ์ผ๋ก ํ ์ ์๋ ๋๊ตฌ์ ๋๋ค. Kubernetes ํ๊ฒฝ๊ณผ์ ๋ฐ์ด๋ ํตํฉ์ฑ, Grafana์์ ์ํํ ์ฐ๋, ๊ทธ๋ฆฌ๊ณ ๋ฎ์ ์คํ ๋ฆฌ์ง ๋น์ฉ ๋๋ถ์ ๋ง์ ์กฐ์ง์์ Loki๋ฅผ ์ ํํ์ฌ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. ์ ์ฒด ํ ์คํธ ๊ฒ์์ด ํ์ ์๋ ๋ก๊ทธ ๋ฐ์ดํฐ์ ๊ฒฝ์ฐ, Loki๋ ํนํ ์ ํฉํ ์๋ฃจ์ ์ ๋๋ค.
- ๋ก๊ทธ์ ์ ์ฒด ํ ์คํธ ๊ฒ์์ด ํ์ ์๋ค๋ฉด ๋ค๋ฅธ ๋ก๊ทธ ๊ด๋ฆฌ ์์คํ ์ ๋นํด ๊ฐ๋ฒผ์ด Loki๋ง ์ฌ์ฉํ๋๊ฒ ์ด๋จ๊น ์ถ์ต๋๋ค.
- version: 7.2.5
- version: 1.27.0
- version: 8.14
- version: 3.0.x
Fluent Bit๊ณผ Logstash๋ ๋ชจ๋ ๋ก๊ทธ ๋ฐ ๋ฐ์ดํฐ ์์ง, ์ฒ๋ฆฌ, ์ ์ก์ ์ํ ๋๊ตฌ์ ๋๋ค. ๋ ๋๊ตฌ์ ํน์ง๊ณผ ์ฐจ์ด์ ์ ๋น๊ตํด ๋ณด๊ฒ ์ต๋๋ค.
Fluent Bit:
-
๊ฒฝ๋ํ:
- C๋ก ์์ฑ๋์ด ๋งค์ฐ ์์ ๋ฉ๋ชจ๋ฆฌ ํํ๋ฆฐํธ (์ฝ 650KB)
- ๋ฆฌ์์ค ์ฌ์ฉ์ด ์ ์
-
์๋:
- ๋น ๋ฅธ ์ฒ๋ฆฌ ์๋
-
ํ๋ซํผ:
- ๋ค์ํ ํ๋ซํผ ์ง์ (Linux, Windows, macOS, ์๋ฒ ๋๋ ์์คํ )
-
์ฌ์ฉ ์ฌ๋ก:
- ์ฃผ๋ก ์ฃ์ง ์ปดํจํ , IoT, ์ปจํ ์ด๋ ํ๊ฒฝ์์ ์ฌ์ฉ
-
์ค์ :
- ๋น๊ต์ ๊ฐ๋จํ ์ค์
-
ํ๋ฌ๊ทธ์ธ:
- ์ ํ๋ ์์ ํ๋ฌ๊ทธ์ธ, ํ์ง๋ง ํ์์ ์ธ ๊ฒ๋ค์ ํฌํจ
-
ํ์ฅ์ฑ:
- C๋ก ํ๋ฌ๊ทธ์ธ ๊ฐ๋ฐ ๊ฐ๋ฅ
Logstash:
-
๋ฆฌ์์ค ์ฌ์ฉ:
- Java ๊ธฐ๋ฐ์ผ๋ก ์๋์ ์ผ๋ก ํฐ ๋ฉ๋ชจ๋ฆฌ ํํ๋ฆฐํธ
- ๋ฆฌ์์ค ์ฌ์ฉ๋์ด ๋ ๋ง์
-
๊ธฐ๋ฅ:
- ๋ ํ๋ถํ ๊ธฐ๋ฅ๊ณผ ๋ค์ํ ํ๋ฌ๊ทธ์ธ ์ ๊ณต
-
ํ๋ซํผ:
- ์ฃผ๋ก ์๋ฒ ํ๊ฒฝ์์ ์ฌ์ฉ
-
์ฌ์ฉ ์ฌ๋ก:
- ๋๊ท๋ชจ ๋ฐ์ดํฐ ์ฒ๋ฆฌ, ๋ณต์กํ ๋ฐ์ดํฐ ๋ณํ ์์ ์ ์ ํฉ
-
์ค์ :
- ๋ ๋ณต์กํ๊ณ ์์ธํ ์ค์ ๊ฐ๋ฅ
-
ํ๋ฌ๊ทธ์ธ:
- ๋งค์ฐ ๋ค์ํ๊ณ ํ๋ถํ ํ๋ฌ๊ทธ์ธ ์ํ๊ณ
-
ํ์ฅ์ฑ:
- Ruby๋ก ํ๋ฌ๊ทธ์ธ ๊ฐ๋ฐ ๊ฐ๋ฅ
-
Elastic Stack:
- Elasticsearch, Kibana์ ํจ๊ป ELK ์คํ์ ์ผ๋ถ๋ก ์์ฃผ ์ฌ์ฉ
์ฃผ์ ์ฐจ์ด์ :
-
์ฑ๋ฅ๊ณผ ๋ฆฌ์์ค ์ฌ์ฉ:
- Fluent Bit: ๋ ๊ฐ๋ณ๊ณ ๋น ๋ฆ, ์ ์ ๋ฆฌ์์ค ์ฌ์ฉ
- Logstash: ๋ ๋ง์ ๋ฆฌ์์ค๋ฅผ ์ฌ์ฉํ์ง๋ง ๋ณต์กํ ์ฒ๋ฆฌ ๊ฐ๋ฅ
-
์ฌ์ฉ ํ๊ฒฝ:
- Fluent Bit: ์ ํ๋ ๋ฆฌ์์ค ํ๊ฒฝ, ์ฃ์ง ์ปดํจํ , ์ปจํ ์ด๋์ ์ ํฉ
- Logstash: ์๋ฒ ํ๊ฒฝ, ๋๊ท๋ชจ ๋ฐ์ดํฐ ์ฒ๋ฆฌ์ ์ ํฉ
-
๊ธฐ๋ฅ์ ๋ณต์ก์ฑ:
- Fluent Bit: ๊ฐ๋จํ๊ณ ์ง๊ด์ ์ธ ์ค์
- Logstash: ๋ ๋ณต์กํ์ง๋ง ๊ฐ๋ ฅํ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ๊ธฐ๋ฅ
-
ํ๋ฌ๊ทธ์ธ ์ํ๊ณ:
- Fluent Bit: ์ ํ์ ์ด์ง๋ง ํ์์ ์ธ ํ๋ฌ๊ทธ์ธ ์ ๊ณต
- Logstash: ๋งค์ฐ ๋ค์ํ๊ณ ํ๋ถํ ํ๋ฌ๊ทธ์ธ ์ํ๊ณ
-
๋ฐ์ดํฐ ์ฒ๋ฆฌ ๋ฅ๋ ฅ:
- Fluent Bit: ๊ธฐ๋ณธ์ ์ธ ํํฐ๋ง๊ณผ ๋ณํ
- Logstash: ๋ณต์กํ ๋ฐ์ดํฐ ๋ณํ, ํ๋ถํ ํํฐ ์ต์
์ ํ ๊ธฐ์ค:
- ๋ฆฌ์์ค๊ฐ ์ ํ๋ ํ๊ฒฝ์ด๋ ๊ฒฝ๋ํ๊ฐ ํ์ํ ๊ฒฝ์ฐ Fluent Bit์ ์ ํ
- ๋ณต์กํ ๋ฐ์ดํฐ ์ฒ๋ฆฌ๋ ๋ณํ์ด ํ์ํ ๋๊ท๋ชจ ํ๊ฒฝ์์๋ Logstash๋ฅผ ์ ํ
- ์ปจํ ์ด๋ ํ๊ฒฝ์ด๋ ์ฃ์ง ์ปดํจํ ์๋ Fluent Bit์ด ๋ ์ ํฉ
- ELK ์คํ์ ์์ ํ ํ์ฉํ๊ณ ์ ํ๋ค๋ฉด Logstash๊ฐ ๋ ์ ํฉ
- ๊ฐ๋จํ ๋ก๊ทธ ์์ง ๋ฐ ์ ์ก๋ง ํ์ํ๋ค๋ฉด Fluent Bit์ผ๋ก ์ถฉ๋ถ
- ๋ค์ํ ๋ฐ์ดํฐ ์์ค์ ๋ณต์กํ ๋ฐ์ดํฐ ํ์ดํ๋ผ์ธ์ด ํ์ํ๋ค๋ฉด Logstash๊ฐ ๋ ์ ํฉ
์ค์ ์ฌ์ฉ ์๋๋ฆฌ์ค:
-
ํ์ด๋ธ๋ฆฌ๋ ์ฌ์ฉ: ๋ง์ ์กฐ์ง์์๋ Fluent Bit๊ณผ Logstash๋ฅผ ํจ๊ป ์ฌ์ฉํฉ๋๋ค. Fluent Bit์ ์ฃ์ง๋ ์์ค์ ๊ฐ๊น์ด ๊ณณ์์ ๋ฐ์ดํฐ๋ฅผ ์์งํ๋ ๋ฐ ์ฌ์ฉํ๊ณ , ์ด๋ฅผ ์ค์ Logstash ์ธ์คํด์ค๋ก ์ ์กํ์ฌ ๋ ๋ณต์กํ ์ฒ๋ฆฌ๋ฅผ ์ํํฉ๋๋ค.
-
๋ง์ดํฌ๋ก์๋น์ค ํ๊ฒฝ: ์ปจํ ์ด๋ํ๋ ๋ง์ดํฌ๋ก์๋น์ค ์ํคํ ์ฒ์์๋ ๊ฐ ์๋น์ค ์ปจํ ์ด๋์ Fluent Bit์ ์ฌ์ด๋์นด๋ก ๋ฐฐํฌํ์ฌ ๋ก๊ทธ๋ฅผ ์์งํ๊ณ , ์ค์ ๋ก๊ทธ ์ ์ฅ์๋ ๋ถ์ ์์คํ ์ผ๋ก ์ ์กํ ์ ์์ต๋๋ค.
-
IoT ํ๊ฒฝ: ๋ฆฌ์์ค๊ฐ ์ ํ๋ IoT ๋๋ฐ์ด์ค์์๋ Fluent Bit์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์์งํ๊ณ ์ค์ ์์คํ ์ผ๋ก ์ ์กํ ์ ์์ต๋๋ค.
-
๋๊ท๋ชจ ๋ฐ์ดํฐ ์ฒ๋ฆฌ: ๋๋์ ๋ก๊ทธ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๊ณ ๋ณต์กํ ๋ณํ์ด ํ์ํ ์ํฐํ๋ผ์ด์ฆ ํ๊ฒฝ์์๋ Logstash๊ฐ ๋ ์ ํฉํ ์ ์์ต๋๋ค.
๊ฒฐ๋ก : Fluent Bit๊ณผ Logstash๋ ๊ฐ๊ฐ์ ๊ฐ์ ์ด ์๋ ๊ฐ๋ ฅํ ๋๊ตฌ์ ๋๋ค. ์ ํ์ ํ๋ก์ ํธ์ ์๊ตฌ์ฌํญ, ์ธํ๋ผ ํ๊ฒฝ, ์ฒ๋ฆฌํด์ผ ํ ๋ฐ์ดํฐ์ ๋ณต์ก์ฑ ๋ฑ์ ๊ณ ๋ คํ์ฌ ์ด๋ฃจ์ด์ ธ์ผ ํฉ๋๋ค. ๋๋ก๋ ๋ ๋๊ตฌ๋ฅผ ํจ๊ป ์ฌ์ฉํ์ฌ ๊ฐ๊ฐ์ ์ฅ์ ์ ์ต๋ํ ํ์ฉํ๋ ๊ฒ๋ ์ข์ ์ ๋ต์ด ๋ ์ ์์ต๋๋ค. ์ค์ํ ๊ฒ์ ์์ ์ ์ฌ์ฉ ์ฌ๋ก์ ํ๊ฒฝ์ ๊ฐ์ฅ ์ ํฉํ ๋๊ตฌ๋ ์กฐํฉ์ ์ ํํ๋ ๊ฒ์ ๋๋ค.
- ์ ํ ๊ธ ๋ด์ฉ์ ๊ณ ๋ คํ์ฌ ๊ฐ๋จํ ๋ก๊ทธ ์์ง ๋ฐ ์ ์ก์ฉ์ผ๋ก ์ถฉ๋ถํ๊ณ , ๋ฆฌ์์ค ์ฌ์ฉ์ด ์ ๊ณ ๋น ๋ฅธ ์ฒ๋ฆฌ ์๋๋ฅผ ๊ฐ์ง Fluent Bit ์ฌ์ฉ์ด ์ด๋จ๊น ์ถ์ต๋๋ค.
- version: 27.0.3
- version: 1.30
- version: 11.1
- version: 2.53
- Dependencies
- implementation 'org.springframework.boot:spring-boot-starter-actuator' // Promethesus์์ ์ฌ์ฉํ ๋ฉํธ๋ฆญ ์ ๋ณด๋ฅผ ์ํด
- implementation 'io.micrometer:micrometer-registry-prometheus'
- version: 0.52.x
- CLI ๋๊ตฌ๋ก ์ค์นํด์ ์ฌ์ฉ
- Javasccript ์ฌ์ฉ
- ์คํฐ๋ ํ์
Grafana k6๋ ์คํ ์์ค ์ฑ๋ฅ ํ ์คํธ ๋๊ตฌ๋ก, ๊ฐ๋ฐ์์ DevOps ํ์ด ์น ์ ํ๋ฆฌ์ผ์ด์ , API ๋ฐ ๋ง์ดํฌ๋ก์๋น์ค์ ์ฑ๋ฅ์ ํ ์คํธํ๊ณ ๋ชจ๋ํฐ๋งํ ์ ์๋๋ก ์ค๊ณ๋์์ต๋๋ค. Grafana Labs๊ฐ ์ธ์ํ์ฌ Grafana ์ํ๊ณ์ ์ผ๋ถ๊ฐ ๋์์ต๋๋ค. ์ฃผ์ ๊ธฐ๋ฅ๊ณผ ํน์ง์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
-
์คํฌ๋ฆฝํธ ๊ธฐ๋ฐ ํ ์คํธ:
- k6๋ JavaScript๋ก ์์ฑ๋ ํ ์คํธ ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ด๋ ๊ฐ๋ฐ์๋ค์ด ์น์ํ ์ธ์ด๋ฅผ ํตํด ํ ์คํธ ์คํฌ๋ฆฝํธ๋ฅผ ์์ฑํ๊ณ ์ ์ง ๊ด๋ฆฌํ ์ ์๊ฒ ํด์ค๋๋ค.
-
ํ์ฅ์ฑ:
- k6๋ ๋จ์ผ ์ธ์คํด์ค์์ ์คํํ ์ ์์ผ๋ฉฐ, ํ์์ ๋ฐ๋ผ ๋ถ์ฐ๋ ํ๊ฒฝ์์ ์์ฒ ๊ฐ์ ๋์ ๊ฐ์ ์ฌ์ฉ์๋ฅผ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
-
๊ฒฐ๊ณผ ์๊ฐํ ๋ฐ ๋ชจ๋ํฐ๋ง:
- k6๋ ๋ค์ํ ๋ฐฑ์๋์ ๊ฒฐ๊ณผ๋ฅผ ๋ณด๋ผ ์ ์์ต๋๋ค. Grafana์ ํตํฉํ์ฌ ์ค์๊ฐ์ผ๋ก ์ฑ๋ฅ ํ ์คํธ ๊ฒฐ๊ณผ๋ฅผ ์๊ฐํํ๊ณ ๋ชจ๋ํฐ๋งํ ์ ์์ต๋๋ค.
-
์ฌ์ฉ์ ์๋๋ฆฌ์ค ์๋ฎฌ๋ ์ด์ :
- ๋ณต์กํ ์ฌ์ฉ์ ์๋๋ฆฌ์ค๋ฅผ ์ฝ๊ฒ ์๋ฎฌ๋ ์ด์ ํ ์ ์์ด, ๋ค์ํ ์ฌ์ฉ์ ํ๋ ํจํด์ ํ ์คํธํ ์ ์์ต๋๋ค.
-
์๋ํ:
- CI/CD ํ์ดํ๋ผ์ธ์ ์ฝ๊ฒ ํตํฉํ ์ ์์ด, ์ง์์ ์ธ ์ฑ๋ฅ ํ ์คํธ๊ฐ ๊ฐ๋ฅํ๊ฒ ํฉ๋๋ค.
-
๊ฒฝ๋ํ:
- k6๋ ๊ฒฝ๋ํ๋ ๋๊ตฌ๋ก, ์ฑ๋ฅ ํ ์คํธ๋ฅผ ์คํํ ๋ ์ต์ํ์ ์์คํ ์์์ ์ฌ์ฉํ์ฌ ํจ์จ์ฑ์ ๊ทน๋ํํฉ๋๋ค.
-
๋ค์ํ ํ๋กํ ์ฝ ์ง์:
- HTTP/1.1, HTTP/2, WebSocket ๋ฑ์ ์ง์ํ์ฌ ๋ค์ํ ์ ํ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ํ ์คํธํ ์ ์์ต๋๋ค.
-
์น ์ ํ๋ฆฌ์ผ์ด์ ์ฑ๋ฅ ํ ์คํธ:
- ๋ค์ํ ์๋๋ฆฌ์ค๋ฅผ ํตํด ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฑ๋ฅ์ ํ ์คํธํ๊ณ ๋ณ๋ชฉ ์ง์ ์ ์ฐพ์๋ ๋๋ค.
-
API ๋ถํ ํ ์คํธ:
- RESTful ๋ฐ GraphQL API์ ์ฑ๋ฅ์ ํ ์คํธํ๊ณ , ๋์ ๋ถํ ์์ ์๋ต ์๊ฐ์ ๋ถ์ํฉ๋๋ค.
-
๋ง์ดํฌ๋ก์๋น์ค ํ ์คํธ:
- ๋ง์ดํฌ๋ก์๋น์ค ์ํคํ ์ฒ์ ์ฑ๋ฅ์ ํ ์คํธํ์ฌ ์๋น์ค ๊ฐ์ ์ํธ์์ฉ ๋ฐ ์์กด์ฑ์ ํ์ธํฉ๋๋ค.
-
CI/CD ํตํฉ:
- ์ง์์ ์ธ ๋ฐฐํฌ ํ์ดํ๋ผ์ธ์ ์ฑ๋ฅ ํ ์คํธ๋ฅผ ํตํฉํ์ฌ, ์๋ก์ด ๋ฆด๋ฆฌ์ค๊ฐ ์ฑ๋ฅ์ ๋ฏธ์น๋ ์ํฅ์ ๋ฏธ๋ฆฌ ํ์ ํฉ๋๋ค.
k6๋ Grafana์ ์ํํ๊ฒ ํตํฉ๋์ด, ์ฑ๋ฅ ํ ์คํธ ๊ฒฐ๊ณผ๋ฅผ Grafana ๋์๋ณด๋๋ฅผ ํตํด ์ค์๊ฐ์ผ๋ก ์๊ฐํํ๊ณ ๋ถ์ํ ์ ์์ต๋๋ค. ์ด๋ฅผ ํตํด ์ฑ๋ฅ ํ ์คํธ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฅธ ๋ชจ๋ํฐ๋ง ๋ฐ์ดํฐ์ ํจ๊ป ๋ถ์ํ ์ ์์ด, ์์คํ ์ฑ๋ฅ์ ๋ณด๋ค ์ข ํฉ์ ์ผ๋ก ์ดํดํ ์ ์์ต๋๋ค.
Grafana k6๋ ํ๋์ ์ธ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฑ๋ฅ ํ ์คํธ์ ๋ชจ๋ํฐ๋ง์ ์ํ ๊ฐ๋ ฅํ ๋๊ตฌ์ ๋๋ค. ์ฌ์ฉ์ ์นํ์ ์ธ ์คํฌ๋ฆฝํธ ์์ฑ, ๋ฐ์ด๋ ํ์ฅ์ฑ, ๊ทธ๋ฆฌ๊ณ Grafana์์ ํตํฉ์ ํตํด ์ฑ๋ฅ ํ ์คํธ๋ฅผ ์ฝ๊ณ ํจ๊ณผ์ ์ผ๋ก ์ํํ ์ ์์ต๋๋ค. ์ด๋ฅผ ํตํด ๊ฐ๋ฐํ๊ณผ ์ด์ํ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฑ๋ฅ์ ์ต์ ํํ๊ณ , ์ฌ์ฉ์ ๊ฒฝํ์ ํฅ์์ํฌ ์ ์์ต๋๋ค.
- ์ฃผ์ ๋ชฉ์ : ์ผ๋ฐ์ ์ธ ๋ฐ์ดํฐ ์ ์ฅ ๋ฐ ์ก์ธ์ค
- ์ก์ธ์ค ์๋: ์ฆ์ ๋๋ ๊ฑฐ์ ์ฆ์ ์ก์ธ์ค ๊ฐ๋ฅ (๋ฐ๋ฆฌ์ด ๋จ์)
- ๋น์ฉ: ๊ณ ๊ฐ์ฉ์ฑ ๋ฐ ์ ์ํ ์ก์ธ์ค๋ฅผ ์ ๊ณตํ๋ฏ๋ก ๋น๊ต์ ๋์ ๋น์ฉ
- ์ฌ์ฉ ์ฌ๋ก: ์์ฃผ ์ก์ธ์คํด์ผ ํ๋ ๋ฐ์ดํฐ, ์น ์ฌ์ดํธ ์ฝํ ์ธ , ๋ฐ์ดํฐ ๋ฐฑ์ ๋ฐ ๋ณต๊ตฌ, ๋น ๋ฐ์ดํฐ ๋ถ์, ๋ชจ๋ฐ์ผ ๋ฐ IoT ์ ํ๋ฆฌ์ผ์ด์ ๋ฐ์ดํฐ ์ ์ฅ์
- ์คํ ๋ฆฌ์ง ํด๋์ค: ์ฌ๋ฌ ์คํ ๋ฆฌ์ง ํด๋์ค๊ฐ ์์ด ์ฌ์ฉ ํจํด์ ๋ฐ๋ผ ๋น์ฉ ์ต์ ํ ๊ฐ๋ฅ. ์๋ฅผ ๋ค์ด, Standard, Standard-IA (Infrequent Access), One Zone-IA, Intelligent-Tiering ๋ฑ
- ์ฃผ์ ๋ชฉ์ : ์ฅ๊ธฐ ์์นด์ด๋น ๋ฐ ๋ฐฑ์ , ๋๋ฌผ๊ฒ ์ก์ธ์คํ๋ ๋ฐ์ดํฐ ์ ์ฅ
- ์ก์ธ์ค ์๋: ๋๋ฆฐ ์ก์ธ์ค ์๊ฐ. Standard, Bulk, Expedited ์ธ ๊ฐ์ง ๋ณต๊ตฌ ์ต์ ์ด ์์ผ๋ฉฐ, ๋ช ๋ถ์์ ๋ช ์๊ฐ๊น์ง ๊ฑธ๋ฆด ์ ์์
- ๋น์ฉ: ๋งค์ฐ ์ ๋ ดํ ๋น์ฉ. ์ฃผ๋ก ์ฅ๊ธฐ ๋ณด๊ด์ ์ํ ์ ๋น์ฉ ์คํ ๋ฆฌ์ง
- ์ฌ์ฉ ์ฌ๋ก: ๋ฒ์ ๊ท์ ์ค์๋ฅผ ์ํ ๋ฐ์ดํฐ ๋ณด๊ด, ๋์งํธ ์์ฐ ์์นด์ด๋น, ๋ก๊ทธ ๋ฐ ๋ถ์ ๋ฐ์ดํฐ ์ฅ๊ธฐ ์ ์ฅ
- ์คํ ๋ฆฌ์ง ํด๋์ค: 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์๊ฐ ์ด๋ด์ ์ก์ธ์ค ๊ฐ๋ฅ
- implementation(platform("software.amazon.awssdk:bom:2.21.1"))
- implementation("software.amazon.awssdk:s3")
- ๋ฐ์ดํฐ ์ก์ธ์ค๊ฐ ์ฆ์ง ์๊ณ ๋ก๊ทธ ํ์ผ ์์นด์ด๋น ์ฉ๋๋ก ์ฌ์ฉํ๊ธฐ์ ๋น์ฉ์ด ๋ ์ ๋ ดํ Amazon S3 Glacier ์ฌ์ฉ์ด ์ ์ ํ ๋ฏ ํฉ๋๋ค.
- version: 4.0.0
Ollama Github, Llama 3 Requirements
- ํ๋ก์ ํธ ์งํ ์ ์ฌ์ฉ token์ 100๋ง๊ฑด์ผ๋ก ์ถฉ๋ถํ ๋ฏํ์ฌ 5๋ฌ๋ฌ ์ง๋ถํ๊ณ GPT ์ฌ์ฉํ๋๊ฒ ์ข์๋ณด์ ๋๋ค.