728x90
반응형

CS 42

[Data Structure] Linked List

LinkedList란 연결 리스트는 자료들을 반드시 연속적으로 배열시키지는 않고 임의의 기억공간에 기억시키되, 자료 항목의 순서에 따라 노드의 포인터 부분을 이용하여 서로 연결시킨 자료 구조이다. 데이터들을 갖고 있는 하나의 요소가 노드이다. 노드 속에 다음 노드를 가리키고 있다. 특히, 제일 앞에 있는 노드는 헤드(head), 제일 끝 노드는 테일(tail)이라고 부른다. head와 tail은 데이터 필드는 있지만 쓰지 않을 것이다. 단지 구현의 용이함을 위해서 사용하였는데, 만약 head와 tail의 데이터 필드를 쓰게 되면 추가, 삭제시 3가지를 고려해야한다. 1) 추가, 삭제할 노드가 맨 앞 노드인가 2) 추가, 삭제할 노드가 맨 뒤 노드인가 3) 추가, 삭제할 노드가 중간 노드인가 하지만 hea..

CS/자료구조 2021.09.15

[OS] CPU란?

CPU(Central Processing Unit) : 중앙처리장치 CPU는 한마디로 표현하자면 '컴퓨터의 두뇌'와 같은 역할을 담당한다. '중앙처리장치' 라는 말 그대로 중앙에서 사용자들이 입력한 명령어를 해석하고 연산한 후 그 결과를 제어하는 역할을 담당 -> 중앙에서 모든 데이터를 처리하는 장치라는 의미 CPU를 한 줄로 표현해본다면 “연산을 위해 만들어진 수많은 트랜지스터의 집합체" CPU는 내부적으로 크게 3가지로 나눌 수 있다. 연산을 수행하는 산술논리장치(ALU) 제어 명령을 전달하는 컨트롤 장치(CU) 결과 값을 일시적으로 기억하는 레지스터(Register) 중앙처리장치의 대표적인 구성장치 제어장치(Control Unit) : 컴퓨터에 있는 모든 장치들의 동작을 지시하고 제어하는 장치이다...

CS/OS 2021.09.08

[Data Structure] Stack 과 Queue

Stack 스택의 개념 스택(stack)이란 쌓아 올린다는 것을 의미한다. 따라서 스택 자료구조라는 것은 책을 쌓는 것처럼 차곡차곡 쌓아 올린 형태의 자료구조를 말한다. 스택의 특징 스택은 위의 사진처럼 같은 구조와 크기의 자료를 정해진 방향으로만 쌓을수 있고, top으로 정한 곳을 통해서만 접근할 수 있다. top에는 가장 위에 있는 자료는 가장 최근에 들어온 자료를 가리키고 있으며,삽입되는 새 자료는 top이 가리키는 자료의 위에 쌓이게 된다. 스택에서 자료를 삭제할 때도 top을 통해서만 가능하다. 스택에서 top을 통해 삽입하는 연산을 'push' , top을 통한 삭제하는 연산을 'pop'이라고 한다. 따라서 스택은 시간 순서에 따라 자료가 쌓여서 가장 마지막에 삽입된 자료가 가장 먼저 삭제된다..

CS/자료구조 2021.09.05

[Data Structure] 자료구조란?

컴퓨터 과학에서 효율적인 접근 및 수정을 가능케 하는 자료의 집합을 의미. 각 원소들사이의 관계가 논리적으로 정의된 일정한 규칙에 의하여 나열되며 자료에 대한 처리를 효율적으로 수행할 수 있도록 자료를 조직적, 체계적으로 구분하여 표현한 것을 말한다. 자료구조가 필요한 이유 데이터를 효율적으로 저장, 관리하여 메모리를 효율적으로 사용하기 위함. 적절한 자료구조의 사용은 메모리의 용량을 절약해주고, 실행시간을 단축시켜줄 수 있다. 자료구조의 선택기준 작업의 효율성, 추상화, 재사용성을 증가시키기 위하여 상황에 따른 적절한 자료구조 사용이 필요하다. 따라서, 아래의 사항을 고려하여 자료를 좀 더 효율적으로 처리할 수 있도록 한다. 자료의 처리시간 자료의 크기 자료의 활용빈도 자료의 갱신정도 프로그램의 용이성..

CS/자료구조 2021.09.01

[Network] HTTP(1.1 , HTTP/2)

HTTP/1.1 동작 방식 HTTP(HyperText Transfer Protocol)은 웹에서 클라이언트(웹 브라우저)가 웹 서버(httpd, nginx, etc…)와 통신하기 위한 프로토콜 중 하나이다. HTTP 1.1은 클라이언트와 서버 간의 통신을 위해 다음과 같은 과정을 거친다. HTTP/1.1은 기본적으로 Connection 한 개당 하나의 요청을 처리하도록 설계되어 있다. 이 때문에 동시에 여러개의 리소스를 주고받는 것이 불가능하고 요청과 응답이 위 그림처럼 순차적으로 이루어진다. 이런 설계 방식 때문에 HTTP 문서 내에 포함된 다수의 리소스 (image, css, script)를 처리하려면 요청할 리소스 개수에 비례하여 Latency(대기시간)이 길어진다. HTTP/1.1 단점 1. HO..

CS/네트워크 2021.08.31

[Network] HTTP

HTTP HTML 문서와 같은 리소스들을 가져올 수 있도록 해주는 프로토콜 HTTP는 웹에서 이루어지는 모든 데이터 교환의 기초이며, 클라이언트-서버 프로토콜이다. 클라이언트-서버 프로토콜이란 (보통 웹브라우저인) 수신자 측에 의해 요청이 초기화되는 프로토콜을 의미. 하나의 완전한 문서는 텍스트, 레이아웃 설명, 이미지, 비디오, 스크립트 등 불러온(fetched) 하위 문서들로 재구성된다. 클라이언트와 서버들은 (데이터 스트림과 대조적으로) 개별적인 메시지 교환에 의해 통신한다. 보통 브라우저인 클라이언트에 의해 전송되는 메시지를 요청(requests)이라고 부르며, 그에 대해 서버에서 응답으로 전송되는 메시지를 응답(responses)이라고 부른다. HTTP는 애플리케이션 계층의 프로토콜로, 신뢰 가..

CS/네트워크 2021.08.28

[Network] 프록시 서버(proxy)

프록시 서버(Proxy Server)란 시스템에 방화벽을 가지고 있는 경우 외부와의 통신을 위해 만들어 놓은 서버 클라이언트가 자신을 통해서 다른 네트워크 서비스에 간접적으로 접속할 수 있게 해주는 컴퓨터 시스템이나 응용 프로그램을 가리킨다. 서버와 클라이언트 사이에 중계기로서 대리로 통신을 수행하는 것을 가리켜 '프록시'라 부르며, 그 중계 기능을 하는 것을 프록시 서버라고 부른다. 프록시 서버 중 일부는 프록시 서버에 요청된 내용들을 캐시를 이용해서 저장해둔다. 이렇게 캐시를 해 두고 난 후에, 캐시 안에 있는 정보를 요구하는 요청에 대해서는 원격 서버에 접근하여 데이터를 가져올 필요가 없게 됨으로써 전송 시간을 절약할 수 있게 됨과 동시에 불필요하게 외부와의 연결을 하지 않아도 된다는 장점을 갖게 ..

CS/네트워크 2021.08.28

[Network] RESTful

REST의 개념 REST의 정의 -> “Representational State Transfer” 의 약자 자원을 이름(자원의 표현)으로 구분하여 해당 자원의 상태(정보)를 주고 받는 모든 것을 의미한다. 즉, 자원(resource)의 표현(representation) 에 의한 상태 전달 자원(resource)의 표현(representation) 자원: 해당 소프트웨어가 관리하는 모든 것 -> Ex) 문서, 그림, 데이터, 해당 소프트웨어 자체 등 자원의 표현: 그 자원을 표현하기 위한 이름 -> Ex) DB의 학생 정보가 자원일 때, ‘students’를 자원의 표현으로 정한다. 상태(정보) 전달 데이터가 요청되어지는 시점에서 자원의 상태(정보)를 전달한다. JSON 혹은 XML를 통해 데이터를 주고 ..

CS/네트워크 2021.08.26

[Network] TCP-3-WayHandshake & 4-WayHandshake

TCP-3-WayHandshake TCP는 장치들 사이에 논리적인 접속을 성립(establish)하기 위하여 3-way handshake를 사용한다. 3 Way-Handshake 란 전송 제어 프로토콜(TCP)에서 통신을 하는 장치간 서로 연결이 잘 되어있는지 확인하는 과정, 방법이다. TCP/IP프로토콜을 이용해서 통신을 하는 응용프로그램이 데이터를 전송하기 전에 먼저 정확한 전송을 보장하기 위해 상대방 컴퓨터와 사전에 세션을 수립하는 과정을 의미한다. Client -> Server : TCP SYN Server -> Client : TCP SYN ACK Client -> Server : TCP ACK 클라이언트가 통신을 하고 싶은 서버에 syn을 보낸다. 그것을 받은 서버는 syn+1과 ack을 보낸..

CS/네트워크 2021.08.24
728x90
반응형