본문 바로가기

Web/Spring

[ Spring ] ⑦ 메이븐과 스프링 STS

[위키피디아] Apache Maven Logo

1. 아파치 메이븐

(1) 메이븐(Maven)

  • 정의 : "프로젝트 구조와 내용을 기술하는 선언적 접근 방식의 오픈 소스 빌드 툴"
  • 프로젝트 종속 라이브러리들과 그 라이브러리에 의존하는 Dependency 자원까지 관리.
  • 프로젝트 전반의 리소스 관리와 설정 파일 그리고 이와 관련된 표준디렉터리 구조를 처음부터 일관된 형태로 구성하여 관리할 수 있음

 

(2) 메이븐 설치하기

  1. maven.apache.org에 접속한 후 Download를 클릭한다.
  2. apahce-maven-version-vin.zip 파일을 다운로드한다
  3. 원하는 폴더에 다운로드 한 압축을 해제하고 경로를 복사한다
  4. 환경 변수 설정에서 MAVEN_HOME을 생성하고 MAVEN_HOME/bin을 PATH에 등록한다.
  5. 터미널에서 mvn 명령으로 설치가 잘되었는 지 확인한다.

 

(3) 메이븐 기반 웹 프로젝트 기본 디렉터리 구조

 

  • 프로젝트 구성 요소
구성요소 설명
pom.xml 프로젝트 정보가 표시되며 스프링에서 사용되는 여러 가지 라이브러리를 설정해 다운로드 할 수 있음
src/main/java 자바 소스 파일이 위치
src/main/resources 프로퍼티 파일이나 XML 파일 등 리소스 파일이 위치함
src/main/webapp WEB_INF 등 웹 애플리케이션 리소스 위치
src/test/java JUnit 등 테스트 파일이 위치
src/test/resources 테스트 시에 필요한 resource 파일이 위치함.

 

  • pom.xml

프로젝트가 생성되면 pom.xml 파일이 생성되는데, 여기서 POM은 Project Object Model의 약자로 이름 그대로 Project 의 Object Model의 정보를 담고있는 파일입니다. pom.xml은 <project>...</project>로 둘러싸여서 section 별로 여러 정보를 나타내며 설정할 수 있다. 이 파일에서 주로 다루는 기능은 프로젝트 정보, 빌드 설정, 빌드 환경, 의존성 정보 등이 있습니다.

더보기
  • 프로젝트 정보 : 프로젝트의 이름, 개발자 목록, 라이센스 등
속성 설명
groupId 프로젝트 그룹 id를 나타내며 일반적으로 도메인 이름을 사용해 설정.
artifactId 프로젝트 아티팩트 id를 설정. 대개는 패키지 이름으로 설정.
version 프로젝트의 버전을 설정.
packaging 애플리케이션 배포 시 패키징 타입을 설정. 이 경우는 war파일로 패키징됨.
  • 빌드 설정 : 소스, 리소스, 라이프 사이클별 실행한 플로그인(goal) 등 빌드와 관련된 설정
  • 빌드 환경 : 사용자 환경 별로 달라질 수 있는 프로파일 정보
  • POM 연관(의존성) 정보 : 의존 프로젝트(모듈), 상위 프로젝트, 포함하고 있는 하위 모듈 등
속성 설명
dependency 해당 프로젝트에서 의존하는 다른 라이브러리 정보를 기술
groudId 의존하는 프로젝트의 그룹 id
artifactId 의존하는 프로젝트의 artifact id
version 의존하는 프로젝트의 버전 정보

 

 

2. STS

  • STS(Spring Tool Suite) : 이클립스 기반으로 만들어진 스프링 기반 애플리케이션 개발용 도구
  • STS 설치 방법
    • 이클립스에 STS 플러그인 설치
    • 스프링 홈페이지인 http://spring.io 에서 직접 다운로드 해서 설치하는 방법

 

3. 스프링 프로젝트 만들기

 

4. log4j란?

  • 스프링 프로젝트를 생성하면 사동으로 log4j 라이브러리가 설치 된다. -> log4j.xml
  • log4j는 로그 기능을 제공하는 오픈 소스 라이브러리로, 애플리케이션에서 웹 사이트에 접속한 사용자 정보나 각 클래스의 메소드 호출 시각 등 여러 가지 정보를 로그로 출력해서 관리한다.

 

  • 로그 관리는 왜 필요한가?

 

log4j XML 태그

태그 설명
<Appender> 로그의 출력 위치를 결정(파일, 콘솔, DB등). log4j API 문서의 XXXAppender로 끝나는 클래스들의 이름을 보면 출력 위치를 알 수 있다.
<Layout> Appender가 어디에 출력할 것인지 결정했다면 어떤 형식으로 출력할지 출력 레이아웃을 결정한다.
<Logger> 로깅 메세지를 Appender에 전달한다. 개발자가 로그 레벨을 이용해 로그 출력 여부를 조정할 수 있다. logger는 로그 레벨을 가지고 있으며, 로그의 출력 여부는 로그문의 레벨과 로거의 레벨을 가지고 결정한다.

 

 

* log4j 관련 사이트

http://logging.apache.org/log4j/1.2/manual.html



- 예제 : log4j.xml 이용해 로그 메세지 출력하기

더보기

1. log4j 작성

 

2. memberControllerImpl 클래스 작성

 

3. 출력 결과

 

References

  1. 자바 웹을 다루는 기술

'Web > Spring' 카테고리의 다른 글

[ Spring ] ⑥ 스프링 애너테이션 기능  (0) 2019.08.12
[ Spring ] ⑤ 스프링 JDBC 기능  (0) 2019.08.02
[ Spring ] ④ 스프링 MVC 기능  (0) 2019.08.01
[ Spring ] ③ AOP  (0) 2019.08.01
[ Spring ] ② DI와 IoC  (0) 2019.08.01