WIL(2주차)

김규현·2022년 9월 12일
0

내일배움캠프 2주차 주간 회고

2주차에서는 파이썬과 git, github를 사용하는 방법에 대해 학습을 진행했다.

Python

지금까지 배운 문법들을 활용해 로또 번호를 뽑는 코드 작성하기

import random
from select import select


def get_lotto_number(count):
    result = []
    if count < 1:
        print("1 이상의 값을 입력해 주세요")
    
    for _ in range(count):
        lotto = set()

        while len(lotto) < 7:
            lotto.add(random.randint(1,45))
        
        result.append(lotto)
    return result
lotto_number = get_lotto_number(3)
print(lotto_number)

📌 코드 풀이

  • 중복되지 않는 랜덤한 숫자를 출력해야 하기 때문에 우선 random을 import
  • 함수의 매개변수는 count로 지정하여 인자를 받고, 받은 수 만큼 for문으로 반복한다
    ex) get_lotto_number(5) == 랜덤한 숫자를 뽑은 리스트를 5개 생성
  • result 라는 빈 리스트를 만들어 생성되는 랜덤한 값을 담는다
  • if 문을 사용해 count가 1보다 작은 경우 안내말을 print하고 1이상 숫자를 받은 경우 반복문을 실행한다
  • count만큼 for roof를 돌고 for문 안에서 while문에 조건을 붙여 lotto의 길이가 7보다 작을 경우 계속 1부터 45까지 랜덤한 숫자를 randint(1,45)를 통해 반복해서 생성하여 lotto 변수에 값을 담는다.
    (lotto의 변수에 set()함수를 사용해 중복 값은 담기지 않음)
  • 랜덤한 숫자 6개가 담긴 리스트를 result의 빈 리스트에 담고 return으로 result를 반환 해준다.
  • 함수를 호출 할 lotto_number이라는 변수를 만들어 함수명과 인자를 담아주고 출력하면 인자값으로 넣은 숫자만큼 로또 번호가 출력된다.

Git

저번 포스트에서 Git을 통한 협업 프로젝트 진행 순서 및 sourse tree 사용법을 회고 했으니 CLI 명령어를 기록하도록 하겠다.

📌 기본 명령어

  • mkdir : directory를 만듦
  • ls : 현재 디렉터리의 폴더 및 파일 보기(숨김 제외)
  • ls -a : 현재 디렉터리의 폴더 및 파일 보기(숨김 포함)
  • ls -al : 현재 디렉터리의 숨김을 포함한 모든 폴더와 파일을 리스트로 보기
  • cd : 특정 경로로 이동하고 싶을 때 cd <경로>를 입력
  • clear : Cli를 깨끗하게 지움
  • touch <파일명>: 빈 파일을 만듦
  • cat <파일명> : 파일의 내용을 보여줌

📌 vi/vim 편집기

  • vi <파일명>을 통해 편집기를 열 수 있다
  • a or i를 눌러 편집기에 내용을 입력할 수 있는 모드로 전환됨
  • 입력이 끝난 후 esc를 누르면 입력 모드가 종료됨
  • :w(저장하기), :q(편집기 닫기), :wq(저장 후 닫기)

📌 버전 관리

버전 만들기

  • git init : git이 관리하는 로컬 저장소 생성
  • git add <파일명> : 스테이지에 추가 / git add .(변경사항 모두를 스테이징)
  • git restore --staged <파일명> : 스테이지에서 변경 사항 내리기
  • git status : 스테이지에 커밋되지 않은 파일 변경 사항을 보여줌
  • git commit : 커밋메세지와 함께 커밋
  • git commit -m "msg" : 커밋 메세지의 헤더
  • git commit -am "msg" : 스테이지에 추가와 동시에 커밋하기(tracked file만 가능)

버전 조회하기

  • git log : 현재 커밋들의 목록 조회
  • git log --oneline : 현재 커밋들의 목록을 한 줄로 조회
  • git log -p : 현재 커밋들의 목록과 변경 사항과 함께 확인
  • git log --graph : 현재 커밋 목록을 그래프 형태로 조회

💡 (git log --oneline --graph / git log --oneline -p) 같이 사용 가능

버전 비교하기

  • git diff : 현재 작업 디렉터리에서의 작업 내역과 최신 커밋을 비교
  • git diff --staged : 스테이지의 작업 내역과 최신 커밋 비교
  • git log <커밋hash> <커밋hash> : 커밋끼리 비교

버전 되돌리기🚨

📌 revert

  • git revert <커밋hash> : 특정 커밋을 취소하고 새 커밋 작성(기존 커밋 내역 유지)

📌 reset

  • git reset --soft <커밋hash> : 커밋을 하기 전 시점으로 되돌리기
  • git reset --mixed <커밋hash> : 커밋을 하기 전 스테이징 한 시점으로 되돌리기
  • git reset --hard <커밋hash> : 커밋과 스테이징 하기 전 시점으로 되돌리기
    (status에서 변경 사항이 있다고 알리는 시점)

브랜치로 버전 나누기

  • git branch <브랜치 이름> : 새로운 브랜치 생성
  • git checkout <브랜치 이름> : 작업 할 브랜치로 설정하기
  • git checkout -b <브랜치 이름> : 브랜치를 만듦과 동시에 체크아웃
  • git merge <브랜치 이름> : 브랜치를 main 혹은 특정 브랜치에 병합하기

💡 병합할 때 충돌이 발생 시 최종적으로 반영할 내용만을 선택하여 다시 커밋

원격 저장소(Github) 다루기

  • git remote : 원격 저장소 이름 조회
  • git romote -v : 원격 저장소 이름과 url 조회
  • git romote add <원격 저장소 이름> <원격 저장소 경로> : 원격 저장소 추가

📌 원격 저장소와 상호작용

  • git clone : 원격 저장소의 내용을 내 pc로 복제
  • git push <원격 저장소 이름> <로컬 브랜치 이름> : 로컬의 변경사항을 원격 저장소에 반영
    git push -u <원격 저장소 이름> <로컬 브랜치 이름> : 최초로 입력 시 이후 git push로 사용가능
  • git pull <원격 저장소 이름> <로컬 브랜치 이름> : 원격 저장소의 변경사항을 로컬에 반영
  • git fetch <원격 저장소 이름> <로컬 브랜치 이름> : 원격 저장소의 변경사항을 로컬에 반영하지 않고 가져만 오기(git checkout FETCH_HEAD 입력하여 확인)

Pull request를 보내는 단계

  1. 기여하려는 저장소를 본인의 계정으로 fork하기
  2. fork한 저장소를 clone하기
  3. 브랜치 생성 후 생성한 브랜치에서 작업하기
  4. 작업한 브랜치 Push 하기
  5. Pull Request 보내기
profile
웹개발 회고록

0개의 댓글