SpringBoot49 [springBoot] spring boot jarํ์ผ ๋ฐฐํฌ ์ฝ์ง(feat. ๋ฆฌ๋ ์ค) ์คํ๋ง๋ถํธ์์ jarํ์ผ ์คํ ์ ์ต์ ์ผ๋ก profile๋ฑ์ ์ค์ ํ ์ ์๋๋ฐ ์ด๊ฒ ๋๋ฌธ์ ์ดํ์ ์ฝ์งํด์ ๋ฉ๋ชจํจ ์๋ฒ์์ ์ ์คํฌ๋ฆฝํธ๋ฅผ ์๋์ ๊ฐ์ด ์์ฑ(์ต์ ์ ๋ณ์ํ), ์คํ ์ ๊ณ์ profile์ ์ฐพ์ง ๋ชปํ์๋ค. #์ด์ ๋ช ๋ น์ด๋๋ก ํ๋ฉด ๊ณ์ ์๋๋ค. java -jar -์ต์ -์ต์ .. deploy.jar ์์๊ฐ ์ด๋ฐ์์ด ๋์ด์ผ ๋๋ค. #์ด์ ๋ช ๋ น์ด๋ java -jar deploy.jar -์ต์ -์ต์ ์ด ์์๋๊น ๊ณ์ ์๋๋ ๊ฑฐ์๋ค. ๋ค์์ ์ ๋ ๊ฐ์ ์ค์ํ์ง ๋ง์ IT/development 2023. 5. 13. [mybatis] ๊ฒ์(Oracle) /* ๊ฒ์๊ธ ๋ชฉ๋ก ์กฐํ */ SELECT ROWNUM AS no , T1.boardNo , T1.title , T1.content , T1.writer , T1.createDate , T1.updateDate FROM (SELECT BOARD_NO AS boardNo , TITLE AS title , CONTENT AS content , WRITER AS writer , TO_CHAR(CREATE_DATE, 'YYYY-MM-DD') AS createDate , TO_CHAR(UPDATE_DATE, 'YYYY-MM-DD') AS updateDate FROM BOARD WHERE 1=1 AND USE_YN = 'Y' ORDER BY CREATE_DATE DESC )T1 WHERE 1=1 AND TITLE L.. IT/development 2023. 5. 6. [spring] vo์ multipartFile ๋์์ ์๋ฒ๋ก ์ ์ก(feat.@RequestPart) ํด๋ผ์ด์ธํธ์์ JSON ํ์ ์ ๋ฐ์ดํฐ์ ๋ฉํฐํํธ ํ์ ํ์ผ์ ๋์์ ์ ๋ฌ ๋ฐ๋ ๋ฐฉ๋ฒ์ ๊ธฐ๋กํ๋ค.Controller์์ JSONํ์ ์ ๋ฐ์ดํฐ๋ฅผ vo๋ก ๋ฐ๊ณ ๋ฉํฐํํธ ํ์ ํ์ผ์ ๋ฐ์์ ๋ก๊ทธ๋ง ์ฐ์ด๋ณด๊ฒ ๋ค.controllerpackage study.lsyrestapitest1.controller.api;import lombok.RequiredArgsConstructor;import lombok.extern.slf4j.Slf4j;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.PostMapping;import org.springframework.web.bind.annotation.RequestMapping;imp.. IT/development 2023. 2. 8. [spring] @RequestBody String type ๋ฐ๊ธฐ ๋ชฉ์ฐจ spring์์ @RequestBody๋ก String type์ ๋ณ์ ๋ฐ๊ธฐ ์คํ๋ง RestFul๋ฐฉ์์ผ๋ก ํด๋ผ์ด์ธํธ์์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌ ๋ฐ์ ๋ ๋นํฉํ๋ ๊ฒฝํ์ด ์์ด ์ด๋ฅผ ๊ธฐ๋กํ๋ค. ๋ณดํต ์คํ๋ง์์ ํด๋ผ์ด์ธํธ์์ ์ ๋ฌํ ๋ฐ์ดํฐ๋ฅผ Dto๋ Vo๋ฑ์ ๊ฐ์ฒด ํ์ ์ผ๋ก ๋ฐ์ธ๋ฉ ์ ์๋์ฒ๋ผ ๊ฐ์ฒด๋ก ์ ๋ฌ ๋ฐ๋๋ก ํ๋ฉด ๋๋ค. package study.lsyrestapitest1.controller.api; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotati.. IT/development 2023. 1. 24. [spring/mybatis] Rest API ๊ณ์ธต๊ตฌ์กฐ(1:N) ๊ฐ์ฒด ์กฐํ(feat .์ฌ์ด ์์ ) ๋ชฉ์ฐจ ์ญ์๋ ๋ฏธ๋์ ๋๋ฅผ ์ํด ๊ธฐ๋กํ๋ค. ๊ณ์ธต๊ตฌ์กฐ ์กฐํ๊ฐ ์ฒ์ ์ ํ๊ณ ์ต์ํด์ง๊ธฐ ์ ๊น์ง๋ ์ข ์ด๋ ต๋ค.(๋ฌผ๋ก ์ง๊ธ๋ ์ฌ์ด ๊ฑด ์๋๋ค.) ๋ชจ๋ ์ผ์ด ์ต์ํด์ง๋ฉด ์๋ฌด๊ฒ๋ ์๋ ๊ฒ ๊ทธ์ ๊น์ง๋ ์ด๋ ค์ด ๋ฒ์ด๋ค. Rest API ๊ณ์ธต๊ตฌ์กฐ ์กฐํ ๊ฐ๋จ ์์๋ค. ์ฌ์ฉ์(UserDto) ๊ฐ์ฒด๊ฐ ๋์ ๊ฐ์ฒด(BookDto)๋ฅผ list๋ก ๊ฐ์ง๊ณ ์๋ ๊ตฌ์กฐ๋ค. ํ์๊ณผ ๋์์ ๊ด๊ณ๋ฅผ 1:N์ผ๋ก ๋งคํํ๊ณ ํ์์ด ๋ถ๋ชจ๊ณ ์ฑ ์ด ์์์ด๋ค. ์๋์ฒ๋ผ ํ๋ช ์ ํ์์ด ์ฌ๋ฌ๊ฐ์ ์ฑ ์ ๋์ถํ ์ ์๋ ์กฐ๊ฑด ๊ทธ๋์ ํ์ ๊ฐ์ฒด๋ ๋์ ๊ฐ์ฒด๋ฅผ list๋ก ๊ฐ์ง๊ณ ์์ด์ผ ํ๋ค. ์๋ DB ํ ์ด๋ธ์ ๋ณด๋ฉด ํ์๋ฒํธ 1๋ฒ์ธ ์ฒ๋ฅ์ ์ ํ ๋ฅด๊ฐ ์ดํ๊ฐํธ 1๊ถ~5๊ถ๊น์ง ๊ฐ์ง๊ณ ์๋ค. API๋๊น ๋น์ฐํ ํด๋ผ์ด์ธํธ์ ์ ๋ฌํ ๊ฐ์ฒด์ธ dto์ db ์กฐ์์ ์ฌ์ฉํ ๊ฐ์ฒด์ธ vo.. IT/development 2022. 12. 25. [spring] @ControllerAdvice, @ExceptionHandler๋ฅผ ์ด์ฉํ ์์ธ์ฒ๋ฆฌ ๋ชฉ์ฐจ ์ญ์๋ ๋ฏธ๋์ ๋ด๊ฐ ๋ณด๊ธฐ ์ํด ๊ธฐ๋กํ๋ค. ๊ธฐ์กด์๋ try catch๋ฌธ์ผ๋ก ์์ธ๋ฅผ ์ฒ๋ฆฌํ์๋๋ฐ ์์ธ์ฒ๋ฆฌ๊ฐ ํ์ํ ์ฌ๋ฌ๊ตฐ๋ฐ ์ฝ๋์ ์ ์ฉ์ ํด์ผ ๋๋.. ํด๋ฆฐํ์ง๊ฐ ์์ ๊ตฌ๊ธ๋ง ํด๋ณด๋ ์คํ๋ง์์ ์ ๊ณตํ๋ @ControllerAdvice, @ExceptionHandler์ด ์์๋ค. ์ ์ด๊ฑธ ์ด์ ์ผ ์๊ฒ ๋์๋์ง.. ๐ฅ ํ ์คํธ ๊ฐ๋ฐํ๊ฒฝ์ ์๋์ ๊ฐ๋ค. @ExceptionHandler ๐ @Controller๋ @RestController๊ฐ ์ ์ธ๋ Bean์์ ๋ฐ์ํ ์์ธ๋ง ์ฒ๋ฆฌํ ์ ์๋ค. @Service๋ @Repository์ ๊ฐ์ ๊ณณ์์์ ์์ธ๋ ์ฒ๋ฆฌํ ์ ์์์ ์ ์ํ ๊ฒ ์ฌ์ฉ๋ฐฉ๋ฒ์ ๊ฐ๋จํ๋ค. ์ปจํธ๋กค๋ฌ ๋ด์ ๋ฉ์๋๋ฅผ ๋ง๋ค๊ณ @ExceptionHandler๋ฅผ ์ ์ธํ๊ณ value๊ฐ์ผ๋ก ์์ธ์ฒ๋ฆฌ ํด๋์ค๋ฅผ .. IT/development 2022. 12. 4. [IDE]IntelliJ springBoot ๋ฆฌ์์ค ์๋ ๋ฆฌ๋ก๋ ๋ชฉ์ฐจ IntelliJ springBoot ๋ฆฌ์์ค ์๋ ๋ฆฌ๋ก๋ spring-boot-devtools๋ฅผ ์ด์ฉ(์๋ฒ ์ฌ์์์์ด ์๋ ๋ฆฌ๋ก๋) ์ถ์ฒ : https://powernote.tistory.com/19 IntelliJ spring boot DevTools ์๋ ๋น๋ ์ ์ฉํ๊ธฐ. ** intelliJ version : IntelliJ IDEA 2018.1 ์ดํ ๋ฒ์ # IntelliJ ์์ devtools ๊ฐ๋ฐ๋๊ตฌ๋ฅผ ์ค์น ํ๋ฉด ์ด์ํ๊ฒ EClipse์์ ์๋๋ ์๋ ์ปดํ์ผ ์ด ์๋๋ค. # devtools ๋ฅผ ๋ฐ์ํ๊ณ ์ ์ฉํ๋๊ฒ์ ํด๋ณด์. ์ฐธ๊ณ URL : ht powernote.tistory.com ์ถ์ฒ : https://lejewk.github.io/springboot-devtool/ spring boot.. IT/development 2022. 11. 29. [springBoot] ํ๋ก์ ํธ ์ธํ (IntelliJ ์ฌ์ฉ) ๋ชฉ์ฐจ springBoot ํ๋ก์ ํธ ์ธํ (IntelliJ ์ฌ์ฉ) https://start.spring.io ์ ์ ํ ํ๋ก์ ํธ ์ธํ ํ ๋ค์ด๋ก๋(IntelliJ์์ spring initializrํด๋ ๊ฐ์ ๊ฒฐ๊ณผ) ํ๋ก์ ํธ ๋น๋๋๊ตฌ ์ ํ -> ์์ฆ Gradle๋ก ๋์ด๊ฐ๋ ์ถ์ธ๋ผ๊ณ ํจ ๊ฐ๋ฐ์ธ์ด ์ ํ ์คํ๋ง๋ถํธ ๋ฒ์ ์ ํ -> SNAPSHOT์ ๋ง๋ค๊ณ ์๋๊ฑฐ๊ณ M1์ ์ ์ ๋ฆด๋ฆฌ์ฆ๋ ๋ฒ์ ์ด ์๋๋ผ์ ์ ์ ๋ฆด๋ฆฌ์ฆ ๋ฒ์ ์ค ์ ํ ํ๋ก์ ํธ ๋ฉํ ์ ๋ณด ์ค์ -> group์ ๋ณดํต ๊ธฐ์ ๋๋ฉ์ธ์ ์ ๋๋ฐ ๊ฐ์ธ ๊ณต๋ถ๋ ์๋ฌด๋ ๊ฒ๋ ์ ์ด๋ ๋จ, Artfifact๋ ๋น๋๋์ด ๋์จ ๊ฒฐ๊ณผ๋ฌผ์ด๋ผ๊ณ ๋ณด๋ฉด ๋จ ์คํ๋ง๋ถํธ ํ๋ก์ ํธ ๊ฐ๋ฐ์ ๊ฐ์ ธ์ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ, ํ๋ฉด ๋ ๋๋ง ์ ํ์ํ ํ ํ๋ฆฟ ์์ง ์ ํ(ex Thymeleaf, ํ์ฌ๋ ๋ค์ํจ) GE.. IT/development 2022. 11. 28. [Spring] spring REST API ๊ณต๋ถ(feat. @RestController) ๋ชฉ์ฐจ REST๋? ๐ REST๋ "Representational State Transfer"์ ์ฝ์์ด๊ณ ์ง์ญํ๋ฉด ๋ํ์ํ ์ ์ก์ด๋ค. ํ๋์ URI๋ ๊ณ ์ ํ ๋ฆฌ์์ค๋ฅผ ๋ํํ๋๋ก ์ค๊ณ๋๋ค๋ ๊ฐ๋ ์ธ๋ฐ ์์งํ ์์ง ์ ํํ ์ดํดํ์ง๋ ๋ชปํ๋ค. ์น์ ๋ชจ๋ ๋ฆฌ์์ค์ ๊ณ ์ ํ URI๋ก ์๋ฏธ๋ถ์ฌ ํ ๋ค HTTP Method๋ฅผ ํตํด ์ํ๋ฅผ ์ฃผ๊ณ ๋ฐ์ผ๋ฉฐ ํต์ ํ๋ ๋ฐฉ์์ด๋ผ๊ณ ์ดํด ํ๋ค. ๊ทธ๋ฆฌ๊ณ ์๋ฒ์์ ํด๋ผ์ด์ธํธ๋ก ๋ฐํํ๋ ๊ฐ์ด ์์ํ ๋ฐ์ดํฐ๋ผ๋ ์ ํด๋ผ์ด์ธํธ๊ฐ URI๋ง ๋ด๋ ์ด๊ฒ ๋ฌด์จ ์์ ์ ์๋ฏธํ๋์ง ์ ์ ์๋๋ก ์ค๊ณํด์ผ ํ๋ค. ex)localhost:8080/user๊ฐ URI์ด๊ณ POST์ผ๋ก ์๋ฒ์ ์ ์กํ๋ค๊ณ ํ๋ฉด ์ฌ์ฉ์ ๋ฑ๋ก์ด๋ผ๊ณ ์ ์ถํ ์ ์๋ค. REST ๋ฐฉ์์์๋ HTTP Method๊ฐ CRUD๋ฅผ ์๋ฏธํ๋ค. ๊ทธ๋์.. IT/development 2022. 11. 22. ์ด์ 1 2 3 4 5 ๋ค์