데이터 놀이터
Section 4 - Sprint 1. 환경과 관계형 데이터 베이스 - 1. 개발 환경 본문
728x90
오늘의 키워드
- 터미널
- CLI vs GUI
- 가상 환경
- 아나콘다
- 깃, 깃 허브
1. 개념 정리
1. 터미널과 CLI
- 터미널 (terminal)
- 오직 글자로 컴퓨터에게 명령을 전달할 수 있는 창구
- CLI (Command Line Interface)
- 터미널에서 명령이 전달되고 컴퓨터가 이를 수행하는 과정을 CLI라고 부른다.
- 마우스를 이용하는 GUI(Graphical User Interface)와 반대되는 개념
- GUI의 경우 마우스, 커서 등 명령을 내리고 수행하는 과정에서 상당한 자원을 소모하기 때문에 CLI에 비해 비효율적
- Python, Git, Docker 등 모두 CLI 기반으로 개발되고 사용되기 때문에 사실 개발을 하고자 하는 우리에게는 선택권이 없다..
- Directory
- 파일을 분류하기 위해 사용하는 이름공간
- 간단히 말하면 폴더(folder)다.
- CLI 명령어
- 터미널에서 활용하는 많은 명령어 중 대표적인 5개만 꼽아보자면 다음과 같다.
pwd : Print Working Directory, 현재 있는 디렉토리 위치를 보여줌
cd : Change Directory, 다른 디렉토리로 이동
ls : List Directories, 현재 디렉토리 안 파일 및 폴더 목록 출력
cat : Concatenate, 파일을 터미널에 출력
mkdir : Make Directory, 디렉토리 생성
###
cd 활용
절대 경로 (Absolute Path)
이미 고정되어 있는, 바꿀 수 없는 경로
ex) /users/jjjk84/Documents/~
상대 경로 (Relative Path)
현재 위치를 기준으로 찾아나가는 경로
. 현재 디렉토리
.. 상위 디렉토리
~ 맨 처음 디렉토리
- 이전 디렉토리
ls 활용
ls -l : 상세정보 표현 (최근 수정 일시...)
ls -a : 숨긴 파일까지 표시
ls -al 또는 ls -la : 숨긴 파일까지 상세정보 표현
2. 가상환경
- 파이썬을 통해 여러개의 어플리케이션을 한 환경에서 제작할 경우 파이썬 자체의 버젼이나 패키지 버젼이 달라 충돌이 일어날 가능성이 있음
- 한 환경에서는 패키지 당 하나의 버젼만 생성 가능하기 때문
- 따라서, anaconda, pipenv, virtualenv 등을 통해 가상환경을 만들어주어야 함
- Anaconda 가상환경 코드
conda env list : 콘다 내에 가상환경 목록 출력 conda deactivate : 콘다 가상환경 중지 (콘다 내 가상환경들이 중첩되어 실행 가능하기 때문에 주의할 것) conda create --name '이름' : 콘다 가상환경 생성 conda activate '이름' : 콘다 가상환경 실행 conda env remove --name '이름' : 콘다 가상환경 삭제`
3. Git & Github
- Git
- 버전 관리 시스템(VCS)의 일종으로 로컬(Local) 환경에서 개발 작업을 할 때 사용
- 변경 사항 추적, 버전 관리 등 개발 분야에 필수적인 기능 제공
- 로컬에서 Git을 통해 작업한 내용을 Github와 같은 곳에 저장할 경우 다른 로컬에서도 그 내용에 접근이 가능해져서 개발자들 간 협업이 쉬워짐
- Github
- 원격 코드 저장소로 로컬에서 작업한 내용들을 개발자들 간 공유하기 편하도록 저장해놓는 창고와 같은 개념
- Git과 Github를 이용한 workflow
- 온라인에서 로컬로 레포 가지고 오기
1. 깃헙 레포에서 자신의 레포로 Fork 해오기
2. 웹상 자신의 레포에서 로컬로 Clone 해오기
git clone https://github.com/{유저이름}/레포 명
3. 로컬에서 작업
4. 작업한 파일을 staging area로 옮김
git add 파일명
5. 자신의 레포에 수정 사항에 대한 메세지와 함께 commit
git commit -m '메세지'
6. 수정 사항에 문제가 생겨 commit 되돌리기
git reset HEAD^ (한단계 이전으로 돌아가기)
7. 다시 staging area로 옮김
git add 파일명
8. commit
git commit -m '메세지'
9. 자신의 레포 내에 main 브랜치로 push
git push origin main
- 기존 로컬에서 작업하던 것에서 온라인 레포 주소 추가
git remote add origin 레포주소 : origin이라는 이름의 원격저장소를 레포주소에 생성
git push origin main : 레포 안 origin에 main 브런치로 올림
## origin은 다른 걸로 변경해도 좋으나 통상적으로 쓰는 이름
- 함께 작업 시
1. 페어의 remote 레포를 내 로컬에 pair 이름으로 등록
git remote add pair 페어레포주소
2. remote 레포 목록 및 주소 확인
git remote --verbose
3. 페어와 작업 진행 후 페어의 코드를 내 로컬 main 브랜치로 받아오기
git pull pair main
4. 내 작업 후 수정한 파일을 staging area로 올리기
git add 파일이름
5. 메시지와 함께 commit
git commit -m '메세지'
6. 페어와의 충돌 해결(페어가 작업한 것 vs 내가 작업한 것 중 고르기)
7. 충돌 해결 후 staging area로 올리기
git add 파일이름
8. commit
git commit
9. 로컬 레포에서 작업한 내용을 원격 레포에 반영
git push origin main
- a 기능 작업을 수행한 것에 b기능을 더할 때 충돌이 발생할 수 있으니 다른 브랜치에서 작업한 후 합침
1. git checkout -b 브랜치명 : 브랜치 생성 및 이동
2. git cheackout 브랜치명 : 브랜치 이동
3. git branch : 브랜치 목록 확인
4. git merge 브랜치명 : 현재 있는 브랜치에 브랜치명 병합
- Git 활용 코드
git init : 로컬 디렉토리에 git 호출
git status : git 상태 확인
git stash : git 작업내용 임시저장
2. 코드 정리
code 폴더명 : vscode로 폴더 열기
echo '텍스트' : 텍스트 출력
echo '텍스트' > '파일명' : 텍스트 내용을 가진 파일 생성 (기존 파일이 있을 경우 대체)
ehco '텍스트' >> '파일명' : 파일에 텍스트 추가
conda env list >> 파일명 : conda 가상환경 리스트를 내용으로 가지는 파일 생성
git push origin A:B : 로컬 브랜치 A를 원격저장소 origin 내의 브랜치 B로 푸시
3. 더 알아봐야 할 것
- https://codestates.github.io/sw-sprint-git-workflow/chapter3/8 반복 연습
- https://linuxjourney.com/lesson/change-directory-cd-command 터미널 명령어 학습 및 복습
- https://jay-lab.github.io/git/git-push/ 로컬브랜치 A를 원격브랜치 B로 푸시하는 방법 복습
728x90
'코드스테이츠 AIB 17' 카테고리의 다른 글
Section 4 - Sprint 1. 환경과 관계형 데이터 베이스 - 3. SQL 심화 (0) | 2023.03.21 |
---|---|
Section 4 - Sprint 1. 환경과 관계형 데이터 베이스 - 2. SQL, RDB (0) | 2023.03.21 |
Section 2 Review - Machine Learning (0) | 2023.02.14 |
Section 1 - Sprint 2. Statistics - 1. Bayes Theorem (0) | 2023.01.07 |
Section 1 - Sprint 1. Data Preprocessing & EDA (0) | 2023.01.06 |