연결리스트란? 연속된 메모리 위치에 저장되지 않는 선형 데이터 구조 포인터를 사용해서 연결된다. Linked List는 컴퓨터 과학에서 사용하는 기본적인 선형 자료 구조 중 하나 각 노드는 데이터 필드와 다음 노드에 대한 참조를 포함하는 노드로 구성 Linked List는 데이터의 동적 추가, 삭제를 상대적으로 쉽게 할 수 있는 장점이 있다. Linked List의 핵심 요소는 다음과 같다. 노드(Node) : Linked List의 기본 단위, 데이터를 저장하는 필드와 다음 노드를 가리키는 링크 필드로 구성 포인터 : 각 노드 안에서 다음이나 이전의 노드와의 연결 정보를 가지고 있는 공간 헤드(Head) : Linked List에서 가장 처음 위치하는 노드. 리스트 전체를 참조하는데 사용 테일(Tail..
CS
Array? 배열은 연속된 메모리 공간에 순차적으로 저장된 데이터 모음이다. 대부분 프로그래밍 언어에서는 동일 타입 데이터를 저장한다. 예를들어 int 타입의 배열에서는 정수 요소만 저장할 수 있다. 배열을 구성하는 각각의 값을 요소(element)라고 한다. 배열에서의 위치를 나타내는 숫자를 인덱스(index)라고 한다. 배열 표현 C언어에서 배열 선언 시 아래와 같다. 위 배열을 그림으로 표현 시 다음과 같다. 그림에서 알 수 있는 사실은 다음과 같다. 연속된 메모리 공간에 데이터가 순차적으로 저장된다. C언어에서 인덱스는 0부터 시작한다. 배열의 크기는 10이므로 10개의 요소를 저장할 수 있다. 각 요소는 인덱스를 통해 엑세스 할 수 있다. 배열의 시간 복잡도 Operation Average Ca..
패리티 비트 정보 전달 과정에서 오류가 생겼는지 검사하기 위해 추가하는 비트를 말한다. 전송하고자 하는 데이터의 각 문자에 1bit를 더하여 전송한다. 패리티 비트를 포함한 데이터에서 1의 개수가 짝수인지 홀수인지에 따라 짝수 패리티, 홀수 패리티라고 한다. 위 그림 처럼 8bit의 데이터를 전송할 때 맨 끝에 패리티 비트를 추가하여 전송한다 짝수 패리티의 경우 100101010 홀수 패리티의 경우 100101011 패리티 비트를 추가하는 위치는 맨 앞이 될 수도 있고, 맨 끝이 될 수 있다. 패리티 비트를 정하여 데이터를 전송하면 데이터를 받는 쪽에서는 수신된 데이터의 전체 비트를 계산하여 패리티 비트를 다시 계산하는 것으로 오류가 발생하였는지 확인할 수 있다. 그러나 패리티 비트로는 오류가 발생하였다..
캐시 메모리란? 속도가 빠른 장치와 느린 장치에서 속도 차이에 따른 병목 현상을 줄이기 위한 메모리 CPU가 주기억장치에서 저장된 데이터를 읽어올 때, 자주 사용하는 데이터를 캐시 메모리에 저장한 뒤, 다음에 이용할 때 주기억장치가 아닌 캐시 메모리에서 먼저 가져오면서 속도를 향상시킨다. 속도라는 장점을 얻지만, 용량이 적기도 하고 비용이 비싼 점이 있다. CPU에는 이러한 캐시 메모리가 2~3개 정도 사용된다. L1, L2, L3 캐시 메모리라고 부른다 속도와 크기에 따라 분류한 것으로, 일반적으로 L1 캐시부터 먼저 사용된다 CPU에서 가장 빠르게 접근하고, 여기서 데이터를 찾지 못하면 L2로 감 듀얼 코어 프로세서에서의 캐시 메모리 각 코어마다 독립된 L1 캐시 메모리를 가지고, 두 코어가 공유하는..
CPU CPU는 인간의 두뇌에 해당하는 컴퓨터에서 가장 핵심적인 부분이다. 크게 연산장치, 제어장치, 레지스터 3가지로 구성된다. 연산장치(ALU) 산술 연산과 논리 연산을 수행 산술논리연산장치라고도 불림 연산에 필요한 데이터를 레지스터에서 가져오고, 연산결과를 다시 레지스터로 보냄 덧샘, 뺄샘 등의 산술연산과 배타적 논리합, 논리합, 논리곱 등의 논리연산을 계산하는 디지털 회로 제어장치 명령어를 순서대로 실행할 수 있도록 하는 제어장치 주기억장치에서 프로그램 명령어를 꺼내 해독하고, 그 결과에 따라 명령어 실행에 필요한 제어 신호를 기억장치, 연산장치, 입출력장치로 보냄 프로그램 수행 순서를 제어하는 프로그램 계수기, 수행중인 명령어를 저장하는 명령 레지스터, 명령을 해독해 제어신호를 보내는 명령 해독..
컴퓨터의 구성 요소 컴퓨터 시스템은 크게 하드웨어와 소프트웨어로 나누어진다. 하드웨어 : 컴퓨터를 구성하는 기계장치 (물리적 장치) 소프트웨어 : 하드웨어의 동작을 지시하고 제어하는 명령어 집합 하드웨어와 소프트웨어가 함께 상호작용을 하며 원하는 일을 수행하게 된다. 컴퓨터는 기본적으로 읽고 처리한 뒤 저장하는 과정으로 이루어진다 READ → PROCESS → WRITE 이 과정을 진행하면서 끊임없이 주기억장치(RAM)과 소통한다 이때 운영체제가 64bit라면, CPU는 RAM으로부터 데이터를 한번에 64비트씩 읽어온다. 하드웨어 메인 보드(Main Board) 마더 보드(Mather Board)라고도 불리며 주회로가 내장된 보드 CPU나 RAM과 같이 시스템이 작동하기 위한 주요 부품 장착과 주변 장치..
UDP 프로토콜이란? User Datagram Protocol의 약자로 데이터를 데이터그램 단위로 처리하는 프로토콜이다. 비연결형, 신뢰성 없는 전송 프로토콜이다. 데이터그램 단위로 쪼개면서 전송을 해야하기 때문에 전송 계층이다. Transport layer에서 사용하는 프로토콜 UDP와 TCP? UDP와 TCP가 나오게된 이유 IP의 역할은 Host to Host (장치 to 장치)만을 지원한다. 장치에서 장치로 이동은 IP로 해결되지만, 하나의 장비안에서 수많은 프로그램들이 통신을 할 경우에는 IP만으로는 한계가 있다. IP에서 오류가 발생한다면 ICMP에서 알려준다. 하지만 ICMP는 알려주기만 할 뿐 대처를 못하기 때문에 IP보다 위에서 처리를 해줘야 한다. 1번을 해결하기 위하여 포트 번호가 나..
TCP/IP 프로토콜이란? 네트워크 통신에서 사용하는 신뢰성있는 연결 방식 TCP는 기본적으로 unreliable network(비신뢰성 네트워크)에서 reliable network(신뢰성 네트워크)를 보장할 수 있도록 도와주는 프로토콜 TCP는 network congestion avoidance algorithm(네트워크 혼잡 방지 알고리즘)을 사용 TCP/IP는 하나의 프로토콜이 아닌 TCP와 IP를 합쳐서 부르는 프로토콜 TCP/IP를 사용하는 것은 IP 주소 체계를 따르고 IP Routing을 이용해 목적지에 도달한 후 TCP 특성을 활용해 송수신자간의 논리적 연결을 생성하고 신뢰성을 유지할 수 있도록 하겠다는 것을 의미 TCP/IP는 송신자가 수신자에게 IP 주소를 사용하여 데이터를 전달하고 그..