이전 포스팅

 

2년 지난 프로젝트 리팩토링 - 01. 프로젝트 버전 및 구조 수정

기말이 끝나서 2년 전에 만들었던 web 프로젝트를 리팩토링 해보기로 했습니다.갑자기 하게 된 이유는 포폴을 만들기 위해 프로젝트를 검토하던 중에 여러 오류를 만났기 때문입니다. 오류의 가

hya68.tistory.com


1. IntelliJ에서 war 프로젝트 실행

웹 애플리케이션(WAR)을 Tomcat 서버에 배포하고, Tomcat이 이 애플리케이션을 실행하도록 하는 것

* 여기서 서버는 로컬을 의미 -> 추후 AWS EC2에 배포 예정


2. 빌드

Build → Build Project
  • 이 과정에서 프로젝트 구조는 자동으로 설정됨 (Module, Facets, Artifacts)
  • Artifacts에서 web.xml 파일이 있는지 확인 (없으면 직접 추가)
  • File → Project Structure →  Artifacts  ...:war exploded 선택 WEB-INF 폴더 선택 +  File web.xml 파일 추가

Artifacts 설정 화면에서 web.xml 차이

#1. Module

정의

  • 하나의 프로젝트를 구성하는 최소 실행 단위

역할

  • src/main/java 코드 관리
  • resources 관리
  • 의존성(pom.xml) 적용
  • 빌드 단위

#2. Facets

정의

  • 모듈의 역할 정의 (태그같은 개념)
  • IntelliJ는 각 모듈의 역할을 명시해줘야함

대표적인 Facet 종류

Web 웹 프로젝트
Spring Spring 프레임워크
MyBatis MyBatis 사용
JPA JPA 사용
  • Deployment Descriptors : 웹 애플리케이션의 설정 파일 위치
    • WEB-INF/web.xml 이 물리적으로 존재하는 위치
  • Web Resource Directories : 실제 웹에 배포되는 정적/동적 리소스들의 루트 디렉터리
    • JSP, HTML, CSS, JS, 이미지 등이 들어있는 폴더

#3. Artifacts

정의

  • 배포용으로 만들어지는 결과물
  • 즉, war, jar와 같은 빌드 결과물

역할

  • Tomcat(WAS)에 배포되는 빌드 결과물
  • 어떤 Module을 포함할지, 어떤 리소스를 넣을지, WAR 구조를 어떻게 만들지 결정

 

2-1. 프로젝트 구조 설정 (위의 요소들이 자동으로 생성되지 않았을 경우에만 참고)

더보기
File → Project Structure → Module, Facets, Artifacts 추가 및 설정
  • 직접 경로 설정하고 추가하는 게 생각보다 오류가 잘 나서 자동으로 빌드되는 것 그대로 사용 권장

Modules 설정 방법

  • 모듈이 없다면 + New Module 본인이 만든 프로젝트에 맞는 언어 선택 제목 입력 후 생성
New Module 생성 화면, Module 설정 화면

Facets 설정 방법

  • Facets이 없다면 + Web 추가
  • Module, Facets에 동일한 경로가 동시에 추가됨
  • Deployment Descriptors & Web Resource Directories 경로(path) 확인
Facets 설정 화면

Artifacts 설정 방법

  • Artifacts가 없다면 + Web Application: Exploded from Module.. 추가
  • WEB-INF 폴더에 web.xml 파일 있는지 확인 후 없으면 추가
Artifacts 설정 화면

 

*후일담*

이거 직접한다고 아티팩트 생성했는데 갑자기 web 폴더가 여러 개 생성되질 않나 module이랑 facets 경로가 2개가 되질 않나 이제 정리 다 되어서 톰캣 설정하고 실행하니 404가 뜨질 않나 여러 트러블 이슈가 발생해서 고생했네요

이렇게 일일이 다 설정하기 보다는 그냥 프로젝트 캐시 삭제하고 디스크 자체에서도 관련 파일들 전부 삭제 후 다시 빌드하는 것을 추천드립니다


3. Tomcat 설정

1. Run → Edit Configurations... → + → Tomcat Server → Local
2. Server → Before launch → + → Build Artifacts → ~:war exploded 추가
3. Deployment → + → Artifact.. → ~:war exploded 추가

 

이렇게 설정한 후 실행하면 500이 뜹니다.

404는 안뜨니까 정상적으로 애플리케이션이 실행되었다는 뜻이고, 500은 DB 연결하면 해결됩니다.

다음 포스트에서 DB 연결해보겠습니다.

+ Recent posts