본문 바로가기

IT Study

[동영상 시청] 빌드와 배포

반응형

참고 동영상 

https://www.youtube.com/watch?v=6SvUZqbU37E


컴파일
작성한 소스 코드를 바이너리 코드로 변환하는 과정
작성한 소스코드를 컴퓨터가 이해할 수 있는 기계언어로 바꿔주는 작업!
빌드
소스 코드를 실행 가능한 소프트웨어 산출물로 만드는 일련의 과정
링크
여러 개로 분리된 소스 코드들을 컴파일한 결과물들에서 최종 실행 가능한 파일을 만들기 위해 필요한 부분을 찾아서 연결해 주는 작업

 

빌드 도구 

  • 소스 코드를 컴파일, 테스트, 점적 분석 등을 실시하며 실행 가능한 
    애플리케이션으로 자동 생성하는 프로그램 
  • 계속해서 늘어나는 라이브러리의 자동 추가 및 관리 
  • 라이브러리의 버전을 자동으로 동기화 

빌드도구, 빌드자동화가 필요한 이유

  • 빌드 프로세스를 일관성있게 유지시키기 위해서 

 

빌드 도구들

ANT
현대적인 빌드 도구
xml
절차적
유연성이 높으나 프로젝트가 복잡해지는 경우 빌드 과정의 이해가 어렵다
스트립트 직접 명시
Maven
pom.xml

의존성 다운로드 가능
컨벤션 
계층적인 데이터를 표현하기에는 좋지만, 플로우나 조건부 상황을 표현하기 어렵다
사용자 의도에 맞는 로직 개발이 어려움
Gradle
JVM 기반의 빌드 도구 

ANT와 Maven의 단점을 보완 
오픈소스 기반의 빌드 자동화 도구 
Groovy / Kotlin 
유연성
스트립트 규모가 작고 읽기 쉽다

Gradle vs Maven

  • Gradle이 Maven 보다 빌드에 소요되는 시간, 유연성, 종속성 관리 등 
    다양한 측면에서 뛰어나다는 평가다.
  • 라이브러리가 종속될 경우, 특정 조건을 표현할 경우 Maven이 이를 
    처리하기 복잡하다고 한다. 반면 Gradle은 스크립트가 더 짧고 읽기 쉽게 되어있다.  
  • Gradle이 Maven보다 더 효율적이고 강력한 기능을 제공하고 있다. 
    Gradle은 버전 충돌 또한 관리해준다 . 

 

배포
작성한 코드를 빌드하고, 빌드가 완성된 실행 가능한 파일을 사용자가 접근할 수 있는 환경에 배치하면 배포가 완료된 것 
빌드를 하고 생성된 jar 또는 파일을 WAS에 올리는 것이 배포 
배포의 과정
git에 올려두고 ->코드가 제대로 동작하는지 테스트 코드를 작성하고 -> 이를 수행 및 검증하는 작업까지
CI : Continuous Integration (지속적 통합)
개발자를 위한 자동화 프로세스인 지속적 통합으로 모든 개발이 끝난 이후에 코드 품질을 관리하고 고전적 방식의 단점을 해소하기 위해 나타난 개념 
CI 프로세스
코드를 통합한다 -> 통합된 코드가 제대로 동작하는지 테스트 -> 제대로 빌드가 되는 지도 테스트 -> 결과를 정리하고 버그가 존재한다면 적어둔다
CD : Continuous Deploy (지속적 배포)
소프트웨어가 항상 신뢰 가능한 수준에서 배포될 수 있도록 관리하자는 개념 

정리 => 지속적으로 통합하면서 테스트와 빌드를 진행하고 
              이를 통과한 코드에 대해서 신뢰할 수 있고 바로 배포할 수 있다.

반응형