시작하기

주요 구성 내용

Odoo.sh를 사용할 때는 관련된 주요 구성 요소를 이해하는 것이 중요합니다:

이들 구성 요소는 모두 상호 연결되어 있지만, 각각 Odoo 애플리케이션의 개발 및 배포에서 고유한 역할을 수행합니다. 함께 작동하여 코드 개발부터 실제 비즈니스 운영에 이르기까지 원활한 파이프라인을 구축합니다.

GitHub 저장소

GitHub 저장소는 특정 프로젝트의 모든 파일과 폴더가 들어 있는 컴퓨터의 폴더와 유사합니다. 다른 점은 GitHub에 저장되어 서로 다른 컴퓨터에서 여러 사람이 액세스하고 편집할 수 있다는 것입니다.

즉, GitHub 저장소는 프로젝트 파일을 저장하고 다른 사람과 공유하여 협업하고, 변경 사항을 적용하며, 프로젝트에 기여할 수 있는 공간입니다. 또한 시간 경과에 따른 프로젝트의 모든 변경 사항을 추적하므로 필요한 경우 이전 버전으로 쉽게 되돌릴 수 있습니다.

또한 GitHub는 문제 추적(이슈 트래킹), 풀 리퀘스트(pull request), 코드 검토와 같이 프로젝트 관리에 유용한 다양한 기능을 제공합니다. 소프트웨어 프로젝트 관리 및 협업을 위한 강력한 도구이며 전 세계 개발자들이 널리 사용하고 있습니다. Odoo 애플리케이션의 소스 코드가 저장되는 버전 관리 공간으로, 모든 변경 사항을 추적하고 협업을 지원하며 공개 또는 비공개로 설정할 수 있습니다.

GitHub 저장소 예시

Odoo.sh 프로젝트

Odoo.sh 프로젝트는 GitHub와 연동되어 Odoo 애플리케이션의 개발, 테스트 및 배포를 간소화하는 *서비스형 플랫폼*(PaaS)입니다. 자동 백업, 스테이징 환경, 지속적 통합(CI) 파이프라인 등의 도구를 포함합니다.

Odoo.sh 프로젝트 예시

Odoo 데이터베이스

Odoo 데이터베이스는 비즈니스 레코드, 환경 설정, 사용자 데이터 등 Odoo 애플리케이션에서 사용하고 생성하는 모든 운영 데이터를 저장합니다.

Odoo 데이터베이스 예시

사용자 유형

Odoo.sh에는 프로젝트 수명 주기에서 각각 특정 역할을 가진 다양한 유형의 사용자가 있습니다:

  • GitHub 사용자:Odoo.sh 프로젝트와 연결된 GitHub 저장소에 대한 액세스 권한이 있는 개발자입니다. 저장소에 액세스할 수 있다고 해서 Odoo.sh 프로젝트의 공동 작업자 권한이 자동으로 부여되지는 않습니다.

  • Odoo.sh 공동 작업자:Odoo.sh 프로젝트를 관리하는 사용자입니다. 각 공동 작업자는 GitHub 사용자와 연결되어 있어야 합니다. 단, 공동 작업자와 데이터베이스 사용자는 서로 다릅니다.

  • 데이터베이스 사용자:배포된 Odoo 데이터베이스의 최종 사용자입니다. 실제 운영 시스템을 사용하지만 개발이나 프로젝트 관리에는 관여하지 않습니다.

기술적 개념

Odoo.sh를 사용할 때는 몇 가지 기술적 개념을 이해하는 것도 중요합니다:

저장소 포크하기

GitHub에서 저장소를 포크한다는 것은 다른 사람의 저장소 사본을 자신의 계정에 생성하는 것을 의미합니다. 이를 통해 원본 버전에 영향을 주지 않고 저장소를 변경할 수 있습니다.

저장소를 포크하면 원본 저장소의 모든 파일과 폴더가 그대로 포함된 자신만의 저장소 사본이 생성됩니다. 그런 다음 다른 저장소와 마찬가지로 사본 저장소의 파일을 변경하고 커밋할 수 있습니다.

저장소를 포크할 때의 장점은 원본 버전에 영향을 주지 않고 코드를 변경할 수 있다는 점이며, 이는 새로운 기능을 테스트하거나 다른 사람의 코드에서 버그를 수정할 때 유용합니다. 또한 포크한 저장소를 프로젝트의 시작점으로 삼아 필요에 따라 변경할 수도 있습니다.

포크한 저장소에서 변경을 완료한 후 원본 저장소 소유자에게 풀 리퀘스트를 제출하여 변경 사항을 해당 저장소에 다시 병합해 달라고 요청할 수 있습니다. 이는 오픈 소스 프로젝트에서 다른 개발자의 기여를 받는 일반적인 방식이며, 커뮤니티에 참여하고 코딩 기술을 향상할 수 있는 좋은 방법입니다.

커밋 푸시하기

로컬 컴퓨터의 Git 저장소에서 파일 하나 또는 여러 개를 변경하면 해당 변경 사항은 커밋되지 않은 상태로 간주됩니다. 즉, Git은 변경이 이루어졌다는 사실은 알고 있지만, 아직 공식적으로 저장되거나 기록되지는 않은 상태입니다.

해당 변경 사항을 저장하고 Git 저장소에 추가하려면 *커밋*을 생성해야 합니다. 커밋은 특정 시점에 파일에 적용한 변경 사항의 스냅샷입니다. 커밋에는 어떤 변경이 이루어졌는지, 누가 언제 변경했는지가 기록됩니다.

커밋을 생성한 후에는 GitHub 등에서 호스팅되는 원격 저장소로 이를 *푸시*할 수 있습니다. 커밋 푸시란 로컬 저장소에서 커밋한 변경 사항을 원격 저장소로 전송하여 다른 사람이 확인하고 사용할 수 있도록 하는 것을 의미합니다.

요약하자면, 커밋 푸시란 로컬 컴퓨터의 Git 저장소 파일에 적용한 변경 사항을 원격 저장소로 전송하는 것을 의미합니다. 이는 다른 사람들과 변경 사항을 공유하고 프로젝트에서 협업하는 방법입니다.

브랜치 병합하기

한 브랜치를 다른 브랜치로 병합하는 것은 한 브랜치에서 변경한 내용을 다른 브랜치에 합치는 과정입니다. 예를 들어, 프로젝트의 새로운 기능을 개발하기 위해 feature-branch`라는 새 브랜치를 생성했다고 가정해 보겠습니다. 이 브랜치에서 변경 작업을 마친 후에는 변경 사항을 메인 브랜치(보통 `master 또는 main 브랜치라고 함)에 다시 병합할 수 있습니다.

브랜치를 병합할 때 Git은 두 브랜치의 변경 사항을 검토하여 합치려고 시도합니다. 두 브랜치에서 변경된 내용 간에 충돌이 있는 경우, Git은 병합을 완료하기 전에 (코드 측면에서) 이를 해결하도록 요청합니다.