마이바티스(MyBatis) 개요 마이바티스(Mybatis)는 2001년 클린턴 비긴이 만든 아이바티스(ibatis) 프로젝트의 3.0에서 포크된 프로젝트로 아파치 라이센스(Apache License) 2.0에 따라 배포되는 무료 소프트웨어[1]이다. MyBatis(ibatis 포함)의 특징은 기존 ORM 프레임워크와 달리 Java 개체를 데이터베이스 테이블에 매핑하지 않고, Java 메소드를 SQL에 매핑한다[2]. 그러다보니 자바 소스는 매우 간결해지고, 핵심은 SQL문을 포함한 XML 코드에 모두 포함이 되어 있다. 국내의 대형 SI들과 함께 단체로 개발을 할 때, Mybatis를 사용하는 가장 큰 이유는 바로 SQL문이 독립되어 유지보수가 편리해지고, 개발자 수준별로 코드를 분리할 수 있기가 용이하..
Spring boot에서 가장 기본적으로 jdbc를 다룰 수 있는 jdbcTemplate에 대한 설정에 대해서 가볍게 설명해보도록 하겠습니다. 포스팅의 내용은 maven을 기준으로 작성하였고, DB는 MySQL 기준인 것을 참고하시면 되겠습니다. Spring boot 설정 Pom.xml org.springframework.boot spring-boot-starter-jdbc mysql mysql-connector-java spring-boot-starter-jdbc는 jdbcTemplate를 위함이며, mysql-connector-java는 mysql를 기반으로 connection을 하기 위함입니다. application.properties ## MySQL spring.datasource.url=jdbc..
개발자가 접근하기 쉽고, SI가 아니라 솔루션 업체나 회사 전산실이나 IT부서 같은 곳에 근무하게 된다면 별도의 디자이너가 붙지 않고 부트스트랩(bootstrap) 등을 이용해서 직접 디자인을 선택하고 만들어야 되는 경우가 많다. 예를 들어 소수가 사용하는 관리기의 경우 웹디자이너가 붙으면 공수(Man Month, M/M)가 많이 들 뿐만 아니라 이미 부트스트랩으로 만들어진 디자인들이 훌륭해서 디자이너가 붙는다고 해서 심미적이나 기능적으로 뛰어나다 장담할 수 없기 때문이다. 현재는 관리기 뿐만 아니라 서비스를 하는 페이지에도 부트스트랩을 받아서 커스터마이징을 하는 경우도 상당히 많은데 이미 웹개발과 부트스트랩 프로젝트는 떼려야 뗄 수 없는 프로젝트가 되어 버렸다. 부트스트랩(Bootstrap) 부트스트랩..
스케쥴링을 위해서 while(true)로 무한으로 돌린 후, sleep 걸어서 사용하거나 linux에서 crontab으로 주기적으로 실행하는 방법을 이용할 수 있겠지만 스프링 프레임워크(spring framework)에서는 crontab을 내장해서 사용하는 듯한 매우 편리한 방법을 제공해준다. 스케쥴러를 사용하기 위해서는 spring task라는 내장되어 있는 기능을 사용하면 된다. 예전에는 쿼츠(Quartz)를 많이 활용했던 걸로 기억하는데 본 포스팅의 방식으로 핸들링이 안된다면 Quartz를 한번 찾아보길 바란다. 스프링 scheduler를 사용할 때 어노테이션(annotation)으로 심플하게 제어하는 방법과 xml으로 핸들링하는 방법이 있는데 본 포스팅에서는 xml이 아닌 annotation으로만..
개발을 하다보면 개발환경, 로컬환경, 운영환경 등 환경에 따라 환경변수를 달리줘야 하는 경우가 있다. 예를 들어, 최근 마이크로 아키텍처로 흐름이 전환되었기 때문에 Rest를 자주 활용하게 되는데 개발서버에서 사용하는 rest url과 운영서버에서 사용하는 rest url이 다를 것이기 때문에 이럴 경우 운영환경에 따라 url 경로를 자연스럽게 바꿔주면 될 것이다. 환경별 설정은 빌드툴(Maven 등)을 이용해서 할 수도 있고 사실상 상당히 많이 있으나 여기서는 Was의 파라미터를 이용한 매우 간단하게 설정할 수 있는 방법을 공유해보도록 한다. Was 설정(Configuration) 이클립스 기준으로 설명을 하며, 추후 운영환경이나 개발환경의 톰캣(tomcat) 등 was에서 deploy할때에 실행명령어..
Properties를 읽는 방법이야 무궁무진하겠지만, 스프링으로 프로퍼티를 읽을 때 자주 사용하는 방법으로 value annotation을 이용하기도 한다. 사실 필자는 properties를 xml로 설정하여 map에 담아 get형태로 읽는 것을 선호하지만 요즘 워낙 어노테이션이 대세니 코드가 올드해보이지 않기 위해 일정 부분은 어노테이션을 섞는다. 사용방법은 매우 간단하다. 우선 resource 위치에 properties 파일을 생성한다. 예를 들기위해서 이 포스팅에선 test.properties라는 설정파일을 생성하였다. test.properties test=테스트입니다. @Value 예제 import egovframework.rte.fdl.property.EgovPropertyService; imp..
필자는 전자정부프레임워크(EgovFramework, egov)로 개발을 많이하다보니 최근에 유행하는 RestController나 기타 여러가지 방식보다 jsonView 방식을 선호하고 있다. jsonView 설정은 2010년초부터 사용하여 지금까지 잘 이용하고 있으며 대국민 서비스에서도 이상없이 빠른 속도로 response되기에 불편함도 없을 뿐더러, 오히려 메소드 모양이 통일되어 선호하는 방식이다. jsonView는 controller 단에서 return 값을 string으로 통일 시켜 주기 때문에 모든 controller가 string으로 선언되어 일관된 모습을 보일 수 있다. 필자가 설정한 프레임워크는 전자정부프레임워크 3.9 버전(현재 최신버전)이고 스프링은 4.3.22 버전이다. 이 방식은 어떤..