
전제 : 네트워크 계층 언급시 TCP/IP 4계층을 전제로 함. ❔ HTTP란? HyperText => text, 즉 글은 글인데 일반적인 글이나 문서의 범위를 뛰어넘는 글. Transfer => 전송 Protocol => 규약 의 각 이니셜을 따서 만든 약어로, 그 뜻은 인터넷 데이터 통신 규약이다. 조금 쉽게 말하자면 통신 교환 방식이다. 간혹 HTTP를 언급하는 분들 가운데 HTTP 프로토콜이라고 말씀하시는 분들도 계시던데, HTTP의 P가 이미 프로토콜이라는 단어의 이니셜이라 HTTP 프로토콜은 역전 앞과 같이 의미가 중복되는 겹말이니 HTTP라고 부르도록 하자. 🏛 HTTP 시스템의 구성요소 🧑 클라이언트 HTTP 개념에서는 클라이언트에 사용자 에이전트라는 용어가 있다. 이는 사용자를 위해 작동..

🕵️♂️ 정렬이란? 사전을 참조해보니 친절하게 컴퓨터 용어로서의 정렬의 의미도 알려준다. 2번 뜻을 보면 특정한 조건에 따라 일정한 순서가 되도록 다시 배열한다고 써있는데, 정렬 알고리즘에서는 '숫자의 크기'를 조건으로 삼고 있다. 그럼 정렬 알고리즘을 사용하는 이유는 무엇일까? 👀 정렬 알고리즘을 사용하는 이유 정렬 알고리즘을 사용하는 이유, 즉 우리가 데이터를 정렬해야하는 이유는 바로 탐색을 하기 위해서다. 유튜브 검색결과 창에서는 업로드 날짜, 조회수 등 사용자가 원하는 조건에 맞추어 검색 결과를 불러 올 수 있는 기능을 지원해 주고 있다. 이처럼 데이터들을 내가 원하는 대로 선별해서 활용할 수 있는 건 정렬 덕분이다. 더 정확히는 검색창에 정렬 알고리즘을 구현해준 유튜브 소속 개발자들 덕분이다...

이번에는 자료구조 중 링크드 리스트에 대해 알아보자. 링크드리스트(Linked List) 1. 의미 링크드리스트에서의 데이터는 데이터뿐만이 아니라 다음 데이터와 연결되어있는 위치 정보(link)도 같이 들어있는 노드(Node)로 구성되어있는 자료구조를 말한다. 링크드리스트의 연결돼있다는 뜻은 이러한 구조에서 나온 것. 2. 종류 📄단방향 링크드리스트 : 가장 기본적인 형태의 링크드리스트. 노드안에 다음 노드로 연결된 링크가 포함되어 있다. 📄더블 링크드리스트(이중 연결 리스트) : 노드에 이전 데이터로 연결하는 링크를 추가해서 Head만이 아니라 맨 뒤(Tail)부터 데이터를 조회할 수 도 있고, 다시 앞으로 돌아가서 데이터를 조회할 수도 있다. 3. 특징 1) 인덱스가 없고, 현재 데이터 위치에서 이전..

저번에 알아본 큐에 이어 이번 포스팅에선 스택 자료구조에 관해 알아보도록 하겠다. 스택(Stack) 1. 의미 사전적 의미는 적(積), 즉 쌓는다는 의미다. 2. 스택의 구조 Lifo, Filo(Last-in/First-out, First-in/Last-out) 가장 먼저 들어간 자료가 가장 나중에 나오는 구조이다. 스택의 구조를 그림으로 알아보면 다음과 같다. 자료를 입력하면 데이터중 가장 위에 위치하고, 출력할땐 가장 위의 데이터가 나오는 것이 스택 구조이며, 여기서 Push, Pop이라는 용어가 나오는데, 각 용어는 다음과 같은 의미가 있다. Push : Stack에 데이터를 넣는 기능 Pop : 스택에서 데이터를 꺼내는 기능 Push와 Pop을 코드로 구현해보자. 1 2 3 4 5 6 7 8 9 ..

저번 포스팅에서 전체적인 자료구조의 그림을 그려본데에 이어 이번엔 선형적 구조의 자료구조 유형 중 하나인 큐에 대해서 알아보도록 하겠다. 큐(Queue) 1. 의미 사전적 의미는 열(列), 즉 줄을 선다는 뜻이다. 흔히들 게임할 때 "큐 돌린다" 라고 할 때의 그 큐다. 서버가 터져서 생긴 접속 대기열을 뜻하는 그 큐다. 2. 큐의 구조 Fifo, Lilo(First-in/First-out, Last-in/Last-out) 가장 먼저들어간 자료가 가장 먼저 나오는 구조이다. 큐의 구조를 그림으로 알아보면 다음과 같다. 자료를 입력할땐 Back으로 들어가서, 출력할땐 Front로 나오는 식으로 먼저 넣은 자료가 나오는 것이 큐 구조이며, 여기서 Enqueue, Dequeue라는 용어가 나오는데, 각 용어는..
1. 자료 구조(Data Structure)란? 데이터를 찾고, 저장하고, 삭제하는 방식. 2. 자료 구조의 존재 이유 자료 구조의 목적은 메모리의 효율적 사용이다. 컴퓨터 기본 구조는 다음과 같은 세가지로 이루어져 있는데, 프로세서 : 흔히들 CPU(Central Processing Unit; 중앙 처리 장치)라고 부르는 것. 메모리 : 흔히 램(RAM; Random Access Memory)이라고 부르는 것. 스토리지 : 하드디스크와 같은 데이터를 장기 보존 하기 위한 저장소. 프로그램을 실행하면 해당 프로그램 및 그 데이터가 임시적으로 저장소 → 메모리로 이동하고, 프로세서가 메모리에 있는 데이터를 요청하여 연산을 하게 된다. 이때 데이터를 효율적인 방식으로 구조화하지 못하면 메모리도 효율적으로 사..