전체 글
-
[Git] 브랜치 전략 - GitLab Flow저장소/git 2022. 2. 5. 18:50
Github flow는 너무 간단해서 배포, 릴리즈 등의 조금 복잡한 이슈를 보완하기 위해 나온 전략입니다. Gitlab flow의 브랜치는 아래와 같이 사용을 합니다. 브랜치 설명 feature 모든 기능 구현은 feature 브랜치에서 시작합니다. feature 브랜치는 master 브랜치에서 분기되고 머지됩니다. master gitlab flow의 master 브랜치 역할은 git flow의 develop 브랜치와 동일합니다. master 브랜치는 feature 브랜치에서 병합된 기능에 대해 test를 진행합니다. 전체적인 테스트가 진행되어 기능에 대한 보장이 되었다면 production 브랜치로 머지합니다. 만약 staging 단계를 원한다면 pre-production 브랜치로 머지를 진행합니다...
-
[Git] 여러 커밋 revert 하기저장소/git 2022. 2. 5. 17:59
1개의 브랜치에서 여러 커밋을 진행한 후, master에 머지를 했다가 해당 작업물에 문제가 생겼다면 머지 이전으로 되돌아가야 합니다. 하지만 이 때, 커밋 내용이 여러개이므로 squash를 진행하지 않았다면 당황하게 됩니다. 여기서는 여러 커밋 내용을 1번에 revert 하는 방법을 설명하겠습니다. merge가 완료된 상태에서 revert 하기 먼저 아래와 같은 형태로 브랜치 그래프가 있다고 가정합니다. * commit 9aed3a99358ccc5bbfd2dd99d29a82273115801a (HEAD -> master) |\ Merge: ccdd474 9796ce6 | | Author: brownbear | | Date: Sat Feb 5 16:13:16 2022 +0900 | | | | Merge ..
-
[Git] 브랜치 전략 - Github flow저장소/git 2022. 2. 2. 02:16
브랜치 전략이란? 브랜치 전략이란 여러 개발자가 1개의 저장소를 사용하는 환경에서 효과적으로 활용하기 위해 나온 개념입니다. 브랜치 생성, 병합 등의 git 구조를 활용해 보다 효율적으로 소스를 관리하고 협업을 원활하게 할 수 있도록 도와줍니다. 브랜치 전략은 Git flow, GitLab flow, Github flow 3개로 보통 사용하고 있습니다. Github flow github flow는 git flow가 github에서는 사용하기가 복잡하다고 하여 나온 전략으로 위 3개의 전략 중 가장 간단한 전략입니다. 위의 flow가 단순한 만큼 사용법도 단순합니다. master 브랜치의 역할만 확실히 지켜진다면 다른 브랜치에 대해 관여를 하지 않습니다. 즉, master 브랜치를 제외하고 feature,..
-
[Github Action] GCS(Google Cloud Storage)에 코드 배포하기저장소/git 2022. 2. 1. 21:31
GCS는 AWS의 S3와 동일한 개념으로 보면 됩니다. 여기서는 github action을 사용하여 특정 브랜치에 코드가 푸시됐을 때, GCS에 자동으로 배포하는 프로세스를 설명합니다. 배포를 위해선 gcloud / gutil CLI를 사용해야 합니다. github action에서는 우리가 직접 설치할 필요 없이 마켓 플레이스에 있는 버전을 사용하면 됩니다. Set up gcloud Cloud SDK environment - GitHub Marketplace 현재 bq 나 gutil 에서는 워크로드 아이덴티티 제휴를 사용하지 못하고 기존 방식인 json key file을 매핑해야 합니다. GitHub - google-github-actions/auth: GitHub Action for authentica..
-
[Github Action] GCP 워크로드 아이덴티티 제휴 (Workload Identity Federation) 연결하기저장소/git 2022. 2. 1. 16:36
GCP 워크로드 아이덴티티 제휴에 대해선 여기에서 설명하고 있습니다. Github Action에서 GCP 리소스를 접근하기 위해선 서비스계정의 key file 내용을 scret 에 등록하는 방법과 워크로드 아이덴티티 제휴를 사용하는 방법이 있습니다. 하지만 서비스 계정 방식은 deprecated될 거라고 하기 때문에 아래에서는 워크로드 아이덴티티 제휴 방식을 사용하여 연결하는 것을 설명하도록 하겠습니다. 아래는 github action marketplace의 문서입니다. Set up gcloud Cloud SDK environment - GitHub Marketplace 위 github 문서를 보면 service_account_key 방식은 deprecated 될 거라 나와 있습니다. 그리고 servic..
-
[GCP] 워크로드 아이덴티티 제휴 (Workload Identity Federation)AWS & GCP 2022. 2. 1. 03:43
GCP Workload Identity Federation 이란? 외부 어플리케이션에서 GCP의 리소스를 접근하기 위해선 보통 서비스 계정을 발급 받고 해당 계정에 권한(IAM)을 준 뒤, 물리적인 key file을 외부 어플리케이션에 전달해야 합니다. 여기서 문제는 전달한 key file은 만료 시간이 없거나 엄청 길다는 것입니다. 또한 해당 키가 어디에 저장되는지 보장할 수도 없고 누가 접근하는지도 모릅니다. 이를 막기 위해선 해당 키의 만료시간을 짧게 두는 방법밖에 없는데 이럴 때마다 물리적인 파일을 전달해야 하므로 현실성이 떨어지는 방안입니다. 이런한 문제는 워크로드 아이덴티티 제휴 (workload identity federation)를 사용하면 해결할 수 있습니다. 이후 ID 제휴 서비스라 함..
-
[Github Action] 특정 시간마다 브랜치 삭제 & 생성하기저장소/git 2022. 1. 29. 23:44
아래는 schedule을 사용하여 새벽 6시마다 브랜치를 삭제하고 생성하는 예제입니다. name: Delete Branch & Create Branch on: schedule: - cron: '0 21 * * *' jobs: delete-branch: runs-on: ubuntu-latest steps: - name: Delete branch uses: dawidd6/action-delete-branch@v3 with: github_token: ${{github.token}} branches: test-branch create-branch: needs: delete-branch runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v..
-
[Github Action] python test 및 다른 브랜치에 머지하기저장소/git 2022. 1. 29. 23:43
여기서 할 예제는 main 브랜치에 push가 됐을 경우, python 3.7, 3.8, 3.9, 3.10 버전별로 test code 검증을 하고 전부 성공할 경우, develop 브랜치에 main 브랜치의 변경 사항을 merge 하는 케이스입니다. name: Python build & Merge main to develop on: push: branches: [ main ] jobs: build: runs-on: ubuntu-latest strategy: fail-fast: false matrix: python-version: ["3.7", "3.8", "3.9", "3.10"] steps: - name: Checkout uses: actions/checkout@v2 with: ref: main - n..
-
Github Action이란저장소/git 2022. 1. 29. 19:35
github repository가 있다면 github action을 사용하여 workflow를 구성할 수 있습니다. workflow의 예시는 다음과 같습니다. test code 실행 배포 자동화 하고자 하는 스크립트 파이썬 버전 실행 여부 확인 가격은 아래와 같이 다양하지만 대규모 프로젝트가 아닌 이상 무료버전으로도 충분히 사용할 수 있어 보입니다. github action 이해하기 GitHub Actions는 빌드, 테스트 및 배포 파이프라인을 자동화할 수 있는 CI/CD 플랫폼입니다. repository에 대한 모든 pull request를 빌드 및 테스트하는 workflow를 생성하거나 병합된 pull request를 프로덕션에 배포할 수 있습니다. GitHub Actions는 단순한 DevOps를..
-
코호트 분석 (Cohort Analysis)이란?공부/데이터 2022. 1. 29. 18:04
데이터 분석에서 자주 사용되는 분석 기법 중에 코호트(동질 집단) 분석이 있습니다. 코호트란? 특정 기간 동안 공통된 특성이나 경험을 갖는 사용자 집단을 의미합니다. 코호트 분석? 위의 코호트 개념을 분석하는 것으로 특정 기간 동안 사용자 행동을 그룹으로 나눠 지표 별로 수치화한 뒤 분석하는 기법입니다. 예를 들어, 서울에 사는 30대 초반 남성이 네이버 검색을 통해 29CM 방문을 해서 A 상품을 구매했다고 가정하면 아래와 같은 코호트 그룹에 속할 수 있습니다. 인천 (지역) 코호트 25 ~ 34세 (연령) 코호트 남성 (성별) 코호트 네이버 트래픽 코호트 자연검색 트래픽 코호트 29CM 방문 페이지 코호트 A제품 (구매) 코호트 코호트 분석에서는 주로 시간의 흐름에 따른 사용자 유지와 이탈 패턴이나 ..