| 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 분 · 624 단어 · In-Jun

GitHub CLI로 Pull Request 관리하기

GitHub CLI(gh)는 GitHub에서 2020년 9월에 정식 출시한 공식 명령줄 인터페이스 도구로, 터미널에서 직접 GitHub의 핵심 기능들을 사용할 수 있게 해주며, 기존에 웹 브라우저를 통해 수행하던 Pull Request 생성, 이슈 관리, 저장소 관리 등의 작업을 명령어 한 줄로 처리할 수 있게 해준다. 특히 개발자들이 코드 작성과 버전 관리를 터미널에서 수행하는 경우가 많기 때문에, GitHub CLI를 활용하면 컨텍스트 스위칭 없이 일관된 워크플로우를 유지할 수 있고, 반복적인 작업을 자동화하여 생산성을 크게 향상시킬 수 있다. ...

2024년 7월 19일 · 12 분 · 2372 단어 · In-Jun

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

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

2024년 7월 13일 · 5 분 · 1014 단어 · 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 분 · 1109 단어 · In-Jun

병합된 Git 브랜치 삭제 방법

Git에서 브랜치(Branch)는 독립적인 작업 공간을 제공하는 핵심 개념으로, 개발자들이 메인 코드베이스에 영향을 주지 않고 새로운 기능을 개발하거나 버그를 수정할 수 있게 해주며, 이러한 브랜치 기반 워크플로우는 2005년 Linus Torvalds가 Git을 설계할 때부터 핵심 설계 철학 중 하나였고, Git의 브랜치가 다른 버전 관리 시스템(SVN, CVS 등)에 비해 매우 가볍고 빠르게 동작하도록 만들어진 이유이기도 하다. 그러나 브랜치를 생성하는 것만큼이나 중요한 것이 병합 후 브랜치를 적절히 삭제하는 것이며, 이 글에서는 브랜치 삭제의 필요성부터 구체적인 방법, 자동화, 그리고 복구 방법까지 포괄적으로 다룬다. ...

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

Git 브랜치 전략 Git Flow와 GitHub 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일 · 5 분 · 1038 단어 · In-Jun

Git 기본부터 고급 기능까지

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

2024년 7월 8일 · 6 분 · 1093 단어 · 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 분 · 776 단어 · In-Jun
[email protected]