협업 개발 플랫폼, Gitea: 초보자를 위한 완벽 가이드 mymaster, 2024년 06월 29일 개발 프로젝트, 혼자서 하기 벅찬가요? 여러 명이 머리를 맞대고 코드를 작성하고 관리하고 싶지만, 어떤 도구를 써야 할지 막막하신가요? 걱정 마세요! 이 글에서는 Gitea 라는 강력한 협업 개발 플랫폼을 소개하고, 초보자도 쉽게 이해할 수 있도록 설치부터 활용까지 단계별로 자세히 알려드립니다. 이 글을 읽고 나면 Gitea를 통해 여러분의 프로젝트를 한 단계 업그레이드할 수 있을 것입니다! 1. Gitea: 개발 협업의 핵심 도구 1.1. Git, 그리고 버전 관리 시스템의 중요성 Gitea에 대해 알아보기 전에 먼저 Git 에 대해 이해해야 합니다. Git은 소프트웨어 개발에서 없어서는 안 될 존재, 바로 버전 관리 시스템 입니다. 버전 관리 시스템은 파일의 변경 history를 추적하고 관리하는 시스템으로, 여러 사람이 동시에 작업하거나 과거 시점으로 돌아가야 할 때 매우 유용합니다. 마치 문서 작업을 할 때 ‘수정본’을 저장하는 것처럼, Git을 이용하면 코드의 변경 사항을 기록하고, 특정 시점의 코드로 되돌아갈 수도 있습니다. 1.2. Gitea: 나만의 GitHub를 만들자 Gitea는 Git 저장소 호스팅 서비스를 직접 구축할 수 있는 오픈 소스 소프트웨어입니다. 쉽게 말해, 여러분만의 GitHub를 만들 수 있다는 뜻입니다! GitHub는 Git 저장소 호스팅 서비스의 대표적인 예시로, 많은 개발자가 자신의 코드를 저장하고 공유하는 플랫폼입니다. Gitea를 사용하면 GitHub와 유사한 기능을 직접 서버에 설치하고 운영할 수 있습니다. Gitea를 사용하면 다음과 같은 이점이 있습니다. 자유로운 제어: Gitea는 오픈 소스이기 때문에 사용자 정의가 자유롭고, 서버 환경에 맞게 설정을 변경할 수 있습니다. 보안 강화: 코드와 데이터를 자신의 서버에 보관하기 때문에 보안이 강화됩니다. 비용 절감: GitHub와 같은 유료 서비스를 이용하지 않고도 Git 저장소 호스팅 서비스를 무료로 이용할 수 있습니다. 커뮤니티 기반 지원: 활발한 Gitea 커뮤니티에서 도움을 얻을 수 있습니다. 2. Gitea 설치: 생각보다 어렵지 않아요! Gitea는 다양한 운영체제(Windows, macOS, Linux)를 지원하며, Docker를 이용하면 더욱 쉽게 설치할 수 있습니다. 2.1. Docker를 이용한 Gitea 설치 (추천) Docker 는 애플리케이션을 컨테이너라는 독립된 환경에서 실행할 수 있도록 하는 플랫폼입니다. Docker를 이용하면 복잡한 설정 과정 없이 Gitea를 간편하게 설치하고 운영할 수 있습니다. 1단계: Docker 설치 먼저, Docker 공식 웹사이트 (https://www.docker.com/) 에서 자신의 운영체제에 맞는 Docker Desktop을 다운로드하여 설치합니다. 설치 과정은 웹사이트에서 제공하는 안내를 따르면 어렵지 않습니다. 2단계: Gitea Docker 이미지 다운로드 터미널 또는 명령 프롬프트를 열고 다음 명령어를 실행하여 Gitea Docker 이미지를 다운로드합니다. docker pull gitea/gitea:latest 3단계: Gitea 컨테이너 생성 및 실행 다음 명령어를 실행하여 Gitea 컨테이너를 생성하고 실행합니다. docker run -d --name=gitea -p 10080:3000 -p 222:22 -v /path/to/your/data:/data gitea/gitea:latest -d: 백그라운드에서 컨테이너를 실행합니다. --name=gitea: 컨테이너의 이름을 ‘gitea’로 지정합니다. -p 10080:3000: 호스트 시스템의 10080 포트를 컨테이너의 3000 포트에 연결합니다. Gitea에 접속할 때 사용할 포트입니다. -p 222:22: 호스트 시스템의 222 포트를 컨테이너의 22 포트에 연결합니다. SSH 접속에 사용할 포트입니다. -v /path/to/your/data:/data: 호스트 시스템의 /path/to/your/data 디렉토리를 컨테이너의 /data 디렉토리에 마운트합니다. Gitea의 데이터가 저장될 위치입니다. /path/to/your/data 부분은 실제로 Gitea 데이터를 저장하고 싶은 디렉토리 경로로 변경해야 합니다. 4단계: Gitea 접속 웹 브라우저를 열고 `http://localhost:10080` 에 접속합니다. Gitea 설치 화면이 나타나면 화면의 안내를 따라 초기 관리자 계정을 생성하고 Gitea 설정을 완료합니다. 2.2. 바이너리 파일을 이용한 Gitea 설치 Docker를 사용하지 않고 직접 바이너리 파일을 이용하여 Gitea를 설치할 수도 있습니다. Gitea 공식 웹사이트 (https://gitea.io/downloads) 에서 자신의 운영체제에 맞는 바이너리 파일을 다운로드합니다. 1단계: 바이너리 파일 다운로드 Gitea 공식 웹사이트의 다운로드 페이지에서 사용하는 운영체제에 맞는 바이너리 파일을 다운로드합니다. 예를 들어, Windows를 사용하는 경우 .zip 파일을, macOS 또는 Linux를 사용하는 경우 .tar.gz 파일을 다운로드합니다. 2단계: 압축 해제 다운로드한 파일의 압축을 해제합니다. 3단계: Gitea 실행 (Linux/macOS) 터미널을 열고 압축을 해제한 디렉토리로 이동한 후, 다음 명령어를 실행하여 Gitea를 실행합니다. ./gitea web 3단계: Gitea 실행 (Windows) 압축을 해제한 디렉토리에서 gitea.exe 파일을 실행합니다. 4단계: Gitea 접속 웹 브라우저를 열고 `http://localhost:3000` 에 접속합니다. Gitea 설치 화면이 나타나면 화면의 안내를 따라 초기 관리자 계정을 생성하고 Gitea 설정을 완료합니다. 주의 사항: 바이너리 파일을 이용하여 Gitea를 설치하는 경우, Gitea를 실행하기 전에 데이터베이스, Git 등 필요한 의존성 패키지를 먼저 설치해야 할 수 있습니다. 자세한 내용은 Gitea 공식 문서 (https://docs.gitea.io/en-us/install-from-binary/) 를 참고하세요. 3. Gitea 시작하기: 기본 용어와 기능 Gitea를 본격적으로 사용하기 전에 몇 가지 기본 용어와 기능을 익혀두면 좋습니다. 3.1. 저장소(Repository) 저장소(Repository)는 프로젝트의 모든 파일과 폴더, 그리고 변경 history가 저장되는 공간입니다. Gitea에서 새로운 프로젝트를 시작할 때는 가장 먼저 저장소를 생성합니다. 3.2. 브랜치(Branch) 브랜치(Branch)는 마치 나무의 가지처럼, 메인 코드 라인에서 분기되어 독립적으로 개발을 진행할 수 있는 공간입니다. 새로운 기능을 추가하거나 버그를 수정할 때는 메인 브랜치에서 직접 작업하는 것보다 별도의 브랜치를 생성하여 작업하는 것이 안전하고 효율적입니다. 3.3. 커밋(Commit) 커밋(Commit)은 코드의 변경 사항을 기록하는 단위입니다. 코드를 수정한 후에는 변경 내용을 설명하는 메시지와 함께 커밋을 생성하여 변경 history를 남깁니다. 3.4. 푸시(Push) / 풀(Pull) 푸시(Push)는 로컬 저장소의 변경 사항을 원격 저장소에 업로드하는 것을 의미합니다. 반대로, 풀(Pull)은 원격 저장소의 변경 사항을 로컬 저장소로 가져오는 것을 의미합니다. 3.5. 포크(Fork) 포크(Fork)는 다른 사용자의 저장소를 자신의 계정으로 복사하는 것을 의미합니다. 오픈소스 프로젝트에 기여하고 싶거나, 다른 사람의 코드를 참고하여 자신의 프로젝트를 진행하고 싶을 때 유용하게 사용됩니다. 4. Gitea 활용하기: 실전 예제로 배우는 협업 개발 이제 Gitea를 이용하여 실제로 협업 개발을 진행하는 방법을 단계별로 살펴보겠습니다. 4.1. 새로운 프로젝트 시작하기 1단계: 저장소 생성 Gitea에 로그인하고 화면 오른쪽 상단의 ‘+’ 버튼을 클릭하여 ‘새 저장소’를 선택합니다. 저장소 이름, 설명, 공시 여부 등을 설정하고 ‘저장소 생성’ 버튼을 클릭합니다. 2단계: 로컬 저장소 설정 터미널 또는 명령 프롬프트를 열고 프로젝트를 저장할 디렉토리로 이동한 후, 다음 명령어를 실행하여 로컬 저장소를 생성합니다. git init 3단계: 원격 저장소 연결 다음 명령어를 실행하여 로컬 저장소를 Gitea에 생성한 원격 저장소에 연결합니다. git remote add origin <원격 저장소 주소> <원격 저장소 주소>는 Gitea 저장소 페이지에서 확인할 수 있습니다. 4단계: 첫 번째 커밋 생성 프로젝트에 필요한 파일을 생성하고 다음 명령어를 실행하여 파일을 스테이징 영역에 추가합니다. git add . 다음 명령어를 실행하여 첫 번째 커밋을 생성합니다. git commit -m "Initial commit" 5단계: 원격 저장소에 푸시 다음 명령어를 실행하여 로컬 저장소의 변경 사항을 원격 저장소에 푸시합니다. git push origin master 4.2. 다른 개발자와 협업하기 1단계: 협업자 초대 저장소 페이지의 ‘설정’ 탭에서 ‘협업자 관리’ 메뉴를 선택하고 협업하려는 사용자의 Gitea 아이디를 입력하여 초대합니다. 2단계: 브랜치 생성 각 개발자는 자신의 작업을 위한 브랜치를 생성합니다. 터미널에서 다음 명령어를 실행하여 새로운 브랜치를 생성하고 해당 브랜치로 이동합니다. git checkout -b <브랜치 이름> 3단계: 코드 작성 및 커밋 각자 맡은 작업을 진행하고 코드를 작성한 후, 로컬 저장소에 커밋을 생성합니다. 4단계: 원격 저장소에 푸시 작업한 내용을 원격 저장소에 푸시합니다. 5단계: 병합 요청(Pull Request) 생성 작업이 완료되면 메인 브랜치에 병합 요청(Pull Request)을 생성합니다. 병합 요청은 다른 개발자에게 코드 리뷰를 요청하고, 메인 브랜치에 병합할지 여부를 결정하는 과정입니다. 6단계: 코드 리뷰 및 병합 다른 개발자는 병합 요청을 검토하고, 필요한 경우 수정을 요청합니다. 코드 리뷰가 완료되면 병합 요청을 승인하고 메인 브랜치에 병합합니다. 5. Gitea 고급 기능: 효율적인 협업을 위한 추가 기능 활용하기 Gitea는 기본적인 Git 저장소 기능 외에도 다양한 고급 기능을 제공하여 협업 개발을 더욱 효율적으로 진행할 수 있도록 지원합니다. 5.1. 이슈 트래킹(Issue Tracking) 이슈 트래킹 기능은 프로젝트를 진행하면서 발생하는 버그, 개선 사항, 새로운 기능 추가 요청 등을 체계적으로 관리할 수 있는 기능입니다. Gitea에서는 각 이슈에 담당자를 할당하고, 진행 상황을 업데이트하고, 댓글을 통해 의견을 주고받을 수 있습니다. 5.2. 위키(Wiki) 위키 기능은 프로젝트 관련 문서를 작성하고 공유할 수 있는 공간입니다. Gitea는 Markdown 문법을 지원하는 간편한 위키 기능을 제공하여 프로젝트 설명, 설치 방법, 사용 방법 등 다양한 문서를 작성하고 관리할 수 있습니다. 5.3. 통합(Integrations) Gitea는 다양한 외부 서비스와 연동하여 기능을 확장할 수 있습니다. 예를 들어, Slack, Discord, Telegram과 같은 메신저 앱과 연동하여 새로운 커밋, 이슈, 풀 리퀘스트 알림을 받을 수 있습니다. 6. Gitea, 왜 사용해야 할까요? Gitea는 단순한 Git 저장소 호스팅 서비스를 넘어, 개발 협업을 위한 모든 기능을 제공하는 강력한 플랫폼입니다. 오픈소스: Gitea는 오픈소스 소프트웨어이므로 자유롭게 사용하고 배포할 수 있습니다. 가볍고 빠른 속도: Gitea는 가벼운 시스템 자원만을 사용하므로 빠른 속도를 자랑합니다. 손쉬운 설치 및 관리: Docker를 이용하여 간편하게 설치하고 관리할 수 있습니다. 다양한 기능: 이슈 트래킹, 위키, 외부 서비스 연동 등 다양한 기능을 제공합니다. 활발한 커뮤니티: 활발한 커뮤니티의 지원을 받을 수 있습니다. 7. 마무리하며: Gitea로 협업 개발의 효율성을 높여보세요! 이 글에서는 Gitea의 개념부터 설치, 기본 사용법, 고급 기능까지 자세히 알아보았습니다. Gitea는 협업 개발을 위한 필수 도구이며, 이 글에서 소개한 내용을 바탕으로 Gitea를 직접 사용해 보면서 협업 개발의 효율성을 높여보세요! 목차 Toggle 1. Gitea: 개발 협업의 핵심 도구1.1. Git, 그리고 버전 관리 시스템의 중요성1.2. Gitea: 나만의 GitHub를 만들자2. Gitea 설치: 생각보다 어렵지 않아요!2.1. Docker를 이용한 Gitea 설치 (추천)2.2. 바이너리 파일을 이용한 Gitea 설치3. Gitea 시작하기: 기본 용어와 기능3.1. 저장소(Repository)3.2. 브랜치(Branch)3.3. 커밋(Commit)3.4. 푸시(Push) / 풀(Pull)3.5. 포크(Fork)4. Gitea 활용하기: 실전 예제로 배우는 협업 개발4.1. 새로운 프로젝트 시작하기4.2. 다른 개발자와 협업하기5. Gitea 고급 기능: 효율적인 협업을 위한 추가 기능 활용하기5.1. 이슈 트래킹(Issue Tracking)5.2. 위키(Wiki)5.3. 통합(Integrations)6. Gitea, 왜 사용해야 할까요?7. 마무리하며: Gitea로 협업 개발의 효율성을 높여보세요! post