본문 바로가기

Data Science/3. 데이터 엔지니어링

[n311]개발환경

■ Key words

  ㆍGit

  ㆍGithub

  ㆍTerminal(터미널)

  ㆍPython Artifical Environment(가상환경)

  ㆍAnaconda

 

■ 주요내용

  ㆍ가상환경 : 운영체제와 이를 사용하는 환경이 다르기 때문에 사용환경과 개발환경을 동일하게

     맞추기 위해 사용하는 것.(i. e. python, numpy, pandas의 개발환경과 사용환경의 version 등)

      각 가상환경 마다 python 및 package version을 별도로 관리함.

     - System Package : python이 설치될 때 같이 설치되는 python standard library에 속해

                               python이 사용하는 package

     - Third party libraries : System package와는 다르게 별도로 추가 설치하는 library

     ⇒ 설치환경과 운용환경이 다를 경우 명령어가 달라 오류가 발생하거나 작동이 안 할 수 있음

  ㆍGit : Version-Control System. 수정한 파일을 저장하여 돌아올 수 있는 중간 save 지점.

     - CLI(Comand Line Interface, 명렬 줄 인터페이스) : 가상 터미널 또는 텍스트 터미널을 통해 사용자와

       컴퓨터가 상호 작용하는 방식

     - GUI(Graphical User Interface, 그래픽 사용자 인터페이스) : 사용자가 편리하게 사용할 수 있도록

       입출력 등의 기능을 아이콘 따위의 그래픽으로 나타낸 것.

     - Terminal(단말기) : 운영체계 커널과 연결 가능한 문자 입력과 출력이 가능한 하드웨어/소프트웨어

  ㆍGithub : 온라인 상으로 Git을 저장할 수 있게 해주는 site. 본인이 다른 컴퓨터에서 접속하거나

     다른 사람이 접속할 수 있도록 해줌(cloud).

     - Repository : 프로젝트를 저장하고 관리하는 단위. 명칭/소개/공개설정/(초기파일) 설정 가능.

        * .gitignore를 통해 접근/수정이 불가능한 파일 설정 가능

 

■ Session note

  ㆍMaster branch에서 git init을 통해 git 시작
     * git commit을 하기 전에 git add를 하게 됨(암기)
  ㆍgit commit : branch를 만들어 수정을 할 수 있음
  ㆍbranch의 수정은 master branch에 수정사항이 반영되지 않으므로 merge를 해야 함
  ㆍgit checkout : git branch checkout을 통해 해당 branch로 이동
  ㆍgit status : 변화한 상태 목록이 나타남
  ㆍgit add : 해당 변화를 반영함
  ㆍgit log : 변화한 목록이 나옴 ⇒ 각 버전의 정보를 확인하고 돌아갈 수 있음
  ㆍpip install --help : 약어 설명
  ㆍcd : change directory
  ㆍgit comit -m "남기고 싶은 내용"

  ㆍconda create --name hello_conda python=3.8
  ㆍ(base) 상태에서 activate을 하면 base 위에 가상환경을 하나 더 만드는 것이므로, deactivate하고 진행해야 한다
  ㆍ붙여넣기 : shift + insert / 우클릭
  ㆍgit clone + fork한 주소

  * 과제설명
  ㆍcd test1(폴더명)
  ㆍgit init : 변화 추적을 시작하겠다는 명령어
  ㆍls : list - part_1.py 있을 것
  ㆍgit status : 변화 확인
  ㆍ(base)상태에서 conda env list : 지금까지 내가 생성한 가상환경 리스트 확인
  ㆍconda deactive : base에서 빠져나오기
  ㆍconda activate 가상환경명 : 해당 가상환경에 들어가기
  ㆍpytest submit install 붙여넣기(shift + insert)
  ㆍpip list \ grep pytest : 설치된 list 확인
  ㆍ(디렉토리 바꾸기); mkdir(make directory)
  ㆍgit clone 주소 : fork한 주소
  ㆍls : list 확인
  ㆍcd ds-sa-simple-git-flow : change directory 후 과제 진행하기
  ㆍmerge할 경우 branch에서 main으로 이동한 후 merge 해야 한다
     * merge 한 후 pull request 하기
  ㆍpart1은 혼자 해보기 / 과제는 가상환경에서 계속 진행해도 됨
     * git checkout : 그 당시로 돌아가는 것; git log를 하면 다른 상태가 출력됨

  ㆍcp A B : A에서 B로 copy
  ㆍmv A B : A에서 B로 파일/폴더 보내기

 

■ 주요함수

  ㆍ설치 위치 확인

# python system package 설치 위치 확인
import sys
print(sys.prefix)

# site package 설치 위치 확인
import site
print(site.getsitepackages())

 

  ㆍ 가상환경의 활용

# 프로그램 version 확인
[프로그램명] --version

# anaconda 가상환경 목록 확인
conda env list

# anaconda 가상환경 생성
conda create -n '[가상환경명]'

# 가상환경 비활성화
conda deactivate

# 가상환경 활성화
conda activate '[가상환경명]'

# 가상환경 삭제
conda env remove --name '[가상환경명]'

 

  ㆍGit의 활용

# Git 설치 유무 및 version 확인
git --version

# 실행된 directory에 Git 시작 및 버전 관리 시작 / .git 폴더 생성
git init

# Git 삭제(.git 폴더 삭제)
rm -rf .git

# Git의 상태(변경사항, 추적 대상, Branch) 확인
git status

# 변화 추적대상 추가
git add [변화대상명] 또는 git add .(변화 전부 추적)

# 변화 상태 저장 및 코멘트 남기기
git commit -m "git commit message"

# 원격으로 연결된 repository 확인
git remote -v

# 원격으로 repository 연결
git remote add [지정할 명칭] [연결 대상 주소]

# 원격으로 연결된 repository 해제
git remote remove apple

# 특정 주소에서 변경된 사항 가져오기
git fetch [가져올 원격 주소] [브랜치명]

# 변경된 브랜치 합치기
 git merge [브랜치명]
 
 # 특정 주소에서 변경된 사항을 가져와 브랜치를 합치기(git fetch + git merge)
 git pull

 

  ㆍGithub의 활용

# github에 있는 repository 복사하기
git clone [repository 주소]

# git과 gtihub repository 연결하기
git remote add [명칭] [repository 주소]

 

  ㆍ과제제출

# 이미 실행되어 있는 가상환경을 끄기(main)
conda deactivate  

# python 3.8 version의 가상환경을 conda로 구축
conda create —n [가상환경명] python=3.8 

# 위에서 만든 가상환경 가동
conda activate [가상환경명]

# 현재 위치 확인
pwd

# 가상환경과 파일들을 함께 관리하기 위해 가상환경 폴더로 이동
cd [가상환경명]

# 과제를 [가상환경명] 폴더에 clone / clone 시 해당 repository 명칭의 폴더 자동 생성 후 다운로드
git clone [github fork한 repository 주소.git] 

# 과제 제출을 위해 필요한 플러그인을 설치
pip install git+https://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@github.com/aib-contents/pytest-submit-plugin

# requirements.txt가 있는 [repository명] 폴더로 들어가기
cd [repository명]

# 과제에 필요한 패키지 설치
pip install -r requirements.txt

# 채점 프로그램 작동 확인 / 제출하기/ 점수 확인 / 그동안의 점수 확인 // MAC은 winpty 없이 입력
(winpty) python -m pytest (--submit / --score / --all) 

# git의 상태(변경사항, 추적 대상, Branch) 확인
git status

# git의 전체 변경사항 저장
git add .

# 기존의 branch 불러오기 / 기존의 branch 없을 경우 새로운 branch 생성
git checkout -b [명칭] 

# 생성된 브랜치 확인
git branch 

# 변경내용 git으로 저장 및 메모 남기기
git commit -m "메모"

# 새로 만든 branch github에 잔디 심기
git push [본인 깃헙 pull request 주소] [새로 만든 branch 명]

 

■ Reference

  ㆍCLI, Terminal, Shell, REPL : https://www.44bits.io/ko/keyword/command-line-interface-cli-shell-and-terminal

  ㆍgit bash로 파일 내용 수정하기 : https://seonkyukim.github.io/git-tutorial/basic-cmd/

 

02: 기본적인 명령어

터미널을 열어보십시오. 윈도우 사용자께서는 git bash의 사용을 권해드립니다. 터미널을 처음 사용하시면 이것이 무엇인지조차 모르실 겁니다. 간단하게 mac에서는 finder, 윈도우에서는 윈도우탐

seonkyukim.github.io

  ㆍ 자주 사용하는 git 명령어 : 

https://pks2974.medium.com/%EC%9E%90%EC%A3%BC-%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94-%EA%B8%B0%EC%B4%88-git-%EB%AA%85%EB%A0%B9%EC%96%B4-%EC%A0%95%EB%A6%AC%ED%95%98%EA%B8%B0-533b3689db81

 

자주 사용하는 기초 Git 명령어 정리하기

제가 서비스를 개발하면서 자주 사용하던 git 명령어를 정리해보려고 합니다.

pks2974.medium.com

  ㆍ자주 사용하는 CLI(Command-line interface) 명령어 : 

https://itholic.github.io/linux-basic-command/

 

[linux] 리눅스 기본 명령어/자주 쓰는 명령어

리눅스 기본 명령어

itholic.github.io

 

'Data Science > 3. 데이터 엔지니어링' 카테고리의 다른 글

[n322]python 활용(2)  (0) 2021.07.17
[n321]Python 활용(1)  (0) 2021.07.17
[n314]SQL(Structured Query Language)(2/2)  (0) 2021.07.13
[n313]SQL(Structured Query Language)(1/2)  (0) 2021.07.12
[n312]Docker  (0) 2021.07.12