์ ์ฒด ๊ธ250 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. 2022.05.16 ใ๋ฆฌํฉํ ๋งใ ํ๋ก์ ํธ๋ฅผ ์งํ ์ค์ด๋ค. ์ ๋๋ก ์ ๊ฒฝ ์จ์ ํ๋ค ๋ณด๋ ๋๋ฌด ์ค๋ ๊ฑธ๋ฆฌ๋ ๊ฒ ๊ฐ๋ค. ๋ ์ ๋๋ก ์งฐ๋ค๊ณ ์๊ฐํ ์ฝ๋๋ ๋ฆฌํฉํฐ๋ง ํ ์์ญ ํฌ์ฑ์ด๋ค. ์ด๋ฌ๋ฉด์ ์ค๋ ฅ์ด ๋๋ ๊ฑฐ๊ฒ ์ง..? ์ง์ง ์ ๋๋ก ๋ ํ๋ก์ ํธ ํ๋ฒ ๋ง๋ค์ด๋ณด์ ๋ฆฌํฉํ ๋ง ๋ชฉ๋ก ๋ถ๋ณ ๊ฐ์ฒด ์ด์ => setter๋ฅผ ํ์ฉํ ๊ฐ์ฒด ๋ฌธ์ : ๋ถ๋ณ์ฑ์ ๋์ง ๋ชปํ๋ค. ํด๊ฒฐ : loginDTO ๊ฐ์ฒด๋ ๊ฐ์ ์ ๋ฌํ๋๊ฒ ๋ชฉ์ ์ด๋ฏ๋ก ํ์คํ๊ฒ ๋ถ๋ณ์ฑ์ ์ง๋ ์ผ ํ๋ค. ๋ฐ๋ผ์ ๋ถ๋ณ๊ฐ์ฒด๋ก ๋ค์ ๋ง๋ค์ public class UserLoginDTO { private final String userId; private final String userPw; public UserLoginDTO(String userId, String userPw) { this.userId = use.. 2022. 5. 16. 2022.05.16 ใLv.2 ์นดํซใ ์ค๋์ ํ๋ก๊ทธ๋๋จธ์ค์์ ์์ ํ์ ๋ฌธ์ ์ค ๋ ๋ฒจ 2์ ์นดํซ ๋ฌธ์ ๋ฅผ ํ๋ฉฐ ์ ๋ฆฌ๋ฅผ ํด๋ณด๊ฒ ๋ค. ํญ์ ๋๋ผ๋ ๊ฑฐ์ง๋ง ์๋ฃ๊ตฌ์กฐ์ ๋ํด ์ ๋ฆฌ ์ข ํด์ผ๊ฒ ๋ค. ํ ์ ์๋ ๋ฌธ์ ๋ผ๋ ์๋ฃ๊ตฌ์กฐ์ ๋ํ ๊ฐ๋ ์ ์ด์ฉํด ํธ๋ ๊ฒ๊ณผ ๋ด ๋ฐฉ์๋๋ก ํธ๋ ๊ฒ์ ๋์ค์ ํฐ ์ฐจ์ด๊ฐ ์์ ๊ฒ์ด ๋ถ๋ช ํ๋ฏ๋ก ์ค๋์ด๋ ์ด๋ฒ ์ฃผ ์์ ๋ฌด์กฐ๊ฑด ์ ๋ฆฌํ๋ ๊ฒ์ผ๋ก ํ์! ๋ฌธ์ ์ค๋ช Leo๋ ์นดํซ์ ์ฌ๋ฌ ๊ฐ๋ค๊ฐ ์๋ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ์ค์์๋ ๋ ธ๋์์ผ๋ก ์น ํด์ ธ ์๊ณ ํ ๋๋ฆฌ 1์ค์ ๊ฐ์์ผ๋ก ์น ํด์ ธ ์๋ ๊ฒฉ์ ๋ชจ์ ์นดํซ์ ๋ดค์ต๋๋ค. Leo๋ ์ง์ผ๋ก ๋์์์ ์๊น ๋ณธ ์นดํซ์ ๋ ธ๋์๊ณผ ๊ฐ์์ผ๋ก ์์น ๋ ๊ฒฉ์์ ๊ฐ์๋ ๊ธฐ์ตํ์ง๋ง, ์ ์ฒด ์นดํซ์ ํฌ๊ธฐ๋ ๊ธฐ์ตํ์ง ๋ชปํ์ต๋๋ค. Leo๊ฐ ๋ณธ ์นดํซ์์ ๊ฐ์ ๊ฒฉ์์ ์ brown, ๋ ธ๋์ ๊ฒฉ์์ ์ yellow๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง .. 2022. 5. 16. 2022.05.14 ใJWT ์ธ์ฆใ ์ธ์ฆ์ ๊ตฌํํ๊ธฐ ์ํด ๊ธฐ์กด์ ์ฌ์ฉํ๋ Session ๋ก๊ทธ์ธ์ด ์๋ JWT๋ฅผ ์ด์ฉํ์ฌ ์ธ์ฆ์ ๊ตฌํํ๋ค. ํ ํฐ์ ์ฒ์ ์ฌ์ฉํ๋ค ๋ณด๋ ์์๊ฐ๋๋ฐ ๋๋ฌด ์ค๋ ๊ฑธ๋ ธ๋ค. ๋ฌด์๋ณด๋ค ๋๋ ์คํ๋ง ์ํ๋ฆฌํฐ๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ์๋ธ๋ฆฟ ํํฐ๋ ์คํ๋ง ์ธํฐ์ ํฐ๋ฅผ ์ด์ฉํด ํ ํฐ ์ ํจ์ฑ ๊ฒ์ฌ๋ฅผ ํ๋ ค๊ณ ํ์ด์ ๋ ์ฝ์ง ์์๋ ๊ฒ ๊ฐ๋ค. ์ด๋ฒ ํ๋ก์ ํธ ์ธ์ฆ์์ Session์ ์ฌ์ฉํ์ง ์์ ์ด์ ๋ ์๋ฒ์ ๊ท๋ชจ๊ฐ ํ์ฅ๋ ๋์ ์ธ์ฆ ๋ฌธ์ ์ด๊ธฐ ๋๋ฌธ์ธ๋ฐ JWT๋ฅผ ์ด์ฉํ ์ธ์ฆ๋ ์ฌ๋ฌ ๊ฐ์ง๊ฐ ์๊ธฐ ๋๋ฌธ์ ๋์ ํ๋ก์ ํธ์ ๋ง๋ ๋จ๊ณ๊ฐ ์ด๋์ธ์ง์ ์๋นํ ํท๊ฐ๋ ธ๋ ํ ์ฃผ์๋ค. ์ธ์ฆ ์์ ์ ํ๋ฉฐ ๋ฌธ์ ๊ฐ ์๊ฒผ๋ ๋ถ๋ถ์ด๋ ๊ตฌํํ ๋ถ๋ถ์ ๋ํด ์ ๋ฆฌ๋ฅผ ํด๋ณด๊ฒ ๋ค. Rest API๋ฅผ ์ค๊ณํ ๋ ์ธ์ฆ์ session ๊ธฐ๋ฐ์ด ์๋ ํ ํฐ ๊ธฐ๋ฐ์ผ๋ก ํ๋ ๊ฒ์ด ๋ restf.. 2022. 5. 14. 2022.05.13 ใSession๊ณผ Token(Jwt) & ์ธ์ฆ๊ณผ ์ธ๊ฐใ ํ์ฌ ์งํ ์ค์ธ ํ๋ก์ ํธ์์ ๋ก๊ทธ์ธ์ ์งํ ์ค์ธ๋ฐ ๊ธฐ์กด์ ๋ก๊ทธ์ธ์ ์ธ์ ์ผ๋ก๋ง ์งํํ์๋ค. ๋ก๊ทธ์ธ์ ๊ตฌํํ๋ ๋ฐฉ์์ ์ฌ๋ฌ ๊ฐ์ง๋ผ๊ณ ๋ฐฐ์ ๋๋ฐ ๊ทธ์ค ์ธ์ ๋ง ์ด์ฉํด๋ดค๊ธฐ ๋๋ฌธ์ ํ ํฐ์ ์ด์ฉํ ์ธ์ฆ ๊ฒฝํ๋ ํ์ํ๋ค๊ณ ์๊ฐ์ ํ๋ค. ๊ทธ์ค ๋ด ์๋น์ค์ ๋ํด ๋ ์๋น์ค ํ์ฅ์ฑ์ ๋ํด ํ์คํ ๋ง๋ ์ธ์ฆ ๋ฐฉ์์ ๊ฒฐ์ ํด์ผ๊ฒ ๋ค๊ณ ์๊ฐ์ ํ๊ณ , ์ธ์ ๊ณผ ํ ํฐ์ ์ฌ์ฉ์ฒ์ ๊ฐ๋ ์ ๋ํด ์ ๋ฆฌ๋ฅผ ํด๋ณด๋ ค๊ณ ํ๋ค. ์ธ์ฆ๊ณผ ์ธ๊ฐ ์ธ์ฆ(Authentication) ์๋น์ค์ ์ฌ์ฉ์๊ฐ ๋ง๋์ง ํ์ธํ๋ ๊ณผ์ ๋๊ฒ ๋ก๊ทธ์ธํ๋ ๊ณผ์ ์ธ๊ฐ(Authorization) ์ธ์ฆ์ด ์๋ฃ๋ ์ฌ์ฉ์์๊ฒ ๋ฆฌ์์ค ์ ๊ทผ ๊ฐ๋ฅํ๋๋ก ์ฌ์ฉ ๊ถํ์ ๋ถ์ฌํ๋ ์์ ์ก์ธ์ค๊ฐ ํ์ฉ๋ ๋ฐ์ดํฐ ๋ฐ ํด๋น ๋ฐ์ดํฐ๋ก ํ ์ ์๋ ๋ชจ๋ ์์ ์ ์ง์ ํจ HTTP์ ํน์ฑ http๋ stateless.. 2022. 5. 13. 2022.05.12 ใLV2 ์์ ์ฐพ๊ธฐใ ์ฌ๋ ๋ ์ฒ๋ผ ์ฝํ ๋ฌธ์ ๋ฅผ ๊ณ์ ํ๊ณ ์๋ค. ์๋ฃ๊ตฌ์กฐ๋ ๋ ์ก์์ ํ๋ฒ ์ ๋ฆฌํด์ผ ๋๋๋ฐ ์๊ฐ์ด ์ข ๋์ง ์๋๋ค. ์๊ฐ ๋ฐฐ๋ถ ์ข ์ํด๋ณด์. ์ด์ ์ค๋ ํผ ๊ฒ์ด ์์ ์ฐพ๊ธฐ๋ผ๋ ์์ ํ์ ๋ฌธ์ ์ธ๋ฐ, ์ด๊ฑด ์์๋ผ๋ ๊ฒ์ด ๊ฒฐ๊ตญ 1๊ณผ ์์ ๋ง์ ์ฝ์๋ก ๊ฐ์ง๋ ์๋ฅผ ๋งํ๋ค. ์ด๋ค ๋ธ๋ก๊ทธ์์ ๋ดค๋๋ฐ ๊ฒฐ๊ตญ ๋ฌธ์ ๋ฅผ ๊ฐ์ํํ๋ ๊ฒ ๊ด๊ฑด์ด๋ผ๋๋ฐ ๊ทธ๊ฒ์ ๋ณด๋ ์๋ชฉ์ ์ข ๊ธธ๋ฌ์ผ๊ฒ ๋ค. ์์ ์ฐพ๊ธฐ ์์ : 1๊ณผ ์๊ธฐ ์์ ๋ง์ ์ฝ์๋ก ๊ฐ์ง๋ ์ String ์ซ์ ๊ฐ์ ๋ฐ์ ์์๋ฅผ ์กฐํฉํ๋ ๊ฐ์๋ฅผ ๊ตฌํ๋ ๋ฌธ์ ์ด๋ค. import java.util.HashSet; import java.util.Iterator; class Solution { HashSet numberSet = new HashSet(); /** * ์์ ํ์ธ ๋ฉ์๋ * @para.. 2022. 5. 12. 2022.05.12 ใResponseEntity body & BuilderPattern & Joinใ Restful ํ api๋ฅผ ์ค๊ณํ๋ ๊ฒ์ ์ฐธ ๊น๋ค๋ก์ด ๊ฒ ๊ฐ๋ค. ํ์์์ ์์ ๊ธฐ์ด์ ์ธ ๋ด์ฉ๋ง ๋ฐฐ์ด ๊ฒ๋ ์์๊ณ ๊ทธ ๋ถ๋ถ๋ง ๋จธ๋ฆฟ์์ ๊น์ด ์ ์ฅ๋์ด ์์๊ธฐ ๋๋ฌธ์ ์ ๋๋ก ๋ rest ๋ฐฉ์์ ๋ค๋ฅธ ๊ฒ์์ ์ดํดํ๋๋ฐ ์๊ฐ์ด ๋๋ฌด ์ค๋ ๊ฑธ๋ ธ๋ค. ํ์ ๊ฐ์ , ๋ก๊ทธ์ธ๋ง ํ๋๋ผ๋ ์ด๋ป๊ฒ ๋ณด๋ฉด ๋๊ตฐ๊ฐ์๊ฒ ๋ณ๊ฒ ์๋ํ ์ง๋ง ์ด๋ค ์์ผ๋ก ์๊ฐ์ ํ๋ฉฐ ์ค๊ณ๋ฅผ ํ๋๋์ ๋ฐ๋ผ ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆฌ๋ ๊ฒ ๊ฐ๋ค. ์ด์ ํ ๋น๋ฐ๋ฒํธ ์ํธํ๋ ๋ง์ฐฌ๊ฐ์ง๋ค. ํนํ restfulํ ๋ฐฉ์์ผ๋ก ์ค๊ณ๋ฅผ ํ๋ ๊ฒ์ ์ฒ์ ํด๋ณด๊ธฐ ๋๋ฌธ์ ๋ ๋ฏ์ค๊ณ ์ดํด๊ฐ ์ ์ ๋์๋ค. ๋ณดํต Return Type์ธ ResponseEntity๋ฅผ ์ฌ์ฉํด ์๋ต ๊ด๋ จ ์ ๋ณด๋ฅผ ๋๋ ค์ฃผ๋๋ฐ ํค๋์ ๋ฐ๋์ ์ ์ ํ ๋ฐ์ดํฐ๋ฅผ ๋ฃ์ด์ฃผ๋ ๊ฑธ ๊ณ ๋ฅด๋ ๊ฒ ์ฝ์ง ์์๋ค. ์ค๋๋ ์์นจ๋ถํฐ ์ง๊ธ ์คํ.. 2022. 5. 12. 2022.05.11 ใSHA-256 + Salt & ์ธ์ฆใ ์ธ์ฆ ๊ด๋ จํด์ ์ฌ์ค ์คํ๋ง ์ํ๋ฆฌํฐ๋ฅผ ์ฌ์ฉํด๋ ๊ด์ฐฎ์ง๋ง ์์ฐจ์ ์ผ๋ก ๊ฐ๊ธฐ ์ํด์ ์์ํ๊ฒ SHA-256 ์ํธํ ์๊ณ ๋ฆฌ์ฆ์ ์ด์ฉํด ๋น๋ฐ๋ฒํธ ์ํธํ์ ๋ก๊ทธ์ธ์ ์์์ ์ผ๋ก ๊ตฌํํ ํ๋ฃจ๋ค.. ๊ฑฐ์ง 12์๊ฐ์ ์ฝ์งํ ๊ฒ ๊ฐ๋ค. ์ํธํ ์๊ณ ๋ฆฌ์ฆ ์ด์ฉ๊ณผ, Mybatis ๋งคํ ๋ฌธ์ ๋ ์๊ณ , ModelMapper๋ฅผ ์ฌ์ฉํด DTO VO ๋งคํ์ด ๊ณ์ ์๋์ด์ ํ๋ฃจ ์ข ์ผ ๋ฉํธ์ด ๋๊ฐ์๋ค. ๋ค๋ฅธ ๊ณต๋ถ๋ ํ ๊ฒ ๋๋ฌด ๋ง์๋ฐ ํ๋ก์ ํธ๋ง ๋น์ค์ด ๋ง์๋ ํ๋ฃจ๋ผ ๋๋ฌด ์์ฝ๋ค. ํ์ง๋ง ์ฝ์งํ ๋งํผ ๋ด ๊ฒ์ด ๋์์ผ๋ฉด ์ข๊ฒ ๋ค. ์ค๋์ ํ๋ฃจ์ข ์ผ ์ฝ์งํ ๋ด์ฉ์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ฒ ์ ๋ฆฌ๋ฅผ ํด๋ณด๋ ค๊ณ ํ๋ค. ์ฌ๋ด์ผ๋ก ๋ค์ด์ดํธ์ค์ธ๋ฐ ์์ ์์ฃผํ๋ ๊ณต๋ถ ํ๊ฒฝ์์ ์คํธ๋ฐ ๋ฏธ๋ ๋ฐ์ดํธ๋ฅผ ์ ๊ณตํด์ฃผ๋๋ฐ ์ด๊ฑฐ ์ง์ง ๋๋ฌด ๋ง์๋ค.. ์์ ์ ์ง์ง ๋จ ๊ฑฐ ์ ์ฐธ์๋๋ฐ ๋์๋ .. 2022. 5. 11. 2022.05.10 ใRest Ful Api & DTO,VO mapping & Mysql Index & ์์ํใ ํ๋ก์ ํธ๋ฅผ ์งํ ์ค์ ์์ ์ฌํญ์ด ๋๋ฌด๋ ๋ง๋ค๋ ๊ฒ์ ์๊ฒ ๋์๋ค. ์์ ์ ํ์์์ ํ๋ก์ ํธ๋ฅผ ํ ๋๋ ์ด๋ป๊ฒ ๋ง๋ค๋ ๊ธฐํ์ด ์ ํด์ ธ ์์๊ธฐ ๋๋ฌธ์ ์์ฑ๋๊ฐ ์ฐ์ ์ด์๊ณ , ์ ์ง๋ณด์์ ๋ํ ํ๋ก๊ทธ๋๋ฐ์ ์ ๊ฒฝ์ ์ฐ์ง ์์์๋ค. ํ์ง๋ง ์ค์ ๋ก ์ ๋๋ก ๋ ํ๋ก๊ทธ๋๋ฐ์ ํ๋ค ๋ณด๋ ์์ ๋ฒ๋ฆ์ด ๋์ค๊ฒ ๋์๊ณ , ์ด๋ฒ ๋ฆฌ๋ทฐ๋ฅผ ๋ฐ์ ๊น์ ๋ฆฌํฉํฐ๋ง์ ๋น ๋ฅด๊ฒ ํ๋ฉฐ ์ ๋ฆฌ๋ฅผ ํด๋ณผ ์๊ฐ์ด๋ค. RestFul Api ์ return ๊ฐ 1. ๋๋๋ก ์ฒด์ด๋ ํ๋ ๋ฐฉ์์ ์ฌ์ฉ 2. response์ ํด๋น๋๋ ํค๋ ๋ฉ์์ง(์ํ ์ฝ๋, ๋ฉ์์ง ๋ฑ๋ฑ), ๋ฐ๋ ๊ฐ์ ๋ค ๋ฃ๋๋ก ๋ ธ๋ ฅํ์ DTO, VO ๊ฐ์ ๋งคํ ํ์ฌ Mybatis๋ฅผ ์ฌ์ฉ์ค์ด๋ฏ๋ก ํ ์ด๋ธ ์์ฒด์ Entity๋ VO service mapper ๊ณ์ธต ์ด๋ ์ VO๋ฅผ ์ด์ฉํด์ผ ํจ .. 2022. 5. 10. 2022.05.09 ใํด์ Lv.2ใ ์์ ๋งค์ผ๋งค์ผ ์ฝํ ๋ฅผ ์ค๋นํ๋ฉฐ ํ๋ก๊ทธ๋๋จธ์ค ๋ฌธ์ ๋ฅผ ํ๊ณ ์๋ค. ์ฒ์์ ์์ ํ ๋งํ์ง๋ง ๊ทธ๋๋ ์ด์ ์ด๋ ์ ๋ ํ์ด๊ฐ ๋ ์ค๋ฅด๊ธด ํ๋ค. ํ ๊ฐ์ง ์์ฌ์ด ์ ์ ์๊ฐ๋ณด๋ค ํด๋์ค๋ง๋ค ๋ค์ํ ๋ฉ์๋๋ฅผ ๊ฐ์ง๊ณ ์๊ณ ์ด๋ฅผ ์ ์๊ณ ํ์ฉํด์ผ ํ๋ค๋ ์ ์ด๋ค. ์ ์ผ ๋ง์ด ๋์ค๋ ์ ํ์ธ ํด์ ๋ฌธ์ ๋ฅผ ๋ง์ฃผํ๊ณ ๋ฌธ์ ๋ฅผ ํ๊ธฐ ์ํด ํ์ฉํ ๋ฉ์๋๋ฅผ ๊ฒ์ํด์ ์ด๋ฅผ ํ์ฉํ์ฌ ๋ฌธ์ ๋ฅผ ํ์์ง๋ง ํ๋ฒ ์ ๋ฆฌํด๋ณผ ๋งํ ๊ฐ์น๊ฐ ์๋ค๊ณ ์๊ฐ์ด ๋ค์ด์ ์ด๋ ๊ฒ ์ ๋ฆฌํ๊ฒ ๋์๋ค. ๋ฌธ์ ์ค๋ช ์์ฅ์ด๋ผ๋ ๋ฌธ์ ์ธ๋ฐ, ์ท์ ์ข ๋ฅ์ ์ท์ ์ด๋ฆ์ผ๋ก ์ด๋ฃจ์ด์ง 2์ฐจ์ ๋ฐฐ์ด์ ๊ฐ์ง๊ณ ๊ทธ ๊ฒฝ์ฐ์ ์๋ฅผ ๊ตฌํ๋ ๋ฌธ์ ์ด๋ค. ๋งค์ผ ์ท์ ๋ค๋ฅด๊ฒ ์ ์ด์ผ ํ๊ณ , ํ๋ฃจ์ ์ท 1๊ฐ๋ ๋ฌด์กฐ๊ฑด ์ ๋ ์กฐ๊ฑด์ด๋ค. ํด์๋ฅผ ์ด์ฉํด ํ๋๋ค. ํ์ด public int solution(String[][.. 2022. 5. 9. 2022.05.08 ใRestFulํ api? & ResponseEntity์ ์ฌ์ฉใ ์ด๊น ์์ด ์คํ๋ง ํ๋ก์ ํธ๋ฅผ ์งํ์ค์ด๋ค. ์ผ์ฃผ์ผ ์ View๋ฅผ ์์ ๊ณ ์ข ๋ Back์ ์ง์ค๋ api๋ฅผ ์ค๊ณํ๋ ๊ฒ์ผ๋ก ์ด์ ์ ๋ง์ท๋ค. handler ๋ฉ์๋์ ๋ฐํ ๊ฐ์ ๋จ์ํ json ํ์์ผ๋ก ๋ณด์ฌ์ฃผ๋ฉด ๋๋ ๊ฑฐ ์๋๋? ๋ผ๊ณ ์๊ฐ์ ํ์ง๋ง ๊ฒ์์ ์ฌ๋ฌ๋ฒ ํด๋ณด๋ ์ ๋ง ํ์คํ๊ฒ ์๊ธฐ ์ ๊น์ง๋ ํจ๋ถ๋ก ์๊ฐํ์ง ๋ง์๋ผ๋ ๊ฒฐ๋ก ์ ๋ด๋ ธ๋ค.. ์ด๋ ดํ์ด ๋ฐฐ์ ๋ rest api๊ฐ ๋ ์ฌ๋๊ณ ์ ๋๋ก ๊ณต๋ถ๋ฅผ ํ๊ณ ์ด์ฉ์ ํด์ restfulํ api๋ฅผ ๋ง๋ค์ด์ผ๊ฒ ๋ค๋ ์๊ฐ์ ๊ฐ๋ ์ ๋ฆฌ๋ฅผ ๊ฒฐ์ฌํ๊ฒ ๋์๋ค. ๋ ๋ฐํ ํ์ ์ผ๋ก ResponseEntity์ ์ฌ์ฉ์ด ๋ง์๋ฐ ์ด ํ์ ์ ์ ์ฌ์ฉํ๋์ง๋ ํ๋ฒ ์์๋ด์ผ๊ฒ ๋ค. Rest๊ฐ ์ ํํ ๋ญ๊น?? Representational State Transfer -> ์์์ ์ด๋ฆ์ผ๋ก ๊ตฌ๋ถํ์ฌ ํด๋น .. 2022. 5. 8. ์ด์ 1 ยทยทยท 8 9 10 11 12 13 14 ยทยทยท 17 ๋ค์ ๋ฐ์ํ