Spring 에서 @Async 을 이용해서 쉽게 비동기 method 을 만들 수 있습니다. 대략 다음과 같이 method 정의를 먼저 할 수 있을 겁니다. @Async public CompletableFuture async(String param1, int param2) { return CompletableFuture.completedFuture(param1 + " : " + param2); } 그리고 이를 다음과 같이 사용할 수 있겠죠. CompletableFuture result = service.async("status", 100); 하지만, 이렇게 그냥 사용할 경우 @Async 는 SimpleAsyncTaskExecutor 을 기본 TaskExcutor 로 이용하기 때문에 async method ..
1. MyBatis 로 질의하기 Spring Boot 에서 JdbcTemplate 으로 질의를 쉽게 할 수 있는건 사실이지만, 그래도 전통적으로 이용되어온 MyBatis 는 현재까지도 그 사용범위가 매우 넓고 익숙해지는데 큰 비용이 지출되지 않고 사용자 층 역시 매우 두터워서 프로젝트 시작 전에 따로 교육을 하지 않아도 되는 경우가 많습니다. 그래서 Spring Boot 에서는 최근까지도 MyBatis 에 대한 지원을 포함하지 않고 있다가 최근에 SPRING INITIALIZR 의 SQL 영역에 MyBatis 을 추가하였습니다. 예전에는 iBatis 와 Spring 에서 Spring Framework 통합 라이브러리를 만들었지만, 현재는 MyBatis 에서 제공하는 라이브러리를 이용해야만 Spring F..
Spring Boot 에서는 대표적인 DBMS(DataBase Management System)에 표준적으로 접속 정보를 설정하고 JDBC, Connection Pool 등을 자동으로 구성해서 사용자가 쉽게 질의(query)를 할 수 있는 기능을 제공합니다. 1. 프로젝트 생성 아래와 같이 프로젝트 생성 시 JDBC 와 DBMS 에 맞는 Driver 만 선택해주면 의존성 추가를 해줍니다. 실제 이미지와 같이 선택하면 아래 코드와 같이 pom.xml 파일에 두 개의 의존성만이 추가될 뿐입니다. 하지만, 이 두 개의 의존성 추가만으로 DB 접속을 할 수 있는 환경을 쉽게 구축할 수 있습니다. org.springframework.boot spring-boot-starter-jdbc mysql mysql-con..
Spring Boot 레퍼런스 가이드(Spring Boot Reference Guide)에서 템플릿(Template)에 관한 내용을 보면 매우 간단한 가이드를 볼 수 있습니다. https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-developing-web-applications.html#boot-features-spring-mvc-template-engines 위 링크에서 확인할 수 있듯이 몇 가지 템플릿 엔진을 사용할 수 있도록 제공되고 있으며, 전통적인 방식의 JSP 는 제약이 있으므로 사용을 피하라는 안내가 있습니다. 여기서는 의존성으로 Web 와 Lombok 이 선택된 Spring Boot 프로젝트를 이용하여 T..
Spring Boot 프로젝트를 처음 생성하면 반드시 생기는 파일이 몇 개 존재하는데, 그 중 src/main/resources/ 디렉토리에 존재하는 application.properties 파일이 있습니다. Java 의 오래된 키-값(Key-Value) 형태의 값 저장 형태인데, 처음 프로젝트를 생성하면 아무런 내용이 없습니다. Spring Boot 의 공식 문서 중 가장 자주 보게 되는 문서가 이 application.properties 관련 부록입니다. https://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html 이 파일은 Spring Boot 에서 제공하는 많은 기능의 간편한 설정을 ..
Spring Boot 프로젝트를 이용해 Hello World 을 출력하는 프로그램을 만들어 보겠습니다. 1. Console 출력SPRING INITIALIZR 에서 기본 프로젝트를 생성한 뒤 Hello World 을 출력하는 간단한 코드를 작성해보겠습니다. 아래와 같이 기본값으로 생성한 프로젝트를 준비합니다. src/main/java/com/example/demo/ 디렉토리의 DemoApplication.java 파일이 main() 이 있는 클래스입니다.package com.example.demo; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplicati..
Spring Boot 을 개발할 때 Eclipse, Netbeans 와 같은 IDE 뿐만 아니라 Visual Studio Code, Atom 등의 에디터를 이용해서 개발하는 사람들도 많지만, 여기서는 Ultimate Edition 와 Community Edition 을 제공하는 IntelliJ IDEA 을 이용해 프로젝트 개발 환경을 구성해보도록 하겠습니다. 1. SPRING INITIALIZR 에서 생성한 프로젝트로 시작하기일반적으로 IDE 에서 프로젝트를 구성하는 기능을 제공하고, Eclipse 나 IntelliJ IDEA 같은 IDE 들도 모두 SPRING INITIALIZR 웹사이트와 같이 프로젝트를 생성하는 기능을 제공합니다. 하지만 이전 글에서 SPRING INITIALIZR 에서 프로젝트를 ..
Spring Boot 프로젝트 파일을 내려받은 뒤 Maven 의 막강한 지원을 바탕으로 텍스트 에디터로 바로 개발을 할 수 있지만, 좋은 IDE 가 많은 Java 언어를 그렇게 개발하는 경우는 드물 것입니다. IDE 에서 직접 Spring Boot 프로젝트를 구성할 수 있지만, 일부 IDE (대표적으로 IntelliJ Community Edition) 에서는 SPRING INITIALIZR 에서 프로젝트 파일을 생성해서 IDE 에 추가하는 방법이 가장 쉽게 프로젝트를 시작하는 방법입니다. 이 때, 생성된 Spring Boot 프로젝트 디렉토리를 Maven 프로젝트로 Import 하는 방법도 있지만, 더 쉽게 IDE 에 추가하는 방법도 존재합니다. 1. Eclipse 프로젝트 파일 생성Maven 에는 Ec..
SPRING INITIALIZR 웹페이지에서 의존성(Dependencies)을 선택하면 어떤 일이 발생하는지 알아보고자 합니다. 1. Web 추가하기 먼저 SPRING INITIALIZR 사이트의 기본값을 그대로 유지한 채 프로젝트를 하나 생성한 뒤, Web(Full-stack web development with Tomcat and Spring MVC) 항목을 선택한 뒤 프로젝트를 생성해서 둘을 비교해보았습니다. 뭔가 좀 익숙한 모양일 겁니다. 바로 Project Metadata 변경에서 Packaging 을 War 로 선택했을 때와 거의 유사하다는 것을 알 수 있을 겁니다. 그런데 분명 설명에는 Tomcat 을 이용한다고 했는데 War 로 선택했을 때 존재하던 Tomcat 관련 내용은 추가되지 않았습..
SPRING INITIALIZR 웹페이지에서 입력할 수 있는 정보 중 Project Metadata 가 있습니다. 생성된 프로젝트 분석 에서 기본값으로 프로젝트를 생성했을 때 대부분의 정보가 pom.xml 에 기입되고 src/ 디렉토리 하위에 package 구조를 구성할 때에도 이용된다고 하였습니다. Metadata 을 아래와 같이 변경한 뒤 새롭게 프로젝트 파일을 생성하여 다운로드 해보겠습니다. Packaging 은 추가적으로 생성되는 파일이 존재하기 때문에 따로 설명을 하겠습니다. 프로젝트를 생성하면 아래와 같은 URL 을 호출하여 프로젝트 파일을 다운로드 받을 수 있게 됩니다. URL 주소를 보면 입력한 값들이 변수값으로 전달됨을 알 수 있습니다. http://start.spring.io/start..
- Total
- Today
- Yesterday
- jooq
- paging
- Spring
- 내장 WAS
- Phabricator
- 페이징
- boot
- OracleJDK
- 클라우드플레어
- Spring Boot
- docker
- 외장 WAS
- 도입기
- NoSQL
- RestTemplate
- 워드프레스
- 프로젝트 규모
- 엘지
- git
- couchbase
- java config
- SI
- messages.properties
- proxmox
- Redmine
- 시니어 프로그래머
- KDE
- manjaro
- Nas
- Spring MVC
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |