본문 바로가기

CS2

스레드(Thread)란? 소프트웨어 개발을 하다 보면 "스레드(Thread)"라는 용어를 자주 접하게 됩니다. 특히, 운영체제(Operating System, OS)와 멀티스레딩 프로그래밍에서 중요한 개념입니다. 이번 포스팅에서는 스레드의 개념, 싱글 스레드 vs 멀티 스레드, 장점과 단점, 그리고 실전 예제까지 한 번에 정리해보겠습니다.1. 스레드(Thread)란?스레드는 프로세스(Process) 내에서 실행되는 가장 작은 작업 단위입니다.✅ 프로세스(Process) vs. 스레드(Thread)개념 프로세스(Process) 스레드(Thread)정의실행 중인 프로그램프로세스 내에서 실행되는 작은 작업 흐름독립성서로 독립적 (메모리 공간 분리)같은 프로세스 내에서 메모리를 공유자원 할당별도의 메모리 공간 할당스레드끼리 메모리(He.. 2025. 2. 19.
동적 계획법 (Dynamic Programming: DP) 이란? 1️⃣ 동적 계획법(DP)이란?정의:동적 계획법(Dynamic Programming, DP)은 큰 문제를 여러 개의 작은 부분 문제로 나누어 그 해를 저장하면서 해결하는 방법입니다. 이를 통해 반복적인 계산을 줄이고, 문제를 효율적으로 해결할 수 있습니다.핵심 아이디어:부분 문제의 결과를 저장해서 같은 계산을 반복하지 않는 것이 핵심입니다.DP는 최적화 문제에 주로 사용되며, 주어진 문제를 최적 부분 구조와 중복되는 부분 문제로 나눌 수 있을 때 사용됩니다.2️⃣ DP가 필요한 이유는?일반적인 재귀 방식은 같은 부분 문제를 반복해서 계산하기 때문에 비효율적일 수 있어요. 동적 계획법은 이러한 중복 계산을 제거함으로써 시간 복잡도를 크게 줄일 수 있습니다.❌ 재귀만 사용하는 경우:피보나치 수열과 같은 문제.. 2025. 2. 12.