-
[Java] 배포란?(+ CI/CD)Java 2021. 12. 3. 12:52728x90
배포란(Deploy)
작성한 코드를 빌드하고, 빌드가 완성된 실행 가능한 파일(jar war)을 사용자가 접근할 수 있는 환경에 배치한 것
즉, 빌드를 하고 생성된 jar 또는 war 파일을 WAS에 올리는 거나 .exe 파일로 만들어 사용자가 이용할 수 있도록 하는것이 배포입니다.
Jar은 무엇인가?
Java Archive(보관소) 의 약자로 Java 어플리케이션이 동작할 수 있도록 클래스, 라이브러리를 포함하여 자바 프로젝트를 압축한 파일입니다
War은 무엇인가?
Web Archive의 약자로 웹 어플리케이션이 동작할 수 있도록 JSP, Servelt, Jar, Class, XLM, Javascript 등을 포함한 웹 프로젝트를 압축한 파일입니다.
CI / CD
CI : Continuous Integration
개발자를 위한 자동화 프로세스인 지속적 통합으로 모든 개발이 끝난 이후에 코드 품질을 관리하는 고전적 방식의 단점을 해소하기 위해 나타난 개념
1. 코드를 통합한다
2. 통합한 코드가 제대로 동작되는지 테스트한다.
3. 제대로 빌드가 되는지 테스트한다.
4. 결과를 정리하고 버그가 존재하면 적어준다.
이런 반복 행위들이 귀찮기 때문에 CI 자동화를 도와주는 JenKins, Travis같은 도구가 나오게 되었습니다.
CD : Continuous Deploy
소프트웨어가 항상 신뢰 가능한 수준에서 배포될 수 있도록 관리하자는 개념
CI가 선행되어야 CD가 가능하기 때문에 CI/CD로 많이 불리게 됨
Jenkins vs Travis
둘다 사용해보지 않았기 때문에 간단하게 정리해 보겠습니다.
JenKins는 오픈소스이고, Travis는 상업용 서비스입니다. 하지만 JenKins의 경우에도 서버를 유지관리 해야 하기 때문에 추가비용으로 간주될 수 있습니다.
JenKins는 정교한 설정이 필요하여 시간이 오래 걸리지만 Travis는 시작하기 까지 시간이 적게 걸립니다.
커뮤니티의 경우에는 JenKins가 더 활발하고 많은 정보를 얻을 수 있습니다.
소규모 오픈 소스 프로젝트는 실행이 쉽고 설정이 빠르기 때문에 Travis CI에 가장 적합합니다. 반면에 대기업은 다양한 사용자 지정 기능을 제공하는 JenKins에 더 적합합니다.
출처
https://ifuwanna.tistory.com/224
https://startupdevelopers.tistory.com/237
https://www.youtube.com/watch?v=6SvUZqbU37E&t=594s
https://www.guru99.com/jenkins-vs-travis.html
'Java' 카테고리의 다른 글
[Java] 인터페이스(Interface) (0) 2021.12.16 [Java] 추상클래스(Abstract Class) (0) 2021.12.15 [Java] 빌드란?(+빌드 도구) (0) 2021.11.30 [Java]객체 지향 프로그래밍(Object Oriented Programming) (0) 2021.11.25 [Java] 얕은 복사와 깊은 복사 (0) 2021.11.15