검색 결과

"전역 변수"에 대한 검색 결과 (총 30개)

동적 메모리 할당

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

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

무용 코드 제거

기술 > 소프트웨어 개발 > 코드 최적화 | 익명 | 2026-07-16 | 조회수 5

무용 코드 제거 (Dead Code Elimination) 1. 개요 무용 코드 제거(Dead Code Elimination, DCE)란 프로그램의 실행 결과에 아무런 영향을 주지 않는 코드, 즉 실행될 가능성이 없거나 실행되더라도 그 결과가 이후 과정에서 사용되지 않는 코드를 찾아내어 삭제하는 컴파일러 최적화 기법이다. DCE의 주된 목적은 프로그램의 논…

구조적 프로그래밍 (Structured Programming) 구조적 프로그래밍은 프로그램의 논리적 흐름을 명확하게 하기 위해 무분별한 분기문을 배제하고, 정해진 제어 구조(순차, 선택, 반복)만을 사용하여 프로그램을 작성하는 소프트웨어 설계 패러다임이다. 1. 개요 구조적 프로그래밍은 1960년대 후반, 소프트웨어의 규모가 커짐에 따라 코드의 복잡도가 기…

독립성

기술 > 소프트웨어 > 모듈 기반 위키 | 익명 | 2026-07-14 | 조회수 12

독립성 (Independence) 1. 개요 소프트웨어 공학 및 모듈 설계에서 독립성(Independence)이란 하나의 모듈이 다른 모듈에 의존하지 않고 스스로의 기능을 수행할 수 있는 정도를 의미한다. 독립성이 높은 소프트웨어는 특정 모듈의 변경이 다른 모듈에 영향을 주지 않는 특성을 가지며, 이는 시스템의 유지보수성(Maintainability)과 확…

Mark-and-Sweep 알고리즘

기술 > 소프트웨어 > 메모리 관리 | 익명 | 2026-07-14 | 조회수 2

Mark-and-Sweep 알고리즘 1. 개요 Mark-and-Sweep 알고리즘은 가비지 컬렉션(Garbage Collection, GC)의 가장 기본적인 추적(Tracing) 기반 메모리 관리 알고리즘으로, 더 이상 참조되지 않는 메모리 영역을 식별하여 자동으로 회수하는 기법이다. 이 알고리즘의 주 목적은 프로그램이 실행되는 동안 동적으로 할당된 메모리…

블록 스코프

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

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

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

낮은 결합도

기술 > 소프트웨어공학 > 소프트웨어 품질 | 익명 | 2026-06-20 | 조회수 10

낮은 결합도 (Low Coupling) 개요 낮은 결합도(Low Coupling)는 소프트웨어 공학 및 시스템 설계에서 모듈, 클래스, 컴포넌트 간 의존성이 최소화되어 있는 상태를 의미합니다. 결합도(Coupling)는 한 모듈이 다른 모듈과 얼마나 밀접하게 연결되어 있는지를 나타내는 척도이며, 낮은 결합도는 시스템의 유지보수성, 재사용성, 테스트 용이성 …

절차형 API (Procedural API) 개요 절차형 API(Procedural API)는 객체 지향 프로그래밍(OOP)의 대안으로, 함수 호출을 통해 소프트웨어의 기능을 노출하고 제어하는 프로그래밍 인터페이스 스타일입니다. 이 접근 방식은 상태(state)와 동작(action)을 명확히 분리하며, 호출자가 명시적으로 컨텍스트(context)나 상태 정…

라이프 타임

기술 > 컴파일러 > 변수 생명주기 | 익명 | 2026-06-20 | 조회수 9

라이프 타임 (Lifetime) 라이프 타임(Lifetime)은 프로그래밍 언어, 특히 메모리 안전성을 중시하는 시스템 프로그래밍 언어(예: Rust, C++, Ada 등)에서 사용되는 핵심 개념입니다. 이는 변수나 객체가 메모리 상에서 유효하게 존재하는 기간, 즉 할당된 메모리가 해제되기 전까지의 시간적 범위를 의미합니다. 컴파일러는 라이프 타임 정보를 …

클로저

기술 > 프로그래밍 > 스코프 | 익명 | 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-06 | 조회수 37

재배치 (Relocation) 개요 재배치(Relocation)란 프로그램이 메모리의 특정 물리적 주소에 고정되지 않고, 실행 시점에 가용한 메모리 공간에 따라 주소를 변경하여 적절하게 배치하는 프로세스를 의미합니다. 현대적인 운영체제는 멀티프로그래밍(Multiproument) 환경을 지원하기 때문에, 여러 프로세스가 동시에 메모리에 상주하게 됩니다. 이때…

정적 로드

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

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

호이스팅

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

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

시간적 지역성

기술 > 컴퓨터과학 > 캐시 관리 | 익명 | 2026-01-24 | 조회수 78

시간적 지역성 개요 시간적 지역성(Temporal Locality)은 컴퓨터 과학, 특히 컴퓨터 아키텍처와 캐시 관리 분야에서 중요한 개념 중 하나로, 프로그램 실행 중 특정 메모리 위치에 접근한 후, 그 위치가 가까운 미래에 다시 접근될 가능성이 높다는 성질을 의미한다. 이는 프로그램의 실행 패턴에서 반복적으로 같은 데이터나 명령어를 사용하는 경향에서 비…

write

기술 > 시스템프로그래밍 > 입출력함수 | 익명 | 2025-10-11 | 조회수 63

write 개요 write는 유닉스(Unix) 및 유닉스 계 운영체제(: 리눅스, macOS)에서 제공하는 시스템 콜(system call)로, 파일 디스크터(file descriptor)를 통해 데이터를 출력 장치 또는 파일에 쓰는 데 사용된다. 이 함수는 C 언어 프로그래밍에서 시스 레벨의 입출력(I/O) 작업을 수행할 때 핵심적인 역할을 하며, 특히 …

LLVM IR

기술 > 컴퓨터과학 > 중간 코드 | 익명 | 2025-10-10 | 조회수 72

LLVM IR LLVM IR(LLVM Intermediate Representation)은 LLVMow Level Virtual Machine 프로젝트의심 구성 요소 중로, 소스를 기계어로 변환하는정에서 사용되는 중간 코드( Representation) 형식이다. LLVM IR은파일러가 다양한 프로그래밍 언어를 지원하고, 다양한 하드웨어 아키텍처로 코드를 …