전체 글
-
Git 교과서 03 (병합과 충돌)Git Github 2021. 12. 15. 20:48
병합과 충돌 브랜치를 생성하는 목적은 원본 코드에 영향을 주지 않고 개발하기 위해서이다. 개발이 끝나면 다시 원본 브랜치에 작업한 결과를 반영해야 한다. 분리된 브랜치를 한 브랜치로 합치는 작업을 병합(합치기)이라고 한다. 깃의 자동병합은 원본을 기준으로 두 파일의 변경 이력을 비교한다. 변경된 파일 내용이 발견되면 자동으로 수정된 코드 내용을 병합한다. 깃은 병합을 위해 두 가지 알고리즘을 제공한다. 충돌 없이 병합하기 위해 두 가지의 차이를 알아야 한다. Fast-Forward 병합 3-way 병합 Fast-Forward 병합 직역하면 빨리 감기라는 뜻이다. 주로 혼자 개발할 때 사용한다. 모든 변경 사항은 순차적으로 진행된다. 브랜치를 생성할 때 분기 기준은 master의 최종 커밋 포인터다. 깃의..
-
Git 교과서 02 (임시처리)Git Github 2021. 12. 15. 20:13
스태시 작업 브랜치를 변경하려면 워킹 디렉터리는 깨끗한 상태로 정리되어 있어야 한다. 하지만 긴급하게 브랜치를 변경해야 하는 경우 스태시(stash)기능을 사용하여 현재 수정 작업을 멈추고, 다른 브랜치에 있는 코드를 수정할 수 있다. 스태시는 '현재 워킹 디렉터리 내역을 별도의 스택 영역에 잠시 보관하라'는 명령이다. 브랜치를 이동할 때 워킹 디렉터리가 충돌하는 것을 방지한다. $ git stash git stash save는 스태시 여러 개를 생성할 때 유용하다 $ git stash save 스태시 작업을 할 때 --keep-index 옵션을 사용하여 스테이지 영역의 파일들을 제외할 수도 있다. 등록되지 않은 untracked 상태의 파일을 스태시로 생성하고 싶다면 --include-untracked..
-
-
OSI 7 Layer와 TCP/IP ProtocolComputer Science 2021. 11. 10. 20:41
OSI 7 Layer 국제 표준화 기구(ISO)에서 컴퓨터 네트워크 프로토콜을 계층으로 표현한 모델을 OSI 7 Layer(Open System Interconnection)이라고 한다. 1. Physical Layer - 실제 Data bit를 전송하는 물리적 링크 설정, 유지, 절단. - 전기 신호들이 구리 선이나 광섬유를 통해 전달. - 전송 매체로는 Twisted Pair, 광케이블, 동축 케이블, 기타 무선 매체 등이 있다. 단위 : signal, bit 대표 장치 : Hub, Reapeater(신호 세기 증폭) 2. Data Link Layer - 논리적 연결 제어, 매체 접근 제어, 하드웨어 주소 지정. - Point to Point 간 신뢰성 있는 전송을 보장하는 계층. CRC 기반의 오류..
-
프로그래밍 기법과 패러다임 종류Computer Science 2021. 10. 30. 09:05
프로그래밍 언어의 세 가지 기본 요소 프로그래밍 언어들은 저마다 용도와 특징이 다르다. 하지만 정보를 조작한다는 같은 목적을 공유한다. 정보를 표현하고 조작하는 데는 세 가지 기본 요소가 필요하다. 정보를 나타내는 값, 값을 만들어 내는 식, 값을 이용하여 컴퓨터에게 명령을 전하는 문이 있다. 정보를 나타내는 '값' 값(value)은 정보를 나타낸다. 컴퓨터는 비트만을 취급함으로 일정한 약속에 따라 정보를 비트로 부호화해야 한다. 하나의 값으로 부호화할 수 있는 정보의 정류는 언어마다 다르다. 정수나 부동소수점 같이 매우 간단한 정보만을 값으로 부호화할 수 있는 수준에서 언어가 복잡해지면서 문자와 문자열도 값으로 다루기 시작했다. C는 여전히 저수준 언어에 속하지만 프로그래머가 구조(구조체)를 정의하는 ..
-
컴퓨터의 동작 원리Computer Science 2021. 10. 28. 23:02
컴퓨터의 기본 구조 컴퓨터의 핵심 부품에는 프로세서와 메모리가 있다. 메모리(RAM)는 컴퓨터가 수행해야 할 명령어를 써넣는 공간이다. 추가적으로 연산의 대상이 되는 데이터도 저장된다. 프로세서(CPU)는 메모리에서 명령어와 데이터를 읽어 그에 맞게 계산하는 부품이다. 메모리 메모리는 수많은 셀로 나뉘어 있다. 각 셀은 미세한 양의 데이터를 저장한다. 셀을 구별하기 위한 주소 번호가 순서대로 매겨져 있다. 데이터를 읽고 쓰는 작업은 셀을 한 번에 하나씩 조작하는 연산을 통해 수행한다. 셀의 주소 번호를 통해 특정 셀에 접근하여 읽기(값 구하기), 쓰기(새 값 저장) 작업을 수행할 수 있다. 메모리는 전기 부품이므로, 주소는 전선을 통해 이진수로 전송한다. 높은 전압이 걸린 전선은 '1'신호를, 낮은 전압..
-
병합 정렬, 힙 정렬 (파이썬)Algorithm 2021. 6. 22. 21:33
병합 정렬 merge sort 노이만이 고안한 분할 정복 알고리즘. 퀵 정렬과 반대로 안정 정렬에 속한다. 배열을 앞부분과 뒷부분의 두 그룹으로 나누어 각각 정렬한 후 병합하는 작업을 반복하는 알고리즘이다. 과정 i) 리스트의 길이가 0또는 1이면 이미 정렬된 것으로 본다. ii) 정렬되지 않은 리스트를 절반으로 잘라 비슷한 크기의 두 부분 리스트로 나눈다. iii) 각 부분 리스트를 재귀적으로 병합 정렬을 이용해 정렬한다. iv) 두 부분 리스트를 다시 하나의 정렬된 리스트로 합병한다. 장점 - 안정적인 정렬 방법 - 레코드를 linked list로 구성하면, 데이터의 이동은 무시할 수 있을 정도로 작아진다. (퀵 정렬을 포함한 다른 정렬 방법보다 효율적이다.) 단점 - 레코드를 배열로 구성하면 임시 ..
-
모두의 네트워크 Lesson 정리Book Review 2021. 5. 30. 12:27
Lesson 1 네트워크 구조 컴퓨터 간의 연결을 컴퓨터 네트워크라고 부른다. 인터넷은 전 세계의 큰 네트워크부터 작은 네트워크까지 연결하는 거대한 네트워크다. 패킷은 컴퓨터 간의 데이터를 주고받을 때 네트워크를 통해 흘러가는 작은 데이터 조각이다. 큰 데이터는 작은 패킷으로 분할한다(대역폭을 줄이기 위해서). Lesson 2 정보의 양을 나타내는 단위 컴퓨터는 0과 1밖에 이해하지 못한다. 정보를 나타내는 최소 단위를 비트라고 하며, 비트 여덟 개를 1바이트라고 한다. 숫자와 문자의 대응표를 문자 코드라고 한다. Lesson 3 LAN과 WAN 특정 지역을 범위로 하는 네트워크를 LAN이라고 한다. 인터넷 서비스 제공자(ISP)가 제공하는 서비스를 사용하여 구축한 네트워크를 WAN이라고 한다. LAN은..