목록GIT (4)
HS_development_log
브랜치란 무엇인가 Git이 브랜치를 다루는 과정을 이해하기 위해서는 Git의 데이터 저장방법에 대해 알아야 한다 · Git은 커밋하면 현 Staging Area에 있는 데이터의 스냅샷에 대한 포인터, 이전 커밋에 대한 포인터, 메시지 같은 커밋 개체를 저장함 · 이전 커밋 포인터가 있어서 현재 커밋이 무엇을 기준으로 바뀌었는지 알 수 있다 · 최초 커밋을 제외한 나머지 커밋은 이전 커밋 포인터가 적어도 하나씩 있고 브랜치를 합친 Merge 커밋은 이전커밋포인터가 여러개있다 · 커밋하면 먼저 루트 디렉터리와 하위 디렉터리의 트리 개체를 체크섬과 함께 저장소에 저장 · 커밋개체를 만들고 메타데이터와 루트 디렉토리 트리 개체를 가리키는 포인터 정보를 커밋 개체에 넣어 저장 · 따라서 필요하면 언제든지 스냅샷을..
Git의 버전 관리 방법 1. Git과 다른 버전관리프로그램의 차이점 · CVS, Subversion, Perforce 등 시스템은 각 파일의 변화를 시간순으로 관리하면서 파일들의 집합을 관리 · 그러나 Git은 성능을 위해 이전상태의 파일에 대한 링크만저장, 데이터를 스냅샷의 스트림처럼 취급 ※스냅샷이란? 과거에 한 때에 존재하고 유지시킨 컴퓨터파일과 디렉터리의 모임. 쉽게말해 잘못 지워지거나 날라간 파일을 복구할수 있는 기능 · 시간순으로 프로젝트의 스냅샷을 저장한다. 2. Git은 거의 모든 명령을 로컬에서 실행 한다! · 모든 명령이 로컬 파일과 데이터만 사용하기 때문에 네트워크에 다른 컴퓨터는 필요없음 · 프로젝트의 모든 히스토리가 로컬 디스크에 있기때문에 모든 명령이 순식간에 실행됨 · 오프라..
Git의 근본적이해와 버전관리 및 Git 사용실력 향상을 위한 정리글입니다. 버전관리란? 파일의 변화를 시간에 따라 기록했다가 나중에 특정 시점의 버전을 다시 꺼내올 수 있는 시스템 버전관리의 종류 1. 로컬 버전 관리 · Patch Set(파일에서 변경되는 부분)을 관리. · Patch Set을 특별한 형식의 파일로 저장 · 일련의 Patch Set을 적용해서 모든 파일을 특정 시점으로 되돌림 2. 중앙집중식 버전 관리(CVCS) · 파일을 관리하는 서버가 별도로 존재 · 클라이언트가 중앙 서버에서 파일을 받아서 사용 2-1) CVCS의 장점 · 누가 무엇을 하고 있는지 알수있음 · 관리자는 누가 무엇을 할지 꼼꼼하게 관리가능 · 모든 클라이언트의 로컬 데이터베이스 관리보다 VCS 하나를 관리하는게 쉬..
자바를 이용한 세그먼트 트리의 기본구조입니다. 이진트리 구조로 구현되었습니다. 구간합을 예시로 들어서 구현했습니다. 세그먼트 트리 초기화 예를 들어 [ 1 , 2 , 3 , 4 , 5 , 6 ] 의 배열을 원소로갖는 세그먼트 트리의 모습은 아래 그림처럼 나와야합니다. 아래 코드로 이러한 모습이 구현이 가능합니다. public int init(int start, int end, int node) { if(start == end) { /* 리프노드이거나 자식노드들이 구간합이 모두구해졌을 경우 */ return tree[node] = arr[start]; /* 구간합 트리에 넣어준다 */ } /* 반씩 나눠서 재귀적으로 자식노드들의 구간합을 구해준다 */ int mid = (start+end)/2; retur..