์๋ฐ44 [๋ง๋ค๋ฉด์ ๋ฐฐ์ฐ๋ ํด๋ฆฐ ์ํคํ ์ฒ] Chapter6. ์์์ฑ ์ด๋ํฐ ๊ตฌํํ๊ธฐ CH 6. ์์์ฑ ์ด๋ํฐ ๊ตฌํํ๊ธฐ 1. ์์กด์ฑ ์ญ์ ์๋น์ค๊ฐ ์์์ฑ ๊ธฐ๋ฅ์ ์ฌ์ฉํ๊ธฐ ์ํด ํฌํธ ์ธํฐํ์ด์ค๋ฅผ ํธ์ถ ์ก๊ฐํ ์ํคํ ์ฒ์์ ์์์ฑ ์ด๋ํฐ๋ ์ฃผ๋ก ์์๊ณ ์ ์ด๋ํฐ => ์ฑ์์ ํธ์ถํ๊ธฐ ๋๋ฌธ, ๋ฐ๋์ ๊ฒฝ์ฐ๋ ์๋ค. ํฌํธ๋ ์ฑ๊ณผ ์์์ฑ ์ฌ์ด์ ๊ฐ์ ์ ๊ณ์ธต ์์์ฑ ๋ฌธ์ ์ ์ ๊ฒฝ์ฐ์ง ์๊ณ ๋๋ฉ์ธ ์ฝ๋ ๊ฐ๋ฐ ๋ชฉ์ ์์์ฑ ๊ณ์ธต์ ์ฝ๋ ์์กด์ฑ์ ์์ฐ ์ด๋ด ๊ฒฝ์ฐ, ์์์ฑ ์ฝ๋๋ฅผ ๋ณ๊ฒฝํ๋๋ผ๋ ์ฝ์ด ์ฝ๋์ ์ํฅ์ด ์์ ๋ฐํ์์๋ ์ฌ์ ํ ์ฑ์ด ์์์ฑ ์ฝ๋์ ์์กดํ๊ณ ์๋ค. ์ธํฐํ์ด์ค ๊ณ์ฝ์ ๋ง์กฑํ๋ ํ ์์์ฑ ์ฝ๋ ์์ ์ ๋ฌธ์ ๊ฐ ์๋ค. 2. ์์์ฑ ์ด๋ํฐ์ ์ฑ ์ ์ ๋ ฅ์ ๋ฐ๋๋ค. ์ฃผ๋ก ๋๋ฉ์ธ ์ํฐํฐ, DB ์ฐ์ฐ ์ ์ฉ ๊ฐ์ฒด ์ ๋ ฅ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํฌ๋งท์ผ๋ก ๋งคํํ๋ค. JPA Entity ๊ฐ์ฒด ๋งคํ JPA๋ฅผ ์ ์ธํ ๊ธฐ์ ๋ ๊ณ ๋ ค .. 2022. 10. 31. [๋ง๋ค๋ฉด์ ๋ฐฐ์ฐ๋ ํด๋ฆฐ ์ํคํ ์ฒ] Chapter5. ์น ์ด๋ํฐ ๊ตฌํํ๊ธฐ CH.5 ์น ์ด๋ํฐ ๊ตฌํํ๊ธฐ 1. ์์กด์ฑ ์ญ์ Web Adaptor = Incomming Adaptor ์ธ๋ถ๋ก๋ถํฐ ์์ฒญ ๋ฐ์ => ์ ํ๋ฆฌ์ผ์ด์ ์ฝ์ด ํธ์ถ => ๋ฌด์จ ์ผ์ ํด์ผํ ์ง ์๋ ค์ค ์ ํ๋ฆฌ์ผ์ด์ ๊ณ์ธต์ ์น ์ด๋ํฐ๊ฐ ํต์ ํ ์ ์๋ ํฌํธ๋ฅผ ์ ๊ณต ์๋น์ค๋ ํฌํธ ๊ตฌํ & ์น ์ด๋ํฐ๊ฐ ์ด ํฌํธ๋ฅผ ํธ์ถ ์ ์ด ํ๋ฆ ์ผ์ชฝ => ์ค๋ฅธ์ชฝ ์น ์ด๋ํฐ๊ฐ ์ ์ค์ผ์ด์ค๋ฅผ ์ง์ ํธ์ถํ ์ ์์ง๋ง ๊ฐ์ ๊ณ์ธต์ ๋ฃ์ ํฌํธ (๊ฐ์ ๊ณ์ธต)๋ ์ธ๋ถ์ ํต์ ํ ์ ์๋ ๊ณณ์ ๋ํ ๋ช ์ธ์ ์ด๋ค ํต์ ์ด ์ผ์ด๋๋์ง ๋ช ํํ๊ฒ ์ ์ ์์. Outgoing Port ์ด ํฌํธ๋ ์น ์ด๋ํฐ์์ ๊ตฌํํ๊ณ ์ ํ๋ฆฌ์ผ์ด์ ์ฝ์ด์์ ํธ์ถํด์ผ ํ๋ค. ์น ์ด๋ํฐ๋ ์ธ์ปค๋ฐ & ์์๊ณ ์ ์ด๋ํฐ๊ฐ ๋ ์๋ ์๋ค๊ณ ํ๋ค. 2. ์น ์ด๋ํฐ์ ์ฑ ์ ๊ฑฐ์์ ๊ด์ HTTP ์์ฒญ.. 2022. 10. 30. ์คํฐ๋ ๊ฒฐ์ฑ ๊ฐ์ ๊ธธ์ ๊ฐ๊ณ ์๋ ๊ณ ๋ฑํ๊ต ๋์ฐฝ๊ณผ ๊ทธ ํ๋ฐฐ์ ์ ๊ฐ ๋ญ์ณ์ ์คํฐ๋๋ฅผ ์งํํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค. โ ์ง๊ธ์ ์ทจ์ ์ด ์ต์ฐ์ ์ธ์ง๋ผ โ ์ ๊ฐ ์ง๊ธ ์งํํ๊ณ ์๋ ๊ฒ ์ฝ๋ฉ ํ ์คํธ ์ค๋น (์๊ณ ๋ฆฌ์ฆ) ์์์์ ํฌํธํด๋ฆฌ์ค ์์ ํ ์คํธ ์ฝ๋ ์์ฑ ๋ฐ ๋ฐฐํฌ ์ค๋น ๋ฉด์ ์ง๋ฌธ ์ฉ CS ๊ณต๋ถ ๋ฐ ๊นํ ์ ๋ฆฌ โ ์ด ์ธ์๋ ์ ํ์ ๋ ํ ์ ์์๊ฒ ์์๊นํ๋ค๊ฐ ์๊ฐ์ ๋บ๊ธฐ์ง ์๊ณ ๋ ๊ณต๋ถํ ํ์ ์ ๋จ๊ธธ ์ ์์ ์ ์ฉํ ์ฑ ๋ค์ ์งฌ์งฌํ ๋ณด๊ธฐ๋ก ์๊ฐํ์ต๋๋ค. ๊ทธ ๊ณผ์ ์์ ํผ์ ์งํํ๋ ๊ฒ๋ณด๋ค ๊ฐ์ด ์ฝ์ด ์๊ฐ์ ์ค์ด๊ณ ๊ฐ์ ๋๋ ๊ฒ์ ๋ฐํ์ผ๋ก ์๊ฒฌ ๊ณต์ ๋ฐฉ์์ผ๋ก ์คํฐ๋๋ฅผ ์งํํ๋ฉด ๋ ํจ์จ์ ์ด๋ ์๊ฐ์ด ๋ค์์ต๋๋ค. โ ๊ณ ๋ฑํ๊ต ์น๊ตฌ ์ค์ ์ด์ฌํ ํ๋ ์น๊ตฌ๊ฐ ์๊ธธ๋ ์คํฐ๋ ์ ์์ ํ๊ณ , ์ด์ ์คํฐ๋ ๊ด๋ จ ๊ตฌ์ฒด์ ์ธ ์ผ์ ์ ์ก์ผ๋ฉฐ ๊นํ Orga.. 2022. 10. 30. [๊ฐ์๋ฌธ] Effective Java๋ฅผ ์ฝ๊ณ ๋์ ์ฑ ์ ์ฝ์ ์ด์ ์๋ฐ ๊ณต๋ถ๋ฅผ ํ๋ฉด์ ํ๋ฒ ์ฏค ๋์ ํด๋ณด๊ณ ์ถ์๋ ์ฑ ์ค์ ํ๋๊ฐ ๋ฐ๋ก ์ดํํฐ๋ธ ์๋ฐ๋ค. ์๋ ์ด๋ ต๊ธฐ๋ก๋ ์๋ฌธ์ด ๋ฌ๊ณ , ๊ทธ ๋งํผ ์๋ฐ์ ์ ์๋ผ๊ณ ๋ถ๋ฆฌ์ฐ๊ธธ๋ ์๋ฐ ์์ ์ค ๊ฐ์ฅ ๊ฐ์น๊ฐ ๋๊ฒ ๋๊ปด์ก์๋ค. โ ๋ฐฑ์๋ ์ฑ๋ฆฐ์ง ๊ต์ก์ ๋ค์ผ๋ฉฐ ๋ฉํ ๋์ด ์ ๋ง์ ๊ต์ก ์์๊ณผ ์ฑ ๋ค์ ์ถ์ฒํด์ฃผ์ จ๋๋ฐ, ๊ทธ ์ค์ ์ธ์ด ์ค๋ ฅ์ ๊ธฐ์ค์ด ๋๋ ์ฒ๋๊ฐ ์ดํํฐ๋ธ ์๋ฐ๋ผ๊ณ ํ์ จ๋ค. ์ฑ ์ฝ์ ์๊ฐ ์๋ค๋ ํ๊ณ๋ก ๋ฏธ๋ฃจ๊ณ ๋ฏธ๋ฃจ๋ค๊ฐ ๋ฐ๋ก ์ง๋ฅด๊ธฐ๋ก ๊ฒฐ์ฌํ๋ค. โ ์ ์ฑ ์ ์ฌ๊ธฐ์๋ ๊ฐ๊ฒฉ์ด ๋ถ๋ด์ค๋ฝ๊ธฐ ๋๋ฌธ์, ์ด๋ฒ ๊ธฐํ์ ๋น๊ทผ ๋ง์ผ์ ์ด์ฉํด๋ณด๊ธฐ๋ก ํ๋ค. ๋คํํ ๊ฐ๊น์ด ๋๋ค์ ํ๋งค์ ๋ถ์ด ๊ณ์ ์ ๋น๋ฐ๋์ ๊ฐ๋ฅด๋ฉฐ ๊ฑฐ๋ ์ฅ์๋ก ๊ฐ๋ค. ๋ค๊ณ ๊น์ง ํด์ฃผ์๊ณ ๊ฐ๋ฐ์ ์ทจ์ค ์์๊น์ง ํด์ฃผ์ ์ ๋์ ์ฒซ ๋น๊ทผ ๊ฑฐ๋์ ๋งค์ฐ ๋ฐ์คํจ์ ๋๊ผ๊ณ , ์คํํธ๊ฐ ์ข์.. 2022. 10. 26. ๊ฐ์ฒด ๊ฐ ๋งคํ์ ์ํ MapStruct ์ฌ์ฉ ๋ฐฉ๋ฒ ๊ธฐ์กด ํ๋ก์ ํธ์์ Dto Entity๋ฅผ ๋งคํํ ๋ model mapper ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ์๋ค. ํธํ๊ฒ ์ฌ์ฉํ ์ ์์์ง๋ง ๋ด๋ถ์ ์ผ๋ก ๋ฆฌํ๋ ์ ์ ์ด์ฉํ๊ธฐ ๋๋ฌธ์, ์ฑ๋ฅ ์ ๋ฌธ์ ๊ฐ ์๋ค. ์ด๋ฒ์๋ ๋ง์ด๋ค ์ถ์ฒํ๋ Map Struct๋ฅผ ์ฌ์ฉํด๋ดค๋ค. ์ ์ฉํ๋ฉด์ ์์ํ ๋ฌธ์ ๋ค์ด ์์๋๋ฐ, ๋ด๊ฐ ๊ฒช์ ๋ฌธ์ ์ ๋ค์ ๋ํ ํด๊ฒฐ ๋ฐฉ๋ฒ๋ค์ ์ ๋ฆฌํด๋ณด๊ฒ ๋ค. https://mapstruct.org/documentation/dev/reference/html/ MapStruct 1.5.2.Final Reference Guide If set to true, MapStruct in which MapStruct logs its major decisions. Note, at the moment of writing in Maven, al.. 2022. 8. 29. Spring Security [2] - ์์ธ ์ฒ๋ฆฌ AuthenticationEntryPoint & AccessDeniedHandler ์ํ๋ฆฌํฐ๋ฅผ ๋์ ํ๋ฉฐ ์ธ์ฆ, ์ธ๊ฐ์ ๊ณผ์ ์ ๋ง์ณค๋ค. ์ด์ ์ธ์ฆ ๋ฐ ์ธ๊ฐ ์์ ์์ ๋ฐ์ํ๋ ์์ธ์ ๋ํด์ ์ฒ๋ฆฌ๋ฅผ ํด์ฃผ์ด์ผ ํ๋๋ฐ, ํ ๊ฐ์ง ์๊ฐํด๋ด์ผ ํ๋ ๋ฌธ์ ๊ฐ ์๋ค. ์คํ๋ง ์ํ๋ฆฌํฐ๋ ํํฐ์ ๊ธฐ๋ฐํ ์ฒด์ด๋ ๊ตฌ์กฐ์ด๋ฏ๋ก, ์คํ๋ง ์ปจํ ์ด๋๊น์ง ์์ฒญ์ด ๋๋ฌํ์ง ์๋๋ค. ๋ฐ๋ผ์, @ExceptionHandler๋ฅผ ํตํ ํธํ ์์ธ ์ฒ๋ฆฌ๊ฐ ๋ถ๊ฐํ๋ค. ์ง์ Try - catch๋ก ์ก์์ ์๋ต์ ๋ด๋ ค์ฃผ๋ ๋ฐฉ๋ฒ ๋ฐ์ ์๋ค. ํ์ง๋ง, ์คํ๋ง ์ํ๋ฆฌํฐ๊ฐ ๊ทธ๋ ๊ฒ ํ์ ํ์ง ์๋ค. ์ํ๋ฆฌํฐ ํํฐ ์ฒด์ธ์ ๊ตฌ์กฐ๋ฅผ ๋ณด๋ฉด ๋ง์ง๋ง ์ฆ์์ ์์ธ๋ฅผ ์ฒ๋ฆฌํ๋ ํํฐ๊ฐ ์๋ ๊ฒ์ ํ์ธํ ์ ์๋ค. ์ฌ๊ธฐ์ ์ฃผ๋ก ์ฌ์ฉํ๋ AuthenticationEntryPoint์ AccessDeniedHandler๋ฅผ ๊ตฌํํด ์ธ์ฆ ๋ฐ ์ธ๊ฐ ๊ณผ์ ์์ ์ผ์ด๋ ์์ธ์ ๋.. 2022. 8. 21. ์ฝ๋ ๋ฆฌํฉํ ๋ง [1] ์ง๋ 1์ฃผ์ผ๊ฐ ๊ธฐ์กด ํ๋ก์ ํธ์ ๋ฆฌํฉํฐ๋ง์ ์ํด ์๋ก์ด ์ ์ฅ์๋ฅผ ์์ฑํ๋ค. ์ํคํ ์ฒ ๋ถ๋ถ ์ค๊ณ๋ฅผ ๊ฑฐ์ 2, 3์ผ์ ํ ๊ฒ ๊ฐ๋ค. ์์ง ์์ ์ด ํ์ํ๊ฒ ์ง๋ง, ํญ์ ๊ณ ๋ฏผํด๋ณด์. ๊ธฐ์กด ํ๋ก์ ํธ๋ multi module๋ก ์งํํ์ง๋ง, ์๋ฒฝํ ๋ฉํฐ ๋ชจ๋ ํ๋ก์ ํธ ์ด์ง ์์๋ค. ๋ชจ๋๋ฆฌํฑ์ผ๋ก ๊ฐ์ง, MSA๋ฅผ ๊ณ ๋ คํด ๋ชจ๋๊ฐ ๋ถ๋ฆฌ๋ฅผ ํ ์ง๊ฐ ๊ณ์ ๊ณ ๋ฏผ๋๋ค.. ํ์ฅ์ฑ์ ์ํด ๋ชจ๋, ํจํค์ง๊ฐ ์์กด์ฑ ๋ถ๋ฆฌ๋ฅผ ํํ์ด ๊ณ ๋ คํด๋ด์ผ๊ฒ ๋ค. ๊ธฐ์กด ์์ฑ ์ฝ๋๋ฅผ ์ฎ๊ธฐ๋ฉฐ ์กฐ๊ธ ๋ ํด๋ฆฐํ ๊ฐ์ฒด์งํฅ์ ์ธ ์ฝ๋๋ก ๋ฆฌ๋ทฐ์ด๋์ ํผ๋๋ฐฑ์ ํตํด ์์ ํด๋๊ฐ๋ค. ๋ง์ด ์๊ณ ์์๋ค๊ณ ์๊ฐํ ๋ถ๋ถ์์๋ ํ์ ์ด ์์๊ณ , ์ ํ ์์ง ๋ชปํ๋ ๋ํ ์ผํ ๋ถ๋ถ๋ ์์๋๊ฐ๋ ์ค์ด๋ค. ์ธ์ฆ ๋ฐ ์ธ๊ฐ ๋ถ๋ถ์ ๊ธฐ์กด ํ๋ก์ ํธ์์๋ ์์ ๊ตฌํํ์ง๋ง, ์ด๋ฒ์๋ Spring Security.. 2022. 8. 3. ๋ฆฌํฉํ ๋ง ๊ณํ ์ค๋๋ง์ ๋ธ๋ก๊ทธ์ ๊ธ์ ์ด๋ค. ์ง๋ ๋ฉฐ์น ๋์ ํ๋ก์ ํธ๋ฅผ ๋ฐฐํฌํ๊ธฐ ์ํด AWS ๋ง๊ตฌ์ฑ์ ํ๊ณ , ํ๋ก์ ํธ๋ฅผ ๋น๋ํ๋ฉฐ ๋ฐฐํฌ๊น์ง ์์ผฐ๋ค. ๋ถํ ํ ์คํธ๋ฅผ ์๋๊ณ , ์ข์ ๊ธฐํ๋ฅผ ์ป์ด ์ฝ๋ ๋ฆฌ๋ทฐ๋ฅผ ๋ฐ๊ฒ ๋์๋ค. ๊ฒฐ๋ก ์, ์ด ์ํ๋ก ๋ถํ ํ ์คํธ๋ฅผ ์งํํ๋ ์๋ฏธ๊ฐ ์์ ์ ๋๋ก ์ฌ๊ฐํ ๋ฌธ์ ๊ฐ ๋ง์๋ค. ํ๋ก์ ํธ๋ฅผ ์์ํ๋ฉฐ ์์ฌ์ด ์ฝ๋ ์์ฑ ๋ถ๋ถ๋ ๋ง์๊ณ , ๊ถ๊ธ์ฆ๋ ๋ง์์ง๋ง, ๋๋จธ์ง ์ฃผ๊ด์ ์ธ ํ๋จํ์ ๊น๋ํ ๋ถ๋ถ์ ๋๋ฆ ๊ด์ฐฎ๊ฒ ์์ฑ์ ํ๋ค๊ณ ์๊ฐํ์๋ค. ์์ง ๊ณ ์น ๊ฒ ๋ง์๊ณ , ๋ฐฐ์ธ๊ฒ ๋ง์๊ณ , ๋ชฐ๋๋ ๊ฒ์ด ๋ง์ ๋์๋ค. ์ด๋ฐ ๋ฆฌ๋ทฐ๋ฅผ ๋ค์ ๋๋ง๋ค ๋๋ ์์ง ํ์ฐธ ๋ฉ์๊ตฌ๋. ๊ณต๋ถ ๊ธฐ๊ฐ ๋๋น ๋ง์ ์ฑ์ฅ์ ๊ฑฐ๋์๋ค๊ณ ์๊ฐํ๋๋ฐ, ๋ด๊ฐ ์์ฌ์ด ๋ง์ ๊ฑด์ง. ์ฌ์ค์ ๊ธฐ๊ฐ ๋๋น ์ฑ์ฅ์น๊ฐ ํ๊ท ์น์๋ ๊ฑด์ง. ๋ฌด๊ธฐ ํด์ง๋ค. ๋๋ฌด ๊ธํ๊ฐ? ๊ทธ๋ผ์๋.. 2022. 7. 28. 2022.06.22 ใLv.2 N-Queenใ ์ด๋ฒ ์ฃผ๋ ์ฝ๋ฉ ํ ์คํธ ์ฐ์ต์ ๋ ๋ฐ์ฐจ๋ฅผ ๊ฐํด๋ณผ ๊ณํ์ ์งฐ๋ค. ๋ค์ ์ฃผ์ ๋ชจ์ ํ ์คํธ๋ฅผ ๋ณผ ๊ณํ์ด๋ฏ๋ก ๋น์ค์ ์ข ๋ ๋ฌ๋ด์ผ๊ฒ ๋ค. ์ด๋ฒ ๊ธฐํ์ ์๋ฃ๊ตฌ์กฐ ํ๋ฒ ๋ ์ ๋ฆฌํด๋ณผ ๊ณํ๋ ๊ตฌ์ํ๋ค. https://programmers.co.kr/learn/courses/30/lessons/12952 ์ฝ๋ฉํ ์คํธ ์ฐ์ต - N-Queen ๊ฐ๋ก, ์ธ๋ก ๊ธธ์ด๊ฐ n์ธ ์ ์ฌ๊ฐํ์ผ๋ก๋ ์ฒด์คํ์ด ์์ต๋๋ค. ์ฒด์คํ ์์ n๊ฐ์ ํธ์ด ์๋ก๋ฅผ ๊ณต๊ฒฉํ ์ ์๋๋ก ๋ฐฐ์นํ๊ณ ์ถ์ต๋๋ค. ์๋ฅผ ๋ค์ด์ n์ด 4์ธ๊ฒฝ์ฐ ๋ค์๊ณผ ๊ฐ์ด ํธ์ ๋ฐฐ์นํ๋ฉด n๊ฐ์ ํธ์ programmers.co.kr ๋ฌธ์ ์ค๋ช ๊ฐ๋ก, ์ธ๋ก ๊ธธ์ด๊ฐ n์ธ ์ ์ฌ๊ฐํ์ผ๋ก๋ ์ฒด์คํ์ด ์์ต๋๋ค. ์ฒด์คํ ์์ n๊ฐ์ ํธ์ด ์๋ก๋ฅผ ๊ณต๊ฒฉํ ์ ์๋๋ก ๋ฐฐ์นํ๊ณ ์ถ์ต๋๋ค. ์๋ฅผ ๋ค์ด์ n์ด 4์ธ๊ฒฝ.. 2022. 6. 22. 2022.06.14 ใLv.2 ๋ฉ์ฉกํ ์ฌ๊ฐํใ ๋ฌธ์ ์ค๋ช ๊ฐ๋ก๊ธธ์ด๊ฐ Wcm, ์ธ๋ก ๊ธธ์ด๊ฐ Hcm์ธ ์ง์ฌ๊ฐํ ์ข ์ด๊ฐ ์์ต๋๋ค. ์ข ์ด์๋ ๊ฐ๋ก, ์ธ๋ก ๋ฐฉํฅ๊ณผ ํํํ๊ฒ ๊ฒฉ์ ํํ๋ก ์ ์ด ๊ทธ์ด์ ธ ์์ผ๋ฉฐ, ๋ชจ๋ ๊ฒฉ์ ์นธ์ 1cm x 1cm ํฌ๊ธฐ์ ๋๋ค. ์ด ์ข ์ด๋ฅผ ๊ฒฉ์ ์ ์ ๋ฐ๋ผ 1cm × 1cm์ ์ ์ฌ๊ฐํ์ผ๋ก ์๋ผ ์ฌ์ฉํ ์์ ์ด์๋๋ฐ, ๋๊ตฐ๊ฐ๊ฐ ์ด ์ข ์ด๋ฅผ ๋๊ฐ์ ๊ผญ์ง์ 2๊ฐ๋ฅผ ์๋ ๋ฐฉํฅ์ผ๋ก ์๋ผ ๋์์ต๋๋ค. ๊ทธ๋ฌ๋ฏ๋ก ํ์ฌ ์ง์ฌ๊ฐํ ์ข ์ด๋ ํฌ๊ธฐ๊ฐ ๊ฐ์ ์ง๊ฐ์ผ๊ฐํ 2๊ฐ๋ก ๋๋์ด์ง ์ํ์ ๋๋ค. ์๋ก์ด ์ข ์ด๋ฅผ ๊ตฌํ ์ ์๋ ์ํ์ด๊ธฐ ๋๋ฌธ์, ์ด ์ข ์ด์์ ์๋ ์ข ์ด์ ๊ฐ๋ก, ์ธ๋ก ๋ฐฉํฅ๊ณผ ํํํ๊ฒ 1cm × 1cm๋ก ์๋ผ ์ฌ์ฉํ ์ ์๋ ๋งํผ๋ง ์ฌ์ฉํ๊ธฐ๋ก ํ์์ต๋๋ค. ๊ฐ๋ก์ ๊ธธ์ด W์ ์ธ๋ก์ ๊ธธ์ด H๊ฐ ์ฃผ์ด์ง ๋, ์ฌ์ฉํ ์ ์๋ ์ ์ฌ๊ฐํ์ ๊ฐ์๋ฅผ ๊ตฌํ๋ solutio.. 2022. 6. 14. 2022.05.31 ใLv.3 ๋์คํฌ ์ปจํธ๋กค๋ฌใ ์ค๋๋ง์ ์ฝํ ๋ฌธ์ ๋ฅผ ํ์ด๋ณด์๋ค. ํ ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ด์ฉํ ๋ฌธ์ ์ธ๋ฐ, ์ฃผ๋ก ์ฐ์ ์์ ํ๋ฅผ ์ด์ฉํด ๋ฌธ์ ๋ฅผ ํ๋ฉด ๋๋ค๋ ๊ฒ์ ๋ฐฐ์ ๋ค. ํ๋ก์ ํธ ๋๋ฌธ์ ์๊ฐ์ด ๊ฑฐ์ ์ ๋๋๋ฐ ์งฌ์งฌํ ํธ๋ ค๊ณ ๋ ธ๋ ฅ์ ์ข ํด์ผ๊ฒ ๋ค. ํ์ด ๊ณผ์ ์ ์ค๋ช ํ๊ฒ ๋ค. ๋ฌธ์ ์ค๋ช ํ๋๋์คํฌ๋ ํ ๋ฒ์ ํ๋์ ์์ ๋ง ์ํํ ์ ์์ต๋๋ค. ๋์คํฌ ์ปจํธ๋กค๋ฌ๋ฅผ ๊ตฌํํ๋ ๋ฐฉ๋ฒ์ ์ฌ๋ฌ ๊ฐ์ง๊ฐ ์์ต๋๋ค. ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ๋ฐฉ๋ฒ์ ์์ฒญ์ด ๋ค์ด์จ ์์๋๋ก ์ฒ๋ฆฌํ๋ ๊ฒ์ ๋๋ค. ์ ํ ์ฌํญ jobs์ ๊ธธ์ด๋ 1 ์ด์ 500 ์ดํ์ ๋๋ค. jobs์ ๊ฐ ํ์ ํ๋์ ์์ ์ ๋ํ [์์ ์ด ์์ฒญ๋๋ ์์ , ์์ ์ ์์์๊ฐ] ์ ๋๋ค. ๊ฐ ์์ ์ ๋ํด ์์ ์ด ์์ฒญ๋๋ ์๊ฐ์ 0 ์ด์ 1,000 ์ดํ์ ๋๋ค. ๊ฐ ์์ ์ ๋ํด ์์ ์ ์์์๊ฐ์ 1 ์ด์ 1,000 ์ดํ์ ๋๋ค. ํ๋๋์คํฌ.. 2022. 5. 31. 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. ์ด์ 1 2 3 ๋ค์ ๋ฐ์ํ