[컴퓨터 구조] 부동 소수점 (Floating Point)
Floating Point - 부동 소수점 컴퓨터는 정수뿐만 아니라 실수(real number)도 표현할 수 있어야 한다. 특히 과학 계산, 그래픽스, 신호 처리와 같은 분야에서는 아주 크거나 아주 작은 수를 정확하게 표현하는 것이 중요하다.
Floating Point - 부동 소수점 컴퓨터는 정수뿐만 아니라 실수(real number)도 표현할 수 있어야 한다. 특히 과학 계산, 그래픽스, 신호 처리와 같은 분야에서는 아주 크거나 아주 작은 수를 정확하게 표현하는 것이 중요하다.
Introduction 현대의 컴퓨터 시스템에서 파일 시스템(file system)은 저장 장치 위에 있는 데이터를 체계적으로 관리하고 접근할 수 있도록 도와주는 핵심적인 소프트웨어 계층이다. 사용자와 운영체제 사이에서 데이터를 어떻게 저장하고, 읽고, 수정하며, 삭제할지를 결정짓...
운영체제는 사용자와 하드웨어(디스크) 사이의 중재자 역할을 하며, 디스크의 물리적 세부사항을 추상화하여 파일 시스템이나 메모리 관리 기능을 구현한다. 디스크 구조를 이해하는 것은 I/O 성능이나 디스크 스케줄링, 스왑 공간 같은 주요 기능을 이해하는 데 필수이다.
Outline 이 페이지는 유선 LAN 기술을 기반으로 다양한 네트워크 장치들의 역할과 가상 LAN(VLAN) 개념을 소개하는 장이다. 실제 네트워크는 단일한 장치나 케이블로 구성되지 않고, 다양한 연결 장치(hubs, switches, routers)들이 함께 구성되며, 이들을 ...
이더넷(Ethernet) 이 페이지에서는 유선 LAN(Local Area Network)의 대표적인 기술인 이더넷(Ethernet)에 대해 다룬다. 이더넷은 오늘날 가장 널리 사용되는 LAN 기술로, 다양한 세대를 거치며 발전해왔다. 본 페이지에서는 이더넷의 프로토콜 구조, 전송 ...
Media Access Control 하나의 통신 채널을 여러 장치가 공유할 때, 각 장치가 언제 어떻게 채널에 접근할지를 결정하는 것이 바로 매체 접근 제어(Media Access Control, MAC)의 역할이다. 이 페이지에서는 MAC의 세 가지 주요 방식인 무작위 접근(R...
데이터 링크 제어 컴퓨터 네트워크에서 데이터가 한 노드에서 다른 노드로 전송되기 위해서는 다양한 계층의 협업이 필요하다. 이 중 데이터링크 계층(Data Link Layer)은 바로 두 인접 노드 간의 신뢰성 있는 데이터 전송을 담당하는 중요한 역할을 한다. 이 계층의 하위에 존재...
프로세스의 문제점과 멀티스레딩의 필요성 (Motivaion) 현대 컴퓨터 시스템에서는 하나의 응용 프로그램이 다양한 작업을 동시에 처리해야 하는 요구가 많아지고 있다. 예를 들어, 웹 서버는 다수의 클라이언트 요청을 실시간으로 처리해야 하며, 워드 프로세서는 사용자의 키 입력을 감...
Introduction 우리가 데이터를 전송할 때, 중간에서 오류가 발생하는 것은 피할 수 없는 현실이다. 케이블의 잡음, 신호의 감쇠, 간섭 등 다양한 이유로 인해 데이터가 손상되거나 잘못 전달되는 일이 생긴다. 이번 페이지에서는 이러한 오류를 어떻게 검출(Detection)하...
Data Link Layer 인터넷은 다양한 네트워크가 서로 연결되어 구성된 거대한 구조이다. 이 네트워크들은 라우터(Router) 또는 스위치(switch) 같은 연결 장치(Connecting devices)를 통해 서로 이어져 있으며, 하나의 호스트에서 다른 호스트로 데이터가 ...
곱셈 (Multiplication)
컴퓨터에서의 수치 연산 컴퓨터는 다양한 계산을 수행하기 위해 정수(Integer)와 실수(Floating-Point)의 연산을 처리해야 한다. 하지만 하드웨어는 고정된 비트 수로 숫자를 표현하기 때문에, 인간이 생각하는 일반적인 산술과는 다른 제약이 따른다.
Transmission Media(전송 매체)
프로세스 스케줄링 운영체제가 수행하는 가장 핵심적인 일 중 하나는 CPU를 누구에게 줄지 결정하는 것이다. 시스템에는 항상 여러 개의 Ready 상태 프로세스가 있고, CPU는 한 번에 오직 하나의프로세스만 실행할 수 있다.
Process Concept
컴파일러 최적화의 효과(Effect of Compiler Optimization)
Data Communication & Networking
MIPS 명령어 집합(Instruction Set) 소개 컴퓨터의 명령어 집합(Instruction Set)은 컴퓨터가 실행할 수 있는 명령어들의 모음으로, 컴퓨터 마다 서로 다른 명령어 집합을 가지지만 여러 공통적인 특징이 존재한다. 초기 컴퓨터의 명령어 집합은 단순한 명령어로...
User Operating System Interface 운영체제와 사용자가 상호작용하는 방법을 의미하며, 크게 CLI(Command Line Interface)와 GUI(Graphical User Interface)로 나뉜다.
Data Communication & Networking
Computer Performance 컴퓨터 성능은 시스템이 작업을 얼마나 효율적으로 수행하는지를 측정하는 중요한 개념이다. 성능을 평가하는 여러 지표가 있으며, 여기서는 Response Time(응답 시간)과 Throughput(처리량), CPU Time, CPU clocking...
Data Communication & Networking
큐(Queue)란? 큐(queue)는 선입선출(FIFO, First In First Out)방식으로 동작하는 선형 자료구조이다. 즉, 큐에 먼저 추가된 데이터가 먼저 제거된다. 이는 현실에서 줄을 서는 방식과 유사하다.
부트로더(Boot loader)의 정의 부트로더(Bootloader)는 컴퓨터가 부팅될 때 가장 먼저 실행되는 소프트웨어로, 운영체제를 로드하고 실행하는 역할을 한다. CPU가 직접 실행하는 최초의 코드이며, 하드웨어와 OS 사이의 중간 역할을 수행한다. 부트로더는 OS가 실행되기...
3.6 Control 지금까지는 명령어들이 순차적으로 실행되는 “직선적 코드”의 동작만 다뤘다. 하지만 C언어의 조건문, 반복문, switch문과 같은 구조들은 조건부 실행(conditional execution)을 필요로하며, 이는 데이터에 대한 테스트 결과에 따라 실행되는 연...
연결 리스트 (Linked List)
3.4 Accessing Information
유클리드 호제법
Chapter 3에서는 컴퓨터가 실행하는 머신 코드와 이를 사람이 읽을 수 있는 어셈블리 코드로 표현하는 방식에 대해 다룬다. 고급 언어인 C나 Java는 기계 수준의 세부 구현을 보호하지만, 어셈블리 코드는 저수준 명령어를 직접 지정해야 하며, 이는 프로그램의 런타임 동작을 깊이...
2.4 Floagting Point
2.3 Integer Arithmetic
소수 구하기 - 에라토스테네스의 체
2.2 Integer Representations
스택(Stack)이란? 스택(Stack)은 후입선출(LIFO, Last In First Out)방식으로 동작하는 선형 자료구조이다. 즉, 스택에 가장 마지막에 추가된 데이터가 가장 먼저 제거된다.
추상 자료형(Abstract data type, ADT)이란?
재귀 함수는 “자기 자신을 호출하는 함수”를 의미한다. 간결하고 효율적인 코드를 작성하는 데 유용하다. 특히 트리나 그래프와 같은 계층적 구조의 탐색, 분할 정복 알고리즘, 그리고 복잡한 수학적 계산에서 자주 사용된다.
현대 컴퓨터는 0과 1로 표현된 이진 신호를 이용해 정보를 저장하고 처리한다. 일반적으로 사람들에게는 10진법이 더 친숙할 수 있으나, 컴퓨터 설계에서는 이진법이 더 효율적으로 작동한다. 이진법은 유한 집합의 원소를 표현할 수 있으며, 숫자를 표현하는 방식에는 세 가지 중요한 방법...
자료구조에 대한 기본적인 이해
유니온 파인드
Chapter 1. A Tour of Computer Systems
Mac OS OpenCV 설치 방법
유클리드 호제법
[BOJ/백준] 1309번 : 동물원 BOJ 1309
[BOJ/백준] 11689번 : GCD(n, k) = 1 BOJ 11689
[BOJ/백준] 1016번 : 제곱 ㄴㄴ 수 BOJ 1016
unordered_map 사용법
[BOJ/백준] 1929번 : 소수 구하기 BOJ 1747
[BOJ/백준] 1747번 : 소수&팰린드롬 BOJ 1747
소수 구하기 - 에라토스테네스의 체
[BOJ/백준] 1717번 : 집합의 표현 BOJ 1717
유니온 파인드
[BOJ/백준] 13565번 : 침투 BOJ 13565
[BOJ/백준] 1932번 : 정수 삼각형 BOJ 1932
Outline 이 페이지는 유선 LAN 기술을 기반으로 다양한 네트워크 장치들의 역할과 가상 LAN(VLAN) 개념을 소개하는 장이다. 실제 네트워크는 단일한 장치나 케이블로 구성되지 않고, 다양한 연결 장치(hubs, switches, routers)들이 함께 구성되며, 이들을 ...
이더넷(Ethernet) 이 페이지에서는 유선 LAN(Local Area Network)의 대표적인 기술인 이더넷(Ethernet)에 대해 다룬다. 이더넷은 오늘날 가장 널리 사용되는 LAN 기술로, 다양한 세대를 거치며 발전해왔다. 본 페이지에서는 이더넷의 프로토콜 구조, 전송 ...
Media Access Control 하나의 통신 채널을 여러 장치가 공유할 때, 각 장치가 언제 어떻게 채널에 접근할지를 결정하는 것이 바로 매체 접근 제어(Media Access Control, MAC)의 역할이다. 이 페이지에서는 MAC의 세 가지 주요 방식인 무작위 접근(R...
데이터 링크 제어 컴퓨터 네트워크에서 데이터가 한 노드에서 다른 노드로 전송되기 위해서는 다양한 계층의 협업이 필요하다. 이 중 데이터링크 계층(Data Link Layer)은 바로 두 인접 노드 간의 신뢰성 있는 데이터 전송을 담당하는 중요한 역할을 한다. 이 계층의 하위에 존재...
Introduction 우리가 데이터를 전송할 때, 중간에서 오류가 발생하는 것은 피할 수 없는 현실이다. 케이블의 잡음, 신호의 감쇠, 간섭 등 다양한 이유로 인해 데이터가 손상되거나 잘못 전달되는 일이 생긴다. 이번 페이지에서는 이러한 오류를 어떻게 검출(Detection)하...
Data Link Layer 인터넷은 다양한 네트워크가 서로 연결되어 구성된 거대한 구조이다. 이 네트워크들은 라우터(Router) 또는 스위치(switch) 같은 연결 장치(Connecting devices)를 통해 서로 이어져 있으며, 하나의 호스트에서 다른 호스트로 데이터가 ...
Transmission Media(전송 매체)
Data Communication & Networking
Data Communication & Networking
Data Communication & Networking
3.6 Control 지금까지는 명령어들이 순차적으로 실행되는 “직선적 코드”의 동작만 다뤘다. 하지만 C언어의 조건문, 반복문, switch문과 같은 구조들은 조건부 실행(conditional execution)을 필요로하며, 이는 데이터에 대한 테스트 결과에 따라 실행되는 연...
3.4 Accessing Information
Chapter 3에서는 컴퓨터가 실행하는 머신 코드와 이를 사람이 읽을 수 있는 어셈블리 코드로 표현하는 방식에 대해 다룬다. 고급 언어인 C나 Java는 기계 수준의 세부 구현을 보호하지만, 어셈블리 코드는 저수준 명령어를 직접 지정해야 하며, 이는 프로그램의 런타임 동작을 깊이...
2.4 Floagting Point
2.3 Integer Arithmetic
2.2 Integer Representations
현대 컴퓨터는 0과 1로 표현된 이진 신호를 이용해 정보를 저장하고 처리한다. 일반적으로 사람들에게는 10진법이 더 친숙할 수 있으나, 컴퓨터 설계에서는 이진법이 더 효율적으로 작동한다. 이진법은 유한 집합의 원소를 표현할 수 있으며, 숫자를 표현하는 방식에는 세 가지 중요한 방법...
Chapter 1. A Tour of Computer Systems
독립된 실행 환경 이번 실습은 다음을 보여준다.
Dockerfile을 사용해 컨테이너 기반 독립 실행 환경 만들기 및 명령어 실습
docker build docker build란 Dockerfile을 기반으로 하나의 Docker 이미지(image)를 만드는 명령어이다. 작성한 Dockerfile에 따라 이미지를 만들고, 그 이미지 안에는 작성자가 지정한 프로그램, 파일, 환경 설정이 모두 포함된다. 쉽게 말해...
-v 옵션이란? 도커에서 -v 옵션은 컨테이너와 호스트 간에 디렉토리나 파일을 공유할 수 있도록 해주는 볼륨(Volume) 마운트 옵션이다. 즉, 컨테이너 안에서 생성되거나 수정되는 파일을 호스트에 저장하거나, 호스트에 있는 파일을 컨테이너에서 접근할 수 있도록 해주는 기능이다.
Nginx 웹 서버란? Nginx(엔진엑스)는 고성능 HTTP 웹 서버이자 리버스 프록시 서버, 로드 밸런서, 이메일 프록시 서버(IMAP/POP3)로도 사용되는 오픈 소스 소프트웨어이다.
컨테이너 관련 명령어
Docker 개요
[BOJ/백준] 1309번 : 동물원 BOJ 1309
[BOJ/백준] 11689번 : GCD(n, k) = 1 BOJ 11689
[BOJ/백준] 1016번 : 제곱 ㄴㄴ 수 BOJ 1016
[BOJ/백준] 1929번 : 소수 구하기 BOJ 1747
[BOJ/백준] 1747번 : 소수&팰린드롬 BOJ 1747
[BOJ/백준] 1717번 : 집합의 표현 BOJ 1717
[BOJ/백준] 13565번 : 침투 BOJ 13565
[BOJ/백준] 1932번 : 정수 삼각형 BOJ 1932
개발 환경 세팅(macOS) Python 설치(권장 버전: 3.10) 공식 홈페이지 또는 macOS에서 Homebrew 사용
주요 딥러닝 개념 요약 아래는 실습에 필요한 주요 개념들의 요약 정리본이다.
신경망(Neural Network)이란? 신경망은 인간의 뇌 구조에서 영감을 받은 기계학습 모델로, 입력 데이터를 받아 여러 층을 거쳐 출력값을 예측하는 구조이다. 특히 이미지, 음성, 자연어, 숫자 등 다양한 데이터를 처리할 수 있고, 요즘 우리가 말하는 딥러닝(Deep Lear...
TensorFlow
3.1 기본 자료형 클래스
OpenCV 주요 함수 설명
Mac OS OpenCV 설치 방법
컴퓨터 비전 개요
Introduction 현대의 컴퓨터 시스템에서 파일 시스템(file system)은 저장 장치 위에 있는 데이터를 체계적으로 관리하고 접근할 수 있도록 도와주는 핵심적인 소프트웨어 계층이다. 사용자와 운영체제 사이에서 데이터를 어떻게 저장하고, 읽고, 수정하며, 삭제할지를 결정짓...
운영체제는 사용자와 하드웨어(디스크) 사이의 중재자 역할을 하며, 디스크의 물리적 세부사항을 추상화하여 파일 시스템이나 메모리 관리 기능을 구현한다. 디스크 구조를 이해하는 것은 I/O 성능이나 디스크 스케줄링, 스왑 공간 같은 주요 기능을 이해하는 데 필수이다.
프로세스의 문제점과 멀티스레딩의 필요성 (Motivaion) 현대 컴퓨터 시스템에서는 하나의 응용 프로그램이 다양한 작업을 동시에 처리해야 하는 요구가 많아지고 있다. 예를 들어, 웹 서버는 다수의 클라이언트 요청을 실시간으로 처리해야 하며, 워드 프로세서는 사용자의 키 입력을 감...
프로세스 스케줄링 운영체제가 수행하는 가장 핵심적인 일 중 하나는 CPU를 누구에게 줄지 결정하는 것이다. 시스템에는 항상 여러 개의 Ready 상태 프로세스가 있고, CPU는 한 번에 오직 하나의프로세스만 실행할 수 있다.
Process Concept
User Operating System Interface 운영체제와 사용자가 상호작용하는 방법을 의미하며, 크게 CLI(Command Line Interface)와 GUI(Graphical User Interface)로 나뉜다.
부트로더(Boot loader)의 정의 부트로더(Bootloader)는 컴퓨터가 부팅될 때 가장 먼저 실행되는 소프트웨어로, 운영체제를 로드하고 실행하는 역할을 한다. CPU가 직접 실행하는 최초의 코드이며, 하드웨어와 OS 사이의 중간 역할을 수행한다. 부트로더는 OS가 실행되기...
Floating Point - 부동 소수점 컴퓨터는 정수뿐만 아니라 실수(real number)도 표현할 수 있어야 한다. 특히 과학 계산, 그래픽스, 신호 처리와 같은 분야에서는 아주 크거나 아주 작은 수를 정확하게 표현하는 것이 중요하다.
곱셈 (Multiplication)
컴퓨터에서의 수치 연산 컴퓨터는 다양한 계산을 수행하기 위해 정수(Integer)와 실수(Floating-Point)의 연산을 처리해야 한다. 하지만 하드웨어는 고정된 비트 수로 숫자를 표현하기 때문에, 인간이 생각하는 일반적인 산술과는 다른 제약이 따른다.
컴파일러 최적화의 효과(Effect of Compiler Optimization)
MIPS 명령어 집합(Instruction Set) 소개 컴퓨터의 명령어 집합(Instruction Set)은 컴퓨터가 실행할 수 있는 명령어들의 모음으로, 컴퓨터 마다 서로 다른 명령어 집합을 가지지만 여러 공통적인 특징이 존재한다. 초기 컴퓨터의 명령어 집합은 단순한 명령어로...
Computer Performance 컴퓨터 성능은 시스템이 작업을 얼마나 효율적으로 수행하는지를 측정하는 중요한 개념이다. 성능을 평가하는 여러 지표가 있으며, 여기서는 Response Time(응답 시간)과 Throughput(처리량), CPU Time, CPU clocking...
큐(Queue)란? 큐(queue)는 선입선출(FIFO, First In First Out)방식으로 동작하는 선형 자료구조이다. 즉, 큐에 먼저 추가된 데이터가 먼저 제거된다. 이는 현실에서 줄을 서는 방식과 유사하다.
연결 리스트 (Linked List)
스택(Stack)이란? 스택(Stack)은 후입선출(LIFO, Last In First Out)방식으로 동작하는 선형 자료구조이다. 즉, 스택에 가장 마지막에 추가된 데이터가 가장 먼저 제거된다.
추상 자료형(Abstract data type, ADT)이란?
재귀 함수는 “자기 자신을 호출하는 함수”를 의미한다. 간결하고 효율적인 코드를 작성하는 데 유용하다. 특히 트리나 그래프와 같은 계층적 구조의 탐색, 분할 정복 알고리즘, 그리고 복잡한 수학적 계산에서 자주 사용된다.
자료구조에 대한 기본적인 이해
유클리드 호제법
[BOJ/백준] 11689번 : GCD(n, k) = 1 BOJ 11689
[BOJ/백준] 1016번 : 제곱 ㄴㄴ 수 BOJ 1016
[BOJ/백준] 1929번 : 소수 구하기 BOJ 1747
[BOJ/백준] 1747번 : 소수&팰린드롬 BOJ 1747
소수 구하기 - 에라토스테네스의 체
Behavioral Models(행위 모델) Behavioral models는 시스템이 실행 중일 때 나타나는 동적(dynamic) 동작을 표현한다. 이러한 모델은 시스템이 외부로부터 자극(stimulus)을 받았을 때, 무슨 일이 일어나는지, 또는 어떻게 반응하는지를 시각적으로 ...
System modeling 소프트웨어 시스템을 설계하고 구축하는 과정에서 우리는 그 시스템을 다양한 관점에서 이해하고 설명할 필요가 있다. 단순히 코드나 기능의 나열만으로는 전체 시스템의 구조와 동작을 포괄적으로 파악하기 어렵기 때문이다. 이때 중요한 도구가 바로 시스템 모델링(...
Requirements Engineering 요구사항 공학(Requirements Engineering)이란, 고객이 시스템에 기대하는 서비스와 그 시스템이 작동하고 개발되어야 하는 제약 조건을 규명하는 과정을 말한다. 이 과정을 통해 도출되는 결과물이 바로 시스템 요구 사항(Sy...
Agile Software Development
Software Process 소프트웨어 공학에서 소프트웨어 프로세스는 소프트웨어 시스템을 개발하기 위해 필요한 일련의 구조화된 활동들을 의미한다. 소프트웨어 프로세스는 매우 다양한 형태가 존재하지만, 일반적으로는 다음과 같은 네 가지 기본 활동을 포함한다.
SoftWare Engineering
유클리드 호제법
소수 구하기 - 에라토스테네스의 체
자료구조에 대한 기본적인 이해
유니온 파인드
3.1 기본 자료형 클래스
OpenCV 주요 함수 설명
Mac OS OpenCV 설치 방법
컴퓨터 비전 개요
3.1 기본 자료형 클래스
OpenCV 주요 함수 설명
Mac OS OpenCV 설치 방법
컴퓨터 비전 개요
개발 환경 세팅(macOS) Python 설치(권장 버전: 3.10) 공식 홈페이지 또는 macOS에서 Homebrew 사용
주요 딥러닝 개념 요약 아래는 실습에 필요한 주요 개념들의 요약 정리본이다.
신경망(Neural Network)이란? 신경망은 인간의 뇌 구조에서 영감을 받은 기계학습 모델로, 입력 데이터를 받아 여러 층을 거쳐 출력값을 예측하는 구조이다. 특히 이미지, 음성, 자연어, 숫자 등 다양한 데이터를 처리할 수 있고, 요즘 우리가 말하는 딥러닝(Deep Lear...
TensorFlow
[BOJ/백준] 1309번 : 동물원 BOJ 1309
[BOJ/백준] 1932번 : 정수 삼각형 BOJ 1932
유니온 파인드
[BOJ/백준] 13565번 : 침투 BOJ 13565
[BOJ/백준] 1717번 : 집합의 표현 BOJ 1717
유니온 파인드
[BOJ/백준] 1717번 : 집합의 표현 BOJ 1717
유니온 파인드
연결 리스트 (Linked List)
[BOJ/백준] 13565번 : 침투 BOJ 13565
재귀 함수는 “자기 자신을 호출하는 함수”를 의미한다. 간결하고 효율적인 코드를 작성하는 데 유용하다. 특히 트리나 그래프와 같은 계층적 구조의 탐색, 분할 정복 알고리즘, 그리고 복잡한 수학적 계산에서 자주 사용된다.
스택(Stack)이란? 스택(Stack)은 후입선출(LIFO, Last In First Out)방식으로 동작하는 선형 자료구조이다. 즉, 스택에 가장 마지막에 추가된 데이터가 가장 먼저 제거된다.
연결 리스트 (Linked List)
큐(Queue)란? 큐(queue)는 선입선출(FIFO, First In First Out)방식으로 동작하는 선형 자료구조이다. 즉, 큐에 먼저 추가된 데이터가 먼저 제거된다. 이는 현실에서 줄을 서는 방식과 유사하다.