강의 목표: 🎯
- GitLab의 핵심 기능과 워크플로우를 이해하고 활용할 수 있다.
- 프로젝트 생성, 코드 버전 관리, 협업(이슈, 머지 리퀘스트)을 GitLab으로 수행할 수 있다.
- GitLab CI/CD의 기본 개념을 이해하고 간단한 파이프라인을 경험한다.
대상: 🧑💻
- GitLab을 처음 사용하거나 기본적인 사용법을 배우고 싶은 개발자, 기획자, PM 등
- Git 기본 지식이 있는 사용자 (권장 👍)
준비물: 💻
- 개인 노트북
- Git 설치 (선택 사항, 로컬 작업 시 필요)
- GitLab.com 계정 (무료 가입 🔑)
- 인터넷 연결 🌐
강의 시간표 (총 180분) ⏰
| 시간 (분) | 내용 | 세부 내용 | 비고 |
| 0:00-0:15 (15분) | 👋 인트로 및 GitLab 소개 | 강의 목표, GitLab이란? (DevOps 플랫폼), 주요 기능 개요, GitLab 에디션 (CE/EE, SaaS/Self-managed) 소개 | 이론 중심 🧠 |
| 0:15-1:05 (50분) | Module 1: GitLab 기본 & 프로젝트 관리 📁 | UI 둘러보기 (대시보드, 프로젝트, 그룹), 그룹 vs 프로젝트, 프로젝트 생성/설정, 저장소 파일 탐색, 멤버 관리 | 실습: 프로젝트 생성 ✨ |
| 1:05-1:15 (10분) | ☕ 휴식 | ||
| 1:15-2:05 (50분) | Module 2: 버전 관리 & 협업 (MR) 🤝 | Git 워크플로우와 GitLab 연동, 저장소 Clone, 브랜치 생성/푸시, 머지 리퀘스트 (MR) 생성/리뷰/병합 | 실습: 코드 수정, MR 생성 ✅ |
| 2:05-2:15 (10분) | ☕ 휴식 | ||
| 2:15-3:00 (45분) | Module 3: 이슈 트래킹 & CI/CD 기초 🤖 | 이슈 (Issue) 생성/관리 (라벨, 마일스톤, 담당자), 이슈 보드 활용, CI/CD 개념 소개, .gitlab-ci.yml 파일 기초, 파이프라인 확인 | 실습: 이슈 생성 📌, CI 맛보기 ▶️ |
| 3:00-3:15 (15분) | 🎉 마무리 및 Q&A | 주요 내용 복습, 추가 학습 자료 안내, 질의응답 | 🤔 |
세부 강의 내용
👋 인트로 및 GitLab 소개 (15분)
- 강의 소개:
- 강사 소개 및 강의 목표 공유
- 참석자 간단 소개 및 GitLab 사용 경험 확인 (선택)
- GitLab이란? ❓
- 단순 버전 관리 시스템 그 이상: All-in-one DevOps Platform 🚀
- Source Code Management (SCM), CI/CD, Issue Tracking, Wiki, Container Registry 등 통합 제공
- 개발 생산성 및 협업 효율 증대 📈
- GitLab 주요 기능 개요: 💡
- Projects & Groups: 코드 및 관련 작업 구성 단위 📂
- Repository: Git 저장소 관리 💾
- Issues: 작업 추적 및 관리 (버그 🐛, 기능 요청 ✨ 등) 📌
- Merge Requests (MRs): 코드 리뷰 및 변경 사항 병합 프로세스 🤝
- CI/CD: 빌드, 테스트, 배포 자동화 🤖
- Wiki, Snippets 등 부가 기능 📝
- GitLab 에디션 및 형태:
- Community Edition (CE) vs. Enterprise Edition (EE): 기능 차이 (무료 🆓 vs. 유료 💰)
- GitLab.com (SaaS) vs. Self-managed (설치형 🖥️): 운영 주체 차이
- 본 강의는 GitLab.com 무료 버전을 기준으로 진행
Module 1: GitLab 기본 & 프로젝트 관리 📁 (50분)
- GitLab UI 둘러보기: 🧭
- 로그인 후 첫 화면 (Your Work / Explore)
- 상단 메뉴: Projects, Groups, Activity, Milestones 등
- 사이드바: 개인 프로필, 설정 등
- 그룹 (Groups) vs. 프로젝트 (Projects):
- 그룹: 여러 프로젝트를 묶는 컨테이너, 권한 관리 용이 (예: 회사 내 팀별 그룹 🏢) 👨👩👧👦
- 프로젝트: 개별 코드 저장소 및 관련 작업 (이슈, MR 등) 관리 단위 📄
- 프로젝트 생성: ✨
- New Project 버튼 클릭
- 옵션: Blank project, Create from template, Import project
- 프로젝트 이름, 경로(URL), 가시성 수준 (Private 🔒, Internal 🏢, Public 🌍) 설정 중요!
- Initialize repository with a README (선택)
- (실습) 간단한 README를 포함한 Private 프로젝트 생성하기
- 프로젝트 페이지 탐색: 🗺️
- 왼쪽 메뉴: Repository, Issues, Merge requests, CI/CD, Settings 등
- Repository > Files: 코드 파일 탐색, 커밋 히스토리 보기, 브랜치 전환 🌿
- Settings > General: 프로젝트 이름, 설명, 가시성 등 변경 ✏️
- Settings > Members: 프로젝트 멤버 초대 및 역할(권한) 설정 (Guest, Reporter, Developer, Maintainer, Owner) 👥
- (간단 시연/안내) 그룹 생성 및 그룹 내 프로젝트 생성 방법
Module 2: 버전 관리 & 협업 (MR) 🤝 (50분)
- Git 워크플로우와 GitLab 연동: 🔄
- 로컬 PC 💻 에서 작업 -> Git으로 버전 관리 -> GitLab 원격 저장소 ☁️ 로 Push -> 협업 (MR)
- (선택) Git 기본 명령어 복습: clone, add, commit, push, pull, branch, checkout
- 저장소 Clone: 📥
- 프로젝트 페이지 Clone 버튼: HTTPS / SSH URL 복사
- 터미널에서 git clone <복사한_URL> 실행
- SSH Key 설정 방법 안내 (선택 사항, 보안 강화 🔐)
- 코드 수정 및 Push: 💻➡️☁️
- (실습)
- git checkout -b <새_브랜치_이름> (예: feature/update-readme) 🌿
- README.md 파일 내용 수정 📝
- git add README.md
- git commit -m “Update README.md with project description”
- git push origin <새_브랜치_이름>
- (실습)
- 머지 리퀘스트 (Merge Request, MR): 🙏
- 목적: 변경 사항(브랜치)을 메인 브랜치(e.g., main or master)에 병합하기 전 코드 리뷰 및 논의 👀
- 생성:
- Push 후 GitLab 페이지에 나타나는 Create merge request 버튼 클릭
- 또는 프로젝트 > Merge requests > New merge request 버튼 클릭
- Source branch (내 브랜치) / Target branch (병합 대상 브랜치, 보통 main) 선택
- Title / Description 작성 중요! (변경 내용 요약, 관련 이슈 번호 언급 등) ✍️
- Assignee (담당자), Reviewer (검토자), Labels, Milestone 지정 가능
- (실습) 방금 Push한 브랜치에 대한 MR 생성하기
- MR 리뷰 및 병합: ✅
- MR 페이지: Overview, Commits, Changes 탭 확인
- Changes 탭: 코드 변경 내용 확인, 라인별 코멘트 작성 가능 💬
- 토론(Discussion): MR 전체에 대한 의견 교환 🗣️
- (시연) 리뷰어가 코멘트 남기고 Approve 👍 하는 과정
- Merge: Approve 후 Merge 버튼 클릭하여 브랜치 병합 (옵션: Squash commits, Delete source branch)
- (실습) 본인 MR 직접 Merge 하기 (실제 협업 시에는 리뷰 후 Merge)
Module 3: 이슈 트래킹 & CI/CD 기초 🤖 (45분)
- 이슈 (Issue): 📌
- 목적: 버그 신고 🐛, 기능 요청 ✨, 작업 할당 등 프로젝트 관련 모든 논의 및 추적
- 생성:
- 프로젝트 > Issues > New issue 버튼 클릭
- Title / Description 작성 중요! (Markdown 지원) ✍️
- Assignees (담당자 🧑💻), Milestone (릴리즈/스프린트 🏁), Labels (버그, 기능, 문서 등 분류 🏷️), Due date 📅 설정
- (실습) “사용 가이드 문서 작성” 이슈 생성 (담당자: 본인, 라벨: documentation)
- 이슈 관리: ⚙️
- 코멘트로 진행 상황 업데이트 및 논의 💬
- 이슈 <-> MR 연결: MR 설명이나 커밋 메시지에 #<이슈번호> 포함 시 자동 연결🔗
- Close Issue: 관련 MR이 Merge될 때 자동으로 닫히도록 설정 가능 (Closes #<이슈번호>) ☑️
- 이슈 보드 (Issue Boards): 📊
- 칸반(Kanban) 스타일의 시각적 이슈 관리 도구
- 프로젝트 > Issues > Boards
- 기본 보드: Open / Closed 또는 라벨 기반 컬럼
- (시연) 새 목록(컬럼) 추가, 이슈 카드 드래그앤드롭으로 상태 변경 ➡️
- GitLab CI/CD 소개: 🤖🚀
- CI (Continuous Integration): 코드 변경 시 자동으로 빌드 및 테스트 수행 🏗️🧪
- CD (Continuous Delivery/Deployment): 테스트 통과 시 자동으로 배포 준비 또는 실제 배포 📦➡️🌍
- 핵심 요소:
- .gitlab-ci.yml 파일: 파이프라인 작동 방식 정의 (프로젝트 루트에 위치) 📜
- Runner: 실제 CI/CD 작업을 수행하는 에이전트 (GitLab.com 제공 Shared Runner 사용 가능) 🏃♂️
- Pipeline: 전체 CI/CD 프로세스 (여러 Stage와 Job으로 구성) ⛓️
- Stage: 파이프라인 단계 (예: build, test, deploy)
- Job: Stage 내에서 실행되는 개별 작업
- 간단한 .gitlab-ci.yml 예시:
stages: # 스테이지 정의 - build - test build_job: # 첫 번째 잡 (빌드 스테이지 소속) 🏗️ stage: build script: - echo "Building the project..." # - 실제 빌드 명령어 (예: npm run build) test_job: # 두 번째 잡 (테스트 스테이지 소속) 🧪 stage: test script: - echo "Running tests..." # - 실제 테스트 명령어 (예: npm test)content_copydownloadUse code with caution.Yaml - 파이프라인 확인: ▶️
- 프로젝트 > CI/CD > Pipelines: 파이프라인 실행 목록 및 상태 (Pending ⏳, Running 🏃, Success ✅, Failed ❌) 확인
- 커밋 또는 MR에 표시되는 파이프라인 상태 아이콘
- (실습/시연) 프로젝트에 간단한 .gitlab-ci.yml 파일 추가 후 커밋/푸시 -> 파이프라인 실행 확인 (Shared Runner 사용 설정 필요 시 안내)
🎉 마무리 및 Q&A (15분)
- 주요 내용 복습: ✨
- GitLab 핵심 기능: 프로젝트 📂, 저장소 💾, 이슈 📌, MR 🤝, CI/CD 🤖
- 기본 워크플로우: 코드 작성 💻 -> Push ☁️ -> MR 생성 🙏 -> 리뷰/병합 ✅ -> 이슈 관리 📌
- 추가 학습 자료 안내: 📚
- GitLab 공식 문서 (docs.gitlab.com)
- GitLab Learn (learn.gitlab.com)
- Q&A: 참석자 질문 답변 🤔
강의 진행 Tip: 💡
- 실습 시간을 충분히 확보하고, 참석자들이 따라올 수 있도록 속도를 조절합니다. 🐢💨
- 이론 설명 후 바로 관련 실습을 진행하여 이해도를 높입니다. 🧠➡️🖐️
- 실습 중 발생하는 문제는 함께 해결하며 진행합니다. 🤝🆘
- 시간이 부족할 경우, CI/CD 부분은 개념 설명 위주로 진행하고 간단한 시연만 보여줄 수 있습니다.
- GitLab.com의 UI는 업데이트될 수 있으므로 강의 전 최신 UI를 확인합니다. 👀✨
Leave a Reply