์ฑ„๋„ํ†ก ์•„์ด์ฝ˜

์ƒ์‚ฐ์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ์Šคํ”„๋ง๋ถ€ํŠธ ๊ธฐ๋ฐ˜์˜ API ํ…œํ”Œ๋ฆฟ ํ”„๋กœ์ ํŠธ ๊ตฌํ˜„

ํ”„๋กœ์ ํŠธ ์‹œ์ž‘์„ ์œ„ํ•œ ์ „๋ฐ˜์ ์ธ ์„ค์ •์„ ๊ตฌํ˜„ํ•˜๊ณ  ํ…œํ”Œ๋ฆฟ ํ”„๋กœ์ ํŠธ๋กœ ๋“ฑ๋กํ•˜์—ฌ ์ƒ์‚ฐ์„ฑ์„ ๊ทน๋Œ€ํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

(4.7) ์ˆ˜๊ฐ•ํ‰ 33๊ฐœ

์ˆ˜๊ฐ•์ƒ 416๋ช…

๋‚œ์ด๋„ ์ดˆ๊ธ‰

์ˆ˜๊ฐ•๊ธฐํ•œ ๋ฌด์ œํ•œ

๋จผ์ € ๊ฒฝํ—˜ํ•œ ์ˆ˜๊ฐ•์ƒ๋“ค์˜ ํ›„๊ธฐ

๋จผ์ € ๊ฒฝํ—˜ํ•œ ์ˆ˜๊ฐ•์ƒ๋“ค์˜ ํ›„๊ธฐ

4.7

5.0

์ตœ์ข…๋ฏผ

24% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

์ง„์งœ ์ด๋Ÿฐ ๊ฐ•์˜๊ฐ€ ๋„ˆ๋ฌด ํ•„์š”ํ–ˆ๋Š”๋ฐ... Spring Boot 3.x ๋ฒ„์ „ ์œผ๋กœ ์—…๋ฐ์ดํŠธ ๋œ๋‹ค๋ฉด ๋” ํฅํ•  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.. ใ…  ์ข‹์€ ๊ฐ•์˜ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

5.0

ํœด๊ณ  ๊ฐ•

95% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

๊ฐ€์„ฑ๋น„ ์ข‹์€ ๊ฐ•์˜์˜€๊ณ  ๋‚ด์šฉ๋„ ์•Œ์ฐจ์„œ ๋งŽ์ด ๋ฐฐ์› ์Šต๋‹ˆ๋‹ค. ๋” ๋น„์‹ผ ๊ฐ•์˜๋“ค๋„ ๊ทธ๋ƒฅ api๋งŒ๋“œ๋Š”๋ฒ• ์ •๋„๋ฅผ ์ตํžˆ๋Š” ๊ฐ•์˜๊ฐ€ ๋งŽ์€๋ฐ ์—๋Ÿฌ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋ผ๋˜๊ฐ€ jwtํ† ํฐ์„ ์‹œํ๋ฆฌํ‹ฐ ์—†์ด ์„ธํŒ…ํ•˜๋Š”๋ฒ•์ด๋ผ๋˜์ง€.. ๋“ฑ๋“ฑ ๋งŽ์•„์„œ ์…€ ์ˆ˜ ์—†์ง€๋งŒ ์Šคํ”„๋ง์„ ๋ง‰ ์ ‘ํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์ด ์•Œ๊ณ ์‹ถ์–ดํ•˜๋Š” ๋‚ด์šฉ์„ ํฐํ‹€์—์„œ ์ž˜ ์ •๋ฆฌํ•˜์—ฌ ์ฃผ์‹ ๊ฑฐ ๊ฐ™์Šต๋‹ˆ๋‹ค! ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. - ๋ณด์ผ๋Ÿฌํ…œํ”Œ๋ฆฟ์„ ๋งŒ๋“œ๋Š” ์šฉ๋„๋กœ๋„ ํ›Œ๋ฅญํ•˜์ง€๋งŒ ์Šคํ”„๋ง ๊ธฐ์ดˆ๋ฅผ ์ตํžˆ๋Š”๋ฐ๋„ ์ƒ๋‹นํžˆ ์œ ์ตํ•œ๊ฑฐ๊ฐ™์•„์š” ^^

5.0

yoon

100% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

SpringBoot ๊ธฐ๋ฐ˜์œผ๋กœ OAuth, ์ธ์ฆ, ์ธ๊ฐ€, jwt, ์ „์—ญ ์˜ˆ์™ธ์ฒ˜๋ฆฌ, swagger ๋“ฑ๋“ฑ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋Š” ๋ฐ ๊ผญ ํ•„์š”ํ•œ ๋‚ด์šฉ๊ณผ ๋ฐ˜๋ณต์ ์ธ ๋‚ด์šฉ์„ ์ž์„ธํ•˜๊ฒŒ ์•Œ๋ ค์ฃผ์…”์„œ ๋งŽ์€ ๋„์›€ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ๊ฐ•์˜์˜ ๊ฐ•์‚ฌ๋‹˜๊ป˜์„œ ์“ฐ์‹  ์‡ผํ•‘๋ชฐ ๋งŒ๋“ค๊ธฐ ์ฑ…๋„ ์ฝ์–ด ๋ณด๋ฉด์„œ ์ง„ํ–‰ํ•ด์„œ ๋”์šฑ ์„ฑ์žฅํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

์ˆ˜๊ฐ• ํ›„ ์ด๋Ÿฐ๊ฑธ ์–ป์„ ์ˆ˜ ์žˆ์–ด์š”

  • ํŒจํ‚ค์ง€ ๊ตฌ์กฐ ์„ค๊ณ„

  • CORS ์„ค์ •

  • JWT ์ธ์ฆ

  • ์†Œ์…œ ๋กœ๊ทธ์ธ(์นด์นด์˜ค)

  • ์ „์—ญ ์—๋Ÿฌ ์ฒ˜๋ฆฌ

  • API ๋ฌธ์„œํ™” (Swagger)

  • XSS(ํฌ๋กœ์Šค ์‚ฌ์ดํŠธ ์Šคํฌ๋ฆฝํŒ…) ๋ฐฉ์–ด

  • ๊นƒํ—ˆ๋ธŒ template project ๋“ฑ๋ก


๋‚˜๋งŒ์˜ ๋‹ฌํŒฝ์ด์ง‘ ๋งŒ๋“ค๊ธฐ!
๐Ÿ‘จโ€๐Ÿ’ป

์ƒˆ๋กœ์šด ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“ค์–ด์•ผ ํ•  ๋•Œ ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ•˜๊ธฐ ์œ„ํ•œ ์ „๋ฐ˜์ ์ธ ์„ค์ •์€ ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ• ์ง€, ํŒจํ‚ค์ง€ ๊ตฌ์กฐ๋Š” ์–ด๋–ป๊ฒŒ ์žก์•„์•ผ ํ•˜๋Š”์ง€, ๋ˆ„๊ตฐ๊ฐ€ ๋‚˜ ๋Œ€์‹  ๊ฐœ๋ฐœ์„ ๋ฐ”๋กœ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ”„๋กœ์ ํŠธ ์„ค์ •์„ ํ•ด์ฃผ์—ˆ์œผ๋ฉด ์ข‹๊ฒ ๋‹ค๊ณ  ์ƒ๊ฐํ•ด ๋ณด์‹  ์  ์žˆ์œผ์‹ ๊ฐ€์š”? ๋งŒ์•ฝ ๊ธฐ์กด์— ๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธ๋ฅผ ํ•  ๋•Œ ์ž‘์„ฑํ•œ ์ฝ”๋“œ๊ฐ€ ์žˆ์œผ์‹œ๋‹ค๋ฉด ์ƒˆ๋กœ์šด ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•  ๋•Œ ๊ธฐ์กด์— ๋งŒ๋“ค์–ด๋‘” ๋กœ์ง๋“ค์„ [CTRL+C], [CTRL+V]๋กœ ๋ณต์‚ฌํ•˜๋Š” ์ž์‹ ์˜ ๋ชจ์Šต์„ ๋ฐœ๊ฒฌํ•˜์…จ์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

์ƒˆ๋กœ์šด ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ•  ๋•Œ ํ•„์š”ํ•œ ์„ค์ •๋“ค๊ณผ ํ•ญ์ƒ ๊ณตํ†ต์œผ๋กœ ๋“ค์–ด๊ฐ€๋Š” ๊ธฐ๋Šฅ๋“ค์€ ๋ฏธ๋ฆฌ ๊ตฌํ˜„์„ ํ•˜์—ฌ ํ…œํ”Œ๋ฆฟ ํ”„๋กœ์ ํŠธ๋กœ ๋งŒ๋“ค์–ด๋†“๊ณ  ์ƒˆ๋กœ์šด ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ•  ๋•Œ ํ…œํ”Œ๋ฆฟ ํ”„๋กœ์ ํŠธ ๊ธฐ๋ฐ˜์œผ๋กœ ์‹œ์ž‘์„ ํ•œ๋‹ค๋ฉด ํ”„๋กœ์ ํŠธ ์‹œ์ž‘๊ณผ ๋™์‹œ์— ํ•ด๋‹น ํ”„๋กœ์ ํŠธ์—์„œ ํ•„์š”ํ•œ API๋“ค๋งŒ ๊ฐœ๋ฐœํ•˜๋ฉด ์ƒ์‚ฐ์„ฑ์„ ๊ทน๋Œ€ํ™”ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ์ €๋Š” ์ด๋Ÿฌํ•œ ๊ณผ์ •์„ ์ž์‹ ๋งŒ์˜ ๋‹ฌํŒฝ์ด์ง‘์„ ๋งŒ๋“œ๋Š” ๊ณผ์ •์ด๋ผ๊ณ  ๋งํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฐ•์˜๋ฅผ ํ†ตํ•ด์„œ ๊ธฐ๋ณธ์ ์ธ ๋‹ฌํŒฝ์ด์ง‘์„ ๋งŒ๋“ค๊ณ  ์•ž์œผ๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜๋ฉด์„œ ์œ ์šฉํ•œ ๊ธฐ๋Šฅ๊ณผ ์„ค์ •, ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋“ค์„ ํ•˜๋‚˜์”ฉ ์ถ”๊ฐ€ํ•ด๋‚˜๊ฐ€๋Š” ๊ฒƒ์ด์ฃ . ๋‹ฌํŒฝ์ด์ง‘์˜ ๋‚ด๋ถ€๋ฅผ ๊ณ„์†ํ•ด์„œ ๋ฆฌ๋ชจ๋ธ๋งํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‹ฌํŒฝ์ด์ง‘์€ ์ €์™€ ํ•จ๊ป˜ ์„ฑ์žฅ์„ ํ•˜๋Š” ๊ฒƒ์ด์ฃ !

๋˜ํ•œ ์ž…์‚ฌ๋ฅผ ํ•˜๊ณ  ๋‚˜๋ฉด ์–ด๋А ์ •๋„ ์„ค์ •์ด ๋œ ํ”„๋กœ์ ํŠธ๋ฅผ ์œ ์ง€ ๋ณด์ˆ˜ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์€๋ฐ ์ด๋ฒˆ ๊ฐ•์˜๋ฅผ ๋“ค์œผ๋ฉด "์ „๋ฐ˜์ ์œผ๋กœ ํ”„๋กœ์ ํŠธ๊ฐ€ ์ด๋ ‡๊ฒŒ ๊ตฌ์„ฑ์ด ๋˜์–ด์žˆ๊ฒ ๊ตฌ๋‚˜!" ๋ผ๊ณ  ์ดํ•ด๋ฅผ ํ•˜์‹ค ์ˆ˜ ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋งŒ์•ฝ ์‹ ๊ทœ ํ”„๋กœ์ ํŠธ๋ฅผ ์ฒ˜์Œ๋ถ€ํ„ฐ ๊ตฌ์ถ•ํ•˜๊ฒŒ ๋˜๋”๋ผ๋„ ์ดˆ๊ธฐ ์„ธํŒ…๋ถ€ํ„ฐ ๊ฐœ๋ฐœ๊นŒ์ง€ ๋ฌด๋ฆฌ ์—†์ด ํ•ด๋‚˜๊ฐ€๋Š” ์ž์‹ ์„ ๋ฐœ๊ฒฌํ•  ์ˆ˜ ์žˆ์„๊ฒ๋‹ˆ๋‹ค. 


์ด๋Ÿฐ ๋ถ„๋“ค์—๊ฒŒ ์ถ”์ฒœํ•ด์š” ๐Ÿ‘€

API ์„œ๋ฒ„๋ฅผ ๋งŒ๋“ค ๋•Œ ํ”„๋กœ์ ํŠธ
์ „๋ฐ˜์˜ ์„ค์ •์„ ์•Œ๊ณ ์‹ถ์€ ๋ถ„

ํ…œํ”Œ๋ฆฟ ๊ธฐ๋ณธ ํ‹€์„ ์žก๊ณ  ๋‚˜๋งŒ์˜
ํ”„๋กœ์ ํŠธ๋ฅผ ๋ฐœ์ „ํ•˜๊ณ  ์‹ถ์€ ๋ถ„

API ์„œ๋ฒ„์—์„œ JWT ๊ธฐ๋ฐ˜ ์†Œ์…œ
๋กœ๊ทธ์ธ์„ ๊ตฌํ˜„ํ•˜๊ณ  ์‹ถ์€ ๋ถ„


์ด ๊ฐ•์˜๋งŒ์˜ ํŠน์ง• โœจ

  • ์ตœ๋Œ€ํ•œ ์‹ค๋ฌด์ง€ํ–ฅ์ ์œผ๋กœ ๊ฐ•์˜๋ฅผ ์ œ์ž‘ํ•˜์˜€๊ณ , ๊ฐ•์˜๋ฅผ ๋“ฃ๊ณ  ๋”ฐ๋ผ ํ•˜์‹ ๋‹ค๋ฉด ๊ฐ์ข… ์„ค์ • ๋ฐ ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ๋ฅผ ์žก๋Š”๋ฐ ์ž์‹ ๊ฐ์ด ๋ถ™์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
  • ์„ค์ •์„ ์ง„ํ–‰ํ•˜๊ธฐ ์ „์— ํ•ด๋‹น ์„ค์ •์— ๋Œ€ํ•œ ๊ฐ„๋‹จํ•œ ๊ฐœ๋…์„ ์„ค๋ช…๋“œ๋ฆฌ๊ณ  ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
  • ์ž์„ธํ•œ ์„ค๋ช…์„ ์œ„ํ•ด์„œ 100ํŽ˜์ด์ง€ ๊ฐ€๊นŒ์ด ๋˜๋Š” ๊ฐ•์˜ ์ž๋ฃŒ๋ฅผ ์ œ๊ณตํ•ด ๋“œ๋ฆฝ๋‹ˆ๋‹ค.


ํ•™์Šตํ•  ๋‚ด์šฉ โœ๏ธ

CORS์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๋ฉฐ ๋‹ค๋ฅธ origin์—์„œ๋„
API ํ˜ธ์ถœ์ด ๊ฐ€๋Šฅํ•˜๋„๋ก ์„ค์ •์„ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

API๋ฅผ ์ˆ˜ํ–‰ํ•˜๋‹ค๊ฐ€ ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•  ๊ฒฝ์šฐ ๊ฐ๊ฐ๋งˆ๋‹ค
์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋ฅผ ํ•˜๋Š” ๊ฒŒ ์•„๋‹ˆ๋ผ
์ „์—ญ์ ์œผ๋กœ
์˜ˆ์™ธ๋ฅผ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฒ•์„ ๋ฐฐ์›๋‹ˆ๋‹ค.

์นด์นด์˜ค ๊ฐœ๋ฐœ์ž ์„ผํ„ฐ์—์„œ ์ œ๊ณตํ•˜๋Š” ๋ฌธ์„œ๋ฅผ ๋ณด๋ฉฐ ์นด์นด์˜ค ํ† ํฐ ๋ฐœ๊ธ‰์„ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

๋ฌธ์„œ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ API๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๊ณผ์ •์„ ๊ฐ•์˜๋ฅผ ํ†ตํ•ด ์ตํžˆ์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐœ๊ธ‰๋ฐ›์€ ์นด์นด์˜ค์˜ ACCESS TOKEN์„ ์ด์šฉํ•˜์—ฌ
์†Œ์…œ ๋กœ๊ทธ์ธ์„ ๊ตฌํ˜„ํ•˜๊ณ 

์ €ํฌ๊ฐ€ ๋งŒ๋“œ๋Š” API์—์„œ ์‚ฌ์šฉํ•  JWT๋ฅผ ๋ฐœ๊ธ‰ํ•ฉ๋‹ˆ๋‹ค.

๊ฐœ๋ฐœํ•œ API๋“ค์„ Swagger๋ฅผ
์ด์šฉํ•˜์—ฌ ๋ฌธ์„œ ์ž๋™ํ™”๋ฅผ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

์›น ๋ณด์•ˆ์˜ ๊ฐ€์žฅ ๊ธฐ์ดˆ์ธ XSS(ํฌ๋กœ์Šค ์‚ฌ์ดํŠธ ์Šคํฌ๋ฆฝํŒ…)๋ฅผ
๋ฐฉ์–ดํ•˜๊ธฐ ์œ„ํ•œ ์„ค์ •์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

๊ตฌํ˜„ํ•œ ํ…œํ”Œ๋ฆฟ ํ”„๋กœ์ ํŠธ๋ฅผ ๊นƒํ—ˆ๋ธŒ์—์„œ
Template Repository๋กœ ๋“ฑ๋กํ•˜์—ฌ

์ƒˆ๋กœ์šด ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ•  ๋•Œ
ํ•ด๋‹น ํ…œํ”Œ๋ฆฟ ๊ธฐ๋ฐ˜์œผ๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒˆ๋กœ ๋งŒ๋“ค์–ด๋ด…๋‹ˆ๋‹ค.

 

๊ฐ•์˜ ์†Œ๋ฆฌ๊ฐ€ ์ž‘๊ฒŒ ๋“ค๋ฆฐ๋‹ค๋Š” ์˜๊ฒฌ์ด ์žˆ์–ด์„œ ๊ฐ€๋Šฅํ•˜๋ฉด ์ด์–ดํฐ์œผ๋กœ ์ฒญ์ทจ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค.


Q&A ๐Ÿ’ฌ

Q. Spring Data JPA๋ฅผ ์‚ฌ์šฉ์„ ์•ˆํ•ด๋ดค๋Š”๋ฐ ๊ฐ•์˜๋ฅผ ๋“ค์–ด๋„ ๋ ๊นŒ์š”?

Spring Data JPA ๊ธฐ๋ฐ˜์œผ๋กœ ์—”ํ‹ฐํ‹ฐ ์„ค๊ณ„, ์ง€์—ฐ ๋กœ๋”ฉ, ๋ณ€๊ฒฝ ๊ฐ์ง€, ์ฟผ๋ฆฌ ๋ฉ”์†Œ๋“œ๊ฐ€ ๋ฌด์—‡์ธ์ง€ ์ •๋„์— ๋Œ€ํ•œ ๊ธฐ๋ณธ์ ์ธ ์ง€์‹์ด ์žˆ์œผ์…”์•ผ ๊ฐ•์˜๋ฅผ ์ˆ˜์›”ํ•˜๊ฒŒ ๋“ค์œผ์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Q. ์Šคํ”„๋ง์— ๋Œ€ํ•ด์„œ ์ž์„ธํžˆ ๋ชจ๋ฅด๋Š”๋ฐ ๊ฐ•์˜๋ฅผ ๋“ค์–ด๋„ ๊ดœ์ฐฎ์„๊นŒ์š”?

์Šคํ”„๋ง ์ž์ฒด์— ๋Œ€ํ•œ ๊ฒฝํ—˜์ด ์—†๋‹ค๋ฉด ๊ฐ•์˜๋ฅผ ๋“ฃ๊ธฐ๊ฐ€ ํž˜๋“œ์‹ค ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒ๋ฉ๋‹ˆ๋‹ค. ์Šคํ”„๋ง ๊ธฐ๋ฐ˜์œผ๋กœ API๋ฅผ ๋งŒ๋“ค์–ด๋ณด์‹  ๊ฒฝํ—˜์ด ์žˆ์œผ์‹œ๋‹ค๋ฉด ์ˆ˜์›”ํ•˜๊ฒŒ ๊ฐ•์˜๋ฅผ ๋“ค์œผ์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


์ง€์‹๊ณต์œ ์ž ์†Œ๊ฐœ โœ’๏ธ

์•ˆ๋…•ํ•˜์„ธ์š”! ํ˜„์žฌ ์ด์ปค๋จธ์Šค ๊ธฐ์—…์—์„œ ์ผํ•˜๊ณ  ์žˆ๋Š” ๊ฐœ๋ฐœ์ž์ž…๋‹ˆ๋‹ค. 2022๋…„ 4~5์›” ๋™์•ˆ "๋ฉ‹์Ÿ์ด ์‚ฌ์ž X ์ด์ŠคํŠธ์†Œํ”„ํŠธ" ์ต์Šคํ„ด์‹ญ ๋ฉ”์ธ ๊ฐ•์‚ฌ๋กœ ํ™œ๋™ํ•˜์˜€๊ณ , 2021๋…„ 9์›”์— "์Šคํ”„๋ง ๋ถ€ํŠธ ์‡ผํ•‘๋ชฐ ํ”„๋กœ์ ํŠธ with JPA"๋ผ๋Š” ์ฑ…์„ ์ถœํŒํ•˜์˜€์Šต๋‹ˆ๋‹ค.

์ด๋Ÿฐ ๋ถ„๋“ค๊ป˜
์ถ”์ฒœ๋“œ๋ ค์š”

ํ•™์Šต ๋Œ€์ƒ์€
๋ˆ„๊ตฌ์ผ๊นŒ์š”?

  • ๊ธฐ๋ณธ์ ์ธ ํ”„๋กœ์ ํŠธ ์„ธํŒ…์— ๋Œ€ํ•ด์„œ ๋ฐฐ์›Œ๋ณด๊ณ  ์‹ถ์œผ์‹  ๋ถ„

  • ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ๋ณธ์ ์ธ ๊ณตํ†ต๊ธฐ๋Šฅ์„ ๋ฏธ๋ฆฌ ๊ตฌํ˜„ํ•˜๊ณ  ์‹ถ์œผ์‹  ๋ถ„

  • ํ‰์†Œ์— ์‚ฌ์ด๋“œ ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŽ์ด ํ•˜์‹œ๋Š” ๋ถ„

์„ ์ˆ˜ ์ง€์‹,
ํ•„์š”ํ• ๊นŒ์š”?

  • ์Šคํ”„๋ง ๋ถ€ํŠธ

  • Spring Data JPA

  • Java

  • ๊นƒํ—ˆ๋ธŒ ์‚ฌ์šฉ๊ฒฝํ—˜(์†Œ์Šค์ฝ”๋“œ ์—…๋กœ๋“œ)

  • Spring

์•ˆ๋…•ํ•˜์„ธ์š”
๊ตฌํŒŒ๊ณ ์ž…๋‹ˆ๋‹ค.

416

๋ช…

์ˆ˜๊ฐ•์ƒ

33

๊ฐœ

์ˆ˜๊ฐ•ํ‰

81

๊ฐœ

๋‹ต๋ณ€

4.7

์ 

๊ฐ•์˜ ํ‰์ 

1

๊ฐœ

๊ฐ•์˜

์ปค๋ฆฌํ˜๋Ÿผ

์ „์ฒด

38๊ฐœ โˆ™ (6์‹œ๊ฐ„ 38๋ถ„)

ํ•ด๋‹น ๊ฐ•์˜์—์„œ ์ œ๊ณต:

์ˆ˜์—…์ž๋ฃŒ
๊ฐ•์˜ ๊ฒŒ์‹œ์ผ: 
๋งˆ์ง€๋ง‰ ์—…๋ฐ์ดํŠธ์ผ: 

์ˆ˜๊ฐ•ํ‰

์ „์ฒด

33๊ฐœ

4.7

33๊ฐœ์˜ ์ˆ˜๊ฐ•ํ‰

  • ์ตœ์ข…๋ฏผ๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
    ์ตœ์ข…๋ฏผ

    ์ˆ˜๊ฐ•ํ‰ 20

    โˆ™

    ํ‰๊ท  ํ‰์  5.0

    5

    24% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

    ์ง„์งœ ์ด๋Ÿฐ ๊ฐ•์˜๊ฐ€ ๋„ˆ๋ฌด ํ•„์š”ํ–ˆ๋Š”๋ฐ... Spring Boot 3.x ๋ฒ„์ „ ์œผ๋กœ ์—…๋ฐ์ดํŠธ ๋œ๋‹ค๋ฉด ๋” ํฅํ•  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.. ใ…  ์ข‹์€ ๊ฐ•์˜ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

    • ๊ตฌํŒŒ๊ณ 
      ์ง€์‹๊ณต์œ ์ž

      ์•ˆ๋…•ํ•˜์„ธ์š” ์ข…๋ฏผ๋‹˜! ๊ฐ•์˜ ์ข‹๊ฒŒ ๋ด์ฃผ์…”์„œ ๋„ˆ๋ฌด ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! ์•„๋ฌด๋ž˜๋„ ๊ฐ•์˜ ๋…นํ™”๋ฅผ ๋‹ค์‹œํ•˜๋Š”๊ฑด ํž˜๋“ค๊บผ ๊ฐ™์•„์„œ, ์Šคํ”„๋ง๋ถ€ํŠธ3 ๊ธฐ์ค€์œผ๋กœ ๋ฐ”๋€์ ๋“ค์„ ์ตœ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ ํ•˜๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์™„๊ฐ•๊นŒ์ง€ ํ™”์ดํŒ…์ž…๋‹ˆ๋‹ค!

  • ๊น€๊ธฐ์›๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
    ๊น€๊ธฐ์›

    ์ˆ˜๊ฐ•ํ‰ 1

    โˆ™

    ํ‰๊ท  ํ‰์  4.0

    4

    79% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

    ์Œ์„ฑ์— ๋…ธ์ด์ฆˆ๊ฐ€ ๋งŽ์•„์„œ ๊ฐ•์˜ ๋“ฃ๊ณ  ์žˆ์„ ๋•Œ ์กฐ๊ธˆ ๋ถˆํŽธํ–ˆ์ง€๋งŒ ๊ฐ•์˜ ๋‚ด์šฉ์€ ๋„์›€์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

    • ๊ตฌํŒŒ๊ณ 
      ์ง€์‹๊ณต์œ ์ž

      ์•ˆ๋…•ํ•˜์„ธ์š”! ์Œ์งˆ์— ๋…ธ์ด์ฆˆ๊ฐ€ ์žˆ์—ˆ๋Š”๋ฐ ๋ถˆํŽธ์„ ๋ผ์ณ๋“œ๋ ค์„œ ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค ใ…  ์ˆ˜๊ฐ•ํ‰ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! ๋‹ค์Œ๋ฒˆ์—๋Š” ์Œ์งˆ ๋” ์‹ ๊ฒฝ์“ฐ๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

  • yoon๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
    yoon

    ์ˆ˜๊ฐ•ํ‰ 16

    โˆ™

    ํ‰๊ท  ํ‰์  5.0

    5

    100% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

    SpringBoot ๊ธฐ๋ฐ˜์œผ๋กœ OAuth, ์ธ์ฆ, ์ธ๊ฐ€, jwt, ์ „์—ญ ์˜ˆ์™ธ์ฒ˜๋ฆฌ, swagger ๋“ฑ๋“ฑ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋Š” ๋ฐ ๊ผญ ํ•„์š”ํ•œ ๋‚ด์šฉ๊ณผ ๋ฐ˜๋ณต์ ์ธ ๋‚ด์šฉ์„ ์ž์„ธํ•˜๊ฒŒ ์•Œ๋ ค์ฃผ์…”์„œ ๋งŽ์€ ๋„์›€ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ๊ฐ•์˜์˜ ๊ฐ•์‚ฌ๋‹˜๊ป˜์„œ ์“ฐ์‹  ์‡ผํ•‘๋ชฐ ๋งŒ๋“ค๊ธฐ ์ฑ…๋„ ์ฝ์–ด ๋ณด๋ฉด์„œ ์ง„ํ–‰ํ•ด์„œ ๋”์šฑ ์„ฑ์žฅํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

    • ๊ตฌํŒŒ๊ณ 
      ์ง€์‹๊ณต์œ ์ž

      ์•ˆ๋…•ํ•˜์„ธ์š”! ์‡ผํ•‘๋ชฐ ์ฑ…๋ถ€ํ„ฐ ๊ฐ•์˜๊นŒ์ง€ ์ˆ˜๊ฐ•ํ•ด์ฃผ์…จ๊ตฐ์š”! ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค :) ๊ฐ•์˜ ๋‚ด์šฉ์ด ์•ž์œผ๋กœ๋„ ๊ฐœ๋ฐœํ•˜์‹œ๋ฉด์„œ ๋„์›€์ด ๋งŽ์ด ๋์œผ๋ฉด ์ข‹๊ฒ ์Šต๋‹ˆ๋‹ค!

  • ํœด๊ณ  ๊ฐ•๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
    ํœด๊ณ  ๊ฐ•

    ์ˆ˜๊ฐ•ํ‰ 29

    โˆ™

    ํ‰๊ท  ํ‰์  4.6

    5

    95% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

    ๊ฐ€์„ฑ๋น„ ์ข‹์€ ๊ฐ•์˜์˜€๊ณ  ๋‚ด์šฉ๋„ ์•Œ์ฐจ์„œ ๋งŽ์ด ๋ฐฐ์› ์Šต๋‹ˆ๋‹ค. ๋” ๋น„์‹ผ ๊ฐ•์˜๋“ค๋„ ๊ทธ๋ƒฅ api๋งŒ๋“œ๋Š”๋ฒ• ์ •๋„๋ฅผ ์ตํžˆ๋Š” ๊ฐ•์˜๊ฐ€ ๋งŽ์€๋ฐ ์—๋Ÿฌ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋ผ๋˜๊ฐ€ jwtํ† ํฐ์„ ์‹œํ๋ฆฌํ‹ฐ ์—†์ด ์„ธํŒ…ํ•˜๋Š”๋ฒ•์ด๋ผ๋˜์ง€.. ๋“ฑ๋“ฑ ๋งŽ์•„์„œ ์…€ ์ˆ˜ ์—†์ง€๋งŒ ์Šคํ”„๋ง์„ ๋ง‰ ์ ‘ํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์ด ์•Œ๊ณ ์‹ถ์–ดํ•˜๋Š” ๋‚ด์šฉ์„ ํฐํ‹€์—์„œ ์ž˜ ์ •๋ฆฌํ•˜์—ฌ ์ฃผ์‹ ๊ฑฐ ๊ฐ™์Šต๋‹ˆ๋‹ค! ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. - ๋ณด์ผ๋Ÿฌํ…œํ”Œ๋ฆฟ์„ ๋งŒ๋“œ๋Š” ์šฉ๋„๋กœ๋„ ํ›Œ๋ฅญํ•˜์ง€๋งŒ ์Šคํ”„๋ง ๊ธฐ์ดˆ๋ฅผ ์ตํžˆ๋Š”๋ฐ๋„ ์ƒ๋‹นํžˆ ์œ ์ตํ•œ๊ฑฐ๊ฐ™์•„์š” ^^

    • ๊ตฌํŒŒ๊ณ 
      ์ง€์‹๊ณต์œ ์ž

      ์Šคํ”„๋ง ๊ด€๋ จ ๋‚ด์šฉ๋“ค์€ ์ง์ ‘์ ์œผ๋กœ ์„ค๋ช…ํ•˜๊ณ  ์žˆ์ง€ ์•Š๊ธดํ•œ๋ฐ ํœด๊ณ ๋‹˜์ด ์Šคํ”„๋ง ๊ด€๋ จ ๊ณต๋ถ€๋ฅผ ์—ด์‹ฌํžˆ ํ•˜์…”์„œ ๋ค์œผ๋กœ ๊ฐ€์ ธ๊ฐ€์‹ ๊ฑฐ ๊ฐ™๋„ค์š”! ๋„์›€์ด ๋งŽ์ด ๋˜์…จ๋‹ค๋‹ˆ ์ €๋„ ๊ธฐ๋ถ„์ด ์ข‹๋„ค์š”! ๊ฐ•์˜ ๋‚ด์šฉ ์ข‹๊ฒŒ ๋ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

  • Bruce Han๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
    Bruce Han

    ์ˆ˜๊ฐ•ํ‰ 80

    โˆ™

    ํ‰๊ท  ํ‰์  4.4

    4

    100% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

    ์Šคํ”„๋ง๋ถ€ํŠธ ์‡ผํ•‘๋ชฐ JPA ์ฑ…๋ถ€ํ„ฐ ๊ฐ•์˜๊นŒ์ง€ ์ž˜ ๋ดค์Šต๋‹ˆ๋‹ค! ๋‹ค๋งŒ, ๋ชฉ์†Œ๋ฆฌ๊ฐ€ ์žก์Œ๊ณผ ํ•จ๊ป˜ ์ž‘๊ฒŒ ๋“ค๋ฆฌ๊ณ , ํ™”์งˆ์ด ๋‚ฎ์Šต๋‹ˆ๋‹ค. IDE์— ์žˆ๋Š” ์ฝ”๋“œ๊ฐ€ ํ๋ฆฌ๊ฒŒ ๋ณด์—ฌ์š” ๋‘˜๋งŒ ๋นผ๋ฉด ์ด๋ฏธ ์ข‹์€ ๊ฐ•์˜์ž…๋‹ˆ๋‹ค๐Ÿ˜ ๊ทธ๋ฆฌ๊ณ  ์ด๊ฑด ์ข€ ๊ฐœ์ธ์ ์ธ ๋ถ€๋ถ„์ด๊ธด ํ•œ๋ฐ์š”. ์‡ผํ•‘๋ชฐ JPA ์ฑ…์—์„œ ๋กœ๊ทธ์ธ ๋ถ€๋ถ„ ์„ธ์…˜์ด ์•„๋‹Œ JWT(์†Œ์…œ ๋กœ๊ทธ์ธ์ด ์•„๋‹Œ ๊ทธ๋ƒฅ OAuth)๋กœ ๋ฐ”๊พธ๋ ค๊ณ  ํ•˜๋Š”๋ฐ, ์„ธ์…˜์—์„œ ์–ด๋–ป๊ฒŒ ๋ฐ”๊ฟ”์•ผํ• ์ง€ ๊ฐ์ด ์ž˜ ์•ˆ์žกํžˆ๋„ค์š” ๋ฉ˜ํ† ๋ง์ด๋‚˜ ํ˜น์€ ์ข€ ๋„์›€ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์„๊นŒ์š”

    • ๊ตฌํŒŒ๊ณ 
      ์ง€์‹๊ณต์œ ์ž

      ์•ˆ๋…•ํ•˜์„ธ์š” ์ฑ…๋ถ€ํ„ฐ ๊ฐ•์˜๊นŒ์ง€ ๋“ค์–ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! ์ œ๊ฐ€ ๊ฐ•์˜๋ฅผ ์ฒ˜์Œ ๋…นํ™”ํ•˜๋Š”๊ฑฐ๋ผ ์Œ์งˆ์ด๋‚˜ ์ฃผ๋ณ€ ์†Œ๋ฆฌ๊ฐ™์€ ๊ฒƒ๋“ค์„ ์‹ ๊ฒฝ์“ด๋‹ค๊ณ  ์ผ๋Š”๋ฐ ๋งŽ์ด ๋ฏธ์ˆ™ํ–ˆ์—ˆ๋˜๊ฑฐ ๊ฐ™์Šต๋‹ˆ๋‹ค ใ…  ๋‹ค์Œ๋ฒˆ์— ๊ฐ•์˜๋ฅผ ๋งŒ๋“ค๊ฒŒ ๋˜๋ฉด ๋” ์‹ ๊ฒฝ์จ์„œ ๋งŒ๋“ค๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. JPA ์‡ผํ•‘๋ชฐ ์ฑ…๊ด€๋ จํ•ด์„œ๋Š” ๋ฐฑ๊ฒฌ๋ถˆ์—ฌ์ผํƒ€์นดํŽ˜(https://cafe.naver.com/codefirst) ์งˆ์˜ ์‘๋‹ต ๊ฒŒ์‹œํŒ์— ๊ฒŒ์‹œ๊ธ€ ๋‚จ๊ฒจ์ฃผ์‹œ๋ฉด ์ชฝ์ง€ ๋“œ๋ฆฌ๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

๋น„์Šทํ•œ ๊ฐ•์˜

๊ฐ™์€ ๋ถ„์•ผ์˜ ๋‹ค๋ฅธ ๊ฐ•์˜๋ฅผ ๋งŒ๋‚˜๋ณด์„ธ์š”!

โ‚ฉ38,500