Repo Hosting Services

저장소 호스팅 서비스는 개발자와 팀이 소스 코드를 저장, 관리, 공유 및 협업할 수 있는 온라인 플랫폼이다. 이 서비스들은 Git, Mercurial, SVN과 같은 버전 관리 시스템을 기반으로 하며, 코드 검토, 이슈 트래킹, CI/CD(지속적 통합/지속적 배포), 문서화 등 다양한 기능을 제공한다.
로컬 저장소와 달리, 원격 저장소를 통해 전 세계 개발자와 실시간으로 협업할 수 있고, 대규모 프로젝트 관리와 자동화된 배포 환경을 구축할 수 있다.

이러한 서비스들은 오픈 소스 프로젝트부터 엔터프라이즈급 소프트웨어 개발까지 다양한 규모의 프로젝트를 지원하며, 현대 소프트웨어 개발 방법론과 DevOps 관행을 촉진하는 데 중요한 역할을 한다.

핵심 개념

목적

필요성

저장소 호스팅 서비스의 필요성은 다음과 같다:

  1. 개발자들이 새 기능이나 버그 수정을 애플리케이션의 프로덕션 버전에 영향을 주지 않고 도입할 수 있게 한다.
  2. 기업이 진화하는 소비자 요구에 더 민첩하고 대응적이게 한다. 개발자들은 라이브 애플리케이션의 안정성에 영향을 주지 않고 새로운 기능을 빠르게 개발할 수 있다.
  3. 원격으로 작업하는 개발자들 사이에서 애플리케이션 개발 작업을 조율할 수 있게 한다.
  4. 코드 변경 사항 추적, 이전 버전으로 되돌리기, 코드의 다른 버전 병합 등의 기능을 제공한다.

주요 기능

저장소 호스팅 서비스의 주요 기능에는 다음이 포함된다:

  1. 버전 관리: 개발자가 코드 변경 사항을 관리할 수 있는 강력한 버전 관리 기능을 제공한다. 이는 변경 사항을 추적하고, 이전 버전으로 되돌리고, 코드의 다른 버전을 병합할 수 있음을 의미한다.
  2. 접근 제어: 대부분의 저장소 호스팅 서비스는 다른 사용자에 대한 권한을 설정할 수 있는 접근 제어 기능을 제공한다. 이는 민감한 코드에 대한 접근을 제한하고 승인된 인원만 코드를 변경할 수 있도록 보장한다.
  3. 이슈 추적: 저장소 호스팅 서비스는 개발 과정에서 발생하는 버그와 기타 이슈를 추적할 수 있는 이슈 추적 기능도 제공한다.
  4. 코드 검토: GitHub 및 GitLab과 같은 많은 저장소 및 호스팅 서비스는 코드 검토 및 풀 리퀘스트 기능을 제공한다. 개발자들은 변경 사항과 풀 리퀘스트를 제출할 수 있으며, 이를 통해 다른 구성원들이 코드를 검토하고, 피드백을 제공하며, 메인 코드베이스에 병합하기 전에 변경 사항을 승인하거나 거부할 수 있다.
  5. 브랜칭: 브랜칭은 개발자가 코드베이스의 별도 복사본인 브랜치를 만들 수 있게 한다. 이후 메인 코드에 영향을 주지 않고 새로운 기능과 버그를 독립적으로 작업할 수 있다.
  6. 보안: 보안은 소프트웨어 저장소, 특히 프라이빗 저장소에 매우 중요하다. 따라서 패키지 소스 코드의 암호화는 악의적인 행위자에게 노출되지 않도록 보호한다.
  7. 협업: 저장소는 여러 팀원이 동시에 동일한 코드베이스에서 작업할 수 있도록 함으로써 개발자 간의 협업을 촉진한다.
  8. 외부 도구 통합: 저장소 호스팅 서비스의 핵심 기능은 외부 도구 및 서비스와의 통합이다. 이러한 통합은 저장소 서비스의 파워 유저 워크플로우를 가능하게 한다.

역할

저장소 호스팅 서비스는 소프트웨어 개발 생태계에서 다음과 같은 중요한 역할을 한다:

  1. 코드 저장소: 팀의 모든 코드와 자원을 중앙화된 위치에 안전하게 보관한다.
  2. 협업 허브: 팀원들이 코드를 공유하고 함께 작업할 수 있는 플랫폼을 제공한다.
  3. 품질 관리: 코드 검토, 이슈 추적, CI/CD를 통해 코드 품질을 향상시킨다.
  4. 프로젝트 관리: 작업 진행 상황을 추적하고 프로젝트 문서를 관리한다.
  5. 지식 공유: 코드와 문서를 통해 팀 내 지식 전파를 촉진한다.

특징

주요 원리

저장소 호스팅 서비스의 주요 원리는 분산 버전 관리 시스템(DVCS)의 개념을 중심으로 구축되었다. 이는 코드의 전체 이력과 함께 전체 저장소의 복사본이 각 개발자의 로컬 시스템에 존재한다는 것을 의미한다.

이러한 접근 방식은 다음과 같은 주요 원리를 기반으로 한다:

  1. 분산 작업: 모든 개발자가 전체 저장소의 로컬 복사본을 가지고 있어 중앙 서버에 의존하지 않고도 작업할 수 있다.
  2. 병렬 개발: 여러 개발자가 동시에 다양한 기능에 작업할 수 있다.
  3. 브랜치 및 병합: 개발자는 격리된 환경에서 작업한 후 변경 사항을 메인 코드베이스에 통합할 수 있다.
  4. 변경 이력 보존: 모든 변경 사항에 대한 완전한 이력이 유지된다.
  5. 협업 촉진: 코드 검토, 이슈 추적, 문서화 도구를 통해 팀 협업을 지원한다.

작동 원리

저장소 호스팅 서비스의 작동 원리는 분산 버전 관리 시스템(DVCS)을 중심으로 구축되어 있다. 아래는 기본적인 작동 원리이다:

  1. 중앙 저장소와 로컬 저장소: 원격 저장소는 본질적으로 작업 중인 저장소의 또 다른 인스턴스로, 하나에 변경된 내용을 다른 하나로 푸시할 수 있도록 연결되어 있다. 원격 저장소는 GitHub이나 BitBucket과 같은 Git 호스팅 서비스에서 호스팅될 수 있다.
  2. 브랜칭 및 병합: GitHub 저장소는 개발자에게 중앙 집중식 코드 버전 관리, 공유 및 협업 기능을 제공한다. 브랜칭은 GitHub에서 저장소의 복사본을 생성하는 프로세스이다. 기본적으로 GitHub 저장소에는 개발자가 처음에 업로드한 원본 소스 코드와 파일이 포함된 메인 브랜치가 있다.
  3. 커밋: 커밋은 개발자가 브랜치의 코드 파일에 적용한 모든 변경 사항을 저장할 수 있는 기능이다. GitHub는 개발자가 변경 사항을 커밋할 때 코드에 도입한 새로운 변경 사항을 설명할 수 있게 한다.
  4. 풀 리퀘스트와 코드 검토: 개발자가 변경 사항을 메인 코드베이스에 병합하기 전에 다른 팀원들에게 검토를 요청하는 메커니즘이다.
  5. CI/CD 통합: 코드 변경 사항을 자동으로 테스트하고 배포하는 파이프라인을 구축한다.

아래는 저장소 호스팅 서비스의 일반적인 작동 흐름을 보여주는 다이어그램:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
+-------------------+     클론/풀    +-------------------+
|                   | <------------- |                   |
|   원격 저장소      |                |   로컬 저장소      |
|   (GitHub 등)     | -------------> |                   |
|                   |     푸시       |                   |
+-------------------+                +-------------------+
         ^                                   |
         |                                   |
         |           +-------------------+   |
         |           |                   |   |
         +-----------|   CI/CD 파이프라인  |<--+
                     |                   |
                     +-------------------+
                              |
                              v
                     +-------------------+
                     |                   |
                     |    배포 환경       |
                     |                   |
                     +-------------------+

로컬 Git과의 차이점

로컬 Git 저장소는 개인 PC에만 저장하여, 협업·백업·자동화에 한계가 있으며 원격 저장소(호스팅 서비스)는 실시간 협업, 백업, 자동화, 접근 제어 등 다양한 부가 기능을 제공한다.

추가적으로, 로컬 Git과 저장소 호스팅 서비스의 주요 차이점은 다음과 같다:

  1. 중앙 저장소: 호스팅 서비스는 모든 개발자가 접근할 수 있는 중앙 저장소 역할을 한다.
  2. 웹 인터페이스: 코드 브라우징, 차이점 비교, 이슈 추적 등을 위한 웹 기반 인터페이스를 제공한다.
  3. 협업 기능: 코드 검토, 풀 리퀘스트, 이슈 추적 등의 협업 기능을 제공한다.
  4. CI/CD 통합: 자동화된 테스트 및 배포 파이프라인을 지원한다.
  5. 액세스 제어: 다양한 수준의 접근 권한을 관리한다.
  6. 가용성: 인터넷을 통해 어디서나 접근할 수 있다.
  7. 백업 및 안정성: 전문적인 호스팅으로 데이터 손실 위험을 줄인다.

구성 요소

저장소 호스팅 서비스의 주요 구성 요소 및 아키텍처는 다음과 같다:

구성 요소설명역할
저장소 서버중앙 저장소가 호스팅되는 서버모든 코드 변경 사항을 저장하고 접근 제어를 관리합니다
버전 관리 시스템(VCS)Git, Mercurial 또는 SVN과 같은 버전 관리 시스템코드 변경 사항을 추적하고 버전 이력을 관리합니다
접근 제어 및 인증 시스템사용자 인증 및 권한 관리를 담당하는 시스템저장소에 대한 접근을 제어하고 보안을 유지합니다
이슈 추적기버그, 기능 요청 및 작업 항목을 추적하는 시스템프로젝트 관리 및 작업 추적을 지원합니다
CI/CD 파이프라인지속적 통합 및 지속적 배포를 지원하는 시스템코드 변경 사항을 자동으로 테스트하고 배포합니다
웹 인터페이스브라우저를 통해 코드와 관련 정보를 관리하는 인터페이스사용자 친화적인 방식으로 저장소 내용에 접근할 수 있게 합니다
API 및 웹훅외부 시스템과의 통합을 지원하는 인터페이스알림, 자동화, 서드파티 도구 통합을 가능하게 합니다
메타데이터 저장소프로젝트 정보, 사용자 정보 등을 저장하는 시스템프로젝트와 관련된 모든 메타데이터를 관리합니다
백업 및 복구 시스템데이터 손실 방지를 위한 백업 메커니즘저장소 데이터의 안전을 보장합니다
위키 및 문서화 도구프로젝트 문서화를 위한 위키 시스템 및 마크다운 기반 문서 도구프로젝트 문서화, 가이드라인, API 문서 등을 작성하고 관리합니다

장점과 단점

구분항목설명
✅ 장점버전 관리강력한 버전 관리 기능을 통해 개발자들이 코드 변경사항을 추적하고, 이전 버전으로 되돌리고, 다양한 버전의 코드를 병합할 수 있습니다.
협업여러 개발자가 실시간으로 협업 가능, 코드 리뷰 및 이슈 관리 용이
이슈 추적개발 과정에서 발생하는 버그와 기타 이슈를 추적할 수 있는 이슈 추적 기능을 제공합니다.
CI/CD 통합많은 저장소 호스팅 서비스들이 CI/CD 애드온 도구를 제공합니다. 이를 통해 코드 테스트와 배포를 자동화할 수 있습니다.
외부 도구 통합저장소 호스팅 서비스의 핵심 기능은 외부 도구 및 서비스와의 통합입니다. 이러한 통합은 저장소 서비스의 파워 유저 워크플로우를 가능하게 합니다.
코드 검토 기능개발자들은 변경 사항과 풀 리퀘스트를 제출할 수 있으며, 이를 통해 다른 구성원들이 코드를 검토하고, 피드백을 제공하며, 메인 코드베이스에 병합하기 전에 변경 사항을 승인하거나 거부할 수 있습니다.
백업/복구코드와 변경 이력의 안전한 백업 및 복구 지원
접근성인터넷만 있으면 어디서나 접근 가능, 글로벌 협업 용이
접근 제어다양한 사용자에 대한 권한을 설정할 수 있는 접근 제어 기능을 제공하여 민감한 코드에 대한 접근을 제한하고 권한이 있는 인원만 코드를 변경할 수 있도록 보장합니다.
확장성대규모 프로젝트와 다양한 워크플로우 지원
⚠ 단점보안외부 서비스 의존 시 보안 위험(유출, 해킹 등)
비용일부 서비스는 유료, 저장소/사용자 수에 따라 비용 증가
종속성서비스 장애 시 전체 프로젝트 영향, 커스터마이징 한계
제한된 커스터마이징저장소 호스팅 서비스는 표준 기능 세트를 제공하도록 설계되어 있어 특정 요구 사항에 맞게 플랫폼을 커스터마이징하지 못할 수 있습니다.
성능대용량 저장소/대규모 프로젝트에서 성능 저하 가능성

분류에 따른 종류 및 유형

분류유형설명
버전 관리 방식분산형(Distributed)Git, Mercurial 등. 각 개발자가 전체 이력을 소유
중앙집중형(Centralized)SVN, CVS 등. 중앙 서버에 이력 집중
호스팅 방식클라우드(Cloud)GitHub, Bitbucket Cloud 등. SaaS 형태
온프레미스(On-premise)GitLab EE, Bitbucket Server 등. 자체 서버 설치
공개 범위오픈소스(공개)누구나 접근 가능, 오픈소스 협업 중심
프라이빗(비공개)접근 제한, 기업/팀 내부 개발에 사용
주요 서비스GitHub세계 최대 규모, 오픈소스 중심, Git 기반
GitLabDevOps 통합, 자체 호스팅 지원, Git 기반
BitbucketAtlassian 연동, Mercurial/Git 지원, 자체 호스팅 가능
기타AWS CodeCommit, Azure DevOps 등클라우드 기반, 엔터프라이즈 지원

GitHub vs. GitLab vs. Bitbucket 기능 비교

기능GitHubGitLabBitbucket
코드 검토
이슈 추적
위키
CI/CDGitHub ActionsGitLab CI/CDBitbucket Pipelines
보안보안 스캔 및 경고 기능 제공SAST, DAST 등 보안 테스트 통합Atlassian의 보안 정책 적용
권한 관리팀/조직/리포지토리세분화, 자체 호스팅 지원프로젝트/브랜치별 세분화
프로젝트 관리기본 기능종합적인 기능Jira 통합
호스팅클라우드클라우드/온프레미스클라우드/온프레미스
자체 호스팅 옵션GitHub EnterpriseGitLab CE/EEBitbucket Server / Bitbucket Data Center
오픈 소스 지원활발한 커뮤니티자체 오픈 소스 프로젝트 운영제한적
정적 웹사이트 호스팅GitHub PagesGitLab Pages제한적 지원
패키지 레지스트리
사용자 인터페이스직관적기능적Atlassian 스타일
주요 통합다양한 서드파티 앱기본 내장 DevOps 도구Atlassian 제품(Jira, Confluence)
확장성플러그인, ActionsDevOps 파이프라인, 자체 RunnerJira, Bamboo 등과 연동
라이선스MS 소유, SaaS오픈코어, 자체 설치 가능Atlassian 소유, SaaS/서버
라이선스 모델사용자 기반 요금제, 무료~엔터프라이즈기능 기반 티어, 무료~Ultimate사용자 기반 요금제, 무료(5명까지)~프리미엄
무료 비공개 저장소무제한무제한무제한(5명 이하)

실무 적용 예시

적용 분야적용 예시설명
소프트웨어 개발팀 협업 코딩여러 개발자가 동시에 코드를 작업하고, 코드 리뷰를 통해 품질을 관리하는 작업 흐름 구현
오픈 소스 프로젝트다양한 기여자가 참여하는 오픈 소스 프로젝트의 코드 관리 및 기여 프로세스 구현
릴리스 관리코드의 버전 관리와 태그 지정을 통한 체계적인 소프트웨어 릴리스 관리
DevOpsCI/CD 파이프라인코드 변경 시 자동으로 테스트, 빌드, 배포하는 파이프라인 구축
인프라 자동화Infrastructure as Code를 통한 서버 및 인프라 구성 관리
모니터링 및 알림코드 변경 이벤트에 따른 모니터링 및 알림 시스템 구축
교육학습 및 교육코딩 수업에서 학생들의 코드 제출 및 리뷰 관리
코드 포트폴리오개발자의 커리어 포트폴리오로 사용되는 개인 저장소
학습 자료 공유강의 자료, 코드 예제 등의 교육 콘텐츠 공유
기업 프로젝트기업 소프트웨어 개발기업 내부 소프트웨어의 개발 및 유지보수 관리
문서화위키, 마크다운 문서 등을 통한 프로젝트 문서화
지식 공유코드 스니펫, 모범 사례 등의 조직 내 지식 공유
웹 호스팅정적 웹사이트 호스팅GitHub Pages, GitLab Pages 등을 통한 정적 웹사이트 호스팅
블로그 플랫폼Jekyll 등의 정적 사이트 생성기와 연동한 블로그 운영
문서 사이트API 문서, 기술 문서 등의 호스팅
협업 프로젝트공동 작업지리적으로 분산된 팀원들 간의 효율적인 협업
코드 검토코드 품질 향상을 위한 체계적인 검토 프로세스
작업 분배이슈 및 작업 항목 할당을 통한 효율적인 작업 분배

실무 적용 시 고려사항 및 주의점

분류고려사항설명
보안접근 제어 관리저장소에 대한 적절한 접근 권한 설정 및 정기적인 검토
비밀 정보 관리비밀번호, API 키 등의 민감한 정보를 저장소에 포함시키지 않도록 주의
2단계 인증계정 보안 강화를 위한 2단계 인증 설정
운영 효율성브랜치 전략프로젝트에 적합한 브랜치 관리 전략 수립(Git Flow, GitHub Flow 등)
코드 리뷰 과정효율적인 코드 리뷰 프로세스 및 가이드라인 수립
CI/CD 통합지속적 통합 및 배포 파이프라인 구축
확장성대규모 팀 지원대규모 팀 및 프로젝트에서의 효율적인 운영 방안 마련
대용량 저장소 관리대용량 파일 및 저장소의 효율적인 관리 방안
성능 최적화저장소 크기 증가에 따른 성능 최적화 전략
비용 관리라이선스 계획팀 규모 및 요구사항에 맞는 적절한 라이선스 플랜 선택
리소스 사용량 모니터링CI/CD 시간, 스토리지 사용량 등의 리소스 모니터링
비용 최적화불필요한 비용 발생을 방지하기 위한 리소스 최적화
문서화README 관리모든 저장소에 명확한 README 파일 유지
이슈 및 PR 템플릿표준화된 이슈 및 풀 리퀘스트 템플릿 사용
코드 스타일 가이드일관된 코드 스타일 및 문서화 표준 수립
통합외부 도구 통합이슈 추적, 프로젝트 관리 도구 등과의 효율적인 통합
알림 설정중요 이벤트에 대한 알림 설정 최적화
자동화 워크플로우반복적인 작업의 자동화를 위한 워크플로우 구축
교육 및 온보딩팀원 교육새로운 팀원을 위한 저장소 사용 가이드 제공
모범 사례 공유팀 내 효율적인 저장소 사용 모범 사례 공유
지속적인 학습새로운 기능 및 모범 사례에 대한 지속적인 학습

성능 최적화 고려사항

최신 동향

주제항목설명
대형 저장소 관리성능 최적화LFS, 캐싱, 미러링, 분산 저장소 활용
DevOps 통합All-in-one 플랫폼GitLab, Bitbucket 등 DevOps 통합 기능 강화
AI/자동화코드 리뷰, 보안AI 기반 코드 리뷰, 보안 취약점 탐지, 자동화 도구 확산
보안SSO, 2FA, 감사 로그보안 강화, 엔터프라이즈 기능 확대
오픈소스/프라이빗 혼합하이브리드 전략오픈소스와 프라이빗 저장소 혼용, 자체 호스팅 수요 증가

주목해야 할 기술

주제항목설명
AI 통합LLM 기반 코드 분석GitLab의 최근 설문 조사에 따르면 AI 생성 코드는 이제 개발자들이 쉽게 사용할 수 있어 코드베이스에 대해 훨씬 더 빠르게 반복할 수 있습니다. GitLab은 “압도적인 다수(78%)의 응답자"가 “현재 소프트웨어 개발에 AI를 사용하고 있거나 향후 2년 내에 사용할 계획"이라고 말했습니다.
AI 보안 자동화2024년에는 보안 제공업체들이 점점 더 AI를 제품 및 워크플로우에 통합하면서 사이버 보안 환경에 중요한 변화가 있었습니다. 이러한 추세는 위협 탐지 향상, 대응 자동화 및 전반적인 보안 태세 개선의 필요성에 의해 주도됩니다.
보안 강화양자 내성 암호화미래를 내다보는 조직들은 민감한 데이터와, 지적 재산을 보호하기 위한 미래 대비 과정으로 양자 내성 암호화 구현을 고려할 것입니다.
공급망 보안DevOps 생태계는 AI 공급망을 위한 공격 표면을 매핑할 때 적들의 주요 대상입니다. 기업들이 생성형 AI를 도입하고 개발자들에게 신속하게 새로운 AI 애플리케이션을 혁신하도록 밀어붙이면서, 적들은 모델 동물원, 협업 코드 저장소 허브, 그리고 CI/CD(지속적 통합/지속적 배포) 자원을 대상으로 한 피싱 캠페인을 강화할 것입니다.
클라우드 기술서버리스 컴퓨팅서버리스 컴퓨팅은 물리적 서버가 필요하지 않기 때문에 미래의 추세가 될 것입니다. 애플리케이션에서 작동하며 애플리케이션을 호스팅하는 데도 도움이 됩니다.
멀티 클라우드 환경2025년부터 2030년까지의 기간 동안 멀티 클라우드 환경 사용이 대폭 증가할 것입니다. 조직들은 비즈니스 효율성과 보안을 향상시키기 위해 공용 및 사설 클라우드를 모두 활용할 수 있는 하이브리드 클라우드 환경을 활용할 것입니다.
개발 환경헤드리스 아키텍처이 아키텍처는 더 큰 유연성, 성능 및 확장성을 제공하여 원활한 옴니채널 경험을 제공하고자 하는 기업에게 매력적인 옵션입니다. 헤드리스 워드프레스는 개발자가 React, Vue.js 또는 Next.js와 같은 프론트엔드 프레임워크나 기술 스택을 선택할 수 있게 하면서도 워드프레스의 강력한 CMS 기능을 활용할 수 있도록 합니다.
GitOpsGitOps(인프라 구성 및 운영을 관리하기 위해 Git 저장소를 사용하는 방식)이 인기를 얻고 있으며 표준 관행이 될 것으로 예상됩니다. Infrastructure as Code(IaC) 도구를 활용함으로써, GitOps 방식은 추적성, 자동화, 일관성을 제공합니다.

앞으로의 전망

주제항목설명
자동화AI/ML 통합AI 기반 코드 리뷰, 보안, 배포 자동화 확대
보안엔터프라이즈 강화SSO, 감사 로그, 보안 기능 고도화
하이브리드온프레미스+클라우드자체 호스팅과 클라우드 혼합 전략 증가
DevOps 통합All-in-one 플랫폼코드 관리부터 배포까지 통합 관리 확산
글로벌 협업원격/분산 개발글로벌 분산 개발 환경 지원 강화

추가 학습 주제

카테고리주제간략한 설명
CI/CD 시스템지속적 통합(CI)지속적 통합(CI): 공유 저장소 내에서 코드 변경 사항을 자동으로 빌드, 테스트 및 통합합니다. 코드 품질 관리 및 버그 조기 발견을 위한 필수적인 방법론입니다.
지속적 배포(CD)지속적 배포(CD): 코드 변경 사항을 고객에게 직접 자동으로 배포합니다. 사용자에게 빠르게 새로운 기능을 제공하기 위한 자동화 프로세스입니다.
빌드 자동화빌드 단계: 이는 코드와 그 종속성들이 하나의 실행 파일로 컴파일되는 과정입니다. 이것은 지속적 통합(CI)의 첫 번째 단계로, 저장소에 코드를 푸시하는 것과 같은 이벤트에 의해 트리거됩니다.
테스트 자동화테스트 단계: 여기서는 빌드된 아티팩트가 코드가 예상대로 실행되는지 확인하기 위해 테스트됩니다. 코드 품질을 유지하기 위한 필수 과정입니다.
GitHub Actions워크플로우 구축GitHub Actions를 사용하면 웹훅에 대한 자동화나 CI/CD 파이프라인의 이벤트 트리거로 GitHub의 어떤 웹훅도 설정할 수 있습니다. 이를 통한 효율적인 워크플로우 구성 방법을 학습합니다.
GitHub 러너GitHub 호스팅 러너는 GitHub에서 제공하고 관리하는 가상 머신입니다. 설정이나 유지보수를 할 필요가 없으며, GitHub는 워크플로우의 각 작업에 대해 자동으로 신선하고 안전하며 격리된 환경을 시작합니다.
시크릿 관리시크릿은 워크플로우에서 사용되고 사용할 수 있는 민감한 정보를 저장하고 액세스하는 데 사용됩니다. 시크릿은 로그에 인쇄될 때 편집됩니다.
GitLab CI/CDGitLab 파이프라인GitLab CI/CD를 사용하려면 프로젝트의 루트에 있는.gitlab-ci.yml 파일부터 시작합니다. 이 파일은 CI/CD 파이프라인 동안 실행될 단계, 작업 및 스크립트를 지정합니다.
GitLab 변수GitLab CI/CD 변수는 키-값 쌍으로, 비밀번호나 API 키와 같은 구성 설정과 민감한 정보를 저장하고 파이프라인의 작업에 전달하는 데 사용합니다.
GitLab 러너러너는 작업을 실행하는 에이전트입니다. GitLab CI/CD 작업 실행 환경에 대한 이해가 필요합니다.
고급 Git 워크플로우브랜치 전략메인 브랜치에 자주 체크인하기 - 트렁크, 메인라인 또는 마스터 브랜치에 코드를 일찍 자주 통합하세요 - 즉, 트렁크 기반 개발을 말합니다.
Git Flow기능 브랜치, 릴리스 브랜치, 핫픽스 브랜치 등을 포함한 Git Flow 워크플로우 모델 학습
GitHub Flow단순화된 브랜치 전략으로, 주로 메인 브랜치와 기능 브랜치만 사용하는 워크플로우
배포 전략블루-그린 배포두 개의 동일한 프로덕션 환경을 유지하여 무중단 배포를 가능하게 하는 전략
카나리아 배포점진적으로 새 버전을 일부 사용자에게만 롤아웃하여 위험을 최소화하는 배포 전략
롤백 전략문제 발생 시 이전 버전으로 신속하게 되돌리는 방법 학습
저장소 보안코드 스캐닝코드 품질부터 보안 프로필까지 모든 것을 추적하여 모든 단계에서 보안과 규정 준수를 유지하도록 설계된 엔드 투 엔드 테스트를 갖추고 있습니다.
시크릿 탐지소스 코드에 있는 비밀번호, API 키와 같은 민감한 정보를 찾아내는 기술
취약점 관리코드 베이스 내의 취약점을 식별하고 관리하는 프로세스와 도구
인프라 자동화IaC(Infrastructure as Code)인프라 구성을 코드로 관리하여 일관성과 재현성을 보장하는 방법
GitOpsGitHub 액션 워크플로우를 사용하여 코드 업데이트를 푸시할 때마다 웹사이트를 업데이트합니다. Git을 인프라 관리의 핵심으로 활용하는 방법론
Kubernetes 배포 자동화Kubernetes에 대한 자동화된 CI+CD를 제공하며, Tekton의 클라우드 네이티브 파이프라인을 사용하여 풀 리퀘스트에서 미리보기 환경을 제공합니다.

관련 분야 학습 내용

관련 분야학습 내용간략한 설명
버전 관리 시스템Git 고급 기능리베이스, 체리픽, 인터랙티브 리베이스 등 Git의 고급 기능과 사용법
대규모 저장소 관리Git LFS(Large File Storage), 성능 최적화, 모노레포 관리 등
Mercurial/SVN다른 버전 관리 시스템의 특징과 Git과의 차이점 이해
DevOps모니터링 및 로깅Prometheus, Grafana, ELK 스택 등을 활용한 애플리케이션 모니터링
인프라 자동화Terraform, Ansible, Chef, Puppet 등을 사용한 인프라 자동화
컨테이너 오케스트레이션Docker, Kubernetes 등의 컨테이너화 기술과 오케스트레이션
모니터링 통합CI/CD 이후 모니터링 도구와 연계 필요성
테스트 자동화PR 단계에서의 테스트 자동화 전략
클라우드 컴퓨팅멀티클라우드 전략여러 클라우드 제공업체를 활용한 효율적인 인프라 관리
서버리스 아키텍처AWS Lambda, Azure Functions, Google Cloud Functions 등의 서버리스 기술
클라우드 네이티브 개발클라우드 환경에 최적화된 애플리케이션 개발 방법론
클라우드 인프라AWS CodeCommit, Azure DevOps주요 클라우드 기반 저장소 서비스 비교
보안DevSecOps개발 파이프라인에 보안을 통합하는 방법론
SAST/DAST정적 및 동적 애플리케이션 보안 테스트 도구와 방법론
컴플라이언스 자동화규정 준수를 자동화하여 개발 과정에 통합하는 방법
코드 서명 및 검증코드 변경 사항의 무결성 확인 및 보안 이슈 대응
협업 도구이슈 트래킹Jira, GitHub Issues, GitLab Issues 등의 이슈 트래킹 시스템
프로젝트 관리애자일, 스크럼, 칸반 등의 프로젝트 관리 방법론
문서화 도구Wiki, Markdown, 기술 문서 자동화 도구 등

용어 정리

용어설명
온프레미스(On-premise)자체 서버에 설치·운영하는 방식
SaaS(Software as a Service)클라우드 기반 소프트웨어 서비스 형태
GitOpsGit을 인프라 관리의 핵심으로 활용하여 선언적 인프라를 구현하는 방법론
DevSecOps보안을 개발 및 운영에 통합한 개발 방법론
CI/CDContinuous Integration/Continuous Delivery의 약자로, 코드 통합, 테스트, 배포를 자동화하는 개발 방법론
RBACRole-Based Access Control (역할 기반 접근 제어)
브랜치 전략협업 시 사용하는 브랜치 분기 및 병합 전략 (Git Flow 등)
Git Flow기능 브랜치, 개발 브랜치, 릴리스 브랜치 등의 체계적인 브랜치 관리 전략
Pull Request코드 변경사항을 메인 코드베이스에 병합하기 전에 검토를 요청하는 기능
RunnerCI/CD 파이프라인에서 작업을 실행하는 에이전트 또는 서버
WebHook특정 이벤트가 발생했을 때 HTTP POST 요청을 통해 알림을 보내는 기능
브랜치 보호특정 브랜치에 직접 푸시하지 못하도록 제한하여 코드 품질을 보호하는 기능
Forking다른 사용자의 저장소를 자신의 계정으로 복사하여 독립적으로 작업할 수 있게 하는 기능

참고 및 출처