ETC_자바(Java) 공부전에 알아두면 좋을 것들
[자바(Java) 공부전에 알아두면 좋을 것들 ]
기초 용어
- 컴파일 : 프로그래밍 언어를 컴퓨터가 이해할 수 있는 바이트코드로 변환
- 컴파일러 : 컴파일을 해주는 프로그램으로 통상 운영체제별 다른 컴파일러가 필요한데
자바는 Java 설치시 JVM(자바 가상머신:java virtual machine)이 같이 설치되며
중간에서 운영체제에 맞게 번역을 한다. - JRE(Java Run Environment): JVM + 자바프로그램 실행에 필요한 여러 라이브러리 파일
ex) print, scanner 등 - JDK(Java Development Kit): JRE + 개발을 위한 도구를 가지고 있다. ex) 컴파일러, 디버그
JDK 설치 시 JRE와 JVM이 동시에 설치되기에 통상 자바의 버전을 얘기할때는 JDK의 버전을 말하는 것이다.
JDK 버전은 업데이트 될 때마다 기능이 추가되고 일부 LTS(Long Time Support)라고 써 있는 버전은
오랫동안 지원해주는 버전으로 주로 최신 버전 중 LTS 버전을 선택하는게 좋다.
또한 JDK는 주로 DB 종류별로 다양한 버전이 있다.
- 빌드: 소스코드 파일을 컴퓨터에서 실행할 수 있는 독립 소프트웨어 가공물로 변환시키는 과정으로
독립 SW 가공물은 Artfact라고 불린다.- 빌드를 세분화 하면
- 소스코드를 컴파일한다.
- 테스트코드를 컴파일한다.
- 테스트코드를 실행한다.
- 테스트코드 리포트를 작성한다.
- 기타 추가 설정한 작업들을 진행한다.
- 패키징을 수행한다.
- 최종 소프트웨어 결과물(Artifact)을 만들어낸다.
6실행(run) 1. 내가 작성한 코드(혹은 테스트코드)를 컴파일을 거쳐 작동시켜 보는 것. 2. 독립 소프트웨어 가공물이 나올수도 있고 나오지 않을 수 도 있음. 3. 주의: 인터프리터 언어(자바스크립트 파이썬 등)는 컴파일이 필요없다.
※ 이렇게 복잡한 빌드의 과정을 수동으로 해야 한다면 무조건 에러가 나오게되며 또한 리소스도 많이 든다.
- 빌드를 세분화 하면
- 빌드툴(bulid tool)은 프로젝트에서 필요한 xml, properties, jar 파일들을 자동으로 인식하여
빌드해 주는 도구로 소스코드를 컴파일, 테스트, 정적분석 등을 하여 실행가능한 앱으로 빌드해 준다.
프로젝트 정보 관리, 테스트 빌드, 배포 등의 작업을 진행해 주며
가장 주된 목적은 외부 라이브러리를 참조하여 자동으로 다운로드 및 업데이트 관리해 주는 것이다.
자바의 대표적인 빌드 도구에는 Ant와 Maven 그리고 Gradle이 있다. - 빌드툴의 종류
- ANT
- 설정을 위해 xml을 사용하였다. 복잡한 처리에 불리하고 외부라이브러리를 관리하는 구조가 없다.
2000년대 초 중반에 많이 사용되었다고 함.
- 설정을 위해 xml을 사용하였다. 복잡한 처리에 불리하고 외부라이브러리를 관리하는 구조가 없다.
- Maven
- ANT를 대체하기 위해 개발되었음. ANT와 마찬가지로 설정을 위해 xml을 사용했으며,
외부 라이브러리를 쉽게 참조할 수 있게 pom.xml 파일로 명시하여 관리하였음
참조한 외부 라이브러리에 연관된 다른 라이브러리도 자동으로 관리됨.
기존의 ANT는 Build기능만 가지고 있어 그 외 기능은 사용자가 일일히 작업을 해줘야 했으나
자동으로 라이브러리를 관리해주는 기능이 추가된 Maven이 더 편함.
또한 다운받아 사용하던 라이브러리에 변동사항이 있으면 자동으로 업데이트하여 적용 됨.
- ANT를 대체하기 위해 개발되었음. ANT와 마찬가지로 설정을 위해 xml을 사용했으며,
- Gradle
- 태그로 구성되어 있는 xml 파일은 설정이 복잡해지는 구조에 적합하지 않아,
Groovy 스크립트를 활용한 빌드 관리 도구인 Gradle을 제작함. - 안드로이드 프로젝트의 표준 빌드 시스템으로 채택됨
- 멀티 프로젝트의 빌드에 최적화하여 설계됨.
- Maven에 비해 더 빠른 처리속도를 가지며 더 간결한 구성이 가능함.
- build.gradle에 설정값 작성
- Gradle은 설치없이 사용할 수 있다.(Gradle Wrapper)
- 現 신규 프로젝트에 대부분 채택하여 사용
- 태그로 구성되어 있는 xml 파일은 설정이 복잡해지는 구조에 적합하지 않아,
- ANT
댓글남기기