โ๏ธ๋์ ์๋ ์ฒซ ํ๊ธฐ..5/28~29์ ๊ฑธ์ณ GDG Summit์ด ์งํ๋์๋ค. 4์์ฏค์ Summit ์ ์ฒญ์ด ์์๋๊ณ , ์ดํ ์ผ์ ๊ณต์ ๋ฅผ ๋ฐ์๋ค. ์ฒ์์๋ ์ ๊ทธ๋ ๊ตฌ๋ ํ๋๋ฐ, Summit ์ผ์ฃผ์ผ ์ ๋ถํฐ ์ค๋ฉ์ค๋ฉ ์ค๋ ๊ณผ ๊ธฐ๋๊ฐ ํผ์ด์ค๋ฅด๊ธฐ ์์ํ๋ค. ์ฌ์ค GDG ํ๋ ์
1. ํธ๋์ญ์ ์ฝ๋์ ๋ถ๋ฆฌ 1.1 ๋ฉ์๋ ๋ถ๋ฆฌ 1.2 DI๋ฅผ ์ด์ฉํ ํด๋์ค์ ๋ถ๋ฆฌ 1.2.1 DI ์ ์ฉ์ ์ด์ฉํ ํธ๋์ญ์ ๋ถ๋ฆฌ 1.2.2 UserService ์ธํฐํ์ด์ค ๋์ 1.2.3 ๋ถ๋ฆฌ๋ ํธ๋์ญ์ ๊ธฐ๋ฅ 1.2.4 ํธ๋์ญ์ ์ ์ฉ์ ์ํ DI ์ค์ 1.2.5 ํธ๋์ญ์
JdbcTemplate์ ๋ํ๋ก ํ๋ ์คํ๋ง์ ๋ฐ์ดํฐ ์ก์ธ์ค ๊ธฐ๋ฅ์ ๋ด๊ฒจ ์๋ ์์ธ์ฒ๋ฆฌ์ ๊ด๋ จ๋ ์ ๊ทผ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ณด์. JdbcContext์์ JdbcTemplate์ผ๋ก ๋ฐ๊พธ๊ธฐ ์ ๊ณผ ํ์ deleteAll() ๋ฉ์๋๋ฅผ ๋น๊ตํด๋ณด์.JdbcTemplate ์ ์ฉ ์ด์
ํน์ ์กฐ์ง์ ์ฌ๋ฌ ์ฌ์ฉ์๊ฐ ๊ณต์ ํ์ฌ ์ฌ์ฉํ ์ ์๋๋ก ํตํฉํด์ ์ ์ฅํ ์ด์ ๋ฐ์ดํฐ์ ์งํฉ์ด๋ค.ํ์ผ ์์คํ ์ ๋ฐ์ดํฐ ์ค๋ณต๊ณผ ๋ฐ์ดํฐ ์ข ์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ ์๋ ์ํํธ์จ์ด๋ค. ์กฐ์ง์ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํตํฉํ์ฌ ์ ์ฅํด๋๊ณ ์ด๋ฅผ ๊ด๋ฆฌํ๋ค.์ ์ ๊ธฐ๋ฅ : ๋ฐ์ดํฐ
TCP๋ ์ ๋ขฐ์ฑ ์๋ ๋ฐ์ดํฐ ์ ์ก์ ์ง์ํ๋ ์ฐ๊ฒฐ ์งํฅํ ํ๋กํ ์ฝ์ด๋ค. UDP์ ๋์ผํ๊ฒ ์ ์ก ๊ณ์ธต์ ์์นํ๊ณ ์๋ค.3-way handshake ๊ณผ์ ์ ํตํด ์ฐ๊ฒฐ์ ์ค์ ํ๊ณ , 4-way handshake ๊ณผ์ ์ ํตํด ํด์ ํ๋ค.๋ฐ์ดํฐ ํ๋ฆ ์ ์ด(์์ ์ ๋ฒํผ ์ค๋ฒํ๋ก์ฐ ๋ฐฉ
HTTPS(HyperText Transfer Protocol over Secure Socket Layer)HTTP์ ๋ณด์์ด ๊ฐํ๋ ๋ฒ์ ์ผ๋ก ํต์ ์ ์ธ์ฆ๊ณผ ์ํธํ๋ฅผ ์ํด ๊ฐ๋ฐ๋์๋ค.์ผ๋ฐ ํ ์คํธ๋ฅผ ์ด์ฉํ๋ ๋์ SSL์ด๋ TLS ํ๋กํ ์ฝ์ ํตํด ์ธ์ ๋ฐ์ดํฐ๋ฅผ ์ํธํ ํ๋ค.
๋ฆฌ๋ ์ค ์๋ฒ๋ฅผ ๊ตฌ์ถํ๋ค๋ฉด ํฐ๋ฏธ๋์ด๋ ๊ทธ๋ํฝ ์ ์ ์ธํฐํ์ด์ค(GUI) ํ๊ฒฝ์ ํตํด ์ฌ๋ฌ๊ฐ์ง ์์ ์ ์งํํ ์ ์๋ค. ๊ทธ๋ฌ๋ ๋๋ถ๋ถ์ ๋ฆฌ๋ ์ค ์๋ฒ๋ ํ์ฌ์์ ์ฌ๋ด ์๋ฒ๋ก์ ํ ์ฅ์์ ๋ฌถ์ด๋๊ฑฐ๋, ํธ์คํ ์ ์ฒด ๋ฐ ํด๋ผ์ฐ๋ ํธ์คํ ๋ฑ์ ๋ค์ํ ๊ตฌ์ฑ์ผ๋ก ์ด๋ฃจ์ด์ก๊ธฐ ๋๋ฌธ์ ๊ด๋ฆฌ์
์คํ๋ง์ ์๋ฐ ์ํฐํ๋ผ์ด์ฆ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ์ฌ์ฉ๋๋ ์ ํ๋ฆฌ์ผ์ด์ ํ๋ ์์ํฌ์ด๋ค. ์ ํ๋ฆฌ์ผ์ด์ ํ๋ ์์ํฌ๋ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ๋น ๋ฅด๊ณ ํจ์จ์ ์ผ๋ก ํ ์ ์๋๋ก ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐํ์ด ๋๋ ํ๊ณผ ๊ณตํต ํ๋ก๊ทธ๋๋ฐ ๋ชจ๋ธ, ๊ธฐ์ API ๋ฑ์ ์ ๊ณตํด์ค๋ค.์คํ๋ง ๋ฐํ์ ์์ง์ค์ ์
์ธํฐ๋ท ํ์ค ํ๋กํ ์ฝ์ TCP/IP ์ด๋ค.TCP/IP ํ๋กํ ์ฝ์ ์ฌ์ฉํ๋ ๋คํธ์ํฌ ์์์๋ Host ๋ค์ ์๋ณํ๊ธฐ ์ํ ๋ชฉ์ ์ผ๋ก IP ์ฃผ์๋ฅผ ์ฌ์ฉํ๋ค.์ฌ๋์ ๊ฒฝ์ฐ ์ด IP์ฃผ์๋ฅผ ์ผ์ผํ ๊ธฐ์ตํ๊ณ ๊ตฌ๋ถํ๊ธฐ ํ๋ค๊ณ , ์ซ์๋ณด๋ค ๋ฌธ์๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ๋ ํธํ๊ธฐ ๋๋ฌธ์ ๋๋ฉ์ธ ์ด
HTTP ์ด๊ธฐ ๋ฒ์ ์๋ ๋ฒ์ ๋ฒํธ๊ฐ ์์๋ค. HTTP/0.9๋ ์ดํ์ ์ฐจํ ๋ฒ์ ๊ณผ ๊ตฌ๋ณํ๊ธฐ ์ํด 0.9๋ก ๋ถ๋ฆฌ๊ฒ ๋์๋ค.HTTP/0.9๋ ๊ทนํ ๋จ์ํ๋ค. ์์ฒญ์ ๋จ์ผ ๋ผ์ธ์ผ๋ก ๊ตฌ์ฑ๋๋ฉฐ ๋ฆฌ์์ค์ ๋ํ (ํ๋กํ ์ฝ, ์๋ฒ ๊ทธ๋ฆฌ๊ณ ํฌํธ๋ ์๋ฒ๊ฐ ์ฐ๊ฒฐ๋๊ณ ๋๋ฉด ๋ถํ์ ํ๋ฏ๋ก U
ํด๋ผ์ด์ธํธ๋ ์๋น์ค๋ฅผ ์ ๊ณตํ๋ ์๋ฒ์๊ฒ ์ ๋ณด๋ฅผ ์์ฒญํ์ฌ ์๋ต ๋ฐ์ ๊ฒฐ๊ณผ๋ฅผ ์ฌ์ฉํ๋ค.์น์๋ฒ์ ์น๋ธ๋ผ์ฐ์ ๊ฐ ๋ํ์ ์ผ๋ก ์๋ฒ์ ํด๋ผ์ด์ธํธ์ ๊ด๊ณ๋ผ๊ณ ๋งํ ์ ์๋ค.๋ค์์ ์ฌ์ฉ์๋ค์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ด์ ๋ฐ์ดํฐ๋ฅผ ์ ๊ทผํ ์ ์๋๋ก ํด์ฃผ๋ ์ํํธ์จ์ด(MySQL, Oracle ๋ฑ)D
์๋ฒ-ํด๋ผ์ด์ธํธ ๋ชจ๋ธ์ ๋ฐ๋ฅด๋ HTTP ํ๋กํ ์ฝ์ ํน์ง์ด์ ์ฝ์ ์ ๋ณด์ํ๊ธฐ ์ํด ์ฌ์ฉํ๋ค.HTTP ํ๋กํ ์ฝ ํ๊ฒฝ์์ ์๋ฒ๋ ํด๋ผ์ด์ธํธ๊ฐ ๋๊ตฌ์ธ์ง ํ์ธํด์ผํ๋ค. ๊ทธ ์ด์ ๋ HTTP ํ๋กํ ์ฝ์ด Connectionless, statelessํ ํน์ฑ์ด ์๊ธฐ ๋๋ฌธ์ด๋ค.์๋ฒ-ํด๋ผ
๋ง์ ์ปดํจํฐ๋ค์ด ์ธํฐ๋ท ์์์ ์๋ก๋ฅผ ์ธ์ํ๊ธฐ ์ํด ์ง์ ๋ฐ์ ์๋ณ์ฉ ๋ฒํธ์ด๋ค.ํ์ฌ๋ IPv4(32๋นํธ)๋ก ๊ตฌ์ฑ๋์ด ์๋ค.์๊ฐ์ด ๊ฐ์๋ก IPv4 ์ฃผ์์ ๋ถ์กฑ์ผ๋ก IPv6๊ฐ ์๊ฒผ๋๋ฐ, 128๋นํธ ๊ตฌ์ฑ๋๊ธฐ ๋๋ฌธ์ IP์ฃผ์๊ฐ ๋ถ์กฑํ์ง ์๋ค๋ ํน์ฑ์ด ์๋ค.IP์ฃผ์๋ 12์๋ฆฌ์
๋ก๋๋ฐธ๋ฐ์ฑ ๊ธฐ์ ์ ์ ๊ณตํ๋ ์๋น์ค ๋๋ ์ฅ์นํด๋ผ์ด์ธํธ์ ๋คํธ์ํฌ ํธ๋ํฝ์ด ์ง์ค๋๋ ์๋ฒ๋ค ๋๋ ๋คํธ์ํฌ ํ๋ธ ์ฌ์ด์ ์์นํ๋ค.ํ ๋์ ์๋ฒ๋ก ๋ถํ๊ฐ ์ง์ค๋์ง ์๋๋ก ํธ๋ํฝ์ ๊ด๋ฆฌํด ๊ฐ๊ฐ์ ์๋ฒ๊ฐ ์ต์ ์ ํผํฌ๋จผ์ค๋ฅผ ๋ณด์ผ ์ ์๋๋ก ํ๋ค.๋ง์ฝ Scale-out ๋ฐฉ์์ผ๋ก ์
HTTP(Hypertext Transfer Protocol)๋ ์ธํฐ๋ท ์์์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๊ธฐ ์ํ ์๋ฒ/ํด๋ผ์ด์ธํธ ๋ชจ๋ธ์ ๋ฐ๋ฅด๋ ํ๋กํ ์ฝ๋ก, HTML ๋ฌธ์์ ๊ฐ์ ๋ฆฌ์์ค๋ค์ ๊ฐ์ ธ์ฌ ์ ์๋๋ก ํด์ฃผ๋ ํ๋กํ ์ฝ์ด๋ค.์ ํ๋ฆฌ์ผ์ด์ ๋ ๋ฒจ์ ํ๋กํ ์ฝ๋ก TCP/IP ์์์ ์๋
์์ฆ ๋์ค๋ CPU์๋ ๋ฉํฐ ์ฝ์ด, ์ฟผ๋ ์ฝ์ด, ํฅ์ฌ ์ฝ์ด ๋ฑ์ผ๋ก ๊ด๊ณ ํ๋ ๊ฒ์ ๋ณผ ์ ์๋ค. ์ด๋ ๋ฏ ์์ฆ์ ๋ฉํฐ ํ๋ก์ธ์ ์์คํ ์ด ๋ณดํธํ๋๊ณ ์๋ค. ์ด๋ฌํ CPU์์ ์ด๋ป๊ฒ ์ค์ผ์ค๋งํด์ ์ฌ์ฉํด์ผ ํ ๊น?ํ๋ ์ด์์ CPU๊ฐ ์์ผ๋ฉด ์ง๊ธ๊น์ง๋ ๊ณ ๋ คํ์ง ์์๋ ๋ช ๊ฐ์ง ๋ฌธ
์ฌ์ฉ์์ ํ์ผ ์์คํ ์ธํฐํ์ด์ค์ ๋ํ ์ค๋ช ๋ค์, ๊ฐ์ฅ ํ์ ๋จ๊ณ์ธ ์ ์ฅ์ฅ์น์ ๊ตฌ์กฐ์ ๋ํด ์ค๋ช ํ๋ค.์๊ธฐ ๋์คํฌ๋ ํ๋์ ์ปดํจํฐ ์์คํ ์ ์ํ ๋๋์ ๋ณด์กฐ์ ์ฅ์ฅ์น๋ก ์ฌ์ฉ๋๋ค.์ค์ฌ์๋ ์คํ๋ค(spindle)์ด ์์ด ์๊ณ๋ฐฉํฅ์ผ๋ก ๋์๊ฐ๋ค. ์ฉ๋์ด ํฐ ์๋ฒ์ฉ ๋์คํฌ๋ ๋ฉด์ด