Spring20 JPA ์ง๊ณํจ์ sum ์ long ์ ๋ฐํํ๋ค. ์ต๊ทผ ๋๋์ ๋ฐ์ดํฐ๋ค์ ์ง๊ณํ์ฌ ์กฐํํ๋ API ํ๋ก์ ํธ๋ฅผ ์งํ ์ค์, Spring Data JPA ์ Querydsl ์ ์ด์ฉํ์ฌ ์ฟผ๋ฆฌ๋ฅผ ์์ฑํ๊ณ ์์๋ค. ์ค๋, sum ์ง๊ณ ํจ์ ๋๋ฌธ์, java object ๋ก ๋งคํ์ด ์๋๋ ๋ฌธ์ ๊ฐ ์์๋๋ฐ, ๊ทธ ์ด์ ์ ํด๊ฒฐ๊ณผ์ ์ ์ค๋ช ํด๋ณด๊ฒ ๋ค. ๊ธฐ์กด ์ฟผ๋ฆฌ @Query( """ select new service.dto.PaymentTotalSumDTO( sum(sub.totalAmount) as totalAmount, sum(sub.discount) as discount, sum(sub.usedPoint) as usedPoint ) from (select tpd.totalAmount as totalAmount, tpd.discount as discount, tpd.u.. 2023. 7. 26. [Spring Data JPA] JPA Enum ํ๋์ ๊ดํ ๋ฌธ์ ์ฐธ๋. ์ค๋ 5์๊ฐ ๋ ๋ ธ๋ค. Pagination ์ฟผ๋ฆฌ๋ฅผ ๋ ๋ฆฌ๋ API์์ ๊ณ์ 500 ์๋ฌ๊ฐ ๋์ ๊ณ์ ๋ถ์ก๊ณ ์์๋ค. ๋นจ๋ ๋์ ์ง์ ์์ง๋ง ๋ถ๊ตด์ ์์ง๋ก ํด๊ฒฐํด๋ณด๋ฆฌ๋ผ ๋ค์งํ๊ณ 1์๊ฐ๋ง์ ๋ฌธ์ ๋ฅผ ๋ฐ๊ฒฌํ๋ค ์ฆ๋ง. ๋ฌธ์ ์ ๊ฒฐ๋ก ๋ถํฐ ๋งํ๋ฉด ์๋ฒ DB์ ์๋ชป๋ ๋ฐ์ดํฐ๊ฐ ๋ค์ด๊ฐ์์๋ค. ๋ฌธ์ ๋ JPA Enum ํ๋๊ฐ @Enumerated(EnumType.STRING) ใ ฃ์ด ์๋๋ผ, Ordinal๋ก ๋ค์ด๊ฐ ๋ฐ์ํ ๋ฌธ์ ๋ค. ์ง์ ํ Enum ์์๋ ์ด 4๊ฐ ์ด๋ฉฐ, ordinal์ ๋ฒ์๋ 0~3 ์ด๋ค. 4 ์ด์์ ์ซ์๋ ์์ด์๋ ์๋ ๋ฐ์ดํฐ๋ค. ๊ทธ๋์ ๊ณ์ ์ด๋ฐ ์๋ฌ๊ฐ ๋ฐ์ํ๋ค. java.lang.ArrayIndexOutOfBoundsException: Index 5 out of bounds for length 4 ์ฟผ๋ฆฌ.. 2023. 2. 21. [Spring Data JPA] ํ๋ฐฉ ์ฟผ๋ฆฌ์ ํจ๋ฅ (feat : JPQL) ๋ฐฑ์๋ ๊ฐ๋ฐ์ ๊ธฐ๋ณธ ์์์ธ SQL์ ์์ฑํ๋ ์ค๋ ฅ์ ๋ฐ์ด๋ ์๋ก ๋ํ ๋์ ์๋ค. ์ค์ ๋ก ๋๊ท๋ชจ ํธ๋ํฝ์ด ๋ฐ์ํ๋ ์๋น์ค์์๋ ์ด ์ฑ๋ฅ์ ๋งค์ฐ ์ค์์ ํ๋๋ฐ, ์ผ๋ฐ์ ์ธ ํ๊ฒฝ์์๋ DB ์กฐํ์ ์ธก๋ฉด์์ ํฐ ์ฑ๋ฅ ๊ฐ์ ์ ์ด๋ ์ ์์ผ๋ฏ๋ก, ๊ฐ์ฅ ๊ธฐ๋ณธ์ด ๋๋ ๊ฐ์ ๋ฐฉ์์ด๋ผ๊ณ ๋ค ํ๋ค. SQL์ ๊ณต๋ถํ๊ณ , JPA ๋ฅผ ๊ณต๋ถํ๋ฉฐ ํญ์ ๋น ์ง ์ ์๋ ์๊ธฐ, ์ฑ๋ฅ ์ต์ ํ. ํญ์ ๊ณ ๋ฏผํ๋ค๊ฐ ๊ฐ์ ์ ํ ์ ์๋ ๊ธฐํ๊ฐ ์ฃผ์ด์ก๊ณ , ๊ณต๋ถํ ๋ด์ฉ์ ๋ฐํ์ผ๋ก ๋ด ์๊ฐ๊ณผ ๊ฒฐ๊ณผ๋ฅผ ์ ๋ฆฌํด๋ณด๊ฒ ๋ค. DB ERD Model opnions entity๋ฅผ paging ์ฒ๋ฆฌํด์ ์ฌ๋ฌ ๊ฐ๋ฅผ ๋ฝ์์ผ ํ๋ ์ํฉ. ์ฃผ์ด์ง ์ค์ ํ๋ผ๋ฏธํฐ๋ user_id ๋ฟ์ด๋ค. 1. ๋ณดํต ๊ฐ์ผ๋ฉด Document Entity๋ฅผ ๋จผ์ ์กฐํํ ํ, opinions ๋ฅผ ํ์ด์ง .. 2023. 2. 1. [Redisson]์ ์ด์ฉํ ๋ถ์ฐ Lock ๊ตฌํ & ๋์์ฑ ๋ฌธ์ ํด๊ฒฐ ๋ด ํ๋ก์ ํธ์ Payment๋ฅผ ๊ฐ๋ฐํ๋ฉด์ ๊ฐ์ฅ ๊ธฐ๋ณธ ์ค์ ๊ธฐ๋ณธ์ด ๋๋ ๋ฌธ์ ๋ฅผ ์ง๋ฉดํ์๋ค. ๊ทธ๊ฒ์ ๋ฐ๋ก ๋์์ฑ ๋ฌธ์ ! ์คํ๋ง๋ถํธ์ ๋ด์ฅ ์๋ฒ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ํฐ์บฃ, ์ธ๋ํ ์ฐ ๋ฑ๋ฑ์ WAS๋ก ๋์๊ฐ๋๋ฐ ์ด WAS๋ ๋ฉํฐ์ค๋ ๋ ๊ธฐ๋ฐ์ผ๋ก ๋์ํ๋ค. A๋ผ๋ ์ํ (์ฌ๊ณ 3๊ฐ) ์ [๊ฐ]๊ตฐ์ด 2๊ฐ ๊ตฌ๋งคํ๋ ค ํ๋ค. ๋์์ [๋]๊ตฐ์ด 2๊ฐ ๊ตฌ๋งคํ๋ ค ํ๋ค. ๋ฏธ์ธํ๊ฒ ๋๋ง 0.00001์ด์ ์ฐจ์ด๊ฐ ์์ ์ ์๋ค. ๊ฒฐ๊ตญ ๊ฐ๊ฐ์ ์ค๋ ๋๊ฐ ๊ฐ์ ์ํ์ ์ฌ๊ณ ๋ฅผ ์กฐํํ๋ค. ์๋๋๋ก๋ผ๋ฉด ํ ๋ช ์ ๋ชป ์ฌ์ผ ์ ์์ด๋ค. ์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ๋ฐฉ๋ฒ์ด ๋ญ๊ฐ ์์๊น? 1. Synchronized ์๋ฐ๋ก ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ด๋ค. Thread-Safe ํ๊ธฐ ๋๋ฌธ์ ๋งค์ฐ ์ข์๋ณด์ด๋, ์๋ฒ๊ฐ ์ฆ์ค๋ ๊ฒฝ์ฐ ์๋ฏธ๊ฐ ์์ด์ง๋ค. 2. Database Lock D.. 2022. 9. 27. ๊ฒฐ์ API ๋ฆฌํฉํ ๋ง - [2] (feat. WebClient) https://sweeeetgoguma.tistory.com/entry/%EA%B2%B0%EC%A0%9C-API-%EB%A6%AC%ED%8C%A9%ED%86%A0%EB%A7%81-1-feat-%EC%A0%84%EB%9E%B5-%ED%8C%A8%ED%84%B ๊ฒฐ์ API ๋ฆฌํฉํ ๋ง - [1] (feat. ์ ๋ต ํจํด) ๊ฒฐ์ API๋ฅผ ๋ฆฌํฉํ ๋ง ์์ํ๋ฉฐ ์ธ๋ถ API๋ฅผ ์ฐ๋ ๋ถ๋ถ์ ๋ํด์ ์๊ฐํด๋ดค๋ค. ๊ธฐ์กด์๋ ์นด์นด์คํ์ด๋ฅผ ์ด์ฉํ์๊ณ , ์ง๊ธ๋ ์นด์นด์คํ์ด๋ฅผ ์ด์ฉํ ๊ฒ์ด์ง๋ง, ์ถ๊ฐ์ ์ผ๋ก ๋ค๋ฅธ ๊ฒฐ์ API๋ฅผ ์ฐ๋ํ ์ ์ sweeeetgoguma.tistory.com ์ง๋ ํฌ์คํ ์ ์ด์ด์ ์์ฑํ๊ฒ ์ต๋๋ค~ ์ค์ ๊ฒฐ์ API๋ฅผ ํธ์ถํ๊ธฐ ์ํด์๋ httpClient ๊ธฐ๋ฐ์ ๋ชจ๋์ด ํ์ํ๋ค. ๊ธฐ์กด์๋ ๋๊ธฐ๋ฐฉ์, ๋ฉํฐ์ค๋ ๋๋ฅผ ์ด์ฉ.. 2022. 9. 22. WebFlux๋ ๋ฌด์์ด๊ณ , ์ ๋์๊ณ , ์ธ์ ์ฐ์ด๋๊ฐ? ์ด์ Cart API ์ฝ๋ ๋ฆฌํฉํฐ๋ง์ ๋ง๋ฌด๋ฆฌํ๊ณ , ๋ฆฌ๋ทฐ๋ฅผ ๋ฐ๊ธฐ ์ํด PR์ ์ฌ๋ ธ๋ค.ํด๋ฆฐ ํ ์ฝ๋๋ก ์์ฑํ๋ ค๊ณ ๋ ธ๋ ฅํ๊ธฐ ์ํด ๋ฆฌ๋ทฐ์ด๋์ด ์ฃผ์ ์๊ฒฌ์ ๋๋๊ณ , ํด๋ฆฐ ์ฝ๋๋ฅผ ์์ฑํ๊ธฐ ์ํ ๋ฐฉ๋ฒ์ ๊ตฌ๊ธ๋ง์ ํตํด ํ๋ฃจ ์ข ์ผ ๋ชจ๋ํฐ๋ฅผ ๋ ธ๋ ค๋ณด๋ฉฐ ํด๋์ค ๊ฐ ์ฑ ์์ ๋๋์ด ๋ณด์๋ค. ๋นจ๋ฆฌ ์ฑ์ฅํ๊ณ ์ถ๋ค!!๋ฆฌ๋ทฐ๋ฅผ ์๋๊ณ , ์นด์นด์คํ์ด๋ฅผ ์ด์ฉํ ๋๋ฉ์ธ ์ฝ๋๋ค์ ๋ฆฌํฉํฐ๋ง ํ๊ธฐ ์์, ๊ธฐ์กด์ ์ธ๋ถ API์ ํต์ ํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ํ ํ๋ฆฟ์ธ RestTemplate์ ๋์ฒด ์ฌ๋ถ์ ๋ํด ๋ ์ฌ๋๋ค.RestTemplate์ deprecated ๋์์ผ๋ฏ๋ก, WebClient์ ์ฌ์ฉ์ ๊ณ ๋ คํด๋ณด๋ผ๋ ์๊ฒฌ์ ๋ฐ์๋ค.WebClient์ ๋ํด ์์๋ณด๋ค๊ฐ ๋๊ธฐ/๋น๋๊ธฐ, ๋ธ๋กํน/๋ ผ๋ธ๋กํน์ด๋ผ๋ ๊ฐ๋ ์ ์ ์์ ๋ํด ๋ค์ ๊ณต๋ถํ๊ฒ ๋์๊ณ , ๋์๊ฐ WebFlux.. 2022. 8. 31. DB ์์ & jpa ์ธํ ํ๋ก์ ํธ์ ์ ๋ฐ์ ์ธ ๋ฆฌํฉํฐ๋ง์ ๋ค์ ์์ํ๋ฉฐ, ๊ธฐ์กด mybatis๋ฅผ ์ด์ฉํ๋ ๊ฒ์ ๊ทธ๋๋ก ์ฎ๊ฒจ์๋ค. ํ์ง๋ง SQL Mapper๋ฅผ ์ด์ฉํ ์ค๊ณ ํน์ฑ์ ๊ฐ์ฒด ์งํฅ์ ์ธ ์ฝ๋์ ์์ฑ์ด ์ด๋ ค์ ๊ณ , ๋ ๊ธฐ์กด DB ์ค๊ณ์ ๋ฌธ์ ๋ ์๋ค๋ ๊ฒ์ ์๊ฒ ๋์๋ค. DB์ ์ ๋ฐ์ ์ธ ์์ ๊ณผ ๋๋ถ์ด, JPA๋ฅผ ์ด์ฉํด ๋ค์ ๋ฆฌํฉํฐ๋ง์ ํด๋ณด๊ธฐ๋ก ๊ฒฐ์ ์ ๋ด๋ ธ๋ค. ๊ทธ ์์ ๊ณผ์ ๊ณผ JPA ์ธํ ๋ฐฉ๋ฒ์ ๋์ดํด๋ณด๊ฒ ๋ค. https://github.com/GroovyArea/My-ChickenBreast-Shop GitHub - GroovyArea/My-ChickenBreast-Shop: shop api with spring boot shop api with spring boot . Contribute to GroovyArea/My-ChickenB.. 2022. 8. 8. ใํ ์คํธ ์ฝ๋ & Spring REST Docsใ ๊ฐ์ธ ํ๋ก์ ํธ๋ ์์ฑ์ด ๋์๋ค. ์ด์ ๋ ์ธ๋ถ์ ์ธ ๋ํ ์ผ์ ์ ๊ฒฝ์ ์ฐ๋ฉฐ ๋ฆฌํฉํฐ๋ง๊ณผ ๊ทธ์ ํ์ํ ๊ฐ๋ ์ ๋ฆฌ๋ฅผ ํ๋ฉฐ ํ๋ก์ ํธ์ ์ ์ฉ์ํค๊ณ ์๋ค. REST API๋ฅผ ์ฒ์ ์ค๊ณํด ๋ณด์๋๋ฐ, ๋ถ์กฑํ ์ ์ด ๋ง์์ง๋ง ์ ์ ํ ๊ฒฝํ์ด๊ณ ์งง์ ๊ธฐ๊ฐ ๋ด์ ๋ฐฐ์ด ๊ฒ์ด ๋ง์ ์ค๊ณ ๊ณผ์ ์ด์๋ค. API๋ฅผ ์ค๊ณํ๋ฉด ๊ทธ์ ๋ง๋ ๋ช ์ธ๊ฐ ํ์ํ๋ฐ, ๋ณดํต Swagger๋ Spring REST Docs ํ๋ ์์ํฌ๋ฅผ ์ด์ฉํ๋ค๊ณ ํ๋ค. Swagger๋ฅผ ์ฌ์ฉํ๋ฉด ์ ๋ ธํ ์ด์ ์ ์ด์ฉํด ํธํ๊ฒ ๋ฌธ์๋ฅผ ์์ฑํ ์ ์์ง๋ง, ํ๋ก์ ํธ์ ํ์ค์ฑ๊ณผ ์ ํ์ฑ์ ๋ท๋ฐ์นจํ๊ธฐ ์ํด์๋ ํ ์คํธ ์ฝ๋ ์์ฑ์ด ํ์๋ผ๊ณ ์๊ฐํ๊ธฐ ๋๋ฌธ์ Spring REST Docs๋ฅผ ์ด์ฉํ๊ธฐ๋ก ์๊ฐํ๋ฉฐ ์ ์ฉํด๋ณด์๋ค. ํ ์คํธ ์ฝ๋ ํฌ๊ฒ ๋จ์ ํ ์คํธ์ ํตํฉ ํ ์คํธ๊ฐ ์๋ค. ํตํฉ ํ ์คํธ ๋จ์ ํ ์คํธ.. 2022. 6. 20. 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.06 ใGit Flow ์ด์ใ ์คํ๋ง ํ๋ก์ ํธ๋ฅผ ์งํ์ค์ด๋ค. ๋จ์ํ Master ๋ธ๋์น๋ง ์ด์ฉํ๋ ๊ฒ์ด ์๋ ์ฝ๋ ๋ฆฌ๋ทฐ๋ฅผ ๋ฐ๊ธฐ ์ํด Pull Request๋ฅผ ์ฌ๋ ค์ผํ๊ธฐ ๋๋ฌธ์ ์ฌ๋ฌ ๊ฐ์ ๋ธ๋์น๋ฅผ ๋๋์ด ์์ ํ๋ ๋์ค ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค. pr์ ์ฌ๋ฆฌ๊ธฐ ์ํ ๋ธ๋์น๊ฐ์ ๋ถ์ ์ด ์ ์ ํ ์ด๋ฃจ์ด์ ธ์ผ ํ๋๋ฐ ํผ์ ํ๋ค ๋ณด๋ ์ด๊ฒ ์ ๊ฒ์ ๊ฑด๋ค์ด์ ๋ค์ํ๊ฒ ๊ฑด๋ ๊ฒ์ด๋ค. ๊ทธ๋์ ์๋ง์ ํด๊ฒฐ๋ฐฉ์์ ๋ชจ์ํด๋ณด๊ณ ์ ํ๋ค. ์ธํ ๋ฆฌ์ ์ด Branch ์ฒดํฌ์์ ํ๋ ๋ฐฉ๋ฒ ํน์ฌ๋ ์๋ชป git push๋ฅผ ํ๋ค๋ฉด 2022. 5. 6. 2022.04.25์ ๊ธฐ๋ก โถ ํํธ 1 (2์ ~ 12์) 1. ํ ์คํธ ์ฝ๋ ์์ 2. ๋ ธ์ ์๊ธฐ์๊ฐ์ ์ ๋ฆฌ -> ๋ํ ์ผํ ๋ถ๋ถ ์ถ๊ฐํด๋ณด์ 3. Spring ๊ฐ๋ ์ ๋ฆฌ 4. mysql ์ตํฐ๋ง์ด์ ์ ํํธ 5. wiki ์์ 6. ๊ฐ๋ , ์์์, ํ๋ก์ ํธ ๊ณํ ๊ฒ์ 7. ์๊ณ ๋ฆฌ์ฆ 1๋ฌธ์ โท ํ ์คํธ ์ฝ๋ ๋ฌธ์ : ํ๋์ ๊ฐ๋ง ์์๋ก ๋น๊ตํ๋ ๊ฒ๋ ์ข์ ๊ฒ ๊ฐ์ง๋ง 3๊ฐ์ง ๊ฒฝ์ฐ๋ฅผ ๋ชจ๋ ํ ์คํธํ๋ฉด ์ข๊ฒ ๋ค ํด๊ฒฐ : Static ๋ฉ์๋๋ฅผ ํ๋ ์ ์ธํ์ฌ ์ ๋ ฅ ์ ์ ๊ฐ๊ณผ ๊ธฐ๋ ๊ฐ์ ๋น๊ตํ๋ ํ ์คํธ๋ก ์์ ํ์๋ค. 2022. 4. 25. 2022.04.22์ ๊ธฐ๋ก โถ ํํธ 1 (10์ ~ 7์) 1. Gradle Test ์ฝ๋ ์์ (PrintGameResult, ComputerNumber ๋ถ๋ถ) 2. ์์์ ์์ 3. Boot project ๊ตฌ์ 4. Spring MVC ๋ด๋ถ ๊ฐ๋ ์ ๋ฆฌ 5. ์๊ณ ๋ฆฌ์ฆ 1๋ฌธ์ (2๋ฌธ์ ) 6. mysql Ch5. ํธ๋์ญ์ , CH6. ๋ฐ์ดํฐ ์์ถ 7. ์ดํํฐ๋ธ ์๋ฐ ์์ดํ 1 ์ ๋ฆฌ โท ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ : ์ ์์ ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌ import java.util.Arrays; class Solution { public long solution(long n) { long answer = 0; String number = String.valueOf(n); String stringNum = ""; char[] numArr = new char[num.. 2022. 4. 22. 2022.04.19์ ๊ธฐ๋ก โถ ์ค๋ ํด์ผํ ๊ณํ 1. real Mysql CH2 2. Docker ๋ณธ๋ฌธ 1ํ์ด์ง 3. ์๊ธฐ์๊ฐ์ ๋ ธ์ ์ ๋ฆฌ 4. ๊นํ๋ธ ์ฐจ๊ธฐ ํ๋ก์ ํธ์ฉ ์ ์ฅ์ ์์ฑ 5. ํ ์คํธ์ฝ๋ ํผ๋๋ฐฑ์ผ๋ก ์์ 6. ์ค๋ผํด ์ญ์ ๋ฐ mysql ์ญ์ ํ ์ฌ์ค์น 7. ์๋ฐ ๋ฉด์ 8. ์คํ๋ง ์ง๋ฌธ ๋ต๋ณ ์ ๋ฆฌ 2022. 4. 19. 2022.03.07 ์ ๊ธฐ๋ก โถ ํ๋ฃจ => ๊ณต๋ถ ๊ด๋ จ 1) ์คํ๋ง ๊ฐ๊ตฌ๋ฆฌ์ฑ CH6 2) MVC ๊ฐ์ฒด์งํฅ ๋ฆฌํฉํ ๋ง 3) ๊ธ์ผ ๋ฐฐ์ด ๋ด์ฉ ๋ณต์ต => ํ์ด๋ ํ๋ก์ ํธ ๊ด๋ จ 1) DB ์ฌํ์ธ โถ ๊ฐ์ธ ๊ณต๋ถ 5์ฅ ๊ฐ์ฒด ์งํฅ ์ค๊ณ 5์์น ๊ฐ์ฒด ์งํฅ ์ค๊ณ 5์์น ๊ฐ์ฒด ์งํฅ์ ๊ฐ๋ ๊ณผ 4๋ ํน์ฑ ์ข์ ๋๊ตฌ์ ์๊ฒ๋จ. ์ข์ ๋๊ตฌ๊ฐ ์์ด๋ ์ฌ๋ฐ๋ฅด๊ฒ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ์์์ผ ์ข์ ์๋ฆฌ๊ฐ ๋์ด. ๊ฐ์ฒด ์งํฅ ์ค๊ณ (Object Oriented Design) 5์์น SOLID (๊ฐ์ฒด ์งํฅ์ ์ฌ๋ฐ๋ฅด๊ฒ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ) SRP (Single Responsibility Principle) : ๋จ์ผ ์ฑ ์ ์์น OCP (Open Closed Princinple) : ๊ฐ๋ฐฉ ํ์ ์์น LSP (Liskov Substitution Principle) : ๋ฆฌ์ค์ฝํ ์นํ ์์น I.. 2022. 3. 7. ์ด์ 1 2 ๋ค์ ๋ฐ์ํ