EUNJIHA / Dev

✍🏻개념 정리
1 stars 0 forks source link

[Build] Maven, Gradle / Jenkins ... #13

Open EUNJIHA opened 4 years ago

EUNJIHA commented 4 years ago
안드로이드 공부하는 중에, Gradle이란 용어를 접한다. 작년에는 별 대수롭지 않게 여겼는데 Spring에서 Maven, 서버 스터디 중에 CI/CD 빌드 자동화 툴 .. 등을 들으면서 한 번 정리할 필요성을 느꼈다.

서버에 기능을 추가 하려면 개발자가 개발자 노트북에서 개발을 하고 테스트까지 한 다음에 이상이 없으면 사용자가 사용할 수 있게 수정된 내용을 서버에 반영해야 한다.

➡Build란?

빌드는 서버에 올릴 수 있는 상태로 만드는 것을 빌드라고 한다. 서버에 올려서 사용자가 사용 할 수 있게 하는 것은 배포(deployment)라고 한다.

➡Jenkins란?

소프트웨어 개발 시 지속적으로 통합서비스를 제공하는 툴(Tool)이다. CI(Continuous Integration) 툴이라고 표현한다. 젠킨스(Jenkins)와 같은 CI 툴이 등장하기 전에는 일정 시간마다 빌드를 실행하는 방식이 일반적이었다. 사용자가 쉽게 구축할 수 있는 것보다 더 빠르고 더 강력하게 빌드(Build), 테스트, 그리고 배포(deployment) 도구 등 체인 전체를 통합할 수 있는 방법을 제공해 준다.

➡Jenkins의 이점

각종 배치 작업의 간략화

프로젝트 기간 중에 개발자들은 DB 셋업, 환경설정, Deploy 작업과 같은 단순 작업에 시간과 노력을 들이는 경우가 빈번하다. 데이터베이스의 구축, 애플리케이션 서버로의 Deploy, 라이브러리 릴리즈와 같이 이전에 CLI로 실행되던 작업들이 젠킨스 덕분에 웹 인터페이스로 쉽게 가능해졌다.

Build 자동화의 확립

빌드 툴(Build Tool) 의 경우 Java는 MavenGradle이 자리 잡고 있으며, 이미 빌드 관리 툴을 이용해 프로젝트를 진행하고 있다면 젠킨스(Jenkins)를 사용하지 않을 이유가 없다. 젠킨스와 연동하여 빌드 자동화를 통해 프로젝트 진행의 효율성을 높일 수 있다.

참고

빌드란? 그리고 Jenkins(젠킨스)란? 써야 하는 이유 젠킨스 (Jenkins)를 사용하는 이유 젠킨스란 무엇인가, CI(Continuous Integration) 서버의 이해

EUNJIHA commented 4 years ago

빌드 툴, Maven과 Gradle의 차이점

Maven vs Gradle