ㄴ javac => 자바 컴파일러로 자바 소스 코드(.java 파일)를 자바 바이트코드(.class 파일)로 변환합니다.
ㄴ -d => 컴파일된 .class 파일을 저장할 디렉토리를 지정하는 옵션
=> 디렉토리가 존재하지 않으면 컴파일러는 디렉토리를 생성함
=> 패키지 구조를 유지하며 클래스 파일이 생성됨
ㄴ bin => -d 옵션에 이어서 나온 경로로, 컴파일된 .class 파일이 저장될 디렉토리를 나타냄
ㄴ src/Hello.java => 컴파일할 자바 소스 파일의 위치와 이름을 나타냄 (src 디렉터리 안의 Hello.java 파일을 컴파일)
=> 자바 컴파일러인 javac를 이용해 src/Hello.java 파일을 컴파일하고 그 결과인 클래스 파일을 bin 디렉토리에 저장
ㄴ 1 저장소에 1 프로젝트를 생성하도록 하자 => 실무에서 이렇게 사용함
ㄴ 프로젝트의 변경 관리는 저장소의 파일에 대해 변경 관리하는 것과 같음
ㄴ 소스파일을 컴파일 하여 바이트 코드를 생성하고 작성된 코드가 예상대로 동작하는지 단위 테스트를 통해 검증을 함
ㄴ 단위 테스트 후 결과를 문서화하여 테스트 보고서를 작성함
ㄴ 마지막으로 실행 가능한 프로그램을 생성하고 .jar 라는 배포 파일을 생성함
ㄴ build 를 도와주는 도구는 Ant, Maven, Gradle 등이 있음
ㄴ 현재는 Maven 을 많이 사용하고, Gradle 은 Android Studio 기본 빌드 도구로 사용함
ㄴ 소스를 입력 받고 빌드 스크립트 파일을 읽어서 빌드도구를 통해 .jar 파일이나 문서파일이라는 산출물이 나옴
ㄴ 빌드 도구는 project 폴더를 생성해줌
ㄴ XML 은 프로그래밍 언어가 아니므로 빌드과정을 정교하게 기술할 수 없음
Ant
ㄴ XML 기반의 설정 파일을 사용하여 빌드 스크립트를 정의 => 빌드 스크립트 타입이 build.xml 임
Maven
ㄴ 선언적인 XML 기반 설정 파일인 pom.xml(Project Object Model)을 사용하여 프로젝트 구조, 종속성, 빌드 설정 등을 정의
ㄴ Ant 에서 의존라이브러리 관리를 추가함
Gradle
ㄴ Groovy (자바 호환 언어) 또는 Kotlin을 빌드 스크립트 언어로 사용하여 더 표현적이고 유연한 방식으로 빌드 스크립트를 정의
ㄴ Gradle의 빌드 파일은 build.gradle
ㄴ Maven 의 빌드스크립트 파일에 프로그래밍 언어를 도입한 것
ㄴ .gradle/ 디렉터토리는 실행할 때마다 재 생성되므로 지워도 됨
ㄴ gradle/ 디렉토리가 있으면 Gradle 이 설치되어있지 않아도 Gradle 사용 가능
ㄴ app/ 디렉토리는 최신 gradle 에서 main project 역할을 함 (과거에는 없었음)
ㄴ build.gradle 파일은 빌드 스크립트 파일로 현재 해당 프로젝트만 제어
ㄴ settings.gradle 파일은 빌드 스크립트 파일로 전체 프로젝트를 제어하는 역할
ㄴ gradlew 는 Unix 용, gradlew.bat 는 Windows 용
ㄴ .gitignore 와 .gitattributes 파일은 git 실행과 관련된 설정 파일
ㄴ gradlew 와 gradlew.bat 는 gradle/ 디렉토리에 있는 것을 사용함
gradle init
ㄴ application 으로 프로젝트를 생성하고, Java 를 사용할 것이며, 빌드스크립트의 domain-specific language 는 Groovy 로 함
ㄴ 테스트 프레임워크는 JUnit Jupiter 를 선택함 (JUnit Jupiter = JUnit 5)
ㄴ 프로젝트 이름은 java-lang 그대로 하고 소스 패키지 이름은 bitcamp 라고 함
ㄴ Java 버전을 17 버전으로 선택
ㄴ 새로운 API 및 동작을 사용한 빌드 생성은 no 선택
** 참고
DSL => Domain-specific language
ㄴ 프로젝트 폴더 준비
ㄴ 명령창에서 해당 폴더로 이동
ㄴ gradle init
ㄴ gradle build
gradle build
gradle run
ㄴ build/classes/java/main 이라는 디렉토리에 bitcamp 라는 패키지로 App 이라는 파일을 실행
ㄴ Test1.java 컴파일 시 A.class 가 생성됨 => 클래스 블록으로 컴파일 됨
ㄴ 클래스 블록 단위로 컴파일을 수행하여 .class 파일이 생성됨
ㄴ default 접근 범위는 같은 패키지에 소속된 경우만 접근 가능함
ㄴ public 접근 범위는 어느 패키지에 소속되어있든 상관없이 접근 가능함
ㄴ public class 가 있는 소스파일 이름은 클래스 이름과 같아야함
ㄴ 1 소스 : 1 클래스 블럭 으로 하면 유지보수가 쉬우며, 클래스가 있는 소스파일을 빠르게 찾을 수 있음
ㄴ 소스파일 명은 클래스 블록 이름으로 함
ㄴ main() 메서드는 JVM 이 클래스를 실행할 떄 제일 처음 실행하는 코드블록임 => 진입점 (entry point)
ㄴ java 에서는 함수가 아닌 메서드라고 부름
** 주의
main 이 없는 클래스는 직접 실행할 수 없음
'네이버클라우드 > JAVA 웹 프로그래밍' 카테고리의 다른 글
JAVA 5일차 (2023-05-26) 자바 기초 DAY3 (0) | 2023.05.26 |
---|---|
JAVA 4일차 (2023-05-25) 자바 기초 DAY2 (0) | 2023.05.26 |
JAVA 3일차 (2023-05-24) 프로그래밍 개론 DAY3 (0) | 2023.05.24 |
JAVA 2일차 (2023-05-23) 프로그래밍 개론 DAY2_git (2) | 2023.05.23 |
JAVA 2일차 (2023-05-23) 프로그래밍 개론 DAY2 (0) | 2023.05.23 |