ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [JAVA] 빌드 - Build (Source, Project, Library)
    개발입문/JAVA 2017. 1. 21. 12:38

    컴파일과 빌드

    보통 IDE의 [Run] 버튼은 컴파일 + 빌드를 포함한다.

    빌드는 광의의 개념으로 소스 + 기타 이미지, 실행 파일들을 활용해 실행가능한 파일로 구성한 후 (로컬/원격) 서버에 올리는 과정 전반을 말한다.

    컴파일: 소스의 문법을 분석해 기계어(컴퓨터가 실행하기 위한 파일)로 번역

    빌드(build): 번역된 것과 그외 잡다한 것(이미지, 라이브버리) 등을 모아서 실행 가능한 파일로 산출

    Build = Compile + Test + Inspect + Deploy


    Eclipse - Java Build Path


    Eclipse Java Build Path 에서는 빌드에 필요한 다양한 자원들을 "어디서" 가져올 것인지 (PATH) 지정할 수 있다. 빌드에 필요한 자원들은 Source, Project, Library 로 구분하고 있다. 



     Source:  (직접 작성한) 비즈니스 로직

    OOD (Object Oriented Design: 객체 지향 디자인) 으로 .java 파일을 다수 생성한다. .java 의 output, .class 파일들은 일반적으로 프로젝트 디렉토리에 bin 폴더에 위치시킨다. .class 파일은 JVM 을 통해 cross-platfrom 에서 실행가능합니다. (JRE, JVM 만 설치되어있다면 어떤 플랫폼에서든 실행가능합니다.) 

    - .java 파일 --- (컴파일) ---> .class 파일

    - Output Folder 샘플: Project1/bin

    [Java Build Path] - [Source] 에서는 프로젝트에 포함된 소스폴더를 확인할 수 있다. (또한 추가할 수 도 있다.)



    2. Projects: 일종의 완결된 프로그램

    Project는 완결된 프로그램의 단위입니다. 프로젝트는 프로젝트 - 패키지  - 소스 단위로 관리할 수 있습니다.  (물론 한 소스코드에 모두 작성할 수는 있겠지만, 향후 관리하기가 어렵습니다. 패키징의 정도, 프로젝트 구분의 정도는 상황에 따라 다를 수 있습니다.)

    - Object 객체 단위로 소스를 생성하고

    - 기능 단위로 패키징한 다음

    - 여러 패키지를 하나의 실행가능한 프로젝트로 생성

    [Java Build Path] - [Projects] 에서는  내 워크스페이스 안에서 사용된 다른 프로젝트를 참조해야할 경우 사용합니다.


    3. Libraries: 외부 모듈 
    (유틸리티성, 기타 프로그램의 APIs 모음 등
    )


    Libraries 는 공통으로 사용될 수 있는 특정한 기능(들)을 모듈화한 것이다. 이 자체로는 사용자가 직접 일반적인 조작으로 실행할 수 없으며, 해당 라이브러리의 기능을 직접 호출하는 프로그램을 실행하거나, 사용자가 해당 라이브러리의 기능을 실행하는 API를 사용하는 프로그램을 직접 개발하면 실행할 수 있다.

    [Java Build Path] - [Libraries] 탭에서 빌드 & 실행할 때 사용할 라이브러리를 지정한다.

    [Add Jars]: 프로젝트에 이미 포함된 .jar에 대해 상대경로를 지정, 추가
    [Add External Jars] : 파일시스템에서에서 .jar 의 절대경로를 지정, 추가
    [Add Library]: 라이브러리 단위로 지정, 추가




    왠지 이 모든 것을 쉽게 해줄 수 있는 Build Tool Maven 에 대해 공부를 더 해봐야겠다.

    코드 컴파일 , 컴포넌트 패키징, 파일 조작, 개발테스트 실행 , 버전관리 도구 통합 (Git) , 문서 생성 (API), 배포 기능 (서버 배포 지원), 코드품질분석




    '개발입문 > JAVA' 카테고리의 다른 글

    [30일코딩] 객체지향언어 Java  (0) 2017.05.03
    [30일코딩] 표준스트림  (0) 2017.05.03
    [30일코딩] Hello World 프로젝트  (0) 2017.05.03
    [JAVA] JDBC 한글깨짐  (0) 2017.01.22
    [JAVA] JDBC 연동  (0) 2017.01.21

    댓글

Designed by Tistory.