본문 바로가기

Programming310

[Git] 브랜치(Branch) 이번에 소개할 내용은 브랜치 입니다. 이 브랜치는 깃만의 기능은 아니고 다른 버전 관리 시스템에서도 사용되고있는 기술입니다. 1. 브랜치 일반적으로 브랜치 라고 함은 '나뭇가지'를 떠올리게 됩니다. 하나의 나무 줄기에서 여러개의 가지로 뻗듯이 버전 관리 시스템에서 파일들의 갈래(흐름)을 의미하고 있습니다. 파일 시스템으로 이야기하자면 하나의 파일로 부터 여러개의 파일로 나누어 분산 작업을 진행하는 것 입니다. 더 간단히 야매처럼 이야기하면 하나의 파일의 복사본을 만들어서 각기 작업한다~ 정도가 되겠습니다. 2. 왜 브랜치를 사용하는가? 그렇다면 왜 브랜치라는 것을 사용할까요? 그 이유는 하나의 작업 트리를 여러 용도로 사용하기 위해서 입니다. 하나의 작업 트리를 가지고도 한 사람은 새로운 기능을 추가하는.. 2021. 7. 1.
[Git] tracked 파일의 상태 변화 지난 포스트에서 untracked와 tracked 상태를 알아보았습니다. 그리고 tracked 상태는 커밋 진행과정에 따라 세부적인 상태로 나뉜다고 했었는데 이번 포스트에선 그 상태들에 대해서 알아보도록 하겠습니다. 1. unmodified unmodified, 즉 수정되지 않은 상태를 의미합니다. 커밋을 한 후 추가적인 수정사항이 없는 파일들은 모두 이 상태를 갖습니다. 작업공간에서 git status 명령을 입력했을 때 다음과 같이 'nothing to commit, working tree clean'이라는 메세지가 출력되면 작업 트리의 모든 파일들이 unmodified 상태를 의미합니다. 2. modified 파일이 수정된 상태입니다. 수정이 되고 스테이징 되기 이전의 상태임(즉, 파일을 수정만 한.. 2021. 6. 30.
[Data Structure] 연결 리스트 구현 연결 리스트에는 단순, 원형, 이중 연결리스트 등이 존재합니다. 오늘은 이 중 첫 번째인 단순 연결 리스트를 구현해보도록 하겠습니다. 1. 노드 생성 우선 제일 먼저 할 일은 노드를 생성하는 부분을 구현하는 것 입니다. 지난 포스트에서 소개한 노드의 구조를 보면 다음과 같이 데이터와 링크 필드 두가지로 구현되어 있습니다. public class LinkedList { private class Node { //노드 private Object data;//데이터 필드 private Node next;//링크 필드 public Node(Object input) { this.data = input; this.next = null; } } //첫 번째 노드 private Node head; //마지막 노드 pri.. 2021. 6. 28.
[Data Structure] 연결 리스트(Linked List) 지난번에 선형 리스트에 대해서 소개를 했습니다. 그러나 선형 리스트는 배열이기 때문에 크기가 정해져있다는 큰 문제점을 가지고 있었습니다. 이점을 보완한 구조가 연결 리스트입니다. 1. 연결 리스트 연결 리스트는 노드로 이루어진 리스트 입니다. 선형 리스트와 다르게 자료의 물리적 순서와 논리적인 순서가 일치하지 않아도 된다는 점이 있으며, 각 자료들은 노드를 통해 저장되고 연결되어있습니다. 연결 리스트는 단순, 원형, 이중 연결과 같은 여러 방식이 있으며 여러 포스트에 걸쳐서 차차 소개해나가도록 하겠습니다. 2. 노드의 구조 리스트 첫 시간에도 설명했지만 노드는 다음과 같은 구조를 가지고 있습니다. 링크 필드가 다음 노드를 가리키고 있고 이것들이 이어져서 리스트를 구성하는 방식이었죠. 이러한 노드를 구현해.. 2021. 6. 25.
[Git] tracked 파일 파일을 만들고 커밋하기까지의 과정에서 깃은 여러 파일 상태를 가지고 변화해나갑니다. 다양한 상태가 있지만 우선 가장 크게 나눌 수 있는 추적(tracked)과 미추적(untracked)파일에 대해서 설명하려고 합니다. 참고로 추적 파일에 대한 것은 스테이징 포스트에서 스테이징 취소 관련해서 다룰때 살짝 언급됐었습니다. 1. tracked와 untracked 버전 관리 과정에서 가장 크게 나눌 수 있는 상태입니다. tracked는 말그대로 추적. 한 번이라도 버전을 만든, 즉 한 번이라도 커밋했던 경우 추적 파일 상태가 됩니다. 반대로 untracked는 커밋 된적이 없는 파일에 부여되는 상태겠지요. 지난 포스트까지 따라오셨다면 현재 폴더에는 다음과 같은 파일이 존재하고 있습니다. 이 test01.txt를.. 2021. 6. 25.
[Data Structure] 선형 리스트 (Linear List) 배열을 통해 구현되는 선형 리스트에 대해서 먼저 다루도록 하겠습니다. 1. 선형 리스트 (Linear List) 선형 리스트는 자료들이 순서대로 저장되어있는 리스트입니다. 이때 저장된 물리적 순서와 논리적 순서가 반드시 일치해야합니다. 그래서 선형 리스트는 배열로 구현하게 됩니다. 2. 선형 리스트 구현 사실 선형 리스트는 배열이라고 봐도 무방할 정도로 그동안 써왔던 배열을 그대로 이용하게 됩니다. 다음과 같이 크기가 5인 동물들 배열을 만들었습니다. 아래와 같은 배열이 존재하고 있는 상태입니다. cat dog bear 각 노드에 접근하기 위해서는 데이터에 해당하는 인덱스 값을 통해 접근 하면 됩니다. 이 상태에서 cat과 dog 사이에 snake를 넣는다면 dog와 bear를 각각 인덱스 한 칸씩 뒤로.. 2021. 6. 24.
300x250