| En

Pull Request 리뷰 모범 사례

PR(Pull Request) 리뷰는 팀의 코드 품질을 향상시키고 개발자 간 지식을 공유하며 잠재적 버그를 사전에 방지하는 협업의 핵심 활동으로, 2008년 GitHub가 Pull Request 기능을 도입한 이후 오픈소스 프로젝트와 기업 개발 환경에서 표준적인 코드 통합 방식으로 자리잡았다. PR 리뷰는 단순히 코드의 오류를 찾는 과정을 넘어 팀원들이 서로의 코드를 이해하고, 일관된 코드베이스를 유지하며, 집단 지성을 통해 더 나은 설계 결정을 내릴 수 있게 해주는 소프트웨어 개발의 필수적인 품질 관리 활동이다. 코드 리뷰의 역사와 PR 리뷰의 발전 코드 리뷰란? ...

2024년 7월 31일 · 8 분 · 1546 단어 · In-Jun

Git Stash로 변경사항 임시 저장하기

Git Stash의 개념과 역사 Git stash는 2007년 Git 1.5.3 버전에서 처음 도입된 기능으로, Working Directory의 변경 사항(수정된 tracked 파일과 staged 상태의 변경)을 커밋하지 않고 스택(stack) 구조의 임시 저장소에 저장했다가 나중에 다시 적용할 수 있는 메커니즘이며, 작업 중인 브랜치에서 급하게 다른 브랜치로 전환해야 하거나 원격 저장소의 변경 사항을 가져와야 할 때 현재 진행 중인 작업을 커밋하기에는 애매한 상태일 경우 유용하게 사용된다. 커밋하지 않은 변경 사항이 있는 상태에서 브랜치를 전환하려고 하면 Git은 다음과 같은 에러 메시지를 표시하며 전환을 거부하는데, 이는 현재 Working Directory의 변경 사항이 체크아웃하려는 브랜치의 파일과 충돌할 수 있기 때문이다. ...

2024년 7월 26일 · 4 분 · 768 단어 · In-Jun

Git 브랜치 네이밍 규칙

브랜치 네이밍의 역사와 중요성 Git 브랜치 네이밍 규칙은 2010년 Vincent Driessen이 “A successful Git branching model"에서 Git Flow를 소개하면서 체계화되기 시작했다. 이후 GitHub Flow(2011년), GitLab Flow(2014년) 같은 다양한 브랜칭 전략이 등장하면서 feature/, bugfix/, hotfix/, release/ 같은 접두사 기반 규칙이 업계 표준으로 자리 잡았다. 일관된 브랜치 네이밍은 프로젝트 가독성을 높이고, CI/CD 파이프라인 자동화를 쉽게 하며, 코드 리뷰와 작업 추적의 효율을 높인다. 기본 네이밍 규칙 브랜치 이름은 소문자로만 작성하고, 단어 사이는 하이픈(-)으로 구분하는 것이 좋다. 국제적인 협업 환경을 고려해 영문으로 작성하고, 5-7단어 이내에서 목적이 드러나도록 간결하게 짓는 편이 관리하기 쉽다. 밑줄(_), 마침표(.), 특수문자(!, @, #)는 Git의 예약 의미나 운영체제별 호환성 문제를 일으킬 수 있으므로 피하는 것이 안전하다. ...

2024년 7월 23일 · 3 분 · 565 단어 · In-Jun

GitHub CLI로 Pull Request 관리하기

GitHub CLI(gh)는 GitHub에서 2020년 9월에 정식 출시한 공식 명령줄 인터페이스 도구다. 터미널에서 Pull Request 생성, 이슈 관리, 저장소 관리 같은 핵심 작업을 처리할 수 있어, 웹 브라우저와 터미널을 오가던 흐름을 한곳으로 모아준다. 개발자들이 코드 작성과 버전 관리를 주로 터미널에서 수행한다는 점을 고려하면, GitHub CLI는 컨텍스트 스위칭을 줄이고 반복 작업을 자동화하는 데 특히 유용하다. GitHub CLI 소개 GitHub CLI란? GitHub의 공식 명령줄 도구로, 터미널에서 Pull Request, Issue, Repository, GitHub Actions 등 GitHub의 핵심 기능을 사용할 수 있게 해주며, REST API와 GraphQL API를 래핑하여 직관적인 명령어 인터페이스를 제공한다. ...

2024년 7월 19일 · 11 분 · 2337 단어 · In-Jun

Git 커밋 관리와 클린 히스토리

커밋 관리의 역사와 중요성 Git의 커밋 관리 기능은 2005년 Linus Torvalds가 Git을 개발할 때부터 핵심 설계 원칙 가운데 하나였다. 특히 rebase는 초기 버전부터 제공됐고, 2007년 Git 1.5에서 interactive rebase가 도입되면서 커밋 히스토리를 세밀하게 편집할 수 있는 강력한 도구가 되었다. 커밋 히스토리 관리가 중요한 이유는 Git 로그가 프로젝트의 변경 이력을 담은 문서 역할을 하기 때문이다. 잘 정리된 히스토리는 git log만으로도 프로젝트의 발전 과정을 파악하게 해주고, git bisect로 버그를 추적할 때 각 커밋의 의도를 더 분명하게 이해하게 해준다. 새로운 팀원이 합류했을 때도 코드베이스의 변화를 빠르게 따라갈 수 있다. ...

2024년 7월 13일 · 5 분 · 995 단어 · In-Jun

효과적인 커밋 메시지 작성 규칙

커밋 메시지의 역사와 중요성 커밋 메시지 작성에 대한 체계적인 가이드라인은 2008년 Tim Pope가 “A Note About Git Commit Messages"라는 블로그 포스트에서 50/72 규칙(제목 50자, 본문 72자 줄바꿈)을 제안하면서 널리 알려지기 시작했다. 이후 2014년에는 Angular 팀이 AngularJS 프로젝트를 위해 개발한 커밋 메시지 컨벤션이 업계의 주목을 받았다. 2017년에는 이를 바탕으로 Conventional Commits 1.0.0이 발표되었고, 현재는 오픈소스 프로젝트에서 가장 널리 사용되는 표준으로 자리 잡았다. 커밋 메시지가 중요한 이유는 Git 히스토리가 프로젝트의 변경 이력을 담은 문서 역할을 하기 때문이다. 잘 작성된 커밋 메시지는 git log만으로도 프로젝트의 발전 과정을 파악할 수 있게 해준다. 또한 git bisect로 버그가 도입된 커밋을 찾을 때 어떤 변경이 문제인지 빠르게 이해할 수 있고, 코드 리뷰어가 변경 의도를 파악하는 데 드는 시간도 크게 줄여준다. ...

2024년 7월 12일 · 6 분 · 1118 단어 · In-Jun

병합된 Git 브랜치 삭제 방법

Git에서 브랜치(Branch)는 독립적인 작업 공간을 제공하는 핵심 개념이다. 개발자는 메인 코드베이스에 영향을 주지 않고 새로운 기능을 개발하거나 버그를 수정할 수 있다. 이런 브랜치 기반 워크플로우는 2005년 Linus Torvalds가 Git을 설계할 때부터 핵심 철학 중 하나였으며, Git의 브랜치가 다른 버전 관리 시스템(SVN, CVS 등)보다 가볍고 빠르게 동작하도록 만든 배경이기도 하다. 브랜치를 만드는 것만큼 중요한 일은 병합 후 불필요한 브랜치를 적절히 삭제하는 것이다. 이 글에서는 브랜치 삭제가 왜 필요한지, 어떻게 안전하게 수행하는지, 자동화와 복구는 어떻게 하는지까지 살펴본다. ...

2024년 7월 11일 · 15 분 · 3083 단어 · In-Jun

Git 브랜치 전략, Git Flow와 GitHub Flow 그리고 GitLab Flow

브랜치 전략의 역사와 배경 Git 브랜치 전략이 체계화되기 시작한 계기는 2010년 1월 5일, 네덜란드 개발자 Vincent Driessen이 발표한 “A successful Git branching model"이다. 이 글에서 소개된 Git Flow는 당시 체계적인 릴리스 관리가 필요했던 소프트웨어 개발 환경에서 큰 반향을 일으켰다. 이후 2011년 GitHub의 Scott Chacon이 더 단순한 모델인 GitHub Flow를 제안했고, 2014년에는 GitLab이 두 전략의 장점을 결합한 GitLab Flow를 발표했다. 오늘날 이 세 가지 전략은 프로젝트 특성에 따라 널리 사용되고 있다. ...

2024년 7월 10일 · 6 분 · 1083 단어 · In-Jun

Git 기본부터 고급 기능까지

Git의 역사와 탄생 배경 Git은 2005년 리눅스 커널의 창시자인 Linus Torvalds가 개발한 분산 버전 관리 시스템(Distributed Version Control System, DVCS)이다. 당시 리눅스 커널 개발에 사용하던 상용 DVCS인 BitKeeper의 무료 사용권이 철회되면서 대안이 필요해졌고, Torvalds는 기존 버전 관리 시스템의 단점인 느린 속도와 비효율적인 브랜칭을 개선한 새 시스템을 단 2주 만에 만들었다. 이렇게 탄생한 Git의 첫 버전은 2005년 4월 7일 공개되었으며, 대규모 프로젝트에서도 빠르게 동작하고 완전한 분산 환경을 지원하도록 설계되었다. Git이라는 이름은 영국 속어로 “불쾌한 사람"을 뜻한다. Torvalds는 Linux처럼 Git도 자신의 성격을 빗대어 붙인 이름이라고 농담처럼 설명했으며, 공식 매뉴얼에서는 “Global Information Tracker(전역 정보 추적기)“의 약자라고도 소개한다. ...

2024년 7월 8일 · 6 분 · 1098 단어 · In-Jun

Git 커밋 타임스탬프 조정

Git 타임스탬프의 구조 Git의 타임스탬프 시스템은 2005년 Linus Torvalds가 Git을 만들 때부터 두 가지 시간을 별도로 기록하도록 구성되었다. 이는 Linux 커널 개발의 특성상 패치를 작성한 시간과 실제로 커밋된 시간이 다를 수 있기 때문이다. AuthorDate와 CommitDate Git 커밋은 두 가지 타임스탬프를 가진다. AuthorDate는 코드를 처음 작성한 시간, 즉 원저자가 변경을 만든 시간을 나타내며, git commit --date 옵션이나 GIT_AUTHOR_DATE 환경변수로 설정된다. CommitDate는 커밋이 실제로 저장소에 기록된 시간을 나타내며, rebase, cherry-pick, amend 등으로 커밋이 재생성될 때마다 갱신되고, GIT_COMMITTER_DATE 환경변수로 설정할 수 있다. ...

2024년 5월 25일 · 4 분 · 790 단어 · In-Jun
[email protected]