본문 바로가기

개발자노트/우아한 테코톡 감상

우아한Tech [10분 테코톡] 빌드 용어 영상

1.컴파일과 빌드의 차이점

원시파일:(소스코드) ex).java ---> 컴파일러 ---> 오브젝트 파일 ---> 링커 ---> 실행파일.jar

컴파일: 우리가 사용하는 언어를 컴퓨터가 이해할 수 있는 형태(이진코드 ex).class로 만들어주는 것

링크 : 오브젝트 파일로 만들었다고 해서 바로 실행할 수 없다. 오브젝트 파일에 다른 외부 리소스를 연결하는 과정이 필요함. 이 과정을 링크라고함


2.대체 빌드는 뭘까?
사람이 알아들을 수 있는 형태의 원시파일을 실제 컴퓨터에서 프로그램으로 돌릴 수 있게 만드는 일련의 과정을 빌드라고 함.
컴파일이라는 과정는 빌드 안에 부분집합으로 속해있는 것


빌드를 우리가 하나?
그래들이라는 도구를 사용함

3.빌드 도구란?
소스 코드로부터 실행 가능한 어플리케이션을 생성하는 것을 자동화하는 프로그램
                                              빌드를 하는군                              자동화:매번 반복해야하는 일 ex) 서비스 중인 프로그램의 코드를 수정하는 경우1.코드 수정하고 2.Git에 올리고 3.컴파일하고 4.빌드하고5.배포하고6.테스트코드작성하고7.테스트수행하고8.검증하고 --> 이걸 꼭 사람이 다 해야하는가?
-> 빌드를 자동화하면 빌드자동화, 배포를 자동화하면 배포자동화, 테스트를 자동화하면 테스트 자동화


4.빌드 자동화는 어떤 일을 하는가?
- 의존성 다운로드
-소스 코드를 이진 코드로 컴파일
-이진 코드 패키징
-자동화된 테스트 실행
- 프로덕션 시스템 배포

빌드도구나 빌드 자동화는 왜 사용해야 하는지?
- 규모가 작은 프로젝트들은 상관 없지만
- 그 규모가 커지면 내가 어디에 있는 소스코드를 작업하고 싶은지 파악하기 어렵기 때문에.. 빌드 프로세스를 일관성있게 유지를 시키기 위해서 빌드 자동화를 사용

5.Java의 빌드 도구 종류
앤트.메이븐,그래들

앤트
-현대적인 빌드 도구 (최초로 출시)
-xml를 사용해 빌드 스크립트 작성 -> 수직계층
-절차적이다.
-유연성이 좋다. -> 빌드 스크립트를 짤 때 소스 코드가 어디있는지, 소스 코드가 어디로 저장되어야 하는지를 다 명시해줘야 하기 때문에 유연성이 좋다고는 함
-스크립트를 직접 명시

메이븐
-pom.xml
-의존성 다운로드 가능 - 네트워크 상에 있는 라이브러리를 클릭 몇번으로 다운로드 받을 수 있다.
-컨벤션이 있다 - 몇번 코드를 끄적임으로서 나머지를 레이븐이 해주니까 간편해졌다. 단점 : 컨밴션이 있어서 다른 로직을 짜기가 힘들어서.. 다음줄의 이유
-사용자에 의도에 맞는 로직 개발이 어려움

그래들
-Groovy / Kotlin
-유연성
-스크립트 규모가 작음 -> 훨씬 간편해짐

 

자료: https://www.youtube.com/watch?v=JgRCaVwkPE8