[프로젝트][질문]

paduck·2023년 3월 29일
0

프로젝트

목록 보기
9/11

CI, CD, Jenkins 와 ArgoCD...

CI(Continuous Integration)

소스 코드를 작성하고 수정할 때마다, 자동으로 빌드, 테스트, 배포 등의 과정을 거쳐 지속적으로 통합하는 것
이를 통해 개발자들은 작은 단위로 개발하고, 버그를 빨리 발견할 수 있으며, 코드 품질과 안정성 유지 가능

CD(Continuous Delivery/Deployment)

CI의 확장 개념으로, 지속적인 통합을 통해 빌드된 결과물을 지속적으로 배포하고, 배포 자동화와 관련된 기능을 포함
따라서, 소프트웨어의 릴리즈 주기가 빨라지고, 안정적인 릴리즈가 가능

Why Jenkins

  1. 오픈소스 기반의 무료 CI/CD 도구로, 대표적으로 사용되는 도구 중 하나
  2. 대부분의 언어, 프레임워크 및 툴들과 호환되어, 다양한 환경에서 사용 가능
    • 원하는 언어와 프레임워크에 따른 빌드 및 배포 방법 설정 가능
  3. 높은 커뮤니티 지원을 받아, 다양한 플러그인 및 확장 기능들이 존재하고, 자체적인 API 제공으로 확장성이 좋음
    • 1,000개 이상의 플러그인을 지원하여 CI 파이프라인의 빌드, 테스트 및 배포 단계에서 필요한 다양한 기능을 제공
    • 필요한 플러그인만 사용할 수 있어 불필요한 리소스 감소
    • 여러 버전이 제공되어 사용자 임의 설정이 가능
  4. 쉽고 간편한 UI와 다양한 설정 옵션들로, 팀 내에서의 사용성이 높아짐
    • 다른 CI 도구와도 연동이 쉽고, 사용자 커스텀 효율적
    • 웹 기반 UI 제공으로 눈으로 보며 파이프라인 구성 가능
  5. 무료 기능과 가격에 비해 효율적

Why ArgoCD

  1. 오픈소스 기반의 CD 도구로, Kubernetes 환경에서 사용 가능
    • 쿠버네티스와 밀접하게 통합(단점이자 장점)
  2. GitOps 방식을 지원하여, Git을 기반으로 모든 인프라 및 애플리케이션 구성을 관리하므로, 일관성과 안정성이 높아짐
    • 코드 변경 사항을 Git 레포지토리에 커밋하여 배포 자동화하는 형태
  3. 실시간으로 클러스터 상태를 모니터링하여, 무중단 배포를 보장
  4. 사용하기 쉬운 UI와 다양한 API 제공으로, 사용성이 높음
  5. 대부분의 기능들이 무료로 제공되므로, 비용 효율적

Spring, Spring boot

Spring

프로그램을 만들기 위한 거의 대부분의 기능이 들어있는 프레임워크

Spring-boot

spring에서 제공하는 하나의 템플릿으로 자동 설정을 많이 해주어 코드 작성을 얼마하지 않아도 동작하게 만들 수 있음

Spring-legacy

에전에 사용하던 템플릿의 집합

DB

JPA(Hibernate)

데이터베이스 와 내부적으로 매핑해서 SQL 같은 코드 없이 제공되는 메서드만으로 데이터베이스 사용이 가능한 프레임워크
데이터베이스 별로 다른 동작을 코드 수정 없이 할 수 있도록 도와주는 프레임워크

MyBatis

SQL 과 Java 코드를 분리해서 유지보수를 쉽게 할 수 있도록 만든 JDBC 프레임워크

프레임워크 없이 JDBC

코드 작성은 복잡하나 프레임워크의 영향을 받지 않음

profile
끈질기게 들러붙기

0개의 댓글