๐ Spring Framework/Spring Project45 ใํ์ผ ์ ๋ก๋/๋ค์ด๋ก๋ ๋ฐ ํ ์คํธใ ์ด๋ฒ ์ฃผ์ Sonarqube๋ฅผ ๊ณต๋ถํ๊ณ ์ ์ฉํ๊ธฐ ์ ์ ์ฒด์ ์ธ ์ฝ๋๋ฅผ ๋ค์ ๊ฒํ ์ค์ด์๋ค. ๋นผ๋์ ํ์์ ์ธ ๊ธฐ๋ฅ์ด ์๋ค๋ ๊ฒ์ ์๊ฒ ๋์๋ค. ์ํ ํ ์ด๋ธ์๋ ์ด๋ฏธ์ง ํ์ผ ์ด๋ฆ ์นผ๋ผ์ด ์กด์ฌํ๋๋ฐ ์ด๋ฅผ ๊น๋ฐํ๋ ๊ฒ์ด๋ค. ํ์ผ ์ ๋ก๋, ๋ค์ด๋ก๋ ๊ธฐ๋ฅ์ ๊ธํ๊ฒ ์ ์ฉํ๊ฒ ๋์๊ณ , ์ด ๊ณผ์ ์ ๊ธฐ๋ก์ผ๋ก ์์ฑํ๊ฒ ๋ค. ํ์ผ ์ ๋ก๋ ํ์ผ์ ๋ฑ๋กํ๋๋ฐ ํ์ํ ํ์ ์ผ๋ก ์คํ๋ง์์๋ MultipartFile ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํ๋ค. ์ด๋ฅผ ํตํด ํ์ผ ์ ๋ก๋ ๋ฐ ๋ค์ด๋ก๋๋ฅผ ์ฝ๊ฒ ๊ตฌํํ ์ ์๋ค. ํ์ผ ์ ๋ก๋๋ฅผ ์ด์ฉํ๋ ๋ด API๋ ์ํ ์ถ๊ฐ์ ์์ ์ด๋ค. ๋จผ์ ํ์ผ ์ ๋ก๋ํ ์์น๋ฅผ ๋ด๋ถ ๊ฒฝ๋ก์ ์ธ๋ถ ๊ฒฝ๋ก์ค ๊ณ ๋ฏผ์ ํ๋ค. ์ ๋ฒ ํ๋ก์ ํธ ๋๋ ํ๋ก์ ํธ ๋ด๋ถ๋ก ์ง์ ํ์ง๋ง, ์ด๋ ๊ฒ ํ๊ฒ ๋๋ฉด ๋ฐฐํฌ ์ ์ด๋ฏธ์ง ๊ฒฝ๋ก๋ฅผ ๋ชป ์ฐพ์ ์ ์๋ค๊ณ ํ๋ค. .. 2022. 7. 1. ใ์ปจํธ๋กค๋ฌ ๋จ์ ํ ์คํธใ https://github.com/GroovyArea/MyChickenBreastShop GitHub - GroovyArea/MyChickenBreastShop: ChikenBreastShop API with Spring boot ChikenBreastShop API with Spring boot. Contribute to GroovyArea/MyChickenBreastShop development by creating an account on GitHub. github.com ์ ๋ฒ ์ฃผ์ ์ฒ์์ผ๋ก ๋จ์ ํ ์คํธ๋ฅผ ๊ณต๋ถํ๊ณ ์ ์ฉ์ํค๋ฉฐ Spring REST Docs๋ฅผ ์ด์ฉํด ์ ์ฉ์์ผฐ๋ค. ์ฒ์ ๋จ์ ํ ์คํธ๋ฅผ ์์ฑํ๋ค ๋ณด๋ ๋ฏธํกํ ๋ถ๋ถ์ด ์ข ์์๋ค. ๊ทธ ๋ถ๋ถ์ ์์ ํด๊ฐ๋ฉฐ ๋ค๋ฅธ ์ปจํธ๋กค๋ฌ์ ๋จ์ ํ ์คํธ๋ฅผ ์ถ๊ฐ๋ก ์์ฑ.. 2022. 6. 23. ใํ ์คํธ ์ฝ๋ & Spring REST Docsใ ๊ฐ์ธ ํ๋ก์ ํธ๋ ์์ฑ์ด ๋์๋ค. ์ด์ ๋ ์ธ๋ถ์ ์ธ ๋ํ ์ผ์ ์ ๊ฒฝ์ ์ฐ๋ฉฐ ๋ฆฌํฉํฐ๋ง๊ณผ ๊ทธ์ ํ์ํ ๊ฐ๋ ์ ๋ฆฌ๋ฅผ ํ๋ฉฐ ํ๋ก์ ํธ์ ์ ์ฉ์ํค๊ณ ์๋ค. REST API๋ฅผ ์ฒ์ ์ค๊ณํด ๋ณด์๋๋ฐ, ๋ถ์กฑํ ์ ์ด ๋ง์์ง๋ง ์ ์ ํ ๊ฒฝํ์ด๊ณ ์งง์ ๊ธฐ๊ฐ ๋ด์ ๋ฐฐ์ด ๊ฒ์ด ๋ง์ ์ค๊ณ ๊ณผ์ ์ด์๋ค. API๋ฅผ ์ค๊ณํ๋ฉด ๊ทธ์ ๋ง๋ ๋ช ์ธ๊ฐ ํ์ํ๋ฐ, ๋ณดํต Swagger๋ Spring REST Docs ํ๋ ์์ํฌ๋ฅผ ์ด์ฉํ๋ค๊ณ ํ๋ค. Swagger๋ฅผ ์ฌ์ฉํ๋ฉด ์ ๋ ธํ ์ด์ ์ ์ด์ฉํด ํธํ๊ฒ ๋ฌธ์๋ฅผ ์์ฑํ ์ ์์ง๋ง, ํ๋ก์ ํธ์ ํ์ค์ฑ๊ณผ ์ ํ์ฑ์ ๋ท๋ฐ์นจํ๊ธฐ ์ํด์๋ ํ ์คํธ ์ฝ๋ ์์ฑ์ด ํ์๋ผ๊ณ ์๊ฐํ๊ธฐ ๋๋ฌธ์ Spring REST Docs๋ฅผ ์ด์ฉํ๊ธฐ๋ก ์๊ฐํ๋ฉฐ ์ ์ฉํด๋ณด์๋ค. ํ ์คํธ ์ฝ๋ ํฌ๊ฒ ๋จ์ ํ ์คํธ์ ํตํฉ ํ ์คํธ๊ฐ ์๋ค. ํตํฉ ํ ์คํธ ๋จ์ ํ ์คํธ.. 2022. 6. 20. OutBox Pattern & Saga Pattern & Transaction ์ง๋๋ฒ ํฌ์คํ ์ ์ดํ๋ก 3์ผ๊ฐ ํ ์คํธ ์ฝ๋์ ๊ดํ ๊ณต๋ถ๋ฅผ ํ๋ฉฐ ๋ฆฌํฉํฐ๋ง์ ์งํํ๋ค. ๋ฐ์ดํฐ ๋ถ์ฐ ํ๊ฒฝ์์์ ํธ๋์ญ์ ์ ๊ณ ๋ ค๋ ์ถฉ๋ถํ ์ค์ํ ์ค๊ณ ๊ฐ๋ค. ๊ทธ ๋ฆฌํฉํฐ๋ง ๊ณผ์ ์ ์ ๋ฆฌํด๋ณด๊ฒ ๋ค. https://sweeeetgoguma.tistory.com/entry/%E3%80%8COutBox-Pattern%E3%80%8D-%ED%99%9C%EC%9A%A9 ใOutBox Patternใ ํ์ฉ https://github.com/GroovyArea/MyChickenBreastShop/wiki/Version-1 GitHub - GroovyArea/MyChickenBreastShop: ChikenBreastShop API with Spring boot ChikenBreastShop API with Spring boot... 2022. 6. 13. ใOutBox Patternใ ํ์ฉ https://github.com/GroovyArea/MyChickenBreastShop/wiki/Version-1 GitHub - GroovyArea/MyChickenBreastShop: ChikenBreastShop API with Spring boot ChikenBreastShop API with Spring boot. Contribute to GroovyArea/MyChickenBreastShop development by creating an account on GitHub. github.com ํ๋ก์ ํธ ์ด๊ธฐ ์์ฑํ Wiki ๋ฌธ์์์ ๊ณํํ ๊ธฐ๋ฅ์ ๋ค ๊ตฌํ์ด ๋์๋ค. ๊ฒ์ํ, ๋ฐฐ์ก, ์ฑํ ๊ธฐ๋ฅ ๊ฐ์ ๊ฒฝ์ฐ๋ ๋ถ์์ ์ด๋ฏ๋ก ๋ค์ํ ๊ธฐ๋ฅ์ ์๊ฒ ๊ตฌํํ๋ ๊ฒ๋ณด๋ค ๊ธฐ๋ฅ ํ๋๋ฅผ ๊ตฌ์ฒด์ ์ผ๋ก ๊ณ ๋ คํ๋ฉฐ ๊ตฌํํ๋ .. 2022. 6. 10. 2022.06.07 ใํ๋ก์ ํธ ์ค๊ฐ ์ ๊ฒใ ์ด๋ฒ 4์ผ ๊ฐ ํ๋ก์ ํธ๋ฅผ ์ง์ค ์๊ฒ ํ๋๋ผ ๋ธ๋ก๊ทธ ๊ธ ์์ฑ๋ ๋ชปํ๊ณ ์ฝํ ์ค๋น๋ ์ ๋๋ก ๋ชปํ๋ค ใ ใ ํ๋ก์ ํธ ์ด๊ธฐ์๋ ์๋์ ๋ํ ๋ฐ์ฑ์ ๋ง์ด ํ์๋๋ฐ, ์๊ฐ์ด ์ง๋๊ณ ํ๋ก์ ํธ์ ํ์ด ์กํ์๋ก ๊ทธ ๋ฐ์ฑ์ ํฐ ์ค์ฐ์ด๋ผ๋ ๊ฒ์ ์๊ฒ ๋์๋ค. ํ๋ฆฌํฐ ์๊ณ , ํด๋ฆฐ ํ ์ฝ๋๋ฅผ ์์ฑํ๋ ค๋ฉด ๊ฝค๋ ๊ณต๋ค์ด๋ฉฐ ์๊ฐ์ ํฌ์ํด์ผ ํ๋ค๋ ๊ฒ์ ๊นจ๋ฌ์๋ค. ์ฆ, ๋ ํจ์จ์ ์ธ ์๊ฐ ๋ถ๋ฐฐ๊ฐ ๊ด๊ฑด์ด๋ค. ์ด์ ํ๋ก์ ํธ์์ ๊ณํํ ๊ธฐ๋ฅ์ ๊ฑฐ์ ๊ตฌ์ฑ์ด ๋ ์ํฉ์ด๋ค. ๊ฑฐ์ง 1๋ฌ์ด ๊ฑธ๋ ธ๋ค. ๊ณํํ ๊ฒ์ ๋นํด ๋ฆ์๋ค๊ณ ์๊ฐํ์ง๋ง ๋ณธ๊ฒฉ์ ์ธ ๋ฆฌํฉํฐ๋ง์ ์ ์ฉํด๋ณผ ์๊ฐ์ด๋ค. ์ฒ์์ผ๋ก ํผ์์ ์ ๋๋ก ๋ ํ๋ก์ ํธ๋ฅผ ํ๊ธฐ ๋๋ฌธ์ ๋ ์ ์ฐฉ์ด ๊ฐ๊ธฐ๋ ํ๋ค. ์ด์ ๋ฐ๋ ์ ์๊ณ , ๊ฐ ๊ธธ์ด ํ๋ํ ํ ์ง๋ง ์ด๋ค๋ณด์~ ์ง๋ 4์ผ ๊ฐ ๊ตฌํ ๋ชฉ๋ก ์นด์นด์ค ํ์ด REST AP.. 2022. 6. 7. 2022.06.02 ใDB ๋์์ฑ ๋ฌธ์ ใ ์๋ฐ ๊ธฐ๋ฐ ์น ํ๋ก๊ทธ๋จ์ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ฉํฐ์ค๋ ๋ฉ์ ๊ธฐ๋ฐ์ผ๋ก ํ๊ธฐ ๋๋ฌธ์, ๋์์ฑ ๊ด๋ จ ๋ฌธ์ ๋ฅผ ์ ํด๊ฒฐํด์ผ ํ๋ค๊ณ ๋ค์๋ค. ์ด๋ฒ์ ๋ด๊ฐ ํ๋ ์ผํ๋ชฐ ํ๋ก์ ํธ์์๋ ๊ทธ ์ด์๊ฐ ๋ฑ ํฐ์ก๋ค. ์๋ฅผ ๋ค์ด ๋ช ๋ง ๋ช ์ด ํ์ ๋ ์ฌ๊ณ ์ ์ํ์ ์ฃผ๋ฌธํ๋ ค๊ณ ํ ๋? ์๋ง์ ๋ฉํฐ์ค๋ ๋๋ ๋ฐ์ดํฐ์ ์ฌ๊ณ ๋์ ์กฐํํ๋ฉฐ ์ฌ๊ณ ๊ฐ ๋จ์ด์ก์ผ๋ฉด ์์ธ๋ฅผ ๋ฐ์์ํค๋ฉด ๋๋ค. ํ์ง๋ง ๋์์ ์ ๊ทผํ๋ฉด? ์ด๊ฑฐ ๋๊ฐํ๋ค. ์ด ๋ฌธ์ ์ ๋ํ ๊ณ ์ฐฐ์ ์์ฑํ๊ฒ ๋ค. DB ๋์์ฑ ๋ฌธ์ ๋์์ DB๋ฅผ ์กฐํํ ๋๊ฐ ๋ฌธ์ ์ด๋ค. ๋ด๊ฐ ์ฌ์ฉํ๋ DBMS๋ Mysql Mysql์ ๊ธฐ๋ณธ์ ์ผ๋ก ํธ๋์ญ์ ์ ๊ฒฉ๋ฆฌ ์์ค์ผ๋ก Level 2 Repeatable Read๋ฅผ ์ฌ์ฉํ๊ณ ์๋ค. ์ธ๋ ์์ญ์ ํตํ ๋ค์ํ ๋ฒ์ ๋ณ MVCC๋ฅผ ํตํด ๋ฒ์ ์ ๋ง๋ ๊ฐ์ ์กฐํํ ์ ์๋ค. ํ์ง๋ง ๋ชจ๋ .. 2022. 6. 2. 2022.06.01 ใ๊ฒฐ์ API - Ver.2ใ ์ง๋๋ฒ ํฌ์คํ ์ ์ด์ด ์์ฑํ๊ฒ ๋ค! https://sweeeetgoguma.tistory.com/entry/20220529-%E3%80%8C%EA%B2%B0%EC%A0%9C-API%E3%80%8D 2022.05.29 ใ๊ฒฐ์ APIใ ์ฅ๋ฐ๊ตฌ๋ crud ์์ ํ ๊ฒ์ ์์ ๋ฐ ํ ์คํธ๋ฅผ ์ด๋ฒ ์ฃผ์ ๋๋ด๊ณ ๋์, ๋ค๋ฆ๊ฒ ๊ฒฐ์ API๋ฅผ ์ค๊ณํ๊ธฐ ์์ํ๋ค. ์นด์นด์ค ํ์ด API๋ฅผ ์ฌ์ฉํด์ ํด๋ณด๋ ค๊ณ ํ๋๋ฐ, ์๊ฐ๋งํผ ์ฝ์ง ์์๋ค. ์ด๋์ ๋ณธ ๊ฑด๋ฐ sweeeetgoguma.tistory.com ์นด์นด์คํ์ด Rest API๋ฅผ ์ด์ฉํด ๊ฒฐ์ ์ค๋น์ ํ์ํ ๊ฐ์ฒด๋ฅผ ์ค๊ณํ๋ ๊ฒ๊น์ง ์๋ฃํ๋ค. ์นด์นด์ค ํ์ด ํ๋ก์ธ์ค์ ๋ฐ๋ผ ์ค๋น์ ๊ฒฐ์ ๋ฐ ์น์ธ์ ์ํ ํต์ ๊ฐ์ฒด๋ฅผ ์์ฑํด์ผ ํ๋ค. ์ด ๊ณผ์ ์์์ ์๋ง์ ์ฝ์ง์ด ์์๋ค. ์ฌ์ค ์ฝ์ง์ด๋ผ๊ธฐ๋ณด๋ค.. 2022. 6. 1. 2022.05.29 ใ๊ฒฐ์ APIใ ์ฅ๋ฐ๊ตฌ๋ crud ์์ ํ ๊ฒ์ ์์ ๋ฐ ํ ์คํธ๋ฅผ ์ด๋ฒ ์ฃผ์ ๋๋ด๊ณ ๋์, ๋ค๋ฆ๊ฒ ๊ฒฐ์ API๋ฅผ ์ค๊ณํ๊ธฐ ์์ํ๋ค. ์นด์นด์ค ํ์ด API๋ฅผ ์ฌ์ฉํด์ ํด๋ณด๋ ค๊ณ ํ๋๋ฐ, ์๊ฐ๋งํผ ์ฝ์ง ์์๋ค. ์ด๋์ ๋ณธ ๊ฑด๋ฐ ๋ง๋ค์ด์ง API๋ฅผ ๊ฐ์ ธ์์ ์ฐ๋ ๊ฒ๋ ๋ฅ๋ ฅ์ด๋ผ๊ณ ..ใ ใ ๊ทธ๋๋ ํด์ผ์ง ์ด์ฉ๊ฒ ๋. ์นด์นด์ค ํ์ด API ๋ฌธ์๋ฅผ ๋ณด๋ ๋๊ฒ ๋ค์ํ API๋ฅผ ์๊ฐํด ๋์๋ค. ๊ฒฐ์ ์์ฒญ๋ ๋ณด์์ ์๋ฒ๋ฅผ ํตํด ์์ฒญ์ ํด์ผ ๋๋ค๊ณ ํ๋ค. ๊ทธ๋ฆฌ๊ณ ๋๊ฒจ ์ฃผ๊ณ ๋ฐ๋ ํ๋ผ๋ฏธํฐ๋ ๊ต์ฅํ ๋ง๋ค. ์ค๊ฑฐ๋๋ฅผ ์ํด ๋ง๋ค์ด์ง API๋ผ ํ์คํ ๋ค๋ฅด๊ธด ํ๋ค. ๊ฐ์ธ์ ์ธ ํ๋ก์ ํธ ์์ค์์ ํ ์คํธ ๊ฒฐ์ ๋ฅผ ์ํด ํ์ํ ๋ฐ์ดํฐ๋ฅผ ์ถ๋ฆฌ๋ ์์ ์ ์ฐธ ๊ณจ์น ์ํ ์ผ์ธ ๊ฒ ๊ฐ๋ค. ์ผ๋จ ๊ฒฐ์ ์์ฒญ ๋ถํฐ ์์ํ๊ธฐ๋ก ๊ฒฐ์ ํ๋ค. ๋ด๊ฐ ์ค๊ณํ ํ๋ก์ ํธ์์๋ ํฌ๊ฒ ๋ณด๋ฉด ๋ ๊ฐ์ง ์ข .. 2022. 5. 29. 2022.05.28 ใ์ฟ ํค ์์ ใ ์ฅ๋ฐ๊ตฌ๋ API๋ฅผ ์ฒ์ ๊ตฌํํด๋ณด๋ ์ฟ ํค๋ก ํ๋ค๊ฒ ์งฐ์๋ค. ์ค๋ ์ฃผ๋ฌธ API๋ฅผ ๊ตฌํํ๋ ค๊ณ ์นด์นด์คํ์ด ๊ด๋ จ API ํ์ ๋ฐ ๊ตฌ์์ ํ๋ ๋์ค ์ฅ๋ฐ๊ตฌ๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง๊ณ ๊ฒฐ์ ํ๋ ๊ฒฝ์ฐ๋ฅผ ๋ ์ฌ๋ ธ๋ค. ๋ค์ ํ๋ฒ ์ฅ๋ฐ๊ตฌ๋ API ๋์์ด ์ ๋๋์ง ํฌ์คํธ๋งจ์ผ๋ก ํ์ธ์ ํ๋ ๋์ค ์ด์ํ ์ฟ ํค ์๋ฌ๊ฐ ๋ฐ์ํ๋ ๊ฒ์ ๋ฐ๊ฒฌํ ์ ์์๋ค.. ๋ค์ ํ๋ฒ ์ ๊ฒ์ ํตํด ์ฝ๋ ์์ ์ ํ๋ฉฐ ๋จ๋ฒ์ ์๋ฒฝํ ์ฝ๋๋ฅผ ์์ฑํ๋ค๋ ์๋ง์ฌ ๋๊ผ๋ ์์ ์ ๋ฐ์ฑ์ ํ๊ฒ ๋์๋ค..ใ ใ ๋ฌธ์ ์ ์ฅ๋ฐ๊ตฌ๋ ์ํ ์ถ๊ฐ๊ฐ ๋์ง ์๋๋ค ์ฟ ํค๊ฐ ๋ค์ค์ผ๋ก ์์ฑ๋๋ค => ์ด ๋ ๊ฐ์ง ๋ฌธ์ ๊ฐ ์ ์ผ ์ปธ๋ค ๊ธฐ์กด ์ฝ๋ ์ฅ๋ฐ๊ตฌ๋ ์ฟ ํค๋ฅผ ์์ ํ์ฌ response ๊ฐ์ฒด์ ์ฝ์ ํ๋ค. ๋ฌธ์ ์๋ก์ด ์ฟ ํค๊ฐ ๊ฐ์ Key๋ฅผ ๊ฐ์ง ๊ฐ์ฒด๊ฐ ์์ฑ๋์ด ์ ์ฅ๋๋ค. => ๋ด๊ฐ ์ํ ๊ฑด ๊ธฐ์กด ์ฟ ํค๋ฅผ .. 2022. 5. 28. 2022.05.26 ใํธ๋ํฝ์ด ๋ชฐ๋ ธ์ ๊ฒฝ์ฐใ ์ด๋ฉ์ผ์ ํตํด ์ธ์ฆ ๋ฒํธ๋ฅผ ์ ์กํ๋ ๋ฐฉ์์ ๋งค์ฐ ๋๋ฆฌ๋ค. ์๋ฒ ์ฌ์ฉ์๊ฐ ๋์ด๋ ์๋ก ํธ๋ํฝ์ด ๋ง์ด ๋ชฐ๋ ค ์ธ์ฆ ๋ฒํธ๋ฅผ ์ ์กํ๋ ์๊ฐ์ด ๋ฌด์ง์ฅ ๋์ด๋ ๊ฒ์ด๋ค. ์ด๋ฌ๋ฉด ์ ๋๋ค. ๊ทธ๋์ ์ฐพ์๋ณด์๋ค. ํธ๋ํฝ์ด ๋ชฐ๋ ธ์ ๊ฒฝ์ฐ์๋ ์ด๋ค ์์ผ๋ก ํด๊ฒฐ์ ํ๋์ง? ๋๊ธฐ์ ๋น๋๊ธฐ ๋ฐฉ์์ด ์๋ค. ๋๊ธฐ๋ ์ฒซ ํ๋ก์ธ์ค๊ฐ ์๋ฃ๋์ด์ผ ๋ค์ ํ๋ก์ธ์ค๋ก ๋์ด๊ฐ๋ ๋ฐฉ์์ด๊ณ , ์๋ฃ ์ฌ๋ถ์ ์๊ด์์ด ๋ค์ ํ๋ก์ธ์ค๋ฅผ ์์ฒญํ๊ฑฐ๋ ์คํํ๋ ๊ฒ์ด ๋น๋๊ธฐ ๋ฐฉ์์ด๋ค. ์ด๋ฉ์ผ ์ ์ก์ ์ด ๋น๋๊ธฐ ๋ฐฉ์์ ์ ์ฉํด ๋ณด๊ณ ์ ํ๋ค. Async Config ์คํ๋ง์์๋ @Async๋ฅผ ํตํด ๋น๋๊ธฐ ๋ฐฉ์์ ์ฝ๊ฒ ๊ตฌํํ ์ ์๋ค. configuration์ ํตํด ์ค๋ ๋์ ๊ฐ์๋ฅผ ์ปค์คํฐ ๋ง์ด์ง ์์ผฐ๋ค. Async ์ ์ฉ ๋น๋๊ธฐ ๋ฐฉ์์ผ๋ก ๋์ํ๊ธธ ๋ฐ๋ผ๋ ๋ฉ์๋์ ์ ๋ ธํ ์ด์ ์ ์ .. 2022. 5. 26. 2022.05.25 ใEmail ์ธ์ฆใ ์ด์ฌํ ํ๋ก์ ํธ๋ฅผ ํ๋ค๊ฐ ์ด๊ธฐ ๊ตฌ์ํ wiki๋ฅผ ๋ค์ ๋ณด๊ฒ ๋์๋ค. ํ์๊ฐ์ ์ ์ด๋ฉ์ผ api๋ฅผ ์ฌ์ฉํ๊ธฐ๋ก ํ๋๋ฐ ๊ทธ๊ฑธ ๊น๋จน์๋ค.. ๊ทธ๋์ ํ์๊ฐ์ ์ ๋ค์ ๊ฑด๋๋ฆฌ๊ฒ ๋์๋ค. Java์ MailSender ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํ์ฌ SMTP ๊ตฌ๊ธ ์ด๋ฉ์ผ๋ก ์ด๋ฉ์ผ ์ธ์ฆ ๋ฒํธ๋ฅผ ํด๋ผ์ด์ธํธ ์์ฒญ ์ด๋ฉ์ผ๋ก ๋ณด๋ด์ฃผ๋๋ก ์ค๊ณํ๊ณ ์ธ์ฆ ๋ฒํธ๋ฅผ redis DB์ ์ ์ฅํ์ฌ ๋น๊ตํ๊ณ ํ์๊ฐ์ ์ ์ด๋ฃจ๊ฒ ํ ๊ฒ์ด๋ค. Mail Sender // Mail implementation 'org.springframework.boot:spring-boot-starter-mail' ๋จผ์ ์์กด์ฑ์ ์ถ๊ฐํ๋ค. Application.yml ์ง๊ธ๊น์ง Properties ํ์ผ์ ์ฌ์ฉํ๊ณ ์์๋๋ฐ, ์ด๋ฒ ๊ธฐํ์ yaml์ ์ฌ์ฉํด๋ณด๊ธฐ๋ก ๊ฒฐ์ ํ๋ค. ์ด์ ๋ ์ธ.. 2022. 5. 25. 2022.05.24 ใ์ฝ๋ ๋ฆฌํฉํ ๋ง Ver.2ใ ์ฃผ๋ง๋ค ๋ฆฌํฉํฐ๋ง ๋ฐ ๊ธฐ๋ฅ ์ถ๊ฐํ๋ ๋ธ๋์น๋ฅผ ๋ฐ ์ค๊ณํ๋ฉฐ ํ๋ก์ ํธ๋ฅผ ์งํ ์ค์ด๋ค. ์ด๋ฐ ์์ผ๋ก ์ฃผ๋ง๋ค ๋ฆฌํฉํฐ๋ง์ ํ๋๊น ํ์คํ ์ฝ๋๊ฐ ๊น๋ํด์ง๋ ๊ฑธ ๋๋๋ค. ์ค๋ ์์นจ๋ถํฐ ์งํํ ์ฝ๋ ๋ฆฌํฉํ ๋ง์ ์ ์ง๋ณด์์ฑ์ ๋ฐ์ง๋ ๊ฒ์ ๋ฌผ๋ก ์ด๊ฑฐ๋์ ์ด๋ ค์ด ๋ฏํ๋ฉด์๋ ์๋ก์ด ๊ฐ๋ ์ ๋์ ํด์ ์งํํ๋ ๋๋ฆ ๋ณด๋์ฐผ๋ ๋ฆฌํฉํฐ๋ง์ด์๋ค. ์ง๋ฉดํ๋ ๋ฌธ์ ๋ค์ ๋์ดํ๋ฉฐ ์ ๋ฆฌ๋ฅผ ํ๋ฒ ํด๋ณด๊ฒ ๋ค. ์ธ์ฆ & ์ธ๊ฐ ์ฑ ์ ๋ถ๋ฆฌ ๋๋ ์ธ์ฆ, ์ธ๊ฐ๋ฅผ ์ธํฐ์ ํฐ๋ก ๊ตฌํํ๋ค. ์ธ์ฆ์ ํ ํฐ ๊ฒ์ฆ, ์ธ๊ฐ๋ ์๋ํ ์ด์ ๋ฐ ํ ํฐ ๊ฒ์ฆ์ผ๋ก ๊ตฌํํ๋ค. ๊ธฐ์กด ์ฝ๋ : ์ธํฐ์ ํฐ์ preHandle ๋ฉ์๋ ์์ ๋ ๊ฐ์ ๋ก์ง์ด ๋์์ ๋ค์ด์๋ค. ํ ํฐ ๊ฒ์ฆ + ์๋ํ ์ด์ ๊ฒ์ฆ => ์ฑ ์์ด ๋ง๋ค -> ์ ์ง๋ณด์๊ฐ ์ด๋ ต๋ค. ํด๊ฒฐ : ์ธํฐ์ ํฐ๋ฅผ ๋๋์ด ๋ถ๋ฆฌํ๋ค. @Override .. 2022. 5. 24. 2022.05.22 ใShopping Cart API [Ver.2]ใ ์ด์ ๋ถํฐ ์ฅ๋ฐ๊ตฌ๋ API ๊ตฌํ์ ๋ํด ๊ณ ๋ฏผ์ ์ ๋ง ๋ง์ด ํ๋ค. ๋น์ฐํ DB๋ฅผ ์ด์ฉํ๋ค ์ฟ ํค๋ก ๊ตฌํํด๋ณด๋ ค๋ ์๋๊ฐ ์ฒ์์ด๋ผ ๋ ๊ฐ๋ ์ด ๋ฏ์ค์๋ค. ์ถ๊ฐ ๋ฐ ์กฐํ๋ ๋๋ฌ๋๋ฐ, ์ค๋ ์์นจ ๋ค์ ๋ณด๋ ์ถ๊ฐ์์ ์ด์ํ ๋ก์ง์ด ์์๊ณ , ์ค๋ณต๋๋ ์ฝ๋๊ฐ ์์ด์ ์์ ์ ํ๊ณ ์ฅ๋ฐ๊ตฌ๋ ์์ ๋ฐ ์ญ์ API๋ฅผ ์์ฑํด๋ณด์๋ค. API๋ฅผ ์ค๊ณํ๋ฉด์ ๋ฌธ์ ์ ๋ค๊ณผ ํ์คํ ์๊ฒ ๋ ์ ์ ์ ๋ฆฌํด๋ณด๊ฒ ๋ค~ ์ฅ๋ฐ๊ตฌ๋ ์กฐํ ์ฅ๋ฐ๊ตฌ๋๋ฅผ ์กฐํํ๋ค๋ ๊ฒ์ ๊ณง ์ฅ๋ฐ๊ตฌ๋์ ๋ค์ด์๋ ์ํ ๋ชฉ๋ก์ ๋ฐ์ดํฐ๋ฅผ ์ป๊ฒ ๋ค๋ ๊ฒ. ๊ทธ ์ํ ๋ชฉ๋ก์ ๊ฐ์ฒด๋ฅผ ์ค๊ณํ๋ค. public class CartItemDTO { private final Integer productNo; private Integer productStock; private final String prod.. 2022. 5. 22. 2022.05.21 ใ Shopping Cart API ๋ง๋ค๊ธฐ ใ ์ด์ ๋ถ๋ก ์ธ์ฆ, ์ธ๊ฐ ์์ ์ด ์๋ฃ๋์๋ค. ์ง์ง ์ค๋ ๊ฑธ๋ ธ๋ค. ์๋๋ฅผ ์ข ๋ ๋ผ ํ์๊ฐ ์๋ค. ์ค๋๋ถํฐ๋ ์ฅ๋ฐ๊ตฌ๋๋ฅผ ๋ง๋ค๊ฑด๋ ์ด๋ฒ์๋ DB๋ฅผ ์ด์ฉํ์ง ์์ ๊ฒ์ด๋ค. ์ฟ ํค๋ฅผ ์ด์ฉํด ๋ณผ ์๊ฐ์ด๋ค. ์ฟ ํค์ ์ฅ๋ฐ๊ตฌ๋ ๊ด๋ จ ์ ๋ณด๋ฅผ ๋ฃ์ด์ ํด๋ผ์ด์ธํธ์๊ฒ ์๋ตํ๋ ๊ฒ์ด๋ค. ํ ๋ ์ฅ๋ฐ๊ตฌ๋์ ๋ค์ด๊ฐ๋ ๋ฐ์ดํฐ๋ ์ค์ํ๋ค๊ณ ์๊ฐ์ ํ๋๋ฐ ๋ณดํต ์ฅ๋ฐ๊ตฌ๋๋ ์ฟ ํค๋ ๋ก์ปฌ ์คํ ๋ฆฌ์ง๋ฅผ ์ด์ฉํ๋ค๊ณ ํ๋ค. ๋๋ ์จ์ ํ API๋ก๋ง ๊ตฌํ์ ํ๊ณ ์๊ธฐ ๋๋ฌธ์ ์ฟ ํค๋ฅผ ํตํด ๊ตฌํํด๋ณผ ์๊ฐ์ด๋ค. ์ฅ๋ฐ๊ตฌ๋๋ฅผ ์ด๋ป๊ฒ ๊ตฌํํ ๊น? ์ผ๋จ DB์ ์ ์ฅ์ ๋ฐ๋ก ํ์ง ์๊ณ ์ฟ ํค๋ก ๊ตฌํ์ ํ๊ธฐ๋ก ๊ฒฐ์ฌํ๋ค. ์ฃผ์ ๊ธฐ๋ฅ์ ์๊ฐํด๋ณด์๋ค. ๊ธฐ๋ฅ 1. ์ํ์ ์ฅ๋ฐ๊ตฌ๋์ ์ถ๊ฐ 2. ์ฅ๋ฐ๊ตฌ๋์ ๋ด๊ธด ์ํ ๋ชฉ๋ก ์กฐํ => ์์ ๊ณผ ์ญ์ ๊ฐ ์๋ ์ด์ ๋ ํ๋ฐํธ๋จ์์ ํ ์ ์์ง ์.. 2022. 5. 21. ์ด์ 1 2 3 ๋ค์ ๋ฐ์ํ