본문 바로가기

기록/새싹x코딩온

[새싹x코딩온] 웹 퍼블리싱 과정 8주차 - 2 | 정적배포, Branch

정적 배포

정적 배포란 사용자와 상호작용을 하지 않는 사이트를 말한다.

로그인 등 서버의 데이터를 받아오는 동작이 불가능하고 html을 있는 그대로 보여줄 수 있다.

Netlify 배포 방법

1. netlify 홈페이지에서 github로 회원가입한다.

https://app.netlify.com/

 

Netlify App

 

app.netlify.com

 

2. 깃허브에서 repository를 만들고 로컬에서 만든 폴더를 git bash로 git 저장소를 생성하고 연결한다.

git init  # git 저장소를 생성한다.
git remote add origin [github repo 주소]  # github와 연결한다.

 

3. 폴더에 index.html을 포함한 파일들을 만든다. 이때 index.html은 최상위에 있어야 한다.(페이지를 열면 가장 먼저 보이는 페이지) 그 후 add, commit, push 작업을 진행한다.

폴더 구조

 

4. netlify에서 Team overview - Import from Git - Github를 클릭한다.

 

5. 배포하고 싶은 repo를 선택하고 배포 설정을 defalut값으로 두고 배포를 완료한다.

 

domain을 바꾸고 싶다면 Domain settings에 들어가서 Options를 클릭하고 Edit site name을 클릭하면 된다.

 

GitHub 배포 방법

1. 깃허브에서 repository를 만들고 로컬에서 만든 폴더를 git bash로 git 저장소를 생성하고 연결한다.

 

2. 폴더에 index.html을 포함한 파일들을 만든다.

 

3. 깃허브에서 Settings - Pages로 들어가서 Branch를 main으로 바꾸고 save를 클릭한다. 3분 정도 기다리면 배포 링크가 뜬다.

 

Branch

branch독립적으로 어떤 작업을 진행하기 위한 개념이다. 필요에 의해 만들어지는 각각의 브랜치는 다른 브랜치의 영향을 받지 않기 때문에, 여러 작업을 동시에 진행할 수 있다.

 

ex) A라는 사람이 '로그인' 기능을 만들고 B라는 사람이 '버그 수정'을 할 때 A와 B는 최초 Branch에서 파생한 각각의 Branch를 만들어 작업을 진행하고 최초 Branch로 Merge를 통해 각자가 작업한 것을 합칠 수 있다.

Branch

git branch  # local branch 목록 확인
git branch "브랜치명"  # 현재 branch에서 새로운 branch 생성
git switch "전환 브랜치명"  # branch 이동
git switch -c "만들 브랜치명"  # branch 생성 & 이동
git branch -d "브랜치명"  # branch 삭제 (단, 삭제한 branch가 현재 branch에 합쳐져 있을 경우에만)

 

Merge

merge란 git branch를 다른 branch로 합치는 과정이다.

 

ex) A 브랜치에 B 브랜치를 합치고 싶은 경우

git switch A  # A 브랜치로 이동
git merge B  # A 브랜치에서 B 브랜치와 merge 진행

 

자동으로 merge가 될 때

case1. a브랜치와 b브랜치에서 서로 다른 파일을 수정했을 때

case2. 서로 같은 파일에서 다른 부분을 수정했을 때

 

수동으로 merge를 해야할 때

case3. 서로 같은 파일이고 같은 부분을 수정했을 때

Conflict(충돌)!!!

→ 해결 후 파일 저장 → add → commit → push

 

Branch의 종류

main (master) 브랜치

  • 제품으로 출시될 수 있는 브랜치이다.
  • 배포(Release) 이력을 관리하기 위해 사용한다.
  • 배포 가능한 상태만을 관리하는 브랜치이다.

 

develop 브랜치

  • 다음 출시 버전을 개발하는 브랜치이다.
  • 기능 개발을 위한 브랜치들을 병합하기 위해 사용한다.
  • 평소 개발을 진행하는 브랜치이다.

 

feature 브랜치

  • 기능 개발을 진행하는 브랜치이다.
  • 새로운 기능 개발 및 버그 수정을 할 때마다 develop에서 분기한다.
  • 공유할 필요가 없어 로컬에서 진행 후 develop에 merge해 공유한다.
  • 이름 : feature/기능이름

 

release 브랜치

  • 출시 버전을 준비하는 브랜치이다.
  • 배포를 위한 전용 브랜치이다.
  • 이름 : release-버전

 

hotfix 브랜치

  • 출시 버전에서 발생한 버그 수정 브랜치이다.
  • 배포한 버전에 긴급하게 수정해야 할 필요가 있는 경우에 사용한다.
  • Master에서 분기한다.
  • 이름 : hotfix-기능이름

 

.gitignore

.gitignore란 Git 버전 관리에서 제외할 파일 목록을 지정하는 파일이다.

Git관리에서 특정 파일을 제외하기 위해서는 git에 올리기 전에 .gitignore에 파일 목록을 미리 추가해야 한다.

  • *.txt - 확장자가 txt로 끝나는 파일을 모두 무시한다.
  • !test.txt - test.txt는 무시하지 않는다.
  • test/ - test 폴더 내부의 모든 파일을 무시한다.
  • /test - 현재 폴더 내에 존재하는 폴더 내부의 모든 파일을 무시한다.

 

commit message 규칙

  • feat : 새로운 기능 추가, 기존의 기능을 요구 사항에 맞추어 수정
  • fix : 기능에 대한 버그 수정
  • docs : 문서(주석) 수정
  • style : 코드 스타일, 포맷팅에 대한 수정 (css style이 아님)
  • refactor : 기능의 변화가 아닌 코드 리팩터링 ex)변수 이름 변경