검색 결과

"지역 변수"에 대한 검색 결과 (총 20개)

LRU

기술 > 캐시 관리 > 치환 정책 | 익명 | 2026-07-18 | 조회수 14

LRU (Least Recently Used) 1. 개요 LRU(Least Recently Used)는 캐시 교체 알고리즘의 하나로, 가장 오랫동안 참조되지 않은 데이터를 우선적으로 제거하여 새로운 데이터를 수용하는 메모리 관리 전략이다. 이 알고리즘은 "최근에 사용된 데이터가 가까운 미래에 다시 사용될 가능성이 높다"는 가정하에 동작하며, 한정된 캐시 공…

동적 메모리 할당

기술 > 프로그래밍 > 메모리 관리 | 익명 | 2026-07-16 | 조회수 6

동적 메모리 할당 (Dynamic Memory Allocation) 개요 동적 메모리 할당이란 프로그램 실행 중(Runtime)에 필요한 메모리 크기를 결정하여 운영체제로부터 메모리를 할당받는 기법을 말한다. 컴파일 시점에 메모리 크기가 결정되는 정적 할당(Static Allocation)은 메모리 낭비가 발생하거나, 반대로 필요한 메모리가 부족할 경우 프…

Kotlin

기술 > 프로그래밍 > Kotlin | 익명 | 2026-07-14 | 조회수 1

Kotlin 1. 개요 Kotlin은 JetBrains(젯브레인즈)사에서 개발한 정적 타입(Static Type)의 현대적인 프로그래밍 언어로, JVM(Java Virtual Machine) 위에서 동작하며 Java와 완전한 상호운용성을 제공하도록 설계되었습니다. Kotlin은 기존 Java의 장점을 유지하면서도, 현대적인 언어들이 가지는 간결함(Conci…

블록 스코프

기술 > 프로그래밍 > 스코프 | 익명 | 2026-07-14 | 조회수 6

블록 스코프 (Block Scope) 1. 개요 블록 스코프(Block Scope)란 프로그래밍 언어에서 중괄호({ })와 같이 특정 코드 블록 내에서 선언된 변수의 유효 범위가 해당 블록 내부로 제한되는 메커니즘을 의미한다. 변수가 선언된 블록 외부에서는 해당 변수에 접근할 수 없으며, 블록의 실행이 종료되면 해당 변수는 메모리에서 해제되거나 더 이상 참…

절차적 프로그래밍 (Procedural Programming) 절차적 프로그래밍(Procedural Programming)은 컴퓨터 프로그램의 흐름을 일련의 명령어, 즉 '절차(Procedure)' 또는 '함수(Function)'의 호출을 통해 제어하는 프로그래밍 패러다임입니다. 이 패러다임은 명령형 프로그래밍(Command-line Programming)…

클로저

기술 > 프로그래밍 > 스코프 | 익명 | 2026-06-20 | 조회수 9

클로저 (Closure) 개요 클로저(Closure)는 프로그래밍 언어에서 함수와 그 함수가 선언될 때의 환경(렉시컬 환경)을 결합한 객체를 의미합니다. 즉, 클로저는 외부 함수의 지역 변수에 접근할 수 있는 내부 함수로, 외부 함수가 실행을 종료하고 스택에서 제거된 후에도 해당 변수의 값을 유지하고 참조할 수 있게 합니다. 클로저는 함수형 프로그래밍의 핵…

메모리 구조

기술 > 컴퓨터구조 > 메모리레이아웃 | 익명 | 2026-04-10 | 조회수 55

메모리 구조 개요 메모리 구조(Memory Layout)는 컴퓨터 시스템에서 프로그램이 실행될 때 메모리가 어떻게 구성되고 사용되는지를 설명하는 개념이다. 프로그램이 메모리에 적재되면, 그 프로그램은 여러 영역으로 나뉘어 데이터와 코드를 저장하며, 각 영역은 특정한 목적과 생명 주기를 가진다. 메모리 구조를 이해하는 것은 프로그래밍, 특히 시스템 프로그래밍…

결합도

기술 > 소프트웨어공학 > 소프트웨어 품질 | 익명 | 2026-04-09 | 조회수 53

결합도 개요 결합도(Coupling)는 소프트웨어 공학에서 모듈 간의 상호 의존성 정도를 나타내는 척도입니다. 즉, 한 모듈이 다른 모듈의 내부 구조나 동작에 얼마나 의존하고 있는지를 측정하는 개념으로, 소프트웨어의 품질, 유지보수성, 재사용성, 테스트 용이성에 큰 영향을 미칩니다. 일반적으로 결합도가 낮을수록(즉, 모듈 간 의존성이 적을수록) 소프트웨어 …

세그멘테이션

기술 > 운영체제 > 메모리관리 | 익명 | 2026-04-08 | 조회수 31

세그멘테이션 개요 세그멘테이션(Segmentation)은 운영체제에서 메모리 관리를 수행하는 기법 중 하나로, 프로그램을 논리적으로 의미 있는 단위인 세그먼트(Segment)로 나누어 메모리에 할당하는 방식이다. 이 기법은 프로그램의 구조를 반영하여 메모리를 효율적으로 관리하고, 보호 및 공유 기능을 강화하는 데 목적이 있다. 세그멘테이션은 연속 메모리 할…

정적 로드

기술 > 소프트웨어공학 > 정적로드 | 익명 | 2026-04-03 | 조회수 55

정적 로드 (Static Loading) 1. 개요 정적 로드(Static Loading)란 프로그램이 실행되기 전, 운영체제나 로더(Loader)에 의해 프로그램의 모든 명령문과 데이터가 메모리(RAM)의 특정 영역으로 한꺼번에 배치되는 방식을 의미합니다. 이는 소프트웨어 공학 및 시스템 프로그래밍에서 프로세스의 생명주기를 관리하는 핵심적인 메커니즘 중 …

호이스팅

기술 > 프로그래밍 > 실행 컨텍스트 | 익명 | 2026-02-25 | 조회수 49

호이스팅 (Hoisting) 개요 호이스팅(Hoisting)은 자바스크립트 실행 컨텍스트(Execution Context) 가 생성될 때, 변수·함수 선언이 해당 컨텍스트의 최상단으로 끌어올려지는 동작을 의미한다. 이 과정은 코드가 실제로 실행되기 전에 이루어지며, 개발자가 변수와 함수를 선언한 위치와는 무관하게 선언 자체가 먼저 처리된다는 점에서 종종 혼…

실행 컨텍스트

기술 > 프로그래밍 > 실행 컨텍스트 | 익명 | 2026-01-18 | 조회수 56

실행 컨텍스트 개요 실행 컨텍스트(Execution Context)는 프로그래밍 언어, 특히 자바스크립트와 같은 동적 언어에서 코드가 평가되고 실행되는 환경을 의미합니다. 이는 코드가 어떻게 해석되고, 변수와 함수가 어떻게 스코프를 가지며, 호출 스택에서 어떻게 관리되는지를 이해하는 데 핵심적인 개념입니다. 실행 컨텍스트는 단순히 함수가 호출될 때 생성되는…

레지스터 스파일링

기술 > 컴파일러 > 최적화 | 익명 | 2025-09-29 | 조회수 65

레지스터 스파일링 개요 레스터 스파일링(Registerilling)은 컴일러 최적화정에서 발생하는 중요한 현상 중로, 프로그램에서 사용하는 변수의 수 프로세서의 물리적 레지스터 수를 초과할 때 발생한다. 이 경우 컴파일러는 일부 변수를 메모리(스택)로 내려보내야 하며, 이를 통해 레지스터 자원을 효율적으로 관리한다. 이 과정은 성능에 직접적인 영향을 미치므…

마크-앤드-스윕 개요 마크-앤드-스윕(Mark-and-Sweep)은 가비지 컬렉션(Garbage Collection, GC) 알고리즘 중 하나로, 프로그램 실행 중 더 이상 사용되지 않는 메모리 객체를 자동으로 회수하는 데 사용되는 대표적인 기법입니다. 이 알고리즘은 인공지능 시스템을 포함한 다양한 고급 소프트웨어 플랫폼에서 메모리 관리를 자동화하는 핵심 …

Semantic Analyzer

기술 > 컴파일러 > 의미분석기 | 익명 | 2025-09-20 | 조회수 69

Semantic Analyzer 의미분석기(Semantic Analyzer) 컴파일러의 핵심 구성 요소 중 하나로, 소스 코드의 구문적 구조가 올바른지 확인한 이후에 그 코드의 의미적 일관성을 검사하는 단계입니다. 이계는 단순히 문법이 맞는지 넘어서, 프로그램이 실제로 실행 가능한 의미를 갖는지 판단하는 중요한 역할을 수행합니다. 의미분석기는 문법적으로 올…

타입 추론

기술 > 프로그래밍 > 타입 시스템 | 익명 | 2025-09-10 | 조회수 76

타입 추론 타입 추론(Type Inference)은 프로그래밍 언어의 타입 시스템에서, 변수나 표현식의 타입을 명시적으로 선언하지 않아도 그 값을 기반으로 자동으로 타입을 결정하는 기능입니다. 이는 코드의 가독성과 생산성을 높이면서도 정적 타입 시스템의 안정성과 오류 검출 능력을 유지할 수 있도록 도와줍니다. 타입 추론은 주로 정적 타입 언어에서 사용되며,…

LLDB

기술 > 소프트웨어 개발 > 디버깅 도구 | 익명 | 2025-09-07 | 조회수 85

LLDB LLDB(Low Level Debugger)는 클랑(LLVM) 컴파일러 프로젝트의 일환으로 개발된 현대적인 디버깅 도구로, C, C++, Objective-C, Swift 등 LLVM 기반 언어를 위한 고성능 디버거입니다. LLDB는 GDB(GNU Debugger)를 대체하기 위해 설계되었으며, 특히 macOS 및 iOS 개발 환경에서 널리 사용됩…

메모리 관리

기술 > 프로그래밍 > 리소스 관리 | 익명 | 2025-09-04 | 조회수 93

메모리 관리 메모리 관리는 컴퓨터 프로그래밍 프로그램이 실행 중에 사용하는 메모리 자원을 효율적으로 할당, 사용, 해제하는 과정을 의미합니다. 이는 프로그램의 성능, 안정성, 그리고 시스템 자원의 효율적 활용에 직접적인 영향을 미치므로, 모든 소프트웨어 개발에서 핵심적인 요소로 간주됩니다. 특히 리소스 제한 환경(예: 임베디드 시스템, 모바일 기기)에서는 …

코루틴

기술 > 프로그래밍 > 비동기프로그래밍 | 익명 | 2025-09-04 | 조회수 81

코루틴 루틴(Coroutine)은 프로그밍에서 비기 처리를 구현하는 핵심 기법 중로, 함수의 실행을 일시 중단했다가중에 재개 수 있는 특별한 형태의 서루틴(subroutine입니다. 일반적인 함수 호출되면 종료될 때까지 실행 흐름을 반환하지 않지만, 코루틴은 중간에 제어권을 양보하고, 나중에 지점에서 다시 실행을 이어갈 수 있습니다. 이 기능은 복잡한 비동…

scope-chain.md

기술 > 프로그래밍 > JavaScript | 익명 | 2025-09-01 | 조회수 109

스코프 체인 (Scope Chain) JavaScript는 변수와 함수의 접근 범위를 결정하기 위해 스코프(Scope)라는 개념을 사용하며, 이 스코프를 따라 변수를 찾는 과정을 스코프 체인(Scope Chain)이라고 합니다. 스코프 체인은 JavaScript의 실행 컨텍스트(Execution Context)와 밀접하게 연결되어 있으며, 변수 해석과 클로…