Spring

Maven

1.Maven의 개요

  • Build : Source Code를 Compile을 수행하고 최종적인 실행 파일로 만드는 작업
  • Java Build Tool
    • Ant : XML로 기술한 빌드 설정에 따라 컴파일 및 의존 관계의 해결을 실시하는 도구 (사용빈도낮음)
    • Maven : Apache에서 개발되고 있는 소프트웨어 프로젝트 관리 툴로 외부 라이브러리 사용을 편리하게 해주는 빌드 도구
    • Gradle : Groovy로 작성하면 Ant 또는 Maven의 특징을 도입하여 만든 빌드 도구, Android의 IDE인 Android Studio에서 사용
  • Maven 은 POM(Project Object Model) 이라는 것에 기초를 두어 프로젝트의 빌드, 테스트, 도큐멘테이션, 성과물의 배치 등의 라이프 사이클 전체를 관리

image-20200217094255400

2.pom.xml

  • Maven 프로젝트의 설정 파일 - pom.xml
  • groupid : 도메인 이름
  • artifactld : 출력물의 이름
  • packaging : 어떤 프로젝트를 할것인가
  • version : 빌드되는 프로젝트의 버전
  • name : 프로젝트 이름
  • url : 프로젝트 사이트가 있다면 사이트의 URL을 등록 ( 설명에 관련된 페이지등 )
  • repositories : 라이브러리를 다운받을 저장소 , 중앙저장소가 아닌곳에서 다운로드 받고자 할 때 설정
  • dependencies : 어떤 라이브러리를 가져올 것인가

image-20200217093807456

(공공기관) 사용가능한 라이브러리 -> [ repository ] <--> 개발자, 개발자, 개발자 ...
라이센스, 버전문제 해결

  • pom.xml 파일에 추가
<dependencies>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.48</version>
    </dependency>
</dependencies>

Maven 설정

  • java build tool

1.build

  • 컴파일(소스 코드를 운영체제나 Virtual Machine 이 이해할 수 있는 코드로 변환) 된 코드들을 가지고 실행 가능한 프로그램을 만들어내는 작업
  • 코드 들의 순서라던가 포함관계를 파악해서 실행을 하게되면 메모리에 순서대로 적재(로드)해서 실행하도록 해주는 것

2.Java Build Tool의 종류

1) ant : build 만 해주는 tool

  • 최근에는 거의 사용되지 않고 문법만 다른 툴에서 사용할 수 있도록 해주고 있다.

2) Maven : Build tool 이면서 외부 라이브러리 관리를 편리하게 해주는 tool

  • 이전에 만들어진 java application 들은 거의 이 방식이다.

3) gradle : build tool 이면서 외부 라이브러리 관리를 편리하게 해주는 tool

  • android가 채택한 방식
  • build.gradle 이라는 설정 파일에 json 방식으로 설정

3.Maven

  • pom.xml 파일을 이용해서 프로젝트를 관리
  • pom.xml 파일에 설정을 하면 build를 할 때 그 설정에 따라 작업들을 자동으로 수행해주는 tool

4.maven 설치

  • eclipse 계열의 IDE를 사용하면 내장되어 있다.

5.maven 프로젝트 생성

1) maven 프로젝트로 처음부터 생성

  • eclipse 에서 maven 프로젝트를 만들거나 spring 프로젝트를 만드는 겨우

2) java application을 만들고 변환해서 생성

6.pom.xml 파일의 설정 태그

1) repositories

  • 라이브러리를 다운로드 받을 저장소를 설정
  • 설정하지 않으면 maven 중앙 저장소에서 다운로드
  • 오라클의 경우 오픈 소스가 아니라서 중앙 저장소에 없기 때문에 repositories를 설정해야만 다운로드 가능
  • 공공기관이나 대기업의 경우는 별도의 저장소를 가지는 경우가 많아서 그 저장소를 설정함.

2) dependencies

  • 실제 다운로드 받을 외부 라이브러리를 설정

7.라이브러리 사용 과정

1) pom.xml 파일의 dependencies 태그에 라이브러리를 설정

2) project가 build 될 때 자신의 계정의 .p2 디렉토리(숨김)에서 라이브러리를 찾아서 사용

3) 없으면 저장소에서 다운로드 받아서 .p2에 저장하고 사용

8.인터넷이 느리거나 동시에 여러 컴퓨터가 접속해서 다운로드 받는 경우 제대로 다운로드가 안되는 경우가 있다.

  • 이런 경우는 다른 컴퓨터에서 repository를 복사해서 붙여넣기 한 후 사용해도 됨.

9.MySQL 라이브러리의 클래스 로드

1) java application 프로젝트를 생성

2) Main 클래스를 만들어서 실행

public class Main {

    public static void main(String[] args) {
        try {
            Class.forName("com.mysql.jdbc.Driver");
            System.out.println("MySQL 드라이버 로드 성공");

        }catch(Exception e) {
            System.out.println("MySQL 드라이버 다운로드 실패");
        }
    }
}

3) 실행을 하면 드라이버 파일이 없어서 예외가 발생

image-20200217100239273

4) 이전의 방식으로 이 문제를 해결하고자 하는 경우

  • java application : MySQL 드라이버 다운로드 받고 프로젝트에 복사하고 파일을 선택한 후 build path에 추가
  • java web application : MySQL 드라이버 다운로드 받고 프로젝트의 WebContent/WEB-INF/lib 디렉토리에 복사

5) maven project의 경우 - pom.xml 파일에 mysql 의존성만 설정하면 됨. (프로젝트종류와 상관없음)

  • 프로젝트를 maven 프로젝트로 변환
  • 프로젝트를 선택하고 마우스 오른쪽을 클릭한 후

image-20200217100409038

image-20200217100726476

  • 생성된 pom.xml 파일에 의존성을 설정하는 코드를 추가

image-20200217101148381

// 추가된 부분 의존성 추가 
    <dependencies>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.16</version>
        </dependency>
    </dependencies>
</project>

6) 실행

  • 프로젝트 안에 Maven Dependencies 라는 디렉토리가 1개 만들어지고 mysql 드라이버르 다운로드 하고 build path에 추가해 준다.
  • 드라이버가 설치되어 예외가 발생하지 않는다.

image-20200217101405105

STS(Spring Tool Suite) 설치

  • 스프링 전용 Eclipse
  • Spring 학습을 할 때는 이 Toll을 많이 사용하고 우리나라에서는 공공기관(전자정부 프레임워크)이나 대기업 프로젝트(삼성 - Any Framework 등)를 할 때는 대부분 전용 프레임워크를 사용하는데 사용법이 STS와 유사함

1.spring.io 사이트에서 다운로드

2.eclipse pulg-in으로 설치

  • [help]-[Eclipse Market Pace]에서 sts를 검색
  • 3.xx 버전 install

최근에 4.xx 버전이 출시 되어있는데 아직 현업에서는 3.xx 버전을 이용

image-20200217102517505

results matching ""

    No results matching ""