JavaRush /Java Blog /Random-KO /JavaRush์— ๋Œ€ํ•œ ๊ธฐ์‚ฌ ๊ฒฝ์Ÿ. ๋‹ค์ด์ œ์ŠคํŠธ #2: 4์›” 24์ผ - 5์›” 2์ผ

JavaRush์— ๋Œ€ํ•œ ๊ธฐ์‚ฌ ๊ฒฝ์Ÿ. ๋‹ค์ด์ œ์ŠคํŠธ #2: 4์›” 24์ผ - 5์›” 2์ผ

Random-KO ๊ทธ๋ฃน์— ๊ฒŒ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค
์•ˆ๋…•ํ•˜์„ธ์š” ์—ฌ๋Ÿฌ๋ถ„! ์˜ค๋Š˜์€ ๋‘ ๋ฒˆ์งธ ๋Œ€ํšŒ ์ฃผ๊ฐ„์„ ์š”์•ฝํ•˜๊ณ  ์ปค๋ฎค๋‹ˆํ‹ฐ ํšŒ์›๋“ค์˜ ์ตœ์‹  ๊ธฐ์‚ฌ๋ฅผ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค. ์›”์š”์ผ์— ์šฐ์Šน์ž๋ฅผ ์ง€๋ช…ํ•  ์˜ˆ์ •์ด๋ฏ€๋กœ, ์ด๋ฒˆ ๋‹ค์ด์ œ์ŠคํŠธ์™€ ์ด์ „ ๋‹ค์ด์ œ์ŠคํŠธ์—์„œ ๋งˆ์Œ์— ๋“œ๋Š” ์ž๋ฃŒ์— ์ ๊ทน์ ์œผ๋กœ ์ข‹์•„์š”๋ฅผ ๋ˆŒ๋Ÿฌ ํˆฌํ‘œํ•ด ์ฃผ์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค :) ๊ฐ€๊ฒ ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ ์ปค๋ฎค๋‹ˆํ‹ฐ์—์„œ ๊ฐ€์žฅ ํ™œ๋™์ ์ธ ์ฐธ๊ฐ€์ž ์ค‘ ํ•œ ๋ช…์ธ 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 ์ธํ„ฐํŽ˜์ด์Šค์— ๋Œ€ํ•œ ์„ค๋ช…๊ณผ ์˜ˆ์ œ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒŒ ๋‹ค์•ผ! ๋‹ค์‹œ ํ•œ ๋ฒˆ ์ƒ๊ธฐ์‹œ์ผœ ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ์—๋Š” ์šฐ์Šน์ž ๋ชฉ๋ก์ด ๊ท€ํ•˜์—๊ฒŒ๋งŒ ๋‹ฌ๋ ค ์žˆ์œผ๋ฏ€๋กœ ๋ฉฐ์น  ๋™์•ˆ ๊ท€ํ•˜์˜ ์˜๊ฒฌ์œผ๋กœ ์ตœ๊ณ ์˜ ๊ธฐ์‚ฌ๋ฅผ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ๋ฐ”๋ผ๋Š” ๊ฒƒ์€ ์˜ค์ง ํ•œ ๊ฐ€์ง€๋ฟ์ž…๋‹ˆ๋‹ค. ๋ชจ๋“  ์ฐธ๊ฐ€์ž์—๊ฒŒ ํ–‰์šด์ด ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค! ์ž๋ฐ”๋Ÿฌ์‹œ ํŒ€
์ฝ”๋ฉ˜ํŠธ
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION