250x250
Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Archives
Today
Total
관리 메뉴

데이터 놀이터

Section 4 - Sprint 1. 환경과 관계형 데이터 베이스 - 1. 개발 환경 본문

코드스테이츠 AIB 17

Section 4 - Sprint 1. 환경과 관계형 데이터 베이스 - 1. 개발 환경

jjjk84 2023. 3. 20. 00:31
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를 이용한 개발 작업 과정

  • 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