์ ์ฒด ๊ธ244 [์ด๋ฒคํธ ์์ฑ๊ณผ ๋ง์ดํฌ๋ก์๋น์ค ์ํคํ ์ฒ] CH.1 ๋๋ฉ์ธ ์ฃผ๋ ์ค๊ณ ํ์ฌ ๋ค๋๊ณ ์๋ ํ์ฌ๋ ์ค - ํ ๊ตฌ์กฐ๋ก ๋๋์ด ์๋ค.๋๋ ์ ํ์ค ๋ฐฑ์๋ ์์ง๋์ด์ธ๋ฐ, ๊ฒฉ์ฃผ๋ก ์ ํ์ค ๋ฐฑ์๋ ํ์๋ฅผ ์งํํ๋ค. ํ์ฌ ์ํด ์๋ ์ฑ์ฅํ์์ ํ๋ก ํธ์๋ ๋ถ๋ค์ ์ ํ์ค ํ๋ก ํธ์๋ ๊ฐ๋ฐ์ ๋ถ๋ค๋ผ๋ฆฌ ํ ์คํธ ๊ด๋ จ ์คํฐ๋๋ฅผ ํ์ ๋ค๊ณ ํ์ฌ,๋ฐฑ์๋๋ ๋ด๊ฐ ํ๋ฒ ์คํฐ๋๋ฅผ ์ ์ํ๋ฉด ์ด๋จ๊น๋ ์๊ฐ์ด ๋ค์๋ค!ํ์ ๋, ์คํฐ๋ ์ฃผ์ ์ ์์์ ๋ํด์ ์์ค๋ฅผ ๋์ก๊ณ , ๋ ํฌํจ 5๋ช ์ด์ ์ ํ์ค ๋ฐฑ์๋ ์คํฐ๋๋ฅผ ์งํํ๊ฒ ๋์๋ค. ํ์ฌ ํ & ์ค ๋ณ๋ก ๋ง์ดํฌ๋ก ์๋น์ค๋ฅผ ์ด์ ์ค์ด๋ฏ๋ก,์ฒซ ์์์ ๋น๊ต์ ๊ฐ๊ฒฐํ๊ณ ์ต์ํ ๊ฐ๋ ์ธ ์ด๋ฒคํธ ์์ฑ ํ์ฉํ ๋ง์ดํฌ๋ก ์๋น์ค ์ํคํ ์ฒ์ ๋ํ ์ฃผ์ ๋ก ์งํํ๊ฒ ๋์๋ค.๋ด๊ฐ ์งํํ๋ ์คํฐ๋๋ง ๋ญ ๊ฑฐ์ 3๊ฐ์ธ๋ฐ.. ๊ทธ๋๋ ๊ฐ์ด ํ๋ฉด ๋ค ์ข์ ๊ฑฐ์ง~~ใ ใ ์ด ์คํฐ๋๋ฅผ ๋น ๋ฅด๊ฒ ๋ง์น๊ณ , ํ์ฌ ์์ค์.. 2025. 2. 13. [Spring Boot] Restclient & HttpInterface ์กฐํฉ ์ฌ์ฉ ์, ์์ฒญ ์๋ต์ Logging ํด๋ณด์ ๋ง์ Spring ๊ฐ๋ฐ์๋ค์ด RestClient ๋ฅผ ์ฌ์ฉํ๋ฉด์, Spring์ด API ํธ์ถ ๋๊ตฌ์ ๊ณตํต์ ์ ์ถ์ํํด์ ํ๋์ Adapter ์ธ Http Interface ์กฐํฉ์ ์ฌ์ฉํ๊ณ ์๋ ๋ฏ ํ๋ค. ์ฅ์ ์ ๋ฐ๋ณต๋๋ RestClient ์ ์ฒด์ด๋ ์ฝ๋๋ฅผ ๊ณตํตํ ํ ์ ์์ผ๋ฉฐ, Open feign ์ ์ฌ์ฉํ๋ฏ์ด Interface ํ๋๋ก ํธ๋ฆฌํ๊ฒ ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ค๋ ์ฅ์ ์ด ์๋ค. ์๋น์ค ํ๊ฒฝ์์ ์ฌ์ฉํ๋ ค๋ฉด, ์ข ๋ ๊ณ ๋ํ๋ฅผ ํด์ผํ์ง ์๊ฒ ๋๊ฐ.์ด์์์๋ ๊ฐ์ฅ ์ค์ํ ๊ฒ์ด logging ์ด๋ค.๊ธฐ๋ณธ์ ์ผ๋ก ์์ฒญ๊ณผ ์๋ต์ logging ํด๋๋ ํธ์ด trace ๋ฅผ ์ถ์ ํ๊ธฐ ํจ์ฌ ์์ํ ๊ฒ์ด๋ค. ํธ์ถํ๋ API ๊ฐ ๋ง์ ์๋ก configuration ํด์ผ ํ๋ rest client ์ Bean ๋ฑ๋ก ์ฝ๋๋ ๋ง์์ง ๊ฒ์ด๋ฏ.. 2025. 1. 6. [ํ๊ณ ] 2024๋ ์ ๋ง์น๋ฉฐ ํ์๋ก ๊ฐ๋ฐ ๊ฒฝ๋ ฅ์ด ๋ฒ์จ 2๋ ์ด ๋์๋ค.์๊ทธ์ ์ฐ๋ง ํ๊ณ ๋ฅผ ์์ฑํ์ ๋๊ฐ 1๋ ์ฐจ์๋๋ฐ, ์๊ฐ ์ฐธ ๋น ๋ฅด๊ฒ ํ๋ฅด๋ ๊ฒ ๊ฐ๋ค. ๐ ์ฌํด๋ ์ฐธ ๋ค์ํ ์ผ๋ค์ด ์์๋ค.์ด์ง ์ด๋ผ๋ ๋น ์ด๋ฒคํธ๊ฐ ์์๊ธฐ๋ ํ๊ณ , ๋ค์ํ ์ฌ๋๋ค๊ณผ ๊ต๋ฅํ๋ฉฐ ์ ์ตํ ๊ฒฝํ์ ์ป๊ธฐ๋ ํ๋ค. 2024๋ ์ ์์๋ถํฐ ์ด์ง์ ์ํด ์ค๋นํ๋ ๊ธฐ๊ฐ๋ค์ด์๋ค.์ด์ง์ ๊ฒฐ์ฌํ๊ฒ ๋ ์ด์ ๋ก ๊ฐ์ฅ ๊ฐ์ฆ์ด ๋ฌ๋ ์์๋ค์๋ด๊ฐ ์ํ๋ ์๋น์ค์ ๊ฐ๋ฐ์ ํ๋ ๊ฒ๊ณผ ๋ ๋ค์ํ ๊ธฐ์ ๋ค์ ์ตํฉํด์ ์ฌ์ฉํด๋ณด๋ ์์ ๋ก์ด ํ๊ฒฝ,๊ทธ๋ฆฌ๊ณ ๋ ์ฒด๊ณ์ ์ธ ๊ธฐ์ ๊ตฌ์กฐ๋ฅผ ๋ฐฐ์ธ ์ ์๋ ํ๊ฒฝ๊ณผ ์ ๋ฐฐ๋ค์ ์ํ๋ค. ์คํฐ๋๋ฅผ ๋งค์ฃผ ์งํํ์ง๋ง, ์ด๋ฒ ๋งํผ์ ์ด์ง์ ๋ํ ํฌ์ปค์ค๋ฅผ ๋ง์ถ๊ธฐ ์ํด ์ฃผ์ ๋ฅผ ์ ์ ํ์๋ค.๋ฐฑ์๋ ์์ง๋์ด๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๊ตฌํ ์ค๋ ฅ์ ๊ธฐ๋ณธ์ด๊ณ , CS ์ง์ & ์ํคํ ์ฒ ์ค๊ณ ๋ฅ๋ ฅ๊ณผ DB์.. 2024. 12. 25. [Delta Lake] DB Sink ๋๋ ๊ฑด๋ค์ ๋ชจ์๋ฅผ ์ค์ฌ๋ณด๊ธฐ ๋๋ ๋ฐฑ์๋ ์์ง๋์ด์ด์ง๋ง, Databricks ํ์ฉํ ๋ฐ์ดํฐ ์์ง๋์ด๋ง ์ ๋ฌด๋ ๊ฒธํ๊ณ ์๋ค.์ถํ ๊ฐ๋ฐ ์ปค๋ฆฌ์ด๋ฅผ ๋ฐ์ดํฐ ์ชฝ์ผ๋ก ์ ํฅํ๊ณ ์ถ๊ธฐ๋ ํ์ฌ, ํ์ฌ ํ์ฌ์ ์ ์ฌ ์ดํ ์ง์์ ์ธ ๋ฉด๋ด์์ ๋ฐ์ดํฐ ์ ๋ฌด๋ฅผ ํ๊ณ ์ถ๋ค๊ณ ์ ๊ทน์ ์ผ๋ก ์ดํ์ ํ๊ณ , ์ฑํฐ ๋ฆฌ๋๋ถ์ ์ด๋ฅผ ํ์พํ ๋ฐ์๋ค์ฌ์ฃผ์ จ๋ค. ์ํ๋ ์ ๋ฌด๋ฅผ ๊ฒธํ๊ฒ ๋์ด ์ ๋ง ํ๋ณตํ๋ค. Databricks๋ฅผ ์ฌ์ฉํ๋ฉฐ ์ฌ์ฉํ๋ API๋ Apache Spark๋ฅผ ์ฌ์ฉํ๋ค.์ฌ์ค ์ ๊ทน์ ์ธ ๋ฐ์ดํฐ ์์ง๋์ด๋ง๋ณด๋ค๋ ๋ฐ์ดํฐ ํ๋ซํผ, ๋ฐ์ดํฐ ๋ถ์ํ์์ ๋ง๋ค์ด์ฃผ์ Raw Data๋ฅผ ์๋น์ค์ ๋ง๊ฒ ๊ฐ๊ณตํ์ฌ Delta table์ ์ ์ฌํ ํ, ์ด๋ฅผ DB Sink ํ๋ ์ฉ๋์ ๊ฐ๋ฐ์ ์งํํ๊ณ ์๋ค. ์ฒ์ ํ์ดํ๋ผ์ธ์ ๊ฐ๋ฐํ์ ๋๋, ์๋ฌด๊ฒ๋ ๋ชจ๋ฅด๋ ์ํ์์ ๊ณต๋ถํ๋ฉฐ ์งํํ์๊ธฐ์ ๋ชจ๋ .. 2024. 11. 30. Bean ๋ฑ๋ก์ ๋ํ ์ฌ๊ณ SpringBoot์์ Bean์ ๋ฑ๋กํ๋ ๋ฐฉ๋ฒ์ ๋ฌด์์ด ์์๊น. 1. ํด๋์ค์ ์ง์ @Component ์ ๋ ธํ ์ด์ ์ ์ฌ์ฉํ๋ ๋ฐฉ์ 2. @Configuration ์ ๋ ธํ ์ด์ ์ ํ์ฉํด @Bean ๋ฑ๋กํ๋ ๋ฐฉ์ ์ 2๊ฐ์ง ๋ฐฉ์์ด ๋ณดํธ์ ์ด๋ค. ๋ด๊ฐ ์ง๊ธ๊น์ง ์งํํ๋ ๋ณดํต์ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ ๊ณผ์ ์์๋ 1๋ฒ์ ์๋์ ์ผ๋ก ๋ง์ด ์ฌ์ฉํ๋ ๊ฒ ๊ฐ๋ค. @Configuration ๋ฐฉ์์ ๊ฒฝ์ฐ, ํต์ ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ Bean์ผ๋ก ๋ฑ๋กํ๊ธฐ ์ํจ์ด๋ผ๋ฉฐ ๋ฉด์ ์ง๋ฌธ์์ ์ ์์ ์ผ๋ก ํ์๋๋ค. ๊ทธ ๊ณ ์ ๊ด๋ ํ์, ๋์ ๊ฒฝ์ฐ๋ 2๋ฒ ๋ฐฉ์์ ์ธ๋ถ ์ค์ ์ด์ธ์ ์ฌ์ฉํ์ง ์์์๋ค. Java9์์ ๋์จ, ์๋ก์ด ์ถ์ํ ๊ฐ๋ ์ธ ๋ชจ๋์ด๋ผ๋ ๊ฐ๋ ์ด ์๋ค. ๋ชจ๋์๋ ์ข ์์ฑ(dependency)์ ๊ฐ๋ ์ด ์์ผ๋ฉฐ, Public API๋ฅผ ๋ด๋ณด๋ด๊ณ .. 2024. 10. 12. Spring boot multi datasource ๋ฑ๋ก ์ ์ฃผ์ ์ฌํญ Spring Boot Multi datasource ๋ฑ๋ก ์ ์ฃผ์ ์ฌํญ์ต๊ทผ ์งํํ๋ ํ๋ก์ ํธ๋ ์ธ๋ถ ํด๋ฌด์ผ ์ ๋ณด API๋ฅผ ํธ์ถํ์ฌ DB์ ์ ์ฌํ๋ ์๋ฐฐ์น์ฉ Spring Batch ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ๋ ๊ฒ์ด์๋ค.ํ์ฌ์๋ ์ฌ๋ฌ๊ฐ์ง DataBase๊ฐ ์๋๋ฐ, ๊ทธ ์ค ๋ฉ์ธ DB๋ฅผ ์ฌ์ฉํ๊ธฐ๋ก ํ๊ณ , spring batch ์ฉ DB๋ ๋ฐ๋ก ์ฌ์ฉํ๊ฒ ๋์๋ค.๊ทธ๋์ ๋ฉํฐ datasource bean ์ ๋ฑ๋กํด์ค์ผ ํ๋ค.๊ทธ ๊ณผ์ ์์ ์ ๋ง ๊ธฐ์ด์ ์ด์ง๋ง ์ค์ํ๋ ๋ถ๋ถ์ ์ค๋ช ํด๋ณด๊ฒ ๋ค.Multi Datasourceํ๋์ ํ๋ก์ ํธ์์ ์ฌ๋ฌ ๊ฐ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฐ๊ฒฐํ๋ ๊ฒ.spring ์์๋ ๊ธฐ๋ณธ์ ์ผ๋ก yaml ํ์ผ์ ํตํด ์ฝ๊ฒ datasource ๊ตฌ์ฑ์ด ๊ฐ๋ฅํ๋ค.๋ฐ๋ก java ์ฝ๋๋ก bean ์ ๋ฑ๋กํ ํ์๊ฐ ์์ ๊ฒ์ด๋ค.ํ์ง.. 2024. 9. 18. ๋ฒ์์, ๋์ ๊ฒฌํด ์ด๊น์์ด ํ๋ณตํ ๋ ๋ค์ ๋ณด๋ด๊ณ ์๋ค. ํ๊ณ ์ถ์ ์ผ์ ์ฌ๋ฐ๊ฒ ํ๊ณ , ์๋ก์ด ์ทจ๋ฏธ ํ๋๋ ์๊ฒผ๊ธฐ๋ ํ๊ณ , ์ฌํด ์ด๋ฃฐ ์๋ก์ด ๋ชฉํ๋ ์๊ฒจ์ ํญ์ ๋งค์ผ์ด ์ฆ๊ฒ๋ค. ์ต๊ทผ์ ์ค๋๋ง์ ๋ณด๋ ์ง์ธ์ ๋ง๋์ ๊ฐ๋ณ๊ฒ ์ ๋ ์ ๋จน์ผ๋ฉด์ ์ด๋ฐ์ ๋ฐ ์๊ธฐ๋ค์ ๋๋ด๋ค. ๊ธฐ์กด ์ ๊ณต๊ณผ ๋ค๋ฅด๊ฒ ๋์ ๊ฐ์ ์ปค๋ฆฌ์ด๋ฅผ ๊ฑธ์ด๊ฐ๊ธฐ ์ํด ์ด์ฌํ ๊ณต๋ถํ๋ฉฐ ์ค๋นํ๋ ์ค์ด์๋ค. ๊ทธ๋ฌํ ๋ํ๋ฅผ ํ๋ค๋ณด๋, ๋์ ์๋กญ๊ฒ ์๋ฒ ๊ธฐ๋ฐ ๊ฐ๋ฐ์ ๊ณต๋ถํ๋ฉฐ ์ทจ์ ๊น์ง 1๋ถ 1์ด ์๋ผ๋ฉฐ ์งํํ๋ ์์ ์ด ๋ ์ฌ๋ผ, ๊ฒฝํ๊ณผ ๊ธฐ๋ฐ ์ง์์ ์๊ธฐํ๋ฉด์ ์์ฐ์ค๋ ๋ฒ์์์ ๋ํ ์ฃผ์ ๊ฐ ํ์ด๋์๋ค. "OO์ผ ๋๋ ๊ทธ๋ ๊ฒ ์งํํด ์ค๋ฉด์, ๋ฒ์์ ๊ฐ์ ๊ฒ ์์์ด?" ์ง์ธ์ด ์ง๋ฌธ์ ๋์ก๋ค. "๊ธ์, ๋๋ ๋ฒ์์ ๊ทธ๋ฐ ๊ฑฐ ์ ๋ชจ๋ฅด๊ฒ ์ด." "๊ทผ๋ฐ ๋ชฉํ๊ฐ ๋ช ํํ๋ฉด ๋ฒ์์์ด ์ฌ ์ธ๊ฐ ์์ง ์์๊น.".. 2024. 9. 16. ์ผ์ฃผ์ผ์ ํด์๊ณผ ์๋ก์ด ์ทจ๋ฏธ ๊ฐ์ ํด์ฌ ํ ์ ์ฌ ์ ์ผ์ฃผ์ผ์ ํด์ ๊ธฐ๊ฐ์ด ์ฃผ์ด์ก๋ค.๋ฌด์์ ํ๊ณ ์ฌ์ด์ผ ํ ๊น ํ๋ค, ์ฃผ๋ณ ์ง์ธ๋ค ๊ถ์ ์ ๋ฌด๊ณํ์ผ๋ก 2๋ฐ 3์ผ ์ ์ฃผ๋ ์ฌํ์ ๋ค๋ ์๋ค.์ฐจ๊ฐ ์์ด์ ๋ถํธํ์ง๋ง, ์๋กญ๊ฒ ๋ง๋ ์ธ์ฐ๋ค์ ํตํด ์ฐจ๋ ์ป์ดํ๊ฐ๋ฉด์ ๋ปํ์ง ์๊ฒ ์ฌ๋ฐ๊ฒ ๊ตฌ๊ฒฝํ๊ณ ๋จน๊ณ ์ฌ์๋ค.์ธ์์ด ์ ๋ง ์ข๋ค๊ณ ๋๋๊ฒ, ๊ณ ๋ฑํ๊ต ์น๊ตฌ๋ฅผ ์๋ ์ธ์ฐ์ ๋ง๋ฌ๋ค๋ ๊ฒ์ด๋ค. ์ฐธ ์ธ์ ์ข๊ณ ์ ๊ธฐํ๋ค.์ฌํ์ ํฐ ๊ฐํฅ์ ์์ดํ๋ ์ฑ๊ฒฉ์ด์ง๋ง, ์ด๋ฒ์๋ ์งง๊ฒ๋ผ๋ ๋ค๋ ์ค๊ธธ ์ํ๋ค๋ ์๊ฐ์ด ๋ ๋ค.(๋ฉดํ ์ด๋ฒ ๋ ๋ ์์ ๋ฌด์กฐ๊ฑด ๋ฐ์ผ๊ฒ ๋ค.) ์ฃผ์ง์๋ ์์ํ๋ค.์ฒซ ํ์ฌ ๋์ผ ์ง๊ตฐ ๊ฐ๋ฐ์ ํ๊ณผ ์ง์์ ์ผ๋ก ์ฐ๋ฝํ๋ฉฐ ์ง๋ด๋๋ฐ, ๊ทธ ํ์ฌ ๋ค๋ ๋๋ถํฐ ํญ์ ์ฃผ์ง์๋ฅผ ๊ฐ์ด ํ์๊ณ ๊ถ์ ํ์๋ค๐ ์ด์ง๋ ํ๊ฒ ๋ค ์ ๋ฒ ์ฃผ ๋ถํฐ ์์ํ๋๋ฐ, ์๋กญ๊ฒ ์ด๋์ ๋ฐฐ์๋ณด๋ ๊ฑด ์ด๋ฉด์ ์ฒ์์ด๋ค... 2024. 8. 19. [DB] ์ตํฐ๋ง์ด์ (1) Mysql ์๋ฒ๋ก ์์ฒญํ ์ฟผ๋ฆฌ๋ ์ต์ ์ผ๋ก ์คํ ๋๊ธฐ ์ํด ์ต์ ์ ์คํ ๊ณํ์ ์๋ฆฝํ๋ ์์ ์ด ํ์.๋๋ถ๋ถ์ DBMS ์์๋ ์ตํฐ๋ง์ด์ ๊ฐ ์ด๋ฐ ๊ธฐ๋ฅ์ ๋ด๋นํ๋ค.Explain ๋ช ๋ น์ผ๋ก ์ฟผ๋ฆฌ์ ์คํ ๊ณํ ํ์ธ ๊ฐ๋ฅ. Mysql ์์๋ ๋น์ฉ ๊ธฐ๋ฐ ์ต์ ํ (Cost-based optimizer, CBO) ๋ฅผ ์ฌ์ฉํ๋ค. ๊ธฐ๋ณธ ๋ฐ์ดํฐ ์ฒ๋ฆฌํ ํ ์ด๋ธ ์ค์บ ์กฐ๊ฑด- ํ ์ด๋ธ ๋ ์ฝ๋ ๊ฑด์๊ฐ ์์, ์ธ๋ฑ์ค๋ฅผ ํํ๊ธฐ ๋ณด๋ค ํ ํ ์ด๋ธ ์ค์บ ํ๋ ํธ์ด ๋ ๋น ๋ฅธ ๊ฒฝ์ฐ- where ์ ์ด๋ on ์ ์ ์ธ๋ฑ์ค๋ฅผ ์ด์ฉํ ์ ์๋ ์ ์ ํ ์กฐ๊ฑด์ด ์์ ๊ฒฝ์ฐ- ์ธ๋ฑ์ค ๋ ์ธ์ง ์ค์บ์ ์ฌ์ฉํ ์ ์๋ ์ฟผ๋ฆฌ๋๋ผ๋, ์ตํฐ๋ง์ด์ ๊ฐ ํ๋จํ ์กฐ๊ฑด ์ผ์น ๋ ์ฝ๋ ๊ฑด์๊ฐ ๋ง์ ๊ฒฝ์ฐ ์์ ๊ฐ์ ์กฐ๊ฑด์์ Mysql ์ตํฐ๋ง์ด์ ๋ ํ ํ ์ด๋ธ ์ค์บ์ ์๋ํ๋ค.ํ ํ ์ด๋ธ ์ค.. 2024. 8. 11. ๋์ ๋ฐฉ๋ฌธ 3๋ง๋ช ๋ฌ์ฑ ์ํ ์๋ 8์ ์ฆ์ 2๋ง ๋ช ๋ฌ์ฑ, 1๋ ์ด ์ฑ ์ ๋์ด์ ๋ฒ์จ ๋ฐฉ๋ฌธ์ ์ 3๋ง ๋ช ์ด๋ค. ๋ฐฉ๋ฌธ์ ์ ์ค๋ฅด๋ ์๋๊ฐ ๋ถ๋ ๊ฒ ๊ฐ๊ธฐ๋? ใ ใ 1๋ ์ ๋ ์ด๋ค ์๊ฐ์ ํ๊ณ ์์์๊น? ์ด์ฌํ ์ฝ๋ฉ ์ค์ด์๊ตฌ๋ ใ ใ ใ ใ ใ ๐ ๐ ์๊ฐ๋ ์ฐธ ๋น ๋ฅด๋ค. 1๋ ์ด ๋ฒ์จ ๋์์ผ๋ ๋ง์ด๋ค. ๊ทธ๋ ํญ์ ์๋ฒฝ๊น์ง ์ผ๊ทผํ๋ฉด์, ๊ฐ๋ฐ์ ๋ชฐ์ ํ์๋๋ฐ ๋ง์ด์ง. ๊ทธ ๋น์ ๋ง์ผ์คํค๋ ์ฐธ ์งง๊ธฐ๋ ํ๋ค. ์ฃผ๋ง ์๊ด์์ด ํญ์ ์๋ฒฝ 1, 2์ ์ผ๊ทผ ํ ๊ท๊ฐ, ์ง ๊ฐ์ ์๊ณ ๋ฐ๋ก ์ถ๊ทผ์ ๋ฐ๋ณต. ๊ทธ๋๋ ๋ณด๋์ฐผ๋ค. ์จ์ ํ ๋๋ง์ ์๋น์ค๋ฅผ ๊ฐ๋ฐํ๊ธฐ ๋๋ฌธ์ด์๋ค. DB ๊ตฌ์กฐ ์ค๊ณ, ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ, ๋ฐฐํฌ ํ๊ฒฝ ๊ตฌ์ฑ๊น์ง ๋ค ํ์ผ๋ ๋ง์ด๋ค. ์์์ ๋์ ์ฃผ์ ์๋์ด ๊ฐ๋ฐ์๋ถ๋ค๊ป๋ ์ฐธ ๊ฐ์ฌ๋๋ฆฐ๋ค. ์ด ํ์ฌ์์ ์ฐธ ๋ง์ด๋ ๋ฐฐ์ ๋ค. ์ธํ๋ผ ๊ตฌ์ฑ, ๋ฐฐํฌ ํ๊ฒฝ ๋ชจ๋ํฐ๋ง, ๊ฐ.. 2024. 7. 27. No more free! ์ธ์์ ๊ณต์ง๋ ์๋ค.์ธ์์ ๋์๊ฒ ๋น ์ง๊ฒ ์๋ค. ์ด์์ค๋ฉด์ ํญ์ ๋๊ผ๋ ๊ฒ์ ์ํ๋ ๊ฒ์ ๊ณต์ง๋ก ๋ฐ๋ ์ ์๋ค๋ ์ฌ์ค์ด๋ค.๋๊ฐ๋ ๊ฐ์น๋ , ๋ฌด์์ด๋ ์ง๋ถํด์ผ ๋ด๊ฐ ์ํ๋ ๊ฒ์ ์ป์ ์ ์๋ค. ์ํ๋ ๊ฒ์ ์์ทจํ๋ ๊ฒ์ ์ธ์๊ณผ์ ๊ฑฐ๋์ด๋ค.๋ฌด์์ธ๊ฐ๋ฅผ ์ป๊ณ ์ ํ๋ค๋ฉด, ๊ทธ์ ์์ํ๋ ๊ฐ์น๋ฅผ ๋จผ์ ์ ๊ณตํด์ผ ํ๋ค.๊ทธ๋์ผ, ๋น๋ก์ ๊ณต์ ํ ๊ฑฐ๋๊ฐ ์ฑ๋ฆฝ๋๋ค.๋ถ๊ณต์ ๊ฑฐ๋๋ ์ธ์์์ ์ฑ๋ฆฝ๋์ง ์๋๋ค. ์ฌ๊ธฐ์ ๋งํ๋ ๊ฐ์น๋ ๊ผญ ๋ฌผ์ง์ ์ธ ๊ฒ๋ง์ ์๋ฏธํ์ง ์๋๋ค.๋น๋ฌผ์ง์ , ์ฆ ์์ ์กํ์ง ์๋ ๋ฌดํ์ ๊ฐ์น๋ ๊ฐ๊ธฐ ๋ค๋ฅธ ์ํฉ์ ์ฒํ ๊ฐ์ธ๋ง๋ค ์ถฉ์กฑ์ํค๊ณ ์ ํ๋ ์๊ตฌ๊ฐ ์์ ๊ฒ์ด๋ค.๊ทธ์ ๋๋ฑํ ๊ฐ์น๋ก ๊ฑฐ๋๋ฅผ ํ๋ค๋ฉด, ์ถฉ๋ถํ ๊ณต์ ํ ๊ฑฐ๋๊ฐ ์ด๋ฃจ์ด์ง ์ ์๋ค. ๋ฌผ์ง์ ๋ค๋ฃจ๋ ์์ฅ,๋ฌดํ์ ์ง์์ ๋ค๋ฃจ๋ ๊ต์ก,๊ฐ์ ๊ณผ ๋ณธ๋ฅ ๊ทธ๋ฆฌ๊ณ ๋ฌด์์์ ์ฑ.. 2024. 7. 17. [DB] ์ธ๋ฑ์ค ๊ฐ๋ต ์ ๋ฆฌ [1] ์ธ๋ฑ์ค๋๋ค & ์์ฐจ IO๋์คํฌ ํค๋๋ฅผ 1๋ฒ, ์ฌ๋ฌ๋ฒ ์ฎ๊ธฐ๋๋? ์ฆ, ๋์คํฌ์ ์ฑ๋ฅ์ ๋์คํฌ ํค๋ ์์น ์ด๋ ์์ด ์ผ๋ง๋ ๋ง์ ๋ฐ์ดํฐ๋ฅผ ํ ๋ฒ์ ๊ธฐ๋กํ๋๋์ ๋ฐ๋ผ ๊ฒฐ์ Mysql ๋ ๊ทธ๋ฃน ์ปค๋ฐ, ๋ฐ์ด๋๋ฆฌ ๋ก๊ทธ ๋ฒํผ, InnoDB ๋ก๊ทธ ๋ฒํผ ๋ฑ์ ๊ธฐ๋ฅ์ผ๋ก ๊ฐ์ ๊ฒฐ๊ตญ ๋๋ค IO ๋ฅผ ์ค์ด๋ ๊ฒ์ด ์ฟผ๋ฆฌ๋ฅผ ๊ฐ์ ํ๋ ๊ฒ์ ์๋ฏธ์ ์ArrayList ์ SortedList ์ ์ฐจ์ด๋ฅผ ์๋๊ฐ?์์ฐจ์ ์ผ๋ก ์ ์ฅ or ์ ๋ ฌํ์ฌ ์ ์ฅ๋น ๋ฅด๊ฒ ์ ์ฌ or ๋๋ฆฌ์ง๋ง ์ ๋ ฌํ์ฌ ์ ์ฌ์ธ๋ฑ์ค๋ฅผ ์ ์ฉํ๋ค๋ ๊ฒ์ ์ฐ๊ธฐ ์ฑ๋ฅ์ ์ด๋ ์ ๋ ํฌ๊ธฐํ๊ณ , ์ฝ๊ธฐ ์ฑ๋ฅ์ ํํ๊ฒ ๋ค.B-Tree ์์ ์ธ๋ฑ์ค ํค ์ถ๊ฐ ๋ฐ ์ญ์ ์๋ณดํต์ ๊ฒฝ์ฐ, ๋ ์ฝ๋ ์ถ๊ฐ ๋น์ฉ 1 ๊ฐ์ ์ ์ธ๋ฑ์ค ์ถ๊ฐ ๋น์ฉ์ 1.5 ๋ก ์์ธกํ๋ ํธ.์ธ๋ฑ์ค ํค ์ญ์ ์ ๋ณ๊ฒฝ์ ๊ฒฝ์ฐ, InnoDB ์์ง์ .. 2024. 6. 29. [DB] ํธ๋์ญ์ ๊ณผ ๋ฝ ๊ฐ๋ต ์ ๋ฆฌ ํธ๋์ญ์ ํธ๋์ญ์ ์ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ ์ ์ฅ์์, ๊ณ ๋ฏผํด์ผ ํ ๋ฌธ์ ๋ฅผ ํ์ด์ฃผ๋ ํ์์ ์ธ DBMS ์ ๊ธฐ๋ฅ.ํธ๋์ญ์ ์ฌ์ฉ ์ ์ฃผ์์ฌํญDBMS ์ ์ปค๋ฅ์ ๊ณผ ๋์ผํ๊ฒ ๊ผญ ํ์ํ ์ต์์ ์ฝ๋์๋ง ์ ์ฉํ๋ ๊ฒ์ด ์ข๋ค. ํธ๋์ญ์ ์ ๋ฒ์๋ฅผ ์ต์ํํ๋ผ๋ ์๋ฏธ. ๊ฐ ๋จ์ํ๋ก๊ทธ๋จ์ด ์ปค๋ฅ์ ์ ์์ ํ๋ ์๊ฐ์ด ๊ธธ์ด์ง ์๋ก ์ฌ์ฉ ๊ฐ๋ฅํ ์ฌ์ ์ปค๋ฅ์ ์ ๊ฐ์๋ ์ค์ด๋ ๋ค. ๋ฉ์ผ ์ ์ก์ด๋, ํ์ผ ์ ์ก ์์ ๋ฑ, ๋คํธ์ํฌ๋ฅผ ํตํด ์๊ฒฉ ์๋ฒ์ ํต์ ํ๋ ์์ ์ ํธ๋์ญ์ ๋ด์์ ์ ๊ฑฐํ๋ผ. ์น ์๋ฒ๋ฟ ์๋๋ผ DBMS ์๋ฒ๊น์ง ์ํํ ์ํฉ ๋ฐ์ ์ ์ฅ ๋ฐ์ดํฐ์ ๋จ์ ์กฐํ์ ๊ฒฝ์ฐ๋ ํธ๋์ญ์ ์ ํฌํจํ ํ์๊ฐ ์๋ค.๋ฝ๋ ์ฝ๋ ๋ฝ๋ ์ฝ๋ ์์ฒด๋ง์ ์ ๊ทธ๋ ๊ฒ InnoDB ์คํ ๋ฆฌ์ง ์์ง์ ๋ ์ฝ๋ ์์ฒด๊ฐ ์๋๋ผ, ์ธ๋ฑ์ค์ ๋ ์ฝ๋๋ฅผ ์ ๊ทผ๋ค. ์ธ๋ฑ์ค๊ฐ ์์ ๊ฒฝ์ฐ, ๋ด๋ถ.. 2024. 6. 27. Spring Cloud OpenFeign ๋ ์ ์ฌ์ฉํด๋ณด๊ธฐ ๋ง์ดํฌ๋ก ์๋น์ค์์,Spring Boot ๋ฅผ ์ด์ฉํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ ๋๋ฉด,์ธ๋ถ API ๋ฅผ ํธ์ถํด์ผ ํ๋ ์ํฉ์ด ์กด์ฌํ๋ค. Spring ํ๋ ์์ํฌ๊ฐ ์ง์ํ๋ ์ฌ๋ฌ ๊ฐ์ง Http Client ๊ฐ ์๋ค. RestTemplate ์ ๊ฒฝ์ฐ Blocking ๋ฐฉ์์ผ๋ก Http ์์ฒญ์ ์งํํ ์ ์๋ค.ํ๋์ ์์ฒญ์ ์ํด, ์ฝ๋๋ฅผ ์์ฑํ๋ ค๋ฉด,์ฌ์ฌ์ฉ์ฑ์ ๊ณ ๋ คํ๋ค ํ ๋, ์๋ ์์ ์ปดํฌ๋ํธ๋ก ์ถ์ํ๋ฅผ ๋ง์ด ์งํํ์ฌ ๋ฒ๊ฑฐ๋ก์ด ์ฝ๋๋ฅผ ์์ฑํด์ผ ํ๋ค๋ ์ ์ด ์์๋ค.๋ฌด์๋ณด๋ค ์ด๋ ํ ์์ฒญ์ ํ๋์ง ํ๋์ ๋ค์ด์ค์ง ์์๋ค. WebClient ์ ๊ฒฝ์ฐ, Non-Blocking ๋ฐฉ์์ผ๋ก Http ์์ฒญ์ ์งํํ ์ ์๋ค.๋ฌผ๋ก Blocking call ๋ ๊ฐ๋ฅํ๋ค.๋น๋ ํจํด์ ํ์ฉํ ๋ฐฉ์์ผ๋ก, RestTemplate ๋ณด๋ค๋ ๊ฐ๋ ์ฑ์ด .. 2024. 5. 11. MapStruct! JPA Entity ๋งคํ ๊ฐ ์ฃผ์ํด์ ์ฌ์ฉํ์ ์ต๊ทผ ๋น์ ๊ฒฐ์ ๋ชจ๋๋ฅผ ๊ฐ๋ฐ ๋ฐ ๋ฐฐํฌํ๋ฉฐ, ์ฐธ์ผ๋ก ์ด์ด ์๋ ์์ ์ฝ๋ฉ ๊ด๋ จ ์ด์๋ก ์ธํด ๋ฐ์ดํฐ์ ์ด์์ด ์์๋ค. ๋ฐ๋ก, MapStruct ์ ๋๋ฌธ์ธ๋ฐ.. ํ๋ฒ ๋์ดํด๋ณด๊ฒ ๋ค. (ํญ์ ์๊ฐํ๋ ๊ฑฐ์ง๋ง, ์ฝ๋ ๋จ ํ์ค์ ํ๊ธํจ๊ณผ๊ฐ ์์ฒญ ๋๋ค.) MapStruct ๋?Java Bean ์ ํ ๊ฐ ๋งคํ ๊ตฌํ์ ๋์์ฃผ๋ ์ฝ๋ ์์ฑ๊ธฐ์ปดํ์ผ ํ์์ ์ฝ๋ ์์ฑ ๋ฐ ๋ฐํ์์์ ์์ ์ฑ ๋ณด์ฅ์์ Java code ๋ฅผ ํธ์ถํ๋ฏ๋ก ๋ค๋ฅธ ๋งคํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ณด๋ค ์๋๊ฐ ๋น ๋ฅด๋ค. (Reflection ์ ์ฌ์ฉํ์ง ์๊ธฐ ๋๋ฌธ)Annotation Processor ๋ฅผ ์ด์ฉํ์ฌ ๋งคํ ๋ฐฉ์์ ํธ๋ฆฌํจ์ ์ ๊ณต ์ฌ์ฉ ์์JAVA@Mapper public interface UserMapper { UserMapper INSTANCE = Mappers.g.. 2024. 3. 24. ์ด์ 1 2 3 4 ยทยทยท 17 ๋ค์ ๋ฐ์ํ