์๊ฐ
์ง๋ XNUMX๋ ๋์ ์ ๋ ํค์ํ์ ์๋ IT ํ๊ต ์ค ํ ๊ณณ์์ ํ๋ก๊ทธ๋๋ฐ์ ๊ฐ๋ฅด์น๊ณ ์์์ต๋๋ค. ๋๋ ์ด Just For Fun์ ์์ํ์ต๋๋ค. ํ๋ ํ๋ก๊ทธ๋๋ฐ ๋ธ๋ก๊ทธ๋ฅผ ์์ฑํ๋ค๊ฐ ํฌ๊ธฐํ์ต๋๋ค. ํ์ง๋ง ๊ด์ฌ ์๋ ์ฌ๋๋ค์๊ฒ ์ ์ฉํ ์ ๋ณด๋ฅผ ์๋ ค ์ฃผ๊ณ ์ถ์ ๋ง์์ ์ฌ๋ผ์ง์ง ์์์ต๋๋ค.
๋ด ์ฃผ์ ์ธ์ด๋ Java์ ๋๋ค. ๋๋ ํด๋ํฐ์ฉ ๊ฒ์, ๋ฌด์ ํต์ ์ฉ ์ํํธ์จ์ด, ๋ค์ํ ์น ์๋น์ค๋ฅผ ๊ทธ ์์ ์ผ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ ๋ ์๋ฐ๋ฅผ ๊ฐ๋ฅด์นฉ๋๋ค.
์ฌ๊ธฐ์ ๋๋ ๋์ ๋ง์ง๋ง ๊ทธ๋ฃน์ ํ๋ จ์ ๊ดํ ์ด์ผ๊ธฐ๋ฅผ ํ๊ณ ์ถ๋ค. ํ๋ จ ์์๋ถํฐ ์๋ํ๋ ์น ์๋น์ค ์์ฑ๊น์ง ์ด๋ป๊ฒ ์งํ๋์๋์ง. ์์ ๋ณด์ถฉ์ ๋ฅผ ์ฐพ๋ ๋ฐ ์ ์ฉํ ์น ์๋น์ค์ ๋๋ค. ๋ฌด๋ฃ์ด๋ฉฐ ๊ด๊ณ , ๋ฑ๋ก ๋ฐ SMS๊ฐ ์์ต๋๋ค.
์๋น์ค ์์ฒด๋ ์ฌ๊ธฐ์ ์์ต๋๋ค -
์ด ํ๋ก์ ํธ๋ ๊ต์ก์ ์ด๋ฉฐ ๊ด๊ณ ๋ฅผ ํฌํจํ์ง ์์ต๋๋ค. ๋ด๊ฐ ์ดํดํ ๋๋ก
ํ๋ก์ ํธ ์์ฒด๋ฅผ ์ค๋ช ํ๊ธฐ ์ ์ ๊ทธ๋ฃน์ ํ์ต ๊ณผ์ ์ ๋ํด ์กฐ๊ธ ๋ง์๋๋ฆฌ๊ฒ ์ต๋๋ค. ์ด๊ฒ์ด ์์ผ๋ฉด ๊ทธ๋ฆผ์ด ๋ถ์์ ํ ๊ฒ์ ๋๋ค.
9๊ฐ์ ํ๋ จ
์ ๊ฐ ๊ฐ๋ฅด์น๋ ํ๊ต์์๋ Java ๊ณผ์ ์ด ๋ ๋ถ๋ถ์ผ๋ก ๋๋์ด์ ธ ์์ต๋๋ค. ์ ์ฒด ๊ณผ์ ์ ๋ชจ๋ ๋ฐฉํ(์ค๋ ์ฐํด, ์ค๊ฐ ํ๋ก์ ํธ ์์ฑ ์๊ฐ)์ ํฌํจํ์ฌ ์ฝ 2๊ฐ์์ด ์์๋ฉ๋๋ค.
์ฒซ ๋ฒ์งธ ๋ถ๋ถ์์๋ ํ์๋ค์๊ฒ ์ธ์ด์ ๊ธฐ๋ณธ ๊ฐ๋ ์ ์๊ฐํฉ๋๋ค. ๋ณ์, ๋ฉ์๋, OOP ๊ธฐ๋ณธ ๋ฐ ๊ทธ ๋ชจ๋ ๊ฒ.
๊ณผ์ ์ ๋ ๋ฒ์งธ ๋ถ๋ถ์์๋ ํ์์ด ์ด๋ฏธ Java ์์ฑ ๋ฐฉ๋ฒ์ ์ด๋ ์ ๋ ์ดํดํ๊ณ ์์ผ๋ฉฐ "์ฑ์ธ์ฉ" ๊ธฐ์ ์คํ์ ์ ๊ณต๋ฐ์ ์ ์์ต๋๋ค. ๊ทธ๊ฒ์ ๋ชจ๋ SQL๋ก ์์ํ ๋ค์ JDBC, Hibernate๋ก ์์๋ฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ HTTP, ์๋ธ๋ฆฟ. ๋ค์์ git๊ณผ maven์ ๊ดํ Spring์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ํ์๋ค์ ์ต์ข ํ๋ก์ ํธ๋ฅผ ์์ฑํฉ๋๋ค.
๋ชจ๋ ๊ต์ก์ ๋ชจ๋๋ก ๊ตฌ๋ถ๋ฉ๋๋ค. ์ผ์ฃผ์ผ์ ๋ ๋ฒ์ฉ ์์ ์ ์งํํ์ด์. XNUMXํ ์์ ์๊ฐ์ XNUMX์๊ฐ์ ๋๋ค.
๋์ ํ์ต ๋ฐฉ์
5๊ฐ ๊ทธ๋ฃน์ ๋ฐ๋งคํ์ด์. 2๋ ์ด๋ผ๋ ์๊ฐ์ด ๋ง์ ๊ฒ ๊ฐ์ง๋ง ๊ฑฐ์ ํญ์ XNUMX๊ฐ ๊ทธ๋ฃน์ ๋ณํํด์ ์ด๋์์ต๋๋ค.
๋๋ ๋ค์ํ ์ ๊ทผ๋ฒ์ ์๋ํ์ต๋๋ค.
์ฒซ ๋ฒ์งธ ์ต์ ์ ์ด๋ก ์ด ํฌํจ๋ ํ๋ ์ ํ ์ด์ ์ ํ ์์ด ํ ๋น๋๋ ๊ฒ์ ๋๋ค. ๋ ๋ฒ์งธ ์์ ์์ํ ์ฐ์ต์ ๋๋ค. ์ด ์ ๊ทผ ๋ฐฉ์์ ์ด๋ ์ ๋ ํจ๊ณผ๊ฐ ์์์ง๋ง ์ ์๊ฐ์๋ ๋ณ๋ก ํจ๊ณผ์ ์ด์ง ์์์ต๋๋ค.
์ ๊ฐ ์ ํํ๊ณ ํ์ฌ ์์ ์ค์ธ ๋ ๋ฒ์งธ ์ต์ ์ ์ ์ฒด ์ปคํ์ ์ด๋ก ์ ์ ๋ ํ๋ ๊ฒ์ด ์๋๋๋ค. ๋์ ์ ์ ๋ 5~10๋ถ ๋์ ์ด๋ก ์ ์งง์ ๋ถ๋ถ์ ํผํฉํ๊ณ ์ค์ ์ฌ๋ก๋ฅผ ํตํด ์ฆ์ ์ด๋ฅผ ๊ฐํํฉ๋๋ค. ์ด ์ ๊ทผ ๋ฐฉ์์ด ๋ ์ ์๋ํฉ๋๋ค.
์๊ฐ์ด ์ถฉ๋ถํ๋ฉด ํ์๋ค์ ์ ์ง์ผ๋ก ๋ถ๋ฌ์ ์ ๋ ธํธ๋ถ ์์ ์ํ๊ณ ํ์๋ค์ด ์ง์ ์ค์ต์ ํฉ๋๋ค. ํ๋ฅญํ๊ฒ ์๋ํ์ง๋ง ๋ถํํ๋ ์๊ฐ์ด ๋ง์ด ๊ฑธ๋ฆฝ๋๋ค.
๋ชจ๋๊ฐ ๋๊น์ง ๊ฐ๋ ๊ฒ์ ์๋๋ค
๋์๊ฒ ๊นจ๋ฌ์ ์ ์ ์ ์ฒด ๊ทธ๋ฃน์ด ์ฝ์ค๋ฅผ ๋๊น์ง ์๋ฃํ์ง ๋ชปํ๋ค๋ ์ฌ์ค์ด์์ต๋๋ค.
๋ด ๊ด์ฐฐ์ ๋ฐ๋ฅด๋ฉด, ํ์ ์ค ์ ๋ฐ๋ง์ด ์ต์ข ํ๋ก์ ํธ๋ฅผ ์์ฑํฉ๋๋ค. ๋๋ถ๋ถ์ ์ฝ์ค์ ์ฒซ ๋ฒ์งธ ๋ถ๋ถ์์ ์ ๊ฑฐ๋ฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ ๋ฒ์งธ ๋ถ๋ถ์ ๋๋ฌํ ์ฌ๋๋ค์ ๋๊ฐ ๋จ์ด์ง์ง ์์ต๋๋ค.
๊ทธ๋ค์ ์ฌ๋ฌ ๊ฐ์ง ์ด์ ๋ก ๋ ๋๋ค.
์ฒซ ๋ฒ์งธ๋ ๋ณต์ก์ฑ์ ๋๋ค. ๊ทธ๋ค์ด ๋ญ๋ผ๊ณ ๋งํ๋ Java๋ ๊ฐ์ฅ ๊ฐ๋จํ ์ธ์ด๊ฐ ์๋๋๋ค. ๊ฐ์ฅ ๊ฐ๋จํ ํ๋ก๊ทธ๋จ์ ์์ฑํ๋ ค๋ฉด ํด๋์ค, ๋ฉ์๋์ ๊ฐ๋ ์ ์ดํดํด์ผ ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ ๊ธ์ ์จ์ผ ํ๋์ง ์ดํดํ๋ ค๋ฉด ๊ณต๊ฐ ์ ์ ๋ฌดํจ ๋ฉ์ธ(String[] arg) ์ดํดํด์ผ ํ ๋ช ๊ฐ์ง ๊ฐ๋ ์ด ๋ ์์ต๋๋ค.
์ด๊ฒ์ ์ ๋ฅผ ํฌํจํ์ฌ ๋ง์ ์ฌ๋๋ค์ด ์์ํ ํฐ๋ณด ํ์ค์นผ๊ณผ ๋น๊ตํด ๋ณด์ธ์.
begin
writeln("ะะตัะฒะฐั ะฟัะพะณัะฐะผะผะฐ");
end.
์ ๊ฐ ์๋ ํ, ํ๊ต์์๋ ์ถ๊ฐ ํ ์คํธ๋ฅผ ๋์ ํ์ฌ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ๊ฒ์ ๋๋ค. ์ด์ ๋ชจ๋ ์ฌ๋์ด Java๋ฅผ ๊ณต๋ถํ ์ ์๋ ๊ฒ์ ์๋๋๋ค. ์์ง์ ์ปจ์ ๋จ๊ณ์ด์ง๋ง ๊ทธ ๋จ๊ณ๋ ๋ถ๋ช ํ ์ฌ๋ฐ๋ฅธ ๋จ๊ณ์ ๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋ ๋ฒ์งธ ์ด์ ๋ ์๋ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ต๋๋ค.
์ฌ๋๋ค์ ์ข ์ข ํ๋ก๊ทธ๋๋ฐ์ด๋ ๋ง์ ํ ์คํธ๋ฅผ ์ ๋ ฅํ๊ณ ๊ทธ์ ๋ํ ๋๊ฐ๋ก ๋ง์ ๋์ ๋ฒ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ์นดํผ๋ผ์ดํฐ์ฒ๋ผ ๋๋ง ๋ ๋ง์ด ๋ฒ๋ฉด ๋ฉ๋๋ค.
ํ์ค์ ์กฐ๊ธ ๋ค๋ฆ ๋๋ค. ์๋ง์ ์ผ์์ ์ธ ์ฝ๋, ๋์ ๋์ง ์๋ ๋ฒ๊ทธ, ๋์์๋ ํ์ต ๊ณผ์ . ํฅ๋ฏธ๋กญ์ง๋ง ๋ชจ๋ ์ฌ๋์๊ฒ ํด๋น๋๋ ๊ฒ์ ์๋๋๋ค.
์ด๊ฒ์ด ํต๊ณ์ ๋๋ค. ์ฒ์์๋ ํ๊ฐ ๋์ ๋ด๊ฐ ๋ญ๊ฐ ์๋ชปํ๊ณ ์๋ ๊ฒ ์๋๊ฐ ํ๋ ์๊ฐ๋ ๋ค์์ต๋๋ค. ์ด์ ๋๋ ๋๋ถ๋ถ์ ์ฝ์ค์์ ํต๊ณ๊ฐ ๊ฑฐ์ ๋์ผํ๋ค๋ ๊ฒ์ ์ดํดํฉ๋๋ค. ์ด์ ๋ ๊ฑฑ์ ํ์ง ์๊ณ ๊ด์ฌ์๋ ์ฌ๋๋ค์ ๊ฐ๋ฅด์น๊ณ ์์ต๋๋ค.
์ด๋ฐ์ผ ์๋น์ฌ
ํ์๋ค์ด ์ ์ฒด ๊ณผ์ ์ ๋ง์น๊ณ ๋๋ฉด ์ต์ข ํ๋ก์ ํธ๋ฅผ ์์ฑํ ์๊ฐ์ ๋๋ค. ๋ค๋ฅธ ์์ด๋์ด๊ฐ์์์ต๋๋ค. ๊ทธ๋ค์ ToDo ์ํธ, ํ๋ก์ ํธ ๊ด๋ฆฌ ํ๋ก์ ํธ ๋ฑ์ ์ ๊ณตํ์ต๋๋ค.
๊ฐ๋จํ์ง๋ง ์ ์ฉํ ์ผ์ ํ๊ณ ์ถ์์ต๋๋ค. ๋ด ๊ธฐ์ค์ ๊ฐ๋จํ๋ค. ๋์ ๋ด ์น๊ตฌ๋ค์ด ๊ทธ๊ฒ์ ์ฌ์ฉํ ์ ์๋๋๋ ๊ฒ์ด์๋ค. ์ํ ์ฒจ๊ฐ๋ฌผ ๊ฒ์์ ์ํ ์น ์๋น์ค๋ ์ด๋ฌํ ์๊ตฌ ์ฌํญ์ ์ถฉ์กฑํ์ต๋๋ค.
์์ด๋์ด๋ ๊ฐ๋จํฉ๋๋ค. ์์ ์์ ์ ํ์ ๊ตฌ๋งคํ๋ฉด ๊ตฌ์ฑ ์์์ ์ผ์ข ์ E-์ฒจ๊ฐ๋ฌผ์ด ๋ค์ด ์๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค. ๊ทธ๊ฒ์ด ์ผ๋ง๋ ์ํํ์ง ์ฝ๋์์๋ ๋ช ํํ์ง ์์ต๋๋ค(๊ทธ๋ฆฌ๊ณ ๋ง์ ๊ตญ๊ฐ์์ ๊ธ์ง๋ ์ํํ ์ฒจ๊ฐ์ ๋ ์์ต๋๋ค).
์น์ฌ์ดํธ๋ฅผ ์ด๊ณ ๋ณด์ถฉ์ ์ด๋ฆ(๋ฒํธ, ๋์ฒด ์ด๋ฆ ์ค ํ๋)์ ์ ๋ ฅํ๊ณ ๋ณด์ถฉ์ ์์ฝ์ ํ์ธํฉ๋๋ค.
๋น์ทํ ํ๋ก์ ํธ๊ฐ ์์ต๋๋ค. ์ ๋ณด๊ฐ ํญ์ ์ฌ๋ฐ๋ฅด๊ฒ ํ์๋๋ ๊ฒ์ ์๋์ง๋ง ๋จ์ํ Google์ ์ฒจ๊ฐ์ ๋ฅผ ์ ๋ ฅํ ์๋ ์์ต๋๋ค.
ํ์ง๋ง ์ด ํ๋ก์ ํธ๋ ๊ต์ก์ ์ด๊ธฐ ๋๋ฌธ์ ์์ ์ด๋ ค์์ด ์ฐ๋ฆฌ๋ฅผ ๋ง์ง๋ ๋ชปํ์ต๋๋ค :)
ะ ะตะฐะปะธะทะฐัะธั
๋ค๋ค ์๋ฐ๋ก ์ผ๋๋ฐ,
๋๋ฅผ ํฌํจํด ์ฐ๋ฆฌ๋ 7๋ช ์ด์๋ค. ๋ชจ๋๊ฐ ํ ์์ฒญ์ ํ๊ณ , ๋ ๋๋ ๊ทธ๋ฃน์ ๋ค๋ฅธ ์ฌ๋์ด ์ด ํ ์์ฒญ์ ์๋ฝํ์ต๋๋ค.
์์ด๋์ด๋ฅผ ํ๋ช ํ๋ ๊ฒ๋ถํฐ ํ์ฌ ๋ณผ ์ ์๋ ์ํ๊น์ง ํ๋ก์ ํธ๋ฅผ ๊ตฌํํ๋ ๋ฐ ์ฝ ํ ๋ฌ์ด ๊ฑธ๋ ธ์ต๋๋ค.
์ฒจ๊ฐ์ ๋ถ์
๋ฐ์ดํฐ๋ฒ ์ด์ค(์ํฐํฐ, ์ ์ฅ์ ๋ฑ)๋ฅผ ์ค์ฌ์ผ๋ก ํ๋ ์์ํฌ๋ฅผ ๊ธฐ๋ณธ์ ์ผ๋ก ์์ฑํ๋ ๊ฒ ์ธ์ ํ์ ์ค ํ ๋ช ์ด ๊ฐ์ฅ ๋จผ์ ํ ์ผ์ ๊ธฐ์กด ์ ๋ณด ์ฌ์ดํธ์์ ์ถ๊ฐ ๊ธฐ๋ฅ์ ๊ตฌ๋ฌธ ๋ถ์ํ๋ ๊ฒ์ด์์ต๋๋ค.
์ด๋ ๋๋จธ์ง ํฌ์ธํธ๋ฅผ ํ ์คํธํ๋ ๋ฐ ํ์ํ์ต๋๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฑ์ฐ๋ ๋ฐ ์ถ๊ฐ ์ฝ๋๊ฐ ํ์ํ์ง ์์ต๋๋ค. ์ฌ๋ฌ ๊ฐ์ง ์ฒจ๊ฐ์ ๋ฅผ ๋น ๋ฅด๊ฒ ๊ตฌ๋ฌธ ๋ถ์ํ ํ UI, ์ ๋ ฌ ๋ฐ ํํฐ๋ง์ ์ถ๊ฐ๋ก ํ ์คํธํ ์ ์์์ต๋๋ค.
Spring Boot๋ฅผ ์ฌ์ฉํ๋ฉด ์ฌ๋ฌ ํ๋กํ์ ๋ง๋ค ์ ์์ต๋๋ค. ํ๋กํ์ ์ค์ ์ด ํฌํจ๋ ํ์ผ์ ๋๋ค.
๊ฐ๋ฐ ํ๊ฒฝ์์๋ ๋ก์ปฌ H2 DBMS์ ๊ธฐ๋ณธ HTTP ํฌํธ(8080)๊ฐ ์๋ ํ๋กํ์ ์ฌ์ฉํ์ต๋๋ค. ๋ฐ๋ผ์ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์คํ๋ ๋๋ง๋ค ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์ง์์ก์ต๋๋ค. ์ด ๊ฒฝ์ฐ ํ์๊ฐ ์ฐ๋ฆฌ๋ฅผ ๊ตฌํด์ฃผ์์ต๋๋ค.
๊ฒ์ ๋ฐ ํํฐ๋ง
์ค์ํ ์ ์ ๊ฒ์๊ณผ ํํฐ๋ง์ ๋๋ค. ์์ ์ ์๋ ์ฌ๋์ ๋ณด์ถฉ์ ์ฝ๋๋ ์ด๋ฆ ์ค ํ๋๋ฅผ ๋น ๋ฅด๊ฒ ํด๋ฆญํ๊ณ ๊ฒฐ๊ณผ๋ฅผ ์ป์ด์ผ ํฉ๋๋ค.
๋ฐ๋ผ์ Additive ์ํฐํฐ์๋ ์ฌ๋ฌ ํ๋๊ฐ ์์ต๋๋ค. ์ถ๊ฐ ์ฝ๋, ๋์ฒด ์ด๋ฆ, ์ค๋ช ์ ๋๋ค. ๊ฒ์์ ๋ชจ๋ ํ๋์์ ๋์์ ์ข์์๋ฅผ ์ฌ์ฉํ์ฌ ์ํ๋ฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ [123]์ด๋ [amaranth]๋ฅผ ์ ๋ ฅํด๋ ๊ฐ์ ๊ฒฐ๊ณผ๊ฐ ๋์ต๋๋ค.
์ฐ๋ฆฌ๋ ์ด ๋ชจ๋ ๊ฒ์ ์ฌ์์ ๊ธฐ๋ฐ์ผ๋ก ์ํํ์ต๋๋ค. ์ด๋ ๊ธฐ๋ณธ ๊ฒ์ ์กฐ๊ฑด(์: ์ผ๋ถ ํ๋)์ ์ค๋ช ํ๊ณ ์ด๋ฌํ ์กฐ๊ฑด(OR ๋๋ AND)์ ๊ฒฐํฉํ ์ ์๋ Spring์ ์ผ๋ถ์ ๋๋ค.
์์ญ ๊ฐ์ ์ฌ์์ ์์ฑํ๋ฉด "์ค๋ช ์ [๋นจ๊ฐ์]์ด๋ผ๋ ๋จ์ด๊ฐ ํฌํจ๋ ๋ชจ๋ ์ํํ ์ฐฉ์ ์ฒจ๊ฐ์ "์ ๊ฐ์ ๋ณต์กํ ์ฟผ๋ฆฌ๋ฅผ ์์ฒญํ ์ ์์ต๋๋ค.
Spring ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ ์ธก๋ฉด์์ ์ ๋ ์ด๊ฒ์ด ๋งค์ฐ ํธ๋ฆฌํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ด๋ ๋ณต์กํ ์ฟผ๋ฆฌ๋ก ์์ ํ ๋ ํนํ ๊ทธ๋ ์ต๋๋ค. ์ฌ๊ธฐ์๋ ์์ฒด์ ์ธ ์ค๋ฒํค๋๊ฐ ์์ผ๋ฉฐ ์๋์ผ๋ก ์์ฑํ๊ณ ์ต์ ํํ SQL ์ฟผ๋ฆฌ๊ฐ ๋ ๋น ๋ฅด๊ฒ ์คํ๋๋ค๋ ์ ์ ์ดํดํฉ๋๋ค.
ํ์ง๋ง ์ ๋ ๋ชจ๋ ๊ฒ์ ๋ฏธ๋ฆฌ ์ต์ ํํ ํ์๋ ์๋ค๋ ๊ด์ ๋ ๊ณ ์ํฉ๋๋ค. ์ฒซ ๋ฒ์งธ ๋ฒ์ ์ ์์, ์๋ ๋ฐ ๊ฐ๋ณ ๋ถํ ๊ต์ฒด๋ฅผ ํ์ฉํด์ผ ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ถํ๊ฐ ์๋ ๊ฒฝ์ฐ ์ด๋ฌํ ๊ฐ๋ณ ๋ถ๋ถ์ ๋ค์ ์์ฑํด์ผ ํฉ๋๋ค.
๋ณด์
๊ฐ๋จ ํด. ADMIN ์ญํ ์ ๊ฐ์ง ์ฌ์ฉ์๊ฐ ์์ต๋๋ค. ์ถ๊ฐ ์ฌํญ์ ํธ์งํ๊ณ ์ญ์ ํ๊ณ ์ ํญ๋ชฉ์ ์ถ๊ฐํ ์ ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ (๋ฑ๋ก ์ฌ๋ถ์ ๊ด๊ณ์์ด) ๋ค๋ฅธ ์ฌ์ฉ์๋ ์์ต๋๋ค. ๊ทธ๋ค์ ์ฒจ๊ฐ์ ๋ชฉ๋ก์ ํ์ํ๊ณ ํ์ํ ๊ฒ์ ๊ฒ์ํ ์๋ง ์์ต๋๋ค.
Spring Security๋ ๊ถํ์ ๋ถ๋ฆฌํ๋ ๋ฐ ์ฌ์ฉ๋์์ต๋๋ค. ์ฌ์ฉ์ ๋ฐ์ดํฐ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅ๋ฉ๋๋ค.
์ฌ์ฉ์๊ฐ ๋ฑ๋กํ ์ ์์ต๋๋ค. ์ด์ ๋ ์๋ฌด๊ฒ๋์ฃผ์ง ์์ต๋๋ค. ํ์๋ค์ด ๊ณ์ํด์ ์๋น์ค๋ฅผ ๊ฐ๋ฐํ๊ณ ์ผ๋ถ ๊ฐ์ธํ๋ ๊ธฐ๋ฅ์ ๋์ ํ๋ค๋ฉด ๋ฑ๋ก์ด ๋์์ด ๋ ๊ฒ์ ๋๋ค.
๋ฐ์์ฑ๊ณผ ๋ถํธ์คํธ๋ฉ
๋ค์ ํฌ์ธํธ๋ ์ ์์ฑ์ด๋ค. ์ฐ๋ฆฌ ์๋น์ค์ ๊ฒฝ์ฐ(์ ์ด๋ ์ฐ๋ฆฌ๊ฐ ๋ณธ ๊ฒ์ฒ๋ผ) ๋๋ค์์ ์ฌ์ฉ์๋ ํด๋ํฐ์ ์ฌ์ฉํ๊ฒ ๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ํด๋ํฐ์์ ๋ณด์ถฉ์ ๋ฅผ ๋น ๋ฅด๊ฒ ํ์ธํด์ผ ํฉ๋๋ค.
CSS๋ก ์ธํ ์ด๋ ค์์ ๊ฒช์ง ์๊ธฐ ์ํด ์ฐ๋ฆฌ๋ Bootstrap์ ์ฌ์ฉํ์ต๋๋ค. ์ธ๊ณ , ๋ช ๋ํ๊ณ , ๊ด์ฐฎ์ ๋ณด์ธ๋ค.
์ธํฐํ์ด์ค๊ฐ ์ด์์ ์ด๋ผ๊ณ ํ ์๋ ์์ต๋๋ค. ๋ฉ์ธํ์ด์ง๋ ๋ํ๊ณ , ์ฒจ๊ฐ๋ฌผ์ ๋ํ ์์ธํ ์ค๋ช ํ์ด์ง๋ ์ข์์ ๋ชจ๋ฐ์ผ์์๋ ์ข ๋ ๋๊ฒ ๋ง๋ค์ด์ผ ํฉ๋๋ค.
์์ ์ ์ต๋ํ ๊ฐ์ญํ์ง ์์ผ๋ ค๊ณ ๋ ธ๋ ฅํ๋ค๊ณ ๋ฐ์ ๋ง์๋๋ฆด ์ ์์ต๋๋ค. ์ด๊ฒ์ ์์ง ํ์ ํ๋ก์ ํธ์ ๋๋ค. ๋ฌผ๋ก , ์ฌ๋๋ค์ ๋์ค์ ๊ทธ๋ฌํ ์๊ฐ์ ๋ฐ๋ก์ก์ ์ ์์ ๊ฒ์ ๋๋ค.
SEO ์ต์ ํ์ ์๊ฐ
์ ๋ XNUMX๋ ๋๊ฒ ์น์ฌ์ดํธ์ SEO์ ๊ด๋ จ๋ ๋ชจ๋ ์ผ์ ๋ฐ์ ํ๊ฒ ์ฐธ์ฌํ๊ธฐ ๋๋ฌธ์ ์ต์ํ ๊ธฐ๋ณธ์ ์ธ SEO ์ต์ ํ ์์ด๋ ํ๋ก์ ํธ๋ฅผ ์ถ์ํ ์ ์์์ต๋๋ค.
์ค์ ๋ก ๊ฐ ์ถ๊ฐ ๊ธฐ๋ฅ์ ๋ํ ์ ๋ชฉ ๋ฐ ์ค๋ช ํ ํ๋ฆฟ ์์ฑ์ ๋ง๋ค์์ต๋๋ค. URL์ ๋ ์งง๊ฒ ๋ง๋ค ์ ์์ง๋ง ๊ฑฐ์ CNC์ ๋๋ค.
์ถ์ ์นด์ดํฐ๋ ์ถ๊ฐํ์ต๋๋ค. ๊ฒ์ ์์ง์ ๊ฒฝ๊ณ ๋ฅผ ๋ชจ๋ํฐ๋งํ๊ธฐ ์ํด Yandex ์น๋ง์คํฐ ๋ฐ Google Search Console์ ์ฌ์ดํธ๋ฅผ ์ถ๊ฐํ์ต๋๋ค.
์ถฉ๋ถํ์ง ์์ต๋๋ค. ์ ์ฒด ์์ธ์ ์์ฑํ๋ ค๋ฉด robots.txt ๋ฐ sitemap.xml๋ ์ถ๊ฐํด์ผ ํฉ๋๋ค. ํ์ง๋ง ๋ค์ ๋งํ์ง๋ง ์ด๊ฒ์ ํ์ ํ๋ก์ ํธ์ ๋๋ค. ๋๋ ๊ทธ๋ค์๊ฒ ๋ฌด์์ ํด์ผ ํ๋์ง ๋งํด ์ค ๊ฒ์ด๊ณ , ๊ทธ๋ค์ด ์ํ๋ค๋ฉด ๊ทธ๋ ๊ฒ ํ ๊ฒ์ ๋๋ค.
SSL ์ธ์ฆ์๋ฅผ ์ฒจ๋ถํด์ผ ํฉ๋๋ค. ๋ฌด๋ฃ Let's Encrypt๋ ์๋ํฉ๋๋ค. ์ ๋ Spring Boot๋ฅผ ์ํด ์ด๊ฒ์ ํ์ต๋๋ค. ์ด๋ ต์ง ์๊ณ PS์ ๋ํ ์ ๋ขฐ๋๊ฐ ๋์์ง๋๋ค.
ํ๋ก์ ํธ์ ๋ค์ ๋จ๊ณ๋ ๋ฌด์์ ๋๊น?
๊ทธ๋ ๋ค๋ฉด ์ฌ์ค ์ ํ์ ๋จ์๋ค์๊ฒ ๋ฌ๋ ค ์์ต๋๋ค. ์ด ํ๋ก์ ํธ์ ์๋ ์์ด๋์ด์๋ ์ฒจ๊ฐ์ ์ ๋ํ ๋งํฌ๊ฐ ์๋ ์ ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ํฌํจ๋์์ต๋๋ค.
"Snickers"๋ฅผ ์ ๋ ฅํ๊ณ ์ด๋ค ์์ ์ฒจ๊ฐ๋ฌผ์ด ํฌํจ๋์ด ์๋์ง ํ์ธํ์ธ์.
ํ๋ก์ ํธ ์ด๋ฐ์๋ ์ ํ์ด ์์ ์ค ์์๊ฑฐ๋ ์ :) ๊ทธ๋์ ์ฒจ๊ฐ๋ฌผ๋ง์ผ๋ก ์์ํ๊ฒ ๋์ด์.
์ด์ ์ ํ์ ์ถ๊ฐํ๊ณ ์ถ๊ฐ ์ ํ์ ์๊ฐํ ์ ์์ต๋๋ค. ๋นต. ๊ด๋ฒ์ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ผ๋ฉด ์ฌ์ฉ์๊ฐ ์์ ๊ฒ์ ๋๋ค.
์ ๊ฐ
์ด ํ๋ก์ ํธ๋ VPS, Aruba Cloud์ ๋ฐฐํฌ๋์์ต๋๋ค. ์ด๊ฒ์ ์ฐ๋ฆฌ๊ฐ ์ฐพ์ ์ ์๋ ๊ฐ์ฅ ์ ๋ ดํ VPS์ ๋๋ค. ๋๋ ํ๋ก์ ํธ๋ฅผ ์ํด XNUMX๋ ๋๊ฒ ์ด ๊ณต๊ธ์๋ฅผ ์ฌ์ฉํด ์์ผ๋ฉฐ ๋งค์ฐ ๋ง์กฑํ๊ณ ์์ต๋๋ค.
VPS ํน์ฑ: 1GB RAM, 1 CPU(์ฃผํ์๋ ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค), 20GB SSD. ์ฐ๋ฆฌ ํ๋ก์ ํธ์์๋ ์ด๊ฒ์ผ๋ก ์ถฉ๋ถํฉ๋๋ค.
ํ๋ก์ ํธ๋ ์ผ๋ฐ์ ์ธ mvn clean ํจํค์ง๋ฅผ ์ฌ์ฉํ์ฌ ๋น๋๋ฉ๋๋ค. ๊ทธ ๊ฒฐ๊ณผ๋ ๋ชจ๋ ์ข ์์ฑ์ด ํฌํจ๋ ์คํ ํ์ผ์ธ fat jar์ ๋๋ค.
์ด ๋ชจ๋ ๊ฒ์ ์ฝ๊ฐ ์๋ํํ๊ธฐ ์ํด ๋ช ๊ฐ์ง bash ์คํฌ๋ฆฝํธ๋ฅผ ์์ฑํ์ต๋๋ค.
์ฒซ ๋ฒ์งธ ์คํฌ๋ฆฝํธ๋ ์ด์ jar ํ์ผ์ ์ญ์ ํ๊ณ ์ ํ์ผ์ ๋น๋ํฉ๋๋ค.
๋ ๋ฒ์งธ ์คํฌ๋ฆฝํธ๋ ์กฐ๋ฆฝ๋ jar์ ์คํํ์ฌ ํ์ํ ํ๋กํ์ ์ด๋ฆ์ ์ ๋ฌํฉ๋๋ค. ์ด ํ๋กํ์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ ์ ๋ณด๊ฐ ํฌํจ๋์ด ์์ต๋๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋์ผํ VPS์ MySQL์ ๋๋ค.
์ ์ฒด ํ๋ก์ ํธ ์ฌ์์์๋ ๋ค์์ด ํฌํจ๋ฉ๋๋ค.
- SSH๋ฅผ ํตํด VPS์ ๋ก๊ทธ์ธ
- ์ต์ Git ๋ณ๊ฒฝ ์ฌํญ์ ๋ค์ด๋ก๋ํ์ธ์.
- local-jar.sh ์คํ
- ์คํ ์ค์ธ ์ ํ๋ฆฌ์ผ์ด์ ์ข ๋ฃ
- launch-production.sh๋ฅผ ์คํํ์ธ์.
์ด ์ ์ฐจ๋ XNUMX๋ถ ์ ๋ ๊ฑธ๋ฆฝ๋๋ค. ์ด๋ ๊ฒ ์์ ํ๋ก์ ํธ์์๋ ์ด๊ฒ์ด ํ๋ช ํ ์ ํ์ธ ๊ฒ ๊ฐ์ต๋๋ค.
์ด๋ ค์
ํ๋ก์ ํธ๋ฅผ ๋ง๋ค ๋ ๊ฐ์ฅ ํฐ ์ด๋ ค์์ ์กฐ์ง์ ์ฑ๊ฒฉ์ด์์ต๋๋ค.
ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ๋ฒ์ ์๋ ๊ฒ์ฒ๋ผ ๋ณด์ด์ง๋ง ๊ทธ๋ค์ง ์ ์์ง ๋ชปํ๋ ์ฌ๋๋ค์ด ์์ต๋๋ค. ๊ทธ๋ค์ ๋ญ๊ฐ๋ฅผ ์๊ณ ์์ง๋ง ์ฌ์ ํ ๊ทธ๊ฒ์ ์ค์ ๋ก ์ ์ฉํ ์๋ ์์ต๋๋ค. ์ด์ ๊ทธ๋ค์ ํ ๋ฌ ์์ ํ๋ก์ ํธ๋ฅผ ์๋ฃํด์ผ ํฉ๋๋ค.
๋๋ ์ด ๊ทธ๋ฃน์์ ์กฐ๊ฑด๋ถ ํ ๋ฆฌ๋๋ฅผ ํ์ธํ์ต๋๋ค. ๊ทธ๋ ์์ ๋ชฉ๋ก, ์์ ๋ฐฐํฌ๊ฐ ํฌํจ๋ Google ๋ฌธ์๋ฅผ ๋ณด๊ดํ๊ณ ํด๋น ์์ ์ ์๋ฝ์ ํต์ ํ์ต๋๋ค. ๊ทธ๋ ๋ํ ํ ์์ฒญ์ ์๋ฝํ์ต๋๋ค.
๋๋ ๋ํ ํ์๋ค์๊ฒ ๋งค์ผ ์ ๋ ๊ทธ๋ค์ด ํ๋ก์ ํธ์์ ์ํํ ์์ ์ ๋ํ ์งง์ ๋ณด๊ณ ์๋ฅผ ์์ฑํ๋๋ก ์์ฒญํ์ต๋๋ค. ์๋ฌด๊ฒ๋ ํ์ง ์์๋ค๋ฉด ๊ทธ๋ฅ "์๋ฌด๊ฒ๋ ํ์ง ์์์ต๋๋ค"๋ผ๊ณ ์ฐ์ธ์. ์ด๊ฒ์ ํ๋ฅญํ ์ฐ์ต์ด๋ฉฐ ์ฝ๊ฐ ๊ธด์ฅํ๊ฒ ๋ง๋ญ๋๋ค. ๋ถํํ๋ ๋ชจ๋ ์ฌ๋์ด ์ด ๊ท์น์ ๋ฐ๋ฅด๋ ๊ฒ์ ์๋๋๋ค.
์ด ๋ชจ๋ ์ด๋์ ๋ชฉ์ ์ ๊ฐ๋จํ์ต๋๋ค. ์งง์ ์๊ฐ์ด๋ผ๋ ํ์ ๊ตฌ์ฑํ์ฌ ํจ๊ป ์ผํ์ธ์.
๋๋ ์ฌ๋๋ค์ด ์์ ์ ์ผ์ด ์ค์ํ๋ค๊ณ ๋๋ผ๊ธฐ๋ฅผ ์ํ์ต๋๋ค. ์ง๊ณต ์ํ์์ ๊ตฌํ ์ฝ๋๋ฅผ ์์ฑํ์ง ์๋๋ค๋ ์ ์ ์ดํดํ์ญ์์ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ๋ค์ด ํจ๊ป ํ๊ณ ์๋ ์ผ์ ๋์ค์ ์ฌ๋๋ค์ด ์ฌ์ฉํ ํ๋ก์ ํธ์ ๋๋ค.
์ฒ์ XNUMX, XNUMX์ฃผ๋ ์์ด๋ ๊ธฐ๊ฐ์ด์์ต๋๋ค. ์ํฐํฐ์ ์๊ท๋ชจ ์ปค๋ฐ์ด ๋๋ฆฌ๊ฒ ์ด๋ฃจ์ด์ก์ต๋๋ค. ์กฐ๊ธ์ฉ ๊ทธ๋ค์ ํ์ ์ด์ฃผ์๊ณ , ์์ ์ ๋์ฑ ์ฌ๋ฏธ์์ด์ก์ต๋๋ค. ์ฑํ ์ ์์ฌ์ํต์ด ๋์ฑ ํ๋ฐํด์ก๊ณ ํ์๋ค์ ์ถ๊ฐ ๋ด์ฉ์ ์ ๊ณตํ์ต๋๋ค.
๋๋ ๋ชฉํ๊ฐ ๋ฌ์ฑ๋์๋ค๊ณ ๋ฏฟ์ต๋๋ค. ํ๋ก์ ํธ๊ฐ ์๋ฃ๋์๊ณ ์ฌ๋๋ค์ ํ์์ ์ผํ๋ฉด์ ์ฝ๊ฐ์ ๊ฒฝํ์ ์ป์์ต๋๋ค. ์น๊ตฌ๋ค์๊ฒ ๋ณด์ฌ์ฃผ๊ณ ๋์ฑ ๋ฐ์ ์ํฌ ์ ์๋ ๊ฐ์์ ์ด๊ณ ์ค์ง์ ์ธ ๊ฒฐ๊ณผ๊ฐ ์์ต๋๋ค.
์กฐ์ฌ ๊ฒฐ๊ณผ
ํ์ต์ ์ฌ๋ฏธ์์ต๋๋ค.
์์ ์ด ๋๋ ๋๋ง๋ค ๋๋ ๊ฐ์ ์ ์ผ๋ก ๋์๋์ด ๋์์์ต๋๋ค. ๋๋ ๊ฐ ์์ ๋ ํนํ๊ฒ ๋ง๋ค๊ณ ๊ฐ๋ฅํ ํ ๋ง์ ์ง์์ ์ ๋ฌํ๋ ค๊ณ ๋ ธ๋ ฅํฉ๋๋ค.
๋ด๊ฐ ๊ฐ๋ฅด์น๋ ์กฐ๊ฐ ๊ฒฐ์น์ ์ง์ถํ๋ฉด ๊ธฐ์๋ค. ๋จ์๋ค์ด "๋ ์ทจ์งํ์ด, ๋ค ๊ด์ฐฎ์, ๊ณ ๋ง์"๋ผ๊ณ ์ธ ๋ ํนํ ๋ฉ์ ธ์. ํ๋ฐฐ๋ผ๋, ์ฒ์์๋ ํฐ ๋์ ์๋๋๋ผ๋. ํ์ง๋ง ๊ฐ์ฅ ์ค์ํ ๊ฒ์ ๊ทธ๋ค์ด ์์ ์ ์๋ง์ ํฅํด ํ ๊ฑธ์ ๋ด๋์๊ณ ์ฑ๊ณตํ๋ค๋ ๊ฒ์ ๋๋ค.
๊ธฐ์ฌ๊ฐ ์๋นํ ๋ฐฉ๋ํด์ก์ง๋ง ๋ชจ๋ ์์ ์ ๋ค๋ฃจ๋ ๊ฒ์ ํ์คํ ๋ถ๊ฐ๋ฅํ์ต๋๋ค. ๋ฐ๋ผ์ ๋๊ธ์ ์ง๋ฌธ์ ์ ์ด์ฃผ์ธ์.
์ถ์ฒ : habr.com