CoDream

GitLab 본문

Develop/프로젝트

GitLab

코잠 2025. 4. 14. 10:57
728x90
반응형

깃랩(GitLab)은 개발자들이 협업할 수 있도록 도와주는 Git 저장소 관리 시스템입니다. GitHub와 비슷하지만, 자체 서버에 설치해서 사용할 수도 있고 CI/CD 같은 자동화 기능이 잘 갖추어져 있어 실제 배포에도 많이 활용됩니다.


✅ 정의

GitLab은 Git 기반의 버전 관리, 코드 리뷰, 이슈 관리, CI/CD 파이프라인까지 지원하는 DevOps 플랫폼입니다.
**그룹(Group)**은 여러 프로젝트를 묶는 조직 단위이고,
**프로젝트(Project)**는 Git 저장소와 CI/CD 설정, 이슈 트래킹 등 개발의 단위를 말합니다.


✅ 3줄 요약

  1. GitLab은 Git 저장소 + 협업 + 배포 자동화 기능을 제공하는 플랫폼입니다.
  2. 그룹 → 프로젝트를 생성하고 Git으로 코드를 관리할 수 있습니다.
  3. CI/CD 설정을 통해 개발환경/운영환경으로 자동 배포가 가능합니다.

✅ 예시 코드와 설명

1. 프로젝트 생성 후 코드 푸시 예시

bash
복사편집
# 터미널에서 GitLab에 코드 푸시하기 git init # Git 초기화 git remote add origin https://gitlab.com/내아이디/프로젝트명.git git add . git commit -m "처음 커밋" git push -u origin master

2. .gitlab-ci.yml 파일 (CI/CD 설정)

yaml
복사편집
stages: - build - deploy build_job: stage: build script: - echo "앱 빌드 중..." deploy_dev: stage: deploy only: - develop script: - echo "개발 서버로 배포 중..." deploy_prod: stage: deploy only: - main script: - echo "운영 서버로 배포 중..."

✅ 자세한 설명

1. GitLab 회원가입 및 설정

  • https://gitlab.com/ 에서 회원가입 후 로그인
  • 프로필 설정, SSH 키 등록 (로컬에서 깃랩 접속 시 필요)
  • SSH 키 생성: ssh-keygen → 공개키를 GitLab > Settings > SSH Keys에 등록

2. 그룹(Group) 만들기

  • GitLab에서는 그룹이 회사나 팀을 나타냄
  • 여러 프로젝트를 그룹 아래에 만들 수 있음
  • 경로: GitLab > Groups > New group
  • 그룹 이름, 설명 입력 → Create group

3. 프로젝트(Project) 만들기

  • 경로: GitLab > New project
  • 프로젝트 이름, 그룹 설정, 공개 여부 선택
  • README.md, .gitignore, license 옵션 선택 가능

4. Git으로 로컬 코드 푸시

  1. GitLab에서 프로젝트 생성 후, Git 주소 복사
  2. 터미널에서 로컬 프로젝트와 연결
  3. git push로 GitLab에 코드 업로드

5. GitLab CI/CD 설정

🔹 .gitlab-ci.yml 파일 생성

  • 프로젝트 루트에 .gitlab-ci.yml 작성
  • 이 파일로 CI(테스트/빌드)와 CD(배포)를 자동화함
 
# 예시: develop 브랜치 = 개발 서버, main 브랜치 = 운영 서버

stages:
  - build
  - deploy

build_job:
  stage: build
  script:
    - npm install
    - npm run build

deploy_dev:
  stage: deploy
  only:
    - develop
  script:
    - scp -r ./dist user@dev-server:/path/to/app
    - ssh user@dev-server "systemctl restart my-app"

deploy_prod:
  stage: deploy
  only:
    - main
  script:
    - scp -r ./dist user@prod-server:/path/to/app
    - ssh user@prod-server "systemctl restart my-app"
  • scp: 파일을 서버에 복사
  • ssh: 서버에 접속해서 명령 실행
  • systemctl restart: 배포 후 서비스 재시작

6. 개발/운영 서버 구성

  • 보통 다음과 같이 환경 분리함:
    • develop 브랜치 → 개발 서버
    • main 브랜치 → 운영 서버
  • 각 브랜치에 푸시될 때마다 .gitlab-ci.yml에 따라 자동으로 배포됨

7. 실무에서의 흐름 요약

  1. GitLab에서 그룹/프로젝트 생성
  2. 로컬에서 작업 → GitLab에 push
  3. .gitlab-ci.yml 설정 후 자동 빌드/배포
  4. 팀원들과 이슈관리, 코드리뷰, Merge Request를 통해 협업

필요하시면 직접 사용해볼 수 있는 간단한 템플릿 프로젝트나,
Spring 프로젝트용 배포 예시도 추가로 알려드릴 수 있어요.
어떤 환경(리눅스 서버, AWS, Netlify 등)에 배포할 건지도 알려주시면 맞춤형으로 도와드릴게요!

728x90
반응형

'Develop > 프로젝트' 카테고리의 다른 글

PHP, MYSQL 버전 확인  (0) 2025.04.28
As-Is / To-Be  (3) 2024.09.04
ERP, MES? POP는 또 뭐야?  (0) 2024.09.04
AWS(아마존 웹 서비스)-S3, EC2, 방화벽, 도커  (1) 2024.09.04
도메인이 만료 시 SSL 인증서는?  (3) 2024.09.03