계산기를 만드는 프로젝트

좋아하는 색인 초록색으로 그라데이션을 주고 레이아웃은 예전 아이폰 계산기를 따름.
각 버튼마다 아래쪽에 그림자가 있음.
레이블이 0일 때의 경우로 따로 버튼을 설정해야 함.
버튼 간 간격은 약 14px, 화면 가장자리와의 패딩은 30px.
버튼의 지름은 스크린 가로 길이에서 102px을 빼고 4로 나눈 값.
여러 개발자와 원활한 협력을 위해 여러 협약을 설정하게 된다.
커밋 컨벤션은 주로 다음과 같은 형태로 작성한다.
<type>: <description>
[optional body]
[optional footer]
type에는 다음과 같은 사항들을 적게 된다.
| 단어 | 설명 |
|---|---|
| feat | 새로운 기능 추가 |
| fix | 수정 |
| docs | 문서 수정 |
| style | 코드 스타일 수정 |
| refactor | 코드 리팩토링 |
| perf | 성능 개선 |
| test | 테스트 관련 수정 |
| chore | 빌드 관련 또는 사소한 사항 수정 |
| ui | UI관련 수정 |
| network | 네트워크 관련 수정 |
| remove | 코드 삭제 |
여기에 이어 description이나 body 부분에 들어가는 글자의 수도 제한하기도 하며 body 외에도 이슈 트래커나 오류코드 등이 존재하면 추가로 꼬리말(footer)을 작성하기도 한다.
무조건 따라야 하는 정해진 규칙이 존재한다기보단 같이 일하는 팀원끼리만의 컨벤션이기 때문에 같이 일하게 될 조직, 팀원에 따라 바뀔 수 있다.
추가적으로 가독성을 높이기 위해 이모지를 곁들일 수 있다.
이는 깃모지라고 부르며 각 이모지에 대한 type에 대해서는 깃모지를 많이들 참고하는 것 같다.
터미널에서 깃모지를 사용하기 위해 추가적인 플러그인을 받을 수 있다.
brew install node명령어로 node를 받은 뒤 npm install -g gitmoji-cli 명령어로 설치하면 된다.
이후 git commit 대신 gitmoji -c를 사용하여 커밋하면 된다.
내가 터미널에서 주로 사용하는 깃 관련 기능은 다음과 같다.
각 기능은 여러 플러그인과 함께 다음과 같은 명령어를 사용 중이다.
먼저 작업물이 있는 폴더로 터미널 디렉토리를 설정해준다.
이후 git init을 통해 
위와 같이 깃 레포지토리로 초기화 해줄 수 있다.
이제 로컬 레포지토리와 깃허브의 원격 레포지토리의 연결이 필요하며 git remote add origin url을 통해 가능하다.
gh repo view --web
gh 플러그인을 받고 위 명령어를 사용하면 바로 현재 디렉토리와 연결된 깃허브 페이지가 열리게 된다.
j <directory>
autojump라는 플러그인을 통해 사용 중이며 자주 사용한 디렉토리의 키워드를 기억해두었다가 해당 키워드만으로 원하는 디렉토리로 이동하게 해준다.

브랜치 목록은 기본적으로 git fetch --all과 git branch -r을 통해 확인 가능하고 다시 checkout이나 switch를 통해 브랜치를 변경하게 된다.
또는 fzf라는 플러그인을 통해 원격 레포지토리 또는 로컬 레포지토리의 브랜치 목록을 확인하고 바로 변경할 수도 있다.
git switch $(git branch | fzf)라는 명령어 조합이고 축약어를 설정하여 gsw나 gitswitch같은 원하는 단어로 설정하여 더 빠르게 사용할 수도 있다.


물론 변경 전에 stash나 commit이 필요할 수 있다.
이 둘의 차이는 영구적인 저장이냐 임시 저장이냐가 가장 크다.
새로운 브랜치를 터미널에서 생성하고 싶은 경우엔 git checkout -b <브랜치 이름>을 사용하면 된다.
브랜치에서 작업 후 푸시하기 위해 스테이지와 커밋이 필요하다.
git add <파일 이름>을 통해 스테이지에 추가할 수 있으며 나는 주로 git add .을 통해 변경된 파일을 모두 추가한다.
이후 커밋을 생성하게 되는데 나는 앞서 언급한 깃모지를 사용하기 위해 gitmoji -c라는 명령어를 통해 커밋한다. 커밋까지 완료되었다면 git push <브랜치 이름>을 통해 푸시하게 되며 현재 브랜치를 푸시할 경우 브랜치 이름은 생략할 수 있다.
명령어에 대한 별명을 지어서 쉽게 사용하기 위해 nano ~/.zshrc로 설정 파일을 열고 alias gimoji='gitmoji -c'와 같이 작성하면 쉽게 명령어를 사용할 수 있다.

깃허브 레포지토리를 생성할 때 로컬에서 만든 프로젝트와 별개로 readMe 파일 등과 함께 초기화 해둘 경우와 업스트림 설정 등에서 충돌이 발생할 수 있다.
fatal: The current branch main has no upstream branch.
To push the current branch and set the remote as upstream, use
git push --set-upstream origin main
To have this happen automatically for branches without a tracking upstream, see 'push.autoSetupRemote' in 'git help config'.
위 오류는 업스트림 브랜치가 설정이 안 되어 있다는 것인데 로컬 브랜치와 연결된 원격브랜치를 의미한다. 깃허브에 내 로컬 브랜치와 연결된 브랜치가 설정되어있지 않다면 푸시할 수 없기 때문에 오류가 발생한다. 또는 푸시할 때마다 원격 브랜치의 이름을 명시해야 한다. 업스트림 브랜치는 git push --set-upstream origin master또는 git push -u origin master를 사용하면 된다.

오
~~~ 알려주셨던 깃모지!! 그나저나 계산기 너무 이쁘네여