Inflearn brand logo image
Inflearn brand logo image

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

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

초급자를 위해 준비한
[데브옵스 · 인프라, 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)입니다.

4,462

수강생

178

수강평

95

답변

4.9

강의 평점

8

강의

안녕하세요.

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

잘 부탁 드리겠습니다.


이력

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

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

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

 

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

 

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

GitHub - https://github.com/lleellee0

더보기

수강평

전체

11개

4.4

11개의 수강평

  • perfectgame님의 프로필 이미지
    perfectgame

    수강평 5

    평균 평점 5.0

    5

    55% 수강 후 작성

    The lectures that utilize the existing Jenkins pipeline start from the basics and try to explain many functions in advance. The advantage and disadvantage of this lecture is that it skips over such in-depth parts, but considering that it is a beginner's lecture, I think it is good to learn how to use it first and then understand it more deeply. The advantage is that you can learn how to use it with shortcuts in a short period of time, and it was good to be able to properly practice the strength of the pipeline, which is detailed step-by-step processing. I strongly recommend it to those who need to use Jenkins pipeline for work starting tomorrow or those who want to finish their portfolio with an advanced distribution method while preparing for a job.

    • foo
      지식공유자

      Thank you, Chae Jong-hoon, for your sincere course review!! I think it will be helpful to others who are considering taking the course. Haha

  • tjsdnd6274234님의 프로필 이미지
    tjsdnd6274234

    수강평 8

    평균 평점 4.8

    5

    75% 수강 후 작성

    Since it is a lecture of about 2~3 hours, the explanation of the details is a bit short, but I think it is a lecture where you can experience a non-stop deployment. I think it will be a little easier if you have some prior knowledge of Docker. I found it fun because the lecture itself is intentionally conducted with a script that has errors and then goes on to solve the errors.

    • syhan75162629님의 프로필 이미지
      syhan75162629

      수강평 6

      평균 평점 5.0

      5

      30% 수강 후 작성

      • foo
        지식공유자

        Thank you syhan7516 for your review~ :)

    • uheejoon님의 프로필 이미지
      uheejoon

      수강평 24

      평균 평점 5.0

      5

      30% 수강 후 작성

      • foo
        지식공유자

        Thank you, Yu Hee-jun, for leaving a review!

    • 941021081384님의 프로필 이미지
      941021081384

      수강평 7

      평균 평점 5.0

      수정됨

      5

      100% 수강 후 작성

      I appreciated the detailed explanation of every process, but I was a little disappointed by the reliance on ChatGPT in certain parts.

      • foo
        지식공유자

        Thank you, Young-woong Kim, for leaving a review. ( _ _ ) I tried to make the practice as if I were actually configuring the CI/CD process, so I used ChatGPT 😊... This part might be disappointing. In the future, I will add more organized content and cover how to try it yourself with ChatGPT. Thank you!

    이준형(Foo)님의 다른 강의

    지식공유자님의 다른 강의를 만나보세요!

    비슷한 강의

    같은 분야의 다른 강의를 만나보세요!

    ₩27,500