๋ถ๋ฅ ์ ์ฒด๋ณด๊ธฐ245 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. ๋ฐ์ดํฐ ๋ถ์ฐ ์ฒ๋ฆฌ [Micro Service Architecture] ํ๋ก์ ํธ๋ฅผ ์งํ ์ค์ด๋ค. ํ๋ก์ ํธ์ ๊ท๋ชจ๊ฐ ์ปค์ง ์๋ก ๊ณ์ธต ๊ฐ DTO ๊ฐ์ฒด๋ฅผ ์ด์ฉํ๋ ์ผ์ด ๋ง์์ก๋ค. ๋ถ๋ณ ๊ฐ์ฒด๋ฅผ ์ ์ ํ ์ค๊ณํด์ผ ํ ํ์๋ฅผ ๋๋ผ๋ฉฐ ์ต๋ํ ํด๋์ค ์ค๊ณ๋ฅผ ์ํ๋ค. ๋ฆฌ๋ทฐ๋ฅผ ๋ฐ๋ ์ค MAS ์ํคํ ์ณ์ ๋ํด ์๊ฒ ๋์๋ค. ๋ฐ์ดํฐ ์ ํฉ์ฑ ๊ด๋ จ ๋ฌธ์ ๊ฐ ์๊ธธ ์ ์์ง๋ง ํ๋ฒ ๊ฐ๋ ์ ๋ํด ์ ๋ฆฌํด๋ณด๊ณ ์์ ์ ํด๋ณผ ์๊ฐ์ด๋ค. ๋ณดํธ์ ์ธ ์ํคํ ์ฒ ๋ชจ๋๋ฆฌ์ ์ํคํ ์ณ (Monolithic Architecture) ์ฐ๋ฆฌ๊ฐ ๋ง์ด ๋ณด์์จ ํํ์ด๋ค! ์ํํธ์จ์ด์ ๋ชจ๋ ๊ตฌ์ฑ ์์๊ฐ ํ๋๋ก ํตํฉ๋์ด ์๋ ํํ ์ฃผ๋ก ์๊ท๋ชจ ํ๋ก์ ํธ์์ ์ฌ์ฉํ๋ค. ๊ท๋ชจ๊ฐ ์ปค์ง ๊ฒฝ์ฐ ํ๊ณ๊ฐ ๋๋ฌ๋จ ์ฅ์ ๋จ์ํ ์ํคํ ์ฒ๋ก ๊ฐ๋ฐ์ด ์ฝ๋ค ๋ณต์กํ์ง ์๊ณ , ๋ฐฐํฌ๊ฐ ๊ฐ๋จํ๋ค ํ์ฅ์ฑ์ด ์ฝ๋ค ๊ณ ๊ฐ์ฉ์ฑ ์๋ฒ๋ฅผ ์ฝ๊ฒ ๊ตฌํํ ์ ์๋ค ๋จ์ Scale out์ด ์ด.. 2022. 5. 27. 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 ใLv.3 ์ ๊ตญ์ฌ์ฌใ ์์ ํ๋ก์ ํธ ๋น์ค์ด ๋๋ฌด ์ปธ๋์ง๋ผ ์ค๋๋ง์ ์๊ฐ์ด ๋์ ์ฝํ ๋ฌธ์ ๋ฅผ ํ์๋ค. ์๋ฃ๊ตฌ์กฐ ์ค์์ ์ด๋ถ ํ์ (Binary Search)์ ์ด์ฉํ ๋ฌธ์ ์ด๋ค. ์ผํ ๋ณด๋๊น ์ถ์ ์จ์ด ๋ฎ๋๋ฐ ๊ทธ๋๋ ์ด๋ก ์ ์๊ณ ๊ฐ๋ ๊ฒ ์๋๋ผ ์ง์ ๋ฌธ์ ๋ฅผ ํ์ด๋ณด์์ผ๊ฒ ๋ค๋ ์๊ฐ์ด ๋ค์ด ๋ฌธ์ ๋ฅผ ํ๊ณ ์ ๋ฆฌ๋ฅผ ํด๋ณด๊ฒ ๋ค. ์ด๋ถ ํ์ (Binary Search) ์ด๋ถ ํ์ ์๊ณ ๋ฆฌ์ฆ์ด๋ ์ต์, ์ต๋ ๊ฐ์ ์ ํด ๋๊ณ ๋ฐ์ผ๋ก ๋๋์ด ๊ฐ๋ฉฐ ์ค๊ฐ ๊ฐ์ ๊ฒ์ฌํ๋ฉฐ ํ์์ ํ๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ค. ์๊ฐ ๋ณต์ก๋๋ก O(logN)์ ๊ฐ๊ณ ์๋ ํ์ ์๊ณ ๋ฆฌ์ฆ์ด๋ค. https://programmers.co.kr/learn/courses/30/lessons/43238 ์ฝ๋ฉํ ์คํธ ์ฐ์ต - ์ ๊ตญ์ฌ์ฌ n๋ช ์ด ์ ๊ตญ์ฌ์ฌ๋ฅผ ์ํด ์ค์ ์์ ๊ธฐ๋ค๋ฆฌ๊ณ ์์ต๋๋ค. ๊ฐ ์ ๊ตญ์ฌ์ฌ๋์ ์.. 2022. 5. 24. 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. 2022.05.20 ใ์คํ๋ง ๋ถํธ ๊ถํ ์ฒ๋ฆฌใ ์คํ๋ง ๋ถํธ ํ๋ก์ ํธ ์ค์ด๋ค. jwt๋ฅผ ์ด์ฉํ ์ธ์ฆ์ ๋ค ๋๋ฌ๊ณ ์ธ๊ฐ ์์ ๋ง ๋จ์๋ค. ๋๋ถ๋ถ ์คํ๋ง ์ํ๋ฆฌํฐ๋ฅผ ์ฌ์ฉํด์ ๊ถํ ์ฒ๋ฆฌ๋ฅผ ํ๋๋ฏํ๋ค. ๋๋ ์ผ๋จ ์ํ๋ฆฌํฐ๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ์ง๊ณ ์๊ธฐ ๋๋ฌธ์ ๊ณ ๋ฏผ์ ์ข ๋ง์ด ํด๋ดค๋ค. ๊ฒฐ๋ก ์ ๋ด๋ฆฌ์๋ฉด ์ธํฐ์ ํฐ๋ฅผ ์ด์ฉํ๊ธฐ๋ก ๊ฒฐ์ฌํ๋ค. ๊ด๋ฆฌ์์ธ์ง ํ์์ธ์ง ์ธ์ฆ์ด ํ์ํ ์์ ์ด๋ ์ง ์ค๋ณต๋๋ ๋ก์ง์ด ๋๋ฌด ๋ง์์ง๋ฏ๋ก ์ด๊ฒ์ ์ธํฐ์ ํฐ์์ ์ปจํธ๋กค๋ฌ๋ก ๋์ด๊ฐ๊ธฐ ์ ์ ์ธ๊ฐ ์์ ์ ํด์ค์ผ ํ๋ ๊ฒ์ด ์ฃผ๋ ์ด์ ๋ค. ํ๋ฒ ํด๋ณด์~ => ์ ๋ฐ์ ์ธ ๊ณํ ์์ฑ ์ค๊ฐ ์ ๋ฆฌ ํผ์ ํ๋ก์ ํธ๋ฅผ ํด์ ์ธ์ง ์๋๊ฐ ๋๋ฌด ๋์ง ์๋๋ค. ์๊ฐ์ ํด๋ณด์๋ค. ์ด๋ ํ ๊ธฐ๋ฅ์ด๋ ์ ์ง๋ณด์๊ฐ ์ฉ์ดํ๊ฒ ์ค๊ณํ๊ธฐ ๋๋ฌธ์ด๋ผ๋ ์๊ฐ์ด ๋ค์๋ค. ๊ฐ์ฅ ์๊ฐ์ ๋ง์ด ์์ ๋ถ๋ถ์ Restful ํ ์ค๊ณ ๋ฐฉ์๊ณผ ์ธ์ฆ ์ธ๊ฐ ๋ถ๋ถ์ด๋ค.. 2022. 5. 20. 2022.05.18 ใRedis DB ์ ์ฉใ ์คํ๋ง ๋ถํธ ํ๋ก์ ํธ๋ฅผ ํ๋ฉฐ ๋ก๊ทธ์ธ API๊น์ง๋ jwt ํ ํฐ์ ์ ๋ฌํ๋ ๋ฐฉ์์ผ๋ก ๊ตฌํ์ ์ํ๋ค. ํ์ง๋ง ๋ฌธ์ ๋ ๋ก๊ทธ์์์ด๋ค. jwt ํ ํฐ ์์ฒด๋ ํด๋ผ์ด์ธํธ์์ ๋ณด๊ดํ๊ธฐ ๋๋ฌธ์ ์๋ฒ๊ฐ ์์ฒด์ ์ผ๋ก ์ญ์ ์ํฌ ์ ์๋ค. ์ธ์ ์ ์ฌ์ฉ ์ ์๋ฒ๊ฐ ์ธ์ DB์ ์ ์ฅํ๊ณ ์๊ธฐ ๋๋ฌธ์ ์ธ์ ์ ์ญ์ ํ๋ฉด ๊ทธ๋ง์ด์ง๋ง ํ ํฐ์ ๊ทธ๋ ๊ฒ ๋ชป ํ๋ค. ๊ทธ๋์ Redis DB๋ผ๋ ์ธ๋ฉ๋ชจ๋ฆฌ DB๋ฅผ ์ด์ฉํด ๋ณด๊ธฐ๋ก ํ๋ค. ์ฒ์ ๋ค์ด๋ณด๋๋ฐ DB๋ ์ฌ๋ฌ ๊ฐ์ง ์ข ๋ฅ๊ฐ ์๋๋ฐ ์ด ์ธ๋ฉ๋ชจ๋ฆฌ DB๋ ๋ค๋ฅธ DBMS์ ๋น๊ตํ์ฌ ์ด๋ค ์ฑ๊ฒฉ์ ๊ฐ์ง๋์ง ๊ทธ๊ฑธ ์ ๋ฆฌํ๊ณ ์ ์ฉํด๋ณด๋ ํ๋ฃจ๋ฅผ ๋ณด๋ด๊ฒ ๋ ๊ฒ ๊ฐ๋ค. Redis DB Key & Value ๊ตฌ์กฐ์ ๋น์ ํ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ๊ด๋ฆฌํ๊ธฐ ์ํ ์คํ ์์ค ๊ธฐ๋ฐ์ ๋น ๊ด๊ณํ DBMS ์บ์, DB ๋ฑ์ผ๋ก ์ฌ์ฉํ๋ฉฐ ์ธ๋ฉ๋ชจ๋ฆฌ.. 2022. 5. 18. 2022.05.18 ใLv.2 Heap ๋ ๋งต๊ฒใ ์๋ฃ๊ตฌ์กฐ ์ ๋ฆฌํด์ผ์ง ๊ณํ๋ง ํ๊ณ ๋์ผ๋ก๋ง ๊ฐ๋ ๋ค์ ๋ณด๊ณ ์ ๋ฆฌํ๊ณ ์๋ค.. ๋์ผ๋ก ์ฝ๊ณ ์ฝ๋ ์์ฑํด๋ด๋ ์ด๋ ์ ๋๋ ๊ฐ์ด ์ค๋ ๊ฒ ๊ฐ์ง๋ง ๋น ๋ฅธ ์์ผ ๋ด์ ์ ๋ฆฌ ์ข ํด์ผ๊ฒ ๋ค ์ ๋ง ์ค๋์ ์ค์ ์ Heap์ ์ด์ฉํ ๋ฌธ์ ๋ฅผ ํ์๋ค. Lv2์ด๋ค. ์์ ์๋ Lv1๋ ์ด๋ ค์ ๊ณ , ๋ฌธ์ ์์ฒด๋ ์ดํด๊ฐ ์ ๋์๋๋ฐ ํ๋ค ๋ณด๋ ์ข ๊ฐ์ด ์ค๋ ๋ฏํ๋ค..?? ๋ ๋ฌ ์์ Lv3๊น์ง ๋ง์คํฐ ๋ชฉํ๋ฅผ ์ก์. ์ทจ์ ํ๊ณ ์ถ๋ค!! Heap์ด๋ ์๋ฃ๊ตฌ์กฐ๋ ์์ ์ด์งํธ๋ฆฌ์ ๊ฑฐ์ ๋น์ทํ๋ฐ ์์ ์ ์ ๊น ์ด์ง ํธ๋ฆฌ์ ๋ํด์ ๊ฐ๋ ์ ๋ณธ ๊ธฐ์ต์ด ์์๋๋ฐ ๊ฐ๋ ์ ๋จผ์ ๋ณด๊ณ ๋ฌธ์ ๋ฅผ ํ์๋ค. ๊ฒฐ๊ตญ Heap์ด ์ฐ์ ์์ Queue (PriorityQueue)๋ฅผ ๊ตฌํํ๊ธฐ ์ํด Heap์ ์ด์ฉํ๋ ๊ฑด๋ฐ ๊ทธ์ ๋น์ทํ ๋ฌธ์ ์ด๋ฏ๋ก ์ด๋ฅผ ์ด์ฉํ์ฌ ๋ฌธ์ ๋ฅผ ํ์๋ค. ๋ฌธ์ ์ค.. 2022. 5. 18. ์ฟผ๋ฆฌ ์์ฑ ๋ฐ ์ต์ ํ ์์ ์คํ๋ง ํ๋ก์ ํธ, DB, ์์์ ์์ , ํ ๋น ์คํ๋ง, ์ฝํ ์ค๋น ๋ฑ๋ฑ์ ํ๊ณ ์๋ค. ํ๋ฃจ๊ฐ ๋๋ฌด ์งง๊ธฐ๋ ํ๊ณ ์ ์ ์ ๊ฒ ์๋ ๊ด์ฐฎ์ ์ฒด์ง์ด ๋๊ณ ์ถ์ ์์ฆ์ด๋ค. DB๊ณต๋ถ๋ Real Mysql์ ์ฝ๊ณ ์๋ค. ์ฝ๊ธฐ ๋๋ฌด ์ด๋ ค์ด ์ฑ ์ธ๋ฐ.. DB ์ง๋ฌธ๋ ์ ์ ๊ฐ๋ฐ์ ๋ฉด์ ์์ ๋ํ ์ผํ ์ง๋ฌธ๊น์ง ํ์๋ผ๊ณ ํ๊ธฐ ๋๋ฌธ์ ์ด์ฌํ ์ ๋ฆฌํ๋ฉด์ ์ฝ๊ณ ์๋ค. ์ฟผ๋ฆฌ ์์ฑ ๋ฐ ์ต์ ํ ๋ถ๋ถ์ ๊ณต๋ถ์ค์ธ๋ฐ ์ด ๋ถ๋ถ์์ ํท๊ฐ๋ฆฌ๋ ๊ฐ๋ ์ ์ ๋ฆฌํด๋ณผ ์๊ฐ์ด๋ค. Join ๊ธฐ๋ฒ Nested Loop Join ์ค์ฒฉ๋ ๋ฐ๋ณต๋ฌธ๊ณผ ์ ์ฌํ ๋ฐฉ์์ผ๋ก ์กฐ์ธ์ ์ํ ๋ฐ๋ณต๋ฌธ ์ธ๋ถ์ ํ ์ด๋ธ์ ์ ํ ํ ์ด๋ธ & ์ธ๋ถ ํ ์ด๋ธ์ด๋ผ ์นญํจ ๋ฐ๋ณต๋ฌธ ๋ด๋ถ์ ํ ์ด๋ธ์ ํํ ํ ์ด๋ธ & ๋ด๋ถ ํ ์ด๋ธ์ด๋ผ๊ณ ์นญํ๋ค. ์กฐ๊ฑด์ ๋ง์กฑํ๋ ์ ํ ํ ์ด๋ธ ํ์ ์ถ์ถ ํ ํํ ํ ์ด๋ธ์ ์ฝ์ผ๋ฉฐ .. 2022. 5. 17. 2022.05.17 ใLv.2 ํ๋ฆฐํฐใ ๋ฌธ์ ์ค๋ช ์ผ๋ฐ์ ์ธ ํ๋ฆฐํฐ๋ ์ธ์ ์์ฒญ์ด ๋ค์ด์จ ์์๋๋ก ์ธ์ํฉ๋๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์ค์ํ ๋ฌธ์๊ฐ ๋์ค์ ์ธ์๋ ์ ์์ต๋๋ค. ์ด๋ฐ ๋ฌธ์ ๋ฅผ ๋ณด์ํ๊ธฐ ์ํด ์ค์๋๊ฐ ๋์ ๋ฌธ์๋ฅผ ๋จผ์ ์ธ์ํ๋ ํ๋ฆฐํฐ๋ฅผ ๊ฐ๋ฐํ์ต๋๋ค. ์ด ์๋กญ๊ฒ ๊ฐ๋ฐํ ํ๋ฆฐํฐ๋ ์๋์ ๊ฐ์ ๋ฐฉ์์ผ๋ก ์ธ์ ์์ ์ ์ํํฉ๋๋ค. 1. ์ธ์ ๋๊ธฐ๋ชฉ๋ก์ ๊ฐ์ฅ ์์ ์๋ ๋ฌธ์(J)๋ฅผ ๋๊ธฐ๋ชฉ๋ก์์ ๊บผ๋ ๋๋ค. 2. ๋๋จธ์ง ์ธ์ ๋๊ธฐ๋ชฉ๋ก์์ J๋ณด๋ค ์ค์๋๊ฐ ๋์ ๋ฌธ์๊ฐ ํ ๊ฐ๋ผ๋ ์กด์ฌํ๋ฉด J๋ฅผ ๋๊ธฐ๋ชฉ๋ก์ ๊ฐ์ฅ ๋ง์ง๋ง์ ๋ฃ์ต๋๋ค. 3. ๊ทธ๋ ์ง ์์ผ๋ฉด J๋ฅผ ์ธ์ํฉ๋๋ค. ์๋ฅผ ๋ค์ด, 4๊ฐ์ ๋ฌธ์(A, B, C, D)๊ฐ ์์๋๋ก ์ธ์ ๋๊ธฐ๋ชฉ๋ก์ ์๊ณ ์ค์๋๊ฐ 2 1 3 2 ๋ผ๋ฉด C D A B ์์ผ๋ก ์ธ์ํ๊ฒ ๋ฉ๋๋ค. ๋ด๊ฐ ์ธ์๋ฅผ ์์ฒญํ ๋ฌธ์๊ฐ ๋ช ๋ฒ์งธ๋ก ์ธ์๋๋์ง .. 2022. 5. 17. 2022.05.17 ใ@Transactional ์ต์ ๋ฐ ์ฑ๋ฅใ ์คํ๋ง ๋ถํธ ํ๋ก์ ํธ๋ฅผ ํ๋ ๋์ค Service ํด๋์ค์์ @Transactional ์ฌ์ฉ์ ์ต์ ์ ์ค์ ํ ์ ์๋ค๋ ๊ฒ์ ์ฒ์ ์์๋ค. ์ต์ ์ ํ๋ฒ ์ถ๊ฐํด๋ณด๋ผ๋ ํผ๋๋ฐฑ์ ๋ฐ๊ณ ํ๋ฒ ์ด ์๋ํ ์ด์ ์ ๋ํด ์์๋ณด๊ธฐ๋ก ํ๋ค. ํ๋ก๊ทธ๋จ ์ฑ๋ฅ์ ์ง์ ์ ์ธ ์ํฅ์ ๋ผ์น ์๋ ์๋ ์ค์ํ ์ต์ ์ด๊ธฐ ๋๋ฌธ์ ํ๋ฒ ์ ๋ฆฌ๋ฅผ ํด๋ณด๊ฒ ๋ค. ํธ๋์ญ์ (Transaction)์ ์ ์ ๋ฐ์ดํฐ ๋ฒ ์ด์ค์ ์ํ๋ฅผ ๋ณ๊ฒฝํ ๋, ํ๋ฒ์ ์ํ๋์ด์ผ ํ๋ ์ฐ์ฐ ํธ๋์ญ์ ACID ์ฑ์ง ์์์ฑ(Atomicity) : ํธ๋์ญ์ ์ด DB์ ๋ชจ๋ ๋ฐ์๋๊ฑฐ๋, ์ ํ ๋ฐ์๋์ง ์๊ฑฐ๋ ํด์ผํ๋ค. ์ผ๊ด์ฑ(Consistency) : ํธ๋์ญ์ ์ ์ผ๊ด์ฑ ์๋ DB ์ํ๋ฅผ ์ ์งํด์ผํ๋ค. ์์ ์ฒ๋ฆฌ์ ๊ฒฐ๊ณผ๊ฐ ํญ์ ์ผ๊ด๋์ด์ผ ํจ. ๋ ๋ฆฝ์ฑ(Isolation) : ๋์์ ์คํ๋๋.. 2022. 5. 17. ์ด์ 1 ยทยทยท 7 8 9 10 11 12 13 ยทยทยท 17 ๋ค์ ๋ฐ์ํ