Machineboy空
2005년 리누스 토르발스(Linus Torvalds), 리눅스 창시자이기도 한 그가 지옥같은 작업환경에서 벗어나기 위해 만든 시스템이 바로 깃입니다. 리눅스를 만드는 개발자들은 깃을 통해 리눅스의 수많은 소스 코드를 효율적으로 관리하기 시작했습니다. 그리고 오늘날에는 리눅스뿐만 아니라 수많은 소프트웨어의 소스 코드가 깃을 통해서 관리되고 있습니다. 버전 관리(Version Control)문서를 수정할 때마다 언제 수정했는지, 어떤 것을 변경했는지 편하고 구체적으로 기록하기 위한 버전 관리 시스템백업(Backup)백업은 현재 컴퓨터에 있는 자료를 다른 컴퓨터에 복제하는 것입니다. 외장 하드 디스크나 USB 디스크 등 별도의 저장 장치를 마련해서 백업할 수도 있고, 드롭박스(Dropbox)나 구글 드라이브..
사용자에게 직접 묻거나 행동을 관찰하는 기회가 주어져도 주관을 배제하고 객관적인 설명만으로 디자인의 근거를 마련하기 어렵다. 하지만 인간의 해옹과 사고를 연구하는 심리학의 법칙들에 기대어 디자인의 여러 요소를 설정한다면 쉽게 공감을 얻을 수 있다. 이 책에서 제시하는 10가지 심리학 법칙들은 간편하지만 강력한 설득의 무기가 되어 줄 것이다. 부디 많은 독자가 이 책을 통해 모호한 직관이 아닌 검증된 과학적 분석에 기반헤 사용자가 경험을 설계할 기회를 얻기를 바란다. 사용자 경험(User Experience)이라는 용어는 1993년 애플 근무 당시 도널드 노먼이 만든 용어다. 이후 노먼은 이 책에서 첫 번째로 소개된 제이콥의 법칙을 만든 제이콥 닐슨과 함께 닐슨 노먼 그룹을 설립한다. 노먼은 전기공학을 전..
분할정복(Divide and Conquer)Divide : 큰 문제를 작은 문제로 분할한다.기저사례(base case)를 잘 설정하여 일정 기준 이상 분할되지 않도록 해야한다.Conquer: 작은 문제의 답을 모아 큰 문제의 답을 구한다.일반적으로 재귀로 구현한다. 백트래킹(backtracking)답이 될 수 없는 경우는 탐색 대상에서 제외하여 효율적으로 답을 구하는 알고리즘가지치기(pruning)를 통해 연산량의 유의미하게 줄여줌가지치기를 사용하기 위해서는 현재 상태에서 도달할 수 있는 상태가 모두 답이 될 수 없음을 보여야함.정확한 시간 복잡도를 구하기 어려움 분할 정복백트래킹주로 재귀적인 방식으로 해결하위 문제를 해결하고 결과를 결합하여 문제를 해결문제 해결을 위해 모든 가능한 선택을 시도한 후,..
1. 회문(Palindrome)ex) "소주만병만주소", "수박이박수", "Madam, I'm Adam", "1234321" 회문을 판단하는 방법? 2. 올바른 괄호 문자열(VPS = Valid Parenthesis String)ex) (()), (())()보통은 스택(Stack)을 사용해서 해결')'가 입력될 때마다, 스택에 있는 '('를 하나씩 지운다. 이때 스택(top)이 비어있거나 '('이 없으면 올바른 괄호 문자열이 아님모든 문자열을 순회한 뒤, 스택이 비어있으면 올바른 괄호 문자열이고 비어있지 않으면 올바르지 않은 괄호 문자열임