Study
-
[Git] .gitignore 작성하기Study/Git 2020. 9. 14. 19:19
.gitignore 버전 관리를 위한 소스코드를 github와 같은 공개된 원격 저장소에 올리는 경우에 보호해야하는 정보나 프로젝트 실행시 자동으로 생성되어 굳이 올리지 않아도 되는 파일을 커밋 대상에서 제외 하기 위해 작성하는 파일이다. 사용 방법 프로젝트의 루트 디렉토리에서 .gitignore 파일을 생성한 뒤 원격 저장소에 올리고 싶지 않은 파일이나 디렉터리를 추가한다. .gitignore .idea .gradle 이그노어 처리된 것을 푸쉬하면 성공적으로 github에 반영된다. 이미 원격 저장소에 올라간 파일을 이그노어 하고싶다면? 기존 원격 저장소에 올라간 파일을 이그노어하기 위해서는 git 에서 cached를 지워야 한다. # 파일인 경우 프로젝트 위치>git rm --cached [파일 명]..
-
[OS] 32 / 64 bit CPU와 운영체제Study/OS 2020. 4. 19. 17:32
컴퓨터의 워드 사이즈 (Word size) 워드사이즈의 개념을 알면 64/32 비트 CPU나 OS에 대한 개념을 이해하기 쉽다. 워드를 직역하면 단어이다. 컴퓨팅에서 워드라는 단어는 컴퓨터에서 데이터를 처리하는 기본 단위라고 되어있는데, 그대로 받아들이면 된다. 32비트, 64비트 하는 것은 워드 사이즈를 말하는 것이다. 32비트 머신(CPU)라면 그 머신의 기본 데이터 처리 단위는 32비트가 되고, 64비트 머신이면 그 머신의 기본 데이터 처리 단위는 64비트가 되는 것이다. 비트는 정보 처리의 단위니까, 당연히 64비트 머신은 32비트 머신 보다 한 번에 처리할 수 있는 데이터의 크기가 2배가 된다. 가능한 CPU와 운영체제 조합 32비트 64비트가 CPU에도 있고 OS에도 있다. 이분법적으로 나누어..
-
[Computational Thinking] 재귀 / 동적 프로그래밍(1)Study/Etc 2020. 3. 28. 15:33
서론 해당되는 항목에 체크하시오. 알고리즘 문제, 내가 생각한 방법으로 될 것 같기는 한데 이유는 모르겠다. 어떻게 프로그램을 짜면 더 빠른지, 더 느린지 전혀 감이 없다. log n을 본 적 없거나, 본적이 있는데 무슨 뜻이라고 한마디로 설명하지는 못한다. Problem Solving 자료를 보고 시간을 들여도 발전이없다. 하나라도 일치하는 상황이 있다면 PS을 본격적으로 공부할 준비가 안된 것일 수 있다. 그래서 필요한 것은? 논리적으로 정확하게 확인하는 과정에 대한 연습이 없어서이다. 되는 것 같다는 기분이나 "공식을 외우는 것" 말고 정확하게 확인해 본 적이 있는가? 프로그램을 짜기 시작하기 전에, 정확한 결과가 나올 것인지, 얼마나 빠르게 돌아갈 것인지 미리 알 수 있는가? 확인이 안된 상태에서..
-
우선순위 큐(Priority Queue)Study/Data Structure 2019. 12. 3. 12:24
우선순위 큐(Priority Queue) 응급실을 예로들면 응급한 환자부터 치료를 받듯이, 우선순위 큐는우선순위가 높은 데이터를 먼저 처리하는 자료구조이다. 우선순위 큐를 구현하는 세가지 방법 DS 삽입 삭제 배열 O(1) O(n) 연결 리스트 O(1) O(n) 힙(heap) O(log n) O(log n) 배열로 구현한 경우의 단점은 데이터 추가/삭제 과정에서 데이터를 한 칸씩 당기거나 밀어야 하는 연산을 해야하기 때문에 시간이 오래걸린다. 또한 삽입 위치를 찾기 위해 배열에 저장된 모든 데이터와 우선순위를 비교해야한다. 연결리스트의 경우에는 배열의 첫번째 문제는 해결이 되지만 삽입 위치를 찾기 위해 모든 노드의 데이터와 우선순위를 비교해야한다. 따라서 우선순위 큐를 위해 만들어진 자료구조라고 하는 힙..
-
지옥에서 온 GIT:: 버전관리의 본질Study/Git 2018. 8. 11. 16:54
:: GIT 들어가기 -GIT : 버전관리 시스템의 분류에 속하는 구체적인 프로그램으로 파일을 여러개의 버전으로 보관하는 행위예) 레포트.xls, 레포트_최종.xls, 레포트_진짜_최종.xls -버전 관리 시스템: 여러가지 역할과 의미를 가지며, 위의 예와 같이 파일의 이름을 더럽히지 않을 수 있는 버전 관리를 할 수 있다. + 소스코드를 백업해서 만약의 사태에 대비하고 이전상태로 쉽게 되돌아감, 여러 사람들과 함께 협업 시스템 -버전 관리 시스템에는 cvs, svn, git 등이 있다. -본질적인 요소는 변경사항을 관리하는 것-혁신적인 요소는 이전 프로그램들의 아성을 뛰어넘는 차이점에 대해서 -GIT은 믿어지지 않을 만큼 어렵고 복잡하다.. (기능이 덮어지고 보태지는 과정에서.. 깃을 처음 사용하는 사..