금주의 위클리 페이퍼의 주제는 2가지이다.
1) 절대 경로와 상대 경로는 무엇인가요?
2) Git에서 branch는 무엇인가요?
절대 경로와 상대 경로
파일 경로란 컴퓨터 시스템에서 파일의 위치를 나타내는 주소로, 앱, 시스템, 운영 체제가 필요한 파일을 찾을수 있도록 도와주는 것이다.
절대 경로란?
파일의 root directory에서 부터 해당 파일까지의 전체 경로를 의미한다. 어디에서 출발하든 절대적으로 변하지 않는 경로를 뜻한다. 예를 들어서 Window OS의 기준으로 내문서에 위치한 hello.txt를 찾는다고 예시를 들어 보면 아래와 같은 주소를 사용 할 수 있다.
C:\Users\Username\Documents\hello.txt
이와같이 hello.txt를 만나기전 경유한 directory를 모두 표기하는 방식을 의미한다.
상대 경로란?
출발 위치에 따라서 상대적으로 변하는 경로로 현재 작업하는 디렉토리의 기준에서 파일 혹은 다른 디렉토리의 위치를 나타내는 것으로 사용 된다. 현재 작업중인 디렉토리에서 상위 디렉토리, 현재 디렉토리, 루트 디렉토리, 홈 디렉토리로 접근 하는 방법은 아래와 같다.
현재 디렉토리 : ./
상위 디렉토리 : ../
홈 디렉토리 : ~
루트 디렉토리 : /
예를 들어 현재 디렉토리에서 상위 디렉토리에 있는 hello.txt 파일로 이동하는 경우는 아래와 같이 나타낼 수 있다.
c:\User\Username\documents\hello.txt # 절대경로
..\hello.txt # 상대경로
이와 같이 documents 디렉토리 속 다른 디렉토리에 있는 경우에 ../의 명령어를 이용해 짧게 구성해서 처리 할 수 있다는 장점이 있다.
Git에서 branch
Git은 코드 버전 관리 프로그램으로 파일의 변경사항에 대해서 추적하고 여러명의 개발자들이 소프트웨어를 개발하는데 협업과 버전관리에 장점을 지닌 프로그램이다. 이때 코드를 여러개로 복사하여 원래 코드와는 상관없이 독립적으로 개발을 진행하는데 이런 독립적으로 개발하는것이 브랜치이다.
Git의 데이터를 저장하는 과정에 대해서 이해를 해야하는데, Git은 데이터의 변경사항과 추가된 파일에 대해서 새로 기록하지 않고, 일련의 스냅샷(커밋)으로 기록한다는 것에서 착안한 방법이다. 커밋을 하면 현재 Staging Area에 있는 데이터에 대한 포인터, 저자나 커밋 메세지 같은 메타데이터, 이전 커멧에 대한 포인터 등을 포함하는 커밋 개체(커밋 object)를 저장한다. 이전에 있는 커밋의 포인터를 통해서 어떠한 기준으로 바뀌었는지를 알 수 있다.
동일 소스코드 위에서 개발자 별 작업내용이 달라 질 수 있는데 예를 들어 버그를 수정하거나, 디자인을 바꾸거나, 신규기능을 추가하는 작업을 할 때 각각의 서로 다른 작업에 대한 각기 다른 버전의 코드가 만들어지고 이를 해결하고 다양한 작업을 할 수 있게 만들어주는 기능이 바로 branch이다. 분리된 작업 영역에서 서로 변경된 내용에 대해서는 원래 버전과 비교하고 merge를 통해서 하나의 새로운 버전을 만들어 낼 수 있다.

위의 사진과 같이 각기 필요에 의해서 만들어진 각각의 브랜치는 다른 브랜치의 영향을 받지 않은 상태로 동시에 진행하고, 이렇게 만들어진 브랜치는 다른 브랜치들와 병합(Merge)를 함으로써, 다른 작업의 내용을 하나의 브랜치로 모을 수 있습니다. 브랜치의 가장 큰 장점으로는 여러명이 동시 작업을 할 때 다른 사람의 작업에 대해서 영향을 주거나 받지 않도록, 메인 브랜치에서 자신의 작업을 위한 독립된 브랜치를 만들고, 작업이 끝난 후에 병합과정을 통해서 하나의 작업물로 합쳐서 진행 할 수 있다는 부분에서 큰 장점을 지닌다.
'Codeit Sprint > Weekly_Paper' 카테고리의 다른 글
위클리페이퍼 #7 - 장바구니분석, 지지도(Support), 신뢰도(Confidence), 향상도(Lift) (0) | 2024.08.16 |
---|---|
위클리페이퍼 #6 - High Dimensional Clustering, 고유값(Eigenvalue), 고유벡터(Eigenvector), 히스토그램(Histogram) (0) | 2024.08.09 |
위클리 페이퍼 #4 - 클래스(Class), 인스턴스(Instance), 정적메소드 (0) | 2024.07.11 |
위클리 페이퍼 #3 - 데이터 전처리, t-test (0) | 2024.07.04 |
위클리 페이퍼 #2 - 1종 오류, 2종 오류, p-value (0) | 2024.06.28 |