๐ฅ ํ๋ก์ ํธ/๋ผ๊พธ๋ผ๊พธ4 [์ค๊ณ] Image ์ ์ก๊ณผ ๋ฐ์ดํฐ ์ ์ก API ๋ถ๋ฆฌ ํ์ฌ ์ํฉ ๋ณธ ํ๋ก์ ํธ๋ ๋ฐ์ดํฐ JSON๊ณผ ์ด๋ฏธ์ง(form-data)๋ฅผ ํ๋์ API๋ฅผ ํตํด ์ ์กํฉ๋๋ค. ๋ฌธ์ ์ ๋ณดํต ์ด๋ฏธ์ง์ JSON๋ฐ์ดํฐ๋ฅผ ํจ๊ป ๋ณด๋ด์ง ์์ต๋๋ค. API๋ฅผ ์ ์กํ ๋๋ ๋ณดํต content/type์ application/json์ผ๋ก ์ ์กํ๋๋ฐ ์ด๊ฒ์ multipart/formdata ๋ฐฉ์์ด ์๋๊ธฐ ๋๋ฌธ์ ๋๋ค. ํด๊ฒฐ ๋ฐฉ๋ฒ ์ด์ ๋ฐ๋ผ, ๋ฐฉ๋ฒ์ 2๊ฐ์ง ์ธ๋ฐ ๋ถ๋ฆฌํด์ ์์ฒญํ๊ธฐ ์๋ฒ๋ ์ด๋ฏธ์ง๋ฅผ ์ ์ฅํ๊ณ , ์ ์ฅ๋ ์ด๋ฏธ์ง์ id(๋๋ ํ์ผ๋ช )๋ฅผ ํด๋ผ์ด์ธํธ์ ์ ์กํฉ๋๋ค. ํด๋ผ์ด์ธํธ๋ ์ด๋ฏธ์ง์ id์ ์ ์กํ ๋ฐ์ดํฐ๋ฅผ application/json์ผ๋ก ์ ์กํฉ๋๋ค. base64 ์ธ์ฝ๋ฉ ์ด๋ฏธ์ง๋ฅผ base64๋ก ์ธ์ฝ๋ฉํด์ application/json์ผ๋ก ์ ์กํ ๋ฐ์ดํฐ์ base64๋ก ์ธ์ฝ๋ฉ๋ ์ด๋ฏธ์ง๋ฅผ ํจ๊ป.. 2023. 8. 13. [์ค๋ฅ] multipart์์ PUT์ด ๋จนํ์ง ์๋ ์ค๋ฅ ๋ฌธ์ ์ํฉ PUT ๋ฐฉ์์ผ๋ก multipart๋ฅผ ๋ณด๋๋๋ฐ, ๊ธฐ๋ฅ ์์ฒด๋ ์ ๋์๊ฐ์ผ๋ ํ ์คํธํ ๋ ์๊พธ ์ค๋ฅ๊ฐ ์๊น ๋ฐ์ ์์ธ ๊ธฐ๋ณธ์ ์ผ๋ก multipart ์์ฒญ์ GET/POST๋ง ์ง์ํ๋ค ํด๊ฒฐ ๋ฐฉ๋ฒ POST๋ก ์์ ํ์๋๋ ๋์๊ฐ๋ค! ๋ฆฌํฉํ ๋ง ์ ์ด์ API ์ค๊ณ ์์น์๋ ์กฐ๊ธ ์ด๊ธ๋ ๊ฒ ๊ฐ์์ ๊ฒธ์ฌ๊ฒธ์ฌ ์์ ํ๋ค PUT์ ํน์ ๋ฆฌ์์ค๋ฅผ ๊ฐฑ์ ํ๋ ์ญํ ์ ํ๋๋ฐ multipart๋ก ๋ณด๋ด๋ฉด ํ๋ฒ์ ์ฌ๋ฌ ๋ฆฌ์์ค๋ฅผ ์ฒ๋ฆฌํ๋ฏ๋ก ์ด๋ฏธ์ง ๊ฐ์ ๊ฒฝ์ฐ๋ฅผ PUT์ผ๋ก ์ฒ๋ฆฌํ๋ ค๋ฉด ์ด๋ฏธ์ง๋ฑ์ ๋ํ ๋ฆฌ์์ค URI์ ๋ณ๋์ PUT ์์ฒญ์ ๋ณด๋ด์ ๊ฐฑ์ ํ๊ณ ์ผ๋ฐ์ ์ธ ํผ์ ๋ฐ๋ก ์ฒ๋ฆฌํด์ผ ํ๋ค. ๋ผ๊พธ๋ผ๊พธ profileUpdate์์ ํ URI๋ก PUT์ ๋ณด๋ด์ ์ฌ๋ฌ ๋ฆฌ์์ค(ํ์ ์ ๋ณด + ์ด๋ฏธ์ง)๋ฅผ ํ๊บผ๋ฒ์ ์ฒ๋ฆฌํ๋ ค๊ณ ํ์ผ๋ฏ๋ก PUT์ด ์ ํฉ์น .. 2023. 8. 13. [์ถ์ธก] ๊ธฐ์กด Spring Security๋ฅผ ์ ์ฉํ ์ํฉ์์ OAuth2 ์ ์ฉ์ด ์ ๋จนํ๋ ์ด์ ์ถ์ธก ๋ฌธ์ ์ํฉ ์์ฒด ํ์๊ฐ์ ์์ jwt refresh & access token์ ์ง์ ๋ง๋ค์ด์ ์ ์ฉํ ์ํฉ ์ด ์ํฉ์์ oAuth2 ์ ์ฉ ์๋ํ์์ผ๋ ์คํจ ์์ ์๋ง ๋ฉํ ๋๊ป์ ์๋ ค์ฃผ์ ๊ฑด๋ฐ ์ฐ๋ฆฌ ํ๋ก์ ํธ๋ ๋น์ทํ ์ํฉ์ธ ๊ฒ ๊ฐ์ ๊ณต์ ํฉ๋๋ค ์ ์์ ์ธ ๋ฐฉ๋ฒ) jwk/jws๋ jwt์ ํจ๊ป ์ ํ ํฐ ํ์ทจํ๋ฉด ๋ง์๋๋ก ์ธ ์ ์๊ธฐ ๋๋ฌธ์ signature ๋ฃ์ด์ ์ํธํ ํ ๋น๋์นญ์ผ๋ก ๊ฒ์ฆํจ (์ง์ง ์๋ฒ์์ ๋ณด๋ธ ๊ฒ์ธ์ง ํ์ธ) ์์ ๋ก๊ทธ์ธ์ด๋ ๊ฐ์ด ์ธ ๋์ ๋ฌธ์ ์ ์ผ๋ฐ ๋ก๊ทธ์ธ ์ spring์์ ์ฐ๋ token์ด๋ ์์ ๋ก๊ทธ์ธ ์ ๋์ค๋ token์ด ๋ถ๋ฆฌ๋์ด ์์ ๊ทธ๋ฌ๋ spring ์์ฒด์์ ์ด 2๊ฐ๋ฅผ ํ๋์ token์ผ๋ก ํฉ์ณ์ clientํํ ๋ณด๋ด์ค(๋์ด ์๋ก ๋ค๋ฅธ ์ ์ ๋ก ์กํ๋ ๊ฒ์ ๋ง๊ธฐ ์ํจ) ⇒ โจ๊ทผ๋ฐ ๋ด.. 2023. 8. 13. [์ค๋ฅ] WebMvcTest์์ body๊ฐ์ด empty์ธ ๊ฒฝ์ฐ ๋ฌธ์ ์ํฉ ProfileUpdateController์์ status๋ ํ์ธ๋๋๋ฐ body์์ ์๊พธ null๊ฐ์ด ๋ฐ์ํ๋ ์ค๋ฅ ๋ฐ์ String์ ๋ฐํ๊ฐ์ผ๋ก ํ๋ฉด ์ ๋๋๋ฐ dto์ body์์๋ง ๋ฌธ์ ๊ฐ ์๊ฒจ์ ๊ฐ์ด ์ฌ๋ฌ๋ชจ๋ก ๊ณ ๋ฏผํ๋ค. Multipart๋ฅผ ์ธ์๋ก ๋ฐ๋ ๊ฒ์ด๋ผ multipart์ ๋ฌธ์ ์ธ ์ค ์์์ผ๋.... ๋ฐ์ ์์ธ ProfileUpdateController๋ก ์ ๋ฌ๋ JSON์ด ๋ง๋ค์ด๋ธ Response ๊ฐ์ฒด๊ฐ ์ฐ๋ฆฌ๊ฐ ์์ํ ๊ฒ๊ณผ ๋ค๋ฅธ ๊ฐ์ฒด๋ผ ๋ฐ์ํ๋ ๋ฌธ์ ์๋ค (Multipart๋ 1๋ ์๊ด์์๋ค^^) https://velog.io/@devmizz/Spring-WebMvcTest%EC%97%90%EC%84%9C-Response-Body%EA%B0%80-Empty%EC%9D%BC-%EB%95%8C 2023. 8. 13. ์ด์ 1 ๋ค์