개발 · 프로그래밍

/

데브옵스 · 인프라

애플리케이션 배포 자동화와 CI/CD

강의를 통해 애플리케이션 배포 자동화를 경험 할 수 있습니다. 프로젝트를 배포해보면서 젠킨스 사용 방법과 CI/CD에 대한 기본 지식도 얻어갈 수 있습니다!

(4.8) 수강평 6개

수강생 288명

Thumbnail

초급자를 위해 준비한
[데브옵스 · 인프라, CI/CD] 강의입니다.

이런 걸
배워요!

  • Jenkins

  • 배포 자동화

  • CI/CD 테스트

"딸깍" → 배포 완료

애플리케이션을 배포하는 일이 이렇게 간단할 수 있다면 얼마나 좋을까요? 이제는 수동 배포에서 벗어나 배포 자동화와 CI/CD(지속적 통합 및 배포)의 중요성을 실감할 때입니다. 제가 혼자 개발할 때와 지금의 큰 차이점 중 하나가 바로 배포 과정의 효율성입니다. 혼자 개발할 때는 수동 배포도 큰 문제가 되지 않았지만, 실제 현업에서는 신속하고 안정적인 배포가 필수입니다. 많은 개발자와 협업하고, 빈번한 코드 변경이 이루어지는 환경에서는 배포 자동화가 필수적이기 때문입니다.

실제로 애플리케이션이 잘 동작하더라도 배포 과정이 복잡하고 비효율적이라면, 이는 전체 시스템의 장애 포인트가 될 수 있습니다. 배포 중에 발생하는 문제로 인해 서비스가 중단되거나 오류가 발생하면 사용자에게 나쁜 경험을 줄 수 있겠죠.

이 강의에서는 이러한 문제를 해결하기 위해 Jenkins를 사용한 배포 자동화, 무중단 배포 설정, CI/CD 파이프라인 구축 방법을 다룹니다. Jenkins를 활용해 배포 프로세스를 자동화하고, nginx를 사용해 API 서버에 대한 무중단 배포 환경을 만들고, CI 테스트와 CD 롤백 전략까지 다루고 있습니다.

물론 배포 자동화와 CI/CD는 처음부터 완벽하게 구현하기는 어렵습니다. 그러나 이 강의를 통해 배포 자동화와 CI/CD의 기본 개념을 배우고, 여러분들의 프로젝트와 팀 내 프로젝트에도 적용해보기에는 충분할 겁니다. 강의가 끝나고 나면 여러분들의 프로젝트에 맞는 배포 자동화 방법도 여러분들 스스로 고민해보고 직접 구현해낼 수도 있을겁니다.


Jenkins 파이프라인 작성을 통한 배포 자동화와 CI/CD 환경 구성


이런 내용을 배워요

Jenkins

Jenkins는 오픈 소스 자동화 서버로서, 다양한 플러그인을 통해 CI/CD 파이프라인을 구축하고 관리하는 데 사용됩니다. 이 강의에서는 Jenkins 서버를 세팅하고, 배포 환경을 설정하며, WebHook을 활용한 배포 자동화를 구현하는 방법을 배웁니다.

무중단 배포

무중단 배포는 서비스의 중단 없이 새로운 버전의 애플리케이션을 배포하는 방법입니다. 이를 통해 사용자에게 끊김 없는 서비스를 제공할 수 있습니다. 강의에서는 nginx를 활용한 무중단 배포 환경을 만들고, 이를 테스트하는 방법을 학습합니다.

CI/CD

CI/CD는 소프트웨어 개발의 자동화된 프로세스를 통해 코드 변경 사항을 자주 그리고 안정적으로 배포하는 방법입니다. 이 강의에서는 CI와 CD의 개념을 이해하고, CI 테스트 코드를 작성 및 설정하며, CD 과정에서 발생할 수 있는 문제를 해결하는 방법을 다룹니다.

수강 전 참고 사항

실습 환경

  • 운영 체제 및 버전(OS): Windows 10,

  • 사용 도구: Intellij Community 2023.2, Google Chrome



학습 자료

선수 지식 및 유의사항

  • 클라우드 서비스는 Vultr이라는 서비스를 사용하고 있으나, AWS나 GCP등 다른 클라우드 서비스를 사용해도 됩니다. 다만 다른 클라우드 서비스 사용시 방화벽 설정 등 일부 차이가 있을겁니다. 그러나 이런 문제는 여러분들이 직접 검색해보고 몸으로 부딪혀보면 더 많이 얻어갈 수 있을거라고 생각합니다.

  • 스프링 부트로 만들어진 애플리케이션을 기준으로 실습을 진행하지만, 일부 스크립트만 수정하면 다른 언어, 다른 프레임워크에도 적용 가능합니다. 궁금한 내용 있으면 질문 남겨주세요. 제가 도와드릴 수 있는 한 최대한 도와드리겠습니다.


  • 수강하시면서 궁금한 내용이 있다면 질문을 남겨주세요. 업데이트해야 할 내용이 있다면 업데이트하겠습니다.


이런 분들께
추천드려요!

학습 대상은
누구일까요?

  • 수동으로 애플리케이션을 배포할 순 있지만 자동으로 배포할 수 있는 방법에 대해 배우고 싶은 사람

  • 배포 자동화의 개념 자체는 이미 알지만 젠킨스를 통해 빠르게 배포 자동화 환경을 만들고 싶은 사람

  • CI/CD 프로세스가 왜 필요한지 알고 싶은 사람

선수 지식,
필요할까요?

  • 수동 배포를 해본 경험

  • Git, GitHub 사용 경험

안녕하세요.

멘토링을 하면서 주니어 개발자들이 어려워 하는 개념들에 대해 어떻게 하면 쉽게 전달할 수 있을지에 대해서 많은 고민을 하고 있는 푸(Foo)라고 합니다.

잘 부탁 드리겠습니다.


이력

  • 2019. 08 ~ 현재 : 카카오 자바 백엔드 개발자

  • 2021. 08 ~ 현재 : programmers 백엔드 데브코스 멘토

  • 2021. 12 ~ 현재 : F-Lab 자바 백엔드 멘토

 

  • 이것이 취업을 위한 백엔드 개발이다 with 자바(링크)

 

기타 이력 및 타 플랫폼 강의들은 아래 GitHub 링크에서 확인할 수 있습니다.

GitHub - https://github.com/lleellee0

커리큘럼

전체

20개 ∙ (2시간 56분)

강의 게시일: 
마지막 업데이트일: 

수강평

아직 충분한 평가를 받지 못한 강의입니다.
모두에게 도움이 되는 수강평의 주인공이 되어주세요!