์๋
ํ์ธ์ ์ฌ๋ฌ๋ถ! ์ค๋์ ๋ ๋ฒ์งธ ๋ํ ์ฃผ๊ฐ์ ์์ฝํ๊ณ ์ปค๋ฎค๋ํฐ ํ์๋ค์ ์ต์ ๊ธฐ์ฌ๋ฅผ ์๊ฐํฉ๋๋ค. ์์์ผ์ ์ฐ์น์๋ฅผ ์ง๋ช
ํ ์์ ์ด๋ฏ๋ก, ์ด๋ฒ ๋ค์ด์ ์คํธ์ ์ด์ ๋ค์ด์ ์คํธ์์ ๋ง์์ ๋๋ ์๋ฃ์ ์ ๊ทน์ ์ผ๋ก ์ข์์๋ฅผ ๋๋ฌ ํฌํํด ์ฃผ์๊ธฐ ๋ฐ๋๋๋ค :) ๊ฐ๊ฒ ์ต๋๋ค. ์ฐ๋ฆฌ ์ปค๋ฎค๋ํฐ์์ ๊ฐ์ฅ ํ๋์ ์ธ ์ฐธ๊ฐ์ ์ค ํ ๋ช
์ธ Viacheslav ๋ ๋ํ์ ์ผํ์ผ๋ก ๋ ๊ฐ์ ๊ธฐ์ฌ๋ฅผ ๋ ๊ฒ์ํ์ต๋๋ค. JPA: ๊ธฐ์ ์๊ฐ ์ ์๋ JPA - Java Persistence API์ ๋ณธ์ง์ ์์ธํ ์ค๋ช
ํ์ต๋๋ค. JPA๋ ํ๋ก๊ทธ๋๋จธ์ ์ถ์ ํฌ๊ฒ ๋จ์ํํ ์ ์๋ ๋ค์ํ ๊ธฐ๋ฅ๊ณผ ๋๊ตฌ๋ฅผ ํ๋ก๊ทธ๋๋จธ์๊ฒ ์ ๊ณตํฉ๋๋ค. ์ด์ ๋ํ ๊ฐ์๋ ์ด ์๋ฃ์ ์์ต๋๋ค. Java ํจํด์ ๋์์ธ ํจํด ๋๋ ๋์์ธ ํจํด์ ๊ฐ๋ฐ์ ์์
์์ ์ข
์ข
๊ณผ์ํ๊ฐ๋๋ ๋ถ๋ถ์
๋๋ค. ์ด๋ก ์ธํด ์ฝ๋๋ฅผ ์ ์ง ๊ด๋ฆฌํ๊ณ ์๋ก์ด ์๊ตฌ ์ฌํญ์ ์ ์ํ๊ธฐ๊ฐ ์ด๋ ค์์ง ์ ์์ต๋๋ค. ์ด ๊ธฐ์ฌ์์ ์ ์๋ ํจํด์ด ๋ฌด์์ธ์ง, ํจํด์ด JDK์์ ์ด๋ป๊ฒ ์ฌ์ฉ๋๋์ง๋ฅผ ์์ ์ ํจ๊ป ์์ธํ ์ค๋ช
ํฉ๋๋ค. ์ธํฐํ์ด์ค ํ๋ก๊ทธ๋๋ฐ์ด๋ ๋ฌด์์
๋๊น? ๊ฑด์ถ๊ฐ Sergeev Victor ๊ฐ ์ค์ ๋ก "์ธํฐํ์ด์ค ํ๋ก๊ทธ๋๋ฐ"์ด ๋ฌด์์ธ์ง ๋ณด์ฌ์ฃผ์์ต๋๋ค. ์ด๋ ํด๋์ค๊ฐ ์๋ก ์ํธ ์์ฉํด์ผ ํ๊ณ ๊ทธ ์๊ฐ ์์ญ ๊ฐ๊ฐ ๋๋ ๊ฒฝ์ฐ์ ํ์ํฉ๋๋ค. ์ฌ๋ฌ ์ฌ๋์ด ํ๋ก์ ํธ๋ฅผ ์งํํ๋ ๊ฒฝ์ฐ ๋์ํ๊ณ ํด๋์ค์ ์ํธ ์์ฉ ์ธํฐํ์ด์ค๋ฅผ ์ค๋ช
ํ ๋ค์ ์ด๋ฌํ ์ธํฐํ์ด์ค๋ฅผ ๋ถํดํ๊ณ ๊ตฌํ์ ์์ํ๋ ๊ฒ์ด ๋งค์ฐ ํธ๋ฆฌํฉ๋๋ค. ์ฃผ์ ๋ฅผ ๋ถ์ํ๊ธฐ ์ํด ์ ์๋ ์์ ์ ๊ธ์ ๋ฑ๋ก๊ธฐ ํ๋ก์ ํธ์ ์๋ฅผ ์ ์ํฉ๋๋ค. ๋ด๊ฐ 17์ธ์ ํ๋ก๊ทธ๋๋จธ๊ฐ ๋ ๋ฐฉ๋ฒ "์ค์์ฒ"์ ๋ํ ์ด์ผ๊ธฐ๊ฐ ๋ง๊ณ Arthur Ilkaev ์ ์ด์ผ๊ธฐ๋ ์์ต๋๋ค . ๊ทธ๋ ๊ณ ๋ฑํ๊ต ๋ ํ๋ก๊ทธ๋๋ฐ์ ๊ด์ฌ์ ๊ฐ๊ฒ ๋์๊ณ JavaRush ๊ณผ์ ๊ณผ ์ธํด์ญ์ ์ด์ํ๊ณ ์ฒซ ์ง์ฅ์ ์ป์์ต๋๋ค. 10ํ๋
์ดํ ํ๋ก๊ทธ๋๋จธ. ๋ฌด์ ํฅํ ๊ณํ? ๊ธฐ์ฌ ์ฝ๊ธฐ :) ๋ณต์กํ ๋จ์ ์ค๋ ๋ Oleg Savenko๋ ์ค๋ ๋ ์ฌ์ฉ ๋๋ถ์ ์ปฌ๋ ์
์ ์ฌ์ฉํ ์น์ํ๊ณ ์ดํดํ๊ธฐ ์ฌ์ด ์๋ฃจ์
์ด ์ด๋ป๊ฒ ๋์ฑ ๋จ์ํด์ก๋์ง์ ๋ํ ๊ธฐ์ฌ๋ฅผ ์ผ์ต๋๋ค. ์๋ฃ์์๋ ๋ค์ํ ์ ํ์ ๋ฌธ์ ์ ๋ํ ์๋ฃจ์
์ ์๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค. ํฅ๋ฏธ๋กญ๊ณ ์ฌ์ด ํ๋ก์ ํธ Dmytro Tretiakov๋ ํจ๊ณผ์ ์ธ Java ํ์ต์ ๋ํ ์์ ์ ๋น์ ์ ๋ฐํํ JavaRush ํ์์
๋๋ค. ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๊ฒ๋ง์ผ๋ก๋ ์ถฉ๋ถํ์ง ์์ต๋๋ค. ์์ ๋ง์ ํ๋ก์ ํธ๋ฅผ ๋ง๋ค ์๋ ์์ต๋๋ค. ๊ฒ์๋ฌผ์ ์์ฑํ ๋น์ ๊ฐ์ข์ 8๋ ๋ฒจ์ ์์๋ ๊ทธ๋ Java์ ๊ธฐ๋ณธ ๋ฉ์๋์ ๋ํ ํฅ๋ฏธ๋ก์ด ์ฌ์ฉ๋ฒ์ ๋ฐ๊ฒฌํ์ต๋๋ค. ๊ทธ๋ ์ค๋ฅ๊ฐ ์๋ ๊ธ์ ์ฐ๋ ์ฌ๋์ ์๋ฎฌ๋ ์ด์
ํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์ต๋๋ค. Intelij IDEA Ultimate Edition์ ์ค์ ์ฐ๊ฐ ๋ผ์ด์ผ์ค ์ป๊ธฐ ๋ง์ง๋ง์ผ๋ก Philip J.๋ ํ์์ ์ํ Intelij IDEA Ultimate Edition์ ์ฐ๊ฐ ๋ผ์ด์ผ์ค๋ฅผ ์ป๋ ํฉ๋ฒ์ ์ธ ๋ฐฉ๋ฒ์ ๋ํด ๊ฐ๋ตํ๊ฒ ์ค๋ช
ํ์ต๋๋ค. Notes ์๋น์ค๋ฅผ ์๋ก ๋ค์ด Spring Security์์ ์ด๋ฉ์ผ๊ณผ OAuth2๋ฅผ ํตํด ์ผ๋ฐ์ ์ธ ๋ก๊ทธ์ธ์ ํตํด ์น๊ตฌ๋ฅผ ์ฌ๊ท์ Diana Mashkina๋์ ์ฌํ Spring Security ๊ตฌ์ฑ์ผ๋ก ๋
ธํธ๋ฅผ ์ ์ฅํ๋ ์๋น์ค๋ฅผ ์ฒ์๋ถํฐ ๊ตฌํํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์์ธํ ํํ ๋ฆฌ์ผ์ ๊ฒ์ํ์ต๋๋ค. ์ด ๊ธฐ์ฌ๋ ์ฌ์ฉ์๊ฐ ์ด๋ฉ์ผ๊ณผ ์์
๋คํธ์ํฌ๋ฅผ ํตํด ๋ฑ๋กํ๋๋ก ํ๋ ๋ฐฉ๋ฒ์ ๋ํ ๋ช
ํํ ์ ๋ณด๊ฐ ๋ถ์กฑํ๋ ์ ํ๋ฆฌ์ผ์ด์
์์ฑ ๊ฒฝํ์์ ์๊ฐ์ ๋ฐ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ์ค๋ ๋๋ฅผ ํตํด ์๊ฐ์ ์์คํ ์ฌ๊น๋๋ค . ๋ง์ง๋ง์ผ๋ก ์ฌ์ฉ์Andrei๋๋ฉํฐ์ค๋ ๋ฉ์ ๋ํ ๋ฆฌ๋ทฐ๋ฅผ ์ค๋นํ์ต๋๋ค. ์ด๋ก ๊ณผ ํจ๊ป ์ค๋ ๋ ์์
์ ์ฃผ์ ๋ฐฉ๋ฒ์ ๋ํ ์ค๋ช
, Thread ํด๋์ค์ ๋ํ ์ค๋ช
, ์ ์ค๋ ๋๋ฅผ ์์ํ๊ธฐ ์ํ Runnable ์ธํฐํ์ด์ค์ ๋ํ ์ค๋ช
๊ณผ ์์ ๊ฐ ํฌํจ๋์ด ์์ต๋๋ค. ๊ทธ๊ฒ ๋ค์ผ! ๋ค์ ํ ๋ฒ ์๊ธฐ์์ผ ๋๋ฆฌ๊ฒ ์ต๋๋ค. ์ด๋ฒ์๋ ์ฐ์น์ ๋ชฉ๋ก์ด ๊ทํ์๊ฒ๋ง ๋ฌ๋ ค ์์ผ๋ฏ๋ก ๋ฉฐ์น ๋์ ๊ทํ์ ์๊ฒฌ์ผ๋ก ์ต๊ณ ์ ๊ธฐ์ฌ๋ฅผ ํ์ํ ์ ์์ต๋๋ค. ์ฐ๋ฆฌ๊ฐ ๋ฐ๋ผ๋ ๊ฒ์ ์ค์ง ํ ๊ฐ์ง๋ฟ์
๋๋ค. ๋ชจ๋ ์ฐธ๊ฐ์์๊ฒ ํ์ด์ด ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค! ์๋ฐ๋ฌ์ ํ
ะญะปะปะตะพะฝะพัะฐ ะะตััะธ
๋ ๋ฒจ 41
GO TO FULL VERSION