Q . Terminal & CLI란?
A . Terminal은 글자 기반으로 명령을 전달할 수 있는 어플리케이션이다.
CLI는 Command Line Interface로 글자 기반으로 명령과 결과를 진행하는걸 말한다.
- 그래픽 기반인 GUI는 Graphical User Interface로 윈도우 탐색기를 말한다. 클릭과 마우스로 명령을 전달하는걸 말한다.
< CLI >
< GUI >
- Mac / Linux는 기본 터미널 혹은 iterm 을 이용해서 CLI를 이용
- Window는 git bash 를 설치 후 CLI 를 이용
$ pwd
: 현재 경로를 나타내는 명령어$ mkdir {폴더명}
: 폴더(디렉토리)를 생성하는 명령어$ cd {폴더명}
: 폴더에 들어가는 명령어$ ls
: 현재 디렉토리 안에 파일 및 폴더 목록을 출력$ ls -l
: 상세정보 출력$ ls -a
: 숨긴 파일까지 표시 ( 모두 표시 )$ ls -al
: 숨긴 파일까지 상세정보 포함해서 출력$ cat {파일명}
: 파일을 터미널에 출력Q . Python 가상환경을 쓰는 이유는?
A . 패키지의 버전을 관리하고 충돌을 방지하기 위함이다.
python --version
: python 버전 확인pip list
: 패키지 리스트 확인의존성 충돌 : 사용할 패키지를 개발한 패키지 간에서도 일어난다.
파이썬을 설치하게 되면 기본으로 같이 설치되는 패키지들 : standard library, system packages, site packages
# 패키지 디렉토리 확인
import sys
print(sys.prefix)
# site packages 확인
import site
print(site.getsitepackages())
# site packages 와 같은 경우에는 리스트로 결과가 보여집니다.
# 이는 여러 디렉토리에서 패키지들을 관리하고 있다는 뜻이다.
Site packages 디렉토리 하나를 열어보면 설치되어 있는 파이썬 패키지들이 나열되어 있다.
하지만, 각 패키지들의 버전은 나와있지 않다.
파이썬에서 직접 관리하는 파이썬 표준 라이브러리
는 별 문제가 되지 않는다.
하지만, 추가로 설치하는 third party libraries
는 곤란한 상황이 발생한다.
디렉토리에서 패키지 버전 번호를 따로 관리하지 않기 때문에,
하나의 패키지의 버전 1, 버전 2 둘 다 동일한 이름으로 저장이 된다.
또한, 사용할 때에는 이름으로만 불러오기 때문에, 버전을 구별하지 못한다.
conda --version
: conda 버전 확인conda env list
: conda 가상환경 리스트 확인conda create --name 'practice' python=3.8
: practice 이름의 가상환경, python 3.8 버전으로 생성conda activate 'practice'
: practice 가상환경 실행conda deactivate
: 가상환경 종료conda env remove --name 'practice'
: practice 가상환경 삭제conda의 가상환경은 중첩되서 실행될 수 있으니
conda deactivate
를 해줘야 한다.
Q . conda와는 다른 가상환경 도구들은? 다른 점은?
A . 가상환경을 만들어주는 다른 레퍼런스는pipenv
,virtualenv
가 있다.
다른점은,
Github : 원격 코드 저장소
Git : 버전 관리 시스템 ( Version-Control System )
$ git clone https://github.com/{유저이름}/ds-sample-git
$ rm -rf .git
: 깃 지우는 방법. 모든 폴더와 파일들이 삭제된다.
.git
이라는 폴더를 제거하면 된다.GUI
로 지우는 것이 좋다.$ git remote add origin https://github.com/{유저이름}/ds-sample-git
$ git remote -v
: 현재 어떤 원격 레포 주소들과 연결되어있는지 본다.$ git remote add apple https://github.com/codestates/apple.git
$ git remote remove apple
: 원격 주소를 지우는 방법git init
: git에게 이 레포지토리를 관리할거야 라고 알려주는 역할
$ git status
: 깃의 현재 상태를 보고 싶을 때 사용
$ git commit -m "git commit message"
git add
를 통해서 staged 상태로 만들고git commit
을 통해 커밋한다.git pull
: git fetch
와 git merge
를 합친 명령어이다.
$ git fetch apple main
: apple이라는 원격 주소 이름의 main브랜치가 깃헙에서 업데이트 되어 변경된 내용을 가지고 오고 싶을 때 사용
$ git merge 브랜치_이름
: 작업하고 있는 브랜치를 합치는 방법
Q . 깃헙의 브랜치는 뭘까요? 브랜치 이동은 어떻게 하는걸까요?
A .
📣 Story - 오늘 기본적인 Git 사용방법에 대해 알아보았습니다.
Git 은 리눅스 토발즈(Linus Benedict Torvalds)라는 사람이 자신의 파일 및 코드를 관리하기 어려워 거의 혼자 개발하였습니다.
이 리눅스 토발즈라는 사람이 현대 컴퓨터에서 굉장히 중요한 역활을 하는 사람입니다.
어떤 엔지니어링 기술들을 만들었는지 알아볼까요?
📣 기술 - Git 의 내부 구성이 더 궁금하신 분들이 있으실 겁니다 !
Git 의 기본적인 사용법을 알아보았으니 좀 더 구체적인 사용방법을 알아보기 위해선 Git 의 기본요소를 구성하는
스냅샷
을 알아볼까요?Git 의 기본 작동은 모든 작업을 스냅샷으로 보고, 사진첩을 이동하듯 작동합니다.
- 스냅샷의 의미를 알아보고, 기술적으로 Git 에서는 스냅샷을 어떻게 표현하고 있는지 확인해보시는 것을 추천드립니다!
- ex.
git checkout EICKS8
은 무엇을 의미할까요?