본문 바로가기

프로그래밍/스프링프레임워크80

오래된 프로젝트 파일의 오류 - Cannot access defaults field of Properties 5년전 스프링프레임웍으로 작성한 샘플 프로젝트 파일을 전자정부 표준프레임워크 v4.1.0으로 열어 봤더니 오류가 발생하였습니다. 최초 발생한 오류는 "Could not initialize class org.apache.maven.plugin.war.util.WebappStructureSerializer" 입니다. Maven 메뉴에서 Update project를 수행해 보았습니다. 업데이트 후 에러 메세지가 바꼈습니다. 새로운 에러는 "Cannot access defaults field of Properties" 였습니다. 이 메세지는 injection시 오류가 난 것으로 보입니다. 업데이트를 몇번 수행해 보아도 같은 에러가 계속 발생하여서 구글에서 검색을 해보았습니다. Markers 창에 보여지는 에러메.. 2023. 6. 16.
Boot와 React를 사용한 Simple Homepage 템플릿 설치 (2/2) 전자정부 표준프레임워크 v4, Boot와 React를 사용하는 Simple Homepage 템플릿 두 번째 프론트엔드 부분을 설치해보겠습니다. 1. 필요사항 * git : 설치참조 - https://offbyone.tistory.com/440 * Node.js : 설치참조 - https://offbyone.tistory.com/441 * Visual Studio Code : 설치참조 - https://offbyone.tistory.com/435 2. 설치하기 - 명령창을 이용해서 프로젝트를 생성할 폴더(D:\workspace\vscode)로 이동합니다. 이 폴더 아래에 프로젝트 폴더가 생성됩니다. - git을 사용해서 프로젝트를 받습니다. egovframe-template-simple-react 폴더가 .. 2022. 4. 10.
Boot와 React를 사용한 Simple Homepage 템플릿 설치 (1/2) 전자정부 표준프레임워크 v4에서 React를 사용한 템플릿이 추가되었네요. 어떤 모습인지 설치를 해보겠습니다. 테스트에 사용된 운영체제는 Windows 10입니다. React는 SPA(Single Page Application)을 만드는 프레임워크입니다. SPA는 일반적인 홈페이지와 다르게 페이지 전환이 없고, 하나의 페이지에서 모든 화면 구성요소를 자바스크립트로 만들어서 교체하는 방식으로 동작합니다. 페이지 전환이 일어나지 않으므로 화면에 표시할 데이터는 Ajax를 이용해 백엔드 서버와 주로 JSON 형식의 데이터를 주고 받습니다. SPA의 또하나의 특징으로는 사용자에게 보여지는 자바스크립트 프로그램을 사용자에게 보내주는 프론트엔드 서버와 사용자로부터 받은 데이터를 처리하는 백엔드 서버를 별도로 구성하.. 2022. 4. 9.
전자정부 표준프레임워크 v4.0.0 설치하기 전자정부 표준프레임워크 v4.0.0이 새로 나왔네요. 그래서 설치를 해봅니다. 전자정부 표준프레임워크는 딱히 설치라고 할게 없고, 실행형 압축파일로 제공되므로 실행을 시켜서 원하는 폴더 아래에 압축을 풀면 설치가 되는 형태입니다. 전자정부 표준프레임워크 v4.0.0은 Eclipse 2021-03 버전을 기반으로 만들어졌습니다. JDK 11이상이 필요하다고 하네요. 하지만, 이미 OpenJDK 15.0.2가 포함이 되어 있어서 별도로 JDK를 설치할 필요는 없습니다. 새로 제공되는 템플릿은 스프링 Boot와 Reat 를 사용하는 것이 있다고 합니다. 나중에 이것도 한번 봐야 겠습니다. 사용되는 스프링 버전은 5.3.6 이었습니다. - 표준프레임워크 포털(https://www.egovframe.go.kr/).. 2022. 3. 5.
스프링 프레임워크 뷰로 사용되는 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 웹 애플리케이션에서 jsp와 Thymeleaf 두 가지 같이 사용하기 이전에 작성한 글 "스프링 프레임워크 Thymeleaf 설정하기(XML 설정, Java 설정, Spring Boot 설정)" 에서 스프링 프레임워크에서 Thymeleaf를 사용하기 위해서 설정하는 방법을 알아보면서 xml설정과 java 설정에서는 jsp와 Thymeleaf를 같이 사용할 수 있도록 설정을 해보았는데, Spring Boot 에서는 같이 사용하는것을 알아보지 못했었습니다. 이번에는 Spring Boot 웹 애플리케이션에서 뷰로 jsp와 Thymeleaf를 같이 사용하도록 설정을 해봅니다. 예제는 Spring Boot에서 최초에 jsp를 사용하도록 설정된 프로젝트에 Thymeleaf도 사용 가능하도록 추가하는 것입니다. 1. 프로젝트에 사용된 개발 도구 및 라이브러리 - Eclipse 2018.. 2019. 10. 27.
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.
아노테이션 드리븐 트랜잭션(@Transactional)에서 Exception을 throw할 경우 롤백(rollback)이 안됩니다. 스프링 프레임웍에서 데이터베이스 트랜잭션 처리를 아노테이션 드리븐으로 설정을 하면 클래스 또는 메소드에 @Transactional 아노테이션을 붙이는 것으로 트랙잭션을 처리할 수 있습니다. 이 경우 주의해야 할 것이 하나 있는데, 직접 Exception 클래스를 던져서 예외를 발생시켜서 트랜잭션을 롤백(rollback) 하려고 하면 롤백이 되지 않는다는 것입니다. 이전에 작성한 글인 "스프링프레임워크 Java config로 MyBatis 사용하기"에 댓글로 질문해 주신 내용중에 이 롤백이 되지 않는 상황에 대한 것이 있어서 답변을 해드렸는데, 글로 작성을 해 두는게 좋을 것 같아서 쓰게 되었습니다. 스프링 프레임워크 설정을 Java Config로 하면서 트랜잭션 처리는 아노테이션 드리븐으로 하는 예제 였.. 2019. 10. 7.
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.
Spring Boot + Kotlin + Thymeleaf 프로젝트 만들기 이때까지 스프링 프레임워크를 사용한 웹 애플리케이션을 개발하는데 항상 xml설정 방식과 Java, JSP를 사용해 왔었습니다. 스프링 프레임워크에 대해서 계속 공부하던 중 Spring Boot, Kotlin, Thymeleaf등에 대해서 알게 되었고, 이것들을 조합하여 사용하는 것을 테스트해 보기로 마음 먹었습니다. 먼저 테스트를 위한 프로젝트를 생성해 보겠습니다. 사용된 개발툴은 다음과 같습니다. - JDK 1.8(Java 8) 이미 12버전까지 나와 있지만 못따라 가겠네요.T.T - Eclipse IDE 1918-12 Photon이후로 Eclipse의 명명방식이 년월을 붙이는 방식으로 바꼈네요. - Spring Tools 4 Eclipse 플러그인으로 사용하고 있습니다. Spring Boot 프로젝트.. 2019. 8. 19.
Kotlin을 사용하는 Spring Boot 웹 애플리케이션 Spring Boot 웹 애플리케이션을 만드는데, 언어로 Kotlin을 사용하도록 프로젝트를 구성해 봅니다. Kotlin은 안드로이드 앱 개발외에 Spring 프레임웍을 사용하는 웹 애플리케이션 개발에도 사용될 수 있다고 합니다. 프로젝트 생성은 "Spring Boot 웹 프로젝트 만들기"에서 프로젝트 생성하는것을 참조해서 생성하면 되겠습니다. 차이점은 언어를 Java가 아니라 Kotlin 으로 선택하면 되겠습니다. 이 예제도 전자정부표준프레임웍 3.8 개발툴을 사용하고 있습니다. 프로젝트를 생성하면 두 가지 에러가 보입니다. - 첫 번째 에러는 maven-jar-plugin.version이 맞지 않아서 였습니다. 다음과 같이 프로퍼티를 수정해서 3.1.1 버전으로 오버라이드 합니다. 1.8 1.2.71.. 2019. 6. 16.
Spring Boot 웹 프로젝트 만들기 Spring Boot를 사용하여 웹 프로젝트를 만들고, 간단한 웹페이지를 출력하는 예제를 해보겠습니다. 스프링 부트는 한번도 해본적이 없는데, 여기저기 글들을 읽다보면 스프링부트가 많이 쓰이고 있는 것 같았습니다. 실제로 처음 스프링 부트를 사용해서 웹 애플리케이션을 처음 만들어본 상황에서는 장점을 잘 모르겠습니다. 좀 공부해보고 정말 장점이 있는지 확인을 해봐야 할 것 같습니다. Sprng Boot를 사용해서 웹프로젝트를 만드는 방법은 알아보니 STS(Spring Tool Suite)나 전자정부표준프레임웍크 3.8에는 Spring Boot 프로젝트 템플릿이 있어서 그걸 사용하면 되는데 일반 Eclipse에는 프로젝트 템플릿이 없어서 Spring Initializr 사이트에서 템플릿을 다운로드 받아서 i.. 2019. 6. 13.
Java Config로 Exception Resolver 설정하기 스프링프레임워크에서 Exception Resolver는 예외가 발생했을때 특정 에러페이지를 보여주고, 예외에 대해서 원하는 HTTP 응답코드를 지정할 수 있습니다. 이 예제는 "스프링프레임워크 에러페이지 만들기"에서의 xml 설정을 Java 설정으로 다시 구현해본 것입니다. 스프링프레임워크에서의 예외처리에 대한 앞의 글을 참조하세요. 글 하단에 전체 예제소스를 추가해 두었습니다. 1. Exception Resolver 설정 입니다. 웹 컨텍스트(WebContextConfiguration.java) 설정에 추가 했습니다./** * 웹 컨텍스트 설정파일 */@Configuration@EnableWebMvc@ComponentScan(basePackages = {"com.tistory.offbyone.web"}.. 2019. 3. 23.
Java Config로 메세지소스(MessageSource) 설정하기(다국어 지원) 스프링프레임워크에서 다국어지 지원을 위한 메세지소스 설정을 Java Config로 해 봅니다. 이번 예제는 "Spring Framework 메세지 국제화(다국어 지원) 사용하기" 에서의 xml 설정을 Java 클래스를 사용한 설정으로 변경한 것입니다. MessageSource의 사용법은 이글을 참조 하세요. 전체 예제소스는 글의 끝에 첨부해 두었습니다. 1. 메세지소스를 생성하는 설정 클래스를 작성합니다. MessageSource 와 언어 변경에 사용될 Locale Resolver를 생성합니다. 여기서는 언어정보를 세션에 저장하도록 SessionResolver를 생성합니다. package com.tistory.offbyone.init; import org.springframework.context.ann.. 2019. 3. 19.