(아래 내용은 참고 블로그의 내용을 바탕으로 정리하였습니다.)
컴파일
- 사용자가 작성한 소스 코드를 컴퓨터가 이해할 수 있는 언어, 즉 기계어로 번역하는 일
- Java 컴파일러는 Java 소스코드를 바이트 코드(byte code)로 변환한다
- 이때 바이트 코드는 특정 운영체제나 아키텍처에 종속되지 않은 채 Java 가상머신(JVM)에서 실행된다
- Interpretation이 JVM에서 컴파일된 기계어를 분석하고 실행하는 프로세스 - JIT(Just-In-Compiler) 컴파일러로 바이트코드를 바이너리코드(이진코드)로 변환해 속도를 줄이기도 한다
javac.exe가 자바 컴파일러, java.exe가 자바 인터프리터
javac.exe : 사람이 작성한 문장을 기계어로 번역(.java -> .class)
java.exe : 자바 프로그램(클래스 파일)을 실행
빌드
- 컴파일된 코드를 실제 실행할 수 있는 상태로 만드는 일
- 우리가 IDE에서 코드를 작성한 후 'run'을 실행하는 것이 내부에서 빌드 도구(Gradle, Maven)을 통해서 빌드하는 것이다
- 보통 컴파일을 포함해 배포하기 직전까지의 모든 과정을 '빌드한다'라고 표현
cf. 빌드 도구(Gradle, Maven ...)
- 소스 코드를 컴파일, 테스트, 정적 분석 등을 실시해서 실행 가능한 애플리케이션을 자동 생성하는 프로그램
- 빌드 도구를 통해 라이브러리를 자동으로 추가하고 연동
배포
- 빌드가 완성된 실행 가능한 파일을 사용자가 접근할 수 있는 환경에 배치시키는 일
- 실행파일, 라이브러리, 설정파일 등이 포함된 패키지로 만든다
- Java에서는 주로 jar 파일로 패키징을 한다
https://chick-it.tistory.com/87
배포란 무엇인가?
0. 개요 우리는 프론트 엔드든, 백엔드든 통합개발 환경(IDE)에서 코드를 작성하고 디버깅, 컴파일, 등의 작업을 수행합니다. 최종적으로 우리가 작성한 코드는 웹사이트나 앱으로써 소비자가 접
chick-it.tistory.com
https://itholic.github.io/qa-compile-build-deploy/
[QA] 컴파일? 빌드? 배포? 개념과 차이는 무엇일까?
컴파일, 빌드, 배포의 개념 및 차이
itholic.github.io
https://ee-22-joo.tistory.com/34
[용어정리] 컴파일(Compile), 링크(Link), 빌드(Build)
※ 위 이미지는 이해한 내용을 바탕으로 그려낸 도표입니다. 잘못된 부분이 있으면 알려주세요 :-) 빌드(Build) : 소스코드 파일을 실행가능한 소프트웨어로 만드는 과정 +) 빌드툴(Build Tool) : 빌드
ee-22-joo.tistory.com
의존성 추가와 플러그인 설치의 차이
정말 아무것도 아닌 기본지식일 수 있지만 그저 당연하게 입력하는 것들의 의미를 잘 몰라서 한번 찾아봐 보기로 했다..ㅎ
1. 의존성 추가
- 의존성 추가는 Gradle의 경우 build.gradle, Maven의 경우 pom.xml에 한다
- 프로젝트의 빌드 및 실행 시 필요한 라이브러리를 정의한다
- 다른 개발자와 프로젝트를 공유할 때 해당 의존성도 같이 포함되어 프로젝트 일관성 유지
- Spring Web, Spring Data JPA, MySQL Connector...
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
}
2. 플러그인 설치
- 플러그인 설치는 IDE 자체의 기능을 확장하거나 개발 환경을 향상시키기 위한 것
- 코드 자동 완성(lombok), 프레임워크 지원, 코드 포맷...
https://inblog.ai/nomads/buildgradle-%EC%9D%98%EB%AF%B8%EC%99%80-%EC%84%A4%EC%A0%95-15278
build.gradle 의미와 설정 - AI_Nomads
#SPRING_002 | JAVA, NETWORK, Spring FrameWork
inblog.ai
'Spring' 카테고리의 다른 글
[Spring] 프로그램 서버 구동 오류 해결 (0) | 2024.11.21 |
---|---|
[Spring] OAuth 2.0 원리 이해 (2) | 2024.10.06 |
[Spring] Filter, Interceptor, AOP 비교 (0) | 2024.09.08 |
[Spring] @Lookup - DL(의존관계 조회/탐색) (0) | 2024.08.25 |
[Spring] 객체 지향 프로그래밍의 특징과 좋은 객체 지향 설계의 원칙 5가지, SOLID (0) | 2024.08.17 |