๋ชฉ๋ก๋ถ๋ฅ ์ ์ฒด๋ณด๊ธฐ (105)
์ฐ์ ๊ธฐ๋ก ๐ช
CD๋ฅผ ํ๋ฉด ๋ณดํต codeploy๋ฅผ ์ด์ฉํด ๋ง์ด ํ๋ ๊ฒ ๊ฐ๋๋ฐ ๋ค๋ฅธ ๋ฐฉ๋ฒ ์ญ์ ๊ธฐ๋กํด๋ณด๊ณ ์ ํ๋ค. ์๋ฒ์ ssh๋ก ์ ์ํ์ฌ ์ง์ ๋ ๋ช ๋ น์ด๋ฅผ ์ฐ์ํด์ ์คํํด์ฃผ๋ ์์ ์ ์๋ํ ํ๋ ๋ฐฉ๋ฒ์ ๊ธฐ๋กํ ๊ธ์ด๋ค. ์ด ๋ฐฉ๋ฒ์ ์์ ํ๊ณ ๊ณต์์ ์ธ ๋ฐฉ๋ฒ์ด๋ผ๊ธฐ ๋ณด๋ค๋ ์ผ๋งค ๋๋์ด ๊ฐํ์ง๋ง ์ผ๋จ ๋์๊ฐ๋๋ก ํ๋ ๋ฐ์ ๊ด์ฌ์ด ์๋ ์ฌ๋์ ์ํด ๊ทธ ๋ฐฉ๋ฒ์ ๊ธฐ๋กํด๋ณด๊ณ ์ ํ๋ค. ์ฌ์ ์๊ตฌ ์ฌํญ EC2 ๋ฐ ๋ฐฐํฌํ ์ฝ๋ EC2 password๋ก ์ ์ํ๋ ์ค์ ์ํฉ ๋์ ๊ฒฝ์ฐ ์๋ฒ์ ์ ์ํด์ ์คํ๋์ด์ผ ํ๋ ๋ช ๋ น์ด๋ ์๋์ ๊ฐ๋ค. pm2 kill rm -rf dist //ํ์ ์คํฌ๋ฆฝํธ ๋น๋ ํ์ผ ์ญ์ git pull origin main //์ดํ ๋น๋ฐ๋ฒํธ ์ ๋ ฅ yarn run buildOnly //ํ์ ์คํฌ๋ฆฝํธ ํ์ผ ๋น๋ pm2 start..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/zcLL7/btr8xOehcuQ/2Ips9n1ErOlGLGjkF7ZPjk/img.png)
์ด ๊ธ์ ์๋ ์์์ ๋ณด๊ณ ๊ณต๋ถํ ๋ด์ฉ์ ๊ธฐ๋กํ ๊ธ์ ๋๋ค. ์์ ๋ฐ๋ก๊ฐ๊ธฐ ๋ชฉํ ํ๋ฉ ํ๋ก๊ทธ๋จ์ ๊ด์ฅํ๋ ์ค๋งํธ ์ปจํธ๋ ๋ง๋ค๊ธฐ ํ๋ก์ ํธ์ ์ค๋, ๋ชฉํ ๊ธ์ก, ํ๋ก์ ํธ์ ๊ธฐ๋ถํ ์ฌ๋๋ค์ ๋ชฉ๋ก, ๊ทธ๋ค์ ๊ตฌ๋งค๊ธ์ก, ๊ธฐ๋ถ๊ธ์ ๋์ ์ด์ก, ๋ฐ๋๋ผ์ธ ๋ฐ๋๋ผ์ธ ๋๋ฌ ์ ๊ธฐ๋ถ๊ธ ์ด์ก>=๋ชฉํ๊ธ์ก์ผ ๊ฒฝ์ฐ ๋์ ํ๋ก์ ํธ ์ค๋์๊ฒ ์ ๋ฌ -๊ธฐ๋ถ๊ธ ์ด์ก process.exit(0)) .catch((error) => { console.error(error); process.exit(1); }); ๊ทธ๋ฐ ๋ค์ ์๋ ์ฝ๋๋ฅผ ์ปค๋งจ๋์ฐฝ์ ์ ๋ ฅํด์ฃผ๋๋ก ํ์. npx hardhat run scripts/deploy.js --network goerli ์ฑ๊ณตํ ๊ฒฝ์ฐ ์ฝ์ ์ฐฝ์ contract address๊ฐ ์ถ๋ ฅ๋๋ค. ์๋ฌ๊ฐ ๋ฌ์ ๊ฒฝ์ฐ ์๋ ERR..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/xNreT/btscTh3DHp2/aPQcJ0j1B0fzACmifqnnQ0/img.png)
์ค๋์ ์๋ง ๊ณผ์ ์์ ์์๋ ๊ฐ๋ฒผ์ด ์ผ๋ค์ ์ด์ผ๊ธฐํด๋ณด๋ ค๊ณ ํฉ๋๋ค. ์์์๋ ์ ๋ฐ์ด๋ ํ๊ฐ๊ฐ์ ๋ฑ๋ฑํ ์ด์ผ๊ธฐ๋ฅผ ํ๋๋ผ ๋ฏธ์ฒ ๋ด์ง ๋ชปํ๋ ์ด์ผ๊ธฐ๋ค์ ๋ด์๋ณด๋ ค ํด์. ์ด ๊ธ์ ๊ฐ์ธ์ ๊ฒฝํ์ ๊ทผ๊ฑฐํ ์ฃผ๊ด์ ์ธ ๋ด์ฉ์ ๋ด๊ณ ์์ผ๋ ์ฐธ๊ณ ์ฉ์ผ๋ก ๊ฐ๋ณ๊ฒ ์ฝ์ผ์๋๊ฑธ ์ถ์ฒํฉ๋๋ค๐ ์๋ง์ ์ง์๊ธ ์ ๋ ์ฐ์ ์๋ง์ ์ฅ์ ์ ๋ํด ๋ง์๋๋ฆฌ๊ณ ์ถ์ด์. ์๋ง๋ฅผ ํ๊ฒ ๋๋ฉด ํ๋ก์ ํธ ์ง์๋น, ์๊ธฐ ์ฃผ๋ํ ํ์ต ์ง์๋น, it๊ธฐ๊ธฐ ์ง์๊ธ ๋ฑ์ ์ง์๋ฐ์ ์ ์์ต๋๋ค. ๋จผ์ ํ๋ก์ ํธ ์ง์๋น๋ ํ ๋น 720๋ง์์ด ์ฃผ์ด์ง๋๋ค. ์ด ๋์ ํ๋ก์ ํธ๋ฅผ ์งํํ๋๋ฐ ์ฌ์ฉํ ์ ์์ด์. ์ค๋ฌธ ์กฐ์ฌ ๋ณด์์ด๋ ํ๋ก์ ํธ ์ ํ์ํ ๋ถํ์ ๊ตฌ๋งคํ๊ฑฐ๋ ํ๋๋ฐ, ์ด๋ ๊ฒ ๋ง์ ๋์ ํ๋ก์ ํธ๋น๋ก ์ฌ์ฉํ ์ ์๋ ๊ธฐํ ์์ฒด๊ฐ ๊ต์ฅํ ๋๋ฌผ๋ค๊ณ ์๊ฐํด์. ํนํ ๋ง์ผํ ์ ํ ๊ฒ์ด..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/vyNlh/btscUuu5697/ZQHKJ690wru6PvZLhBogB1/img.png)
์ด ๊ธ์ ์ํํธ์จ์ด ๋ง์์คํธ๋ก 13๊ธฐ ์๋ฃ ํ ์๋ง ๊ณผ์ ์ ๋๋์๋ณด๋ฉฐ ์ฐ๋ ๊ธ์ ๋๋ค. ์ฃผ๊ด์ ์ธ ๋ด์ฉ์ด ๋ง์ด ๋ค์ด๊ฐ ์์ผ๋ ๊ฐ๋ณ๊ฒ ์ฝ์ด์ฃผ์๋ฉด ๊ฐ์ฌํ๊ฒ ์ต๋๋ค. “์ํํธ์จ์ด ๋ง์์คํธ๋ก ํ๊ณ 1 : ์๋น๊ณผ์ ”๊ณผ ์ด์ด์ง๋ ๊ธ์ ๋๋ค. ์ ๋ด์ฉ์ ๋ชจ๋ฅด๋ ์ํ๋ก ์ฝ์ด๋ ๋ฌด๋ฐฉํ๋, ์๋ง์ ์ ์ฒด์ ์ธ ๊ณผ์ ์ ๋ํด ๊ถ๊ธํ์๋ค๋ฉด ๋จผ์ ์ฝ๊ณ ์ค์๋ ๊ฒ์ ์ถ์ฒ๋๋ฆฝ๋๋ค ๐ ์ํํธ์จ์ด ๋ง์์คํธ๋ก 13๊ธฐ ํ๊ณ 1 : ์๋น๊ณผ์ ์ํํธ์จ์ด ๋ง์์คํธ๋ก 13๊ธฐ ํ๊ณ 1 : ์๋น๊ณผ์ ์ด๋ฒ์๋ ์ํํธ์จ์ด ๋ง์์คํธ๋ก ํ๋์ ํ๋ฉฐ ์์๋ ์ผ๋ค์ ์ ์ด๋ณด๋ ค ํฉ๋๋ค. ์ฃผ๊ด์ ์ธ ๋ด์ฉ์ด ๋ง์ด ๋ค์ด๊ฐ ์์ผ๋ ์ํํธ์จ์ด ๋ง์์คํธ๋ก์์ ์ด๋ค ํ๋์ ํ๊ณ , ์ด๋ค ์ผ์ด ์์๋์ง ์ฐธ๊ณ ํ sectumsempra.tistory.com ์ํํธ์จ์ด ๋ง์์คํธ๋ก ๋ณธ ๊ณผ์ ์ 6~1..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/A7bCZ/btscZrw5STP/gkVwtC70mKKz3mKoNkC64k/img.png)
์ด๋ฒ์๋ ์ํํธ์จ์ด ๋ง์์คํธ๋ก ํ๋์ ํ๋ฉฐ ์์๋ ์ผ๋ค์ ์ ์ด๋ณด๋ ค ํฉ๋๋ค. ์ฃผ๊ด์ ์ธ ๋ด์ฉ์ด ๋ง์ด ๋ค์ด๊ฐ ์์ผ๋ ์ํํธ์จ์ด ๋ง์์คํธ๋ก์์ ์ด๋ค ํ๋์ ํ๊ณ , ์ด๋ค ์ผ์ด ์์๋์ง ์ฐธ๊ณ ํ๋ ์ ๋๋ก ๊ฐ๋ณ๊ฒ ์ฝ์ด์ฃผ์๋ฉด ๊ฐ์ฌํ๊ฒ ์ต๋๋ค. ํ ๋งค์นญ(04.12~05.31) ํ์ ๋งค์นญ ์ ๋ ์ฐ์์ผํฐ์ ์ฒ์์ผ๋ก ๊ฐ ๊ฒ์ด ์๋นํ ๋ฆ์ ํธ์ด์์ต๋๋ค. ์ต์ข ์ ๋ฐ๋ ๊ฒ์ 4์ 8์ผ ๊ธ์์ผ์ธ๋ฐ ์ํ ๊ธฐ๊ฐ ๋๋ฌธ์ ์ผํฐ์ ์ฒ์ ๊ฐ ๊ฒ์ 4์ 28์ผ์ด์์ด์. ์ค๊ฐ ์ค๊ฐ ์จ๋ผ์ธ ๋ฉํ ๋ง์๋ ๋ช ๋ฒ ์ฐธ์ฌํ๋๋ฐ ์ด๋ฏธ ํ์ ๊ตฌํ์ ๋ถ๋ค์ด ๋ง์์ ๋นจ๋ฆฌ ํ์์ ๊ตฌํด์ผ๊ฒ ๋ค ์ถ์ด์ ์ผํฐ๋ก ๋ฌด์์ ์ฐพ์๊ฐ์ต๋๋ค. ์ฐ์์์ผ๋ก ์ ๋ฐ๋๋ฉด ์ฌ๋ฌด๊ตญ์์ Webex์ ์ด๋ํด์ฃผ์๋๋ฐ, ๊ทธ๊ณณ์์ ํ์์ ๊ตฌํ๋ ๋ถ๋ค์ด ์ ๋ง ๋ง์์ต๋๋ค. ๋ณดํต Webex์ ์ฌ๋ผ์จ ๊ธ์ ๋ณด๊ณ ์ฐ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/Kbfk1/btscRq782Ow/UUVl1PmwcxF2HoXvp2gSDk/img.png)
์ด ๊ธ์ 2022๋ ์ 13๊ธฐ ์ํํธ์จ์ด ๋ง์์คํธ๋ก ์จ๋ผ์ธ ๊ณผ์ ์ค๋ช ํ๋ฅผ ๋ณด๊ณ ์ ๋ฆฌํ ๊ธ์ ๋๋ค. ํฌ๊ฒ ์ํํธ์จ์ด ๋ง์์คํธ๋ก์ ๋ํ ์ง๋ฌธ, ์ ๋ฐ ๊ณผ์ ์ ๋ํ ์ง๋ฌธ์ผ๋ก ๋ถ๋ฅํ์์ต๋๋ค. ๊ฐ์ฅ ๊ถ๊ธํด ํ์ค ์๋ง์ ์ธ์ฌ์์ ๋ํด์๋ ์๋์ ๊ฐ์ด ๋ต๋ณํ์ จ์ต๋๋ค. ํ์๋ค์ ์์, ์ธ์ฑ์ ๋น๋กฏํด ๊ทธ๋์ ํ๊ต์ํ, ํ๋ ๋ฑ์ ํตํด ๋ค๋ฅธ ์ฐ์์๋ค๊ณผ ํจ๊ป ํ์ ์ ์ด๋์ด๊ฐ ์ ์๋์ง๋ฅผ ํ๊ฐํฉ๋๋ค. ๊ฐ์ฅ ์ค์ํ ๊ฒ์ ์ฐ์๊ณผ์ ์ ๋ํ ์์ง์ ์ด์ ์ ๋๋ค. SOMA ์ฐ์ ๊ณผ์ ์ ํ๋ก์ ํธ๋ฅผ ์์ฑํ๋ ๊ฒ ๋ฟ๋ง ์๋๋ผ ํ์๊ณผ ํ์ ์ ์ด๋ค์ ๋๊ฐ๋ ์์๋ ์ค์ํฉ๋๋ค. ์ฆ ๊ฐ๋ฐ ๋ฅ๋ ฅ์ ์ดํํ๋ ๊ฒ๋ ์ค์ํ์ง๋ง ํ๋ก์ ํธ๋ฅผ ์์ฑ์์ผ ๋๊ฐ ์ ์๋ค๋ ์์ง, ์๋ง์ ๋ํ ์ด์ ์ ์ดํํ๋ ๊ฒ๋ ๋ชป์ง ์๊ฒ ์ค์ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ์์์ผ๋ก ๋ณด๊ณ ์ถ์ ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bVfEH0/btrSURXr1ek/k750psPEKzii3r10aP0Q9K/img.png)
๊ฐ๋ง์ ์๋ง ํ๊ณ ๋ก ๋์์์ต๋๋ค. 4์ 29์ผ ์ดํ๋ก ๊ธ์ ์ฐ์ง ์์๋๋ฐ ์ ํ ๊ธ์ ์ฐ์ง ์์ ๊ฒ์ ์๋๊ตฌ์ ์๋ง ํ๋์ ํ๋๋ผ ๋ฐ์๊ธฐ๋ ํ๊ณ ์ด๋ ์ ๋ ๋์ ์ธ ๊ฒ์ ์๋๋ฐ ์์ง ๋ด์ฉ์ ๊ฐ๋ค๋ฌ์ง ๋ชปํด์ ์ฌ๋ฆฌ์ง ๋ชปํ์ต๋๋ค. ์ด ๊ธ๋ค์ ์์ผ๋ก ์ฐจ๊ทผ ์ฐจ๊ทผ ์ ๋ก๋ ํ ์์ ์ด์์. 6๊ฐ์ ๊ฐ ์ํํธ์จ์ด ๋ง์์คํธ๋ก ํ๋์ ์ด์ฌํ ํ๋ฉด์ ๋ง์ ๊ฒ์ ๋ฐฐ์ฐ๊ณ , ๋๋ ์ ์์์ด์. ๋ค์ํ ์ฌ๋๋ค์ ๋ง๋๋ณด๊ณ ๋คํธ์ํน ํ ์ ์์๊ณ ํน๋ณํ ๊ฒฝํ์ ํ ์ ์์๋ ์ข์ ๊ธฐํ์๋ค๋ ์๊ฐ์ด ๋ค์ด์ 6๊ฐ์ ๊ฐ์ ์ฌ์ ์ ๋๋์ ๋ณผ ๊ฒธ, ๊ทธ๋ฆฌ๊ณ ์๋ง์ ์ง์ํ์๋ ค๋ ๋ถ๋ค์ ์ํด ๊ธ์ ์์ฑํด๋ณผ๊น ํฉ๋๋ค. ํ๊ณ ๋ฅผ ํด๋ณด์๋ ๊ธ์ด ๊ธธ์ด์ง ๊ฒ ๊ฐ์ ์ ๋ฐ๊ณผ์ , ์ฐ์๊ณผ์ , ๊ทธ๋ฆฌ๊ณ ๋ง๋ฌด๋ฆฌ 3๊ฐ์ง ํํธ๋ก ๊ธ์ ์์ฑํ๊ฒ ๋ ๊ฒ ๊ฐ์ต๋๋ค. ๋ท ๋ด์ฉ๊น์ง ์์ฑ์ด..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/d0FJzS/btrALuGw2YI/XR7kZDPhns8KyfjS2peYsk/img.png)
๋ฐฑ์๋ ํ๋ก์ ํธ๋ฅผ ์งํํ๋ค ๋ณด๋ฉด ์ผ๋ฐ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์๋ฒ์ ์ฌ๋ฆฌ๊ณ ์์ ์ ํ๊ฒ ๋๋ค. ํผ์ ์์ ํ ๋๋ ๋ก์ปฌ์์ ํ ์คํธํด๋ ๋์ง๋ง ํ์ ์ ํ ๋์๋ ๊ฐ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๊ณต์ ํ๊ธฐ ์ํด ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์๋ฒ์ ์ฌ๋ ค์ผ ํ๋ค. 1. AWS์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ตฌ์ถํ๊ธฐ ์ฐ์ AWS RDS๋ฅผ ์ด์ฉํด ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์๋ฒ์ ์ฌ๋ ค๋ณด๋๋ก ํ์. ์ ์ผ ๋จผ์ ์๋ aws์ฌ์ดํธ์ ๋ก๊ทธ์ธ์ ํด์ผํ๋ค. https://aws.amazon.com/ko/ ํด๋ผ์ฐ๋ ์๋น์ค | ํด๋ผ์ฐ๋ ์ปดํจํ ์๋ฃจ์ | Amazon Web Services ๊ฐ๋ฐ์, ๋ฐ์ดํฐ ์ฌ์ด์ธํฐ์คํธ, ์๋ฃจ์ ์ค ์ํคํ ํธ ๋๋ AWS์์ ๊ตฌ์ถํ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์ฐ๋ ๋ฐ ๊ด์ฌ์ด ์๋ ๋ชจ๋ ์ฌ์ฉ์์ฉ ๋ฌด๋ฃ ์จ๋ผ์ธ ๊ต์ก AWS ์ ๋ฌธ๊ฐ๊ฐ ๊ตฌ์ถํ 500๊ฐ ์ด์์ ๋ฌด๋ฃ ๋์งํธ ๊ต์ก ๊ณผ์ aws...
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/AJkyS/btrswULsHkr/xGiFaNlkARBi1xDRHhKnT1/img.png)
์ด ๊ฐ์์์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ SQL์ ๊ธฐ๋ณธ์ ์ธ ๋ช ๋ น์ด์ ๋ํด ๋ค๋ฃจ๊ณ ์๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค์ SQL ์ํค๋ฐฑ๊ณผ์ ์ํ๋ฉด ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์ฌ๋ฌ ์ฌ๋์ด ๊ณต์ ํ์ฌ ์ฌ์ฉํ ๋ชฉ์ ์ผ๋ก ์ฒด๊ณํํด ํตํฉ, ๊ด๋ฆฌํ๋ ๋ฐ์ดํฐ์ ์งํฉ์ด๋ค. ์ด๋ฐ ๋ฐ์ดํฐ๋ค์ ๊ด๋ฆฌํ๊ธฐ ์ํ ํ๋ก๊ทธ๋จ์ DBMS(DataBase Management System)๋ผ๊ณ ํ๋ค. ์ด DBMS์ ์ข ๋ฅ๋ก๋ MySQL, Oracle, SQLite๋ฑ ์ฌ๋ฌ๊ฐ์ง๊ฐ ์๋๋ฐ ์ด๋ฒ ๊ฐ์์์๋ MySQL์ ๋ํด ๋ค๋ฃจ๊ณ ์๋ค. MySQL์ ์คํ์์ค RDBMS๋ก, ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋๋ DBMS์ค ํ๋์ด๋ค. ๊ทธ๋ ๋ค๋ฉด SQL์ด๋ผ๋ ๊ฒ์ ๋ฌด์์ผ๊น? SQL์ Structed Query Language์ ์ฝ์์ด๋ค. ์ธ๊ฐ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ค๋ฃจ๊ธฐ ์ํ ์ธ์ด๋ผ๊ณ ์ดํดํ๋ฉด ๋ ๊ฒ์ด๋ค. ์์๋ ์๋์ ๊ฐ๋ค..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/F0rP8/btrskE4u4y4/QXTgxmUnEppCxCMWTfLcU0/img.png)
์ด์ ๊ธ ๋ณด๋ฌ๊ฐ๊ธฐ https://sectumsempra.tistory.com/119 ์ฝ๋ํ๋ ์ ์ฒดํ๋จ 6-1 : Spring Boot ์น ๊ฐ๋ฐ ์ ๋ฌธ ์ด๋ฒ ๊ฐ์์์๋ ๋ฐฑ์๋์ ๋ํ ๊ธฐ์ด์ ์ธ ์ง์๊ณผ Spring Boot์ ๊ฐ๋จํ ์ด๋ก ๊ณผ ์ค์ต์ ๋ํด ๋ค๋ฃจ๊ณ ์๋ค. ๋ด์ฉ์ด ๋ง์ 2๊ฐ์ ๊ธ์ ๋๋ ์ ์ ๋ฆฌํด๋ณด๊ณ ์ ํ๋ค. IP์ Port์ ๊ฐ๋ ์ผ๋ฐ์ ์ผ๋ก Client, ์ฆ sectumsempra.tistory.com ์ด๋ฒ ๊ธ์์๋ Spring Bean๊ณผ ์์กด์ฑ ์ฃผ์ , ๊ทธ๋ฆฌ๊ณ ์ ๊ธ์์ ๋ค๋ฃฌ Spring Controller์ ๋ํด ์์ธํ ์์ฑํด ๋ณด๊ณ ์ ํ๋ค. ๊ทธ๋ฆฌ๊ณ ๋ง์ง๋ง์ผ๋ก API ๋ฌธ์์ ๋ํด์๋ ๊ฐ๋จํ ์์๋ณผ ๊ฒ์ด๋ค. Spring Bean๊ณผ ์์กด์ฑ ์ฃผ์ ํ๋์ ๋ชจ๋(ํด๋์ค, ํจํค์ง ๋ฑ)์ด ๋ค๋ฅธ ๋ชจ๋์ ์ฌ์ฉํ๋ ๊ฒ์..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/ygI2p/btrsiGuAkFn/YN7GArYZePSaQgTaoXomU1/img.png)
์ด๋ฒ ๊ฐ์์์๋ ๋ฐฑ์๋์ ๋ํ ๊ธฐ์ด์ ์ธ ์ง์๊ณผ Spring Boot์ ๊ฐ๋จํ ์ด๋ก ๊ณผ ์ค์ต์ ๋ํด ๋ค๋ฃจ๊ณ ์๋ค. ๋ด์ฉ์ด ๋ง์ 2๊ฐ์ ๊ธ์ ๋๋ ์ ์ ๋ฆฌํด๋ณด๊ณ ์ ํ๋ค. IP์ Port์ ๊ฐ๋ ์ผ๋ฐ์ ์ผ๋ก Client, ์ฆ ์น ๋ธ๋ผ์ฐ์ ๋ ์๋ฒ์ ์์ฒญ์ ํ๊ณ , ์๋ฒ๊ฐ ์ด ์์ฒญ์ ๋ํด ์๋ต์ ํ๋ฉด ์ด๋ฅผ ์ฌ์ฉ์์๊ฒ ๋ณด์ฌ์ฃผ๋ ์ญํ ์ ํ๋ค. ์ด๋ ์ ์ธ๊ณ์๋ ๊ต์ฅํ ๋ง์ ์์ ์๋ฒ๋ค์ด ์๋๋ฐ ์ฐ๋ฆฌ๊ฐ ์์ฒญ์ ํ ์๋ฒ, ์ฆ host์ ์ฃผ์๋ฅผ IP์ฃผ์ ๋ผ๊ณ ํ๋ค. ์ด๋ฌํ IP์ฃผ์๋ ๊ณต์ธ(Public) IP์ฃผ์์ ์ฌ์ค(Private) IP์ฃผ์, 2๊ฐ์ง๋ก ๋๋์ด์ง๋ค. ๊ทธ ํน์ง๋ค์ ์๋์ ๊ฐ๋ค. ๊ณต์ธ IP์ฃผ์ ์ธํฐ๋ท ์์ ๊ณ ์ ํ IP ์ฃผ์ IP์ฃผ์๋ฅผ ๊ด๋ฆฌํ๋ ๊ธฐ๊ด์ผ๋ก๋ถํฐ ํ ๋น๋ฐ์ ์ฌ์ฉ๊ฐ๋ฅ ๋๋ฅ๋ณ, ๊ตญ๊ฐ๋ณ ํ ๋น๋ฐ์ ๊ณต์ธ IP์ฃผ์๊ฐ ์กด..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/7gsXs/btrr2Xu57Sb/0Pe0ItqD5Z6g2uB7OZeDik/img.png)
ํ๋ก์ ํธ๋ฅผ ์งํํ๋ค๋ณด๋ฉด ๋ธ๋์น๋ฅผ ํ๊ณ , ์ดํ ๋ค์ ํฉ์น๋ ๊ฒฝ์ฐ๊ฐ ๊ต์ฅํ ๋ง๋ค. ์์คํธ๋ฆฌ๋ฅผ ํตํด ์ด ์์ ๋ค์ ๊ฐํธํ๊ฒ ํ ์ ์๋ค. ์ฐ์ ํ๋ก์ ํธ๋ฅผ ํ ๋๋ ๋ณดํต ๋ธ๋์น๋ฅผ ๋ง๋ค์ด ์์ ์ ํ๋ค. ์๋ฅผ๋ค๋ฉด A,B,C,D ํ์ผ์ด ์๋ค๊ณ ๊ฐ์ ํด๋ณด์. a๋ Aํ์ผ์ ๊ฑด๋๋ฆฌ๋ฉฐ "๋ก๊ทธ์ธ" ๊ธฐ๋ฅ์ ์ถ๊ฐํ ๊ฒ์ด๊ณ , b๋ Bํ์ผ์ ๊ฑด๋๋ฆฌ๋ฉฐ "ํ์๊ฐ์ " ๊ธฐ๋ฅ์ ๋ง๋ค ๊ฒ์ด๋ค. ๊ทธ๋ฆฌ๊ณ a์ b๋ ๊ณตํต์ ์ผ๋ก Cํ์ผ์ ๊ฑด๋๋ ค์ผ ํ๋ค. ๊ทธ๋ ๋ค๋ฉด ๋ฌด์จ ์ผ์ด ๋ฐ์ํ ๊น? a์ b๋ ๋ฌผ๋ก ์์ ์ ๋ก์ปฌ ์ปดํจํฐ์์ ์์ ํ ๋ด์ฉ์ ๊นํ๋ธ์ ๋์์์ด pushํ ๊ฒ์ด๋ค. A,Bํ์ผ์ ๋ํด์๋ ์๋ก ์์ ํ ๋ด์ฉ์ด ๊ฒน์น์ง ์์ผ๋ ์ถฉ๋์ด ๋์ง ์์ง๋ง Cํ์ผ์ ๋ํด์๋ ๋์์์ด ์ถฉ๋์ด ๋ฐ์ํ ๊ฒ์ด๋ค. ์ด๊ฒ์ ์์ ์ ํ๋๋ฐ ํฐ ๋ฐฉํด๊ฐ ๋ ๊ฒ์ด๋ค. ๊ทธ๋์ ์ฌ๋..
ํ๋ก์ ํธ ๋์ค ๊ฒ์ ๊ธฐ๋ฅ์ ๊ตฌํํ๊ธฐ ์ํด like ์ฟผ๋ฆฌ๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค. ๊ทธ๋ฐ๋ฐ like๋ฌธ์ ์ฟผ๋ฆฌ๋ฌธ ๋ฌธ๋ฒ์ ์๋์ ๊ฐ๋ค. --A๋ฅผ ํฌํจํ๋ ๋ฌธ์ ์ฐพ๊ธฐ-- SELECT ์ปฌ๋ผ๋ช FROM ํ ์ด๋ธ WHERE ์ปฌ๋ผ๋ช LIKE '%A%' ๊ทธ๋ฐ๋ฐ Springboot ๋ด์์๋ ์ฟผ๋ฆฌ๋ฌธ์ ์๋์ ๊ฐ์ด ํฐ ๋ฐ์ดํ("")๋ก ๋ฌถ๋๋ค. //MovieDao ํ์ผ public Writer getWriter(int userIdx) { //sql๋ฌธ String getUserQuery = "select user_idx,nickname,photo from user where user_idx=?;"; int param=userIdx; return this.jdbcTemplate.queryForObject(getUserQuery, (rs, r..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/b6cBdg/btrruogkNIX/xqNCObou7I4NK97l78wybk/img.png)
์ด๋ฒ์๋ Clean Code ๊ด๋ จ ๊ฐ์๋ฅผ ์๊ฐํ๋ค. ๋จผ์ Clean Code๊ฐ ๋ฌด์์ธ์ง์ ๋ํด ์์๋ณด๋๋ก ํ์. Clean Code๋? Clean Code์ ๋ํด Robert C.Martin์ ์๋์ ๊ฐ์ด ์๊ฐํ๊ณ ์๋ค. clean code๋ ์ดํดํ๊ธฐ ์ฝ๊ณ , ๋ณ๊ฒฝํ๊ธฐ ์ฌ์ด ์ฝ๋ by Robert C.Martin, Clean Code Clean Code์ ํ์ค์ด๋ ์๊ฒฉํ ์ ์๋ ์กด์ฌํ์ง ์๋๋ค. ํ์ง๋ง ๊ณตํต๋ ์๊ฒฌ์ด ์กด์ฌํ๋ค. ์ฌ๋์ด ์ฝ๊ณ ์ดํดํ๊ธฐ ์ฝ๋ค ๋จ์ํ ํ ๊ฐ์ง ์ญํ ์ ํ๊ณ , ๋ช ํํ ์ด๋ฆ(ํํ)์ ๊ฐ๊ณ ์๋ค. ์ค๋ณต์ด ์๋ค ํ ์คํธ ์ผ์ด์ค๊ฐ ์๋ค. ๊ทธ๋ ๋ค๋ฉด Clean Code๋ ์ ์ค์ํ ๊น? ์ผ๋ฐ์ ์ผ๋ก SoftWare๋ ํ ๋ฒ ๊ฐ๋ฐ๋๊ณ , ์ค๋ ๊ธฐ๊ฐ๋์ ์ ์ง๋ณด์๋๋ค. ์ด๋ ๊ธฐ์กด ์ฝ๋์ ์ถ๊ฐ ์์ ํ๋ ์๊ฐ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/E0z0y/btrq2iBQYmz/tpoE1z5LghcoZk9ki29WA0/img.png)
์ ๋ฆฌํ๋ค๋ณด๋ ๋ด์ฉ์ด ๊ธธ์ด์ ธ์ 2๊ฐ์ ๊ธ์ ๋๋์ด ์ ๋ฆฌํ๊ณ ์ ํ๋ค. ์ด๋ฒ ๊ฐ์๋ ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ์ด ๋ฌด์์ธ์ง, ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ์ ํน์ง์ ๋ํด ๋ค๋ฃจ๋ ๊ฐ์์๋ค. ๊ฐ์ฒด ์งํฅ vs ์ ์ฐจ ์งํฅ ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ(Object Oriented Programming)์ ํน์ง์ ์๋์ ๊ฐ๋ค. ๋ฐ์ดํฐ์ ๋ฐ์ดํฐ์ ๋ํ ์ฐ์ฐ์ ์ํํ๋ ์ฝ๋๋ฅผ ๊ทธ๋ฃนํ ํ ๊ฐ์ฒด๋ฅผ ์ค์ฌ์ผ๋ก SW๋ฅผ ์ค๊ณ ๊ฐ๋ฐํ๋ ํจ๋ฌ๋ค์ ์์คํ ์ ์ฐธ์ฌํ๊ณ ์ฑ ์์ ๊ฐ๋ ๊ฐ์ฒด๊ฐ ๋ฌด์์ธ์ง์ ์ฃผ๋ชฉ ๋ค์์ ๊ฐ์ฒด๊ฐ ๊ฐ์์ ์ญํ ์ ํ๊ณ , ๊ฐ์ฒด ๊ฐ์๋ ๋ฉ์์ง๋ฅผ ์ฃผ๊ณ ๋ฐ์ผ๋ฉฐ ์ ์ฒด ์์คํ ์ ๊ตฌ์ฑ ์์๋ฅผ ๋ค์๋ฉด ์๋์ ๊ฐ๋ค. ๐ก ์ปคํผ์์ ์ด์ํ๋ค๊ณ ๊ฐ์ ํ์. ์ง์ A, B, C๊ฐ ์๋ ์ํฉ A - ๋ฐ๋ฆฌ์คํํ, B- ์ ๋นตํ, C- ์ด์ํ์ ๋งก๊ธด๋ค. A๋ ์ปคํผ๋ฅผ ๋ด๋ฆฌ๊ณ , B..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/xzXHn/btrqMwl6TSm/9SGlAud8Oc7EPM6YlaaoZK/img.png)
https://sectumsempra.tistory.com/109 ์ฝ๋ํ๋ ์ ์ฒดํ๋จ : 1. ์ค๋ฌด์๊ฐ ์๋ ค์ฃผ๋ Git ์ ๋ฌธ ์ ๊ณต๋ฐ์ ๊ฐ์๋ฅผ ๋ชจ๋ ์๊ฐํด์ ๋ด์ฉ์ ์ ๋ฆฌํด๋ณด๊ณ ์ ํ๋ค. ์ฐ์ Git bashํ๋ก๊ทธ๋จ์ ๊น๊ณ , github์ ์ ์ฅ์๋ฅผ ๋ง๋ค์ด์ผ ํ๋๋ฐ ์ด๋ ๊ตฌ๊ธ๋ง์ ํตํด ์ฝ๊ฒ ํ ์ ์์ผ๋ ์๋ตํ๊ฒ ๋ค.(๊ฐ์์์๋ ์๋ ค sectumsempra.tistory.com ์์์ ์์ฑํ ๊ธ ๋ค์ ๋จ๊ณ์ ๊ฐ์์ด๋ค. ์ด ๊ฐ์์์๋ ๋ธ๋์น ์์ฑ ๋ฐ ๋ณํฉ์ ๋ํด ์ค์ ์ ์ผ๋ก ๋ค๋ฃฌ๋ค. Git ๋ธ๋์น์ ์ดํด ๐ก branch๋? ๐กbranch๋? ๋ณธ๋์ ์์ค์ฝ๋๋ก๋ถํฐ ํ์ํ ๋ ๋ฆฝ์ ์ธ ์์ ๊ณต๊ฐ์ผ๋ก, ์ต์ ์ปค๋ฐ์ ๊ฐ๋ฆฌํค๋ ์ผ์ข ์ ํฌ์ธํฐ์ด๋ค. ๐กhead๋? ํ์ฌ ๋ธ๋์น๋ฅผ ๊ฐ๋ฆฌํค๋ ์ผ์ข ์ ํฌ์ธํฐ์ด๋ค. ์ ์ํ์์ ๋๋ฒ์งธ ์ปค๋ฐ์ ์..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/eeFj9g/btrqMvgk6Bc/nmHQUkAEkeayFUhHxPjnwK/img.png)
์ด๋ฏธ C++์ ๊ณต๋ถํ๋๋ฐ Java์ ์๋นํ ์ ์ฌํ ๋ถ๋ถ์ด ๋ง์ ์ด๋ก ์ ์ธ ๋ถ๋ถ์ ๋ง์ด ์ป์ด๊ฐ ๊ฐ์์๋ค. Java ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ์๊ฐ ์ฐ์ Java์ธ์ด์ ํน์ง์ ์๋์ ๊ฐ๋ค. WORA - Write Once Run Anywhere ๊ฐ์ฒด ์งํฅ ์ธ์ด →์์, ๋คํ์ฑ, ์บก์ํ ๋ฑ์ ๊ฐ์ฒด์งํฅ์ ์์๋ฅผ ์ธ์ด์ ์ผ๋ก ์ง์ →Java ์ฝ๋๋ class๋ฅผ ๊ธฐ๋ณธ ๋จ์๋ก ๊ตฌ์ฑ๋จ ์๋ํ ๋ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ →JVM์ Garbage Collector๊ฐ ์ฌ์ฉ๋์ง ์๋ ๋ฉ๋ชจ๋ฆฌ ์์์ ํ์ →๊ฐ๋ฐ์๊ฐ ์ง์ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ๋ฅผ ํ์ง ์์๋ ๋จ Java ์ด์ C,C++์ ํ๋์จ์ด์ ์์กด์ →๋ค๋ฅธ ์ข ๋ฅ์ ํ๋์จ์ด์์ ์คํํ๊ธฐ ์ํด์๋ ์ฌ ์ปดํ์ผ ํ์ Java๋ ํ ๋ฒ ์์ฑ ๋ฐ ์ปดํ์ผ ๋ ๊ฒฐ๊ณผ๋ฌผ์ด ์ด๋์๋ ๋์ ๊ฐ๋ฅ →JVM(Java Virtual..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/baHE1N/btrqCTPKEd9/LbsJHbhksSlTtijQHXzSc0/img.png)
์ ๊ณต๋ฐ์ ๊ฐ์๋ฅผ ๋ชจ๋ ์๊ฐํด์ ๋ด์ฉ์ ์ ๋ฆฌํด๋ณด๊ณ ์ ํ๋ค. ์ฐ์ Git bashํ๋ก๊ทธ๋จ์ ๊น๊ณ , github์ ์ ์ฅ์๋ฅผ ๋ง๋ค์ด์ผ ํ๋๋ฐ ์ด๋ ๊ตฌ๊ธ๋ง์ ํตํด ์ฝ๊ฒ ํ ์ ์์ผ๋ ์๋ตํ๊ฒ ๋ค.(๊ฐ์์์๋ ์๋ ค์ค๋ค.) Git ๊ธฐ๋ณธ ํ๋ก์ฐ ์ฐ๋ฆฌ๊ฐ ํ ์์ ๋ค์ ์๋์ ๊ฐ๋ค. 1. ์๊ฒฉ ์ ์ฅ์์ ์์ค์ฝ๋ ๋ค์ด๋ก๋(clone) 2. ์์ ๋๋ ํ ๋ฆฌ์์ ์์ ํ ๋ด์ฉ ์คํ ์ด์ง ์์ญ์ ์ถ๊ฐ(add) 3. ์๋ฏธ์๋ ๋ณ๊ฒฝ์ ์ด ์์ด๋ฉด ์ปค๋ฐ์ ๋ง๋ค์ด(commit) 4. ๋ก์ปฌ ์ ์ฅ์์ ์๊ตฌ์ ์ผ๋ก ์ ์ฅ 5. ์๊ฒฉ ์ ์ฅ์์ ์ ์ฅ (push) 6. ์๊ฒฉ ์ ์ฅ์์์ ๋ณ๊ฒฝ์ฌํญ ๊ฐ์ ธ์ด(pull) Git ๊ธฐ๋ณธ ํ๋ก์ฐ ์ดํด๋ฅผ ์ํ ์ค์ต 1. ์ ์ฅ์ ์์ฑ ์ ์ฅ์ ์์ฑ ๋ฐฉ๋ฒ์ ์๋์ ๊ฐ๋ค. 1 . cloneํ๊ธฐ 2 . ๋ก์ปฌ ์ ์ฅ์ ์์ฑ -> ์ด๊ธฐํ (g..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/sRzc6/btrqnknanqM/siRqcDKNKU2OZwyLFM8bvK/img.png)
๊ฒจ์ธ๋ฐฉํ์ ํ ๋งํ ํ๋์ ์ฐพ๋ค๊ฐ ์ฝ๋ํ๋ ์ Java ์น ๊ฐ๋ฐ ํธ๋ ์ฒดํ๋จ ํ๋์ ์๊ฒ ๋์๋ค. ๋ฐฉํ ๋ ์คํ๋ง ๋ถํธ๋ฅผ ์ด์ฉํด ์ฑ ๊ฐ๋ฐ ํ๋ก์ ํธ์ ์ฐธ์ฌํ ๊ณํ์ธ๋ฐ ํ๋ก์ ํธ๋ฅผ ํ๊ธฐ ์ ๋ด์ฉ ๋ณต๊ธฐ๋ ํ๊ณ , ์คํ๋ง ๋ถํธ๋ฅผ ์ข ๋ ์ฒด๊ณ์ ์ผ๋ก ์ฐจ๊ทผ ์ฐจ๊ทผ ๊ณต๋ถํ๊ณ ์ถ์ด์ ์ง์ํ๊ฒ ๋์๋ค. ์ปค๋ฆฌํ๋ผ ๋ฐ ์ง์ ์๊ฒฉ ์ปค๋ฆฌํ๋ผ์ ์๋์ ๊ฐ๋ค. Git๊ฐ์๋ฅผ ์ ๊ณตํ๊ณ ์๋ฐ ๊ธฐ์ด๋ฅผ ๋ค๋ฃฌ ๋ค ์คํ๋ง๋ถํธ๋ฅผ ๊ณต๋ถํ๋ค๋ ์ ์ด ๋ง์์ ๋ค์๋ค. ๊ทธ๋ฆฌ๊ณ ์ต์ข ์ ์ผ๋ก SNS๋ฅผ ๊ตฌํํ๋ค๋ ์ ์ญ์ ๋ง์์ ๋ค์๋ค. ์ง์ ์๊ฒฉ์ ๋ณ๋ก ๊น๋ค๋กญ์ง ์์๋ค. ์๊ธฐ์๊ฐ์ ์ง๋ฌธ์ 3๊ฐ์๋ค. 1. ์๊ธฐ์๊ฐ (200์ ์ด์) * ๋ณธ์ธ์ ์ฅโค๋จ์ ์ด๋ ์ฑ๊ฒฉ ๋ฑ์ ์์ ๋กญ๊ฒ ์์ ํด์ฃผ์ธ์. 2. ์ง์ ๋๊ธฐ (400์ ์ด์) * Code.presso Java ์น ๊ฐ๋ฐ ํธ๋ ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/KoEb2/btrpU3RL2xa/FuqwLowK8rrYHZY2ZcjyGk/img.png)
https://www.acmicpc.net/problem/14889 14889๋ฒ: ์คํํธ์ ๋งํฌ ์์ 2์ ๊ฒฝ์ฐ์ (1, 3, 6), (2, 4, 5)๋ก ํ์ ๋๋๋ฉด ๋๊ณ , ์์ 3์ ๊ฒฝ์ฐ์๋ (1, 2, 4, 5), (3, 6, 7, 8)๋ก ํ์ ๋๋๋ฉด ๋๋ค. www.acmicpc.net ์์ด๋์ด ๋๋ ๋ฌธ์ ๋ฅผ 3๊ฐ์ง ํํธ๋ก ๋๋ ์ ํ์๋ค. 1. ์ ๋ ฅ์ ๋ฐ๋ ๋ถ๋ถ 2. ํ์ ์ง๋ ๋ถ๋ถ 3. ์ง์ฌ์ง ํ์ ์ด์ฉํด์ ์ ์๋ฅผ ๊ณ์ฐํ๊ณ ํ์ ๊ธฐ๋ก ์ ๋ ฅ์ ๋ฐ๊ณ , ์ง์ฌ์ง ํ์ ์ด์ฉํด ์ ์๋ฅผ ๊ณ์ฐํ๋ ๊ฒ์ ์ด๋ ต์ง ์๋ค. ์ด ๋ฌธ์ ์ ํต์ฌ์ ์ธ ๋ถ๋ถ์ ํ์ ์ง๋ ๋ถ๋ถ์ด๋ค. ๊ทธ ๋ถ๋ถ์ ์๋์ ๊ฐ์ด ๊ตฌํํ์๋ค. ์ด ๋ฌธ์ ์ ๊ฒฝ์ฐ์๋ ์ฌ๋์ด ์คํํธํ ํน์ ๋งํฌํ์ด๊ธฐ ๋๋ฌธ์ ์คํํธํ์ ์ ๋ฐ์ ๋ฐฐ์ ํ๋ฉด ๋๋จธ์ง๋ ์๋์ผ๋ก ๋งํฌํ์ด ๋๋ค..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/vcPbE/btrpPFcVAPL/06mvWRGR8YTPEuWKk85fX0/img.png)
๋ฐฐ๋ญ๋ฌธ์ (Knapsack Problem)๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ์ ๋ํ์ ์ธ ์์๋ฌธ์ ์ด๋ค. ํ ์ฌํ๊ฐ๊ฐ ๊ฐ์ง๊ณ ๊ฐ๋ ๋ฐฐ๋ญ์ ๋ด์ ์ ์๋ ๋ฌด๊ฒ์ ์ต๋๊ฐ์ด ์ ํด์ ธ ์๊ณ , ์ผ์ ๊ฐ์น์ ๋ฌด๊ฒ๊ฐ ์๋ ์ง๋ค์ ๋ฐฐ๋ญ์ ๋ฃ์ ๋, ๊ฐ์น์ ํฉ์ด ์ต๋๊ฐ ๋๋๋ก ์ง์ ๊ณ ๋ฅด๋ ๋ฐฉ๋ฒ์ ์ฐพ๋ ๋ฌธ์ ์ด๋ค. ์๋์ ๊ฐ์ ํ์์ผ๋ก ์ฃผ์ด์ง๋ค.https://www.acmicpc.net/problem/12865 12865๋ฒ: ํ๋ฒํ ๋ฐฐ๋ญ์ฒซ ์ค์ ๋ฌผํ์ ์ N(1 ≤ N ≤ 100)๊ณผ ์ค์๊ฐ ๋ฒํธ ์ ์๋ ๋ฌด๊ฒ K(1 ≤ K ≤ 100,000)๊ฐ ์ฃผ์ด์ง๋ค. ๋ ๋ฒ์งธ ์ค๋ถํฐ N๊ฐ์ ์ค์ ๊ฑฐ์ณ ๊ฐ ๋ฌผ๊ฑด์ ๋ฌด๊ฒ W(1 ≤ W ≤ 100,000)์ ํด๋น ๋ฌผ๊ฑด์ ๊ฐ์น V(0 ≤ V ≤ 1,000)www.acmicpc.net๋ฌธ์ ๋ฅผ ์์ฝํ์๋ฉด ์๋์ ๊ฐ๋ค. ์ง..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bgGpDf/btrmWrCAFF2/dUksAQgjuvfN5ZkFTCmEiK/img.png)
https://www.acmicpc.net/problem/9461 9461๋ฒ: ํ๋๋ฐ ์์ด ์ค๋ฅธ์ชฝ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ์ผ๊ฐํ์ด ๋์ ๋ชจ์์ผ๋ก ๋์ฌ์ ธ ์๋ค. ์ฒซ ์ผ๊ฐํ์ ์ ์ผ๊ฐํ์ผ๋ก ๋ณ์ ๊ธธ์ด๋ 1์ด๋ค. ๊ทธ ๋ค์์๋ ๋ค์๊ณผ ๊ฐ์ ๊ณผ์ ์ผ๋ก ์ ์ผ๊ฐํ์ ๊ณ์ ์ถ๊ฐํ๋ค. ๋์ ์์ ๊ฐ์ฅ ๊ธด ๋ณ์ www.acmicpc.net ์์ด๋์ด ๋ฌธ์ ๋ฅผ ํ๊ณ ๋ค๋ฅธ ๋ธ๋ก๊ทธ ๊ธ๋ค๋ ๋ดค๋๋ฐ ๊ท์น์ด ์ฌ๋ฌ๊ฐ์ง๋ผ ์ฌ๋ฌ ๋ฐฉ์์ ์ ํ์์ผ๋ก ํ ์ ์๋ค. ๋์ด๋๊ฐ ์ฌ์ด ํธ์ ๋ฌธ์ ์ด๋ค. P(N)์ ์ญ ๋์ดํ๋ฉด ์๋์ ๊ฐ๋ค. N P(N) 1 1 2 1 3 1 4 2 5 2 6 3 7 4 8 5 9 7 10 9 11 12 12 13 ๋์ ๊ฒฝ์ฐ 1~5๊น์ง๋ ๊ท์น์ด ์ ์ฉ๋์ง ์๋๋ค๊ณ ๋ณด๊ณ P(N)=P(N-1)+P(N-5)๋ผ๊ณ ์ ํ์์ ์ธ์์ ํ์๋๋ฐ P(N)=..