Calculator_1

봄이아빠·2024년 10월 28일
2

Sparta Project

목록 보기
1/2

프로젝트 시작 전 To do check

계산기를 만드는 프로젝트

과제 자체 목표

  • Abstract Operator라는 프로토콜을 만들고 사칙연산 class에 적용하기
  • 나눗셈 나머지에 대한 연산 처리
  • 단일책임원칙을 따르는 class간의 관계 맺기
  • 트러블 슈팅 작성
  • 커밋 컨벤션 작성
  • 디렉토리 및 파일 분리

필요한 선행학습 목록

  • 추상화, 의존성역전원칙, 단일책임원칙 등 객체지향 프로그래밍에 대한 공부
  • 보편적으로 많이 사용되는 커밋 컨벤션에 대한 공부

코드 시작 전 할 일

  • 선행 학습 내용 공부 후 정리하기
  • UI요소와 레이아웃 설정하기
  • 앱 개발 기획 프로세스 공부하고 직접 기획해보기
  • 사칙연산 알고리즘에 대해 충분히 고민하고 테스트해보기
  • 깃의 주요 기능 바로 사용 가능하도록 자주 사용하는 명령어 정리하기

UI, 레이아웃


좋아하는 색인 초록색으로 그라데이션을 주고 레이아웃은 예전 아이폰 계산기를 따름.
각 버튼마다 아래쪽에 그림자가 있음.
레이블이 0일 때의 경우로 따로 버튼을 설정해야 함.
버튼 간 간격은 약 14px, 화면 가장자리와의 패딩은 30px.
버튼의 지름은 스크린 가로 길이에서 102px을 빼고 4로 나눈 값.

깃 명령어와 커밋 컨벤션

커밋 컨벤션

여러 개발자와 원활한 협력을 위해 여러 협약을 설정하게 된다.
커밋 컨벤션은 주로 다음과 같은 형태로 작성한다.

<type>: <description>
[optional body]
[optional footer]

type에는 다음과 같은 사항들을 적게 된다.

단어설명
feat새로운 기능 추가
fix수정
docs문서 수정
style코드 스타일 수정
refactor코드 리팩토링
perf성능 개선
test테스트 관련 수정
chore빌드 관련 또는 사소한 사항 수정
uiUI관련 수정
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 --allgit branch -r을 통해 확인 가능하고 다시 checkout이나 switch를 통해 브랜치를 변경하게 된다.
    또는 fzf라는 플러그인을 통해 원격 레포지토리 또는 로컬 레포지토리의 브랜치 목록을 확인하고 바로 변경할 수도 있다.
    git switch $(git branch | fzf)라는 명령어 조합이고 축약어를 설정하여 gswgitswitch같은 원하는 단어로 설정하여 더 빠르게 사용할 수도 있다.


    물론 변경 전에 stashcommit이 필요할 수 있다.
    이 둘의 차이는 영구적인 저장이냐 임시 저장이냐가 가장 크다.

  • 새로운 브랜치를 터미널에서 생성하고 싶은 경우엔 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를 사용하면 된다.

post-custom-banner

2개의 댓글

comment-user-thumbnail
2024년 10월 28일

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

1개의 답글