๐๐ซ๐จ๐ฃ๐ž๐œ๐ญ๐ฌ/๐’๐ข๐ฅ๐ญ๐š๐ซ๐š๐ž

1. ์ด์ „ ์„ค๊ณ„์ปจํŠธ๋กค๋Ÿฌ์—์„œ memberId๋ฅผ ๋ฐ›์•„์™€์•ผ ํ•  ๊ฒฝ์šฐ, ๋ฉ”์„œ๋“œ ํŒŒ๋ผ๋ฏธํ„ฐ ์•ž์— @Auth ์–ด๋…ธํ…Œ์ด์…˜ ์ถ”๊ฐ€ArgumentResolver๊ฐ€ ์š”์ฒญ ํ—ค๋”์˜ Authorization ๊ฐ’์„ ์ถ”์ถœAuthorization ํ—ค๋” ๊ฐ’์ด null์ธ ๊ฒฝ์šฐ@Auth(required=true)์ด๋ฉด ์˜ˆ์™ธ ๋ฐ˜ํ™˜@Auth(required=false)์ด๋ฉด ์ปจํŠธ๋กค๋Ÿฌ ํŒŒ๋ผ๋ฏธํ„ฐ์— null๊ฐ’์„ ๋„˜๊ฒจ์คŒArgumentResolver๊ฐ€ ํ—ค๋”์— ๋‹ด๊ธด JWT๋ฅผ ๊ฒ€์ฆํ•˜๊ณ , ์œ ํšจํ•˜์ง€ ์•Š์œผ๋ฉด ์˜ˆ์™ธ ๋ฐ˜ํ™˜ ๊ตณ์ด ์ด๋ ‡๊ฒŒ ์„ค๊ณ„ํ•œ ๊ฑด ์šฐ๋ฆฌ ํ”„๋กœ์ ํŠธ์— ํšŒ์› ์—ฌ๋ถ€์— ๋”ฐ๋ผ ๋‹ค๋ฅธ ์ •๋ณด๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ๊ณต์šฉ API๊ฐ€ ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์ผ๋ฐ˜์ ์ด์ง€ ์•Š๊ณ  ์ดํ•ดํ•˜๊ธฐ ์–ด๋ ค์šด ์„ค๊ณ„๋ผ 1๋…„๋™์•ˆ ๊ณ ์น˜๊ณ  ์‹ถ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋Š”๋ฐ... ๋‹คํ–‰ํžˆ๋„ ์˜ฌํ•ด๊ฐ€ ๊ฐ€๊ธฐ ์ „์— ๋…ธํŠธ๋ถ ์•ž์— ๋‹ค์‹œ ์•‰์•˜๋‹ค๐Ÿ‘€ 2. ..
1. ์Šคํ”„๋ง ์‹œํ๋ฆฌํ‹ฐ๋ฅผ ์“ฐ์ง€ ์•Š์€ ์ด์œ  ํ•œ๋งˆ๋””๋กœ ๋งํ•˜์ž๋ฉด ๊ณผ๋„ํ•œ ์˜์กด์„ฑ ์ถ”๊ฐ€๋ผ๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค. ํ”„๋กœ์ ํŠธ์˜ ๊ทœ๋ชจ๊ฐ€ ์ž‘๊ณ  ์ง„ํ–‰ ๊ธฐ๊ฐ„๋„ ์งง์€ ์ƒํ™ฉ์—์„œ, JWT ๊ฒ€์ฆ๋งŒ์„ ์œ„ํ•ด Spring Security๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฑด ๊ณผํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์Šคํ”„๋ง ์‹œํ๋ฆฌํ‹ฐ ์—†์ด ArgumentResolver๋ฅผ ์ด์šฉํ•ด JWT ๊ฒ€์ฆ์„ ๊ตฌํ˜„ํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค. 2. ๋ฌด์—‡์„ ๊ตฌํ˜„ํ•  ๊ฑด๊ฐ€์š”? ์šฐ๋ฆฌ ์„œ๋น„์Šค์˜ API๋Š” ํฌ๊ฒŒ 2๊ฐ€์ง€๋กœ ๋‚˜๋‰œ๋‹ค. ํšŒ์› ์ „์šฉ API ๋น„ํšŒ์›๋„ ํ˜ธ์ถœ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ, ํšŒ์›๊ณผ ๋น„ํšŒ์›์—๊ฒŒ ๋‹ค๋ฅธ ๋‚ด์šฉ์„ ๋ณด์—ฌ์ฃผ๋Š” API ํšŒ์› ์ „์šฉ API์—์„œ๋Š” Authorization ํ—ค๋”๊ฐ€ ํ•„์ˆ˜์ ์ด์ง€๋งŒ, ๋น„ํšŒ์›๋„ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ API์—์„œ๋Š” Authorization ํ—ค๋”๊ฐ€ ํ•„์ˆ˜์ ์ด์ง€๋Š” ์•Š๋‹ค. ๋”ฐ๋ผ์„œ ์–ด๋…ธํ…Œ์ด์…˜์— required ์†์„ฑ์„ ์ถ”๊ฐ€ํ•˜์—ฌ, ๋น„ํšŒ์›๋„ ..
7์ฃผ์ฐจ๋Š” ๋ฆฌํ”„๋ ˆ์‹œ ๊ธฐ๊ฐ„์ด์—ˆ๊ธฐ ๋•Œ๋ฌธ์— 8์ฃผ์ฐจ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋Š” ํšŒ๊ณ ! 2023๋…„์ด๋ผ๊ณ  ์ผ๋‹ค๊ฐ€ ๋ถ€๋žด๋ถ€๋žด 2024๋กœ ๋ฐ”๊ฟจ๋‹ค๐Ÿ˜‚๐Ÿ˜‚ 1. ๋ฌด์Šจ ์ผ์ด ์žˆ์—ˆ๋‚˜์š”? (1) ํ”„๋กœํ•„ ์ด๋ฏธ์ง€ ๊ธฐ๋Šฅ ๊ตฌํ˜„ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€ ์—…๋กœ๋“œ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ–ˆ๋‹ค. ์ด๋ฏธ์ง€ ์—…๋กœ๋“œ๋Š” ์ด์ „์—๋„ ๊ตฌํ˜„ํ•ด๋ณธ ์  ์žˆ๋Š” ๊ธฐ๋Šฅ์ด์ง€๋งŒ, ๊ทธ ๋•Œ๋Š” ์ฝ”๋“œ๊ฐ€ ์—„์ฒญ ๋”๋Ÿฌ์› ๋‹ค. ๊ทธ๋ž˜์„œ ์ด๋ฒˆ์—๋Š” ๊ฐ€๋…์„ฑ ์ข‹์€ ์ฝ”๋“œ๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ๋…ธ๋ ฅํ–ˆ๋‹ค. ImageUtil๊ณผ Image๊ฐ์ฒด๋ฅผ ๋ถ„๋ฆฌํ•œ ๋‹ค์Œ, ์ด๋ฏธ์ง€ ์—…๋กœ๋“œ ๋ฐ ์‚ญ์ œ๋Š” ์œ ํ‹ธ์—์„œ, ๊ธฐํƒ€ ํŒŒ์ผ ํ™•์žฅ์ž ๋“ฑ์˜ ๋ฐ˜ํ™˜์€ ์ด๋ฏธ์ง€ ๊ฐ์ฒด์—์„œ ์ฒ˜๋ฆฌํ•˜๋„๋ก ๋งŒ๋“ค์—ˆ๋‹ค. (2) REST Assured๋ฅผ ์ด์šฉํ•œ E2E ํ…Œ์ŠคํŠธ ์ง„ํ–‰ MockMvc๋กœ๋งŒ ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋‹ค๊ฐ€, ์„œ๋ธ”๋ฆฟ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ํ•„์š”ํ•ด์ ธ์„œ REST Assured๋ฅผ ์ด์šฉํ•œ ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ–ˆ๋‹ค. MockMvc..
1. ๋„์ž… ๊ณ„๊ธฐ spring: servlet: multipart: max-file-size: 5MB spring.servlet.multipart.max-file-size ์„ค์ •์ด ์ œ๋Œ€๋กœ ์ ์šฉ๋๋Š”์ง€, 6MB์งœ๋ฆฌ ํŒŒ์ผ์„ ์—…๋กœ๋“œํ–ˆ์„ ๋•Œ ์ •์ƒ์ ์œผ๋กœ ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š”์ง€๋ฅผ ํ…Œ์ŠคํŠธํ•˜๊ณ  ์‹ถ์—ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด์„œ๋Š” ์„œ๋ธ”๋ฆฟ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋„์›Œ์•ผ ํ–ˆ์ง€๋งŒ, ๊ธฐ์กด์˜ MockMvc๋Š” ๊ฐ€์งœ ์„œ๋ธ”๋ฆฟ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋„์›Œ์ฃผ๊ธฐ ๋•Œ๋ฌธ์— ์ด๋Ÿฐ ์„ค์ •์— ๋Œ€ํ•œ ํ…Œ์ŠคํŠธ๋Š” ๋ถˆ๊ฐ€๋Šฅํ–ˆ๋‹ค. ๊ทธ๋ž˜์„œ RestAssured๋กœ End-to-End ํ…Œ์ŠคํŠธ๋ฅผ ์ž‘์„ฑํ•ด๋ณด๊ธฐ๋กœ ํ–ˆ๋‹ค. 2. REST Assured๋ž€? REST Assured๋Š” Java ๊ธฐ๋ฐ˜์˜ ์˜คํ”ˆ์†Œ์Šค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ, REST API ํ…Œ์ŠคํŠธ๋ฅผ ํŽธํ•˜๊ฒŒ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค€๋‹ค. REST Assured๋Š” ์•„๋ž˜์™€ ๊ฐ™์€ ์žฅ์ ์ด ์žˆ๋‹ค...
1. ๋ฌด์Šจ ์ผ์ด ์žˆ์—ˆ๋‚˜์š”?(1) ๋กœ๊ทธ์•„์›ƒ ๊ธฐ๋Šฅ ๊ตฌํ˜„๋กœ๊ทธ์ธ์— ๋กœ๊ทธ์•„์›ƒ๋งˆ์ € ๊ตฌํ˜„ ๋ฐฉ๋ฒ•์ด ๋‹ค์–‘ํ•  ์ค„์€ ๋ชฐ๋ž๋‹ค๐Ÿฅฒ ์šฐ๋ฆฌ ์„œ๋น„์Šค๋Š” ์•ก์„ธ์Šค ํ† ํฐ์œผ๋กœ JWT๋ฅผ ์‚ฌ์šฉํ•˜๊ณ , ๋ฆฌํ”„๋ ˆ์‹œ ํ† ํฐ์€ DB(๋ ˆ๋””์Šค)์— ์ €์žฅํ•˜๋Š” ๋ฐฉ์‹์„ ์‚ฌ์šฉ์ค‘์ด์—ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ๋กœ๊ทธ์•„์›ƒ์„ ์ง„ํ–‰ํ•˜๋ฉด ํ† ํฐ์„ ๋ฌดํšจํ™”ํ•  ํ•„์š”๊ฐ€ ์žˆ์—ˆ๋‹ค. ๋ฆฌํ”„๋ ˆ์‹œ ํ† ํฐ์„ ๋ฌดํšจํ™”ํ•˜๋Š” ๊ฑด DB์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œํ•˜๋ฉด ๋˜๋Š”๋ฐ, ์•ก์„ธ์Šค ํ† ํฐ์€ JWT๋ฅผ ์‚ฌ์šฉ์ค‘์ด๋ผ ์„œ๋ฒ„์—์„œ ํ† ํฐ์„ ์ œ์–ดํ•  ์ˆ˜ ์—†๋‹ค๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๋‹ค. ๊ฒฐ๋ก ๋ถ€ํ„ฐ ๋งํ•˜์ž๋ฉด ๋ฆฌํ”„๋ ˆ์‹œ ํ† ํฐ๋งŒ ์‚ญ์ œํ•˜๊ณ , ์•ก์„ธ์Šค ํ† ํฐ์˜ ์‚ญ์ œ๋Š” ํด๋ผ์ด์–ธํŠธ ์ธก์—์„œ ์ง„ํ–‰ํ•˜๋„๋ก ํ–ˆ๋‹ค. ๋ฌผ๋ก  ๋กœ๊ทธ์•„์›ƒ ์‹œ ์•ก์„ธ์Šค ํ† ํฐ์„ ๋ธ”๋ž™๋ฆฌ์ŠคํŠธ์— ์ €์žฅํ•˜์—ฌ, ์š”์ฒญ์ด ๋“ค์–ด์˜ค๋ฉด ๋ธ”๋ž™๋ฆฌ์ŠคํŠธ ๋“ฑ์žฌ ์—ฌ๋ถ€๋ฅผ ๊ฒ€์‚ฌํ•˜๋Š” ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ์—ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด๋ ‡๊ฒŒ ๋˜๋ฉด ์š”์ฒญ์ด ๋“ค์–ด์˜ฌ ๋•Œ๋งˆ๋‹ค ์•ก์„ธ์Šค ..
gorapaduckoo
'๐๐ซ๐จ๐ฃ๐ž๐œ๐ญ๐ฌ/๐’๐ข๐ฅ๐ญ๐š๐ซ๐š๐ž' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก