# 다형성 다형성(Polymorphism)은지향 프로그래밍(Objectriented Programming,OP)의 핵심 개념 중 하나로, "여러 형태를 가질 수 있는 능력"을 의미합니다 이는 동일한터페이스나 메서드를 통해 서로 다른 클래스의 객체가 각자의 방식 동작할 수 하는 프로그래밍법입니다. 다형성을 활용하면 코드의 재사용성과 유지보수성을 크게 향상시...
검색 결과
"런타임"에 대한 검색 결과 (총 74개)
# AOCL **AMD Optimizing CPU Libraries**(AOCL)는 AMD 제공하는 고성능 컴퓨(HPC), 머신러닝, 과학 계산 및 데이터 분석 애플리케이션 성능을 최적화하기 위한 소프트웨 라이브러리 모음입니다. AOCL AMD의 x86-4 아키텍처 기반 프로세서, 특히 **EPYC**, **Ryzen**, **Threadripper** ...
# C# C#(시샵, 영어: C Sharp) 마이크로소프트(Microsoft)가 2000년대 초에 개발한 **객체 지향 프래밍 언어**(Object-Oriented Programming)로, .NET 프레임크를 중심으로 설계되었습니다. C#은 C 및 C++ 문법적 구를 계승하면서도, 자바(Java)처럼 간결하고 안전한 메모리 관리 기능을 제공하여 개발자가...
# 마크-앤드-스윕 ## 개요 **마크-앤드-스윕**(Mark-and-Sweep)은 **가비지 컬렉션**(Garbage Collection, GC) 알고리즘 중 하나로, 프로그램 실행 중 더 이상 사용되지 않는 메모리 객체를 자동으로 회수하는 데 사용되는 대표적인 기법입니다. 이 알고리즘은 인공지능 시스템을 포함한 다양한 고급 소프트웨어 플랫폼에서 메모...
# 옵셔널 타입 ## 개요 **옵셔 타입**(Optional Type)은 프로그래밍 언어에서 값이 존재할 수도 있고, 존재하지 않을 수도 있는황을 명시적으로 표현하기 위한 타입스템의 한입니다. 이는 ``이나 `undefined와 같은 특수 허용하는 변수를 안전하고 명하게 다루기 설계 패턴으로 특히 정적 타입 언어에서 널 포인터 참조(null pointe...
# 모듈 시스템 ##요 Java 모듈 시스은 **Java 9JDK 9)에서 도입된 중요한 기능으로, **Java Platform System**(JPMS)이라고도 불립니다. 이 시스템은규모 애플리이션의 구조를 보다 명확하게 하고, 코드의 유지보수성과 보안성을 향상시키기 위해 설계되었습니다. 기존의 패키지 기반 접근 방식에서 벗어나, **모듈**(modu...
# npm ## 개요 **npm**(Node Package Manager)은 JavaScript 및 Node.js 생태계 사용되는 **표준 패키지 관리자**로, 소프트웨어 개발자들이 코드 공유하고, 재사용하며, 프로젝트의 의존성을율적으로 관리 수 있도록 도와주는 도구입니다. npm은 수백만 개의 오픈소스 패키지를 저장하고 제공하는 **레지스트리**(re...
# 버전 일관성 유지 개요 소프웨어 개발 과정에서 **전 일관성 유지**(Versionistency Maintenance)는로젝트 내에서되는 라이브러리, 프레임워크, 도구, 의존성 패지 등의 버전이 서로 충돌하지 않고 예측 가능한 방식으로 관리되도록 보장하는 핵심적인 의존성 관리 전략입니다. 모듈화된 시스템, 마이크로서비스 아키텍처, 다수의 팀이 협업...
# Gradle Gradle은 현대 소프트웨어 개발에서 널리 사용되는 **빌드 자동화 도구**(Build Automation Tool)로, 특히 Java 및 Kotlin 기반 프로젝트에서 표준으로 자리 잡고 있습니다. Gradle은 Apache Ant의 유연성과 Apache Maven의 관례 기반 접근 방식을 결합하면서도, **도메인 특화 언어**(DSL...
# Types and Programming Languages ## 개요 《**Types and Programming**(이하 *TAPL*)는 벤자민 C. 파이어스(Benjamin C.)가 저술한로그래밍 언어론과 형식스템(formal type)에 관한 대표적인 교과서입니다. 이 책은 프로그래밍어의 설계, 구현 분석에 있어 **타입 이론**(type the...
# Semantic Analyzer 의미분석기(Semantic Analyzer) 컴파일러의 핵심 구성 요소 중 하나로, 소스 코드의 구문적 구조가 올바른지 확인한 이후에 그 코드의 **의미적 일관성**을 검사하는 단계입니다. 이계는 단순히 문법이 맞는지 넘어서, 프로그램이 실제로 실행 가능한 의미를 갖는지 판단하는 중요한 역할을 수행합니다. 의미분석기는 ...
# 타겟 코드 생성 겟 코드 생성(Target Code Generation)은 컴파일러 핵심 단계 중 하나로, 소스 코드를 특정 하웨어 아키텍 또는 가상 머신에서 실행 가능한 기계어 코드 또는 저수준 코드로 변환하는 과정을 의미합니다. 이 단계는 일반적으로 **중간 코드**(Intermediate Code)를 입력으로 받아, 대상 플랫폼(타겟)에 맞는 최...
# 클라우드이티브 아키텍처 개요 **클라우드 네티브 아키텍처**(Cloud-Native Architecture)는 클라드 환경에서 최적의 성능, 확장성, 유연, 신뢰성을 확보하기 위해 설계된 소프트웨어 아키텍처 패러다임입니다. 전통적인 온프레미스 환경에 맞춰 설계된 애플리케션과 달리, 클라우드 네이티브는 클라우드 인프라의 본질적인 특성 — 예를 들어 ...
# 정적 타입 추론 정적 타입 추론(Static Type Inference)은 프로그래밍 언어에서 변수나 표현식의 타입을 **런타임이 아닌 컴파일 타임에 자동 결정하는 기법**을 말합니다 이 기법은 프로그머가 타입을 명시하지 않아도, 코드의 구조와 사용 패턴을 분석하여 각 식별자의 타입을 추론함으로써 타입 안정성과 코드결성을 동시에 달성할 수 있도록 도와...
# 컨테이너 네트워킹 컨테이너트워킹은 컨테이너반 애플리케이션이 서로 외부 시스템과 안정적이고 효율적으로 통신할 수 있도록 핵심 기술입니다. 컨테이너는 격리된 환경에서 애플리케이션을 실행하지만, 서비스 간 협업을 위해서는 네트워크를 통해 데이터를 주고받아야 합니다. 이 문서는 컨테이너 네트워킹의 기본 개념, 주요 아키텍처, 네트워크 모드, 대표적인 도구 및...
# 인터프리터 개요 **인터프터**(Interpreter)는 소스 코드를 기계어 번역하여 바로하는 프로그램의 일종으로, 소프트웨어 개발과 실행 환경에서 핵심적인 역할을 한다. 인터프리터는스 코드를 한 줄씩 또는 작은 단위로 분하고, 즉시 실행를 반환하는 방식으로 동작한다. 이는 **컴파러**(Compiler)와 대조되는 특징으로, 컴파일러는 전체 소스...
# C 확장 모듈 언어는 고성능스템 프로그래밍의심 언어로, 운영체제, 임베디드 시스템, 드라이버 개발 등 다양한 분야에서 널리 사용됩니다. 그러나 고수준 언어(예: Python, Lua, Ruby)와 비교했을 때, C는 동적 기능이나 빠른 프로토타이핑에 한계가 있습니다. 이러한 제약을 보완하기 위해 **C 확장 모듈**(C Extension Module...
# 동적 링킹 ## 개요 **동적 링**(Dynamic Linking)은 프로그램 실행 시점(runtime)에 외부 라이브러리와 연결되는 링킹 방식으로, 프로그램의 실행 파일에 라이브러리 코드를 포함하지 않고, 대신 실행 시 필요한 라이브리를 운영체제의 **동적 링커**(Dynamic Linker)가 로드하여 연결하는 기술입니다. 이 방식은 메모리 사용...
# Kubernetes ## 개요 **쿠버네티스**(Kubernetes, 줄여서 K8s) 컨테이너화된 애플리케이션 자동으로 배포, 확장 및 관리하기 위한 오픈소스 컨테이너 오스트레이션 플랫이다. 구글이 내부 시스템인 **Borg**를 기반으로 개발하여 2014년에 공개한 쿠버네티스는 현재 **클라우드 네이티브 컴퓨팅 재단**(CNCF, Cloud Nat...
# 나눗셈 연산자 나눗셈 연산자는로그래밍 언어에서 두 수를 나누는 데 사용되는 산술 연산자의 일종으로, 주로 `/` 기호 표현됩니다. 이 연산 수학적 나눗셈을 프로그램 내에서 수행할 수 있게 하며, 다양한 데이터 타입과 언어별 특성에 따라 그 동작 방식이 다릅니다. 본 문서에서는 나눗셈 연산자의 기본 개념, 사용법, 언어별 차이점, 그리고 주의사항에 대해...