Post

데이터 위클리 페이퍼 2 - 유닉스 절대경로와 상대경로, 깃 브랜치

유닉스에서 절대경로와 상대경로에 대해 파악하고 깃 브랜치에 대해 알아봅니다.

유닉스에서 절대경로와 상대경로는 무엇인가요?


[예시]

  • root디렉토리 📁
    • info.txt파일 📓
    • bin디렉토리 📁
    • home디렉토리 📁
      • Sun디렉토리 📁
        • price.txt파일 📓
        • house.py파일 📓
        • animal디렉토리 📁
          • dog디렉토리 📁
          • cat디렉토리 📁
        • market디렉토리 📁
          • fruit디렉토리 📁
            • fruit_info.txt파일 📓
            • summer디렉토리 📁
              • watermelon파일 📓
            • winter디렉토리 📁
          • meat디렉토리 📁


  • 절대경로 : 루트(최상위) 디렉토리 부터 시작하는 전체경로
    • / 로 시작하여 파일이나 디렉토리 경로를 명확하게 표시할 수 있음
    • 스크립트 내에서 항상 고정된 파일이나 디렉토리를 참조해야 할 때 활용
      • 시스템 로그 파일이나 환경 설정 파일 등을 접근할때 명확하게 경로 지정
    • 여러번 하위 디렉토리로 이동하는 등 경로가 길어질수록 불편함 → 상대경로 고려
      • 예시) summer디렉토리 이동 : cd /home/Sun/market/fruit/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


  • 정리 : 개발작업시 파일과 디렉토리를 지정할 때 절대경로와 상대경로 그리고 홈 디렉토리를 적절하게 경로지정하여 사용


Git에서 branch는 무엇이고, 왜 사용하나요?


  • git branch : 프로젝트 내 독립적인 작업 공간
    • 브랜치를 통해 프로젝트의 여러 부분을 여러 개발자들과 동시에 작업할 수 있는 환경 구축
    • 각 브랜치는 프로젝트의 특정 시점을 가리키며, 새로운 작업시 별도의 브랜치에서 작업가능
    • 깃 프로젝트 첫 생성시 master 혹은 main 기본 브랜치가 생성되며,
      • 이 브랜치를 다른 브랜치로 복사하여 안전하게 개발작업을 수행할 수 있음
      • 이후 개발이 완료되면 상위 브랜치로 병합


  • 브랜치 사용 목적
    • 효율성 : 여러 개발자가 동시에 다른기능개발이나 버그수정을 작업할 수 있음
    • 안정성 : 새로운기능을 개발하고 테스트할 때 기존코드에 영향을 주지 않고 실험 가능
    • 조직화 : 특정기능개발 또는 버그수정을 위한 작업을 구분하여 관리할 수 있음


  • 브랜치 관리 방안(통상적으로 사용하는 브랜치명)
    • 협업 목적으로 브랜치 사용 시 원활한 커뮤니케이션을 위해 통상적으로 사용되는 브랜치명
    • 지속적으로 사용되는 메인 브랜치와 필요할 때 생성후 삭제하는 보조 브랜치로 분류
    1. 메인 브랜치
      • master 혹은 main : 제품 출시 버전 관리
      • develop : 다음 출시 버전 개발
    2. 보조 브랜치
      • feature : 특정 기능 개발
      • release : develop 브랜치에서 배포 전 마지막 단계에서 최종 점검
      • hotfix : main 브랜치에서 출시후 발생한 버그 수정
    3. 개발(프로젝트)시 브랜치 흐름 예시
      • masterdevelop 브랜치 이동후 개발
      • 특정 기능 필요시 developfeature 브랜치 생성후 개발
      • 기능 완성시 featuredevelop 브랜치 병합후 feature 브랜치 제거
      • 릴리즈 단계시 developrealease 브랜치 생성후 개발
      • 최종 릴리즈 단계시 realeasedevelop, master 병합후 realease 브랜치 제거
      • master 브랜치 오류발생시 masterhotfix 브랜치 생성후 개발
      • 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.