์ „์ฒด ๊ธ€ 33

[AWS] CloudWatch๋ž€?

CloudWatch๋ž€? Amazon CloudWatch๋Š” AWS ๋ฆฌ์†Œ์Šค์™€ AWS์—์„œ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์‹คํ–‰ ์ค‘์ธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๋Š” ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค. ์ง€ํ‘œ๋ฅผ ๊ฐ์‹œํ•ด ์•Œ๋ฆผ์„ ๋ณด๋‚ด๊ฑฐ๋‚˜ ์ž„๊ณ„๊ฐ’์„ ์œ„๋ฐ˜ํ•œ ๊ฒฝ์šฐ ๋ชจ๋‹ˆํ„ฐ๋ง ์ค‘์ธ ๋ฆฌ์†Œ์Šค๋ฅผ ์ž๋™์œผ๋กœ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒฝ๋ณด๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์–‘ํ•œ ์ด๋ฒคํŠธ๋“ค์„ ์ˆ˜์ง‘ํ•˜์—ฌ ๋กœ๊ทธํŒŒ์ผ๋กœ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ex) ๊ฒฝ๋ณด์˜ ์˜ˆ๋กœ ์ธ์Šคํ„ด์Šค ์ค‘์ง€, Auto Scaling, Amazon SNS ์ž‘์—… ์‹œ์ž‘, ์ข…๋ฃŒ ๋“ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฒคํŠธ : S3 ๋ฒ„ํ‚ท์— ํŒŒ์ผ ์—…๋กœ๋“œ, ์‚ญ์ œ, ์ ‘๊ทผ ๊ฑฐ๋ถ€, RDS ์ ‘์† ์‹œ๋„ ๋“ฑ CloudWatch ์šฉ์–ด ์ •๋ฆฌ Namespace : ์ง€ํ‘œ๋ฅผ ์ธก์ •ํ•˜๊ธฐ ์œ„ํ•œ AWS ์„œ๋น„์Šค (EC2, RDS ๋“ฑ) Metric(์ง€ํ‘œ) : ์ธก์ •ํ•˜๊ณ ์ž ํ•˜๋Š” ์ง€ํ‘œ (CPU ์ž์› ์‚ฌ์šฉ๋ฅ  ๋“ฑ) Dimension ..

AWS 2023.08.02

[AWS] CloudFront(CDN)์ด๋ž€?

CloudFront๋ž€? CloudFront๋Š” AWS์—์„œ ์ œ๊ณตํ•˜๋Š” CDN ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค. ์บ์‹ฑ์„ ํ†ตํ•ด ์‚ฌ์šฉ์ž์—๊ฒŒ ์ข€ ๋” ๋น ๋ฅธ ์ „์†ก ์†๋„๋ฅผ ์ œ๊ณตํ•จ์„ ๋ชฉ์ ์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค. CloudFront๋Š” ์ „ ์„ธ๊ณ„ ์ด๊ณณ์ €๊ณณ์— Edge Server(Location)์„ ๋‘๊ณ  Client์— ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด Edge Server๋ฅผ ์ฐพ์•„ Latency๋ฅผ ์ตœ์†Œํ™”์‹œ์ผœ ๋น ๋ฅธ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. Origin Server : ์›๋ณธ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์„œ๋ฒ„์ž…๋‹ˆ๋‹ค. ๋ณดํ†ต AWS์—์„œ์˜ Origin Server๋Š” S3, EC2, Instance ์ž…๋‹ˆ๋‹ค. Edge Server = Edge Location : AWS์—์„œ ์‹ค์งˆ์ ์œผ๋กœ ์ œ๊ณตํ•˜๋Š” ์ „ ์„ธ๊ณ„์— ํผ์ ธ์žˆ๋Š” ์„œ๋ฒ„์ž…๋‹ˆ๋‹ค. Edge Server์—๋Š” ์š”์ฒญ ๋ฐ›์€ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด์„œ ๊ฐ™์€ ์š”์ฒญ์— ๋Œ€ํ•ด์„œ ๋น ๋ฅด๊ฒŒ ์‘๋‹ตํ•ด..

AWS 2023.08.02

Git hub branch ์ž‘์—… ํ”„๋กœ์„ธ์Šค

Pull Request (PR) ์ด๋ž€?: push ๊ถŒํ•œ์ด ์—†๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ํ•ด๋‹น ์˜คํ”ˆ์†Œ์Šค์— ๊ธฐ์—ฌ๋ฅผ ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ• Upstream : Maintainer(ํŒ€์žฅ)์˜ Github Repository Origin : Maintainer(ํŒ€์žฅ)์˜ Github Repository๋ฅผ Forkํ•œ ๋‚˜์˜ Github Repository Local : ๋‚˜์˜ Local Repository 1. Upstream Repoitory (main)์—์„œ ๋‚˜์˜ Origin Repository (main)์œผ๋กœ Fork 2. Origin Repository (main)์—์„œ Local Repository (main)์œผ๋กœ Clone - Origin Repository์™€ Local Repository์— ๊ฐ๊ฐ branch ์ƒ์„ฑ 3. Local ..

[Spring Boot] Actuator dependency์™€ Swagger Starter 3.0.0 ์ถฉ๋Œ ์—๋Ÿฌ

Spring boot 2.7.3์—์„œ Swagger 3.0.0 ๋ฒ„์ „๊ณผ ํ•จ๊ป˜ Actuator dependency๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ณผ์ •์—์„œ ์•„๋ž˜์™€ ๊ฐ™์€ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค. Swagger 3.0.0 dependency๋ฅผ ์ถ”๊ฐ€ํ–ˆ๋˜ ๊ณผ์ •์—์„œ ๋ฐœ์ƒํ•œ ์˜ค๋ฅ˜์™€ ๋™์ผํ–ˆ๋‹ค. 1. ๋ฌธ์ œ ๋ฐœ์ƒ ๐Ÿคฌ Failed to start bean 'documentationPluginsBootstrapper'; nested exception is java.lang.NullPointerException porm.xml - Dependency HTML ์‚ฝ์ž… ๋ฏธ๋ฆฌ๋ณด๊ธฐํ•  ์ˆ˜ ์—†๋Š” ์†Œ์Šค 2. ๋ฌธ์ œ ํ•ด๊ฒฐ ๐Ÿ˜ Swagger๋Š” ๋ชจ๋“  endpoint์— ๋Œ€ํ•ด documentation์„ ํ•ด์ฃผ๋Š” ๊ธฐ๋Šฅ์ด๋‹ค. Actuator ๋˜ํ•œ endpoint(refresh, beans..

Trouble Shooting 2023.04.14

[Spring Boot] Springfox - documentationPluginsBootstrapper ์˜ค๋ฅ˜

Spring boot 2.7.3์—์„œ springfox 3.0.0 ๋ฒ„์ „์„ ์ด์šฉํ•˜๊ธฐ ์œ„ํ•ด ์ง„ํ–‰ํ•˜๋˜ ์ค‘ ์•„๋ž˜์™€ ๊ฐ™์€ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค. ์ฐธ swagger๋Š” ๋ฒ„์ „ ์ด์Šˆ๊ฐ€ ์ •๋ง ๋งŽ์€๊ฑฐ ๊ฐ™๋‹คใ…œใ…œ 1. ๋ฌธ์ œ ๋ฐœ์ƒ ๐Ÿคฌ Failed to start bean 'documentationPluginsBootstrapper'; nested exception is java.lang.NullPointerException porm.xml - Dependency HTML ์‚ฝ์ž… ๋ฏธ๋ฆฌ๋ณด๊ธฐํ•  ์ˆ˜ ์—†๋Š” ์†Œ์Šค SwaggerConfig Class HTML ์‚ฝ์ž… ๋ฏธ๋ฆฌ๋ณด๊ธฐํ•  ์ˆ˜ ์—†๋Š” ์†Œ์Šค 2. ๋ฌธ์ œ ํ•ด๊ฒฐ ๐Ÿ˜ Spring boot 2.6๋ฒ„์ „ ์ดํ›„ spring.mvc.pathmatch.matching-strategy์˜ ๊ฐ’์ด ant_apth_matcher..

Trouble Shooting 2023.04.14

[Vue.js] Vuex์™€ State

Vuex๋ž€? Vue.js์˜ ์ƒํƒœ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ ํŒจํ„ด์ด์ž ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์ƒํƒœ ๊ด€๋ฆฌ ํŒจํ„ด์ด๋‚˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ๋น„๊ตํ–ˆ์„ ๋•Œ ๋ทฐ์˜ ๋ฐ˜์‘์„ฑ(Reactivity) ์ฒด๊ณ„๋ฅผ ํšจ์œจ์ ์œผ๋กœ ํ™œ์šฉํ•˜์—ฌ ํ™”๋ฉด์„ ์—…๋ฐ์ดํŠธํ•œ๋‹ค๋Š” ์ฐจ์ด์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ƒํƒœ ๊ด€๋ฆฌ๋ž€? ์ƒํƒœ ๊ด€๋ฆฌ๋ž€ ์—ฌ๋Ÿฌ ์ปดํฌ๋„ŒํŠธ ๊ฐ„์˜ ๋ฐ์ดํ„ฐ ์ „๋‹ฌ๊ณผ ์ด๋ฒคํŠธ ํ†ต์‹ ์„ ํ•œ ๊ณณ์—์„œ ๊ด€๋ฆฌํ•˜๋Š” ํŒจํ„ด์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๋ทฐ์™€ ์„ฑ๊ฒฉ์ด ๋น„์Šทํ•œ ํ”„๋ ˆ์ž„์›Œํฌ์ธ ๋ฆฌ์•กํŠธ(React)์—์„œ๋Š” Redux, Mobx์™€ ๊ฐ™์€ ์ƒํƒœ ๊ด€๋ฆฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๊ณ  ๋ทฐ์—์„œ๋Š” Vuex๋ผ๋Š” ์ƒํƒœ ๊ด€๋ฆฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ƒํƒœ ๊ด€๋ฆฌ(State Management)๊ฐ€ ์™œ ํ•„์š”ํ•œ๊ฐ€? ์ปดํฌ๋„ŒํŠธ ๊ธฐ๋ฐ˜ ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ๋Š” ์ž‘์€ ๋‹จ์œ„๋กœ ์ชผ๊ฐœ์ง„ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ปดํฌ๋„ŒํŠธ๋กœ ํ™”๋ฉด์„ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด, Header, button, L..

Framework/Vue.js 2023.04.09

[Spring Boot] API Docs : Springdoc & Springfox-Swagger

์ธํ”„๋Ÿฐ์˜ 'Spring Boot๋ฅผ ์ด์šฉํ•œ RESTful Web Services ๊ฐœ๋ฐœ'์˜ ๊ฐ•์˜ ์ค‘ REST API Documentation์„ ์œ„ํ•œ Swagger์—์„œ ๋ฒ„์ „ ๋ฌธ์ œ๋กœ ์ธํ•œ ์ด์Šˆ๋ฅผ ํ•ด๊ฒฐํ•œ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์–˜๊ธฐํ•˜๊ณ ์ž ํ•œ๋‹ค. 1. ๋ฌธ์ œ ๋ฐœ์ƒ ๐Ÿคฌ ๊ฐ•์˜์—์„œ๋Š” Springfox Swagger๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. porm.xml - Dependency HTML ์‚ฝ์ž… ๋ฏธ๋ฆฌ๋ณด๊ธฐํ•  ์ˆ˜ ์—†๋Š” ์†Œ์Šค SwaggerConfig Class HTML ์‚ฝ์ž… ๋ฏธ๋ฆฌ๋ณด๊ธฐํ•  ์ˆ˜ ์—†๋Š” ์†Œ์Šค ์œ„์™€ ๊ฐ™์€ ์„ค์ •์—์„œ ์ •์ƒ์ ์œผ๋กœ ๋™์ž‘ํ•˜์ง€ ์•Š์•˜๊ณ  ์ฐพ์•„๋ณธ ๊ฒฐ๊ณผ Springfox Swagger๋Š” Springboot 2.7.X ์ดํ•˜์˜ ๋ฒ„์ „์—์„œ๋งŒ ๊ฐ€๋Šฅํ•˜๋‹ค๊ณ  ํ•œ๋‹ค. (๋‚˜๋Š” Springboot 3.0.0์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์—ˆ๋‹ค.) 2. ๋ฌธ์ œ ํ•ด๊ฒฐ ๐Ÿ˜ ๊ฒ€์ƒ‰ํ•ด๋ณด๋‹ˆ Sprin..

Trouble Shooting 2023.04.05

[Etc] 3๊ณ„์ธต ๊ตฌ์กฐ (3 Tier - Architecture)

3๊ณ„์ธต ๊ตฌ์กฐ(3 Tier - Architecture) ๋ž€? ์–ด๋– ํ•œ ํ”Œ๋žซํผ์„ 3๊ณ„์ธต์œผ๋กœ ๋‚˜๋ˆ„์–ด ๋ณ„๋„์˜ ๋…ผ๋ฆฌ์ /๋ฌผ๋ฆฌ์  ์žฅ์น˜์— ๊ตฌ์ถ• ๋ฐ ์šด์˜ํ•˜๋Š” ํ˜•ํƒœ ์›น ์„œ๋ฒ„ ์šด์˜์„ ์˜ˆ๋กœ ๋“ค๋ฉด, ์„œ๋ฒ„ ํ•œ๋Œ€์— ํ•œ๊บผ๋ฒˆ์— ๋ชจ๋“  ๊ธฐ๋Šฅ๋“ค์„ ๊ตฌ์ถ•ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ์ฝ๋Š” ๋ฐ์ดํ„ฐ ๊ณ„์ธต(Data Tier), ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ณ„์ธต(Application Tier), ๊ทธ๋ฆฌ๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ํ‘œํ˜„ํ•ด์ฃผ๋Š” ํด๋ผ์ด์–ธํŠธ(ํ”„๋ ˆ์  ํ…Œ์ด์…˜) ๊ณ„์ธต(Client Tier) ๊ณผ ๊ฐ™์ด ๊ฐ๊ฐ 3๊ณ„์ธต์œผ๋กœ ๋‚˜๋ˆ„์–ด ๊ฐ๊ฐ์˜ ๊ธฐ๋Šฅ์œผ๋กœ ๋ณ„๋„์˜ ๋…ผ๋ฆฌ์ /๋ฌผ๋ฆฌ์ ์ธ ์žฅ์น˜์—์„œ ์šด์˜ํ•˜๋Š” ๋ฐฉ์‹ Citent(Presentation) Tier ํด๋ผ์ด์–ธํŠธ(ํ”„๋ ˆ์  ํ…Œ์ด์…˜) Presentation Logic Application Tier ์›น/์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„ Business Log..

[CLOUD] ์„œ๋น„์Šค ๋ฉ”์‹œ (Service Mesh)

์„œ๋น„์Šค ๋ฉ”์‹œ(Service Mesh)๋ž€? ์„œ๋น„์Šค ๋ฉ”์‹œ๋Š” ์„œ๋น„์Šค ๊ฐ„์˜ ํ†ต์‹ ์„ ์ œ์–ดํ•˜๊ณ  ํ‘œ์‹œํ•˜๊ณ  ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๋ฐ ํŠนํ™”๋œ ๋งˆ์ดํฌ๋กœ ์„œ๋น„์Šค๋ฅผ ์œ„ํ•œ ์ธํ”„๋ผ ๊ณ„์ธต์ž…๋‹ˆ๋‹ค. ๊ธฐ์กด์˜ ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜์—์„œ์˜ ํ˜ธ์ถœ์€ ์ง์—… ํ˜ธ์ถœ ๋ฐฉ์‹์ด์—ˆ๋‹ค๋ฉด, ์„œ๋น„์Šค ๋ฉ”์‹œ์—์„œ์˜ ํ˜ธ์ถœ์€ ์ž์ฒด ์ธํ”„๋ผ ๊ณ„์ธต์˜ proxy๊ฐ„์— ์ด๋ค„์ง‘๋‹ˆ๋‹ค. ์„œ๋น„์Šค ๋ฉ”์‹œ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๊ฐœ๋ณ„ proxy๋Š” ์„œ๋น„์Šค ๋‚ด๋ถ€๊ฐ€ ์•„๋‹ˆ๋ผ ๊ฐ ์„œ๋น„์Šค์™€ ํ•จ๊ป˜ ์‹คํ–‰๋˜๋ฏ€๋กœ 'sidecar'๋ผ๊ณ ๋„ ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ์„œ๋น„์Šค์—์„œ ๋ถ„๋ฆฌ๋œ ์ด๋Ÿฌํ•œ sidecar proxy๋“ค์ด ๋ชจ์—ฌ Mesh Network๋ฅผ ํ˜•์„ฑํ•ฉ๋‹ˆ๋‹ค. Mesh Network ๋งˆ์ดํฌ๋กœ ์„œ๋น„์Šค์˜ ๋‹จ์  ์„œ๋น„์Šค ๋ฉ”์‹œ ์—†์ด ๋™์ž‘ํ•˜๋Š” ๋งˆ์ดํฌ๋กœ ์„œ๋น„์Šค๋Š” ์„œ๋น„์Šค ๊ฐ„ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜์„ ํ†ต์ œํ•˜๋Š” ๋กœ์ง์œผ๋กœ ์ฝ”๋”ฉํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฐœ๋ฐœ์ž๋“ค์ด ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์— ์ง‘์ค‘..

[JAVA] JAVA Thread(์Šค๋ ˆ๋“œ) ์‚ฌ์šฉ๋ฒ• & ์˜ˆ์ œ

Thread๋ž€? ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค ๋‚ด๋ถ€์—์„œ ๋…๋ฆฝ์ ์œผ๋กœ ์‹คํ–‰๋˜๋Š” ํ•˜๋‚˜์˜ ์ž‘์—… ๋‹จ์œ„ ์šด์˜์ฒด์ œ์— ์˜ํ•ด ๊ด€๋ฆฌ๋˜๋Š” ํ•˜๋‚˜์˜ ์ž‘์—…(Task) Thread = Task(์ž‘์—…) JVM์— ์˜ํ•ด ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ฐœ์ƒํ•˜๊ณ  main() ์•ˆ์˜ ์‹คํ–‰๋ฌธ๋“ค์ด ํ•˜๋‚˜์˜ ์Šค๋ ˆ๋“œ main() ์ด์™ธ์˜ ๋˜ ๋‹ค๋ฅธ ์Šค๋ ˆ๋“œ๋ฅผ ๋งŒ๋“ค๋ ค๋ฉด Thread ํด๋ž˜์Šค๋ฅผ ์ƒ์†ํ•˜๊ฑฐ๋‚˜ Runnable ์ธํ„ฐํŽ˜์ด์Šค ๊ตฌํ˜„ ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ ์ž‘์—… ์‹œ, ๊ฐ ์Šค๋ ˆ๋“œ๋ผ๋ฆฌ ์ •๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ›์„ ์ˆ˜ ์žˆ์–ด ์ฒ˜๋ฆฌ ๊ณผ์ •์˜ ์˜ค๋ฅ˜๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ์Œ ํ”„๋กœ์„ธ์Šค๋ผ๋ฆฌ๋Š” ์ •๋ณด ๊ตํ™˜ ๋ถˆ๊ฐ€๋Šฅ ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ(Multi Thread)๋ž€? ์—ฌ๋Ÿฌ ์Šค๋ ˆ๋“œ๋ฅผ ๋™์‹œ์— ์‹คํ–‰์‹œํ‚ค๋Š” ์‘์šฉํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜๋Š” ๊ธฐ๋ฒ• ์žฅ์  ๋ฉ”๋ชจ๋ฆฌ ๊ณต์œ ๋กœ ์ธํ•œ ์‹œ์Šคํ…œ ์ž์› ์†Œ๋ชจ ์ค„์–ด๋“ฌ ๋™์‹œ ์ž‘์—…์ด ๊ฐ€๋Šฅ ๋‹จ์  ์ž์›์„ ๊ณต์œ ํ•˜๊ธฐ์— ์ถฉ๋Œ ๋ฐœ์ƒ ๊ฐ€๋Šฅ์„ฑ ์กด์žฌ ๋กœ์ง์˜ ๋ณต์žก๋„..

๋ฐ˜์‘ํ˜•