전체 글 25

[네트워크 기초] TCP

이전 게시글을 통해 OSI 7계층과 TCP/IP Protocol Stack(= 4계층)에 관해 포스팅을 하는 시간을 가졌다.이번 시간에는 TCP 프로토콜에 관해 깊게 알아보는 시간을 가질 것이다.  UDP, TCP는 4 계층인 전송계층에서 정의된 프로토콜이다.해당 계층의 주요 역할은 데이터를 목적지까지 전송하는 것이다. 그렇다면 TCP 프로토콜은 이 전송을 어떤 방식을 통해 데이터 전송을 진행하고, 어떤 특징을 가지는지 살펴보자.신뢰성 있는 데이터 전송 - TCP  TCP는 데이터 전송을 수행할 때, 안정성 &신뢰성이 있다는 특징을 가지는 프로토콜이다.   이때 신뢰성과 안정성을 보장받을 수 있도록한느 TCP의 특징이 무엇이냐? 라고하면 다음과 같다. 1. Connection - Oriented : TC..

네트워크 2024.06.14

[Web 서버 기초] ASP.Net Core - Middleware Pipeline

이번 게시글을 보기 전에 지난 게시글에서 Web API Framework가 제공하는 여러가지 기능들에 관해 알아보았으니,먼저 읽어보는 것이 좋다.     우리는 전공 과정을 공부하며 파이프라이닝이라는 단어를 자주 들어봤을 것이다. (CPU 파이프라이닝 등..)어느 파트에서 등장하느냐에 따라 의미가 조금씩 다르지만, 시사하는 바는 비슷하다. 어떤 절차, 단계적으로 진행되는 작업의 흐름인 것이다.    컴퓨터 공장에서 컴퓨터를 생산하는 과정을 한번 떠올려보자, 한 명의 사람이 부품을 분류, 조립, 점검, 포장을 한번에 작업하지 않는다. 각 과정을 세분화하여,  이를 책임지고 수행하는 담당자를 라인마다 배치하고 이에 맞춰 수행하게 될 것이다. 이 실생활의 흐름을 잘 기억하고 다음 그림을 살펴보자.     지난..

Server 2024.06.12

[컴퓨터 구조 기초] 명령어의 구조와 주소지정 방식

명령어는 어떻게 구성되어 있는가? 명령어는 컴퓨터가 이해 하는 정보 중 하나이다.우리가 동작시키는 모든 프로그램들은 명령어의 형태로 메모리에 저장되며, CPU는 이 명령어를 가져와 해석하고실행하는 과정을 수행한다. 그렇다면 이 명령어들은 어떻게 구성되어 있는지 한번 살펴보자. 명령어는 크게 연산 코드와 오퍼랜드로 구분할 수 있다.  연산 코드는 말 그대로 수행할 연산에 관한 내용을 담고 있는 부분이다.대표적인 연산으로는 다음과 같다.데이터 전송산술/논리 연산제어 흐름 변경입출력 제어 오퍼랜드는 피연산자이다. 즉 연산을 수행하기 위해 사용하는 데이터를 말한다. 하나가 들어갈 수도 있고 여러 개가 들어갈 수 도 있다. 데이터 값을 그대로 담아 넣어 사용하기도 하지만, 보통은 메모리의 주소나 레지스터의 이름(..

CS 2024.06.06

[네트워크 기초] OSI 모델을 통한 데이터 전송 예시

그래서 데이터가 어떻게 전송되는 건데? 이전 시간에는 OSI 모델을 각 계층 별로 설명하는 시간을 가졌다.그렇다면, 해당 개념을 기반으로 이번 게시글에서는 데이터가 실제 어떤 방식으로 전송되는지 간단하게 알아볼 것이다. 실제 데이터 전송과정은 캡슐화와 역캡슐화의 반복 전송 계층(Transport Layer)에서 데이터를 어떤 방식으로 전송을 수행할 지, 최종 목적지는 어디인지 결정한 후, 그 정보를 부착. 인터넷 계층(Network Layer)에서 목적지 호스트의 IP주소를 확인하고 최적의 경로를 탐색 및 결정 후, 그 정보를 부착. 데이터 링크 계층(Data Link Layer)에서 노드 간의 통신을 위한 방법을 결정 후, 그 정보 부착  (이때 데이터 링크 계층에서는 헤더 뿐만 아니라, 오류 검출을 ..

네트워크 2024.06.06

[네트워크 기초] OSI 모델과 TCP/IP 모델

지난 게시글에서 네트워크와 관련된 기본적인 개념을 설명하는 시간을 가졌다. 이때 필자는 서로 다른 호스트가 통일된 규칙을 기반으로 원할한 통신을 할 수 있도록 프로토콜을 정의했다고 말했다. 2024.06.04 - [네트워크] - [네트워크 기초] 네트워크와 프로토콜 [네트워크 기초] 네트워크와 프로토콜네트워크(Network)란  우리는 여러 사용자와 통신할 때, 공유기, 라우터 등등 다양한 장치를 사용해 데이터나 서비스를 주고 받는 등 기능을 수행할 수 있다. 컴퓨터는 모뎀을 통해 라우터에 연결dev-ohdam.tistory.com   오늘은 실제로 우리가 사용하는 네트워크 프로토콜 스택인 TCP/IP 4계층 모델과 해당 모델과 함께 자주 등장하는 개념인 OSI 모델과 관련된 설명을 진행해보고자 한다.계..

네트워크 2024.06.05

[네트워크 기초] 네트워크와 프로토콜

네트워크(Network)란  우리는 여러 사용자와 통신할 때, 공유기, 라우터 등등 다양한 장치를 사용해 데이터나 서비스를 주고 받는 등 기능을 수행할 수 있다. 컴퓨터는 모뎀을 통해 라우터에 연결되고, 인터넷 망을 통해 다른 컴퓨터와 연결된다.  이때, 이런 장치들은 서로 다양한 형태(무선, 유선)으로 연결되어 통신을 수행한다. 이 항목들은 각각 노드(Node) 와 링크 (Link)의 형태로 표현할 수 있다.  이러한 노드와 링크의 집합체를 우리는 네트워크 (Network)라고 칭한다.또는 데이터나 리소스 공유를 위한 통신 체계라고 요약할 수 있다. 네트워크는 사용자로 하여금 다음과 같은 기능을 제공한다.응용 프로그램의 목적에 맞는 통신 방법 제공 (채팅?, 웹 브라우저?, 게임?)호스트 간의 신뢰할 ..

네트워크 2024.06.04

[컴퓨터 구조 기초] 컴퓨터와 명령어

컴퓨터가 이해하는 정보컴퓨터는 크게 데이터와 명령어 이 두 가지 정보를 이해한다.데이터는 이미지, 텍스트, 미디어 등의 정적인 정보들이다. 그리고 컴퓨터가 어떤 실질적인 동작을 수행 할 수 있도록 알려주는 정보가 명령어이다.이 두 데이터는 모두 0과 1로만 이루어져 있으며, 컴퓨터는 이 정보를 이해하고 목적에 맞게 처리한다.   이때 컴퓨터를 통해 실행되는 프로그램 또한 개발자들이 작성한 명령어들의 집합체다.우리는 프로그램을 개발할 때는 C++/C# 과 같은 프로그래밍 언어를 사용해 소스 코드를 작성하고 이를 실행 파일로 만든다. 그런데 0과 1의 정보만 이해할 수 있는 컴퓨터는 어떻게 우리가 작성한 소스 코드를 이해할까?   고급 언어 VS 저급 언어 결론만 말하자면 컴퓨터는 소스 코드를 이해할 수 없..

CS 2024.06.03

[컴퓨터 구조 기초] 컴퓨터의 핵심 부품

우리가 사용하는 컴퓨터는 여러 부품들이 복잡하게 얽혀있는 큰 기계 장치이다. 이번 게시글에서는 컴퓨터를 이루는 주요 장치들에 관해 간단하게 설명해보도록 하겠다.CPU(Central Processing Unit) 중앙처리장치라고 불리는 이 부품은 컴퓨터의 뇌라고 볼 수 있다. 컴퓨터는 혼자서 작동하지 않는다. 이 거대한 기계 장치를 움직이게 하기 위해선 우리는 명령어를 전달해줘야 한다.CPU는 전달된 명령어를 해석하고, 처리하는 역할을 수행한다. 해당 부품안에는 산술/논리 연산을 처리하기 위한 ALU, 임시기억장치인 레지스터, 각 부품으로 부터 발생되는 제어 신호를 처리하고 명령어를 해석하는 제어 장치로 이루어져 있다. Memory 주기억장치라고 불리는 이 부품은 실행되고 있는 프로그램의 명령어와 데이터를..

CS 2024.06.02

[데이터베이스 기초] 데이터베이스 VS 파일 시스템

파일 & 파일 시스템데이터베이스가 개발되기 전에 우리는 파일 시스템을 사용해 데이터를 관리했다. 파일이란? 단순한 txt, 이미지가 아닌 데이터들이 저장된 것파일은 다음과 같은 특징을 가진다.순차적인 레코드로 구성된다.레코드는 데이터와 연관된 필드의 모임이다.파일 시스템이란? 이런  데이터 파일을 관리하는 모듈/시스템 여기서 파일 시스템의 중요한 특징은 다음과 같다. 데이터에 대한 프로그램의 의존도가 높다.응용 프로그램 안에는 데이터에 접근하기 위한 상세한 처리방법이 정의되어 있다.즉, 프로그램이 데이터에 종속되어 있다는 것이다.이게 뭐가 문젠데?예를 들어 내가 LoL 챔피언 정보가 담겨있는 파일을 만들었다고 가정하자.상황1. 나는 해당 파일을 이용해 롤 백과사전 프로그램을 만들 것이다.2. 해당 파일 ..

Database 2024.05.31

[데이터베이스 기초] 데이터베이스 시스템

Database System   지난 게시글을 통해 DBMS와 데이터베이스 시스템이라는 용어를 설명했었다. 하지만 해당 그림에선 새로 추가된 부분이 몇몇 보인다. 이번 게시글에서는 해당 부분을 차례대로 살펴볼 것이다. 사용자 Programmer/User 우리는(사용자/프로그래머) DBMS를 통해 데이터베이스를 관리하기 위해 질의어(Query Language)를 사용한다.질의어는 인간이 사용하는 실제 언어와 유사한 언어 방식을 제공한다.SQL : Structured Query Language. (구조화 된 질의어) ==> 표준 질의어이다. DBMS Software 사용자가 작성한 질의어을 컴파일하기 위한 소프트웨어 (Software to Process Queries/Program)사용자가 요청한 (데이터와..

Database 2024.05.31