Tag

CS

[컴퓨터 구조] 부동 소수점 (Floating Point)

3 minute read

Floating Point - 부동 소수점 컴퓨터는 정수뿐만 아니라 실수(real number)도 표현할 수 있어야 한다. 특히 과학 계산, 그래픽스, 신호 처리와 같은 분야에서는 아주 크거나 아주 작은 수를 정확하게 표현하는 것이 중요하다.

[OS] 파일 시스템 - File Systems

17 minute read

Introduction 현대의 컴퓨터 시스템에서 파일 시스템(file system)은 저장 장치 위에 있는 데이터를 체계적으로 관리하고 접근할 수 있도록 도와주는 핵심적인 소프트웨어 계층이다. 사용자와 운영체제 사이에서 데이터를 어떻게 저장하고, 읽고, 수정하며, 삭제할지를 결정짓...

[OS] Secondary Storage Structure(Disk, 디스크)

4 minute read

운영체제는 사용자와 하드웨어(디스크) 사이의 중재자 역할을 하며, 디스크의 물리적 세부사항을 추상화하여 파일 시스템이나 메모리 관리 기능을 구현한다. 디스크 구조를 이해하는 것은 I/O 성능이나 디스크 스케줄링, 스왑 공간 같은 주요 기능을 이해하는 데 필수이다.

[데이터 통신] Wired LANs - Ethernet(이더넷)

9 minute read

이더넷(Ethernet) 이 페이지에서는 유선 LAN(Local Area Network)의 대표적인 기술인 이더넷(Ethernet)에 대해 다룬다. 이더넷은 오늘날 가장 널리 사용되는 LAN 기술로, 다양한 세대를 거치며 발전해왔다. 본 페이지에서는 이더넷의 프로토콜 구조, 전송 ...

[데이터 통신] 매체 접근 제어(Media Access Control)

12 minute read

Media Access Control 하나의 통신 채널을 여러 장치가 공유할 때, 각 장치가 언제 어떻게 채널에 접근할지를 결정하는 것이 바로 매체 접근 제어(Media Access Control, MAC)의 역할이다. 이 페이지에서는 MAC의 세 가지 주요 방식인 무작위 접근(R...

[데이터 통신] 데이터 링크 제어(Data Link Control)

9 minute read

데이터 링크 제어 컴퓨터 네트워크에서 데이터가 한 노드에서 다른 노드로 전송되기 위해서는 다양한 계층의 협업이 필요하다. 이 중 데이터링크 계층(Data Link Layer)은 바로 두 인접 노드 간의 신뢰성 있는 데이터 전송을 담당하는 중요한 역할을 한다. 이 계층의 하위에 존재...

[OS] 스레드 (Thread)

14 minute read

프로세스의 문제점과 멀티스레딩의 필요성 (Motivaion) 현대 컴퓨터 시스템에서는 하나의 응용 프로그램이 다양한 작업을 동시에 처리해야 하는 요구가 많아지고 있다. 예를 들어, 웹 서버는 다수의 클라이언트 요청을 실시간으로 처리해야 하며, 워드 프로세서는 사용자의 키 입력을 감...

[데이터 통신] 오류 검출 및 수정 (Error Detection and Correction)

13 minute read

Introduction 우리가 데이터를 전송할 때, 중간에서 오류가 발생하는 것은 피할 수 없는 현실이다. 케이블의 잡음, 신호의 감쇠, 간섭 등 다양한 이유로 인해 데이터가 손상되거나 잘못 전달되는 일이 생긴다. 이번 페이지에서는 이러한 오류를 어떻게 검출(Detection)하...

[데이터 통신] 데이터 링크 계층(Data Link Layer)

6 minute read

Data Link Layer 인터넷은 다양한 네트워크가 서로 연결되어 구성된 거대한 구조이다. 이 네트워크들은 라우터(Router) 또는 스위치(switch) 같은 연결 장치(Connecting devices)를 통해 서로 이어져 있으며, 하나의 호스트에서 다른 호스트로 데이터가 ...

[컴퓨터 구조] 컴퓨터 산술 연산 Integer 덧셈, 뺄셈

1 minute read

컴퓨터에서의 수치 연산 컴퓨터는 다양한 계산을 수행하기 위해 정수(Integer)와 실수(Floating-Point)의 연산을 처리해야 한다. 하지만 하드웨어는 고정된 비트 수로 숫자를 표현하기 때문에, 인간이 생각하는 일반적인 산술과는 다른 제약이 따른다.

[OS] 프로세스(2) - Process Scheduling

11 minute read

프로세스 스케줄링 운영체제가 수행하는 가장 핵심적인 일 중 하나는 CPU를 누구에게 줄지 결정하는 것이다. 시스템에는 항상 여러 개의 Ready 상태 프로세스가 있고, CPU는 한 번에 오직 하나의프로세스만 실행할 수 있다.

[컴퓨터 구조] MIPS 기반 컴퓨터 명령어 체계(1)

4 minute read

MIPS 명령어 집합(Instruction Set) 소개 컴퓨터의 명령어 집합(Instruction Set)은 컴퓨터가 실행할 수 있는 명령어들의 모음으로, 컴퓨터 마다 서로 다른 명령어 집합을 가지지만 여러 공통적인 특징이 존재한다. 초기 컴퓨터의 명령어 집합은 단순한 명령어로...

[컴퓨터 구조] 컴퓨터 성능과 CPU 시간

2 minute read

Computer Performance 컴퓨터 성능은 시스템이 작업을 얼마나 효율적으로 수행하는지를 측정하는 중요한 개념이다. 성능을 평가하는 여러 지표가 있으며, 여기서는 Response Time(응답 시간)과 Throughput(처리량), CPU Time, CPU clocking...

[자료구조] 큐(Queue)

4 minute read

큐(Queue)란? 큐(queue)는 선입선출(FIFO, First In First Out)방식으로 동작하는 선형 자료구조이다. 즉, 큐에 먼저 추가된 데이터가 먼저 제거된다. 이는 현실에서 줄을 서는 방식과 유사하다.

[OS] 부트로더(Bootloader)

5 minute read

부트로더(Boot loader)의 정의 부트로더(Bootloader)는 컴퓨터가 부팅될 때 가장 먼저 실행되는 소프트웨어로, 운영체제를 로드하고 실행하는 역할을 한다. CPU가 직접 실행하는 최초의 코드이며, 하드웨어와 OS 사이의 중간 역할을 수행한다. 부트로더는 OS가 실행되기...

[CS:APP] Chap3 Machine-Level Representation of Programs(3)

2 minute read

3.6 Control 지금까지는 명령어들이 순차적으로 실행되는 “직선적 코드”의 동작만 다뤘다. 하지만 C언어의 조건문, 반복문, switch문과 같은 구조들은 조건부 실행(conditional execution)을 필요로하며, 이는 데이터에 대한 테스트 결과에 따라 실행되는 연...

[CS:APP] Chap3 Machine-Level Representation of Programs(1)

6 minute read

Chapter 3에서는 컴퓨터가 실행하는 머신 코드와 이를 사람이 읽을 수 있는 어셈블리 코드로 표현하는 방식에 대해 다룬다. 고급 언어인 C나 Java는 기계 수준의 세부 구현을 보호하지만, 어셈블리 코드는 저수준 명령어를 직접 지정해야 하며, 이는 프로그램의 런타임 동작을 깊이...

[자료구조] 스택(Stack)

5 minute read

스택(Stack)이란? 스택(Stack)은 후입선출(LIFO, Last In First Out)방식으로 동작하는 선형 자료구조이다. 즉, 스택에 가장 마지막에 추가된 데이터가 가장 먼저 제거된다.

[자료구조] 재귀(Recursion)

4 minute read

재귀 함수는 “자기 자신을 호출하는 함수”를 의미한다. 간결하고 효율적인 코드를 작성하는 데 유용하다. 특히 트리나 그래프와 같은 계층적 구조의 탐색, 분할 정복 알고리즘, 그리고 복잡한 수학적 계산에서 자주 사용된다.

[CS:APP] Chap2 A Representing and Manipulating Information(1)-Information Storage

10 minute read

현대 컴퓨터는 0과 1로 표현된 이진 신호를 이용해 정보를 저장하고 처리한다. 일반적으로 사람들에게는 10진법이 더 친숙할 수 있으나, 컴퓨터 설계에서는 이진법이 더 효율적으로 작동한다. 이진법은 유한 집합의 원소를 표현할 수 있으며, 숫자를 표현하는 방식에는 세 가지 중요한 방법...

Back to top ↑

C++

Back to top ↑

ComputerNetwork

[데이터 통신] Wired LANs - Ethernet(이더넷)

9 minute read

이더넷(Ethernet) 이 페이지에서는 유선 LAN(Local Area Network)의 대표적인 기술인 이더넷(Ethernet)에 대해 다룬다. 이더넷은 오늘날 가장 널리 사용되는 LAN 기술로, 다양한 세대를 거치며 발전해왔다. 본 페이지에서는 이더넷의 프로토콜 구조, 전송 ...

[데이터 통신] 매체 접근 제어(Media Access Control)

12 minute read

Media Access Control 하나의 통신 채널을 여러 장치가 공유할 때, 각 장치가 언제 어떻게 채널에 접근할지를 결정하는 것이 바로 매체 접근 제어(Media Access Control, MAC)의 역할이다. 이 페이지에서는 MAC의 세 가지 주요 방식인 무작위 접근(R...

[데이터 통신] 데이터 링크 제어(Data Link Control)

9 minute read

데이터 링크 제어 컴퓨터 네트워크에서 데이터가 한 노드에서 다른 노드로 전송되기 위해서는 다양한 계층의 협업이 필요하다. 이 중 데이터링크 계층(Data Link Layer)은 바로 두 인접 노드 간의 신뢰성 있는 데이터 전송을 담당하는 중요한 역할을 한다. 이 계층의 하위에 존재...

[데이터 통신] 오류 검출 및 수정 (Error Detection and Correction)

13 minute read

Introduction 우리가 데이터를 전송할 때, 중간에서 오류가 발생하는 것은 피할 수 없는 현실이다. 케이블의 잡음, 신호의 감쇠, 간섭 등 다양한 이유로 인해 데이터가 손상되거나 잘못 전달되는 일이 생긴다. 이번 페이지에서는 이러한 오류를 어떻게 검출(Detection)하...

[데이터 통신] 데이터 링크 계층(Data Link Layer)

6 minute read

Data Link Layer 인터넷은 다양한 네트워크가 서로 연결되어 구성된 거대한 구조이다. 이 네트워크들은 라우터(Router) 또는 스위치(switch) 같은 연결 장치(Connecting devices)를 통해 서로 이어져 있으며, 하나의 호스트에서 다른 호스트로 데이터가 ...

Back to top ↑

CSAPP

[CS:APP] Chap3 Machine-Level Representation of Programs(3)

2 minute read

3.6 Control 지금까지는 명령어들이 순차적으로 실행되는 “직선적 코드”의 동작만 다뤘다. 하지만 C언어의 조건문, 반복문, switch문과 같은 구조들은 조건부 실행(conditional execution)을 필요로하며, 이는 데이터에 대한 테스트 결과에 따라 실행되는 연...

[CS:APP] Chap3 Machine-Level Representation of Programs(1)

6 minute read

Chapter 3에서는 컴퓨터가 실행하는 머신 코드와 이를 사람이 읽을 수 있는 어셈블리 코드로 표현하는 방식에 대해 다룬다. 고급 언어인 C나 Java는 기계 수준의 세부 구현을 보호하지만, 어셈블리 코드는 저수준 명령어를 직접 지정해야 하며, 이는 프로그램의 런타임 동작을 깊이...

[CS:APP] Chap2 A Representing and Manipulating Information(1)-Information Storage

10 minute read

현대 컴퓨터는 0과 1로 표현된 이진 신호를 이용해 정보를 저장하고 처리한다. 일반적으로 사람들에게는 10진법이 더 친숙할 수 있으나, 컴퓨터 설계에서는 이진법이 더 효율적으로 작동한다. 이진법은 유한 집합의 원소를 표현할 수 있으며, 숫자를 표현하는 방식에는 세 가지 중요한 방법...

Back to top ↑

Docker

[Docker] Docker7 - 내 이미지 생성하기(2)

1 minute read

docker build docker build란 Dockerfile을 기반으로 하나의 Docker 이미지(image)를 만드는 명령어이다. 작성한 Dockerfile에 따라 이미지를 만들고, 그 이미지 안에는 작성자가 지정한 프로그램, 파일, 환경 설정이 모두 포함된다. 쉽게 말해...

[Docker] Docker5 - v 옵션 사용 및 실습(Mysql)

2 minute read

-v 옵션이란? 도커에서 -v 옵션은 컨테이너와 호스트 간에 디렉토리나 파일을 공유할 수 있도록 해주는 볼륨(Volume) 마운트 옵션이다. 즉, 컨테이너 안에서 생성되거나 수정되는 파일을 호스트에 저장하거나, 호스트에 있는 파일을 컨테이너에서 접근할 수 있도록 해주는 기능이다.

[Docker] Docker3 - Nginx 설치

3 minute read

Nginx 웹 서버란? Nginx(엔진엑스)는 고성능 HTTP 웹 서버이자 리버스 프록시 서버, 로드 밸런서, 이메일 프록시 서버(IMAP/POP3)로도 사용되는 오픈 소스 소프트웨어이다.

Back to top ↑

백준

Back to top ↑

AI

[딥러닝] 신경망 개념 이해와 퍼셉트론 실습

4 minute read

신경망(Neural Network)이란? 신경망은 인간의 뇌 구조에서 영감을 받은 기계학습 모델로, 입력 데이터를 받아 여러 층을 거쳐 출력값을 예측하는 구조이다. 특히 이미지, 음성, 자연어, 숫자 등 다양한 데이터를 처리할 수 있고, 요즘 우리가 말하는 딥러닝(Deep Lear...

Back to top ↑

OS

[OS] 파일 시스템 - File Systems

17 minute read

Introduction 현대의 컴퓨터 시스템에서 파일 시스템(file system)은 저장 장치 위에 있는 데이터를 체계적으로 관리하고 접근할 수 있도록 도와주는 핵심적인 소프트웨어 계층이다. 사용자와 운영체제 사이에서 데이터를 어떻게 저장하고, 읽고, 수정하며, 삭제할지를 결정짓...

[OS] Secondary Storage Structure(Disk, 디스크)

4 minute read

운영체제는 사용자와 하드웨어(디스크) 사이의 중재자 역할을 하며, 디스크의 물리적 세부사항을 추상화하여 파일 시스템이나 메모리 관리 기능을 구현한다. 디스크 구조를 이해하는 것은 I/O 성능이나 디스크 스케줄링, 스왑 공간 같은 주요 기능을 이해하는 데 필수이다.

[OS] 스레드 (Thread)

14 minute read

프로세스의 문제점과 멀티스레딩의 필요성 (Motivaion) 현대 컴퓨터 시스템에서는 하나의 응용 프로그램이 다양한 작업을 동시에 처리해야 하는 요구가 많아지고 있다. 예를 들어, 웹 서버는 다수의 클라이언트 요청을 실시간으로 처리해야 하며, 워드 프로세서는 사용자의 키 입력을 감...

[OS] 프로세스(2) - Process Scheduling

11 minute read

프로세스 스케줄링 운영체제가 수행하는 가장 핵심적인 일 중 하나는 CPU를 누구에게 줄지 결정하는 것이다. 시스템에는 항상 여러 개의 Ready 상태 프로세스가 있고, CPU는 한 번에 오직 하나의프로세스만 실행할 수 있다.

[OS] 부트로더(Bootloader)

5 minute read

부트로더(Boot loader)의 정의 부트로더(Bootloader)는 컴퓨터가 부팅될 때 가장 먼저 실행되는 소프트웨어로, 운영체제를 로드하고 실행하는 역할을 한다. CPU가 직접 실행하는 최초의 코드이며, 하드웨어와 OS 사이의 중간 역할을 수행한다. 부트로더는 OS가 실행되기...

Back to top ↑

ComputerArchitecture

[컴퓨터 구조] 부동 소수점 (Floating Point)

3 minute read

Floating Point - 부동 소수점 컴퓨터는 정수뿐만 아니라 실수(real number)도 표현할 수 있어야 한다. 특히 과학 계산, 그래픽스, 신호 처리와 같은 분야에서는 아주 크거나 아주 작은 수를 정확하게 표현하는 것이 중요하다.

[컴퓨터 구조] 컴퓨터 산술 연산 Integer 덧셈, 뺄셈

1 minute read

컴퓨터에서의 수치 연산 컴퓨터는 다양한 계산을 수행하기 위해 정수(Integer)와 실수(Floating-Point)의 연산을 처리해야 한다. 하지만 하드웨어는 고정된 비트 수로 숫자를 표현하기 때문에, 인간이 생각하는 일반적인 산술과는 다른 제약이 따른다.

[컴퓨터 구조] MIPS 기반 컴퓨터 명령어 체계(1)

4 minute read

MIPS 명령어 집합(Instruction Set) 소개 컴퓨터의 명령어 집합(Instruction Set)은 컴퓨터가 실행할 수 있는 명령어들의 모음으로, 컴퓨터 마다 서로 다른 명령어 집합을 가지지만 여러 공통적인 특징이 존재한다. 초기 컴퓨터의 명령어 집합은 단순한 명령어로...

[컴퓨터 구조] 컴퓨터 성능과 CPU 시간

2 minute read

Computer Performance 컴퓨터 성능은 시스템이 작업을 얼마나 효율적으로 수행하는지를 측정하는 중요한 개념이다. 성능을 평가하는 여러 지표가 있으며, 여기서는 Response Time(응답 시간)과 Throughput(처리량), CPU Time, CPU clocking...

Back to top ↑

Data Structure

[자료구조] 큐(Queue)

4 minute read

큐(Queue)란? 큐(queue)는 선입선출(FIFO, First In First Out)방식으로 동작하는 선형 자료구조이다. 즉, 큐에 먼저 추가된 데이터가 먼저 제거된다. 이는 현실에서 줄을 서는 방식과 유사하다.

[자료구조] 스택(Stack)

5 minute read

스택(Stack)이란? 스택(Stack)은 후입선출(LIFO, Last In First Out)방식으로 동작하는 선형 자료구조이다. 즉, 스택에 가장 마지막에 추가된 데이터가 가장 먼저 제거된다.

[자료구조] 재귀(Recursion)

4 minute read

재귀 함수는 “자기 자신을 호출하는 함수”를 의미한다. 간결하고 효율적인 코드를 작성하는 데 유용하다. 특히 트리나 그래프와 같은 계층적 구조의 탐색, 분할 정복 알고리즘, 그리고 복잡한 수학적 계산에서 자주 사용된다.

Back to top ↑

Math

Back to top ↑

SoftwareEngineering

[소프트웨어 공학] System modeling(2)

4 minute read

Behavioral Models(행위 모델) Behavioral models는 시스템이 실행 중일 때 나타나는 동적(dynamic) 동작을 표현한다. 이러한 모델은 시스템이 외부로부터 자극(stimulus)을 받았을 때, 무슨 일이 일어나는지, 또는 어떻게 반응하는지를 시각적으로 ...

[소프트웨어 공학] System modeling(1)

10 minute read

System modeling 소프트웨어 시스템을 설계하고 구축하는 과정에서 우리는 그 시스템을 다양한 관점에서 이해하고 설명할 필요가 있다. 단순히 코드나 기능의 나열만으로는 전체 시스템의 구조와 동작을 포괄적으로 파악하기 어렵기 때문이다. 이때 중요한 도구가 바로 시스템 모델링(...

[소프트웨어 공학] Requirements Engineering

16 minute read

Requirements Engineering 요구사항 공학(Requirements Engineering)이란, 고객이 시스템에 기대하는 서비스와 그 시스템이 작동하고 개발되어야 하는 제약 조건을 규명하는 과정을 말한다. 이 과정을 통해 도출되는 결과물이 바로 시스템 요구 사항(Sy...

[소프트웨어 공학] Software Processes

11 minute read

Software Process 소프트웨어 공학에서 소프트웨어 프로세스는 소프트웨어 시스템을 개발하기 위해 필요한 일련의 구조화된 활동들을 의미한다. 소프트웨어 프로세스는 매우 다양한 형태가 존재하지만, 일반적으로는 다음과 같은 네 가지 기본 활동을 포함한다.

Back to top ↑

Algorithm

Back to top ↑

Computer Vision

Back to top ↑

OpenCV

Back to top ↑

PrimeNumber

Back to top ↑

DeepLearning

[딥러닝] 신경망 개념 이해와 퍼셉트론 실습

4 minute read

신경망(Neural Network)이란? 신경망은 인간의 뇌 구조에서 영감을 받은 기계학습 모델로, 입력 데이터를 받아 여러 층을 거쳐 출력값을 예측하는 구조이다. 특히 이미지, 음성, 자연어, 숫자 등 다양한 데이터를 처리할 수 있고, 요즘 우리가 말하는 딥러닝(Deep Lear...

Back to top ↑

DP

Back to top ↑

Graph

Back to top ↑

Union-Find

Back to top ↑

Set

Back to top ↑

List

Back to top ↑

BFS

Back to top ↑

Recursion

[자료구조] 재귀(Recursion)

4 minute read

재귀 함수는 “자기 자신을 호출하는 함수”를 의미한다. 간결하고 효율적인 코드를 작성하는 데 유용하다. 특히 트리나 그래프와 같은 계층적 구조의 탐색, 분할 정복 알고리즘, 그리고 복잡한 수학적 계산에서 자주 사용된다.

Back to top ↑

ArrayList

Back to top ↑

Stack

[자료구조] 스택(Stack)

5 minute read

스택(Stack)이란? 스택(Stack)은 후입선출(LIFO, Last In First Out)방식으로 동작하는 선형 자료구조이다. 즉, 스택에 가장 마지막에 추가된 데이터가 가장 먼저 제거된다.

Back to top ↑

Linked List

Back to top ↑

Queue

[자료구조] 큐(Queue)

4 minute read

큐(Queue)란? 큐(queue)는 선입선출(FIFO, First In First Out)방식으로 동작하는 선형 자료구조이다. 즉, 큐에 먼저 추가된 데이터가 먼저 제거된다. 이는 현실에서 줄을 서는 방식과 유사하다.

Back to top ↑