본문 바로가기

CS17

동기와 비동기, blocking&nonblocking 동기와 비동기의 차이 동기/비동기는 작업들이 시간을 맞춰서 실행되는지 아닌지에 대한 이야기이다 비유를 통한 쉬운 설명 해야할 일(task)가 빨래, 설거지, 청소 세 가지가 있다고 가정한다. 이 일들을 동기적으로 처리한다면 빨래를 하고 설거지를 하고 청소를 한다. 비동기적으로 일을 처리한다면 빨래하는 업체에게 빨래를 시킨다. 설거지 대행 업체에 설거지를 시킨다. 청소 대행 업체에 청소를 시킨다. 셋 중 어떤 것이 먼저 완료될지는 알 수 없다. 일을 모두 마친 업체는 나에게 알려주기로 했다. 동기(synchronous : 동시에 일어나는) - 동기는 말 그대로 동시에 일어난다는 뜻이다. 요청과 그 결과가 동시에 일어난다. 바로 요청을 하면 시간이 얼마가 걸리던지 요청한 자리에서 결과가 주어진다. 요청과 결.. 2022. 6. 9.
[네트워크] HTTP와 HTTPS [ HTTP(Hyper Text Transfer Protocol)란? ] HTTP(Hyper Text Transfer Protocol)란 서버/클라이언트 모델을 따라 데이터를 주고 받기 위한 프로토콜로 웹사이트에서 기본적으로 사용되었던 프로토콜이다. HTTP는 텍스트, 이미지,영상, JSON 등등 거의 모든 형태의 데이터를 전송할수 있다. [ HTTP의 구조 ] HTTP는 애플리케이션 레벨의 프로토콜로 TCP/IP 위에서 작동한다. HTTP는 상태를 가지고 있지 않는 Stateless 프로토콜이며 Method, Path, Version, Headers, Body 등으로 구성된다. 하지만 HTTP는 암호화가 되지 않은 평문 데이터를 전송하는 프로토콜이기 때문에, 네트워크 신호를 가로챈다면 HTTP 내용이 .. 2022. 4. 28.
[자료구조] Array와 List 배열(Array) 여러 데이터를 하나의 이름으로 그룹핑해서 관리 하기 위한 자료구조. index와 값의 쌍으로 구성 index는 값에 대한 유일무이한 식별자 논리적 저장 순서와 물리적 저장 순서가 일치 => index로 해당 원소에 접근할 수 있다. (O(1)) 연속된 메모리의 공간으로 이루어져 있다 배열은 정의와 동시에 길이를 지정하며 길이를 바꿀 수 없다. 장점 인덱스를 통한 검색이 용이함. 연속적이므로 메모리 관리가 편하다. 단점 크기가 고정되어 있기 때문에 빈 공간이 남아 있을 수 있다. => 메모리 낭비 정적이므로 배열의 크기를 컴파일 이전에 정해주어야 한다. 컴파일 이후 배열의 크기를 변동 할 수 없다. 리스트(List) 리스트는 순서가 있는 엘리먼트의 모임으로 배열과는 다르게 빈 엘리먼트는 .. 2022. 4. 14.
[자료구조] ArrayList와 LinkedList 리스트(List) 리스트는 배열이 가지고 있는 인덱스 없이 순차적으로 저장하여 빈틈없는 데이터의 적재 라는 장점을 취한 자료구조로 중간에 빈 공간을 허용하지 않으며 저장공간의 크기가 가변적 이라는 특징을 가지고 있습니다. 리스트의 핵심은 원소들간 순서가 있는 데이터의 모임으로 배열과 달리 순서대로 접근해야 합니다. 이 글에서는 가장 많이 쓰이는 ArrayList와 LinkedList에 대해 다루겠습니다. ArrayList ArrayList는 내부적으로 배열(Array)을 이용하는 리스트로 배열의 한계점인 정적인 크기를 극복하기 위해 만들어졌습니다. 따라서 선언시 별도의 크기를 지정해 줄 필요가 없습니다. 하지만 배열을 사용할 때 사용자가 격어야 할 복잡한 과정을 숨겨놓은 것일 뿐, 삽입/삭제시 배열의 요.. 2021. 12. 11.
[자료구조] 스택과 큐에 대해 알아보자 스택(STACK) 스택 자료구조는 접시에 음식을 쌓아 올리듯 데이터를 차곡차고 쌓아 올린 형태로 자료를 구성합니다. 일상에서 쌓아 올리는 방식을 추상화하여 자료구조로 정의한 것이 스택입니다. 스택은 같은 구조와 같은 크기의 데이터를 정해진 방향으로만 쌓을 수 있고 ,top으로 정한 한 곳으로만 접근하도록 제한 되어 있습니다.따라서 top을 통해 들어온 데이터가 일정한 방향, 즉 아래에서 위로 차곡차곡 쌓이게 됩니다. 여기서 top는 가장 마지막에 삽입이 된 위치 즉 스택에서의 가장 상단에 위치하게 됩니다. 스택의 특징으로는 가장 마지막에 삽입된 데이터가 가장 먼저 삭제 된다는 구조적인 특징을 가집니다. 이러한 스택 동작 구조를 후입선출 LIFO(last in First out) 이라고 합니다. 스택의 활.. 2020. 7. 1.