개인 공부 상자/intellij Spring

[1]IntelliJ + (Maven)SpringMVC + Tomcat 기본 환경 구성

RSpring41 2021. 10. 1. 18:12

기존에 사용했던 'eclipse'가 아닌 새로운 개발 환경인 intellij에서 Spring Boot환경을 구성하고 간단한 웹 페이지를 출력해보는 실습을 진행해 보려고 한다.

 

 

1.  'intellij'에서 Project를 생성한다.

 

아래 세부 사항들은 다음과 같다 

 - Group com.tistory.offbyone - 자신에게 맞는 값을 넣으면 됩니다. 보통 도메인을 사용합니다.

 - Artifact: Mave 아티팩트명인데, 이것이 프로젝트명이 됩니다.
 - Description: Demo project for Spring Boot - 프로젝트 설명입니다.
 - Package name : com.tistory.offbyone.springboot - 초기 소스들이 만들어질 기본 패키지명 입니다.

 

 

2. 의존석 설정에서 기본 웹에 필요한 부분들 추가해준다.

의존성 추가

 

글쓴이는 여러 API를 아직 잘 모르기 때문에 인터넷 검색 이후 간단하게 웹을 구성하는데 필요할 것 같은 것들만 임시로 추가했다. 사실 여기서부터 알고 사용해야 하지만 글쓴이는 일단 눈에 뭐라도 작동되는 게 보여야 흥미가 있고 썼던 내용을 이해하려고 하기 때문에 어떤 기능을 하는 API인지 정확히는 모르더라도 실습을 진행했다.

 

 

여기까지 하고 계속 wabapp가 생성되지 않아 jsp파일을 생성할 수 없어 이것저것 해보다가 

Maven프로젝트를 먼저 만들고 이후 Spring프로젝트를 생성해야 한다고 한다.


 

1. 새로운 Maven 프로젝트를 생성한다.

글쓴이는 이미 설치되어 있는 8 버전 자바를 선택했다. 아래 archetype은 설정하지 않고 Next!!

 

2. 프로젝트 설정

사용자가 하고 싶은데로 프로젝트 세부 사항을 설정한다.

- Groupld : 도메인

- Artfactld : 실제 프로젝트명

- Version : 버전

 

이렇게 프로젝트를 생성하면 처음에 다운받은 파일들이 좀 있으니 기다리자!

 

3. Spring Framework 추가

 

- 프레임 워크 추가 설정으로 들어간다.

- Spring MVC를 추가한다.

 

2. lib폴더를 삭제한다(lib를 이용하면 나중에 유지보수가 어렵다고 한다. >> pom.xml를 이용)

 

- 해당 라이브 러리를 삭제한다. 삭제한 라이브러리는 pom.xml에 추가할 예정이다.

 

Maven에서 스프링 프레임 워크에 필수 의존성에 대한 내용은 아래를 참고 

(나중에 정리해서 적을 예정)

 

[Spring] Spring Framework란? 기본 개념 핵심 정리

Spring Framework란? 자바 플랫폼을 위한 오픈소스 애플리케이션 프레임워크로서 엔터프라이즈급 애플리케이션을 개발하기 위한 모든 기능을 종합적으로 제공하는 경량화된 솔루션입니다. 엔터프

khj93.tistory.com

 

 

3. Spring 필수 dependency을 추가해 준다.

<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.example</groupId>
    <artifactId>study</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>

        <!-- 스프링프레임워크 API-->
        <spring-webmvc-version>5.2.6.RELEASE</spring-webmvc-version>

        <!-- servlet사용을 위한 API-->
        <!-- 3.1.0버전이 2013년에 업데이트 되었으며 가장 많이 쓰이는편-->
        <javax.servlet-api-version>3.1.0</javax.servlet-api-version>

        <!-- jsp를 사용하기 위한 API-->
        <!-- 2.3.3 버전이 2018년도를 마지막으로 업데이트 되었으며 가장 많이 쓰이는편-->
        <javax.servlet.jsp-api-version>2.3.3</javax.servlet.jsp-api-version>

        <!-- jstl를 사용하기 위한 API-->
        <!--업데이트가 2개뿐 이고 그중에 1.2가 가장 많이 쓰임-->
        <javax.servlet.jsp.jstl-api-version>1.2</javax.servlet.jsp.jstl-api-version>

    </properties>

    <dependencies>
        <!-- springframework 필수 API -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>${spring-webmvc-version}</version>
        </dependency>

        <!-- servlet-api -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>${javax.servlet-api-version}</version>
            <scope>provided</scope>
        </dependency>

        <!-- jsp-api -->
        <dependency>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>javax.servlet.jsp-api</artifactId>
            <version>${javax.servlet.jsp-api-version}</version>
            <scope>provided</scope>
        </dependency>

        <!-- jstl-api -->
        <dependency>
            <groupId>javax.servlet.jsp.jstl</groupId>
            <artifactId>jstl-api</artifactId>
            <version>${javax.servlet.jsp.jstl-api-version}</version>
        </dependency>

    </dependencies>


</project>

 

 

이렇게 설정하고 업데이트해주면 기본 설정이 끝났다!! 이제 TomCat설정으로 넘어가겠다.

 


 

먼저 아래 아파치 톰캣 공식 사이트로 이동하여 서버 파일을 다운로드하여 원하는 곳에 압출을 해제한다.

 

Apache Tomcat® - Apache Tomcat 8 Software Downloads

Welcome to the Apache Tomcat® 8.x software download page. This page provides download links for obtaining the latest versions of Tomcat 8.x software, as well as links to the archives of older releases. Unsure which version you need? Specification versions

tomcat.apache.org

 

1. 서버 추가 

- 서버 설정으로 진입

 

- 서버 추가에서 Tomcat_Local서버 추가

 

- 서버 설정을 해준다.

 

Application server : 다운로드하였던 서버 경로

URL : 접속 주소

VM options : 서버 설정 (한글 서버 인코딩 때문에 '-Dfile.encoding=UTF-8' 를 추가해준다.)

 

이 정도까지만 설정해주고 다음으로 Deployment 텝으로 넘어가 Artifact를 추가해준다.

(아직 정확히 이게 무슨 의미인지 모르겠지만 Eclipse에서 서버에 프로젝트를 추가해주는 느낌 같다.)

 

- 추가로 Application context를 설정해준다. (해당 프로젝트 서버 접속 주소 같다!! 수정 안 해도 무방하다.)

글쓴이는 서버 1개에 프로젝트 1개만 돌릴 거라 /으로만 설정했다.

이렇게 하면 Tomcat 설정이 끝이 났다!! 한번 실행해보자 Run!

 

... 오류다 오류야... 이렇게 했는데 오류가 났다..

일단 콘솔 창 인코딩 먼저 바꿔주자!

 

해결법은 정리해서 따로 작성해 놓았으니 참고하자!

 

IntelliJ console 인코딩 설정

IntelliJ를 이용한 실습 진행중 console에 한글 출력이 깨지는 현상이 발생했다. 설정법은 아래와 같다. Shite + Ctrl + A를 눌러 Edit custom VM options 를 검색한다. 열린 편집창에 -Dfile.encoding=UTF-8..

rspring41.tistory.com

 

서버 로그를 보니 다음과 같은 에러가 발생했다.

02-Oct-2021 13:05:33.127 심각 [RMI TCP Connection(3)-127.0.0.1] org.apache.catalina.core.StandardContext.listenerStart 클래스 [org.springframework.web.context.ContextLoaderListener]의 애플리케이션 리스너를 설정하는 중 오류 발생

검색해보니 아까 삭제했던 lib폴더에서 뭔가 못 찾아서 그런 거 같은데... 이 오류는 더 깊게 찾아보거나 

Artifacts에 관한 내용을 더 공부하게 되면 자연스럽게 알 것 같다. 일단 해결법은 정리해 놓았으니 아래 글을 참고하면 된다.

 

[org.springframework.web.context.ContextLoaderListener]의 애플리케이션 리스너를 설정하는 중 오류 발생

- 오류 org.apache.catalina.core.StandardContext.listenerStart 클래스 [org.springframework.web.context.ContextLoaderListener]의 애플리케이션 리스너를 설정하는 중 오류 발생 - 해결 Project Stru..

rspring41.tistory.com

 

이렇게 오류를 해결하고 서버를 실행하면 아래와 같은 인터넷 창이 뜬다!!!

 

여기서 간단하게 Controller를 만들고 Jsp와 연결해 보자

먼저 다양한 xml 파일을 만들고 설정해 주어야 한다... 전자정부 프레임워크를 이용하면 이런 파일과 코드가 자동으로 생성되었는데 IntelliJ에서는 사용자가 직접 추가해 주어야 하나 보다.

 

 

일단 이렇게 까지 기본 환경 구성을 끝내고 다음편에는 Controller와 jsp를 연동하는 실습을 진행하고,

이후에는 My-SQL과 연동하겠다.