일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 스프링
- Docker
- Spring Security
- git
- react 상태
- 리액트 캡차
- 에러
- spring security 로그인
- SpringBoot
- 깃
- react 자동입력방지
- 스프링 시큐리티
- myBatis
- build
- jpa
- react simple captcha
- Security 로그인
- Spring Boot
- REACT
- 스프링 시큐리티 로그인
- CI
- maven
- 젠킨스
- react 캡차
- 리액트 심플캡차
- ChatGPT
- react captcha
- error
- spring error
- react 심플캡차
Archives
- Today
- Total
I can do it(Feat. DEV)
컴파일, 빌드 대체 무엇?(feat. 링크, 배포) 본문
728x90
메이븐 프로젝트를 진행하면서 매일 같이 빌드를 진행하는데
문득 든 생각이 빌드가 뭐냐고 물어보면 대답을 어떻게 하지??
그래서 갓글에 검색 후 내용 정리함
🔶 컴파일 (Compile) 이란?
- 사용자(개발자)가 작성한 소스 코드를 바이너리 코드(이진 코드)로 알아들을 수 있는 컴퓨터를 위해 기계어로 번역하는 작업
- java의 경우 자바가상머신(jvm)이 실행 가능하도록 .java 파일이 .class로 변환됨
- 이러한 작업을 해주는 프로그램을 컴파일러라고 함
- 쉽게 말해 컴퓨터가 알아먹을 수 있도록 번역해 주는 것
🔶 링크 (Link) 란?
- 여러 개로 분리된 소스파일들을 컴파일한 결과물들에서 최종 실행가능한 파일을 만들기 위해 필요한 부분을 찾아서 연결해 주는 작업
- 정적링크 : 컴파일된 소스파일을 연결해서 실행가능한 파일을 만드는 것
- 동적링크 : 프로그램 실행 도중 프로그램 외부에 존재하는 코드를 찾아서 연결하는 작업
🔶 빌드 (Build) 란?
- 소스코드 파일을 실행가능한 소프트웨어 산출물(jar, war 등)로 만드는 일련의 과정을 말함
- 앞서 컴파일된 코드를 웹 애플리케이션이 실행할 수 있는 상태(정적 파일을 .class 파일에서 참조할 수 있는 위치로 변경하는 작업 등)로 변환하는 과정-
- 직군마다 말하는 빌드의 범위가 다르다고 함
- 따라서 컴파일은 빌드의 부분집합에 속한다고 볼 수 있음
🔶 빌드 툴 (Build Tool) 이란?
- 위에서 말한 빌드 과정을 도와주는 도구
- 빌드 툴이 제공해 주는 기능은 전처리, 컴파일, 패키징, 테스팅, 배포가 있음
- 많이 쓰는 빌드 툴은 ant, gradle, maven 등이 있다.
🔶 배포 (Deploy) 란?
- 빌드를 통해 만들어진 소프트웨어 산출물을 실제로 운영하는 서버(사용자가 접근할 수 있는 환경)에 배치시키는 것
📢참고 사이트
컴파일(Compile), 빌드(Build), 배포(Deploy) 의 차이점
빌드, 컴파일, 배포라는 말을 들어본 적이 있다. 정확한 뜻은 몰랐다. 그래서 또 정리하러 왔다. 👻우리는 실서버에 어떠한 기능을 추가하거나 수정할 때사용자가 로컬PC에서 개발 후 테스트를
velog.io
https://freezboi.tistory.com/39
컴파일과 빌드 차이점
평소 이클립스와 같은 IDE를 사용하기 때문에 컴파일과 빌드의 개념에 대해 잘 알지 못했다. 단지 소스코드를 작성하고 이클립스에서 run을 실행하면 알아서 모든 과정이 자동으로 실행되기 때문
freezboi.tistory.com
728x90
'개발자 모드 > 개념' 카테고리의 다른 글
git에 package.json, package-lock.json 파일을 관리해야할까? (0) | 2023.03.24 |
---|---|
프록시 서버(Proxy Server) 대체 무엇? (0) | 2023.03.10 |
[Tomcat] Log 종류 (0) | 2023.02.06 |
Git Branch Naming & Strategy (2) | 2022.10.05 |
[JAVA]Enum이란? (0) | 2022.09.23 |