Welcome!

A passion project is a personal project that someone undertakes out of a strong interest or curiosity in a particular topic, idea, or skill. It is usually a self-directed project that is not tied to any specific academic or professional requirement.

모든 글은 지속적으로 갱신됩니다.

Portfolio.


Blogs.

오늘 발행된 글

A*
8분 읽기

내비게이션 앱으로 목적지까지의 경로를 검색한다고 하자.

Agile Software Developement
4분 읽기

만들고자 하는 소프트웨어의 규모가 커질수록 제일 어려운 것은 바로 고객에게 신뢰를 주는 일인데, 이를 이해하기 위해 잠시 고객의 입장에서 생각해보자.

AWS VPC
6분 읽기

초기 AWS에서는 모든 사용자의 인스턴스가 하나의 평면적 네트워크를 공유하는 EC2-Classic 모델을 사용했다.

B+ Tree
17분 읽기

데이터베이스에서 이루어지는 모든 작업은 접근Access 기반이다.

Configuration Management
7분 읽기

소프트웨어 형상 관리Software Configuration Management, SCM는 소프트웨어 프로세스 전반에 걸쳐 적용되는 우산 활동umbrella activity이다.

Container
12분 읽기

컨테이너container란 호스트 OS의 커널을 공유하면서, 파일 시스템·네트워크·프로세스 ID 등을 격리하여 독립된 실행 환경을 제공하는 기술이다.

CORS가 뭐죠...?
16분 읽기

사건의 발단은 약 2년 전, 동아리 디스코드 채널에서 사용하던 봇을 앱과 웹 서비스로 개발하기 위해 플러터로 서비스를 한창 개발하던 때, 계획대로라면 나타나야 할 이미지가 뜨지 않으면서 시작된다.

Critical Path Method
2분 읽기

CPM(Critical Path Method)는 프로젝트에 소요되는 최소 시간을 추산하기 위해 사용되는 방법이며 스케줄 모델의 논리적 네트워크에 존재하는 유연성(여유분)을 결정하는 방법이기도 하다.

Database Management System
8분 읽기

과거부터 기업이나 정부는 다수의 이용자들에게 정보를 제공하거나 내부에서 필요로 하는 정보를 체계적으로 보관할 필요가 있었다.

Decomposition
3분 읽기

관계형 데이터베이스를 설계하는 과정에서 관계형 스키마Relation Schema를 생성하는 과정에 초점을 맞춰보자.

DevOps
4분 읽기

소프트웨어 기업 안에서도 소프트웨어를 만드는 것은 바로 개발팀Development Team, 즉 Dev다.

Entity-Relationship Model
3분 읽기

데이터베이스를 설계하기 위해서는 여러 단계가 필요한데, 그중 첫 번째 단계는 실제 세계의 상호작용을 추상적인 데이터 모델로 표현하는 개념적 스키마Conceptual Schema 단계이다.

Function Point
8분 읽기

기능점수function point란, 사용자 관점에서 측정된 소프트웨어 기능의 양으로서, 사용자에게 제공되는 소프트웨어 기능의 규모를 측정하는 단위다.

Functional Dependency
11분 읽기

데이터베이스는 현실 세계를 본떠 설계하기 때문에, 데이터베이스의 객체와 관계는 현실 세계의 여러 제약을 반영해야 한다.

Heap
4분 읽기

힙에는 두 가지 변형이 있다.

Hypervisor
14분 읽기

가상머신에서 하이퍼바이저의 유형(Type 0/1/2)과 기본 개념을 다루었으므로, 여기서는 하이퍼바이저가 내부적으로 무엇을 해야 하는지에 집중한다.

IPA
6분 읽기

IPAInternational Phonetic Alphabet는 현존하는 모든 언어의 말소리Phone를 표현하는 표준적인 방법이며, 언어학에서 주로 사용하는 음성 기록 체계다.

MAC Address
3분 읽기

MACMedia Access Control 주소는 데이터 링크 계층(OSI 7계층에서 2계층)에서 통신을 위해 네트워크 인터페이스(NIC)에 할당된 물리적인 고유 식별 주소다.

Mapping Cardinality
3분 읽기

카디널리티Cardinality는 본래 수학에서 비롯된 개념으로, 집합의 크기를 의미한다.

Minimax Algorithm
6분 읽기

출발지에서 목적지로 향하는 최적의 경로를 찾는 일반적인 탐색 문제에서는 에이전트 혼자 목표를 향해 나아가지만, 게임에서는 나의 이익을 최소화하려는 상대방이 존재한다.

Monitor
9분 읽기

세마포어는 정수 변수와 두 개의 원자적 연산(P/V, 또는 wait/signal)만으로 상호 배제와 실행 순서 제어를 모두 구현할 수 있는 범용 동기화 프리미티브다.

Monte Carlo Tree Search(MCTS)
10분 읽기

어떤 게임을 수행하는 컴퓨터 유저를 설계할 때, 기존의 핵심 알고리즘은 미니맥스 알고리즘이었다.

NACL
4분 읽기

NACL(Network Access Control List)은 서브넷 단위에 적용되는 방화벽이다.

Normalization
7분 읽기

정규화를 이해하려면 먼저 "나쁜 설계"가 어떤 문제를 일으키는지 알아야 한다.

OSI 모형
6분 읽기

OSI 모형Open Systems Interconnection Reference Model이란 국제표준화기구International Organization for Standardization, ISO[^iso-abbreviation]에서 개발한 모델로, 컴퓨터 네트워크 프로토콜 디자인과 통신을 7개의 계층layer으로 나누었기에 OSI 7계층으로 불리기도 한다.

OverlayFS
8분 읽기

유니언 파일 시스템union filesystem이란 여러 디렉토리 트리를 하나의 디렉토리로 합쳐서 보여주는 파일 시스템이다.

Passion Project
1분 읽기

- GitHub - Résumé - Portfolio - Process Control Block @2026-03-05 - Trait @2026-03-05 - Scheduler @2026-03-05 - Security Group @2026-03-05 - Stack...

Priority Queue
3분 읽기

우선순위 큐는 최소한 다음 세 가지 연산을 지원해야 한다.

Process
8분 읽기

프로세스가 무엇인지를 깊이 이해하기 위해서는, 이 개념이 컴퓨터와 함께 어떻게 발전해왔는지를 살펴보는 것이 도움이 된다.

Project Planning
11분 읽기

프로젝트 계획Project Planning은 프로젝트에서 발생하는 모든 일을 정의하는 계획을 수립하고 유지하기 위한 프로세스 영역이다.

Project Progress
2분 읽기

프로젝트 진척율이라는 것은 말그대로 프로젝트가 어디까지 이루어졌는지를 수치로 나타낸 것인데, 이 진척율이라는 수치는 측정 방식이 다양해서 실제 진척율이 얼마인지에 대한 논쟁이 있을 수 있다.

Queue
2분 읽기

큐의 가장 핵심적인 특징은 먼저 들어간 자료가 먼저 나온다는First-In-First-Out, FIFO 것이다.

Requirements Development
13분 읽기

소프트웨어 공학에서 요구사항은 니즈와 그것에 대한 조건 및 제약사항을 표현한 문장으로, 시스템이 사용자에게 무엇을 제공해야 하는지를 정의한다.

Requirements Management
4분 읽기

요구사항 관리는 목적 제품과 구성요소들의 요구사항이 프로젝트의 계획과 제품에 맞게 유지되도록 관리하기 위한 CMMI의 프로세스 영역이다.

Scheduler
8분 읽기

프로세서보다 프로세스가 많은 상황에서는 어떤 프로세스가 CPU를 사용하고 어떤 프로세스가 기다릴지를 결정해야 한다.

Security Group
5분 읽기

보안 그룹Security Group은 VPC 내 리소스의 네트워크 인터페이스(ENI)[^elastic-network-interface]에 적용되는 가상 방화벽이다.

Semaphore
10분 읽기

세마포어Semaphore는 음이 아닌 정수 변수 $S$와, 이 변수에 대해 수행할 수 있는 두 개의 원자적 연산 $P$와 $V$로 구성되는 동기화 프리미티브다(Dijkstra, 1965).

Software Process
2분 읽기

카네기 멜론 대학의 소프트웨어 엔지니어링 연구소Software Engineering Institute, SEI에서 소프트웨어 엔지니어링 프로그램을 창안한 왓츠 험프리Watts Humphrey는 다음과 같은 말을 남겼다.

Software Quality Assurance
13분 읽기

소프트웨어의 품질이 만족할 만한 수준이라는 확실한 증거를 얻기 위해서는 무엇이 필요할까? 소프트웨어 제품의 품질과 개발 프로세스의 품질을 연결하는 것도, 소프트웨어의 품질을 평가하기 위한 여러 지표도 그 질문에 대한 답을 얻기 위한 노력의 산물이다.

SP인증 모델
11분 읽기

SP인증은 소프트웨어를 개발하거나 관리하는 기업 및 조직의 SW 프로세스 품질역량 수준을 심사하여 등급을 부여하는 제도다.

Stack
5분 읽기

모든 핵심 연산이 $O(1)$이라는 점이 스택의 강점이다.

System Call
10분 읽기

현대 운영체제는 CPU의 이중 모드dual mode[^dual-mode]를 활용하여 커널과 사용자 프로그램을 분리한다.

Translation Lookaside Buffer
15분 읽기

오늘날 모든 프로세스는 가상 주소virtual address를 사용하며, MMU(Memory Management Unit)가 페이지 테이블을 참조하여 가상 주소를 물리 주소로 변환한다.

Version Control System
4분 읽기

버전 관리는 소프트웨어 프로세스 중 만들어진 서로 다른 버전의 형상 객체Configuration Object를 관리하기 위한 절차와 도구를 합친 개념이다.

Virtualization
13분 읽기

가상화Virtualization을 이해하기 위해서는 가상 메모리Virtual Memory, 그리고 가상 메모리와 대비되는 개념인 물리 메모리Physical Memory를 이해해야 한다.

VPC & Subnet
8분 읽기

CIDR(Classless Inter-Domain Routing)[^cidr-definition]은 IP 주소 범위를 표기하는 방법이다.

VPC Routing & Gateway
7분 읽기

라우팅 테이블(Route Table)은 패킷의 목적지 IP 주소를 보고 다음 홉(hop)을 결정하는 규칙의 집합이다.

Work Breakdown Structure
2분 읽기

수많은 인력이 필요한 프로젝트는 매우 거대하고 프로젝트가 구현하고자 하는 기능을 가진 소프트웨어를 실제로 구현하고 소비자에게 전하기까지 굉장히 많은 업무가 필요하다.

구조체(Rust)
4분 읽기

struct User { active: bool, username: String, email: String, signincount: u64, } 구조체를 정의하기 위한 키워드는 struct이며, 다음으로 구조체의 이름을 정하고 중괄호{} 안에 구조체의 구성 요소인 필드field의 이름과 타입을 정의하면 된다.

낭설을 대하는 태도
1분 읽기

자주는 아니지만 가끔 볼 수 있는 일화 중에 일본의 소설가 나츠메 소세키夏目漱石에 대한 일화가 있다.

마인크래프트로 배우는 서버 이야기
7분 읽기

서버와 네트워크는 컴퓨터공학을 전공하고 있더라도 대단히 막연한 주제일 수 있지만, 사실 우리의 일상생활에 굉장히 밀착되어 있는 주제이며 이에 대한 지식은 현대인의 매우 중요한 덕목 가운데 하나다.

배열
5분 읽기

배열의 핵심은 연속적인 메모리 배치에 있다.

소유권
11분 읽기

모든 프로그램은 작동하는 동안 운영체제로부터 메모리를 빌려오는데, 이 영역을 힙heap 영역이라 부른다.

소프트웨어 생명 주기
9분 읽기

소프트웨어의 생명 주기는 소프트웨어 제품을 개발하고, 운영하고, 유지보수하고, 최종적으로 폐기하는 전체 과정에서 수행되는 활동들의 순서를 기술한 것이다.

소프트웨어 테스팅
9분 읽기

테스트란, ==결함을 발견할 의도로 프로그램이나 시스템을 실행시키는 것== 혹은 ==테스트 대상의 특성을 발견하고 평가하기 위해 수행되는 일련의 활동==을 가리킨다.

소프트웨어의 표준
17분 읽기

소프트웨어마다 사용하는 도구가 다를 수 있고 개발 환경도 다를 텐데, 그렇다면 소프트웨어의 표준standard에는 도대체 무엇이 있는 것일까? 사실 소프트웨어의 표준은 곧 품질 모델Quality Model이라고 봐도 좋을 만큼, 소프트웨어의 품질에 초점을 맞추고 있다.

열거형
1분 읽기

열거형은 여러 타입을 하나로 묶는다는 점에서는 구조체struct와 비슷하지만, 열거형이 여러 타입을 묶는 방법은 구조체의 그것과 다릅니다.

자료구조의 개념
4분 읽기

PDT(Primitive Data Type)는 프로그래밍 언어 수준에서 데이터를 담기 위한 가장 기본적인 형태의 자료형을 말한다.

전처리
8분 읽기

[^preprocessor-general]: 전처리기preprocessor 라는 개념은 비단 C가 아니더라도 컴퓨터공학 전반에서 사용되는 개념이다.

클로저(Rust)
7분 읽기

// unwraporelse를 사용하면 Result가 Ok일 때 Ok 안의 값을 반환하고, // Err일 때 클로저 안의 코드를 호출한다.

프로세스 종료
9분 읽기

프로세스가 모든 일을 마치고 종료될 때, 부모 프로세스는 상태 값을 받을 수 있고 자식 프로세스에게 할당됐던 자원들이 운영체제에 의해 해제된다.

함수(Rust)
3분 읽기

러스트에서는 fn 뒤에 함수 이름과 괄호를 붙여서 함수를 정의하고, 중괄호{}를 통해 함수 본문의 시작과 끝을 정한다.

Computer Engineering.


Computer Science.


Linguistics.


etc.