썸네일 [SpringBoot] H2 Database CSV 데이터 Import 하기 SpringBoot 2.7.2 , Java11 사용 1. H2 Database 사용 설정 - build.gradle dependencies { ... // https://mvnrepository.com/artifact/com.h2database/h2 implementation group: 'com.h2database', name: 'h2', version: '2.1.214' // https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-data-jdbc implementation group: 'org.springframework.boot', name: 'spring-boot-starter-data-jdbc', versi..
썸네일 SpringBoot 2.7+ CORS 이슈 및 해결방법 간단하게 만든 API 서버를 테스트 하기 위해 로컬에서 돌리던 도중 해당 이슈를 만났다. 구성은 다음과 같다. localhost:8080/users - SpringBoot API Server 에서 유저 데이터를 리턴. localhost:8090/index.html - API서버로 요청을 보내는 스크립트가 있는 html 페이지 index.html {{ message }} 간단하게 nginx Docker로 해당 페이지를 8090포트로 띄웠다. FROM nginx:alpine COPY . /usr/share/nginx/html 그리고 대망의 CORS 이슈를 만났다. 그리고 이를 해결하기 위해 검색해본 결과 아래와 같은 방법이 있다. 제일 간단하게 내 화면에서만 안나오게 하고싶다! https://chrome.g..
썸네일 [SpringBoot] Rest Api Sample 만들기 #1 기존에 급하게 진행한 사내 SMS API 서비스를 만들고 나서, 정리도 할 겸 샘플로 REST API 샘플 프로젝트를 만들어보기로 했다. 기본적인 버전 정보는 다음과 같다. 1. 기본 프로젝트 세팅 JDK11 Spring Boot 2.7.1 Gradle 7.4.1 (Project Initialize > VS Code Spring Extension > Create a Gradle Project) 그리고 Build.gradle 에 추가한 dependency 는 아래와 같다. implementation 'org.springframework.boot:spring-boot-starter-web' compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.pr..
썸네일 사내 SMS Api Service 1. 개요 최근 사내 SMS 서비스 개발에 대한 필요성이 생겨서 해당 작업을 맡아서 하게 되었다. 물론 혼자 하는 것은 아니지만, 전반적인 계획과 어떻게 구성할지에 대해서는 다같이 고민을 하고 있어서 여기에다가도 올리면서 작업해보려고 한다. 서비스의 구성은 기본적으로 외부로 나가있는 자사 서비스에서 사내 SMS Service 쪽으로 전송 Request를 인증된 키와 함께 보내게 되고, 이를 서비스에서 받아 처리하는 구조이다. 따라서, Restful Api 기반으로 구조를 설계할 예정이며, 해당 서비스는 Docker 기반으로 가상화 하여 올려놓고 사용하고자 하는 큰 목표가 있다. SMS전송은 외부에서 도입한 에이전트가 담당하며 이와는 별개로 SMS 전송 이력이나 키 관리 등은 자체적으로 관리할 예정이다. ..
썸네일 [Spring Boot] Tiles 사용하기. 1. build.gradle 추가 // tiles implementation group: 'org.apache.tiles', name: 'tiles-jsp', version: '3.0.5' 2. tiles.xml 설정 파일 추가 webapp/WEB-INF/tiles/ 에 tiles.xml 설정파일 만들기. main이라는 정의를 만들고, 그 안에 헤더/네비게이션/푸터의 속성을 만들고 파일을 지정했다. 하위에는 *.main.jsp 라는 요청에 대해 처리할 컨텐츠 속성을 지정했으며 main에서 확장된 정의이다. {1}의 의미는 예를 들어, index.main.jsp 파일을 찾는 경우 {1}에는 첫번째 파라미터인 index가 매핑 되어 index.jsp 파일을 찾게 된다. 이를 이용하여 정의에 /comm/mem..