๊ด€๋ฆฌ ๋ฉ”๋‰ด

๋ชฉ๋ก2025/03 (8)

๐‘†๐‘ข๐‘›๐‘ โ„Ž๐‘–๐‘›๐‘’ ๐‘Ž๐‘“๐‘ก๐‘’๐‘Ÿ ๐‘Ÿ๐‘Ž๐‘–๐‘›โœง

[Spring] Kibana๋ž€

KibanaElasticsearch์— ์ƒ‰์ธ๋œ ๋ฐ์ดํ„ฐ ๊ธฐ๋ฐ˜์‹œ๊ฐํ™” ๋ฐ ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ ์ œ๊ณต๋ฌด๋ฃŒ ์˜คํ”ˆ ์†Œ์Šค์‹ค๋ฌด์—์„œ๋Š” ๋กœ๊ทธ ํ”Œ๋žซํผ ์šฉ๋„ ์‚ฌ์šฉKibana ๊ธฐ๋Šฅโ€ข ๋กœ๊น…๊ณผ ๋กœ๊ทธ ๋ถ„์„โ€ข ์ธํ”„๋ผ ๋ฉ”ํŠธ๋ฆญ๊ณผ ์ปจํ…Œ์ด๋„ˆ ๋ชจ๋‹ˆํ„ฐ๋ง(์‹œ์Šคํ…œ ๊ด€๋ฆฌ ๋ชจ๋‹ˆํ„ฐ๋ง)โ€ข ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„ฑ๋Šฅ ๋ชจ๋‹ˆํ„ฐ๋ง(APM)โ€ข ์œ„์น˜ ๊ธฐ๋ฐ˜ ์ •๋ณด ๋ฐ์ดํ„ฐ ๋ถ„์„๊ณผ ์‹œ๊ฐํ™”โ€ข ๋ณด์•ˆ ๋ถ„์„โ€ข ๋น„์ฆˆ๋‹ˆ์Šค ๋ถ„์„โ€ข Elastic Stack ์ธ์Šคํ„ด์Šค๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋ง,๊ด€๋ฆฌ Kibana์˜ ์‹œ๊ฐํ™” ๊ธฐ๋Šฅโ€ข Discover - ๋ฐ์ดํ„ฐ ์กฐํšŒ, ํ•„ํ„ฐ, ๋ถ„์„โ€ข Dashboard - ๋‹ค์–‘ํ•œ ๊ทธ๋ž˜ํ”„๋ฅผ ํ™œ์šฉํ•œ ์‹œ๊ฐํ™”โ€ข Canvas - ํ”„๋ฆฌ์  ํ…Œ์ด์…˜ ์ฒ˜๋Ÿผ ๊ตฌ์„ฑโ€ข Maps - ์ง€๋„์— ์œ„์น˜ ๊ธฐ๋ฐ˜ ๋ฐ์ดํ„ฐ ํ‘œํ˜„โ€ข Graph - ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๊ณ„ ์ง€ํ–ฅ์ ์œผ๋กœ ์‹œ๊ฐํ™”  Discoverโ€ข ElasticSearch ์— ์ ์žฌ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ํ™•์ธ..

[Spring] Log, ELK

๋กœ๊ทธ(Log)์‹œ์Šคํ…œ์ด๋‚˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๋ฐœ์ƒํ•œ ์ด๋ฒคํŠธ, ๋™์ž‘, ์ƒํƒœ ๋“ฑ์„ ๊ธฐ๋กํ•œ ์ •๋ณด์ฃผ๋กœ ๋””๋ฒ„๊น…, ๋ชจ๋‹ˆํ„ฐ๋ง, ๋ฌธ์ œ ํ•ด๊ฒฐ, ์„ฑ๋Šฅ ๋ถ„์„ ๋“ฑ์„ ๋ชฉ์ ์œผ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.๋กœ๊ทธ์˜ ์ฃผ์š” ๋ชฉ์ ๋””๋ฒ„๊น…: ์‹œ์Šคํ…œ์—์„œ ๋ฐœ์ƒํ•œ ๋ฌธ์ œ๋ฅผ ์ถ”์ ํ•˜๊ณ , ์ฝ”๋“œ์˜ ํ๋ฆ„์„ ํŒŒ์•…ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ.๋ชจ๋‹ˆํ„ฐ๋ง: ์‹œ์Šคํ…œ์ด๋‚˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ƒํƒœ์™€ ์„ฑ๋Šฅ์„ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๊ด€์ฐฐ.์—๋Ÿฌ ์ถ”์ : ๋ฐœ์ƒํ•œ ์˜ค๋ฅ˜๋ฅผ ๊ธฐ๋กํ•˜๊ณ , ๋ฌธ์ œ์˜ ์›์ธ์„ ์ฐพ์•„ ์ˆ˜์ •.์„ฑ๋Šฅ ๋ถ„์„: ์‹œ์Šคํ…œ ์„ฑ๋Šฅ์„ ๋ถ„์„ํ•˜์—ฌ ์ตœ์ ํ™” ๋ฐ ๊ฐœ์„ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„์„ ์ฐพ์•„๋ƒ„. ๋กœ๊ทธ ๋ ˆ๋ฒจ์˜ ์ฃผ์š” ์ข…๋ฅ˜TRACE์„ค๋ช…: ๊ฐ€์žฅ ๋‚ฎ์€ ์ˆ˜์ค€์˜ ๋กœ๊ทธ ๋ ˆ๋ฒจ์ž…๋‹ˆ๋‹ค. ๋งค์šฐ ์„ธ๋ฐ€ํ•œ ์ •๋ณด๋ฅผ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค. ์ฃผ๋กœ ์ฝ”๋“œ ์‹คํ–‰์˜ ์„ธ๋ถ€ ์‚ฌํ•ญ, ๋ณ€์ˆ˜ ๊ฐ’, ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ ๋“ฑ์˜ ์ •๋ณด๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.์šฉ๋„: ๋””๋ฒ„๊น…ํ•  ๋•Œ ์ฝ”๋“œ ํ๋ฆ„์„ ์ถ”์ ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.์˜ˆ์‹œ: ๋ฉ”์„œ๋“œ..

[Spring] MDC ๋กœ๊น… & Logback ์„ค์ •

๋ฉ€ํ‹ฐ์“ฐ๋ ˆ๋“œ ํ™œ์šฉ ์‹œ ๋กœ๊ทธ ํ˜„์ƒ์šด์˜ ์„œ๋น„์Šค์—์„œ ์—ฌ๋Ÿฌ ์š”์ฒญ์ด ๋™์‹œ์— ๋“ค์–ด์˜ฌ ๋•Œ, ๋กœ๊ทธ๊ฐ€ ์ˆœ์„œ ์—†์ด ์ฒ˜๋ฆฌ๋˜๊ณ  ์„ž์—ฌ ์Œ“์ด๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด ๋กœ๊ทธ ์ถ”์ ์ด ์–ด๋ ค์›Œ์ง€๊ณ , ๋ฌธ์ œ๋ฅผ ๋””๋ฒ„๊น…ํ•˜๋Š” ๋ฐ ๋ถˆํŽธํ•จ์„ ์ดˆ๋ž˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.๋กœ๊ทธ ์ˆœ์„œ: ์š”์ฒญ์€ ์ˆœ์ฐจ์ ์œผ๋กœ ๋“ค์–ด์˜ค์ง€๋งŒ, ์ฒ˜๋ฆฌ ๋„์ค‘์—๋Š” ๋กœ๊ทธ๊ฐ€ ์„ž์—ฌ์„œ ์Œ“์ด๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.์“ฐ๋ ˆ๋“œ ์ •๋ณด: ๋กœ๊ทธ๋Š” ์‹œ๊ฐ„ ์˜†์— ์“ฐ๋ ˆ๋“œ ์ •๋ณด๋ฅผ ํ‘œ์‹œํ•˜์ง€๋งŒ, ๊ฐ™์€ ์“ฐ๋ ˆ๋“œ๊ฐ€ ์—ฌ๋Ÿฌ ๋ฒˆ ์žฌ์‚ฌ์šฉ๋˜๊ธฐ ๋•Œ๋ฌธ์— ํŠน์ • ์š”์ฒญ์˜ ํ๋ฆ„์„ ์ถ”์ ํ•˜๊ธฐ ์–ด๋ ต์Šต๋‹ˆ๋‹ค. ํ•ด๊ฒฐ ๋ฐฉ์•ˆ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด MDC๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ ์š”์ฒญ์— ๊ณ ์œ  ๊ฐ’์„ ํ• ๋‹นํ•˜๊ณ , ์ด๋ฅผ ๋กœ๊ทธ์— ์ถœ๋ ฅํ•จ์œผ๋กœ์จ ๋กœ๊ทธ๋ฅผ ๊ตฌ์ฒด์ ์œผ๋กœ ์ถ”์ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.Interceptor, Filter, AOP ๋“ฑ ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ MDC๋ฅผ ์ ์šฉํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ๋ณธ ์˜ˆ์ œ์—์„œ๋Š” AOP..

[AWS] S3 + Lambda ๋ฅผ ํ†ตํ•œ ์ด๋ฏธ์ง€ ๋ฆฌ์‚ฌ์ด์ง• (macOS sharp ๋ชจ๋“ˆ ์˜ค๋ฅ˜, ๋ฌดํ•œ ๋žŒ๋‹ค ํ˜ธ์ถœ ์˜ค๋ฅ˜)

๋ฒ„ํ‚ท ์ƒ์„ฑ, ๋žŒ๋‹ค ์ƒ์„ฑ, IAM ์—ญํ•  ์ƒ์„ฑ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋‹ค๋ฅธ ์‚ฌ์ดํŠธ์—์„œ ๋” ์ž˜ ์„ค๋ช…๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ, ์ฐธ๊ณ ํ•˜์‹œ๋ฉด ๋œ๋‹ค.https://oliveyoung.tech/2023-05-19/aws-lambda-resize/ AWS Lambda Image Resize ๋„์ž…๊ธฐ | ์˜ฌ๋ฆฌ๋ธŒ์˜ ํ…Œํฌ๋ธ”๋กœ๊ทธ์‹ ๊ทœ ์ƒํ’ˆ ํ”„๋กœ์ ํŠธ์—์„œ AWS Lambda ์ด๋ฏธ์ง€ ๋ฆฌ์‚ฌ์ด์ง• ์ ์šฉํ•˜๊ธฐoliveyoung.tech  ํŠธ๋ฆฌ๊ฑฐ์˜ ์ ‘๋‘์‚ฌ๋Š” images/origin/ ์œผ๋กœ ์„ค์ •ํ–ˆ๋‹ค. ๋žŒ๋‹ค ์ฝ”๋“œ(node.js)// dependenciesconst AWS = require('aws-sdk'); // AWS SDK ๋ถˆ๋Ÿฌ์˜ค๊ธฐconst sharp = require('sharp'); // ์ด๋ฏธ์ง€ ๋ฆฌ์‚ฌ์ด์ง• ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ// S3 ํด๋ผ์ด์–ธํŠธ ์ƒ์„ฑcon..

[CS] ์ด๊ฒƒ์ด ์ทจ์—…์„ ์œ„ํ•œ ์ปดํ“จํ„ฐ ๊ณผํ•™์ด๋‹ค - 2. ์šด์˜ ์ฒด์ œ

์šด์˜ ์ฒด์ œ์ปดํ“จํ„ฐ ํ•˜๋“œ์›จ์–ด์™€ ์‚ฌ์šฉ์ž ๊ฐ„์˜ ์ธํ„ฐํŽ˜์ด์Šค ์—ญํ• ์„ ํ•˜๋ฉฐ, ํ•˜๋“œ์›จ์–ด ์ž์›์„ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ณ , ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด ์›ํ™œํ•˜๊ฒŒ ์‹คํ–‰๋  ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด์ด๋‹ค.์šด์˜์ฒด์ œ์˜ ํ•ต์‹ฌ ๊ธฐ๋Šฅ์„ ๋‹ด๋‹นํ•˜๋Š” ๋ถ€๋ถ„์„ ์ปค๋„์ด๋ผ๊ณ  ํ•œ๋‹ค.์šด์˜์ฒด์ œ์—๋Š” 2๊ฐ€์ง€ ํ•ต์‹ฌ ๊ธฐ๋Šฅ์ด ์žˆ๋Š”๋ฐ, ํ•˜๋‚˜๋Š” ์ž์› ํ• ๋‹น ๋ฐ ๊ด€๋ฆฌ์ด๊ณ , ๋˜ ํ•˜๋‚˜๋Š” ํ”„๋กœ์„ธ์Šค ๋ฐ ์Šค๋ ˆ๋“œ ๊ด€๋ฆฌ์ด๋‹ค. ์šด์˜์ฒด์ œ์˜ ์—ญํ• ์ž์›(์‹œ์Šคํ…œ ์ž์›)์ด๋ž€ ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰์— ๋งˆ๋•…ํžˆ ํ•„์š”ํ•œ ์š”์†Œ์ด๋‹ค.์šด์˜ ์ฒด์ œ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์‹คํ–‰ํ•˜๋Š” ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ๋Œ€์‹ ํ•˜์—ฌ CPU, ๋ฉ”๋ชจ๋ฆฌ, ๋ณด์กฐ๊ธฐ์–ต์žฅ์น˜ ๋“ฑ์˜ ์ปดํ“จํ„ฐ ๋ถ€ํ’ˆ์— ์ ‘๊ทผํ•˜๊ณ , ๊ฐ๊ฐ์˜ ๋ถ€ํ’ˆ๋“ค์ด ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋„๋ก ๊ด€๋ฆฌํ•œ๋‹ค. ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด ์ปดํ“จํ„ฐ ๋ถ€ํ’ˆ๋“ค์ด ํšจ์œจ์ ์œผ๋กœ ํ• ๋‹น๋ฐ›์•„ ๋ฌธ์ œ์—†์ด ์‹คํ–‰ํ• ์ˆ˜ ์žˆ๋„๋ก ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์—๊ฒŒ ์ž์›์„ ํ• ๋‹นํ•œ๋‹ค.1. CPU ๊ด€๋ฆฌ (C..

[CS] ์ด๊ฒƒ์ด ์ทจ์—…์„ ์œ„ํ•œ ์ปดํ“จํ„ฐ ๊ณผํ•™์ด๋‹ค - 1. ์ปดํ“จํ„ฐ ๊ตฌ์กฐ์˜ ํฐ ๊ทธ๋ฆผ

์ปดํ“จํ„ฐ๊ฐ€ ์ดํ•ดํ•˜๋Š” ์ •๋ณด์ปดํ“จํ„ฐ๊ฐ€ ์ดํ•ดํ•˜๋Š” ์ •๋ณด๋Š” ๋ฐ์ดํ„ฐ์™€ ๋ช…๋ น์–ด์ปดํ“จํ„ฐ์˜ ๋ช…๋ น์–ด๋Š” ์ˆ˜ํ–‰ํ•  ๋™์ž‘๊ณผ ์ˆ˜ํ–‰ํ•  ๋Œ€์ƒ์œผ๋กœ ์ด๋ค„์ ธ ์žˆ๋‹ค.๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜๋Š” ์ฃผ์ฒด๋Š” CPUCPU์˜ ์ข…๋ฅ˜์— ๋”ฐ๋ผ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ์„ธ๋ถ€์ ์ธ ๋ช…๋ น์–ด์˜ ์ข…๋ฅ˜์™€ ์ฒ˜๋ฆฌ์˜ ์–‘์ƒ์ด ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ๋‹ค. ์ปดํ“จํ„ฐ์˜ ํ•ต์‹ฌ ๋ถ€ํ’ˆ์ปดํ“จํ„ฐ์˜ ํ•ต์‹ฌ ๋ถ€ํ’ˆ์—๋Š” CPU(์ค‘์•™์ฒ˜๋ฆฌ์žฅ์น˜), ๋ฉ”๋ชจ๋ฆฌ(์ฃผ๊ธฐ์–ต์žฅ์น˜), ์บ์‹œ ๋ฉ”๋ชจ๋ฆฌ, ๋ณด์กฐ๊ธฐ์–ต์žฅ์น˜, ์ž…์ถœ๋ ฅ์žฅ์น˜๊ฐ€ ์žˆ๋‹ค. CPU์ปดํ“จํ„ฐ๊ฐ€ ์ดํ•ดํ•˜๋Š” ์ •๋ณด์ธ ๋ฐ์ดํ„ฐ์™€ ๋ช…๋ น์–ด๋ฅผ ์ฝ์–ด ๋“ค์ด๊ณ , ํ•ด์„ํ•˜๊ณ  ์‹คํ–‰ํ•˜๋Š” ๋ถ€ํ’ˆ CPU์˜ ์ฃผ์š” ๊ตฌ์„ฑ ์š”์†Œ์‚ฐ์ˆ ๋…ผ๋ฆฌ์—ฐ์‚ฐ์žฅ์น˜(Arithmetic and Logic Unit)์‚ฌ์น™ ์—ฐ์‚ฐ, ๋…ผ๋ฆฌ ์—ฐ์‚ฐ๊ณผ ๊ฐ™์€ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•  ํšŒ๋กœ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋Š” ์ผ์ข…์˜ ๊ณ„์‚ฐ๊ธฐ. CPU๊ฐ€ ์ฒ˜๋ฆฌํ•  ๋ช…๋ น์–ด๋ฅผ ์‹ค์งˆ์ ์œผ๋กœ ์—ฐ์‚ฐํ•˜๋Š” ์š”์†Œ์ œ์–ด ์žฅ์น˜(Control Unit..

[JAVA] JVM ํŒŒํ—ค์น˜๊ธฐ - 6. ํด๋ž˜์Šค ํŒŒ์ผ

ํด๋ž˜์Šค ํŒŒ์ผJVM์ด ํด๋ž˜์Šค๋ฅผ ๋กœ๋“œํ•˜๊ณ  ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„๋œ ๋ฐ”์ดํŠธ์ฝ”๋“œ๋ฐ”์ดํŠธ๋ฅผ ํ•˜๋‚˜์˜ ๋‹จ์œ„๋กœ ํ•˜๋Š” ์ด์ง„ ์ŠคํŠธ๋ฆผ ์ง‘ํ•ฉ์ฒด๋‹ค.๊ฐ ๋ฐ์ดํ„ฐ ํ•ญ๋ชฉ์ด ์ •ํ•ด์ง„ ์ˆœ์„œ์— ๋งž๊ฒŒ, ๊ตฌ๋ถ„ ๊ธฐํ˜ธ์—†์ด ์กฐ๋ฐ€ํ•˜๊ฒŒ ๋‚˜์—ด๋˜๊ณ  ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๋Š”๋ฐ ๊ผญ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋กœ ์ฑ„์›Œ์ง„๋‹ค.1๋ฐ”์ดํŠธ๊ฐ€ ๋„˜๋Š” ๋ฐ์ดํ„ฐ ํ•ญ๋ชฉ์€ ๋ฐ”์ดํŠธ ๋‹จ์œ„๋กœ ๋ถ„ํ• ๋˜๋ฉฐ, ์ด๋•Œ ํฐ ๋‹จ์œ„์˜ ๋ฐ”์ดํŠธ๊ฐ€ ๋จผ์ € ์ €์žฅ๋˜๋Š” ๋น… ์—”๋””์–ธ ๋ฐฉ์‹์œผ๋กœ ํ‘œํ˜„๋œ๋‹ค.์— ๋”ฐ๋ฅด๋ฉด ํด๋ž˜์Šค ํŒŒ์ผ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š”๋ฐ๋Š” C์–ธ์–ด์˜ ๊ตฌ์กฐ์ฒด์™€ ๋น„์Šทํ•œ ์˜์‚ฌ ๊ตฌ์กฐ๋ฅผ ์ด์šฉํ•œ๋‹ค. ์ด ์˜์‚ฌ ๊ตฌ์กฐ์—๋Š” '๋ถ€ํ˜ธ ์—†๋Š” ์ˆซ์ž'์™€ 'ํ…Œ์ด๋ธ”'์ด๋ผ๋Š” ๋‘๊ฐ€์ง€ ๋ฐ์ดํ„ฐ ํƒ€์ž…๋งŒ ์กด์žฌํ•œ๋‹ค. ๋ถ€ํ˜ธ ์—†๋Š” ์ˆซ์ž : ๊ธฐ๋ณธ ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ํ‘œํ˜„ํ•œ๋‹ค. u1, u2, u4, u8์€ ๊ฐ๊ฐ 1๋ฐ”์ดํŠธ, 2๋ฐ”์ดํŠธ, 4๋ฐ”์ดํŠธ, 8๋ฐ”์ดํŠธ๋ฅผ ๋œปํ•œ๋‹ค. ์ˆซ์ž, ์ธ๋ฑ์Šค ์ฐธ์กฐ, ์ˆ˜๋Ÿ‰ ..