[TIL_Carrotww] 108 - 23/04/19

์œ ํ˜•์„ยท2023๋…„ 4์›” 20์ผ
0

TIL

๋ชฉ๋ก ๋ณด๊ธฐ
123/138
post-thumbnail

๐Ÿ“Carrotww์˜ ์ฝ”๋”ฉ ๊ธฐ๋ก์žฅ

๐Ÿงฒ spring, spring boot, spring security

spring ์ด๋ž€

spring์€ ๋ˆ„๊ตฌ๋‚˜ ์•Œ๊ณ ์žˆ์„ ๊ฒƒ์ด๋‹ค. java ๊ธฐ๋ฐ˜์œผ๋กœ ๋งŒ๋“ค์–ด์ง„ java ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์„ ๋ชฉ์ ์œผ๋กœ ํ•˜๋Š” ๊ฐ€๋ฒผ์šด ํ”„๋ ˆ์ž„์›Œํฌ์ด๋‹ค.


spring boot

spring boot๋Š” spring์„ ๊ตฌ์„ฑํ• ๋•Œ ์ข…์†์„ฑ ๊ด€๋ฆฌ์™€ ์ž๋™ ๊ตฌ์„ฑ ๋“ฑ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜์—ฌ ์ƒˆ ํ”„๋กœ์ ํŠธ๊ฐ€ ๋น ๋ฅด๊ณ  ์‰ฝ๊ฒŒ ์‹œ์ž‘๋  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ค€๋‹ค.

์ฆ‰ Spring Framework๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ์—๋Š” ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ๋„ ๋งŽ๊ณ  ๋ณต์žกํ•˜์ง€๋งŒ Spring boot๋Š” ๊ธฐ๋ณธ๊ฐ’์„ ์ œ๊ณตํ•˜๊ณ , ํšจ์œจ์ ์ด๊ณ  ๋น ๋ฅด๊ฒŒ ๋นŒ๋“œํ•˜๊ธฐ์œ„ํ•ด ๋งŒ๋“ค์–ด์ง„๊ฒƒ์ด Spring boot์ด๋‹ค.


spring security

spring security๋Š” spring์˜ ๋ณด์•ˆ์„ ๊ด€๋ฆฌํ•˜๋Š” ํฌ๊ด„์ ์ธ ๋ณด์•ˆ ์‹œ์Šคํ…œ์ด๋‹ค.
์‰ฝ๊ฒŒ ๋งํ•˜๋ฉด ๊ฑฐ๋Œ€ํ•œ ์ง‘์ด ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ณด์ž.
์ด ๊ฑฐ๋Œ€ํ•œ ์ง‘์„ ๊ด€๋ฆฌํ•˜๋ ค๋ฉด ์—ฌ๋Ÿฌ ๋ฐฉ์—๋Œ€ํ•œ ์—ด์‡ , ์ง‘์— ๋“ค์–ด์˜ค๋Š” ์‚ฌ๋žŒ๋“ค์˜ ์‹ ์›์„ ํ™•์ธํ•˜๋Š” ๊ฒฝ๋น„์›๊นŒ์ง€ ์—ฌ๋Ÿฌ ๋ณด์•ˆ ์‹œ์Šคํ…œ์ด ํ•„์š”ํ•˜๋‹ค. ์ด ๋ชจ๋“ ๊ฒƒ์„ ํ•œ๋ฒˆ์— ๊ด€๋ฆฌํ•ด์ฃผ๋Š” ๊ฒƒ์ด spring security์ด๋‹ค.
์ œ๊ณง๋˜๋Š” ๊ฒƒ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

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

๐Ÿงฒ Spring ๋นŒ๋“œ ์ž๋™ํ™” ๋„๊ตฌ

๋นŒ๋“œ ์ž๋™ํ™” ๋„๊ตฌ๋ž€ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ์„ธ๊ณ„์—์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ์ถ•ํ•˜๋Š”๋ฐ ๋„์›€์ด ๋˜๋Š” ๋„๊ตฌ๋กœ
์˜ˆ์‹œ๋กœ ์ง‘์„ ์ง€์„๋•Œ ํšจ์œจ์ ์œผ๋กœ ๊ฑด์„คํ•˜๋ ค๋ฉด ์—ฌ๋Ÿฌ ๋„๊ตฌ์™€ ์žฌ๋ฃŒ๊ฐ€ ํ•„์š”ํ•˜๋“ฏ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ์ถ•ํ•˜๋Š”๋ฐ ๋„์›€์ด ๋˜๋Š” ๋„๊ตฌ๋“ค์„ ๋งํ•œ๋‹ค.
๊ทธ๋Ÿฌํ•œ ๋„๊ตฌ๋“ค์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, ํ”„๋ ˆ์ž„์›Œํฌ ๋ฐ ์ข…์†์„ฑ์ด ์žˆ์œผ๋ฉฐ Gradle๊ณผ Maven์€ ์ด๋Ÿฌํ•œ ๋ฆฌ์†Œ์Šค๋“ค์„ ํšจ๊ณผ์ ์œผ๋กœ ์ˆ˜์ง‘ํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋Š” ํ”„๋กœ์ ํŠธ ๊ด€๋ฆฌ ๋„๊ตฌ์ด๋‹ค.

๐Ÿ” Maven

Maven์€ ๊ตฌ์„ฑ๋ณด๋‹ค ์ „ํ†ต์ ์ธ ์ธก๋ฉด์„ ๋”ฐ๋ฅด๋Š” ์—„๊ฒฉํ•œ ๋„๊ตฌ์ด๋‹ค. Maven์€ ๋‹จ์ˆœํ•˜๊ฑฐ๋‚˜ ์กฐ๊ธˆ ๋ณต์žกํ•œ ํ”„๋กœ์ ํŠธ์— ์œ ์šฉํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ๋”์šฑ ๋ณต์žกํ•˜๊ฑฐ๋‚˜ ์—ฌ๋Ÿฌ ์š”๊ตฌ์‚ฌํ•ญ์ด ์žˆ๋Š” ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ์ œํ•œ์ด ๋  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ Maven์€ Gradle๋ณด๋‹ค ์˜ค๋ž˜ ์‚ฌ์šฉ๋˜์—ˆ์œผ๋ฉฐ ๋„“์€ ํ”Œ๋Ÿฌ๊ทธ์ธ๊ณผ ํฐ ์ปค๋ฎค๋‹ˆํ‹ฐ๋ฅผ ๋ณด์œ ํ•˜๊ณ  ์žˆ์–ด ์†”๋ฃจ์…˜์„ ์ฐพ์„๋•Œ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ๋‹ค.


๐Ÿ” Gradle

Gradle์€ ์ผ๋ฐ˜์ ์œผ๋กœ ๋นŒ๋“œ ํ”„๋กœ์„ธ์Šค๋ฅผ ์‚ฌ์šฉ์ž๊ฐ€ ์ •์˜ํ•  ์ˆ˜ ์žˆ๋Š” ์œ ์—ฐ์„ฑ๊ณผ ๊ธฐ๋Šฅ์œผ๋กœ ๋ณต์žกํ•œ ํ”„๋กœ์ ํŠธ์— ์ƒ๋Œ€์ ์œผ๋กœ ๋” ์ ํ•ฉํ•˜๋‹ค.
๋‚˜๋Š” java๋ฅผ ์“ธ๊ฑฐ์ง€๋งŒ Groovy, Kotilin ๊ธฐ๋ฐ˜ DSL์„ ์‚ฌ์šฉํ•˜๋ฉด ๋นŒ๋“œ ํ”„๋กœ์„ธ์Šค์— ๋Œ€ํ•œ ํ‘œํ˜„๋ ฅ๊ณผ ์ œ์–ด๋ ฅ์ด ํ–ฅ์ƒ๋˜์–ด ๋ณต์žกํ•œ ํ”„๋กœ์ ํŠธ์—์„œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ๋“ค์„ ๋” ์‰ฝ๊ฒŒ ํ•ด๊ฒฐ ๊ฐ€๋Šฅํ•˜๋‹ค.
Gradle์€ Maven๋ณด๋‹ค ๋” ๋น ๋ฅด๊ณ  ํšจ์œจ์ ์œผ๋กœ ์„ค๊ณ„๋˜์–ด ๋Œ€๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•  ๋•Œ ์œ ์šฉํ•˜๋‹ค.


๐Ÿ” ๊ฒฐ๋ก !!

๊ฒฐ๋ก ์ ์œผ๋กœ Gradle๊ณผ Maven์€ ๋ชจ๋‘ ๋ณต์žกํ•œ ํ”„๋กœ์ ํŠธ์— ๊ธฐ์ˆ ์ ์œผ๋กœ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์ง€๋งŒ ์ผ๋ฐ˜์ ์œผ๋กœ Gradle์€ ์œ ์—ฐ์„ฑ, ์‚ฌ์šฉ์ž ์ง€์ • ์˜ต์…˜ ๋ฐ ์„ฑ๋Šฅ ์ด์ ์œผ๋กœ ์ธํ•ด ์ด๋Ÿฌํ•œ ํ”„๋กœ์ ํŠธ์— ๋” ์ ํ•ฉํ•˜๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋‘˜ ์‚ฌ์ด์—์„œ ๊ฒฐ์ •์„ ๋‚ด๋ฆฌ๊ธฐ ์ „์— ํ”„๋กœ์ ํŠธ์˜ ํŠน์ • ์š”๊ตฌ ์‚ฌํ•ญ๊ณผ ๊ธฐ๋ณธ ์„ค์ •์„ ํ‰๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•  ๊ฒƒ์ด๋‹ค.
๋‚˜๋Š” ์ด์ œ ์‹œ์ž‘ํ•˜๋Š” ์ž…์ž‘์œผ๋กœ ๊ทธ๋ƒฅ ๋ฌด์ง€์„ฑ Gradle ์“ธ ๊ฒƒ ๊ฐ™๋‹ค.
Maven -> ์˜›๋‚ ๊บผ
Gradle -> ์š”์ฆ˜๊บผ

0๊ฐœ์˜ ๋Œ“๊ธ€