[SPRING] #1 프로젝트 생성 및 환경 설정

eunseo·2021년 8월 15일
0

SPRING

목록 보기
1/14
post-thumbnail

> Build Tool 선택하기

  • Maven
  • Gradle

Build?

  • 필요한 라이브러리를 다운 받고 classpath에 추가합니다.
  • 소스 코드를 컴파일 합니다.
  • 테스트를 실행합니다.
  • 컴파일된 코드를 packing 합니다 -> jar/war/zip etc
  • packing된 파일을 주로 artifacts라고 부르고 서버나 repository에 배포합니다.

Maven

그럼 왜 Maven을 사용할 가요?

  • Maven은 archetypes 라는 프로젝트 템플릿을 제공해서 매번 같은 설정을 반복하지 않게 도와줍니다. → archetypes로 기본 프로젝트 구조를 제공해줍니다.

SI 회사에서 매번 같은 프로젝트 구조를 만들기 어려우니
이전에 archetypes를 만들어서 프로젝트를 제공하기도 했습니다.

  • 프로젝트에서 사용하는 외부 라이브러리인 dependency 를 관리해줍니다. 다운로드도 해주고 최신버젼으로 업데이트되 쉽게 할 수 있습니다. 그리고 라이브러리들의 호환성도 관리해줍니다.
  • 플러인과 외부 라이브러리를 분리하여 관리합니다. 플러그인에서 사용하는 라이브러리가 프로젝트의 dependency 와 섞이지 않게 도와줍니다. 물론 각각의 Repository가 별도로 존재합니다.
  • dependency를 다운닫는 Repository가 로컬이 될 수도 있고 Maven Central 와 같은 공개된 Repository가 될 수도 있습니다. 물론 비공개 Repository에서 다운 받을 수 도 있습니다.

Nexus 를 이용하면 손 쉽게 비공개 Repository를 만들 수 있습니다.

  1. Manve 프로젝트 생성
    file > new > Project

프로젝트 생성후 오른쪽 상단바에 있는 Maven을 누르면 build Lifecycle [clean, validate ...]가 있는 것을 볼 수 있다.

의존 범위(Dependency Scope)

https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#dependency-scope

Dependency scope is used to limit the transitivity of a dependency and to determine when a dependency is included in a classpath.

  • compile: .. 을 지정하지 않는 경우, 기본값으로 설정됩니다. 컴파일 의존성은 프로젝트의 컴파일, 테스트, 실행에 라이브러리가 필요할 때 사용합니다.
  • provided: 일반적으로 JDK 또는 컨테이너가 해당 라이브러리를 제공할 때 설정합니다. 즉, 웹 애플리케이션의 경우 JSP와 Servlet API 등은 provided 의존성으로 설정합니다.
  • runtime: 컴파일 시에는 사용되지 않으나, 실행과 테스트 시에는 필요할 때 설정합니다. 대표적인 예가 JDBC 드라이버입니다.
  • test: 애플리케이션의 실행에는 사용하지 않으나, 테스트 컴파일 및 실행 시에 필요할 때 설정합니다. 대표적인 예로는, easymock, junit 등이 있습니다.
  • system: provided 의존성과 비슷하지만, 사용자가 jar 파일의 위치를 지정한다는 점이 다릅니다. system 의존성을 사용하려면, .. 엘리먼트를 이용하여 jar 파일의 위치를 지정해야 합니다. 그러나 사용자마다 개발 환경이 다를 수 있으므로 프로퍼티를 이용하여 jar 파일의 위치를 지정하는 것이 좋습니다.
profile
backend developer

0개의 댓글

관련 채용 정보