GithubHelp home page GithubHelp logo

ssibongee / jenkins-docker-ci-cd-spring-boot Goto Github PK

View Code? Open in Web Editor NEW
0.0 0.0 0.0 142 KB

젠킨스와 도커를 이용한 스프링 부트 프로젝트 CI/CD 구축을 위한 레포지토리

Java 100.00%

jenkins-docker-ci-cd-spring-boot's Introduction

Ahn Siwon @ssibongee

Hits Wiki LinkedIn Gmail

Hello, I am a server developer who enjoys tackling complex business problems through code.

Currently, I am working at Toss Place, a company at the forefront of innovating offline payments in Korea.

At Toss Place, we are seeking colleagues to join us in revolutionizing the offline payments industry. We would be delighted if you could join us.

Experience

Server Developer at Toss Place  (Full-time, Jan 2023 ~)

Server Developer at Channel Corp  (Full-time, Aug 2021 ~ Dec 2022)

jenkins-docker-ci-cd-spring-boot's People

Contributors

ssibongee avatar

Watchers

 avatar  avatar

jenkins-docker-ci-cd-spring-boot's Issues

프로젝트 생성

  • Spring Boot 애플리케이션 프로젝트 생성
    • Java 11
    • Spring Boot 2.4.2
    • MySQL, Redis, H2 test
    • Spring Boot Validation
    • Lombok

게시글 도메인 모델링

  • Post 엔티티 모델링하기
  • PostCreateRequest , PostResponse DTO 클래스 모델링하기
  • 생성 시간 및 수정 시간을 자동화할 BastTimeEntity 등록

CI/CD란 무엇인가 왜 CI/CD를 적용해야 하는가?

CI/CD는 각각 Continuous IntegrationContinuous Deployment의 약자로 지속적인 통합과 지속적인 배포를 의미한다. 단순히 CI/CD를 Github을 통해 작업하고 브랜치를 합치고 빌드와 배포를 자동화해주는 개념이나 편의성을 제공하는 것으로만 이해하고 있는 사람들이 많은데 물론 이 역시 틀린말은 아니지만 CI/CD의 등장배경과 철학에는 애자일 방법론이라는 것이 중심으로서 존재한다.

애자일 방법론은 우리가 흔히 알듯이 기존의 폭포수 모델의 개발방법론에서 문제점을 개선하고자 탄생한 방법론으로써 빠르고 유연하며 지속적으로 발전하는 소프트웨어 개발을 통해 목표를 계속 수정해나아가는 것을 의미한다. 결국 애자일 방법론에서의 핵심은 빠르고 유연하게 지속적으로 변경하는 소프트웨어 기술과 사용자의 요구사항 비즈니스에 대해서 대응하는 것이 목표인데 이를 위해서 여러가지 넘어야할 기술적 문화적 산이 존재하지만 그 중 하나가 배포라는 큰 산이다.

대규모 서비스를 배포하는 것은 그 자체로써 엄청난 하나의 이벤트이다. 인턴으로 있던 모 회사에서도 2주마다 주기적으로 배포를 진행했었는데 그 때마다 선배 개발자분들도 하루종일 바쁘게 움직이시고 배포가 성공적으로 끝나기만을 손꼽아 기도하고 있던 모습이 기억이 난다. 그 정도로 배포라는 것은 하나의 큰 이벤트로 배포는 서비스를 개발하고 운영하는 모든이들에게 엄청난 부담으로 다가올 것이다.

배포 프로세스를 살펴보면 개발을 마치고 코드를 통합하고 테스트를 하고 이러한 반복적인 과정을 거쳐서 프로젝트를 빌드하고 이를 운영중인 서버에 올리는 작업이라고 볼 수 있는데 이 비효율적이고 반복적인 작업은 인간의 실수와 엄청난 규모의 애플리케이션이라는 큰 리스크를 짊어진 채로 진행되어야 한다. 때문에 서버에 배포하는 과정에서 커멘드 명령을 잘못 입력했다던지 테스트 코드가 잘못되었다던지 하면 빌드와 배포를 하는 과정에서도 엄청난 시간이 소요되는데 최악의 경우에 이를 처음부터 다시 진행해야할 수도 있다.

CI/CD는 이러한 비효율적이고 반복적인 작업의 흐름과 스크립트와 자동화된 코드로써 인간이 실수할 수 있는 부분을 없애준다. 이러한 부분은 배포에 대한 부담감을 크게 줄여주는데 단순히 배포에 대한 부담감이 줄어들었다가 아닌 배포에 대한 부담감이 줄어들었기 때문에 변화에 더윽 능동적인 자세로 대처할 수 있고 때문에 기업과 서비스를 운영하는 조직의 입장에서는 사용자의 요구사항과 문제에 대해서 기민하게 분석하고 반응할 수 있게되는 것이다. 이 모든게 CI/CD를 이용한 자동화된 빌드와 배포 프로세스 덕분이다.

게시글 CRUD 구현

  • 게시글 CRUD 기능 구현
  • PostService 클래스에 대해 게시글 CRUD 단위 테스트 코드 작성
  • PostController 클래스에 대해 게시글 CRUD 단위 테스트 코드 작성
  • 게시글 등록에 대한 통합 테스트 작성

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.