Logging
System.out.println("*********์ ๋ฐ ๋์๋ผ*********");
System.out.println("*********์ ๋ฐ ๋์๋ผ*********");
JPA-์์ํ๊ธฐ ์์ ์ด๋ ์ ๋ ์์์ฑ ์ปจํ ์คํธ์ ์ํฐํฐ์ ์๋ช ์ฃผ๊ธฐ๋ฅผ ๊ฐ๋จํ๊ฒ ์์๋ดค๋ค. ์ด ์์์ฑ ์ปจํ ์คํธ์ ํน์ง์ ์ข ๋ ์์ธํ ์์๋ณด๋๋ก ํ์.
JPA ์ง์ฐ ๋ก๋ฉ
์คํ๋ง @MVC
์ํฐํฐ๋ค์ ๋๋ถ๋ถ ๋ค๋ฅธ ์ํฐํฐ์ ์ฐ๊ด๊ด๊ณ๊ฐ ์๋ค. ํ์ง๋ง ORM vs SQL Mapper vs JDBC์์ ๋ณผ ์ ์๋ฏ์ด ๊ฐ์ฒด์ ํ ์ด๋ธ์ ์๋ก ๋ค๋ฅธ ๋ฐฉ์์ผ๋ก ์ฐ๊ด๊ด๊ณ๋ฅผ ๋งบ๋๋ค. ๊ฐ์ฒด์ ๊ฒฝ์ฐ ์ฐธ์กฐ๋ฅผ ํตํด ๊ด๊ฒ๋ฅผ ๋งบ๊ณ ํ ์ด๋ธ์ ์ธ๋ ํค๋ฅผ ์ฌ์ฉํด์ ๊ด๊ณ๋ฅผ ๋งบ๋๋ค. ORM์์๋ ๊ฐ์ฒด ์ฐ๊ด...
ORM vs SQL Mapper vs JDBC๋ฅผ ํตํด JPA๊ฐ ๋ฌด์์ธ์ง ์๊ฒ๋์๋ค. ์ด๊ฒ ์ค์ ์ฝ๋๋ฅผ ํตํด ์ด๋ป๊ฒ ์ฌ์ฉํ๋์ง ํ์ธํด๋ณด์. ํด๋น ๊ธ์ ํํ ์ฌ์ฉํ๋ Hibernate๋ฅผ ๊ธฐ์ค์ผ๋ก ์ค๋ช ํ ๊ฒ์ด๋ค.
ํ ํ๋ฆฟ ์ฝ๋ฐฑ ํจํด
Bean๊ณผ IoC ์ปจํ ์ด๋
Spring์ด๋
Spring Framework์ ๋ฌธ์๋ฅผ ์ ๋ฆฌํด๋ณด๋ฉด์ ์ดํด๊ฐ ๋์ง ์๋ ๋ถ๋ถ์ด ์๋นํ ๋ง๋ค. ๊ทธ ์ค์์ ์๋ธ๋ฆฟ๊ณผ ๊ด๋ จ๋ ๋ง์ ๋ถ๋ถ์ด ์ดํด๊ฐ ๋์ง ์์๋ค. ์ฌ์ฌ Spring๋ฟ๋ง ์๋๋ผ Servlet์ ๋ํ ์ดํด๊ฐ ํ์ํ์ง ์์๊นํ์ฌ, ์ด๋ฒ ๊ธฐํ์ ์ ๋ฆฌํด๋ณด๊ณ ์ ํ๋ค.
์์์ฑ(Persistence)์ด๋?
Components(์ปดํฌ๋ํธ)
Spring JDBC ๋ JDBC๋ฅผ ์ฌ์ฉํ ๋ ๊ฐ๋ฐ์๊ฐ ์ฒ๋ฆฌํด์ผ๋๋ ๊ฒ์ ์ผ๋ถ๋ฅผ ๋์ ์ฒ๋ฆฌํด์ค๋ค.
Spring Web MVC๋ Servlet API๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌ์ถ๋ ์น ํ๋ ์์ํฌ๋ค. ์๋๋ Java ์ฝ๋๋ฅผ ์ด์ฉํ์ฌ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ์ ๋ฆฌํ๋ค.
Spring Framework๋?
์ต๊ทผ์ Java๋ก ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉด์ ์ง๊ธ๊น์ง ์์ธ๋ฅผ ์๋ชป๋ ๋ฐฉ๋ฒ์ผ๋ก ์ฌ์ฉํ๊ณ ์์๋ค๋ ๊ฒ์ ์ธ์งํ๋ค. Effective Java๋ฅผ ์ฝ์ ํ ์งํฅํด์ผ ๋ Exception ์ ๋ต์ ์ ๋ฆฌํด๋ณธ๋ค.
JDBC๋?
์ธ์์ ๊ฐ์ผ๋ก null์ ์ ๋ ํ์ฉํ์ง ๋ง๋ผ
JUnit ์ด๋
์ปดํ์ผ
์ค๋ ๋ฐ์ผ๋ฆฌ ๋ฏธํ ์ ํ์ต๋ก๊ทธ ํ๊ณ ์๊ฐ. ์กฐ์ด์ ํจ๊ป ์์๊ณผ ์กฐํฉ์ ๋ํ์ฌ ์ด์ผ๊ธฐํ๊ณ ์์๋ค.
์ํ ํจํด์ด๋?
์ ๋ต ํจํด์ด๋?
๋ฐ์ฝ๋ ์ดํฐ ํจํด์ด๋?
์์์ ์ฅ์
๋ถ๋ณ ๊ฐ์ฒด๋?
๊ณต๋ถํ ๋ด์ฉ์ ์ ๋ฆฌํ๋ ๊ฒ์ด ์๋๋ผ ๋ด๊ฐ ๊ณต๋ถํ๋ค๊ฐ ์๊ธด ์๋ฌธ์ ๊ธ๋ก ์จ๋ณด๋ ๊ฒ์ ์ฒ์์ด๋ผ ์ด์ํ์ง๋ง ์ผ๋จ ๊ธฐ๋กํด๋ณธ๋ค. ์๋ฐ์๋ ๋ฐฐ์ด๊ณผ ๋ฆฌ์คํธ๊ฐ ์๋ค. ๋ฆฌ์คํธ์ ์ง์ํ๋ API๊ฐ ๋ง๊ธฐ ๋๋ฌธ์ ๋ฆฌ์คํธ๋ฅผ ์ฐ๋ผ๊ณ ๋ง์ด ๊ถ์ฅํ์ง๋ง ๋ ๋ค๋ฅธ ์ฐจ์ด์ ์ด์๋ค.
Exception์ ์์ ๊ตฌ์กฐ
Java Generics(์ ๋ค๋ฆญ)์ด๋?
Java ์ฝ๋ฉ ์ ์ถ๋ ฅ๊ณผ ๊ด๋ จ๋ ๋ถ๋ถ์์ ๋ฌธ์์ด์ ํฉ์ณ์ ์ถ๋ ฅํด์ผ ๋๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค. ํ์ง๋ง ์ด ๋ ๋ฌธ์์ด ๋ง์ ์ผ๋ก ์ฒ๋ฆฌํ ๊ฒฝ์ฐ ์ฑ๋ฅ์ด ๋จ์ด์ง๋ค. ๋ฉ๋ชจ๋ฆฌ ํ ๋น๊ณผ ํด์ ๊ฐ ๋ฐ์ํ๊ธฐ ๋๋ฌธ์ด๋ค.
Stream(์คํธ๋ฆผ)์ด๋?
์ผ์ ๊ฐ์์ ์์ ๊ฐ์ ์ ์ํ ๋ค์, ๊ทธ ์ธ์ ๊ฐ์ ํ์ฉํ์ง ์๋ ํ์ ์ ์ด๊ฑฐ ํ์ ์ด๋ผ๊ณ ํ๋ค. ์ด๋ฐ ์์๋ค์ int๋ String์ผ๋ก ์ด๊ฑฐํ๊ฒ ๋๋ค๋ฉด ๋จ์ ์ด ์๋ค.
JCF๋?
โ๋ฉค๋ฒ ๋ณ์๋ก ์ปฌ๋ ์ ์ด ์๊ณ , ์ด์ธ์ ๋ค๋ฅธ ๋ฉค๋ฒ ๋ณ์๋ ์๋ ํด๋์คโ๋ฅผ ์ผ๊ธ ์ปฌ๋ ์ ์ด๋ผ๊ณ ํ๋ค. ์ด๋ฐ ์ผ๊ธ ์ปฌ๋ ์ ์ด ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋จ์ ์ ์ฌ์ฉ๋๋์ง ์ ๋ฆฌํด๋ณธ๋ค.
๋ฐฉ์ด์ ๋ณต์ฌ๋?
Utility Class๋?
Static Factory Method๋?
System.out.println("*********์ ๋ฐ ๋์๋ผ*********");
ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์ ๊ฐฑ์ ๋ ์ ๋ณด๋ฅผ ์ด๋ป๊ฒ ๋น ๋ฅด๊ฒ ๊ฐ์ ธ์ฌ ์ ์์๊น?
์คํ๋ง @MVC
์ํฐํฐ๋ค์ ๋๋ถ๋ถ ๋ค๋ฅธ ์ํฐํฐ์ ์ฐ๊ด๊ด๊ณ๊ฐ ์๋ค. ํ์ง๋ง ORM vs SQL Mapper vs JDBC์์ ๋ณผ ์ ์๋ฏ์ด ๊ฐ์ฒด์ ํ ์ด๋ธ์ ์๋ก ๋ค๋ฅธ ๋ฐฉ์์ผ๋ก ์ฐ๊ด๊ด๊ณ๋ฅผ ๋งบ๋๋ค. ๊ฐ์ฒด์ ๊ฒฝ์ฐ ์ฐธ์กฐ๋ฅผ ํตํด ๊ด๊ฒ๋ฅผ ๋งบ๊ณ ํ ์ด๋ธ์ ์ธ๋ ํค๋ฅผ ์ฌ์ฉํด์ ๊ด๊ณ๋ฅผ ๋งบ๋๋ค. ORM์์๋ ๊ฐ์ฒด ์ฐ๊ด...
ORM vs SQL Mapper vs JDBC๋ฅผ ํตํด JPA๊ฐ ๋ฌด์์ธ์ง ์๊ฒ๋์๋ค. ์ด๊ฒ ์ค์ ์ฝ๋๋ฅผ ํตํด ์ด๋ป๊ฒ ์ฌ์ฉํ๋์ง ํ์ธํด๋ณด์. ํด๋น ๊ธ์ ํํ ์ฌ์ฉํ๋ Hibernate๋ฅผ ๊ธฐ์ค์ผ๋ก ์ค๋ช ํ ๊ฒ์ด๋ค.
ํ ํ๋ฆฟ ์ฝ๋ฐฑ ํจํด
Bean๊ณผ IoC ์ปจํ ์ด๋
Spring์ด๋
Spring Framework์ ๋ฌธ์๋ฅผ ์ ๋ฆฌํด๋ณด๋ฉด์ ์ดํด๊ฐ ๋์ง ์๋ ๋ถ๋ถ์ด ์๋นํ ๋ง๋ค. ๊ทธ ์ค์์ ์๋ธ๋ฆฟ๊ณผ ๊ด๋ จ๋ ๋ง์ ๋ถ๋ถ์ด ์ดํด๊ฐ ๋์ง ์์๋ค. ์ฌ์ฌ Spring๋ฟ๋ง ์๋๋ผ Servlet์ ๋ํ ์ดํด๊ฐ ํ์ํ์ง ์์๊นํ์ฌ, ์ด๋ฒ ๊ธฐํ์ ์ ๋ฆฌํด๋ณด๊ณ ์ ํ๋ค.
์์์ฑ(Persistence)์ด๋?
MVC Configuration ํ์ฑํ
์ด ๊ธ์์๋ Spring Framework๋ก HTTP ์ธ์ ์ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ์ ๋ฆฌํ๋ค.
Spring Test ๋ด์ฉ์ ์ ๋ฆฌํ๋ฉด์ ์์ง Spring์ ๊ด๋ จ๋ ๊ฐ๋ ์ด ์ ๋ฆฌ๊ฐ ๋์ง ์์๋ค๋ ๊ฒ์ ๊บ ๋ฌ์๋ค. ์ด๋ฅผ ํ๋ฒ ์ ๋ฆฌํ๊ธฐ ์ํด Spring Core(2)๋ฅผ ์์ฑํ๊ฒ ๋์๋ค.
Spring์ ๊ตฌ์ฑํ๋๋ฐ ์ด๋ ธํ ์ด์ ๊ณผ XML ์ค ์ด๋ ๊ฒ์ด ์ข์๊น?
Spring์์ ์ ๊ณตํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ด์ฉํ์ฌ ๋จ์ ํ ์คํธ ๋ฐ ํตํฉ ํ ์คํธ ํ๋ ๋ฐฉ๋ฒ์ ์์๋ณธ๋ค.
Components(์ปดํฌ๋ํธ)
Spring JDBC ๋ JDBC๋ฅผ ์ฌ์ฉํ ๋ ๊ฐ๋ฐ์๊ฐ ์ฒ๋ฆฌํด์ผ๋๋ ๊ฒ์ ์ผ๋ถ๋ฅผ ๋์ ์ฒ๋ฆฌํด์ค๋ค.
Spring Web MVC๋ Servlet API๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌ์ถ๋ ์น ํ๋ ์์ํฌ๋ค. ์๋๋ Java ์ฝ๋๋ฅผ ์ด์ฉํ์ฌ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ์ ๋ฆฌํ๋ค.
Spring Framework๋?
์ธ์์ ๊ฐ์ผ๋ก null์ ์ ๋ ํ์ฉํ์ง ๋ง๋ผ
์ค๋ ๋ฐ์ผ๋ฆฌ ๋ฏธํ ์ ํ์ต๋ก๊ทธ ํ๊ณ ์๊ฐ. ์กฐ์ด์ ํจ๊ป ์์๊ณผ ์กฐํฉ์ ๋ํ์ฌ ์ด์ผ๊ธฐํ๊ณ ์์๋ค.
์ํ ํจํด์ด๋?
์ ๋ต ํจํด์ด๋?
๋ฐ์ฝ๋ ์ดํฐ ํจํด์ด๋?
ํ๋ ฅํ๋ ๊ฐ์ฒด๋ค์ ๊ณตํต์ฒด
์์์ ์ฅ์
๋ถ๋ณ ๊ฐ์ฒด๋?
ํ๋ก๊ทธ๋๋จธ๊ฐ ์ดํ๋ฆฌ์ผ์ด์ ์ด๋ ์์คํ ์ ๋์์ธํ ๋ ๊ณตํต์ ์ผ๋ก ๋ฐ์ํ๋ ๋ฌธ์ ๋ค์ ํด๊ฒฐํ๊ธฐ์ํด ํ์ํ ์ํจ ์ค๊ณ ๋ฐฉ๋ฒ์ ์ํํธ์จ์ด ๋์์ธ ํจํด์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค. ๊ทธ ์ค ํํ๊ฒ ์ฌ์ฉ๋๋ MVC(Model-View-Controller)ํจํด์ ์์๋ณธ๋ค.
โ๋ฉค๋ฒ ๋ณ์๋ก ์ปฌ๋ ์ ์ด ์๊ณ , ์ด์ธ์ ๋ค๋ฅธ ๋ฉค๋ฒ ๋ณ์๋ ์๋ ํด๋์คโ๋ฅผ ์ผ๊ธ ์ปฌ๋ ์ ์ด๋ผ๊ณ ํ๋ค. ์ด๋ฐ ์ผ๊ธ ์ปฌ๋ ์ ์ด ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋จ์ ์ ์ฌ์ฉ๋๋์ง ์ ๋ฆฌํด๋ณธ๋ค.
๋ฐฉ์ด์ ๋ณต์ฌ๋?
Utility Class๋?
Static Factory Method๋?
๋คํธ์ํฌ ๊ณต๋ถ๋ฅผ ํ๋ฉด์ ์ง๊ธ ์ง์ ํ์ธํด๋ณผ ์ ์๋ ๋คํธ์ํฌ ์ฅ๋น๊ฐ ๋ฐ๋ก ์์ ์๋ค๋ ๊ฒ์ ์๊ฒ๋์๋ค. ๋ฌด์ ๊ณต์ ๊ธฐ(ipTIME) ์ค์ ์ฐฝ์ ๋ณด๋ฉด์ ํ์ธํ ์ ์๋ ๋คํธ์ํฌ ์ง์๋ค์ ๊ณต๋ถํด๋ณด์.
์ด๋ฒ์๋ ํ์ฌ IETF์ ์ธํฐ๋ท ์ด์ ์ํ์ธ HTTP/3์ ๋ํด์ ์์๋ณธ๋ค. HTTP/3๋ ๊ธฐ์กด์ HTTP ๋ฒ์ ๋ค๊ณผ ๋ค๋ฅด๊ฒ TCP๋ฅผ ์ฌ์ฉํ์ง ์๋๋ค. Transport layer์์ TCP๊ฐ ์๋ QUIC์ ์ฌ์ฉํ๋ค. QUIC์ Quick UDP Internet Connection...
ํ์ ๋ฐฐ๊ฒฝ
ํต์ ์ํ๋ฅผ ํ์ธํ๊ธฐ ์ํ ๋ช ๋ น์ด, ์๋ฒ ์ํ๋ฅผ ํ์ธํ๊ธฐ ์ํ ๋ช ๋ น์ด์ ์ด์ด์ ๋ง์ง๋ง์ผ๋ก ์ ํ๋ฆฌ์ผ์ด์ ์ง๋จ์ ์ํ ๋ช ๋ น์ด๋ฅผ ์์๋ณธ๋ค. Java ์น ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋น์ ์์ ์ผ๋ก ๋๋ฆฌ๊ฒ ๋์ํ๋ ๊ฒฝ์ฐ, ์ค๋ ๋ ๋คํ๋ฅผ ๋ถ์ํด ๋ด์ผ ๋๋ค.
์ฐ๋ฆฌ๊ฐ ๋ง๋ ์๋น์ค๋ฅผ ์ ๋๋ก ์ด์ํ๊ธฐ ์ํด์๋, ํ๋ก๊ทธ๋จ์ด ์คํ๋๊ณ ์๋ ์๋ฒ์ ํ๊ฒฝ์ ์ดํดํ ํ์๊ฐ ์๋ค. ์๋ฒ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์๋ ๋น ๋ฅด๊ฒ ์์ธ์ ํ์ ํ๊ณ ํด๊ฒฐํ๊ธฐ ์ํด์๋ค.
ํ ์ฝํก์ ์ค๋นํ๋ฉด์ ์ ๋ฆฌํ ์๋ฃ๋ฅผ ๊ธ๋ก ๋จ๊ฒจ๋ณธ๋ค. ๋ฐํ ์๊ฐ์ด ์งง์ ๊ด๊ณ๋ก ์๋ต๋ ๋ถ๋ถ์ด ๋ง๋ค.
๊ฐ์๊ธฐ ์๋ฒ๊ฐ ์ ์์ ์ผ๋ก ํต์ ์ด ๋์ง ์๊ฑฐ๋ ์๋น์ค๊ฐ ์ ์์ ์ผ๋ก ์ ๊ณต๋์ง ์๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ๋ ์์ธ์ ๋น ๋ฅด๊ฒ ํ์ ํ๊ธฐ ์ํ ๋ช ๋ น์ด๋ฅผ ์์๋ณด์. ๋ชจ๋ ๋ช ๋ น์ด๋ LINUX ๊ธฐ์ค์ผ๋ก ์ค๋ช ํ๋ค.
์ปดํจํฐ ์ ๊ณต์ด๋ฉด ๋น์ฐํ ์๊ณ ์์ด์ผ ๋ OSI 7๊ณ์ธต. ๋๋๊ฒ๋ ๋๋ ์ปดํจํฐ ์ ๊ณต์ด ์๋๊ฑฐ ๊ฐ๋ค(โฆ) ์์ ์๊ฐ์ ๋ฐฐ์ด์ง 6๋ ์ด ์ง๋๊ธฐ๋ํ๊ณ , ๊ทธ ๋์ ์ฌ์ฉํ ์ผ๋ ์๋ค ๋ณด๋ ์ด์ฉ๋ฉด ๋น์ฐํ ์๋ ์๋ค. ์ด ๋ด์ฉ์ ์ ๋ฆฌํด๋ณด๋ฉด์ 6๋ ์ ์ ๋ฐฐ์ด ๋ด์ฉ์ ๋ค์ ๋ ์ฌ๋ฆด ์ ์๊ธฐ๋ฅผ ๋ฐ๋๋ค.
๊ธฐ๋ณธ ๊ฐ๋
๋คํธ์ํฌ ๊ณต๋ถ๋ฅผ ํ๋ฉด์ ์ง๊ธ ์ง์ ํ์ธํด๋ณผ ์ ์๋ ๋คํธ์ํฌ ์ฅ๋น๊ฐ ๋ฐ๋ก ์์ ์๋ค๋ ๊ฒ์ ์๊ฒ๋์๋ค. ๋ฌด์ ๊ณต์ ๊ธฐ(ipTIME) ์ค์ ์ฐฝ์ ๋ณด๋ฉด์ ํ์ธํ ์ ์๋ ๋คํธ์ํฌ ์ง์๋ค์ ๊ณต๋ถํด๋ณด์.
์ด๋ฒ์๋ ํ์ฌ IETF์ ์ธํฐ๋ท ์ด์ ์ํ์ธ HTTP/3์ ๋ํด์ ์์๋ณธ๋ค. HTTP/3๋ ๊ธฐ์กด์ HTTP ๋ฒ์ ๋ค๊ณผ ๋ค๋ฅด๊ฒ TCP๋ฅผ ์ฌ์ฉํ์ง ์๋๋ค. Transport layer์์ TCP๊ฐ ์๋ QUIC์ ์ฌ์ฉํ๋ค. QUIC์ Quick UDP Internet Connection...
ํ์ ๋ฐฐ๊ฒฝ
์น๊ณผ ๋คํธ์ํฌ์ ๊ธฐ๋ณธ์ ๋ํด ์์๋ณด์
๊ฐ์๊ธฐ ์๋ฒ๊ฐ ์ ์์ ์ผ๋ก ํต์ ์ด ๋์ง ์๊ฑฐ๋ ์๋น์ค๊ฐ ์ ์์ ์ผ๋ก ์ ๊ณต๋์ง ์๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ๋ ์์ธ์ ๋น ๋ฅด๊ฒ ํ์ ํ๊ธฐ ์ํ ๋ช ๋ น์ด๋ฅผ ์์๋ณด์. ๋ชจ๋ ๋ช ๋ น์ด๋ LINUX ๊ธฐ์ค์ผ๋ก ์ค๋ช ํ๋ค.
์ปดํจํฐ ์ ๊ณต์ด๋ฉด ๋น์ฐํ ์๊ณ ์์ด์ผ ๋ OSI 7๊ณ์ธต. ๋๋๊ฒ๋ ๋๋ ์ปดํจํฐ ์ ๊ณต์ด ์๋๊ฑฐ ๊ฐ๋ค(โฆ) ์์ ์๊ฐ์ ๋ฐฐ์ด์ง 6๋ ์ด ์ง๋๊ธฐ๋ํ๊ณ , ๊ทธ ๋์ ์ฌ์ฉํ ์ผ๋ ์๋ค ๋ณด๋ ์ด์ฉ๋ฉด ๋น์ฐํ ์๋ ์๋ค. ์ด ๋ด์ฉ์ ์ ๋ฆฌํด๋ณด๋ฉด์ 6๋ ์ ์ ๋ฐฐ์ด ๋ด์ฉ์ ๋ค์ ๋ ์ฌ๋ฆด ์ ์๊ธฐ๋ฅผ ๋ฐ๋๋ค.
๋ฉด์ ๋จ๊ณจ ์ง๋ฌธ์ผ๋ก ๋์ค๋ ์ฃผ์ โ๋ผ์ด๋ธ๋ฌ๋ฆฌ vs ํ๋ ์์ํฌ vs APIโ๋ฅผ ์์ํ์ง๋ง ์ ๋ฆฌํด๋ณธ๋ค.
์๋ฐ๊ฐ ์ ๊ณตํ๋ ๋ค์ค ๊ตฌํ ๋ฉ์ปค๋์ฆ์ ์ธํฐํ์ด์ค์ ์ถ์ ํด๋์ค 2๊ฐ์ง๊ฐ ์๋ค. ๋ ์ค ์ด๋ค ๊ฒ์ ์ฌ์ฉํด์ผ ๋ ์ง ๊ณ ๋ฏผ์ด ๋๋ค๋ฉด ๊ฒฐ๋ก ๋ถํฐ ๋งํ์๋ฉด ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข๋ค.
ํ ์คํธ ์ฃผ๋ ๊ฐ๋ฐ(Test-driven development TDD)๋ ๋งค์ฐ ์งง์ ๊ฐ๋ฐ ์ฌ์ดํด์ ๋ฐ๋ณตํ๋ ์ํํธ์จ์ด ๊ฐ๋ฐ ํ๋ก์ธ์ค ์ค ํ๋์ด๋ค. ํ ์คํธ ์ฝ๋์ ํ๋ก๋ํธ ์ฝ๋๋ฅผ ๋ ๋ฆฝ์ ์ด์ง ์๊ณ ํจ๊ป ์งํํ๋ ๊ฒ์ด๋ค.
ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ๋ชฉ์
์ฌ์ํ ์ ์์ง๋ง ๊ฐ๋ฐ์๊ฐ ๊ฐ์ฅ ํ๋ค์ด ํ๋ ๊ฒ, ๊ฐ์ฅ ์ ๊ฒฝ ์ฐ๋ ๊ฒ์ด ๋ฐ๋ก ์ด๋ฆ ์ง๋ ๊ฒ์ด๋ค. ์ด๋ฆ ์ง๋ ๊ฒ ํ๋๋ก ์ฝ๋์ ๊ฐ๋ ์ฑ์ ๊ฒฐ์ ์ง์ ์๋ ์๋ค. Clean Code์ ๋์ ์๋ ์ด๋ฆ ์ง๋ ๋ฐฉ๋ฒ์ ์ ๋ฆฌํด๋ณธ๋ค.
์น๊ณผ ๋คํธ์ํฌ์ ๊ธฐ๋ณธ์ ๋ํด ์์๋ณด์
๋ฐ์ดํฐ๋ฒ ์ด์ค์ SQL
ํ๋ ฅํ๋ ๊ฐ์ฒด๋ค์ ๊ณตํต์ฒด
ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ๋ชฉ์
์ด๋ฒ์๋ ํ์ฌ IETF์ ์ธํฐ๋ท ์ด์ ์ํ์ธ HTTP/3์ ๋ํด์ ์์๋ณธ๋ค. HTTP/3๋ ๊ธฐ์กด์ HTTP ๋ฒ์ ๋ค๊ณผ ๋ค๋ฅด๊ฒ TCP๋ฅผ ์ฌ์ฉํ์ง ์๋๋ค. Transport layer์์ TCP๊ฐ ์๋ QUIC์ ์ฌ์ฉํ๋ค. QUIC์ Quick UDP Internet Connection...
ํ์ ๋ฐฐ๊ฒฝ
ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์ ๊ฐฑ์ ๋ ์ ๋ณด๋ฅผ ์ด๋ป๊ฒ ๋น ๋ฅด๊ฒ ๊ฐ์ ธ์ฌ ์ ์์๊น?
์น๊ณผ ๋คํธ์ํฌ์ ๊ธฐ๋ณธ์ ๋ํด ์์๋ณด์
์ฒ์ ํด๋ณด๋ Spring Framework ๋ฏธ์ . ๋๋ ์๊ตฌ ์ฌํญ์ ๋ชจ๋ ๋ง์กฑ์ํค๊ณ ๋ฆฌ๋ทฐ ์์ฒญ์ ๋ณด๋๋ค. ๊ทธ๋ฆฌ๊ณ ์๋์ ๊ฐ์ ๋ฆฌ๋ทฐ๋ฅผ ๋ฐ์๋ค.
์ต๊ทผ ์์ ์๊ฐ์ ํตํด ๋จ์ ํ ์คํธ๋ ํตํฉ ํ ์คํธ ๊ฐ์ ์ฝ๋ ๋์ ํ ์คํธ๋ง ์๋๊ฒ ์๋๋ผ ๋ถํ ํ ์คํธ, ์ฑ๋ฅ ํ ์คํธ๋ ํ์ํ๋ค๋ ์ฌ์ค์ ์๊ฒ๋์๋ค. ์ด์ธ์๋ ์ด๋ค ํ ์คํธ๊ฐ ์๊ณ ์ฐ๋ฆฌ๋ ๊ฐ๋ฐ์ ์ด๋ค ํ ์คํธ๊ฐ ํ์ํ์ง ์์๋ณด๋๋กํ๋ค.
์ปดํ์ผ
์๋ฐ๊ฐ ์ ๊ณตํ๋ ๋ค์ค ๊ตฌํ ๋ฉ์ปค๋์ฆ์ ์ธํฐํ์ด์ค์ ์ถ์ ํด๋์ค 2๊ฐ์ง๊ฐ ์๋ค. ๋ ์ค ์ด๋ค ๊ฒ์ ์ฌ์ฉํด์ผ ๋ ์ง ๊ณ ๋ฏผ์ด ๋๋ค๋ฉด ๊ฒฐ๋ก ๋ถํฐ ๋งํ์๋ฉด ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข๋ค.
ํ ์คํธ ์ฃผ๋ ๊ฐ๋ฐ(Test-driven development TDD)๋ ๋งค์ฐ ์งง์ ๊ฐ๋ฐ ์ฌ์ดํด์ ๋ฐ๋ณตํ๋ ์ํํธ์จ์ด ๊ฐ๋ฐ ํ๋ก์ธ์ค ์ค ํ๋์ด๋ค. ํ ์คํธ ์ฝ๋์ ํ๋ก๋ํธ ์ฝ๋๋ฅผ ๋ ๋ฆฝ์ ์ด์ง ์๊ณ ํจ๊ป ์งํํ๋ ๊ฒ์ด๋ค.
์ํ ํจํด์ด๋?
์ ๋ต ํจํด์ด๋?
๋ฐ์ฝ๋ ์ดํฐ ํจํด์ด๋?
์ด๋ฒ์๋ ๊ฐ ์๋ฃํ ๋ณ๋ก ์ฌ์ฉํ ์ ์๋ Assertion๋ค์ ์๊ฐํ๋ค.
Parameterized Test๋?
AssertJ๋?
ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉด์ ๊ธํ๊ฒ ์์ ํ ๋ฐฐํฌํ ์ผ์ด ๋ฐ์ํ๋๋ฐ, ์ด๋ค ๋ธ๋์น๋ฅผ ๊ธฐ์ค์ผ๋ก ์์ ํด์ผ๋ ์ง ๊ณ ๋ฏผ๋๋ ์ํฉ์ด ์์ ๊ฒ์ด๋ค. ๋ํ ๊ฐ์ฅ ์ต์ ๋ฒ์ ์ ๋ธ๋์น๋ฅผ ์ฐพ๊ณ ์ถ์๋ฐ ์ฐพ๊ธฐ ํ๋ ๊ฒฝ์ฐ๋ ์๋ค. ์ด๋ฐ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ฌ๋ฌ๊ฐ์ง ๋ธ๋์น ์ ๋ต์ด ๋ง๋ค์ด์ก๋ค. ๊ทธ ์ค ๋ํ์ ์ธ Gi...
DTO์ VO๊ฐ ๋ง์ ๊ฐ๋ฐ์ ์ฌ์ด์์ ํผ์ฉ๋๊ณ ์๋ค. ์ด ๋์ ์ด๋ป๊ฒ ๋ค๋ฅธ์ง ์ด๋ค ์ฉ๋๋ก ์ฌ์ฉํ๋์ง ์์๋ณด๋๋กํ๋ค.
์๋์ ํ์์ ์์ฃผ ์ฌ์ฉ๋๋ Git ๋ช ๋ น์ด๋ฅผ ์ ๋ฆฌํ๋ค.
MySQL ๊ตฌ์กฐ
๋ฐ์ดํฐ๋ฒ ์ด์ค์ SQL
JDBC๋?
์ง๊ธ๊น์ง ๋์ปค๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐฐํฌ ํ๊ฒฝ์ ๊ตฌ์ถํด์์ง๋ง ์ฌ์ค ๋์ปค์๋ํ ์ดํด๊ฐ ์๋ ๊ฒ์ ์๋๋ค. ์ต๊ทผ์ ๋์ปค๋ฅผ ๊ฑด๋๋ฆด ์ผ์ด ๋ง์์ก๊ธฐ ๋๋ฌธ์ ์ด ๊ธฐํ์ ๋์ปค์๋ํด์ ํ์ตํด๋ณด๊ณ ์ ํ๋ค.
ํ ํ๋ก์ ํธ์ ์ฑ๋ฅ ํ ์คํธ๋ฅผ ์งํํด๋ณด๊ธฐ ์์ ์ฑ๋ฅ ํ ์คํธ์ ๊ธฐ๋ณธ ์ง์์ ํ์ตํ ํ์๊ฐ ์์ด์ ๊ธ์ ์์ฑํ๊ฒ ๋์๋ค.
์ง๊ธ๊น์ง ๋๋ ๊ฐ์ธ ํ๋ก์ ํธ ํ ๋ 1. ๋ฌด๋ฃ์ฌ์ 2. ์ง์ ์ปดํจํฐ๋ฅผ ๊ณ์ ์ผ๋์ ์ ์์ด์ AWS๋ฅผ ์ฌ์ฉํ๊ณ , โํด๋ผ์ฐ๋ ์ปดํจํ โ์ ์ฌ์ฉํ๋ค๊ณ ํํํ๋ค. ์ต๊ทผ์ ์ด ํํ์ด ๋ง๋์ง, ์ค์ ์ ๋ฌด์์๋ ์ด๋ค ์ด์ ๋ฃ ์ฌ์ฉํ๊ณ ์๋์ง ์์๋ณผ ํ์์ฑ์ ๋๊ปด ์ ๋ฆฌํด๋ณด๊ฒ ๋์๋ค.
ํต์ ์ํ๋ฅผ ํ์ธํ๊ธฐ ์ํ ๋ช ๋ น์ด, ์๋ฒ ์ํ๋ฅผ ํ์ธํ๊ธฐ ์ํ ๋ช ๋ น์ด์ ์ด์ด์ ๋ง์ง๋ง์ผ๋ก ์ ํ๋ฆฌ์ผ์ด์ ์ง๋จ์ ์ํ ๋ช ๋ น์ด๋ฅผ ์์๋ณธ๋ค. Java ์น ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋น์ ์์ ์ผ๋ก ๋๋ฆฌ๊ฒ ๋์ํ๋ ๊ฒฝ์ฐ, ์ค๋ ๋ ๋คํ๋ฅผ ๋ถ์ํด ๋ด์ผ ๋๋ค.
์ฐ๋ฆฌ๊ฐ ๋ง๋ ์๋น์ค๋ฅผ ์ ๋๋ก ์ด์ํ๊ธฐ ์ํด์๋, ํ๋ก๊ทธ๋จ์ด ์คํ๋๊ณ ์๋ ์๋ฒ์ ํ๊ฒฝ์ ์ดํดํ ํ์๊ฐ ์๋ค. ์๋ฒ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์๋ ๋น ๋ฅด๊ฒ ์์ธ์ ํ์ ํ๊ณ ํด๊ฒฐํ๊ธฐ ์ํด์๋ค.
๊ฐ์๊ธฐ ์๋ฒ๊ฐ ์ ์์ ์ผ๋ก ํต์ ์ด ๋์ง ์๊ฑฐ๋ ์๋น์ค๊ฐ ์ ์์ ์ผ๋ก ์ ๊ณต๋์ง ์๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ๋ ์์ธ์ ๋น ๋ฅด๊ฒ ํ์ ํ๊ธฐ ์ํ ๋ช ๋ น์ด๋ฅผ ์์๋ณด์. ๋ชจ๋ ๋ช ๋ น์ด๋ LINUX ๊ธฐ์ค์ผ๋ก ์ค๋ช ํ๋ค.
JPA-์์ํ๊ธฐ ์์ ์ด๋ ์ ๋ ์์์ฑ ์ปจํ ์คํธ์ ์ํฐํฐ์ ์๋ช ์ฃผ๊ธฐ๋ฅผ ๊ฐ๋จํ๊ฒ ์์๋ดค๋ค. ์ด ์์์ฑ ์ปจํ ์คํธ์ ํน์ง์ ์ข ๋ ์์ธํ ์์๋ณด๋๋ก ํ์.
JPA ์ง์ฐ ๋ก๋ฉ
์์์ฑ(Persistence)์ด๋?
์ด๋ฒ์๋ ๊ฐ ์๋ฃํ ๋ณ๋ก ์ฌ์ฉํ ์ ์๋ Assertion๋ค์ ์๊ฐํ๋ค.
AssertJ๋?
macOS์์ ํ์ํค ์ ํ ์๋ ๋ฌธ์ ๋ ํ์ํค ์์น๋ฅผ ์ฎ๊ธฐ๊ธฐ ์ํด์ Karabiner๋ฅผ ๋ง์ด ์ฌ์ฉํ ๊ฒ์ด๋ค. ํ์ง๋ง ์ด๋ macOS๋ฅผ ์ ๋ฐ์ดํธ ํ ๋ ์ข ์ข ํธํ์ฑ์ด ๋ง์ง ์์ ์๋ํ์ง ์์ ๋๊ฐ ์๋ค. ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ๋ฐฉ๋ฒ์ ์๋ ํํฐ ์ฑ ์์ด ํค๋ณด๋ ๋งคํ์ ํ๋ ๊ฒ์ด๋ค....
์๋์ฐ๋ฅผ ์ฌ์ฉํ๋ค๊ฐ ๊ฐํน ํค๋ณด๋ ๋งคํ์ ์์ ํ๊ณ ์ถ์ ๋๊ฐ ์๋ค. macOS ์ ์ ๋ผ๋ฉด ์ค๋ฅธ์ชฝ โ๊ฐ ์๋์ฐ ํค๋ก, ์ค๋ฅธ์ชฝ โฅํค๊ฐ ํ์ํค๋ก ๋์ด ์์ด์ ์ค์ ์๋์ฐ ํค๋ณด๋์ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ํค ๋งคํ ์์ด๋ ๋ถํธํจ์ ๊ฒช์ ์ ์๋ค. ํ์ง๋ง ๋ ์๋ ํํฐ ํ๋ก๊ทธ๋จ์ ์ฌ์ฉํ๊ธฐ๋ ๊ดํ ์ฐ์ฐํ๋ค...
ํต์ ์ํ๋ฅผ ํ์ธํ๊ธฐ ์ํ ๋ช ๋ น์ด, ์๋ฒ ์ํ๋ฅผ ํ์ธํ๊ธฐ ์ํ ๋ช ๋ น์ด์ ์ด์ด์ ๋ง์ง๋ง์ผ๋ก ์ ํ๋ฆฌ์ผ์ด์ ์ง๋จ์ ์ํ ๋ช ๋ น์ด๋ฅผ ์์๋ณธ๋ค. Java ์น ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋น์ ์์ ์ผ๋ก ๋๋ฆฌ๊ฒ ๋์ํ๋ ๊ฒฝ์ฐ, ์ค๋ ๋ ๋คํ๋ฅผ ๋ถ์ํด ๋ด์ผ ๋๋ค.
์ฐ๋ฆฌ๊ฐ ๋ง๋ ์๋น์ค๋ฅผ ์ ๋๋ก ์ด์ํ๊ธฐ ์ํด์๋, ํ๋ก๊ทธ๋จ์ด ์คํ๋๊ณ ์๋ ์๋ฒ์ ํ๊ฒฝ์ ์ดํดํ ํ์๊ฐ ์๋ค. ์๋ฒ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์๋ ๋น ๋ฅด๊ฒ ์์ธ์ ํ์ ํ๊ณ ํด๊ฒฐํ๊ธฐ ์ํด์๋ค.
์๋์ฐ๋ฅผ ์ฌ์ฉํ๋ค๊ฐ ๊ฐํน ํค๋ณด๋ ๋งคํ์ ์์ ํ๊ณ ์ถ์ ๋๊ฐ ์๋ค. macOS ์ ์ ๋ผ๋ฉด ์ค๋ฅธ์ชฝ โ๊ฐ ์๋์ฐ ํค๋ก, ์ค๋ฅธ์ชฝ โฅํค๊ฐ ํ์ํค๋ก ๋์ด ์์ด์ ์ค์ ์๋์ฐ ํค๋ณด๋์ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ํค ๋งคํ ์์ด๋ ๋ถํธํจ์ ๊ฒช์ ์ ์๋ค. ํ์ง๋ง ๋ ์๋ ํํฐ ํ๋ก๊ทธ๋จ์ ์ฌ์ฉํ๊ธฐ๋ ๊ดํ ์ฐ์ฐํ๋ค...
JUnit ์ด๋
๋ฐ์ดํฐ๋ฒ ์ด์ค์ SQL
ํ ์ฝํก์ ์ค๋นํ๋ฉด์ ์ ๋ฆฌํ ์๋ฃ๋ฅผ ๊ธ๋ก ๋จ๊ฒจ๋ณธ๋ค. ๋ฐํ ์๊ฐ์ด ์งง์ ๊ด๊ณ๋ก ์๋ต๋ ๋ถ๋ถ์ด ๋ง๋ค.
์ด ๊ฒธ ์คํฐ๋ธ ์ก์ค์ iPhone 4 ํค๋ ธํธ๋ฅผ ๋ณด๋ค๊ฐ ์์ ์ ๊ณ ๋ฏผํ๋ ๋ ํฐ๋ ๋์คํ๋ ์ด์ ๋ํด์ ๊ธฐ๋กํด๋ณด๊ณ ์ ๊ธ์ ์ฐ๊ธฐ ์์ํ๋ค.
ํ ํ๋ก์ ํธ์ ์ฑ๋ฅ ํ ์คํธ๋ฅผ ์งํํด๋ณด๊ธฐ ์์ ์ฑ๋ฅ ํ ์คํธ์ ๊ธฐ๋ณธ ์ง์์ ํ์ตํ ํ์๊ฐ ์์ด์ ๊ธ์ ์์ฑํ๊ฒ ๋์๋ค.
์ง๊ธ๊น์ง ๋์ปค๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐฐํฌ ํ๊ฒฝ์ ๊ตฌ์ถํด์์ง๋ง ์ฌ์ค ๋์ปค์๋ํ ์ดํด๊ฐ ์๋ ๊ฒ์ ์๋๋ค. ์ต๊ทผ์ ๋์ปค๋ฅผ ๊ฑด๋๋ฆด ์ผ์ด ๋ง์์ก๊ธฐ ๋๋ฌธ์ ์ด ๊ธฐํ์ ๋์ปค์๋ํด์ ํ์ตํด๋ณด๊ณ ์ ํ๋ค.
MySQL ๊ตฌ์กฐ
MySQL ๊ตฌ์กฐ
์ฟ ๋ฒ๋คํฐ์ค ๊ตฌ์ฑ ๋ฐฉ๋ฒ