xangj0ng.log
로그인
xangj0ng.log
로그인
[Spring] Git
SANG JONG CHOI
·
2022년 10월 28일
팔로우
0
Spring
0
Spring
목록 보기
7/11
CI / CD
버전 관리를 자동으로 지속적으로 수행
CI (Continuous Integration)
지속적 통합 (통합 자동화)
코드에 대한 통합을 ‘지속적’으로 진행함으로써 품질을 유지
CD (Continuous Deploy 또는 Delivery)
배포 자동화
소프트웨어가 항상 신뢰 가능한 수준에서 배포될 수 있도록 지속적으로 관리하자는 개념
DI/CD 구현 예
코드 작성 / 수정
Github 업로드
Jenkin가 자동으로 빌드하고 재 배포(톰캣 서버 자동 시작)
DevOps(데브옵스)
소프트웨어의 개발(Development)와 운영(Operation)의 합성
사람, 프로세스 및 기술의 합집합
소프트웨어 개발자와 정보기술 전문가 간의 소통, 협업 및 통합을 강조하는 개발 환경이나 문화를 의미
소프트웨어 개발조직과 운영조직 간의 상호 의존적
DevOps (데브옵스)의 특징
서로 단절되었던 개발, IT 운영, 품질 엔지니어링, 보안 등을 서로 조율하고 협업하여 더욱 안정적이고 뛰어나 제품을 생산할 수 있도록 지원
서비스 기획부터 개발, 운영, 테스트, 배포 등 모든 제품 개발 프로세스를 하나의 팀에서 수행
CI/CD를 이용해서 빌드-배포-테스트-프로세스 자동화
DevOps (데브옵스)의 목적
소프트웨어 제품과 서비스를 빠른 시간에 개발 및 배포
운영 프로세스의 예측 가능성, 효율성, 보안, 유지보수 가능성을 극대화
자동화
DevOps (데브옵스)의 이점
제품 생산 프로세스 전 과정을 자동화함으로써 제품을 더 빨리 빌드하여 고객 만족을 높여 높은 성과 달성
출시 시간 단축
시장과 경쟁 지형에 따른 유연한 대응
시스템 안정성 및 신뢰성 유지
평균 복구 시간 개선
버전 관리 시스템 (Version Control System : VCS)
조직의 핵심 자산이 소스 코드의 개정과 백업 절차를 자동화하여 오류 수정 과정을 도와줄 수 있는 시스템
시스템 개발 중 어떤 의미 있는 변화들을 관리하는 체계 (일련의 개발 관리 활동)
의미 있는 변화들
기능 개선, 오류 수정, 고객 요구사항 변경 등에 의한 소스코드 또는 산출물의 변경
수행 기능
여러 개발자들이 협업하며 코드를 작성하고 관리할 수 있는 기능
소크코드 백업 및 이전 버전으로의 롤백 기능 등
버전 관리(형상 관리) 시스템을 사용하는 이유
무언가 잘못되었을 때 복구를 도움
프로젝트 진행 중 과거의 어떤 시점으로 돌아갈 수 있게 하기 위함
여러 사람이 같은 프로젝트에 참여할 경우, 각자가 수정한 부분을 팀원 전체가 동기화하는 과정을 자동화
소스 코드의 변경 사항을 추적
소스 코드에서 주가 수정했는지 추적
대규모 수정 작업을 더욱 안전하게 진행
가지내기(Branch)로 프로젝트에 영향을 최소화 하면서 새로운 부분을 개발
Merge로 검증이 끝난 후 새로이 개발된 부분을 본류에 통합
많은 오픈 소스 프로젝트에서 어떠한 형태로든 버전 관리를 사용하고 있기 때문에
형상 관리 도구
소스 코드를 작성하거나 관리하는 모든 개발자뿐 아니라 디자이너, 기획자 등 파일에 대한 이력 관리가 필요한 경우에는 반드시 필요한 도구
오픈소스 (무료) 대표적
Git
프로그램 등의 소스 관리를 위한 분산 버전 관리 시스템
여러 명의 개발자가 특정 프로젝트를 자신의 컴퓨터로 협업하여 개발하면서 버전을 관리할 수 있는 시스템
Git의 버전 관리 방식
중앙 서버 컴퓨터와 여러 개의 컴퓨터들이 연결되어 모든 같은 버전의 데이터베이스 유지
업데이트될 때마다 최신 버전 자동으로 생성
파일들이 최신 버전으로 모든 컴퓨터에서 유지
Git의 특징
빠른 속도
단순한 구조
비선형적인 개발 (수천 개의 동시 다발적인 브랜치)
완벽한 분산 기능
속도가 빨라서 대형 프로젝트에 적합
Github을 통해 웹 브라우저를 사용하여 누구나 Repository(저장소)를 만들어 사용할 수 있음
Github
각 개발자들이 진행한 개발 변경 사항을 온라인에서 확인 가능한 서비스
오픈 소스 배포 시 대부분 git을 통해 배포 및 관리
저장 공간 무료 제공 - 소스 공개
private 저장 공간은 유료 계정 사용
repository push, pull 속도 빠르고 안정적
다른 형상관리 툴과 호환성 좋음
STS에서 Git 사용
STS를 사용해서 스프링 프로젝트를 Github Repository에 올리기
Github 로컬 리포지토리에서 push 하는 법
스프링 Perspective에서 Push 하는 법
원격 리포지토리에서 로컬 리포지토리로 가져오기
수정 작업 후 push 하는 법
주의!
원본 프로젝트 복사해서 백업해 둘 것
STS를 사용해서 스프링 프로젝트를 Github Repository에 올리기
새 저장소 생성 : spring
토큰 생성 (비밀번호 대신 토큰 인증으로 변경됨)
Settings / Developer settings
Personal access tokens / Generate new token
로컬 리포지토리 (저장소) 생성
프로젝트 게시 하기
Github 로컬 리포지토리에서 push 하는 법
(1) Team / Share Project : 스프링 Perspective에서
(2) Git Repository 선택
(3) 로컬 Repository에서 추가된 프로젝트 확인
(4) Commit 할 항목 선택
Git Staging
Commit Message 입력하고 Commit
(5) Push to Origin : Github Repository에 업로드
(6) Github에서 확인
스프링 Perspective에서 Push
(1) Team / Share Project
(2) Team / Add to Index
(3) Team / Commit
Commit Message 입력하고 Commit
(4) Team / Push to Origin
SANG JONG CHOI
No error, No gain
팔로우
이전 포스트
[Spring] 데이터베이스 연동
다음 포스트
[Spring] 파일 업로드
0개의 댓글
댓글 작성
관련 채용 정보