[Spring] 1. 테스트 프로젝트 구성

※ 포스팅은 환경 구성 중 발생한 오류들과 해결 과정을 포함하고 있으며, 환경에 따라 다를 수 있으니 참고하시길 바랍니다.

시큐어코딩 학습을 위해서 예시 코드를 작성하고 테스트 하는 과정이 필요합니다.

그 첫번째로 Java Spring 환경에서 학습을 해보려 합니다. 전자정부 프레임워크나 많은 기업의 대규모 웹서비스들이 스프링 프레임워크를 사용하고 있기 때문에 학습할 필요성이 있습니다.

스프링 프레임워크는 자바 기반의 엔터프라이즈 어플리케이션 개발을 위한 다양한 프로그래밍이나 설정 모델을 지원하며, 배포 플랫폼과 상관없이 사용할 수 있습니다.

이번 실습은 윈도우 7 환경에서 수행할 예정이며, STS를 사용하여 환경을 구성합니다. 이미 STS와 Apache Tomcat 설정이 되어 있는 상태이며, 설정되지 않으셨다면 검색을 통해 STS 설치와 Apache Tomcat 설정을 진행하신 후 본 글을 참고 하시면 될 것 같습니다.

1-1. 스프링 프로젝트 생성하기

  • STS 프로그램 내 File > New > Other 메뉴 선택 > spring 검색 > Spring Legachy Project 선택 > Next 선택
STS Wizards를 이용해 생성할 프로젝트 타입 선택
  • Project Name 입력 : 원하는 이름으로 입력
  • Spring MVC Project 선택 > Next 선택
프로젝트 이름과 세부 타입 선택
  • 최상위 Package 명 입력 : com.[소속].[이름] 등의 형태로 자유 입력
  • Finish 선택
  • 프로젝트 파일 생성 및 기본 구조 확인
프로젝트 생성 완료

새로운 스프링 프로젝트 생성이 완료되었습니다.

1-2. 프로젝트 오류 해결하기

대부분의 경우에는 STS Wizard를 통해 프로젝트 생성 후 실행 시 미리 생성된 테스트 페이지가 출력됩니다. 하지만 붉은 색 x 표시가 있는 경우에는 오류가 발생하여 해당 오류를 해결하여야만 웹 서비스 동작이 가능합니다. 하나씩 해결 해보겠습니다.

1-2-1. 오류 확인하기

생성한 프로젝트에는 총 2개의 파일에 오류 표시가 확인됩니다. 

  • src/main/java/com/bonbon42/securecoding/HomeController.java
  • src/main/webapp/WEB-INF/views/home.jsp
HomeController.java 내 import 부분 오류 확인
home.jsp 내 uri 경로 부분 오류 확인

1-2-1. HomeController.java 파일 내 오류 해결

HomeController.java 파일 내엔 import 코드 부분에서 오류가 나는 것을 확인했습니다. 

문제가 생긴 부분을 확인했으니, sts import 오류 등으로 구글에 검색 후 해결 방법을 찾아봅니다. import 오류는 실제로 필요한 라이브러리가 포함되지 않았거나, jdk가 잡히지 않은 경우 생길 수 있다고 합니다.

처음 생성한 프로젝트의 경우, jdk 설정과 관련하여 문제가 생길 수 있으니 확인해 보겠습니다.

  • securecoding 프로젝트 우클릭 > Build Path 선택 > Configure Build Path… 선택
  • JRE System Library 선택 > Edit 선택
프로젝트 Build Path Configuration 화면

JRE System Library [JDK 버전]으로 표시됩니다. 표시된 버전을 확인 시 제 컴퓨터 내 설치된 JDK 버전과 달라, STS의 내장 JDK가 지정된 것으로 보입니다. 이 버전을 설치된 JDK로 변경해 주겠습니다.

  • Alternate JRE 선택 > 설치된 jdk 버전 선택 > Finish 선택
JRE System Library 변경
  • Build Path Configuration의 Apply and Close 선택
  • 선택 후 오류가 사라지지 않는 경우, HomeController.java 내 import 코드를 복사 > 삭제 > 붙이기를 수행
  • 프로젝트 우클릭 > Run As 선택 > Maven Clean 선택 

1-2-3. 오류 해결 확인하기

JDK 버전만 변경해주었는데, 2개의 오류가 모두 해결되었습니다.

기본적으로 STS 내장 JRE를 사용하기 때문에 원활한 동작을 위해서는 로컬 컴퓨터 내 JDK를 별도 설치하고, 프로젝트 내 라이브러리로 지정해주어야 합니다.

오류 해결 확인

1-3. Maven Dependency 설치하기

1-3-1. Maven Install

프로젝트 동작 전 Maven을 이용하여 관련 라이브러리들을 다운로드 받아야 합니다.

  • 프로젝트 우클릭 > Run as 선택 > Maven Install 선택
Maven Install 실행 후 Error 발생

Maven Install 실행 후 Console 확인 시 오류가 발생하였음을 확인했습니다.

1-3-2. Maven Install 오류 해결하기

오류 난 경로 확인 시 spring-context-3.1.1.RELEASE.jar 파일에서 오류가 발생했고, 오류 메시지는 invalid LOC header 였습니다.

spring invalid LOC header 라는 문구로 검색 시, Maven 문제로 발생할 수 있는 오류이며 해결책이 무엇인지 친절하게 안내해주는 글들이 많이 나옵니다.

테스트를 반복하면서, Maven repository 내 파일이 잘 못 설치된 것이 원인인 듯합니다.

  • STS 프로그램 종료
  • C:\Users\[사용자]\.m2 내 repository 폴더 삭제 : Maven Install 오류 내 표시된 경로 참고
  • STS 프로그램 시작
  • 프로젝트 우클릭 > Maven 선택 > Update Project 선택 > 프로젝트 체크되어 있음 확인 > OK 선택

1-3-2. Maven Install 다시 수행

프로젝트 내 JRE System Library가 이전처럼 STS 내장 jre로 설정되어 있을 수 있습니다. 이 경우엔 1-2-1의 설정을 다시 수행하면 됩니다.

jdk 설정도 문제가 없다면 1-3-1을 다시 수행합니다. 성공 시 아래처럼 BUILD SUCCESS 문구를 확인할 수 있습니다.

Maven Install 성공

1-4. 웹서비스 동작하기

오류를 해결했으니, 웹서비스를 동작시켜 테스트 페이지가 작동하는지 확인합니다.

  • 프로젝트 우클릭 > Run As 선택 > Run On Server 선택
  • Choose an existing server 선택 : 기존에 설치되어 있는 WAS를 이용
  • 설치된 Tomcat 선택 Next 선택
프로젝트 동작에 사용할 WAS 선택
  • Configured에 프로젝트 포함 확인 > Finish 선택
WAS 내 프로젝트 포함 확인
  • 서버 동작 및 Hello world! 페이지 확인
서버 동작 후 Hello world! 페이지 출력

1-5. 페이지 내 한글 깨짐 수정

테스트 페이지 출력까지 확인을 했으면, 기초적인 실습 환경 구성이 완료됩니다. 다만, 페이지 내 한글 깨짐 현상이 있어 수정을 해두어야 합니다.

한글 깨짐 현상은 View 페이지 내 UTF-8 을 인코딩 타입으로 지정해주는 것으로 해결할 수 있습니다.

  • src/main/webapp/WEB-INF/views/home.jsp 열기
  • home.jsp 페이지 상단에 한글 사용을 위한 charset 문구 추가
  • <%@ page language=”java” contentType=”text/html; charset=UTF-8″ pageEncoding=”UTF-8″ %>
home.jsp 파일 내 contentType 지정 문구 추가
  • home.jsp 파일 저장 시 STS 내 WAS 자동으로 리로딩
  • 페이지 새로고침으로 한글 출력 확인
한글 출력 확인

실습을 위한 스프링 프레임워크 기본 프로젝트 생성이 완료 되었습니다. 기존에 프로젝트를 추가하고, 삭제하던 이력이 있어서 다른 예시보다 오류가 많이 발생한 듯 합니다.

Leave a Reply

avatar
  Subscribe  
Notify of