목록전체 글 (319)
anothel의 지식 창고

1. 개요디스크 스케줄링 알고리즘은 디스크 I/O 요청을 효율적으로 처리하기 위해 디스크 헤드의 이동을 최적화하는 기법이다. 디스크는 파일 시스템과 데이터베이스 등 다양한 애플리케이션에서 중요한 저장 장치로 사용되며, 성능 향상을 위해 디스크 헤드가 처리할 요청 순서를 결정하는 알고리즘이 필요하다.이 글에서는 다양한 디스크 스케줄링 알고리즘과 그 원리, 특징, 장단점을 설명한다.2. 디스크 스케줄링 알고리즘의 필요성효율성 극대화디스크 헤드 이동 거리를 최소화하여 평균 응답 시간을 줄인다.공평성 확보요청 처리에서 특정 요청이 무기한 대기하는 문제를 방지한다.시스템 성능 향상빠른 디스크 접근 시간과 높은 처리량을 제공한다.3. 주요 디스크 스케줄링 알고리즘3.1. FCFS(First Come First Se..

1. 개요UTF-16은 16비트(2바이트)를 기본 단위로 사용하는 유니코드(Unicode) 인코딩 방식이다. 이 방식은 ASCII 문자뿐만 아니라 다양한 언어와 문자 체계를 효율적으로 표현할 수 있도록 설계되었다. UTF-16은 특히 BMP(Basic Multilingual Plane) 내 문자를 고정 길이로, 그 외의 문자는 가변 길이로 인코딩한다는 특징이 있다. 그러나 데이터 저장 시 "00"이 자주 포함되는 현상이나, 서러게이트 페어(Surrogate Pair)로 인해 연속적이지 않은 바이트 패턴이 발생할 수 있다.이 글에서는 UTF-16의 구조, 작동 방식, 그리고 그로 인해 나타나는 데이터 패턴의 특징을 자세히 살펴본다.2. UTF-16의 특징 및 동작 원리2.1 UTF-16의 기본 구조UTF-..

1. 개요문자열 데이터를 처리할 때, 인코딩 방식에 따라 문자의 바이트 구조가 달라진다. 특히, ASCII 문자는 단일 바이트로 표현되지만, UTF-8, ANSI, EUC-KR, CP949와 같은 인코딩에서는 비ASCII 문자가 여러 바이트로 표현될 수 있다.이 글에서는 각 인코딩 방식의 바이트 구조와 특징을 비교하고, 이를 C 코드로 처리하는 방법을 소개한다. 특히 한글과 같은 다중 바이트 문자를 정확히 판별하고 처리하기 위한 실용적인 접근법을 제시한다.2. 인코딩별 문자 구조와 판별법2.1. ASCII범위0x00 ~ 0x7F (0 ~ 127)특징모든 문자가 1바이트로 표현된다.판별법바이트 값이 0x00 ~ 0x7F에 해당하면 ASCII 문자이다.2.2. UTF-8UTF-8은 가변 길이의 문자 인코딩 ..

1. 개요메모리 할당 방식은 프로그램 성능과 안정성에 큰 영향을 미친다. 같은 양의 메모리를 사용하더라도, 할당 전략에 따라 메모리 조각화(fragmentation)와 관리 오버헤드의 차이가 발생한다.이 글에서는 1MB 메모리를 100번 할당하는 방식과 100MB를 한 번에 할당하는 방식의 메모리 사용 패턴을 분석하고, 각각의 장단점을 비교한다.2. 1MB * 100 할당의 특징1MB 크기의 메모리를 100번 할당하는 방식의 주요 특징은 다음과 같다.메모리 관리메모리 할당이 100번 이루어지며, 각 블록이 개별적으로 관리된다.메모리 조각화물리적으로 연속된 메모리가 아닌, 분산된 위치에 메모리가 할당될 가능성이 크다. 이로 인해 메모리 조각화가 발생할 위험이 높아진다.관리 오버헤드각 블록에는 메모리 관리 ..

1. 개요Windows 환경에서 정밀한 시간 측정을 위해 고성능 타이머 함수인 QueryPerformanceFrequency와 QueryPerformanceCounter를 사용한다. 이 함수들은 나노초 수준의 시간 측정이 가능하며, 프로그램 성능을 분석하거나 정확한 시간 간격을 측정하는 데 유용하다.2. 예시 코드다음은 두 함수의 기본적인 사용 예제를 보여준다.#include #include int main() { LARGE_INTEGER tStart, tEnd, frequency; // 주파수 얻기 QueryPerformanceFrequency(&frequency); // 시작 시점 기록 QueryPerformanceCounter(&tStart); // 측정할 코드 블록..

1. 개요이진탐색(Binary Search)은 정렬된 데이터에서 원하는 값을 효율적으로 찾기 위한 탐색 알고리즘이다. 이 알고리즘은 데이터의 중간 값을 기준으로 탐색 범위를 절반씩 줄여 나가기 때문에 매우 빠른 탐색이 가능하다. 이 문서에서는 이진탐색의 정의와 특징, 동작 원리, 그리고 구현 방법 등을 다루며, 이 알고리즘이 가지는 효율성과 실제 활용 방안을 확인한다.2. 이진탐색의 정의와 특징이진탐색은 정렬된 배열 또는 리스트에서 특정 값을 찾기 위한 탐색 방법이다.특징탐색 방식: 매번 탐색 범위를 절반으로 줄인다.전제 조건: 데이터가 반드시 정렬되어 있어야 한다.작동 원리중간 값을 기준으로 탐색하며, 찾고자 하는 값이 중간 값보다 크거나 작은지에 따라 탐색 범위를 반으로 줄여나간다.3. 이진탐색의 동..

1. 개요Shunting Yard 알고리즘은 네덜란드의 컴퓨터 과학자 에츠허르 데이크스트라가 고안한 알고리즘으로, 중위 표기법으로 표현된 수식을 후위 표기법으로 변환하는 데 사용된다. 이 알고리즘은 계산기나 컴파일러에서 널리 사용되며, 수식의 연산자 우선순위를 고려해 쉽게 계산할 수 있는 후위 표기법으로 변환하는 것이 핵심이다.이 문서에서는 Shunting Yard 알고리즘의 원리, Python 구현 방법, 그리고 다양한 응용 사례를 설명한다.2. Shunting Yard 알고리즘이란?Shunting Yard 알고리즘은 스택을 기반으로 중위 표기법을 후위 표기법으로 변환하는 알고리즘이다.중위 표기법 (Infix Notation)연산자가 피연산자 사이에 위치 (예: 3 + 4 * 2)후위 표기법 (Post..

1. 개요Python은 C 언어로 구현된 언어로, Python 코드에서 C 언어를 활용할 수 있다. 주로 두 가지 방식으로 C와 상호작용하며, 이를 통해 성능을 크게 향상시킬 수 있다.C 라이브러리 호출ctypes 라이브러리를 사용한다.Python 환경에서 직접 C 코드 실행C 확장 모듈 또는 C 확장 형을 사용한다.이 글에서는 두 가지 방식의 특징과 활용 사례를 살펴보고, 코드 예제를 통해 차이점을 이해한다.2. ctypesctypes는 Python 표준 라이브러리로, 외부 C 라이브러리와 상호작용할 수 있는 기능을 제공한다. 이를 통해 Python 코드에서 직접 C 라이브러리의 함수 호출 및 데이터 구조를 다룰 수 있다.주요 특징외부 라이브러리 호출동적으로 외부 C 라이브러리를 로드하고, 그 안의 함..

트렌드 코리아 2025 대한민국 소비트렌드 전망저자: 김난도, 전미영, 최지혜 외 7명출판: 미래의창출간: 2024.09.25.올해는 3월 2024를 시작으로 11월 2025, 두 권의 트렌드 코리아를 접했다. 다음 트렌트 코리아는 더 일찍 접할 수 있도록 주의깊게 살펴야겠다.아보하소소한 삶의 기쁨, 아주 보통의 하루를 추구한다.공진화살아남기 위해 경쟁사와의 협업을 진행한다.원포인트업나만의 가치를 찾아 가치를 상승시킨다.목차 서문 2025년 10대 소비트렌드 키워드 1 2024 대한민국 초효율주의 불황기 생존 전략 지리한 정체의 시간을 보내는 방법 시그니처의 힘 요즘가족 〈트렌드 코리아〉 선정 2024년 대한민국 10대 트렌드 상품 2 2025 트렌드 옴니보어 Savoring a Bit of Everyt..

유목민의 투자의 정석저자: 유목민출판: 리더스북발행: 2024.01.17.재차거시뇌동매매하지 말고, 재료 차트 거래량 시황을 확인할 것.돈은 쉽게 벌 수 있는게 아니다열심히 노력하고 공부하고 또 공부할 것.목차 프롤로그 | 모든 시작하는 투자자를 위하여 [PART 1 성장을 위한 투자의 시작] CHAPTER 1 주식투자에 대한 메타인지 01 주식시장을 움직이는 힘 주식이란 무엇인가/ 주식은 기대감이다/ 주가를 상승시키는 두 요소/ 유동성과 실적이 따로 놀 때를 주의하라/ 기대감은 곱하기다 02 주식시장의 기초 용어 주가지수 ㆍ 주식의 종류 ㆍ 투자자 동향 ㆍ 거래원 ㆍ D+2 제도 ㆍ 상한가, 하한가 ㆍ 변동성완화장치 ㆍ 체결 강도 ㆍ 기본적 분석과 기술적 분석 ㆍ 공매도 03 투자 전략의 종류 단기투자..