본문 바로가기

Spring Framework10

스프링 프레임워크 뷰로 사용되는 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.
Spring Boot 웹애플리케이션에서 서비스 포트와 컨텍스트 패스를 변경하기 Spring Boot 웹애플리케이션을 Spring Boot Web Starter 설정을 사용해서 만들어서 실행하면 서비스 포트와 컨텍스트 패스는 다음 설정을로 실행됩니다. - 내장 톰캣 서비스 포트 : 8080- 컨텍스트 패스 : ''(root context) 이 설정을 바꿔려면 어떻게 하는지 알아보겠습니다. 이번에 사용된 예제는 "Spring Boot + Kotlin + Thymeleaf 프로젝트 만들기" 의 예제를 Spring Boot + Java + Thymleaf로 바꿔서 테스트 했습니다.(Kotlin을 공부할 시간이 잘 나지 않네요. 자바에 Thymeleaf로 Thymeleaf를 먼저 공부해봐야 겠습니다.T.T) 앞의 프로젝트 생성과 바뀐점은 언어를 Kotlin에서 Java로 바꾼것과 Sprin.. 2019. 9. 29.
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.
스프링프레임웍 - Spring Security(3) : 사용자/권한 정보 DB사용하기 앞서 "스프링프레임웍 - Spring Security(2) : 커스텀 로그인 화면 및 권한에 따른 접근 제어"에서 로그인 화면을 원하는 형태로 만드는 방법에 대해서 알아 보았습니다. 지금까지의 기본설정과 화면 커스터마이징에서는 사용자 정보와 권한 정보가 모두 security-context.xml 파일 안에 있었습니다. 이번에는 이 정보들을 DB 저장하고 이용할 수 있도록 해 보겠습니다. 데이터베이스는 Oracle을 사용합니다. 먼저 사용자 정보와 권한정보를 저장할 테이블 구조 입니다. 이 테이블들은 스프링 시큐리티의 DB 지원 기본 구조를 키구조만 조금 바꾼것 입니다. 1. 사용자/권한 테이블 사용자 권한 처리를 위해서 총 5개의 테이블로 구성됩니다. 테이블을 생성하고 기본 데이터를 입력하는 쿼리파일은 .. 2018. 4. 9.
스프링프레임웍 - Spring Security(2) : 커스텀 로그인 화면 및 권한에 따른 접근 제어 앞의 글 "스프링프레임웍 - Spring Security(1) : 기본 설정"에 이어 이번에는 커스텀 로그인 화면을 만드는 방법을 알아보겠습니다. 전체소스는 하단에 추가되어 있습니다. 1. 스프링 시큐리티 태그라이브러리를 사용하기 위한 의존성을 추가합니다. 메인화면에서 로그인이 되어 있지 않으면 로그인 링크를 보여주고, 로그인이 되어 있으면 로그아웃 링크를 보여주기 위해서 사용됩니다. org.springframework.security spring-security-taglibs 4.2.1.RELEASE 2. 커스텀 로그인 화면을 사용하기 위한 설정을 추가 합니다. 커스텀 로그인 화면 제공 및 권한(역할)에 따른 접근 제어도 테스트 해봅니다. - provider 를 통해 ROLE_USER, ROLE_ADM.. 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.