๋ฐ์ํ IT Blog420 ์ ๋ฌด์ ๋ฐ๋ก ์ฐ๋ SQL ํ๋ 2 - SQL ํ๋ ์ค์ต (1) ์ง๋ ํฌ์คํ ์์ SQL ํ๋ ์ด๋ก ์ ๋ํด ์ดํด๋ณด์๋๋ฐ์, ์ด๋ฒ ํฌ์คํ ์์๋ ์ค์ ์ฌ๋ฌ ํ ์ด๋ธ์ ๋ฐ์ดํฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ฟผ๋ฆฌ์ ๋ฌธ์ ์ ์ ํ์ ํ๊ณ , ํ๋ํ์ฌ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค.(์ค์ ํ๋ ์ SQL ๋ฌธ์ ํ์ธํ์ฌ ๋ฌด์์ด ๋ฌธ์ ์ธ์ง ํ์ ํด๋ณด๊ณ , ์ง์ ๊ฐ์ ํด๋ณด๊ณ ํ๋ ํ SQL ๋ฌธ์ ํ์ธํ๋ ๋ฐฉ์๋ ์ข์ ๊ฒ ๊ฐ์ต๋๋ค.) ์ ์ฑ SQL ํ๋์ผ๋ก ์ด๋ณด์ ํ์ถํ๊ธฐ์ค๋ฌด์ ์ธ SQL ํ๋ ์ ์ฐจ ์ดํดํ๊ธฐ1. SQL ๋ฌธ ์คํ ๊ฒฐ๊ณผ & ํํฉ ํ์ ๊ฒฐ๊ณผ ๋ฐ ์์์๊ฐ ํ์ธ์กฐ์ธ / ์๋ธ์ฟผ๋ฆฌ ๊ตฌ์กฐ๋๋ฑ / ๋ฒ์ ์กฐ๊ฑด2. ๊ฐ์์ ํ ์ด๋ธ์ ๋ฐ์ดํฐ ๊ฑด์SELECT ์ ์ปฌ๋ผ ๋ถ์์กฐ๊ฑด์ ์ปฌ๋ผ ๋ถ์๊ทธ๋ฃจํ / ์ ๋ ฌ ์ปฌ๋ผ3. ๋น๊ฐ์์ ์คํ๊ณํ์ธ๋ฑ์ค ํํฉ๋ฐ์ดํฐ ๋ณ๊ฒฝ ์ถ์ด์ ๋ฌด์ ํน์ง4. ํ๋ ๋ฐฉํฅ ํ๋จ & ๊ฐ์ / ์ ์ฉ (ํ ์คํธ) SQL ๋ฌธ ๋จ์ ์์ ์ผ๋ก ์ฐฉํ ์ฟผ๋ฆฌ .. 2024. 10. 8. ์ ๋ฌด์ ๋ฐ๋ก ์ฐ๋ SQL ํ๋ 1 - SQL ํ๋ ์ด๋ก ํด๋น ํฌ์คํ ์ ์ ๋ฌด์ ๋ฐ๋ก ์ฐ๋ SQL ํ๋ ๋์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์์ฑํ์์ต๋๋ค. ์ด์ ์ง์ฅ์์๋ ์ฃผ๋ก ์ค๋ผํด์ ์ฌ์ฉํ์๊ณ , ์์ผ๋ก๋ MySQL(MariaDB, Postgresql...) ์ ์ฌ์ฉํ ์์ ์ด๊ธฐ์ ๊ด๋ จํ์ฌ ์คํ ๊ณํ ๋ฐ ์ฌ๋ฌ SQL ํ๋ ๊ธฐ๋ฒ๋ค์ ๋ํด ์ ๋ฆฌํด ๋ณด๊ณ ์ ํฉ๋๋ค. ์์ ์ Real MySQL ๋์๋ฅผ ํตํด ์ด๋ก ์ ์ผ๋ก ํ์ตํ์์ง๋ง, ์ค๋ผํด์ ์ฃผ๋ก ์ฌ์ฉํ๋ค๋ณด๋ MySQL์ ์ฃผ์ ์คํ ๊ณํ์ ๋ํด์๋ ์ ๋ฆฌ ์ฐจ์์์ ๋ค์ ์ดํด๋ณด๊ฒ ์ต๋๋ค. ์ฑ ์ ์์ ๋ค์ ํตํด ํ์์ ์ด๋ก ์ผ๋ก๋ง ์๊ณ ์์๋ ๋ด์ฉ๋ค์ด๋ ๊ฒฝํ์ด ์์๋ ํ๋๋ค ๋ฑ ๋ค์ํ๊ฒ ๊ฒฝํํด๋ณผ ์ ์์ด ์ข์์ต๋๋ค.์ฑ ์ ์์ ๋ค์ ํตํด ์ ํ ์๋ก์ด ์ ๊ทผ์ด๋, ํ์์ ์ด๋ก ์ผ๋ก๋ง ์๊ณ ์์๋ ๋ด์ฉ๋ค, ์กฐ๊ธ์ด๋๋ง ๊ฒฝํ์ด ์์๋ ์ฟผ๋ฆฌ ๋ฑ ์ ํด์ง ๋ฐ์ดํฐ ํ์์ด๊ธด .. 2024. 10. 7. Modern Java: An In-Depth Guide from Java 8 to Java 21 Modern Java์ ๋ํด, Java 8 ~ Java 21๊น์ง์ ๋ณ๊ฒฝ์ง์ ์ ์ ๋ฆฌํด๋ณด๋ ํฌ์คํ ์ ๋๋ค. ํด๋น ํฌ์คํ ์ ์๋ ๋ธ๋ก๊ทธ๋ฅผ ๋ฒ์ญํ ํฌ์คํ ์ ๋๋ค.https://medium.com/@akineralkan/modern-java-an-in-depth-guide-from-version-8-to-21-by-akiner-alkan-f89b50e13c72 Modern Java: An In-Depth Guide from Version 8 to 21 | by Akiner AlkanDiscover Java’s evolution from 8 to 21, unveiling features like lambdas to sealed classes and records.medium.com ์๋ฐ 8์ ์์์ผ๋ก ํฅ๋ฏธ๋ก์ด ๊ธฐ๋ฅ๋ค์.. 2024. 9. 8. "์ค๋ฌด๋ก ํตํ๋ ํด๋ฆฐ ์ฝ๋" ๋์ ๋ฆฌ๋ทฐ ํ๋น๋ฏธ๋์ด์ ๋๋๋ฆฌ๋ทฐ์ด๋ค 2024๋ฅผ ํตํด 8์, ์ค๋ฌด๋ก ํตํ๋ ํด๋ฆฐ ์ฝ๋ (Clean Code Cookbook) ๋์๋ฅผ ์ ๊ณต ๋ฐ์ ์ฝ์ด๋ณด๊ฒ ๋์์ต๋๋ค. ์ฑ ์ ์ฝ 500p ์ ๋์ ๋ถ๋์ผ๋ก ์์ ํธ์ ์๋๊ณ ์, ํด๋ฆฐ ์ฝ๋์ ๋ํด ๊ด์ฌ์ด ๋ง๊ธฐ๋ ํ๊ณ , ์์ ์ ์ฝ์๋ ํด๋ฆฐ ์ฝ๋ ์๊ฐ๋ ๋์ ์ฝ์ด๋ณด๊ฒ ๋์๋ค์. ์ ๋ถ ์ฝ์ง๋ ๋ชปํ๊ณ , 60%์ ๋๋ง ์ฝ์ ์ํ์์ ๋ ์ฝ์ผ๋ฉด์ ๋ด์ฉ์ด ์ถ๊ฐ๋ ์ ์์ต๋๋ค. ๊ฒฐ๋ก ๋ถํฐ ๋ง์๋๋ฆฌ๋ฉด ํด๋ฆฐ ์ฝ๋ (Clean Code) ๋์์ ๋น์ทํ ๋ด์ฉ๋ค์ด ๋ง์์ด์ ํด๋ฆฐ ์ฝ๋๋ฅผ ์ฝ์๋ค๋ฉด, ๊ตณ์ด ์ด ์ฑ ์ ๋ณด์ง๋ ์์๋ ๋ ๊ฒ ๊ฐ์ต๋๋ค..(?) 2์ฅ ๊ณต๋ฆฌ ์ค์ 38p, ์ํํธ์จ์ด๋ ์๋ฎฌ๋ ์ดํฐ๋ฅผ ๊ตฌ์ถํ๋ ๊ฒ๊ณผ ๊ฐ์ผ๋ฉฐ MAPPER (๋งคํผ) ๋ผ๋ ์ฝ์ด๋ก ํํํฉ๋๋ค.MAPPER (Model: Abstrac.. 2024. 8. 26. ์ผํธ ๋ฐฑ์ Tidy First? ๋์ ๋ฆฌ๋ทฐ ํ๋น๋ฏธ๋์ด์ ๋๋๋ฆฌ๋ทฐ์ด๋ค2024๋ฅผ ํตํด 5์, ์ผํธ ๋ฐฑ์ Tidy First? ๋์๋ฅผ ๋ฐ์ ์ฝ๊ฒ ๋์์ต๋๋ค. ์ฑ ์ ๊ต์ฅํ ์๊ณ , ์ ๊ธฐํ๊ฒ 2๊ถ์ผ๋ก ๋์ด์๋๋ฐ ๊ฐ๊ฒฉ์ ๊ฝค๋ ๋น์ธ๋ค์.๊ทธ๋์ ์ฝ๋ ์ ๋ฆฌํ๋ ์์ ์ ๋ง์ด ํ๋ค๋ณด๋, ์ฑ ์์ ๊ณต๊ฐ ๊ฐ๋ ๋ถ๋ถ์ด ๊ฝค ์กด์ฌํ๊ณ , ๊ถ๊ธ์ฆ์ ๋ํด์๋ ์ด๋์ ๋ ํด์ํ ์ ์์์ต๋๋ค. ๋ง์ง๋ง ์ฅ์ ์ด๋ก ๋ถ๋ถ์์๋ ๊ธ์ต, ์ต์ ๋ฑ์ ๊ฐ๋ ์ด ๋์ค๋๋ฐ, ๊ฐ์ธ์ ์ผ๋ก ๊ณต๊ฐ๊ฐ๋ ๋ถ๋ถ์ด ๋ง์ง๋ ์์์ ๋น ๋ฅด๊ฒ ๋๊ฒผ๋ ๊ฒ ๊ฐ๋ค์.. ์๋๋ ๋์์์ ๊ด์ฐฎ์๋, ์ ๋ฆฌํด๋์ ๋ฌธ์ฅ๋ค์ ๋๋ค. Part 01, ์ฝ๋ ์ ๋ฆฌ๋ฒ18p, ์์ ํ์ง ์์ ํ๋์ ํ๋ฉด์ ๋ถ์ํดํ๋ ๊ฒ์ ๊ฒฝ์ํ๊ฒ ์์ ์ ํ์ ํ๋ฉฐ ์ฐ๋ํ๊ฒ ์๋ ๊ฒ๋ณด๋ค ํจ์ฌ ๋ซ์ต๋๋ค. ์์ฆ ํนํ๋ ๋ง์ด ๋๋ผ๋ ๊ฐ์ ์ด๋ผ ๋์ฑ ๊ณต๊ฐ์ด ๊ฐ๋ ๋ฌธ์ฅ์ธ ๊ฒ ๊ฐ๋ค.. 2024. 5. 25. Spring @RequestBody ํ๋ ๋ฐ์ธ๋ฉ์ด ๋์ง ์๋ ์ด์ (feat. Lombok, Jackson์ ๋ค์ด๋ฐ ์ฐจ์ด) ๊ฐ์ Spring์์ ํด๋ผ์ด์ธํธ์ ์์ฒญ์ JSON ํ์์ผ๋ก ๋ฐ๊ณ , @RequestBody๋ฅผ ์ฌ์ฉํ์ฌ JSON body์ ๋ฐ์ดํฐ๋ฅผ Java Object์ ํ๋์ ์ญ์ง๋ ฌํ(Deserialize)๋ฅผ ํตํด ๊ฐ ๋ฐ์ดํฐ๊ฐ ์ ์์ ์ผ๋ก ๋ฐ์ธ๋ฉ์ด ์ด๋ฃจ์ด์ง๊ฒ ๋ฉ๋๋ค. ํ์ง๋ง, ํ๋์ ํน์ ๋ค์ด๋ฐ + Lombok์ @Getter๋ฅผ ์ฌ์ฉํ ๋ ๋ฐ์ธ๋ฉ์ด ์ ์์ ์ผ๋ก ๋์ง ์๋ ์ด์๊ฐ ์กด์ฌํ๋๋ฐ์, ์ด์ ๊ด๋ จํ์ฌ ๊ฐ๋ตํ ์ดํด๋ณด๊ฒ ์ต๋๋ค. ### Send POST request with json body POST http://localhost:8080/api/v1/test Content-Type: application/json { "pId": "pId", "poId": "poId" } ์๋ฅผ ๋ค์ด, ์์ ๊ฐ์ ์๋ฒ ์ฝ๋๊ฐ ์กด์ฌํ๊ณ ํด๋ผ.. 2024. 3. 20. Spring Swagger(springdoc-openapi) Unable to render this definition ์ค๋ฅ Spring ์์ ๋ฌธ์ํ๋ฅผ ์ถ๊ฐํ๊ณ ์ Swagger(Springdoc-openapi)๋ฅผ ์ถ๊ฐํ๋ ค๊ณ ํ๋๋ฐ, ์๋์ ๊ฐ์ ๋ฌธ๊ตฌ๊ฐ ๋์ต๋๋ค. Unable to render this definition ... ์ค์ api-docs URL๋ก ์ ๊ทผํด๋ณด๋ฉด, ์๋์ ๊ฐ์ด ๋ฉ์์ง๊ฐ ์ ์์ ์ผ๋ก ์ปจ๋ฒํฐ๊ฐ ์๋์ด ๋์ค๋ ๋ฏ ํ ํ์์ด ๋ฐ์ํฉ๋๋ค. ํ์ฌ ํ๋ก์ ํธ์์๋ MessageConverter ๋ฅผ Customํ์ฌ ์ฌ์ฉํ๊ณ ์๊ณ , ๋๋ต์ ์ผ๋ก ์๋์ ๊ฐ์ด ์ฌ์ฉ์ค์ ๋๋ค. @Override public void configureMessageConverters(List 2024. 3. 4. ์ ๊ท ์์คํ ๊ตฌ์ถํ๊ธฐ (feat. MSA, ๋ฐฑ์คํผ์ค) 2023๋ , ํ ๋ด๋ถ์์๋ `ํฉํ ๋ฆฌ` ๋ผ๊ณ ๋ถ๋ฅด๋ ์ ๊ท ์์คํ ์ ๊ตฌ์ถํ์ต๋๋ค.๊ฐ๋ฐ์๋ก์ ๊ฒฝ๋ ฅ์ด ๋ง์ง๋ ์์ง๋ง, ๊ฐ์ฅ ๊ฒฝํ์ด ์ข์๋ ํ๋ก์ ํธ์๊ณ , ์ฒ์์ผ๋ก ํ๋ก์ ํธ ๋ค์ด(?) ํ๋ก์ ํธ๋ฅผ ์งํํ๋ ๊ฒ ๊ฐ์ต๋๋ค. ์๋ ์๋ฐ๊ธฐ ์ง๋ ํ ๊ฐ๋ฐ ๋ฒ์์์ ๊ฒช์๊ธฐ์, ํ๋ก์ ํธ ์ด๊ธฐ์๋ ๋งค์ฐ ์๊ทน์ ์ผ๋ก ์ํ๋ ๊ฒ ๊ฐ์ต๋๋ค.ํ์ง๋ง ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉฐ ์ด๋ ์ ๋ ๋ฒ์์์ ํ๋ณตํ๊ณ , ์ ์ฐจ ์ ๊ทน์ ์ผ๋ก ์ฐธ์ฌํ๋ฉฐ ์ผ์ ์ ๋น ๋ฏํ์ง๋ง ๊ต์ฅํ ์ฌ๋ฐ๊ณ ์ฆ๊ฒ๊ฒ ํ์๋๋ฐ์, ๊ด๋ จํ์ฌ ๊ฐ๋จํ ์ ๋ฆฌํด ๋ณด๊ณ ์ ํฉ๋๋ค. ์ ๊ท ์์คํ ๋ฐฐ๊ฒฝ๊ธ์ก๊ถ์ด๋ผ๊ณ ๋ถ๋ฆฌ๋ ๊ธฐํํฐ์ฝ์, ์ ํด์ง ๊ธ์ก ๋ด์์ ์ฌ๋ฌ ๋ฒ ์ฌ์ฉ์ด ๊ฐ๋ฅํ ์ํ์ ๋๋ค.์ ์คํ๋ฒ ์ค๋ฅผ ์๋ก ๋ค์๋ฉด 20,000์ ํ๋ ๋ด์์ ์์ ๋กญ๊ฒ ์ฌ์ฉ์ด ๊ฐ๋ฅํ ์คํ๋ฒ ์ค ๊ธ์ก๊ถ ์ํ์ ๋๋ค. ํ์ง๋ง ํ์ฌ ๊ธ์ก๊ถ ๊ด๋ จํด.. 2024. 1. 19. Spring ์ค์ผ์ฅด๋ฌ ๋ก์ง์ด ๋ฉํฐ ์๋ฒ ์ค ํ ์๋ฒ์์๋ง ์คํ๋๋๋ก ์ค์ ํ๊ธฐ ์๋น์ค๋ฅผ ์ด์ํ๋ฉด ์ต์ํ 2๋ ์ด์์ ๋ฉํฐ ์๋ฒ๋ฅผ ์ฌ์ฉํ์ฌ ์ด์์ ํฉ๋๋ค. ์๋น์ค์์ ํน์ ์๊ฐ์๋ง ์ํ๋๋ ๋ฐฐ์น์ฑ ๋ก์ง์ด ์กด์ฌํ๋ค๋ฉด, ๋ฐฐ์น ์๋ฒ๋ฅผ ๋ณ๋๋ก ๋๊ธฐ๋ ํ์ง๋ง ํ๋์ ํ๋ก์ ํธ์์ ์ค์ผ์ฅด๋ฌ๋ฅผ ์ค์ ํ๊ธฐ๋ ํฉ๋๋ค. ์ด๋ ์ค์ผ์ฅด๋ฌ๋ฅผ ์ ์ฉํ๋ฉด ์ค์ ์ด์ ํ๊ฒฝ์์ A, B ์๋ฒ ๋ชจ๋ ์ค์ผ์ฅด์ด ๋๋ฉด์ ๋ก์ง์ด 2๋ฒ ์คํ๋ ์ ์๋๋ฐ์, ์ด์ ๊ด๋ จํ์ฌ ์กฐ๊ธ ์ฐพ์๋ณด๋ ๋๋ถ๋ถ์ ํฌ์คํ ์์ ShedLock? ์ ์ฌ์ฉํ์ฌ ํด๊ฒฐํ๋ ๋ฏํ๋ฐ, Spring Profile ์ ์ฌ์ฉํ๋ฉด ๋ ๊ฐ๋จํ๊ฒ ํด๊ฒฐํ ์ ์์ต๋๋ค. ์์ ๊ฐ์ด ์ค์ผ์ค๋ฌ๊ฐ ์กด์ฌํ๋ ์ปดํฌ๋ํธ์ @Profile ์ ์ค์ ํ๊ณ , ์ ํ๋ฆฌ์ผ์ด์ ์ ์คํํ ๋ ํ๊ฒฝ๋ณ์์ ์ค์ ํ๋ฉด ๋ฉ๋๋ค. IntelliJ Run/Debug Configurations Application.. 2023. 12. 30. Java ํด๋์ค ์ค๊ณ ์์ ํ๊ฒ ์ ํ๊ธฐ (feat. ์์ง๋) ์ง๋ ํฌ์คํ Java ํด๋์ค ์ค๊ณ ์์ ํ๊ฒ ์ ํ๊ธฐ ํธ์์๋ ํด๋์ค ์ค๊ณ์ ๊ด๋ จํ์ฌ ๋ค์ ๋ด์ฉ๋ค์ ์ดํด๋ดค์๋๋ฐ์, ์์ฑ์๋ฅผ ํตํด ์ ์์ ์ธ ๊ฐ ์ค์ ํ๊ธฐ ๋ณ์๋ฅผ ๋ถ๋ณ์ผ๋ก ๋ง๋ค์ด์ ์์ํ์ง ๋ชปํ ๋์ ์๋ฐฉํ๊ธฐ ๋ถ๋ณ์ ๋ณ๊ฒฝํด์ผ ํ๋ ๊ฒฝ์ฐ, ์๋ก์ด ์ธ์คํด์ค๋ฅผ ์์ฑํ๊ธฐ ๋ฉ์๋ ๋งค๊ฐ๋ณ์์ ์ง์ญ ๋ณ์๋ ๋ถ๋ณ์ผ๋ก ๋ง๋ค๊ธฐ ๋ฉ์๋์ ์๋ชป๋ ๊ฐ์ ์ ๋ฌ์ ์๋ฐฉํ๊ธฐ ์ด๋ฒ ํฌ์คํ ์์๋ ์์ง๋๋ฅผ ๊ธฐ์ค์ผ๋ก ํด๋์ค ์ค๊ณ์ ๊ด๋ จ๋ ๋ด์ฉ์ ์ ๋ฆฌํด ๋ณด๊ฒ ์ต๋๋ค. ์์ง๋๋, 'ํด๋์ค ๋ด๋ถ์ ์๋ ๋ฐ์ดํฐ์ ๋ก์ง ์ฌ์ด์ ๊ด๊ณ๊ฐ ์ผ๋ง๋ ๊ฐํ์ง ๋ํ๋ด๋ ์งํ' ๋ก ์ ์ํฉ๋๋ค. 1. static ๋ฉ์๋ ์ค์ฉ static ๋ฉ์๋๋ ์ธ์คํด์ค๋ฅผ ์์ฑํ์ง ์๊ณ ์ฌ์ฉํ ์ ์๋ค๋ ํธ๋ฆฌํจ์ด ์์ง๋ง, ๋ค๋ฅธ ํํธ์ผ๋ก๋ ์์ง๋๊ฐ ๋ฎ์์ง ์ ์์ต๋๋ค. static ๋ฉ์๋.. 2023. 12. 20. ์ด์ 1 2 3 4 5 6 ยทยทยท 42 ๋ค์ ๋ฐ์ํ