전체 글85 알고리즘 - 그리디 알고리즘 그리디 (탐욕, 활동선택, 분수배낭)DP가 모든 가능한 부분 문제를 풀어 비교한 뒤 최적해를 만든다면, 그리디(Greedy, 탐욕) 알고리즘은 매 순간 가장 좋아 보이는 선택을 즉시 결정하고 뒤를 돌아보지 않는다. 단순해 보이지만 이 단순함이 가장 큰 강점이자 함정이다. 어떤 문제는 그리디로 항상 최적이 보장되지만, 어떤 문제는 절대 최적이 보장되지 않는다. 본 글은 그리디의 정의·두 가지 조건·대표 응용·DP와의 차이를 세심하게 정리한다(출처: CLRS — Introduction to Algorithms, 16장). 제가 학교 알고리즘 과제에서 동전 거스름돈을 그리디로 풀어 한국 동전(500·100·50·10)에서는 항상 최적이 나오다가, 임의 동전(예: 4·3·1)에서는 최적이 깨지는 모습을 본 후로.. 2026. 5. 19. 알고리즘 - 동적 계획법 DP 동적 계획법 (DP, 메모이제이션, 점화식)알고리즘을 배우다 가장 큰 학습 벽으로 자주 꼽히는 영역이 동적 계획법(DP, Dynamic Programming)이다. 분할 정복이 큰 문제를 작은 문제로 쪼개되 작은 문제들이 서로 독립적인 경우에 잘 동작했다면, DP는 작은 문제들이 서로 겹치는 경우를 다룬다. 같은 부분 문제를 한 번만 풀고 그 답을 저장(메모)해 두면 다음에 만났을 때 즉시 꺼낼 수 있고, 이 단순한 발상의 전환이 지수 시간 알고리즘을 다항 시간으로 끌어내린다. 본 글은 DP의 두 가지 조건, 메모이제이션과 타뷸레이션의 차이, 그리고 고전 응용을 세심하게 정리한다(출처: CLRS — Introduction to Algorithms, 15장). 제가 학교 알고리즘 시간에 피보나치를 단순 재.. 2026. 5. 19. 알고리즘 - 분할 정복과 시간 복잡도 분할 정복 (재귀, 시간복잡도, 점화식)알고리즘 시리즈의 첫 글은 분할 정복(Divide and Conquer)이다. 이름이 거창해 보이지만 발상은 단순하다. 큰 문제를 같은 형태의 작은 문제 두세 개로 쪼개고, 작은 문제들의 답을 합쳐 원래 문제의 답을 만드는 전략이다. 이 단순한 아이디어 위에 병합 정렬·퀵 정렬·이진 탐색·고속 푸리에 변환·행렬 곱셈 같은 거의 모든 고급 알고리즘이 서 있으며, 같은 사고 틀이 그래픽스의 KD-Tree·DB의 B-Tree·MapReduce의 분산 처리까지 확장된다. 본 글은 분할 정복의 정의·시간복잡도 분석·마스터 정리·실전 예시를 세심하게 정리한다(출처: CLRS — Introduction to Algorithms). 제가 학교 알고리즘 수업에서 처음 같은 정렬 문.. 2026. 5. 19. OS 보안과 접근 제어 OS 보안 (접근제어, ACL, 권한)운영체제의 마지막 핵심 책임이 보안이다. 여러 사용자가 한 시스템을 공유하고, 외부 네트워크로 노출되며, 악성 코드가 끊임없이 침입 시도를 한다. 이 모든 위협으로부터 자원을 보호하면서도 정당한 사용자에게는 매끄러운 접근을 보장해야 하는 모순적 책임이 OS 보안의 핵심이다. 본 글은 인증·인가의 차이, 접근 제어 모델(DAC·MAC·RBAC), 유닉스 권한 비트와 ACL, 그리고 능력(capability) 기반 보안까지 OS 보안의 핵심 모델을 세심하게 정리한다(출처: 위키백과 — Computer security model). 제가 학교 리눅스 실습에서 처음 chmod 755 한 줄로 같은 디렉터리에 사용자별로 접근이 달라지는 모습을 봤을 때 "권한은 운영체제 안에 .. 2026. 5. 19. 입출력 관리와 인터럽트 입출력 관리 (인터럽트, DMA, 버퍼)운영체제의 메모리·CPU·파일 관리가 컴퓨터 안쪽의 자원을 다뤘다면, 입출력 관리는 컴퓨터 바깥 세계와 통신하는 책임을 진다. 키보드·마우스·디스크·네트워크 카드·프린터처럼 속도와 동작 방식이 천차만별인 외부 장치들을 일관된 인터페이스로 추상화하고, CPU의 시간을 낭비하지 않으면서 효율적으로 데이터를 주고받게 만드는 일이 입출력 관리의 핵심이다. 본 글은 입출력 방식 3종(폴링·인터럽트·DMA)과 인터럽트 처리, 그리고 버퍼링·스풀링·캐싱 같은 성능 최적화 기법을 세심하게 정리한다(출처: 위키백과 — Input/Output). 제가 학교 OS 실습에서 같은 1MB 파일을 폴링과 DMA로 읽어 비교했을 때 CPU 사용률이 95%에서 5%로 떨어지는 모습을 직접 본 .. 2026. 5. 19. 파일 시스템과 디스크 파일 시스템 (inode, 디스크, FAT)운영체제가 메모리와 CPU를 관리하는 만큼이나 중요한 책임이 영속적인 데이터를 안전하게 보관하는 일이다. 프로세스는 종료되면 사라지지만 사용자가 만든 파일과 시스템 설정은 다음 부팅 후에도 그대로 남아 있어야 하며, 그 보관 책임을 지는 운영체제 모듈이 바로 파일 시스템(File System)이다. 본 글은 파일 시스템의 정의·계층 구조·inode 모델·대표 구현체(FAT·NTFS·ext4) 비교, 그리고 디스크 스케줄링까지 세심하게 정리한다(출처: 위키백과 — File system). 제가 학교 OS 실습에서 ls -li로 inode 번호를 처음 본 후로는 같은 파일이 두 경로에서 같은 inode를 공유하는 하드 링크의 동작이 비로소 손에 잡혔다. 파일 시스템.. 2026. 5. 19. 이전 1 2 3 4 5 6 ··· 15 다음