-
[WEB:Spring] 스프링 시작하기 - 설치, 환경설정 셋팅비전공자 공부일기/:: WEB & Front-End 2019. 8. 29. 12:20
2019. 08. 29
스프링 다운로드 방법 1. 스프링 사이트에서 다운받기
스프링의 메인 사이트 : https://spring.io/
스프링 사이트에 들어가보면 한 가지가 아닌 다양한 기능들이 제공되고 있다.(** https://spring.io/projects 참고)
그러나 일단 우리가 이용할 것은 Spring Framework 5.0 on JDK 8&9 로 해보겠다.
스프링 홈페이지에 따로 다운로드 링크가 잘 안보이기 때문에, 직링을 타거나 원하는 기능 검색해야 하는데,
'STS'를 검색하면 Downloads 버튼이 검색결과로 나온다. 클릭!
하지만 나는 친절하므로 Spring Tool Suite(STS)를 다운받기 위한 직링 >> https://spring.io/tools3/sts/all/
스프링 다운로드 방법 2. 이클립스에서 스프링 설치
1) Eclpise > Help > Eclipse Marketplace > sts 검색
2) 여러 검색결과가 나오는데, 이 중에서 Spring Tools 3 (Standalone Edition) 3.9.9.RELEASE를 선택하고 INSTALL!
3) Confirm Select Features 창이 뜨면 모든 요소를 선택하고 Confirm을 누른다
4) License 창이 뜨면 I accept the terms of the license agreements 클릭하고 Finish!
새로운 스프링 프로젝트 만들기
자, 이제 이클립스에서 스프링 프로젝트를 시작해 보자.
먼저 이클립스의 Preference를 스프링 모드로 바꾸려면, 오른쪽 위 나뭇잎 모양을 클릭해준다.
본격적으로 이클립스로 스프링을 사용하려면, 지금까지와 달리 스프링 프로젝트라는 것을 만들어줘야 한다. 그래야 library들을 사용할 수 있다. 추가적인 library들은 다운로드 받아 사용해야 한다.
new > Spring Legacy Project > next > Spring MVC Project선택 & 이름 지정하고 next
> 스프링을 처음 시작하면 Spring MVC Project requires a download of 16608 bytes. Proceed? 가 뜬다. 라이브러리 다운을 받겠다는 뜻이므로 Yes 클릭
> Please specify the top-level package e.g. com.mycompany.myapp*이 뜨면 site.itwill.controller 이런 형식으로 쓴다. 컨트롤러를 모델 역할로 봐서 영역을 만들어주기 위함인데, 만약 모델과 컨트롤러를 분리해서 생각하겠다 하면 프론트 컨트롤러라는 명칭을 쓸 수 있다.이제, 새로 생성된 스프링 프로젝트를 보면 아이콘에 M자와 S자가 있다.
S는 당연히 Spring이고, M은 Maven메이븐 을 나타내는 이니셜이다.
즉, 메이븐 기반으로 만들어진 스프링 프로젝트라는 뜻이다.
기본적으로 스프링 프로젝트는 메이븐을 기반으로 한다.
프로젝트를 열어보면 폴더 구조가 이전과 달라진 것을 알 수 있다.
주요한 것만 보면
src패키지/main/java >>> 자바 소스
src폴더/main/webapp >>> 웹에 관련된 자원들(jsp, css, js 등)
src폴더/main/test >>> 실제 코드를 올리기 전 테스트 해보고 싶을 때을 만들어 넣으면 된다.
만약 프로젝트에 노란색 경고가 떨어졌다면, JRE 버전이 안 맞는 1.6인 경우이다.
스프링5는 jdk1.8이나 1.9 버전에서 사용할 수 있기 때문이다.
프로젝트 이름 오른쪽 클릭 > Properties > Java Build Path> JRE System Library 더블클릭 > Execution environment: 1.8이나 1.9로 설정
이제 노란색 경고가 빨간색 에러로 바뀜ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ왜냐면 라이브러리는 1.8로 바뀌었지만 컴파일러는 아직 다른 버전이라서이다.(내 경우엔 현재 1.6)
프로젝트에서 오른쪽 버튼을 누르고 다시 Properties > 이번엔 Project Facets
> Java의 Version을 보고 바꿈 > Dynamic Web Module 의 버전도 조정(3이상)
** 주의 ** 한 번 버전을 바꿔놓으면 상향조정은 되도, 다시 하향조정은 할 수 없다.
스프링 4를 이용.
(스프링 5는 클라우드)
pom.xml 파일에서 스프링 사용환경 설정하기
pom.xml이란?
: Maven 프로그램을 이용하여 라이브러리를 저장소(Repository)로부터 다운로드 받아 빌드하기 위한 정보를 제공하는 파일
** 메이븐을 이용하면 이전처럼 WEB-INF>lib>cos.jar 또는 ojdbc6.jar 를 빌드시켜줄 필요가 없다.
pom.xml 를 가지고 메이븐 레파지토리에서 라이브러리를 다운받아 빌드시켜줄 수 있기 때문이다.
pom.xml 파일 구조 살펴보기
1) 상단 기본정보
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>site.itwill</groupId> <artifactId>controller</artifactId> <name>spring</name> <packaging>war</packaging> <version>1.0.0-BUILD-SNAPSHOT</version>
간혹 xml 파일에 경고가 떨어지는 경우가 있는데,
log4j.xml 파일은 다음 두 군데에 존재한다.
>> src/main/resources --> 메인에 관한 것
>> src/test/resources2) 주요 엘리먼트들
<properties> // 예를들어 아래 요소값을 1.8로 바꾸면 <java-version>1.6</java-version> // 예를들어 아래 요소값을 5.1.9.RELEASE로 바꾸면 의존관계의 라이브러리들까지 자동으로 몽땅 바뀜 // 나머지 버전들도 최신버전을 확인하고 바꾸면 자동으로 바뀌게 된다! <org.springframework-version>3.1.1.RELEASE</org.springframework-version> <org.aspectj-version>1.6.10</org.aspectj-version> <org.slf4j-version>1.6.6</org.slf4j-version> </properties>
<properties> : pom.xml 파일에서 자주 사용되는 값(보통 버전)을 등록하기 위한 엘리먼트
=> 하위 엘리먼트에 등록된 값을 ${엘리먼트} 형식으로 표현할 수 있다.
=> 라이브러리에 대한 버전관리를 쉽게 하기 위해 사용
-- <어쩌구-version> : 해당 라이브러리에 대한 버전표시
-- => 숫자를 변경해주면 자동으로 그 버전으로 빌드됨!!!!!!!
-- ** 파일명 뒤에 -aplha 또는 -beta 라고 되어있는 건 테스트버전이기 때문에 왠만하면 다운받지 말자!
<dependencies> <!-- Spring --> <dependency> <groupId>org.springframework</groupId> // org.springframework 라는 폴더 아래 <artifactId>spring-context</artifactId> // spring-context 파일이 있다는 구조 <version>${org.springframework-version}</version> <exclusions> <!-- Exclude Commons Logging in favor of SLF4j --> <exclusion> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> </exclusion> </exclusions> </dependency> </dependencies> <!-- 이 외에도 물론 많은 depency가 필요하지만 여기선 생략 -->
<dependencies> : 프로젝트에 필요한 라이브러리를 다운로드 받아 빌드 설정하기 위한 최상위 엘리먼트
-- <dependency> : 라이브러리 파일을 빌드 설정하기 위한 상위 엘리먼트
-- ** http://mvnrepository.com 사이트 참조
-- => 의존관계 라이브러리 파일 중 제외 라이브러리도 함께 다운로드 됨
---- <grouopId> : 라이브러리 그룹을 설정하기 위한 엘리먼트
---- <artifactId> : 라이브러리 이름을 설정하기 위한 엘리먼트
---- <version> : 라이브러리 버전을 설정하기 위한 엘리먼트
---- <exclusions> : 의존 관계 라이브러리 파일 중 제외 라이브러리에 대한 정보를 제공하기 위한 엘리먼트
---- ** 의존관계란? : A 라이브러리를 사용하려고 할 때 그 안에서 다시 B라이브러리를 필요로 할 때 의존관계라고 한다.
** pom.xml >> 계정 디렉토리의 .m2 폴더(보통 c:\Users\user\.m2 )에 라이브러리 파일을 다운로드하여 빌드된다.
** 만약 라이브러리가 다운로드 되던 도중에 끊기는 경우, 다시 다운로드를 받아야 하는데 문제는 이미 .m2 폴더에 파일이 존재하므로 버전 업그레이드가 되지 않는이상 새로 다운로드되지 않는다. 그래서 파일을 삭제해준 뒤 다시 다운받아야 함. 삭제는 이클립스를 닫고 삭제하고, 그 뒤에 이클립스를 실행하면 자동으로 열심히 다운로드 받음
pom.xml 파일에 기본적으로 들어가 있는 라이브러리 외에 다운받고 싶은 게 있다면,
mvnrepository.com 사이트에서 필요한 라이브러리르 검색하면 pom.xml에 복사해서 붙여넣기 할 수 있도록 코드 형태로 제공되는 것을 볼 수 있다.
<!-- http://mvnrepository.com/artifact/cerces/cercesImple --> <!-- => 로그 프로그램(log4j)에 문제가 발생할 경우 문제를 해결하기 위한 기능을 제공하는 라이브러리 --> <dependency> <groupId>xerces</groupId> <artifactId>xercesImpl</artifactId> <version>2.12.0</version> </dependency>
라이브러리들이 모두 잘 빌드됐는지 확인하기 위해,
http://localhost:8000/controller/
를 실행해보아야 한다. Hello World! 하면서 현재 날짜시간이 나오면 성공.
패키지를 만들면 패키지의 마지막 .name 부분이 이름으로 되는데 컨텍스트 이름도 자동으로 이이름으로 된다. 이걸 바꿔주어야 한다.
==>서버 콘솔에서 서버(톰캣을 이용하는 경우 Tomcat v9.0 Server at localhost 라고 되어잇는 부분) 더블클릭> Modules 탭 클릭 > /controller 라고 된 부분을 /spring으로 바꾸기
(** 한글 깨짐 문제)
src 폴더 > main > webapp > WEB-INF > views > home.jsp 부분에
<%@ page session="false"%>
==> <%@ page session="false" contentType="text/html; charset=UTF-8"%> 로 변경할 것'비전공자 공부일기 > :: WEB & Front-End' 카테고리의 다른 글
[WEB:SPRING] 로그 Log 활용해보기 (0) 2019.08.30 [WEB:SPRING] 로그 Log 살펴보기 (0) 2019.08.29 [WEB:SPRING] 개요 - 프레임워크와 스프링 (0) 2019.08.29 [Web:] mybatis 마이바티스 XML DTO, DAO 만들기 (0) 2019.08.22 [WEB:] mybatis 마이바티스 시작하기 - 설치 및 설정 (2) 2019.08.21