springframework11 [IDE] IntelliJ Spring MVC Project import (feat. maven) ์ต๊ทผ IntelliJ์์ ์ถ์ต์ spring MVC project๋ฅผ importํ ์ผ์ด ์์ด ์ฝ์ง ๋์ ์ฑ๊ณตํด์ ์ด๋ฅผ ๊ธฐ๋กํ๋ค. ๋น๋ ํด์ maven์ด์๋ค. ์ฐ์ ๊ฒฝํ์ ํ ๋๋ก ์๊ธฐํ๋ฉด maven ํ๋ก์ ํธ์์ ํ์ํ ๊ฑด src, pom.xml 2๊ฐ๋ง ์์ผ๋ฉด ๋๋ค. ์ธํ ๋ฆฌ์ ์ด ์คํ ํ New > Project from Existing Sources ์ ํ ํ ๊ฐ์ ธ์ฌ ํ๋ก์ ํธ ์ ํ Import Project์์๋ Eclipse ์ ํ๋ ์ํ๋ก ๊ทธ๋๋ก Next(Maven ์ ํ์ด ์๋๋ค.) ํ๋ก์ ํธ์ด๋ฆ๊ณผ ๊ฒฝ๋ก ํ์ธ ํ Next Next๋ก ๋์ด๊ฐ๊ณ SDK ์ ํํ๋ ์ฐฝ์์ ์ฌ์ฉํ SDK ์ ํ ํ Next Create๋ฅผ ๋๋ฅธ๋ค.(๋ฒ์ ์ ๋ฐ๋ผ ๋ช ์นญ์ ๋ค๋ฅผ ์ ์์) ๊ทธ๋ฆฌ๊ณ ๋ฒ์ ์ ๋ฐ๋ผ ๋ค๋ฅผ ์ ์๋๋ฐ ์ธํ ๋ฆฌ์ ์ด์ ์ด๋ฒคํธ .. IT/development 2023. 12. 22. [spring] egovframework(4.1 ver) ๋จ์ ๋ฉ์ผ ๋ฐ์ก ๋ชฉ์ฐจ pom.xml org.apache.commons commons-email 1.5 egovframework.com.ems sndng-mail 1.0 context-mail.xml true true true SndngMailVO package egovframework.test.com.cop.ems.dto; import lombok.Data; @Data public class SndngMailVO { /** ๋ฉ์ธ์งID */ private String mssageId; /** ๋ฐ์ ์ */ private String dsptchPerson; /** ์์ ์ */ private String recptnPerson; /** ์ ๋ชฉ */ private String sj; /** ๋ฐ์ก๊ฒฐ๊ณผ์ฝ๋ */ private Str.. IT/development 2023. 12. 19. [springBoot] springBoot,java version downgrade springBoot ์ด๊ธฐํ ํ ๋ ์ธ์ ๋ถํฐ์ธ์ง๋ ๋ชจ๋ฅด๊ฒ ์ผ๋ java๋ฒ์ ์ด 17์ด ๊ฐ์ฅ min version์ด ๋์๋ค. (์ด ์ปดํจํฐ๋ง ์ด๋ฐ๊ฑด์ง๋ ๋ชจ๋ฅด๊ฒ ๋ค.) ๋ง๋ค ์ ํ๋ฆฌ์ผ์ด์ ์ spring batch 4๋ฒ์ ์ด๊ธฐ์ ํ๋ก์ ํธ๋ฅผ java 17๋ฒ์ ์ผ๋ก ๋ง๋ ํ ๋ค์ด๊ทธ๋ ์ด๋ ํ๋ค. ํฌ์คํ ํ ๊น ๋ง๊น ํ๋ค๊ฐ ์ฌ์ํ ๊ฒ๋ ๋ฉ๋ชจํ์๋ ์ฃผ์๋ผ ๋ฉ๋ชจํ๋ค. build.gradleํ์ผ์ ๋ณ๊ฒฝํ ๋ถ๋ถ์ ์๋์ ๊ฐ๋ค. ๋ฒ์ ์์ ํ ๋ค์ด๊ทธ๋ ์ด๋ํ ๋ฒ์ ์ ๋ง๊ฒ ์์กด์ฑ ์ถ๊ฐํด์ผ ํ๋ค. gradle plugin ๋ฒ์ ์์ ํ ํ๊ฒฝ์ค์ , ํ๋ก์ ํธ ๊ตฌ์กฐ์ jdk๋ ๋ณ๊ฒฝํด์ผ ํ๋ค. ์ด๋ ๊ฒ ์์ ํ ๋ค์ด๊ทธ๋ ์ด๋ํ ๋ฒ์ ์ ๋ง๊ฒ ์์กด์ฑ์ด ์ถ๊ฐ๋์๋์ง ํ์ธํ๋ฉด ๋๋ค. ๊ฐ์ธ ์คํฐ๋ ๊ธฐ๋ก์ ๋ฉ๋ชจํ๋ ๊ณต๊ฐ์ด๋ผ ํ๋ฆฐ์ ์ด ์์ ์ ์์ต๋๋ค. ํ๋ฆฐ ์ ์์ .. IT/development 2023. 11. 27. [springBoot] Spring AOP simple source ๋ชฉ์ฐจ RestController ๐ package study.springaoptest.web; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.*; import study.springaoptest.model.User; import study.springaoptest.service.TestService; @RestController @Slf4j @RequestMapping("/api/v1/user") @RequiredArgsConstructor public class TestRestController { private final TestSer.. IT/development 2023. 10. 19. [springBoot] springBoot ์คํ ์ dataSource ์ ์ธ springBoot ์คํ ์ DB ์ฐ๊ฒฐ์ ๊ธฐ๋ํ๋๋ฐ DB์ฐ๊ฒฐ์ด ํ์์๋ ๊ธฐ๋ฅ์ ๋ง๋ค ๋๋ ์ด์กฐ์ฐจ๋ ๊ท์ฐฎ๋ค. ๊ทธ๋ด ๋ ์๋์ฒ๋ผ ๋ฉ์ธ ๋ฉ์๋์ @SpringBootApplication์ exclude ์ต์ ์ ์ฃผ๋ฉด ๋๋ค. package study.springaoptest1; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; @SpringBootApplication(exclude = {DataSourceAut.. IT/development 2023. 10. 14. [Rest API]๊ณ์ธต๊ตฌ์กฐ Rest API sample(feat. springBoot) ๋ชฉ์ฐจ Oracle์ HR schema์ ๋ฐ์ดํฐ๋ก ๊ณ์ธต๊ตฌ์กฐ๋ก Rest API๋ฅผ ๋ง๋ค ์ ์๋ค. Rest API ์ฐ์ต ํ๊ธฐ ์ข๋ค. depth entity ๋น๊ณ 1depth region ์ง์ญ 2depth contry ๋๋ผ 3depth location ์์น 4depth department ๋ถ์ 5depth employee ์ฌ์ ์ต์์์ ์ง์ญ(์ ๋ฝ, ์๋ฉ๋ฆฌ์นด, ์์์ ๋ฑ)์ด ์๊ณ ๊ทธ์์ ๋๋ผ๊ฐ ์๊ณ ๊ทธ ์๋ 5depth๊น์ง ๊ตฌ์ฑํ ์ ์๋ค. ์ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์์ฑ์ ํด ๋ณด๋ฉด ์๋์ฒ๋ผ ์์ฑ ํ ์ ์๋ค.(๋ก์ง์ ๊ฐ์ธ์ ์ทจํฅ) RestController ๐ package study.dev.test.controller; import lombok.RequiredArgsConstructor; import lomb.. IT/development 2023. 10. 10. [springBoot] ์ธํฐ์ ํฐ๋ฅผ ํตํด ๋ฉ๋ด ์ ๊ทผ ๊ด๋ฆฌ ์์คํ ์์๋ ๋ณด์ ๋๋ฌธ์ ๋ก๊ทธ์ธํ ์ฌ์ฉ์์ ๋ฉ๋ด ์ ๊ทผ ๋ฒ์๋ฅผ ์ ํํด์ผ ํ๋ค. ์๋ฅผ ๋ค์ด ์์คํ ๊ด๋ฆฌ์๋ ์์คํ ๊ด๋ฆฌ ๋ฉ๋ด๋ง ์ ๊ทผํ ์ ์์ด์ผ ํ๊ณ ๊ธ์ฌ๊ด๋ฆฌ์๋ ๊ธ์ฌ๋ฉ๋ด์๋ง ์ ๊ทผํ ์ ์์ด์ผ ํ๋ค. ์ธํฐ์ ํฐ๋ฅผ ํตํด ์๋์ฒ๋ผ ๊ตฌํํ๋ค. package kr.dev.common.interceptor; import kr.dev.cmmn.mapper.CmmnMapper; import kr.dev.cmmn.model.MenuVo; import kr.dev.cmmn.service.CmmnService; import kr.dev.user.model.EmpVO; import kr.dev.user.service.UserService; import lombok.extern.slf4j.Slf4j; import org.springf.. IT/development 2023. 9. 24. [springBoot] ์์ ํ์ผ ์ฝ๊ธฐ(feat. ajax) ๋ชฉ์ฐจ ํ๋ก์ธ์ค: ํ๋ฉด์์ ์์ ์ ๋ก๋ ์ ์์ ์ ๋ด์ฉ์ ์ฝ์ด์ ํ ์ด๋ธ์ ์ ์ฅ ์์กด์ฑ ์ถ๊ฐ(gradle) //springBoot ver: 2.7.7 //poi ์์กด์ฑ ์ถ๊ฐ implementation 'org.apache.poi:poi:5.1.0' implementation 'org.apache.poi:poi-ooxml:5.1.0' service @Service @Slf4j @RequiredArgsConstructor @Transactional(readOnly = true) public class ExcelService { private final ExcelMapper excelMapper; /** * ์์ ์ ๋ก๋ ํ๋ฉด * @param mv * @return */ @Override public ModelAnd.. IT/development 2023. 8. 23. [java] list์ null ์ฒดํฌ(ObjectUtils.isEmpty()) ๋ชฉ์ฐจ NPE ๐ NPE(NullPointerException)๋ java ๊ฐ๋ฐํ๋ค ๋ณด๋ฉด ์ ๋ง ๋ง์ด ๋ง๋๋ ์๋ฌ ์ค ํ๋์ด๊ณ Null๊ฐ์ธ ๋์์ ๊ฐ์ง๊ณ ๋ญ๊ฐ ํ๋ ค๊ณ ํ๋ฉด ๋ฐ์ํ๋ ์๋ฌ๋ค. ๋ฐฉ์ง๋ฒ์ ๊ณตํต๋ชจ๋์ ๋ง๋ค์ด ํญ์ null ์ฒดํฌ๋ฅผ ํ๊ฒ๋ ๊ฐ๋ฐํ๋๊ฒ ์ฝ์ง์ ์ค์ด๋ ๊ธธ์ผ ๋ฏ ์ถ๋ค. ์๋์ ๊ฐ์ ์ํฉ์์ NPE๊ฐ ๋ฐ์ํ๋ค. userList์ ์๋ฌด๊ฒ๋ ํ ๋น๋์ง ์์ ์ํ์ธ๋ฐ ์ฌ์ด์ฆ๋ฅผ ์ธก์ ํ๋ ค๊ณ ํ๋ค๋?(๋ฏธ์น๊ฑด๊ฐ?) List userList = null; log.info("userList => {}", userList.size()); ์คํ๋ง์ผ๋ก ๊ฐ๋ฐ ์ ๋ณดํต ๋ฐ์ดํฐ๋ฅผ list์ ๋ด์ ํ๋ฉด์ ๋ฟ๋ฆฌ๊ฑฐ๋ API ํ์์ผ๋ก ํด๋ผ์ด์ธํธ์ ๋ด๋ฆฌ๊ฑฐ๋ ํ ํ ๋ฐ list๊ฐ null์ด๊ฑฐ๋ ๋น๊ฐ์ด ๋ด๊ธฐ๊ฑฐ๋ ์ฌ์ด์ฆ๊ฐ 0์ธ ๊ฒฝ์ฐ ๋ฑ๋ฑ .. IT/development 2023. 2. 12. [springBoot] ์ ํจ์ฑ ๊ฒ์ฆ(feat. @Valid, Validated) ๋ชฉ์ฐจ SpringBoot ์ ํจ์ฑ ๊ฒ์ฆ ๐ ํด๋ผ์ด์ธํธ์์ ๋์ด์จ ๊ฐ๋ค์ ๋ํ ์ ํจ์ฑ ๊ฒ์ฆ์ด ํ์ํ๋ฐ if(id != null || id != ""...) ์ด๋ ๊ฒ if๋ฌธ์ผ๋ก ์ ํจ์ฑ ์ฒดํฌ๋ฅผ ํ๊ธฐ ์ซ์ด์ ์๋ฐ๋ ์คํ๋ง์์ ์ง์ํ๋ ์ข์๊ฒ ์ด๋ ์๋ ๋ณด๋ค๊ฐ ๊ตฌ๊ธ๋ง์ ํ๊ณ @Valid์ @Validated๋ฅผ ์๊ฒ๋์ด์ ์ ์ฉ์ ํด๋ดค๊ณ ์ด๋ฅผ ๊ธฐ๋กํ๋ค. ๋ "", " ", null ์ด๋ ๊ฒ 3๊ฐ๋ง ์ฒดํฌํ๋ฉด ๋๋ ๋ถ๋ถ์ด์๋ค. ๊ฒฐ๋ก ์ ์คํ๋ง๋ถํธ์์ @Valid์ @Validated 2๊ฐ๋ฅผ ์ฌ์ฉํด์ ๊ฐ๋จํ ์ ํจ์ฑ ์ฒดํฌ๋ฅผ ํ ์ ์์ @Valid ๐ฅฐ @Valid๋ JSR-303 Bean Validator๋ฅผ ์ด์ฉํด์ ์ ํจ์ฑ์ ์ฒดํฌํ๋ ์ด๋ ธํ ์ด์ ์(์๋ฐ ํ์ค ์คํ) ์ฌ์ฉ๋ฒ ์คํ๋ง๋ถํธ ๋ฒ์ ์ ๋ฐ๋ฅธ ์์กด์ฑ ์ถ๊ฐ ์ฌ์ฉํ๋ ์คํ๋ง ๋ถํธ ๋ฒ.. IT/development 2022. 11. 22. ์ด์ 1 2 ๋ค์