이것저것

[Spring] Spring 환경설정(약식) 본문

Spring

[Spring] Spring 환경설정(약식)

곰태태 2020. 6. 11. 18:49
반응형
SMALL

우리가 쓰는 책은 스프링5 프로그래밍 입문이다.

 

스프링 레시피라는 책이있다.

토비의 스프링

  - 스프링 버전 2.0, 3.0일때 나온 책 번역서이다. 1200페이지짜리 상, 하권으로 나눠져 있다. 지금은 맞지 않음

  - 예전에는 토비의 스프링도 안 봤냐고 그랬다

 

스프링은 예전에는 환경설정에서 엄청 피곤한 일이었다.

스프링 5로 업그레이드된지는 얼마 안됐다.

 

 

큰 주제로는 DI, AOP, IOC 가 있다.

스프링의 책의 절반은 DI, AOP, IOC를 설명하며 환경설정을 진행하기 때문에 시간이 오래걸린다.

그러한 과정은 반드시 필요한 것이기때문에 알아야하는 것이 맞다.

하지만 이번에는 환경설정을 빠르게 진행하기 위해서 약식으로 진행하였다.

 

면접 질문

- 스프링이 뭐냐 : 백엔드 프로그램이다. 

- 스프링을 사용하는 이유 : 스프링이 지원하는 웹 MVC 프레임워크 때문이다. (스프링의 나머지는 다른 분야에서 쓰는 것)

- 스프링을 왜 하냐 : MVC 패턴을 구축시킨 프레임워크로 프로젝트를 진행하기 위해서


바로 환경설정에 들어간다.

Step 1.


처음에 이클립스로 환경설정을 해주겠다.

이클립스에 tomcat이 깔려있어야 한다. (Server가 연결되어있어야 한다.)

 

1-1.

File -> New -> Other에 들어가 준다.

 

1-2.

검색창에 ma라 쳐주면 Maven Project를 선택하고 Next를 눌러준다.

1-3.

Next로 넘어가 준다.

 

1-4.

Catalog에서 Internal을 선택해주고

스크롤을 내려보면 Artifact Id에 webapp으로 되어있는 것이 있다. 1.0 Version을 선택해주었다.

 

1-5.
Group Id와 Artifact Id 가 무엇인지 알기 위해서 아래 사이트를 들어간다.

아래 사이트는 Spring의 거대한 Repository이다.

여기서 Group Id와 Aritfact Id를 찾으러 가본다.

아래는 원시적으로 들어가는 방법이지만 가끔 사용할 것이다.

https://repo.maven.apache.org/maven2/

 

Central Repository:

 

repo.maven.apache.org

maven2/org/springframework/spring-context/ 로 들어가 준다.

여기서 springframework를 Group Id라고 하고

spring-context를 Artifact Id라고 한다.

예를 들자면 Group Id는 연산이고 Artifact Id는 더하기, 빼기, 나누기 같은 것이다.

Group Id는 Repository에서 목록을 찾은 다음에 Artifact Id에서 항목을 찾는다.

spring-context 항목은 가장 아래가 제일 최신이기 때문에 가장 아래나 그 근처의 것들을 사용하는 게 좋다.

 

Group Id와 Artifact Id를 임의로 생성해주자.

Spring01로 생성해주었다.

그리고 Finish를 누르면 설치에 들어간다.

이클립스 가장 오른쪽 아래를 보면 설치되고 있는 것을 확인할 수 있다.

더블클릭을 하면 큰 창으로 볼 수 있다.

이렇게 빨간색이 떠도 신경 쓰지 않아도 된다.

단계를 거쳐야지 오류가 사라진다.

2-1.

Spring01에서 우클릭 후 Properties를 들어간다.

2-2.

Project Facets에서 Java는 1.5 버전, Dynamic Web Module는 2.3 버전으로 되어있을 것이다.

버전을 변경시켜주기 위해 다음 단계를 진행하겠다.

 

2-3.

Resource에 들어가서 Location의 버튼을 눌러서 Spring01 폴더가 저장되어있는 폴더로 이동한다.

 

2-4.

Spring01 폴더의 .settings로 이동한다.

 

2-5.

확장자가 jdt.core.prefs인 파일과 facet.core.xml 파일을 메모장으로 열어서 수정해 줄 것이다.

 

2-6.

jdt.core.prefs 파일에 1.5로 되어있는 곳을 1.8로 수정해준 뒤 저장해준다.

2-7.

facet.core.xml에서는 1.5로 되어있는 것을 1.8로  2.3으로 되어있는 것을 3.0으로 수정해준다.

즉, java버전을 1.5에서 1.8로 web Module버전을 2.3에서 3.0으로 수정해준 것이다.

 

2-8.

파일들을 수정해주고 다시 Properties를 열어주면 버전들이 수정된 것을 확인할 수 있다.

 

2-9. 

오른쪽에 Runtimes를 클릭 후 Apache Tomcat을 선택해준다.

그리고 Apply를 시켜 연결된 것을 확인하고 Apply and Close로 닫아준다.

2-10.

새로고침을 해주면 Spring01 프로젝트에 오류 표시가 사라진 것을 확인할 수 있다.

새로고침이 안되면 Spring01 프로젝트를 선택한 다음에 F5 버튼을 눌러준다.

오류를 수정하였지만 아직 hellow world를 띄우지 못했다...

Step2로 넘어가자

 

Step2.

1-1.

index.jsp는 root 폴더이다.

우선은 pom.xml에 들어간다.

 

1-2.

pom.xml에서 <dependencies>를 구분하기 위해 시작 태그와 끝 태그 앞뒤로 엔터를 넣어서 구분해준다.

그리고 아래에 보면 Dependencies라는 메뉴를 선택해준다.

 

1-3.

Add를 눌러서 Group과 Artifact에 tiger를 넣어준 뒤 OK를 눌러서 다시 pom.xml로 이동한다.

pom.xml은 Dependencies가 있던 아래 창에 가장 오른쪽에 있다.

 

1-4.

그러면 tiger dependency가 생성된 것을 확인할 수 있다.

하지만 이 방법보다는 위의 dependency를 복사해서 쓰는 것이 더 편하고 쉽다.

기본적인 방법은 알아야지 좋다.

완성하면 tiger dependency는 그냥 지워주자.

*중요*

그리고 항상 저장을 할 때는 Crtl + S 를 한 다음에 Alt + F5를 누른다.

Alt + F5를 누르면 Mave Project를 업데이트할 거냐는 창에서

Force Update of Snapshots/Releases를 체크해주고 OK를 눌러주면 변경된 라이브러리에서 추가할 것이 생기면 업데이트를 해준다.

항상 해주는 습관을 가져야 한다. 

 

2-1.

아래 소스를 가져다가 붙여 넣어준다.

물론 원래 있던 dependencies와 build는 지워준다.

그리고 Alt + F5 -> Froce..으로 저장 후 업데이트해준다.

	<properties>
		<spring.version>4.0.1.RELEASE</spring.version>
	</properties>

	<repositories>
		<repository>
			<id>Spring Plugins</id>
			<url>https://repo.spring.io/plugins-release/</url>
		</repository>
	</repositories>

	<dependencies>
		<dependency>
			<groupId>com.oracle</groupId>
			<artifactId>ojdbc6</artifactId>
			<version>11.2.0.3</version>
		</dependency>

		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.7</version>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>javax.servlet.jsp</groupId>
			<artifactId>jsp-api</artifactId>
			<version>2.2</version>
		</dependency>

		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>javax.servlet-api</artifactId>
			<version>3.0.1</version>
		</dependency>

		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-webmvc</artifactId>
			<version>4.1.0.RELEASE</version>
		</dependency>

		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>jstl</artifactId>
			<version>1.2</version>
		</dependency>
	</dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>3.0</version>
				<configuration>
					<source>1.8</source>
					<target>1.8</target>
				</configuration>
			</plugin>
		</plugins>
	</build>

 

//참고

repository는 C드라이브 -> 사용자 -> 사용자명 -> .m2 -> repository가 있다.

이 폴더에 업데이트된다.

 

필요한 라이브러리는 아래 사이트에서 가져온다.

https://mvnrepository.com/

 

Maven Repository: Search/Browse/Explore

Spring Data Redis Last Release on May 12, 2020

mvnrepository.com

예를 들어서 mongoDB의 라이브러리를 가져온다고 하면 

검색창에 mongoDB를 입력 후 나오는 mongoDB java를 눌러서 안의 가장 최신 버전을 클릭해주고 안에 있는 

dependency를 복사해서 가져오면 된다.

(예를 들어서 한 것이고 실제로 하지는 않았다.)

ps. oracle은 maven에 없다. oracle에 직접 가서 받아야 한다.

----------------------------------------------------------------------------------------------------------------------------------

 

2-2.

WEB-INF 폴더에 web.xml을 열어준다.

아래쪽에 Source를 클릭해 열어준 다음에 아래 코드를 복사해서 전부 바꿔준다.

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns="http://java.sun.com/xml/ns/javaee"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
	id="WebApp_ID" version="3.0">
	<display-name>Archetype Created Web Application</display-name>

	<servlet>
		<servlet-name>dispatcher</servlet-name>
		<servlet-class>
			org.springframework.web.servlet.DispatcherServlet
		</servlet-class>
		<load-on-startup>1</load-on-startup>
	</servlet>

	<!--dispatcher 설정 -->
	<servlet-mapping>
		<servlet-name>dispatcher</servlet-name>
		<url-pattern>/</url-pattern>
	</servlet-mapping>

	<!--한글 설정 -->
	<filter>
		<filter-name>encodingFilter</filter-name>
		<filter-class>
			org.springframework.web.filter.CharacterEncodingFilter
		</filter-class>
		<init-param>
			<param-name>encoding</param-name>
			<param-value>UTF-8</param-value>
		</init-param>
	</filter>

	<filter-mapping>
		<filter-name>encodingFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
</web-app>

 

복사 붙여 넣기 한 다음에 파일 저장 후에 Alt+F5로 Force 업데이트를 해준다.

그러면 pom.xml에 오류가 사라질 것이다.

dispatcher부분은 다음에 만들 파일 이름을 dispatcher로 할 것이라는 뜻이다.

한글 설정은 말 그대로 한글 설정하는 곳이므로 건드리면 안 된다.

 

 

가끔 계속해서 오류가 뜨는 경우가 있는데 오류를 보기 위해서 창을 하나 열어줄 것이다.
1) Window -> Show View -> Other로 들어간다.

2) pro라고 치면 Problems가 나오는데 이창을 열어놓으면 오류를 찾을 수 있다.

 

web.xml 단계까지 전부 하고서 새로고침까지 했는데 오류가 뜬다면 Problems 창에서 확인하면 된다.

오류창에서 가끔 태그가 전부 정상인데 오류라고 하는 경우가 있다.

그럴 경우에는 pom.xml창을 닫았다가 다시 열어주면 오류가 사라진다...

왜 그런지는 잘 모르겠ㄷ....

 

Step 3.

1-1.

WEB-INF에 새 파일을 생성해준다.

파일명은 dispatcher-servlet.xml로 생성해준다.

 

1-2.

생성한 dispatcher-servlet.xml에 아래 코드를 넣어준다.

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:mvc="http://www.springframework.org/schema/mvc"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.springframework.org/schema/beans        
    http://www.springframework.org/schema/beans/spring-beans.xsd        
     http://www.springframework.org/schema/context
     http://www.springframework.org/schema/context/spring-context.xsd
     http://www.springframework.org/schema/mvc
  http://www.springframework.org/schema/mvc/spring-mvc.xsd">

	<!-- 컨트롤러 위치 설정 -->
	<context:component-scan base-package="pack01" />

	<mvc:annotation-driven />
	<mvc:default-servlet-handler />

	<!-- 뷰 위치 설정 -->
	<mvc:view-resolvers>
		<mvc:jsp prefix="/WEB-INF/views/" />
	</mvc:view-resolvers>

</beans>

MVC는 디자인과 코드를 분리하는 것이다.

디자인은 jsp이고 코드는 java와 같다.

 

1) base-package="pack01"은 java 프로젝트의 패키지 경로명을 지정한다.

만약에 java 프로젝트를 만들 때 Pack01로 하면 실행이 되지 않는다.

대소문자를 맞춰줘야 한다.

 

2) mvc:jsp prefix="/WEB-INF/views/"는 jsp의 파일의 경로를 views로 지정해준 것이다.

프로젝트를 만들 때 jsp파일을 만들려면 위의 경로에 views파일을 만들어 넣어주면 된다.

 

 

 

1-3.

index.jsp에 아래 파일을 덮어씌워준다.

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<%@ page import="java.util.*, java.text.*"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

<head>
<title>메인 페이지</title>
</head>

<body>
	<%=new Date()%>
	<h2>Hello World</h2>
	<a href="t1">링크1</a><br/>
</body>

 

저장한 뒤에 오류가 뜨지 않는 것을 확인했으면 실행을 해보자

실행은 Ctrl+F11이다.

그러면 실행창이 뜨는 것을 확인할 수 있다. 

 

 

 

 

 

 

 

반응형
LIST

'Spring' 카테고리의 다른 글

[Spring] Mybatis  (0) 2020.06.19
[Spring] ajax로 페이지 refresh없이 출력하기  (0) 2020.06.18
[Spring] axios로 spring 구현  (0) 2020.06.18
[Spring] JSTL 사용하기  (0) 2020.06.16
[Spring]환경설정(약식2)  (0) 2020.06.15
Comments