Spring/Spring Cloud
์ฌ๋ฌ ๊ธฐ์
๋ค์ ์ฑ์ฉ ๊ณต๊ณ ๋ฅผ ํ์ธํ ๋๋ง๋ค 'MSA' ๊ฐ ์ธ๊ธ๋๋ ๊ฒฝ์ฐ๊ฐ ๋ง์๋ค. MSA๊ฐ ๋ฌด์์ด๊ธธ๋ ๊ธฐ์
๋ง๋ค ์ธ๊ธํ๋ ๋น๋๊ฐ ์ฆ์์ง ํ์
ํด๋ณด๊ณ , MSA๋ฅผ ๊ตฌ์ถํ๊ณ ๊ด๋ฆฌํ ์ ์๋ Spring Cloud์ ๋ํด ์์๋ณด๊ฒ ๋ค. โ Cloud Native Architecture ๋?๐ท ํด๋ผ์ฐ๋ ๊ธฐ๋ฐ ๊ตฌ์กฐ์ ํน์ง ํ์ฅ ๊ฐ๋ฅํ ์ํคํ
์ณ์๋ฒ ๊ณ์ ์ค์น X โ ํด๋ผ์ฐ๋ ๋ด์์ ์๋ฒ ์ธ์คํด์ค ๋๋ ค์ ํ์ฅ์ํค๊ธฐ (scale out)ํ๋ ฅ์ ์ํคํ
์ณ์๋์ผ๋ก ํ๋ก์ ํธ๋ฅผ buildํ ํ ๋ฐฐํฌ X โ CI/CD๋ฅผ ํตํด ์๋์ผ๋ก ๋น๋ ํ ๋ฐฐํฌ ๐ ๋น์ฆ๋์ค ํ๊ฒฝ ๋ณํ์ ๋ํ ๋์ ์๊ฐ ๋จ์ถ๋ถํ ๋ ๋
๋ฆฝ์ ์ธ ์๋น์ค โ ์ดํ๋ฆฌ์ผ์ด์
์ ๊ตฌ์ฑํ๋ ๋๋ฉ์ธ ํน์ฑ์ ๋ฐ๋ผ ์๋น์ค ๊ฒฝ๊ณ ๊ตฌ๋ถ ๐ ์๋น์ค ์ข
์์ฑ ์ต์ํ & ์ํ XDiscover..
Spring/๐ ์๋ฌ ๊ธฐ๋ก
๋ฐฐํฌํ๊ณ ์ ๋ฌธ์ ๊ฐ ์์ด๋ณด์์ผ๋, ์๋ก๊ณ ์นจํ ๋๋ง๋ค 404 ์๋ฌ๊ฐ ๋ฌ๋ค. ๋ก์ปฌ์์๋ ์ ์์ ์ผ๋ก ์๋ํ๋ ๊ฒ ๊ฐ์๋ฐ.. ๊ฒ์ํด๋ณด๋ฉด ์ฌ๋ฌ ์ฌ๋๋ค์ด ํ ๋ฒ์ฏค์ ๊ฒช๊ณ ์ง๋๊ฐ ์๋ฌ์ธ ๊ฒ ๊ฐ๋ค. ๐ ์๋ฌ ํ์
ํ๊ธฐ ๋ฆฌ์กํธ์ ํน์ฑ์ ํ์
ํ๋ฉด ์ฝ๊ฒ ํด๊ฒฐํ ์ ์๋ ๋ฌธ์ ์๋ค. ์ฌ์ฉ์๊ฐ ์ฒ์ ์ ์ ํ ์๋ฒ์ ์์ฒญํ ์ index.html์ ๋ณด๋ด์ฃผ๋๋ฐ ์ด ํ์ผ์๋ bundle.js๋ css ํ์ผ์ด ์ฐ๊ฒฐ๋์ด ์๋ค. html ํ์ผ์ ์ฝ์ผ๋ฉด์ react-router๊ฐ ์๋๋๋๋ฐ ์๋ฒ ์ชฝ์ด ์๋ ํด๋ผ์ด์ธํธ ์ฌ์ด๋์์ ์ด๋ฃจ์ด์ง๋ฉฐ ๋จ์ํ ์ฃผ์๋ง ๋ฐ๊ฟ์ฃผ๋ฉฐ ๊ฒฝ๋ก๋ฅผ ์ก์์ค๋ค. ์ด๋ฌํ ์ํ์์ ์๋ก๊ณ ์นจ์ ํ๊ฒ ๋๋ฉด url์ react-router์ ๊ฒฝ๋ก๋ก ๋์ด ์๊ธฐ ๋๋ฌธ์ ์๋ฒ๋ ์ด๋ค ๊ฒ์ ๋ฐํํด๋ฌ๋ผ๋ ๊ฒ์ธ์ง ์ ์ ์์ด์ 404 ์๋ฌ๊ฐ..
Spring/๐ ์๋ฌ ๊ธฐ๋ก
๋ฐฐํฌ ์ ์๋ ๊ทธ๋ฅ ๋ก์ปฌ ๊ฒฝ๋ก ์ฝ์ด์ csv ํ์ผ์ ์๋ ๋ด์ฉ์ ๊ฐ์ ธ์ค๋๋ก ํ๊ณ , ๊ฒฐ๊ณผ๋ ์ ๋์๋ค.๋ฐฐํฌํ ๋๋ resources์ csv ํ์ผ ๋ฃ๊ณ ๋ด๋ถ ๋ฆฌ์์ค ์ฝ์ด์ ๋ ์ค ์์๊ฑด๋ง.. ์ฝ๊ฒ ๋์ง ์์๋ค. ๊ฒ์ํด๋ณด๋ JAR๋ก ํจํค์งํด์ ์คํ์ํค๋ฉด InputStream์ ์จ์ ์ฝ์ด์์ผ๋๋ค๊ณ ํ๋ค. JAR ์์ ๋ค์ด์๋ ๋ฆฌ์์ค๋ฅผ classpath๋ก ์ ๊ทผํด์ ์ฝ์ ๋๋ ํ์ผ์์คํ
์ ์๋ ํ์ผ์ ์ฝ์ด์ค๋ ๊ฒ์ด ์๋๋ผ JAR ์์ ์๋ ํ์ผ์ด๋ฏ๋ก getFile()๋ก ์ฝ์ ์ ์๋ค๊ณ ํ๋ค. ์์ ํ๊ธฐ ์ ์ฝ๋ try (BufferedReader br = new BufferedReader(new FileReader(filePath))) { String line; while ((line ..
Spring
์คํ๋ง๋ถํธ์ ๋ฆฌ์กํธ๋ฅผ ์ฐ๋์ํค๋ ๊ณผ์ ๊น์ง๋ ๊ทธ ์ ์ ์งํ ์๋ฃ. ๋น๋์ ๋ฐฐํฌํ๋ ๊ณผ์ ๊ธฐ๋ก. ๋ฐฐํฌํ ์๊ฐ์ด ์์๋๋ฐ ํด์ผํ๋ ์ํฉ์ด ์๊ธฐ์ ์๋นํ ๋ฌด์ํ ๋ฐฉ๋ฒ์ผ๋ก ์งํํ๋ค.. ๊ทธ๋ฅ ๋ณ๋ค๋ฅธ ์ค์ ์ํ๊ณ EC2 ์ธ์คํด์ค์ ์๋ฒ ๋์ฐ๋ ์ ๋๋ง.. ๋ฌผ๋ก ์ด๊ฒ๋ ๋ฐฐํฌ์ ํ ๊ณผ์ ์ด๊ธด ํ์ง๋ง.. ๊ทธ๋๋ ์ดํ๋์ ๊ณ ๋ฏผํ๋ฉด์ ํ๊ธด ํ์ผ๋๊น ๊ธฐ๋กํ๋ค. ๐ ๋น๋ & ๋ฐฐํฌ ๊ณผ์ 1. ๋ฆฌ์กํธ & ์คํ๋ง๋ถํธ ํตํฉ ๋น๋ (Gradle) 2. ๋ฐฐํฌ (EC2 ์ธ์คํด์ค์ ์๋ฒ ๋์ฐ๊ธฐ) 2-1. MySQL ๋ก์ปฌ์์ EC2๋ก dump .. โญ๏ธ ๐ด ํตํฉ ๋น๋ํ๊ธฐ ์คํ๋ง๋ถํธ๋ฅผ ์คํ์ํค๊ณ , ๋ฆฌ์กํธ๋ฅผ npm start๋ก ๋ฐ๋ก ์คํ์์ผฐ๋๋ฐ ํ๋ฒ์ ์คํ์ํค๊ธฐ ์ํด ํตํฉ ๋น๋๋ฅผ ํ๋ค. ์ฐ์ ๋๋ ํ ๋ฆฌ ๊ตฌ์กฐ๋ ์ด๋ฌํ๋ค. ํตํฉ ๋น๋์ํค๊ธฐ ์ ์ fronte..
์๊ณ ๋ฆฌ์ฆ/BOJ
โจ BFS โ ๋์์ ์ด๋์ํค๊ธฐ https://www.acmicpc.net/problem/4179 4179๋ฒ: ๋ถ! ์
๋ ฅ์ ์ฒซ์งธ ์ค์๋ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถ๋ ๋ ์ ์ R๊ณผ C๊ฐ ์ฃผ์ด์ง๋ค. ๋จ, 1 ≤ R, C ≤ 1000 ์ด๋ค. R์ ๋ฏธ๋ก ํ์ ๊ฐ์, C๋ ์ด์ ๊ฐ์์ด๋ค. ๋ค์ ์
๋ ฅ์ผ๋ก R์ค๋์ ๊ฐ๊ฐ์ ๋ฏธ๋ก ํ์ด ์ฃผ์ด์ง๋ค. ๊ฐ๊ฐ์ ๋ฌธ์ www.acmicpc.net ๐ ๊ณ ๋ คํด์ผํ ์ ๋ถ๊ณผ ์งํ์ด๋ฅผ ๋์์ ์ด๋์์ผ์ผํ๋ค. ๋์์ ์ด๋์ํค๊ธฐ ์ํด์ ๋ ๊ฐ์ ํ๋ฅผ ์ฌ์ฉํ๋ค. ๋ถ์ ์งํ์ด์ ์กด์ฌ ์ฌ๋ถ์ ๋ํด ์ํฅ์ ๋ฐ์ง ์๋๋ค. (์งํ์ด๊ฐ ์๊ฑฐ๋ ์์ด๋ ์ธ์ ๋ ์ง ๋ฒฝ๋ง ์๋๋ผ๋ฉด ์ธ์ ๋ ์ง ์ ํ ๊ฐ๋ฅ) ์งํ์ด๋ ๋ถ์ ์กด์ฌ ์ฌ๋ถ์ ๋ํด ์ํฅ์ ๋ฐ๋๋ค. (๋ถ์ด ์กด์ฌํ๋ค๋ฉด ์ด๋ ๋ถ๊ฐ) ์งํ์ด๊ฐ ๊ฐ์ฅ์๋ฆฌ์ ๋๋ฌํ๋ฉด ๋ฏธ๋ก๋ฅผ ํต๊ณผํ ..
์๊ณ ๋ฆฌ์ฆ/๐๏ธ ์ ๋ฆฌ
์ต์์ ์ฅํธ๋ฆฌ(MST / Minimum Spanning Tree)๋ ๋ฐฉํฅ์ฑ์ด ์๋ ๊ฐ์ค ๊ทธ๋ํ์์ ๊ฐ์ ์ ๊ฐ์ค์น์ ํฉ์ด ์ต์์ธ ์ ์ฅ ํธ๋ฆฌ์ด๋ค. ๐น๏ธ ํฌ๋ฃจ์ค์นผ ์๊ณ ๋ฆฌ์ฆ & ํ๋ฆผ ์๊ณ ๋ฆฌ์ฆ ๊ณผ์ ๐น ํฌ๋ฃจ์ค์นผ ์๊ณ ๋ฆฌ์ฆ : ๊ฐ์ ์ค์ฌ์ผ๋ก ์ต์ ์ ์ฅ ํธ๋ฆฌ ๊ตฌํ๊ธฐ (๊ฐ์ ์ ๊ฐ์๊ฐ ์ ๋ค๋ฉด ํ๋ฆผ๋ณด๋ค ํจ์จ์ !) ๊ฐ์ ๋ค์ ๊ฐ์ค์น๋ฅผ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ ํ ๊ฐ์ค์น๊ฐ ๋ฎ์ ๊ฐ์ ๋ถํฐ ์ ํํ๋ค. ์ ํํ ๊ฐ์ ์ผ๋ก ์ธํด ์ฌ์ดํด์ด ํ์ฑ๋๋ค๋ฉด ๋ค์ ๊ฐ์ ์ผ๋ก ๋์ด๊ฐ๊ณ , ์ฌ์ดํด์ด ํ์ฑ๋์ง ์๋๋ค๋ฉด ํด๋น ๊ฐ์ ์ ์ ํํ๋ค. โ ์ฌ์ดํด์ด ํ์ฑ๋๋์ง ํ์
ํ๊ธฐ ์ํด Union-Find ์ฐ์ฐ์ ์งํํ๋ค. ์ ์ ์ด N๊ฐ์ธ ๊ทธ๋ํ์ผ ๋, N-1๊ฐ์ ๊ฐ์ ์ ์ ํํ๋ค๋ฉด ๋ฐ๋ณต๋ฌธ์ ์ข
๋ฃํ๋ค. ๐น ํ๋ฆผ ์๊ณ ๋ฆฌ์ฆ : ์ ์ ์ค์ฌ์ผ๋ก ์ต์ ์ ์ฅ ํธ๋ฆฌ ๊ตฌํ๊ธฐ (์ ์ ์ ๊ฐ์๊ฐ..
์๊ณ ๋ฆฌ์ฆ/BOJ
โจ BFS + DFS + ์์ ํ์ https://www.acmicpc.net/problem/14502 14502๋ฒ: ์ฐ๊ตฌ์ ์ธ์ฒด์ ์น๋ช
์ ์ธ ๋ฐ์ด๋ฌ์ค๋ฅผ ์ฐ๊ตฌํ๋ ์ฐ๊ตฌ์์์ ๋ฐ์ด๋ฌ์ค๊ฐ ์ ์ถ๋์๋ค. ๋คํํ ๋ฐ์ด๋ฌ์ค๋ ์์ง ํผ์ง์ง ์์๊ณ , ๋ฐ์ด๋ฌ์ค์ ํ์ฐ์ ๋ง๊ธฐ ์ํด์ ์ฐ๊ตฌ์์ ๋ฒฝ์ ์ธ์ฐ๋ ค๊ณ ํ๋ค. ์ฐ๊ตฌ์๋ ํฌ www.acmicpc.net ๐๊ณ ๋ คํด์ผํ ์ ๋ฒฝ์ 3๊ฐ ์ธ์ด๋ค. โ ์ผ์ผ์ด 3๊ฐ์ ๋ฒฝ์ ์ธ์๋ณธ ํ ๋ฐ์ด๋ฌ์ค๋ฅผ ํผ๋จ๋ ค ์์ ์์ญ์ด ์ต๋์ธ ๊ฒฝ์ฐ๋ฅผ ๊ตฌํ๋ค. (๋ฐฑํธ๋ํน + ์์ ํ์) ๋ฒฝ์ 3๊ฐ ์ธ์ด ํ ๋ฐ์ด๋ฌ์ค๊ฐ ํผ์ง๋ ๊ฒฝ์ฐ๋ ๋ค์ํ๋ฏ๋ก ๋ณต์ฌ๋ณธ์ ๋ง๋ค์ด์ ๊ตฌํ๋ค. ๐น๏ธ ํ์ด๊ณผ์ 1๏ธโฃ ๋ฐ์ด๋ฌ์ค์ ๋ฒฝ์ด ์๋ ๊ณณ์ ์ ๋ณด๋ฅผ 2์ฐจ์ ๋ฐฐ์ด์ ์ ์ฅํ๋ค. 2๏ธโฃ ๋ฒฝ์ ์ธ์ด๋ค. โ 3๊ฐ์ ๋ฒฝ์ ์ธ์์ผ ํ๋ฏ๋ก ์กฐํฉ์ ์๊ฐํ๋ฉด ..
์๊ณ ๋ฆฌ์ฆ/BOJ
โจ ๊ตฌํ โ 'ํ' ์ด์ฉํ๊ธฐ https://www.acmicpc.net/problem/3190 3190๋ฒ: ๋ฑ 'Dummy' ๋ผ๋ ๋์ค๊ฒ์์ด ์๋ค. ์ด ๊ฒ์์๋ ๋ฑ์ด ๋์์ ๊ธฐ์ด๋ค๋๋๋ฐ, ์ฌ๊ณผ๋ฅผ ๋จน์ผ๋ฉด ๋ฑ ๊ธธ์ด๊ฐ ๋์ด๋๋ค. ๋ฑ์ด ์ด๋ฆฌ์ ๋ฆฌ ๊ธฐ์ด๋ค๋๋ค๊ฐ ๋ฒฝ ๋๋ ์๊ธฐ์์ ์ ๋ชธ๊ณผ ๋ถ๋ชํ๋ฉด ๊ฒ์์ด ๋๋๋ค. ๊ฒ์ www.acmicpc.net ๐ ๊ณ ๋ คํด์ผํ ์ ์๋ฃ๊ตฌ์กฐ 'ํ'์ ํน์ฑ์ ์ด์ฉํด์ ํ๊ธฐ ๋ฑ์ ๋จธ๋ฆฌ๋ฅผ ๋จผ์ ์ด๋์์ผ ๋ชธ๊ธธ์ด ๋๋ฆฌ๊ธฐ ํด๋นํ๋ ์นธ์ ์ฌ๊ณผ๊ฐ ์์ผ๋ฉด ์ฌ๊ณผ๋ฅผ ๋จน๊ณ ์ฌ๊ณผ๋ฅผ ์์ ์ฃผ๊ธฐ ๋ฑ์ ๊ผฌ๋ฆฌ๊ฐ ์๋ ๋ชธํต์ ๋ง๋๋ฉด ๋๋ด๊ธฐ โ return !! ๋ฒฝ์ ๋ฟ์ผ๋ฉด ๋๋ด๊ธฐ โ return !! ๋ฑ์ (1, 1)์ ์กด์ฌ ํ, ์ด ์ ๊ตฌ๋ถํ๊ธฐ ! ๋ฐฉํฅ ๋ฐ๊ฟ ๋ ํจ์จ์ ์ธ ๋ฐฉ๋ฒ ์๊ฐํด๋ณด๊ธฐ ๐น๏ธ ํ์ด๊ณผ์ 1๏ธโฃ ํ, ์ด์..