GitHub Actions 정리 (2편) — 캐싱, Matrix, 재사용, 실전 패턴
·
블로그, 컴퓨터/Cheatsheets
1편에서 워크플로우 구조, 트리거, job과 step을 다뤘습니다. 2편에서는 빌드 속도를 높이는 캐싱, 여러 환경을 한 번에 테스트하는 Matrix, 워크플로우를 재사용하는 방법, 그리고 실전에서 자주 쓰는 패턴들을 정리합니다.캐싱 — actions/cache의존성 설치는 매번 하면 시간이 많이 걸립니다. 캐시를 써두면 key가 같으면 다운로드 없이 복원합니다.- name: 의존성 캐시 uses: actions/cache@v4 with: path: ~/.npm key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} restore-keys: | ${{ runner.os }}-node-key가 완전히 일치하면 캐..
GitHub Actions 정리 (1편) — 개념, 워크플로우 구조, 트리거
·
블로그, 컴퓨터/Cheatsheets
Git을 다루고, Docker로 컨테이너를 만들고, Shell Script로 배포 스크립트를 짜고 나면 자연스럽게 "이걸 push할 때마다 자동으로 실행할 수 없을까"라는 생각이 생깁니다. GitHub Actions가 그 역할을 합니다.코드를 push하면 테스트가 돌고, PR이 열리면 빌드가 되고, 태그를 달면 배포가 나가는 흐름을 yaml 파일 하나로 정의할 수 있습니다. 별도 CI 서버 없이 GitHub에 붙어서 바로 쓸 수 있다는 것도 장점입니다.1편에서는 Actions의 핵심 개념, 워크플로우 파일 구조, 트리거, job과 step을 정리합니다.핵심 개념Workflow — 자동화의 단위입니다. .github/workflows/ 디렉토리에 yaml 파일로 정의합니다. 파일 하나가 워크플로우 하나입니..
Git 명령어 정리 (2편) — 브랜치, 원격, 되돌리기, stash
·
블로그, 컴퓨터/Cheatsheets
1편에서 기본 워크플로우와 히스토리 확인을 다뤘습니다. 2편에서는 브랜치, 원격 저장소 연동, 그리고 git에서 가장 헷갈리는 영역인 "되돌리기" 계열 명령어들을 정리합니다.브랜치브랜치는 독립적인 작업 흐름을 만들기 위한 것입니다. 기능 개발이나 버그 수정을 메인 브랜치와 분리해서 진행하다가, 완료되면 합치는 패턴이 기본입니다.브랜치 확인 및 생성git branch # 로컬 브랜치 목록git branch -r # 원격 브랜치 목록git branch -a # 로컬 + 원격 전체git branch 브랜치명 # 브랜치 생성 (이동은 안 함)git branch -d 브랜치명 # 브랜치 삭제 (병합된 것만)git branch -D 브랜치명 ..
Git 명령어 정리 (1편) — 기본 개념, 설정, 커밋, 로그
·
블로그, 컴퓨터/Cheatsheets
터미널 명령어와 vim 설정을 정리했으니, 이번엔 git입니다. 코드를 짜다 보면 git은 거의 매일 씁니다. 근데 습관적으로 add, commit, push 세 개만 쓰다가, 뭔가 꼬이는 상황이 생기면 갑자기 손이 멈추는 경험을 한 번쯤은 해봤을 것 같습니다.이 글은 그 상황에서도 어느 정도 대응할 수 있도록, 기본 명령어부터 자주 쓰이는 패턴까지 묶어서 정리한 것입니다.1편에서는 git의 기본 개념, 초기 설정, 파일을 추적하고 커밋하는 워크플로우, 그리고 히스토리 확인을 다룹니다.핵심 개념 먼저git을 처음 쓸 때 헷갈리는 이유 중 하나가, 파일이 어느 상태에 있는지 머릿속에 잘 안 그려지기 때문입니다. git에는 파일이 거치는 세 가지 영역이 있습니다.Working Directory → Sta..
Git 기초편 8편 — 실수 되돌리기 총정리
·
블로그, 컴퓨터/DevOps
"Git을 공부하면서 쓰는 시리즈" 기초편 마지막 편입니다.1편: git init · 2편: 브랜치 · 3편: git log 트리 · 4편: merge와 충돌 · 5편: 원격 저장소 · 6편: .gitignore · 7편: stash시작하면서Git을 쓰면서 가장 많이 찾아보게 되는 상황이 "되돌리기"입니다. 커밋 메시지를 잘못 썼거나, 파일을 엉뚱하게 수정했거나, 아예 커밋 자체를 없애고 싶을 때가 있습니다.되돌리는 방법이 세 가지 있습니다. amend, revert, reset인데, 이름만 봐서는 뭐가 다른지 잘 모릅니다. 어떤 상황에 어떤 걸 써야 하는지가 핵심입니다.세 가지 한 줄 비교 amendrevertreset하는 일직전 커밋 수정되돌리는 커밋을 새로 만듦커밋 자체를 지워버림히스토리변경됨유지됨..
Git 기초편 7편 — stash, 작업 잠깐 숨기기
·
블로그, 컴퓨터/DevOps
"Git을 공부하면서 쓰는 시리즈" 7편입니다.1편: git init · 2편: 브랜치 · 3편: git log 트리 · 4편: merge와 충돌 · 5편: 원격 저장소 · 6편: .gitignore시작하면서이런 상황이 있습니다.feature/login 브랜치에서 작업을 한창 하고 있는데, 갑자기 다른 브랜치의 버그를 급하게 고쳐달라는 요청이 들어옵니다. 지금 작업은 아직 절반밖에 안 됐고, 커밋하기엔 이릅니다. 그렇다고 작업 내용을 버리고 이동할 수도 없습니다.이럴 때 git stash가 있습니다. 작업 중인 변경사항을 임시로 저장해두고, 나중에 꺼내서 이어서 쓸 수 있습니다.git stash — 변경사항 임시 저장현재 작업 디렉토리에 수정 중인 파일이 있다고 가정합니다.git statusOn bran..
Git 기초편 6편 — .gitignore 제대로 쓰기
·
블로그, 컴퓨터/DevOps
"Git을 공부하면서 쓰는 시리즈" 6편입니다.시작하면서GitHub에 코드를 올리다가 실수로 올리면 안 되는 파일을 같이 올린 경험이 있습니다. 데이터베이스 비밀번호가 담긴 설정 파일이나, 수백 MB짜리 라이브러리 폴더 같은 것들이요.올리고 나서야 알아차리는 경우가 많습니다. 커밋 기록에도 남고, 이미 공개된 저장소라면 누군가 봤을 수도 있습니다. 이걸 사전에 막는 게 .gitignore입니다..gitignore가 하는 일.gitignore는 프로젝트 루트에 두는 텍스트 파일입니다. 여기에 적힌 파일이나 폴더는 Git이 아예 없는 것처럼 무시합니다. git status에도 안 뜨고, git add .를 해도 포함되지 않습니다.만들어봅니다.touch .gitignore기본 패턴파일 이름 그대로 적기.env..
Git 기초편 4편 — merge와 충돌 해결
·
블로그, 컴퓨터/DevOps
"Git을 공부하면서 쓰는 시리즈" 4편입니다.1편: git init · 2편: 브랜치 · 3편: git log 트리시작하면서3편까지 따라왔다면 지금 이런 상태입니다.* c1d2e3f (feature/login) 로그인 페이지 초안 추가* a9b3c12 (HEAD -> main) README에 프로젝트 설명 추가* 3f2a1b4 첫 번째 커밋: README 추가feature/login에서 작업을 마쳤습니다. 이제 이걸 main에 합쳐야 합니다. 그게 merge입니다.그런데 merge를 찾아보다 보면 "fast-forward", "merge commit", "conflict" 같은 단어가 나옵니다. 처음엔 다 뭔가 싶었습니다. 이번 편에서 하나씩 짚어봅니다.git merge 기본 사용법main 브랜치로 이..