CS
[CS] 운영 체제
프로세스란? 프로세스란 응용 프로그램(혹은 서비스)이 Memory(RAM)에 적재되고, CPU를 할당 받아서 실행되는 것을 의미한다. 이때 Memory 적재, CPU 할당은 운영 체제가 담당한다. 프로세스의 메모리 영역으로는 Code, Data, Heap, Stack이 존재한다. 프로세스 제어 블록(Process Control Block, PCB) 프로세스 제어 블록이란 프로세스 실행과 관련된 전반적인 정보를 저장하는 운영체제의 자료구조이다. 운영체제는 프로세스를 관리하기 위해 프로세스의 생성과 동시에 고유한 PCB 를 생성한다. 프로세스는 CPU 를 할당받아 작업을 처리하다가도 프로세스 전환이 발생하면 진행하던 작업을 저장하고 CPU 를 반환해야 하는데, 이때 작업의 진행 상황을 모두 PCB 에 저장하..
[CS] 네트워크
OSI 7 Layer란? TCP/IP 5 Layer 란? TCP(Transmission Control Protocol, 전송제어 프로토콜)란? TCP는 인터넷을 통해 신뢰성 있는 바이트 스트림을 전송하도록 특별히 설계돤 프로토콜이다. TCP 서비스는 송신자와 수신자 모두가 소켓이라고 부르는 종단점을 생성함으로써 이루어진다. TCP 에서 연결 설정(connection establishment)는 3-way handshake를 통해 행해진다. 모든 TCP 연결은 전이중(full-duplex), 점대점(point to point)방식이다. 전이중이란 전송이 양방향으로 동시에 일어날 수 있음을 의미하며 점대점이란 각 연결이 정확히 2개의 종단점을 가지고 있음을 의미한다. 그러므로 TCP 는 멀티캐스팅이나 브로드..
데이터 베이스
데이터 베이스란? 데이터베이스를 한 마디로 정의하면 ‘데이터의 집합’이라고 할 수 있다. 데이터베이스에는 일상생활 대부분의 정보가 저장되고 관리된다. 오늘 보내거나 받은 카카오톡 메시지, 인스타그램에 등록한 사진, 버스/지하철에서 찍은 교통카드, 카페에서 구매한 아이스 아메리카노 등의 정보가 모두 데이터베이스에 기록된다. 데이터 베이스를 사용하는 이유 데이터베이스가 존재하기 이전에는 파일 시스템을 이용하여 데이터를 관리하였다. 데이터를 각각의 파일 단위로 저장하며 이러한 일들을 처리하기 위한 독립적인 애플리케이션과 상호 연동이 되어야 한다. 파일 시스템을 사용할 때 문제점은 데이터 종속성 문제와 중복성, 데이터 무결성이다. 이를 해결하기 위해 데이터 베이스를 사용한다. 데이터 베이스의 성능 데이터베이스의..
자료 구조
자료구조 & 알고리즘 자료구조는 데이터를 원하는 규칙 또는 목적에 맞게 저장하기 위한 구조이고, 알고리즘이란 자료구조에 쌓인 데이터를 활용해 어떠한 문제를 해결하기 위한 여러 동작들의 모임입니다. Array Array 자료구조는, 논리적 저장 순서와 물리적 저장 순서가 일치하는 자료구조입니다. 따라서 O(1)만에 조회를 할 수 있습니다. 즉 random access 가 가능하다는 장점이 있는 것 입니다. 하지만 삽입 혹은 삭제의 경우 배열의 연속적인 특징이 깨지게 되므로 삽입, 삭제한 원소보다 큰 인덱스를 갖는 원소들을 shift해줘야 하는 비용(cost)이 발생하고 이 경우의 시간 복잡도는 O(n)이 됩니다. 키워드: 저장 순서, 연속적인 특징, shift 비용 Linked List Array의 문제점..