๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๋ฐ˜์‘ํ˜•

์ „์ฒด ๊ธ€

ElastAlert ElastAlert๋ž€?Elasticsearch์˜ ๋ฐ์ดํ„ฐ์—์„œ ์ž‘์„ฑํ•œ ๊ทœ์น™์— ๋”ฐ๋ผ์„œ ์•Œ๋ฆผ์„ ์ „์†กํ•˜๋Š” ํ”„๋ ˆ์ž„์›Œํฌ.Elasticsearch์— ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ๋กํ•˜๊ณ  ์žˆ๊ณ  ํ•ด๋‹น ๋ฐ์ดํ„ฐ๊ฐ€ ํŠน์ • ํŒจํ„ด(๊ทœ์น™)๊ณผ ์ผ์น˜ํ•  ๋•Œ ์•Œ๋ฆผ์„ ๋ฐ›๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ.ElastAlert ์ž‘๋™ ๋ฐฉ์‹๋ฐ์ดํ„ฐ ์†Œ์Šค๋ฅผ ์ฃผ๊ธฐ์ ์œผ๋กœ ์ฟผ๋ฆฌ → ์ •์˜ํ•œ ๊ทœ์น™ ์œ ํ˜•์— ์ผ์น˜ํ•˜๋Š” ์ง€๋ฅผ ๊ฒ€์‚ฌ → ์ผ์น˜ํ•œ๋‹ค๋ฉด ์ •์˜ํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ alert ๋ฐœElastAlert ๊ทœ์น™ ๊ตฌ์„ฑname : ๊ทœ์น™์˜ ๊ณ ์œ ํ•œ ์ด๋ฆ„. ๋™์ผํ•œ ์ด๋ฆ„์ด 2๊ฐœ ์ด์ƒ์ผ ๊ฒฝ์šฐ ElastAlert๊ฐ€ ์‹œ์ž‘๋˜์ง€ ์•Š๋Š”๋‹ค.index : ์ฟผ๋ฆฌํ•  ๋ฐ์ดํ„ฐ ์†Œ์Šค์˜ ์œ„์น˜. ์™€์ผ๋“œ ์นด๋“œ, ์—ฌ๋Ÿฌ๊ฐœ ์‚ฌ์šฉ ๊ฐ€๋Šฅindex: topbeat-*,packetbeat-*type : ๊ทœ์น™์˜ ์œ ํ˜•. type์— ๋”ฐ๋ผ ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•์œผ.. ๋”๋ณด๊ธฐ
๋ฐ”๋žŒ์งํ•œ ์„ค๊ณ„์˜ ํŠน์ง•: Code Complete 2 Code Complete 2์—์„œ 5์žฅ ๊ตฌํ˜„ ์„ค๊ณ„๋ฅผ ์ฝ์œผ๋ฉด์„œ, ์†Œํ”„ํŠธ์›จ์–ด ์„ค๊ณ„๋ž€ ๋ฌด์—‡์ด๊ณ , ๋” ์ข‹์€ ์„ค๊ณ„๋ฅผ ํ•˜๊ธฐ์œ„ํ•ด์„œ๋Š” ์–ด๋–ค ์ ์„ ๊ณ ๋ คํ•ด์•ผํ•˜๋Š”์ง€์— ๋Œ€ํ•ด ์ •๋ฆฌํ•ด๋ณด์•˜๋‹ค.์„ค๊ณ„์˜ ํ•„์š”์„ฑ๊ตฌํ˜„(์ฝ”๋“œ ์ž‘์„ฑ)๋‹จ๊ณ„์—์„œ ๋ฌธ์ œ๋ฅผ ๋ฐœ๊ฒฌํ•˜๊ณ  ์ˆ˜์ •ํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ์„ค๊ณ„ ๋‹จ๊ณ„์—์„œ ๋ฌธ์ œ๋ฅผ ๋ฐœ๊ฒฌํ•˜๊ณ  ์ˆ˜์ •ํ•˜๋Š” ๊ฒƒ์ด ํ›จ์”ฌ ๋” ๋น„์šฉ์ด ์ ๊ฒŒ๋“ ๋‹ค.๋”ฐ๋ผ์„œ ์„ค๊ณ„ ๋‹จ๊ณ„์—์„œ ๋” ๋งŽ์€ ๋ฌธ์ œ๋ฅผ ๋ฐœ๊ฒฌํ•˜๊ณ  ์ˆ˜์ •ํ•ด์•ผ ํ•˜์ง€๋งŒ ์™„๋ฒฝํ•œ ์„ค๊ณ„๋ž€ ์กด์žฌํ•  ์ˆ˜ ์—†๋‹ค๋Š” ์ ์„ ๋งํ•ด์ค€๋‹ค. ์„ค๊ณ„ ๋‹จ๊ณ„์—์„œ ๋” ๋งŽ์ด ์ƒ๊ฐํ•˜๊ณ , ๋” ๋งŽ์ด ์ˆ˜์ •ํ•  ์ˆ˜๋ก ๊ตฌํ˜„(์ฝ”๋“œ ์ž‘์„ฑ)๋‹จ๊ณ„์—์„œ ๋ฌธ์ œ๋ฅผ ๋ฐœ๊ฒฌํ•˜์—ฌ ์ˆ˜์ •ํ•˜๋Š” ์ผ์„ ์ตœ์†Œํ™”ํ•  ์ˆ˜ ์žˆ๊ธฐ์— ์™œ ์™„๋ฒฝํ•œ ์„ค๊ณ„๋ž€ ์—†๋Š” ๊ฒƒ์ธ์ง€, ์™„๋ฒฝํ•œ ์„ค๊ณ„๋Š” ์•„๋‹ˆ์ง€๋งŒ ๋ฐ”๋žŒ์งํ•œ ์„ค๊ณ„๋ฅผ ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ๋ฌด์—‡์ธ์ง€์— ๋Œ€ํ•ด์„œ ์ •๋ฆฌํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค.์†Œํ”„ํŠธ์›จ์–ด ์„ค๊ณ„๋ž€?“์†Œํ”„ํŠธ์›จ์–ด ์„ค๊ณ„”๋Š” ์ปดํ“จํ„ฐ ์†Œ.. ๋”๋ณด๊ธฐ
์›น์„œ๋ฒ„(Web Server)์™€ ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„(Web Application Server) ์›น ์„œ๋ฒ„? ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„? ์›น ์„œ๋ฒ„์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ•˜๋ฉด์„œ, ์›น ์„œ๋ฒ„์™€ ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„๋กœ ๊ตฌ๋ถ„๋œ๋‹ค๋Š” ์‚ฌ์‹ค์„ ์•Œ๊ฒŒ๋˜์—ˆ๊ณ , ์ž˜ ์ •๋ฆฌ๊ฐ€ ๋œ ๋ธ”๋กœ๊ทธ๋ฅผ ์ฝ๊ณ  ๋‚˜๋ฆ„๋Œ€๋กœ ์ •๋ฆฌ(?)๋ฅผ ํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค. ์›น ์„œ๋ฒ„์™€ ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„์˜ ์ฐจ์ด์ ์„ ์ •๋ฆฌํ•˜๊ธฐ์— ์•ž์„œ, ์›น ์„œ๋น„์Šค๋Š” ์–ด๋–ค ๊ตฌ์กฐ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๊ณ , ์›น ์„œ๋น„์Šค๋ฅผ ์ด๋ฃจ๊ณ  ์žˆ๋Š” ์›น์„œ๋ฒ„์™€ ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„๊ฐ€ ๋ฌด์—‡์ธ์ง€๋ฅผ ์ •๋ฆฌํ•ด ๋ณด๋ ค๊ณ  ํ•œ๋‹ค. ์›น ์„œ๋น„์Šค ๊ตฌ์กฐ Client → ์›น ์„œ๋ฒ„ → DB Client → ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„ → DB Client → ์›น ์„œ๋ฒ„ → ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„ → DB ์›น ์„œ๋น„์Šค๋Š” ์œ„์ฒ˜๋Ÿผ ๋‹ค์–‘ํ•œ ๊ตฌ์กฐ๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค. ์›น ์„œ๋ฒ„๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜๋„, ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜๋„, ๋‘˜ ๋‹ค ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ตฌ์กฐ๋ฅผ ์‰ฝ๊ฒŒ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด.. ๋”๋ณด๊ธฐ
Spring Boot & MariaDB & JPA ์„ธํŒ… Spring Boot ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ spring initializr (https://start.spring.io/) ์ ‘์†ํ•ด์„œ ์™ผ์ชฝ ํ™”๋ฉด์—์„œ Spring Boot ๋ฒ„์ „, Java ๋ฒ„์ „ ๋ฐ ํ”„๋กœ์ ํŠธ ๊ธฐ๋ณธ ์„ค์ •์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ์˜ค๋ฅธ์ชฝ ํ™”๋ฉด์—์„œ๋Š” ํ”„๋กœ์ ํŠธ์—์„œ ์‚ฌ์šฉํ•  Dependency๋“ค์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ๋ทฐ์—์„œ Thymeleaf, DB๋Š” MariaDB๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ ์•„๋ž˜์™€ ๊ฐ™์ด ์„ ํƒํ–ˆ์Šต๋‹ˆ๋‹ค. ์ดํ›„ Generate๋ฅผ ํ•˜๋ฉด ์„ธํŒ…๋œ ํ”„๋กœ์ ํŠธ ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œ ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Maria DB ์„ธํŒ… ์šฐ์„  Maria DB๋ฅผ ๋‹ค์šด๋กœ๋“œํ•ด์•ผ ํ•˜๋Š”๋ฐ, ์•„๋ž˜ ๋งํฌ๋ฅผ ์ฐธ๊ณ ํ•ด์„œ ๋‹ค์šด๋กœ๋“œ๋ฅผ ํ–ˆ์Šต๋‹ˆ๋‹ค. https://mariadb.com/kb/ko/installing-mariadb-on-macos-using-homebrew/ Maria .. ๋”๋ณด๊ธฐ
[Algorithm/Java][๋ฐฑ์ค€] 2775๋ฒˆ ๋ถ€๋…€ํšŒ์žฅ์ด ๋ ํ…Œ์•ผ [BOJ] 2775๋ฒˆ ๋ถ€๋…€ํšŒ์žฅ์ด ๋ ํ…Œ์•ผ https://www.acmicpc.net/problem/2775 ๋ฌธ์ œ ์ ‘๊ทผ ๋ฐฑ์ค€์—์„œ ์—์ œ๋กœ ์ค€ ์ž…๋ ฅ๊ณผ ์ถœ๋ ฅ์„ ํ•˜๋‚˜์”ฉ ์“ฐ๋‹ค๋ณด๋ฉด ๊ทœ์น™์ด ๋ณด์ด๊ฒŒ ๋œ๋‹ค. 000 -> 0 001 -> 1 002 -> 2 003 -> 3 100 -> 0 101 -> 1 102 -> 3 103 -> 6 200 -> 0 201 -> 1 202 -> 4 203 -> 10 ์ด๋•Œ 103ํ˜ธ์—๋Š” 003ํ˜ธ์™€ 102ํ˜ธ๋ฅผ ํ•ฉ์นœ ๊ฐ’์ด ์žˆ๊ณ , 203ํ˜ธ์—๋Š” 103ํ˜ธ์™€ 202ํ˜ธ๋ฅผ ํ•ฉ์นœ ๊ฐ’์ด ์žˆ๋‹ค. ์ด๋ฅผ ์ ํ™”์‹์œผ๋กœ ๋ฐ”๊ฟ”๋ณด๋ฉด (k0n)ํ˜ธ = k-10nํ˜ธ + k0n-1ํ˜ธ ์ฝ”๋“œ๋กœ ๋ฐ”๊ฟ”๋ณด๋ฉด dp[floor][room] = dp[foor-1][n] + dp[floor][n-1]์ด ๋œ๋‹ค. ์ด๋ฅผ ์ฝ”๋“œ๋กœ ๋ฐ”๊พธ๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. Co.. ๋”๋ณด๊ธฐ
Slack์œผ๋กœ OAuth ์‚ฌ์šฉํ•˜๊ธฐ OAuth๋ž€? OAuth๋Š” ์ž์› ์†Œ์œ ์ž(๊ตฌ๊ธ€, ์นด์นด์˜ค, ํŽ˜์ด์Šค๋ถ, ์Šฌ๋ž™)์™€ HTTP ์„œ๋น„์Šค ๊ฐ„์˜ ์Šน์ธ ์ƒํ˜ธ ์ž‘์šฉ์„ ์กฐ์ •ํ•˜๊ฑฐ๋‚˜ ์ œ 3์ž ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์Šค์Šค๋กœ ์•ก์„ธ์Šค๋ฅผ ์–ป์Œ์œผ๋กœ์จ ์ž์› ์†Œ์œ ์ž์˜ ์„œ๋น„์Šค์— ๋Œ€ํ•œ ์ œํ•œ๋œ ์•ก์„ธ์Šค๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋Š” ์ธ์ฆ ํ”„๋ ˆ์ž„์›Œํฌ์ด๋‹ค. ํ”ํžˆ ๋ณผ ์ˆ˜ ์žˆ๋Š” ๊ตฌ๊ธ€ ๋กœ๊ทธ์ธ, ์นด์นด์˜ค ๋กœ๊ทธ์ธ์€ OAuth๋ฅผ ํ†ตํ•ด์„œ ํ•ด๋‹น ์„œ๋น„์Šค์— ๊ฐ€์ž…ํ•œ ์‚ฌ์šฉ์ž์˜ ์ •๋ณด๋ฅผ ์ผ๋ จ์˜ ๊ณผ์ •์„ ํ†ตํ•ด์„œ ์ œ 3์ž ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์„œ ํšŒ์›๊ฐ€์ž…์„ ์ƒ๋žตํ•˜๊ณ  ์„œ๋น„์Šค๋ฅผ ์ด์šฉํ•  ์ˆ˜ ๋„ ์žˆ๋‹ค. ๋˜ํ•œ OAuth์™€ ์Šฌ๋ž™์—์„œ ์ œ๊ณตํ•˜๋Š” api๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์Šฌ๋ž™์ด ์•„๋‹Œ ๋‚ด๊ฐ€ ๋งŒ๋“  ์›น์—์„œ ์Šฌ๋ž™์— ๋ฉ”์„ธ์ง€๋ฅผ ๋ณด๋‚ด๋Š” ๋“ฑ ์ž์› ์†Œ์œ ์ž๊ฐ€ ์ œ๊ณตํ•˜๋Š” ์„œ๋น„์Šค๋ฅผ ์ œ 3์ž ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ๋‹ค. OAuth๋Š” ํฌ๊ฒŒ Access Token๊ณผ S.. ๋”๋ณด๊ธฐ
[Algorithm/Java][๋ฐฑ์ค€] 14226๋ฒˆ ์ด๋ชจํ‹ฐ์ฝ˜ [BOJ] 14226๋ฒˆ ์ด๋ชจํ‹ฐ์ฝ˜ https://www.acmicpc.net/problem/14226 ๋ฌธ์ œ ์ ‘๊ทผ ํ™”๋ฉด์— ์žˆ๋Š” ์ด๋ชจํ‹ฐ์ฝ˜์„ S๊ฐœ ๋งŒ๋“œ๋Š” ์ตœ์†Œ ์‹œ๊ฐ„์„ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค. ํ™”๋ฉด์— ์žˆ๋Š” ์ด๋ชจํ‹ฐ์ฝ˜ ๊ฐœ์ˆ˜์™€ ํด๋ฆฝ๋ณด๋“œ์— ์žˆ๋Š” ์ด๋ชจํ‹ฐ์ฝ˜ ๊ฐœ์ˆ˜ ๊ทธ๋ฆฌ๊ณ  ์‹œ๊ฐ„ ์ •๋ณด๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” Emoticon ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค๊ณ  isVisited ๋ฐฐ์—ด์„ ํ™”๋ฉด์— ์žˆ๋Š” ์ด๋ชจํ‹ฐ์ฝ˜ ์ˆ˜์™€ ํด๋ฆฝ๋ณด๋“œ์— ์žˆ๋Š” ์ด๋ชจํ‹ฐ์ฝ˜ ์ˆ˜๋ฅผ ๊ณ ๋ คํ•  ์ˆ˜ ์žˆ๋„๋ก 2์ฐจ์› ๋ฐฐ์—ด๋กœ ๋งŒ๋“ค์—ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  BFS๋ฅผ ์ด์šฉํ•ด์„œ ํ™”๋ฉด์— ์žˆ๋Š” ์ด๋ชจํ‹ฐ์ฝ˜์„ ํด๋ฆฝ๋ณด๋“œ์— ์ €์žฅํ•˜๋Š” ๊ฒฝ์šฐ, ํ™”๋ฉด์— ์žˆ๋Š” ์ด๋ชจํ‹ฐ์ฝ˜ ํ•œ๊ฐœ๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ๊ฒฝ์šฐ, ํด๋ฆฝ๋ณด๋“œ์— ์žˆ๋Š” ์ด๋ชจํ‹ฐ์ฝ˜์„ ๋ถ™์—ฌ๋„ฃ๋Š” ๊ฒฝ์šฐ ์„ธ๊ฐ€์ง€๋ฅผ ๊ณ ๋ คํ•ด์„œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ๋‹ค. ๋ฌธ์ œ๋ฅผ ๋ณด๊ณ  ์ด์ฐจ์› ๋ฐฐ์—ด๋กœ ํ•ด๊ฒฐํ•  ์ƒ๊ฐ์„ ํ•˜์ง€ ๋ชปํ•ด์„œ ํ‘ธ๋Š”๋ฐ ๊ฝค๋‚˜ ์˜ค๋ž˜๊ฑธ๋ ธ๋‹ค...๊ทผ๋ฐ .. ๋”๋ณด๊ธฐ
[Algorithm/Java][๋ฐฑ์ค€] 2252๋ฒˆ ์ค„ ์„ธ์šฐ๊ธฐ [BOJ] 2252๋ฒˆ ์ค„ ์„ธ์šฐ๊ธฐ https://www.acmicpc.net/problem/2252 ๋ฌธ์ œ ์ ‘๊ทผ ์œ„์ƒ ์ •๋ ฌ์„ ํ†ตํ•ด์„œ ์‰ฝ๊ฒŒ ํ‘ผ ๋ฌธ์ œ์ด๋‹ค. ์œ„์ƒ ์ •๋ ฌ์ด๋ž€ ์ˆœํ™˜์ด ์—†๋Š” ๊ทธ๋ž˜ํ”„์—์„œ ์ •์ ๊ฐ„์˜ ์ˆœ์„œ๋ฅผ ๊ตฌํ•  ์ˆ˜ ์žˆ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค. ๊ฐ๊ฐ์˜ ํ•™์ƒ๋“ค์„ ์ •์ ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๊ณ , ์ž…๋ ฅ์œผ๋กœ ๋“ค์–ด์˜ค๋Š” ์ˆœ์„œ๋“ค์„ ๊ทธ๋ž˜ํ”„๋“ค์˜ ๊ฐ„์„ ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ์‰ฝ๊ฒŒ ๋ฌธ์ œ๊ฐ€ ํ’€๋ฆฐ๋‹ค. ์œ„์ƒ ์ •๋ ฌ์ด๋ž€ ์šฐ์„  ๋“ค์–ด์˜ค๋Š” ๊ฐ„์„ ์˜ ๊ฐœ์ˆ˜๋ฅผ ์„ธ๋Š” linkCnt์˜ ๊ฐ’์ด 0์ธ ์ •์ ๋“ค์„ ํ์— ๋„ฃ๊ณ , ํ•˜๋‚˜์”ฉ ํ์—์„œ ๋นผ๋ฉด์„œ ํ•ด๋‹น ์ •์ ๊ณผ ์—ฐ๊ฒฐ๋œ ์ •์ ๋“ค์— ๋Œ€ํ•ด์„œ linkCnt๋ฅผ -1 ํ•ด์ฃผ๊ณ  ๋‹ค์‹œ linkCnt์˜ ๊ฐ’์ด 0์ธ ์ •์ ๋“ค์„ ํ์— ๋„ฃ๋Š” ๋ฐฉ์‹์œผ๋กœ ์ง„ํ–‰๋œ๋‹ค. Code import java.util.ArrayList; import java.util.LinkedList; .. ๋”๋ณด๊ธฐ