본문 바로가기

스프링 프레임워크11

스프링 프레임워크 뷰로 사용되는 Thymeleaf 와 jsp 의 비교 스프링 부트를 공부하면서 Thymeleaf를 알게 되었습니다. Thymeleaf는 템플릿 엔진으로 스프링 프레임워크의 MVC 구조에서 V 즉, 뷰(View)를 담당하는 라이브러리 입니다. 스프링 프레임워크의 뷰로 사용되는 가장 일반적인 기술은 jsp 입니다. Thymeleaf와 같은 템플릿 엔진은 사용해 보지 않아서 두 기술을 비교해 보았습니다(스프링 프레임워크에서 사용되는 템플릿엔진은 Thymeleaf외에도 Freemarker, Velocity등 많이 있는것 같습니다). 1. Thymeleaf와 jsp의 차이점 Thymeleaf는 HTML, XML, JavaScript, CSS 및 일반 텍스트를 처리 할 수 있는 웹 및 독립형 환경에서 사용할 수 있는 Java 템플릿 엔진입니다. Thymeleaf는 h.. 2019. 10. 28.
Spring Boot 국제화(다국어 지원) 설정하기 Spring Boot 웹 애플리케이션에서 다국어 지원을 위해서 설정하는 방법을 알아 봅니다. Spring Boot의 Starter라고 불리는 미리 설정되어 있는 것이 있는지 찾아보니 찾지 못했습니다. Java 설정을 이용해서 직접 설정하는 방법들을 주로 찾을 수 있었습니다. 이 예제는 이전 글 "Java Config로 메세지소스(MessageSource) 설정하기(다국어 지원)" 의 설정을 가져와서 만들었습니다. Spring Boot 관련 해서 검색을 해보면 jsp 보다는 다른 템플릿 엔진(주로 Thymeleaf)을 사용하는 경우가 많은 것 같습니다. 하지만 여기서는 jsp를 사용해 봅니다. 설정은 Thymeleaf를 사용하는 경우와 jsp를 사용하는 경우가 똑같고 jsp에서는 jstl을 사용하기 위한 .. 2019. 10. 19.
스프링 프레임워크 Thymeleaf 설정하기(XML 설정, Java 설정, Spring Boot 설정) 스프링 프레임워크에서 Thymeleaf를 사용하기 위해서 설정하는 방법을 알아봅니다. 스프링 프레임워크 설정은 xml을 사용하는 방법, Java를 사용하는 방법, Spring Boot를 사용하는 방법이 있습니다. 각각의 경우에 설정하는 방법을 알아보겠습니다. 1. XML 설정에서 Thymeleaf 설정하기 요즘은 Java 설정이나 Spring Boot를 사용하는 쪽으로 바뀌어가고 있지만, 아직도 대부분은 xml 설정을 사용하는것 같습니다. 주로 이걸 사용해와서 가장 익숙한 설정입니다. 예전에 올렸던 "스프링 프레임웍에서 MyBatis, Oracle 사용하기" 예제를 MySQL을 사용하도록 수정해서 예제를 만들었습니다. 1.1 pom.xml 파일에 Thymeleaf에 대한 의존성을 추가합니다. org.th.. 2019. 10. 14.
Hibernate Bean Validator 사용하기(2) - 그룹과 커스텀 아노테이션 앞에서의 기본 사용법과 이어지는 내용으로 다음과 같은 내용을 알아보겠습니다. 예제의 전체 소스는 글의 끝에 첨부해 두었습니다. - 빈 객체가 멤버로 객체를 가지거나 컬렉션을 가질 경우 모두 검증하기 - 객체의 멤버들을 그룹을 지정하여 특정상황에 특정 멤버만 검증하기 - 커스텀 검증 아노테이션 만들기 1. 테스트용 폼 만들기(personForm.jsp) ... 주민번호 비밀번호 ... ... ... - 주민번호는 검증을 위한 커스텀 아노테이션을 만들어 봅니다. - 비밀번호는 그룹을 사용하여 특정 상황에서만 검증하도록 하여 봅니다. - relations[0] 으로 된 부분은 멤버로 객체 리스트를 가지는 부분으로 리스트 전체를 검증 합니다. - recommender 부분은 멤버로 가지는 하나의 객체의 멤버를 .. 2018. 4. 21.
Hibernate Bean Validator 사용하기(1) - 기본 사용법 폼에서 입력한 값을 클라이언트 측에서는 자바스크립트를 사용해서 유효성을 검증하고 서버측에서도 검증을 하여야 합니다. 서버측에서 폼에 입력된 값을 검정하는데 사용되어질 수 있는 Hibernate Bean Validator 를 사용하는 방법을 알아봅니다. 1. pom.xml 파일에 의존성을 추가합니다. org.hibernate.validator hibernate-validator 6.0.8.Final 2. 메세지 다국어 처리- 기본적인 다국어 설정은 "Spring Framework 메세지 국제화(다국어 지원) 사용하기"를 참조하세요.- root-context.xml 파일에 Validator가 messageSource를 사용하도록 설정합니다. - servlet-context.xml 파일에 Controller가.. 2018. 4. 21.
스프링프레임워크 에러페이지 만들기 프로그램 수행중에 예기치 못한 예외가 발생하면 에러페이지를 보여주게 됩니다. WAS 의 기본 에러페이지는 대부분 코드중의 예외 라인과 상세한 스택 추적 정보를 보여주게 되므로 운영 환경에서는 보안상 문제가 됩니다. 그러므로 대부분 자체적인 에러 페이지를 제작하여 보여주게 됩니다. 여기서는 서블릿에서 기본적으로 제공하는 에러페이지 설정과 스프링 프레임워크에서 지원하는 에러페이지 설정부분을 알아 봅니다. I. web.xml 에서 에러페이지 설정하기 소스파일명과 Exception 이 발생한 라인번호, 예외 메세지, 스택 추적 정보가 보여집니다. 개발시에는 유용하지만 운영시에는 보안상 문제가 됩니다. 1. Tomcat에서 에러페이지 설정이 없을 경우 2. web.xml 파일에 에러페이지 설정하기 예외 타입별로,.. 2018. 4. 21.
전자정부 표준프레임워크 - JUnit 4 Test Case 생성하기 전자정부 표준프레임워크 Portal 템플릿 사이트에 컨트롤러를 테스트하기 위한 테스트 케이스를 추가해 보겠습니다. 1. src/test/java 폴더에 테스트 케이스가 들어갈 패키지를 생성합니다. 이 예제에서는 com.tistory.pentode.test로 만들었습니다. 2. 위에서 만들 패키지에 마우스 오른쪽 키를 눌러 New -> JUnit Test Case를 실행합니다. 3. Junit Test Case 생성창에서 클래스명을 ControllerTest 라고 입력하고 Finish 버튼을 누릅니다. 4. JUnit 4 라이브러리를 build path 에 추가할지 물어 봅니다. "Perform the following action"을 선택해서 빌드 패스에 추가합니다. "OK" 버튼을 누릅니다. 5. po.. 2018. 4. 12.
전자정부 표준프레임워크 - Portal Site 로깅(log4j 2) 설정하기 테스트용 프로젝트의 설치는 "전자정부 표준프레임워크 - Portal Site(Oracle) 템플릿 프로젝트 설치" 를 참조 하세요. 로깅은 애플리케이션의 디버깅과 문제해결을 위한 필수적인 도구라고 생각됩니다. 물론 개발중의 디버깅에는 System.out.println이 더 효과적인 때도 있지만, 운영중인 애플리케이션의 문제점을 찾기위해서는 반드시 필요한 도구 입니다. 전자정부 표준프레임워크의 Portal Site 템플릿을 설치해서 이것 저것 테스트 해보고 있는 중인데, 이번에는 로깅 설정 부분을 보도록 하겠습니다. 전자정부 표준프레임워크 3.6 Portal Site 템플릿에는 log4j 2 버전과 SQL문장 로깅을 위한 log4jdbc가 들어 있습니다. 여기서 알아볼 설정 방법은 일반적인 스프링 프레임웍.. 2018. 4. 8.
전자정부 표준프레임워크 및 all in one 샘플 프로젝트 설치 “전자정부 표준프레임워크”는 공공사업에 적용되는 개발프레임워크로써 현재 최신버전은 3.6.0 입니다. 3.6.0 버전의 개발환경은 JDK1.7 이상을 필요로합니다. IDE는 eclipse Mars 4.5로 되어 있으며 Spring Framework를 기반으로 하여 다양한 공통 컴포넌트가 제공되어 집니다. 이 글에서는 전자정보 표준프레임워크 3.6.0 개발환경을 설치하고, 같이 제공되는 all in one 프로젝트를 설치하여 실행해 보겠습니다. - JDK의 설치는 "윈도우에 JDK 8 설치하기" 를 참고 하세요. - 데이터베이스의 설치는 "Oracle 11g Express Edition 과 SQL Developer 설치하기" 를 참고하세요. - 다음 사이트에서 Tomcat 8.0 을 64-bit Windo.. 2018. 4. 4.
실행 흐름에 끼어들기(Filter,Interceptor,AOP) 3 - AOP 실행 흐르에 끼어들기 마지막으로 AOP(Aspect Oriented Programming) 관점 지향 프로그래밍 입니다. 웹프로그램에서 하나의 요청의 실행 단계를 보면 공통적인 부분들이 존재합니다. 각 요청을 처리하는 비지니스 로직은 요청 마다 다르겠지만, 요청의 끝에서 작업 로그를 기록한다던지, 데이터베이스 트랜잭션을 요청의 앞에서 시작하고, 끝에서 커밋 또는 롤백을 한다던지 하는 코드 들이 있습니다. 이런 코드들은 모든 프로그램에 반복적으로 나타나게 됩니다. AOP 에서 이런 반복적으로 나오는 부분이 아래 이미지 에서 처럼 프로그램을 횡단하는 곳에 공통적인 코드가 나타난다고 해서 횡단적 관심사(Cross-cutting concern)라고 합니다. PGM1 PGM2 PGM3 +-----+ +-----+.. 2018. 4. 2.
실행 흐름에 끼어들기(Filter,Interceptor,AOP) 2 - Interceptor Java 웹프로그래밍에서 실행 흐를에 끼어들 수 있는 방법에 대해 알아보고 있습니다. 앞의 글에서 서블릿 필터에 대해 알아 봤습니다. 이번에는 스프링 프레임웍에서 사용할 수 있는 인터셉터에 대해서 알아보겠습니다. 필터와 인터셉터는 적용 시점이 다릅니다. 필터는 스프링 프레임웍과는 무관하게 지정된 자원에 대해 동작합니다. 스프링은 Dispatcher 서블릿으로 부터 시작됨으로 필터는 스프링 컨텍스트의 바깥에 존재 하게 됩니다. 인터셉터는 스프링의 Dispatcher 서블릿이 컨트롤러를 호출할 때 전, 후에 끼어듭니다. 그러므로 스프링 컨텍스트 내부에 존재하게 됩니다. 인터셉터는 여러개를 사용할 수 있으며, 실행 순서는 에 나오는 순서 입니다. 인터셉터를 주로 사용하는 곳은 로그인 체크, 권한 체크, 프로그.. 2018. 4. 2.