본문 바로가기

회고록(TIL&WIL)

TIL 2022.05.13 git 정리, 머신러닝

git 총 정리

  • 버전 관리: 프로젝트 상태가 변경되는 정보를 알고 있다는 것입니다. Git 은 가장 널리 쓰이는 버전관리 도구 중에 하나로 commit 을 사용해서 버전이 달라지는 것을 관리합니다.
  • git 초기화(git initialize) : 컴퓨터에 있는 프로젝트를 Git 이 관리하는 프로젝트로 만들기
  • commit : 현재 프로젝트의 상태를 저장하는 것을 이라고 합니다.
    • 누가(author), 언제 commit 했는지의 정보와 프로젝트 변경 내용
    • 작업내역이 어떤 것인지 알아볼 수 있게 적는 메시지를 'commit 메시지'라고 합니다.
  • add (혹은 staging, 스테이징) : commit 에 반영할지 안할지는 파일 단위로 선택할 수 있습니다. commit 에 반영할 파일을 선택하는 것
  • repo : 내 컴퓨터에 저장되어있는 Git 저장소를 로컬 repo(local repository) 라고 합니다. Github 처럼 다른 곳에서 접속할 수 있는 공간에 저장되어있는 것을 원격 repo(remote repository) 라고 합니다.
  • push : 로컬 repo branch의 commit 들을 원격 repo branch 에 반영하기(push)!
  • pull : 원격 repo branch의 commit 들을 로컬 repo branch로 반영하기(pull)! 땡겨오기.
  • clone : 원격 repo 를 내 컴퓨터에 가져와서 초기 repo 세팅하는 것을 clone(복제하기)!
  • 협업할 때는 아래의 단계를 따릅니다.
    • 1. 누가 이 작업 할 것인지 정한다. - Issue(내가 할 작업, 기능 추가, 버그 리포트)
    • 2. 각자 맡은 것을 작업한다. - Branch(특정 commit 에서 갈라져나와 기능별로 이름을 지어 브랜치에서 작업)
    • 3. 작업한 내용을 리뷰하여 수정 및 검토. - PR(Pull Request 브랜치 단위로 하며 PR 양식에 따라 작성)
    • 4. 각자 작업을 프로젝트에 합친다. - merge(PR을 끝마친 후 git hub에서 merge 진행 가능)
  • checkout - 작업할 브랜치로 바꾸는 것 체크아웃된 브랜치에만 commit 이 반영됩니다.
  • amend - 이전 커밋 내용 수정(강제 푸시 주의)
  • revert - 커밋 되돌리기(반드시! 나만 작업하는 특정 브랜치 하나에만 적용할 것)
  • reset - 커밋 리셋(하드 리셋 초초주의)
  • stash - 현재 작업 내용 커밋하기엔 애매하고 잠깐 중단 해놓고 다른 브랜치에 가서 작업해야 할 경우 사용
    (스테시에도 명시적으로 알 수 있게 작성해야하며 너무 많이 빼놓으면 헷갈려서 작업한 내용을 못찾을 수 도 있다)

  • Branch 
    • 브랜치명은 규칙을 가지고 지으면 프로젝트 관리가 쉬워집니다.(이슈번호달기, 작업내용 확실히)
    • 작업이 완료되면 작업한 브랜치는 보통 삭제해줍니다.
    • 각 작업 브랜치에서 작업할 때는 다른 브랜치의 영향을 받지 않고 독립적으로 작업할 수 있습니다
  • Pull Request 순서
    • 브랜치 생성 후 커밋을 하고나서 git hub에 접속하면
    • 내 브랜치로 왔을 때 메인 브랜치보다 커밋한게 하나 더 있다고 알려줌
    • Pull Request 눌려서 PR 양식에 맞춰서 작성 브랜치 단위로 PR을 한다.
      (PR양식에는 댓글 남기기, 작성법 등 규칙들이 있을 수 있다.)
    • PR과정에서 코드리뷰, 작업 내용 확인을 하고 깃허브에서 머지가 완료 되면
    • 그 이후 원격리포가 업데이트 되었기때문에 내 로컬리포에 가져와야하기 때문에 패치 후
    • 내 메인 브랜치에 와서 풀땡겨오고 지운 브랜치 삭제해주기 (반드시 PR 완료 후에 브랜치 지우기)
  • commit 메시지 컨벤션(commit message convention)을 잘 지켜 작성해야한다.
    • 어떤 작업을 했는지 commit history (commit log)만 보고 알 수 있다
    • 버그를 찾을 때와 코드 고치기 쉽다
    • 다른 사람이 코드를 리뷰할 때 편하다
    • 커밋 메시지 제목은 명령 내용은 무엇을? 왜?
    • 커밋 단위는 일관된 규칙을 만들자
      (Add Fix Modify 같은 작업내용, 이슈번호, 무엇을 작업하였는지 등)
      제목 : 키워드 - 기능,단위,#이슈번호
      본문 : 변경사항 : 왜? 무엇? 을 포함하기
  •  코드리뷰를 하는 이유!
    • 코드의 품질을 높일 수 있다!
    • 다른 사람의 눈으로 버그를 빠르게 발견할 수 있다!
    • 서로의 지식을 나누면서, 더 나은 방법을 찾아낼 수 있습니다.
    • 내가 만든 코드가 아니라 팀의 코드의 품질을 높인다!
  • .gitignore - 공유하거나 공개되면 안되는 파일들에 대해 Git 이 이런 파일들을 없는 것처럼 무시하게 하는 설정
  • README.md - 프로젝트 소개글을 적어둡니다. 마크다운으로 작성되며 템플릿을 긁어와서 사용할 수있다.
    마크다운 작성법 https://www.markdowntutorial.com/
  • 내 닉네임과 똑같이 레퍼지토리를 만들면 내 프로필을 README 작성하듯이 꾸며낼 수 있다.
  • 닉네임.github.io로 레퍼지토리를 만들 경우 연결되는 내 개발블로그를 만들 수 있다.(라이센스도 적용해서 만들기)

 

프로젝트하느라 깃강의를 이제와서 들었는데 팀원들도 다같이 프로젝트 끝난 뒤에 강의를 들었었는데 프로젝트 전에

3주차 강의를 들었다면 더 좋았을 것 같다고 다들 말씀하셔서 저도 보면서 3주차에 액기스가 많이 있었구나 싶었습니다. 다음 프로젝트부터는 배운 깃의 여러 기능들을 이용해서 프로젝트도 전체적으로 정리하고 작업하는 것도 보다 충돌나거나 문제될 일이 상당히 적게 할 수 있을 것 같은 생각이 든다.

 

머신러닝

Kaggle(카글) : 머신러닝 데이터셋을 다운 받을 수 있는 사이트

https://www.kaggle.com/

 

Kaggle: Your Machine Learning and Data Science Community

Kaggle is the world’s largest data science community with powerful tools and resources to help you achieve your data science goals.

www.kaggle.com

구글 코랩에서 모든 실습과 연습을 진행

1주차 실습 - 01. 간단한 선형회귀 실습의 사본

https://colab.research.google.com/drive/1MZkMs989W_yxdYKpAC8DuUMo4vy712-E

1주차 실습 - 02. 캐글 선형회귀 실습의 사본

https://colab.research.google.com/drive/1RAjChHeDwp3gT9adAD9uxxevT26toNgj

1주차 숙제 - Linear regression 연차로 연봉 예측

https://colab.research.google.com/drive/1qpSBJBE8KgpQ6SGaGRqqN_Q1ga1mRw3o