Spring

[Spring] 컴파일 과정, 의존성 추가와 플러그인 설치 차이

hail2y 2024. 9. 30. 21:52

(아래 내용은 참고 블로그의 내용을 바탕으로 정리하였습니다.)

 

컴파일

  • 사용자가 작성한 소스 코드를 컴퓨터가 이해할 수 있는 언어, 즉 기계어로 번역하는 일
  • Java 컴파일러는 Java 소스코드를 바이트 코드(byte code)로 변환한다
  • 이때 바이트 코드는 특정 운영체제나 아키텍처에 종속되지 않은 채 Java 가상머신(JVM)에서 실행된다
    - Interpretation이 JVM에서 컴파일된 기계어를 분석하고 실행하는 프로세스
  • JIT(Just-In-Compiler) 컴파일러로 바이트코드를 바이너리코드(이진코드)로 변환해 속도를 줄이기도 한다

javac.exe가 자바 컴파일러, java.exe가 자바 인터프리터

javac.exe : 사람이 작성한 문장을 기계어로 번역(.java -> .class)

java.exe : 자바 프로그램(클래스 파일)을 실행

https://ee-22-joo.tistory.com/34

빌드

  • 컴파일된 코드를 실제 실행할 수 있는 상태로 만드는 일
  • 우리가 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