Development Environment


Environment and Relational Database


1. Terminal & CLI

Q . Terminal & CLI란?
A . Terminal은 글자 기반으로 명령을 전달할 수 있는 어플리케이션이다.
CLI는 Command Line Interface로 글자 기반으로 명령과 결과를 진행하는걸 말한다.

  • 그래픽 기반인 GUI는 Graphical User Interface로 윈도우 탐색기를 말한다. 클릭과 마우스로 명령을 전달하는걸 말한다.

< CLI >

< GUI >

1.2 Terminal 기본 명령어

  • Mac / Linux는 기본 터미널 혹은 iterm 을 이용해서 CLI를 이용
  • Windowgit bash 를 설치 후 CLI 를 이용
  • $ pwd : 현재 경로를 나타내는 명령어
  • $ mkdir {폴더명} : 폴더(디렉토리)를 생성하는 명령어
  • $ cd {폴더명} : 폴더에 들어가는 명령어
  • $ ls : 현재 디렉토리 안에 파일 및 폴더 목록을 출력
    • $ ls -l : 상세정보 출력
    • $ ls -a : 숨긴 파일까지 표시 ( 모두 표시 )
    • $ ls -al : 숨긴 파일까지 상세정보 포함해서 출력
  • $ cat {파일명} : 파일을 터미널에 출력

2. Python Virtual Environment

Q . Python 가상환경을 쓰는 이유는?
A . 패키지의 버전을 관리하고 충돌을 방지하기 위함이다.

  • python --version : python 버전 확인
  • pip list : 패키지 리스트 확인

  • 의존성 충돌 : 사용할 패키지를 개발한 패키지 간에서도 일어난다.

  • 파이썬을 설치하게 되면 기본으로 같이 설치되는 패키지들 : standard library, system packages, site packages

2.1 패키지 충돌 문제

  • 충돌 문제가 발생할 수 있는 부분은 2개로 나눌 수 있습니다.

2.1.1 WHERE

  • WHERE : 패키지들이 저장되는 장소
# 패키지 디렉토리 확인
import sys
print(sys.prefix)
# site packages 확인
import site
print(site.getsitepackages())

# site packages 와 같은 경우에는 리스트로 결과가 보여집니다.
# 이는 여러 디렉토리에서 패키지들을 관리하고 있다는 뜻이다.

2.1.2 HOW

  • HOW : 패키지들이 저장되는 방법
    : site packages 디렉토리로 확인

Site packages 디렉토리 하나를 열어보면 설치되어 있는 파이썬 패키지들이 나열되어 있다.
하지만, 각 패키지들의 버전은 나와있지 않다.

파이썬에서 직접 관리하는 파이썬 표준 라이브러리는 별 문제가 되지 않는다.

하지만, 추가로 설치하는 third party libraries는 곤란한 상황이 발생한다.

디렉토리에서 패키지 버전 번호를 따로 관리하지 않기 때문에,
하나의 패키지의 버전 1, 버전 2 둘 다 동일한 이름으로 저장이 된다.

또한, 사용할 때에는 이름으로만 불러오기 때문에, 버전을 구별하지 못한다.

  • 높은 버전이 더 좋은건 아니다. 버전이 바뀌면서 삭제, 변경, 새로운 기능들이 추가되었을 수 있다.

3. Anaconda Virtual Environment

  • 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가 있다.
다른점은,


4. Git & Github

  • 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 fetchgit 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 은 무엇을 의미할까요?


👉 과정 한눈에 보기

profile
I believe I can fly

0개의 댓글