데이터 위클리 페이퍼 2 - 유닉스 절대경로와 상대경로, 깃 브랜치
유닉스에서 절대경로와 상대경로에 대해 파악하고 깃 브랜치에 대해 알아봅니다.
- 데이터 위클리 페이퍼 12 - 머신러닝 편향과 분산, K-폴드
- 데이터 위클리 페이퍼 11 - 지도학습과 비지도학습, 손실 함수
- 데이터 위클리 페이퍼 10 - A/B테스트, Event Taxonomy
- 데이터 위클리 페이퍼 9 - AARRR 사례 분석
- 데이터 위클리 페이퍼 8 - AARRR, 코호트와 세그먼트, RFM
- 데이터 위클리 페이퍼 7 - 장바구니 분석(연관분석)
- 데이터 위클리 페이퍼 6 - 클러스터링, 고유값과 고유벡터, 히스토그램
- 데이터 위클리 페이퍼 5 - 사분위수, 기술통계와 추론통계
- 데이터 위클리 페이퍼 4 - 데이터 전처리와 t-test
- 데이터 위클리 페이퍼 3 - 제1종 오류와 제2종 오류, p-value
- 데이터 위클리 페이퍼 1 - 클래스와 인스턴스, 정적 메소드
유닉스에서 절대경로와 상대경로는 무엇인가요?
[예시]
- root디렉토리 📁
- info.txt파일 📓
- bin디렉토리 📁
- home디렉토리 📁
- Sun디렉토리 📁
- price.txt파일 📓
- house.py파일 📓
- animal디렉토리 📁
- dog디렉토리 📁
- cat디렉토리 📁
- market디렉토리 📁
- fruit디렉토리 📁
- fruit_info.txt파일 📓
- summer디렉토리 📁
- watermelon파일 📓
- winter디렉토리 📁
- meat디렉토리 📁
- fruit디렉토리 📁
- Sun디렉토리 📁
- 절대경로 : 루트(최상위) 디렉토리 부터 시작하는 전체경로
/
로 시작하여 파일이나 디렉토리 경로를 명확하게 표시할 수 있음- 스크립트 내에서 항상 고정된 파일이나 디렉토리를 참조해야 할 때 활용
- 시스템 로그 파일이나 환경 설정 파일 등을 접근할때 명확하게 경로 지정
- 여러번 하위 디렉토리로 이동하는 등 경로가 길어질수록 불편함 → 상대경로 고려
- 예시) summer디렉토리 이동 :
cd /home/Sun/market/fruit/summer
- 예시) summer디렉토리 이동 :
- 상대경로 : 현재 자신이 위치해 있는 디렉토리(작업 디렉토리) 부터 시작하는 경로
- 파일이나 디렉토리 이동이 빈번할 때 활용
- 현재 디렉토리를
.
으로 표시- 예시) 현재 디렉토리
/home/Sun/market/fruit
에서 summer디렉토리 이동 :cd ./summer
- 현재 디렉토리를 표시하는
./
생략 가능cd ./summer
=cd summer
- 예시) 현재 디렉토리
- 현재 디렉토리에서 상위(부모) 디렉토리를
..
으로 표시- 예시) 현재 디렉토리
/home/Sun/market/fruit/summer
에서 상위 디렉토리 market으로 이동 :cd ../..
- 예시) summer 디렉토리에서 winter 디렉토리로 이동 :
cd ../winter
- 예시) 현재 디렉토리
- 여러번 상위 디렉토리로 이동해야하는 경우 → 절대경로 또는 홈 디렉토리 고려
- 예시) winter 디렉토리에서 animal 디렉토리로 이동
- 상대경로 사용 :
cd ../../../animal
- 절대경로 사용 :
cd /home/Sun/animal
- 홈 디렉토리 사용 :
cd ~/animal
- 상대경로 사용 :
- 예시) winter 디렉토리에서 animal 디렉토리로 이동
- 정리 : 개발작업시 파일과 디렉토리를 지정할 때 절대경로와 상대경로 그리고 홈 디렉토리를 적절하게 경로지정하여 사용
Git에서 branch는 무엇이고, 왜 사용하나요?
- git branch : 프로젝트 내 독립적인 작업 공간
- 브랜치를 통해 프로젝트의 여러 부분을 여러 개발자들과 동시에 작업할 수 있는 환경 구축
- 각 브랜치는 프로젝트의 특정 시점을 가리키며, 새로운 작업시 별도의 브랜치에서 작업가능
- 깃 프로젝트 첫 생성시
master
혹은main
기본 브랜치가 생성되며,- 이 브랜치를 다른 브랜치로 복사하여 안전하게 개발작업을 수행할 수 있음
- 이후 개발이 완료되면 상위 브랜치로 병합
- 브랜치 사용 목적
- 효율성 : 여러 개발자가 동시에 다른기능개발이나 버그수정을 작업할 수 있음
- 안정성 : 새로운기능을 개발하고 테스트할 때 기존코드에 영향을 주지 않고 실험 가능
- 조직화 : 특정기능개발 또는 버그수정을 위한 작업을 구분하여 관리할 수 있음
- 브랜치 관리 방안(통상적으로 사용하는 브랜치명)
- 협업 목적으로 브랜치 사용 시 원활한 커뮤니케이션을 위해 통상적으로 사용되는 브랜치명
- 지속적으로 사용되는
메인 브랜치
와 필요할 때 생성후 삭제하는보조 브랜치
로 분류
- 메인 브랜치
master
혹은main
: 제품 출시 버전 관리develop
: 다음 출시 버전 개발
- 보조 브랜치
feature
: 특정 기능 개발release
:develop
브랜치에서 배포 전 마지막 단계에서 최종 점검hotfix
:main
브랜치에서 출시후 발생한 버그 수정
- 개발(프로젝트)시 브랜치 흐름 예시
master
→develop
브랜치 이동후 개발- 특정 기능 필요시
develop
→feature
브랜치 생성후 개발 - 기능 완성시
feature
→develop
브랜치 병합후feature
브랜치 제거 - 릴리즈 단계시
develop
→realease
브랜치 생성후 개발 - 최종 릴리즈 단계시
realease
→develop
,master
병합후realease
브랜치 제거 master
브랜치 오류발생시master
→hotfix
브랜치 생성후 개발hotfix
완료시develop
,master
브랜치로 병합후hotfix
브랜치 제거
참고 : 커밋메세지 작성 시 통상적으로 사용하는 카테고리
카테고리 | 설명 |
---|---|
INITIAL | 첫 생성 |
ADD | 신규 파일 추가 |
UPDATE | 변경사항 발생 |
REFACTOR | 코드 리팩토링 |
FIX | 오류로 인한 수정 |
REMOVE | 파일 제거 |
STYLE | 디자인 관련 변경 |
- 정리 : git 브랜치를 사용하면 프로젝트 시 다양한 작업을
- 여러 개발자가 동시에 수행하여 효율적이고
- 독립적인 공간에서 작업하여 안전하며
- 각각의 작업물을 구분하여 관리할 수 있음
- [참고] 브랜치 관련 명령어
- 브랜치 목록 확인
1
$ git branch
- 새로운 브랜치 생성 (기존 브랜치의 복사본)
1
$ git branch [브랜치이름]
- 브랜치 이동
1
$ git checkout [브랜치이름]
- 브랜치 생성과 동시에 이동
1
$ git checkout -b [브랜치이름]
- 브랜치 삭제
1
$ git branch -d [브랜치이름]
- 브랜치 목록 확인
This post is licensed under CC BY 4.0 by the author.