์ ์ฒด ๊ธ ์ธ๋ค์ผํ ๋ฆฌ์คํธํ 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; .. ๋๋ณด๊ธฐ ์ด์ 1 2 3 4 ยทยทยท 13 ๋ค์