목록IT/CS (11)
And Brain said,
이것은 메시지 큐잉 시스템, 그 중심에 존재하는 브로커들의 룰. Rule #1. 엄격한 전달자 브로커는 메시지 전달의 핵심으로, 한 치의 오차도 허용하지 않는다. 메시지가 전달되는 순간부터 그것이 목적지에 도달하기까지, 브로커는 그 메시지에 대한 완전한 책임을 지니며, 메시지는 그들의 보관소인 큐에 저장된다. Rule #2. 비밀스런 라우팅 브로커는 교환기(Exchange)를 가지고 오직 자신만의 방식으로 메시지를 어디로 보낼지 결정한다. Rule #3. 최우선적 신뢰성 브로커는 언제나 신뢰성을 최우선으로 삼는다. 메시지는 Acknowledgement를 통해 안전하게 전달되며, 잃어버린 메시지는 없다 - 오직 전달될 메시지만 존재한다. Rule #4. 완전한 독립성 브로커는 언어와 플랫폼에 구애받지 않는..
LLVM (Low Level Virtual Machine)은 컴파일러와 툴체인 프로젝트의 모음으로, 이는 고수준 언어에서 저수준 언어로의 변환과 최적화를 관리하는 프레임워크입니다. 이름은 Virtual Machine 이지만, LLVM은 기술적으로 가상 머신은 아닙니다. LLVM은 각각의 컴파일 단계에서 프로그램의 소스 코드를 최적화할 수 있는 기능을 제공하고, 이를 가능하게 하는 중간 표현 방식(MIR; Middle Intermediate Representation)을 사용합니다. 이 중간 표현 방식은 고수준 소스 코드를 저수준 머신 코드로 변환하는 과정에서 중간 단계를 형성하며, 이를 통해 컴파일러는 다양한 최적화 기법을 적용할 수 있습니다. 이러한 최적화 기법은 코드의 실행 속도를 빠르게 하거나, ..
ABI (Application Binary Interface)는 컴퓨터 소프트웨어 컴포넌트가 다른 컴포넌트와 상호 작용하는 박싱을 규정하는 인터페이스로, ABI는 소프트웨어의 실행 파일인 이진 파일과 운영체제 또는 하드웨어 간의 상호 작용을 조정하는 규칙들의 집합입니다. ABI는 프로그래밍 언어, 컴파일러, 라이브러리, 운영체제, 프로세서 아키텍처 등과 관련이 있는데, ABI를 통해 서로 다른 소프트웨어 구성 요소가 상호 작용하고 통신할 수 있습니다. 예를 들어, 함수 호출 규약, 매개변수 전달 방식, 레지스터 및 스택 사용방법, 데이터 구조 정렬 등 다양한 측면을 다룹니다. ABI는 이식성과 상호 운용성을 보장하는데 중요한 역할을 합니다. 각 운영체제나 하드웨어 플랫폼은 고유한 ABI를 갖고 있으며, ..
https://theworldaswillandidea.tistory.com/151 Garbage Collector, 프로그래밍 시스템의 스캐빈저오늘은 프로그래머의 뒤처리를 담당해 주는 가비지 컬렉터(Garbage Collector, GC)에 대해서 알아보도록 합시다. 메모리 관리 방법 중 하나인 가비지 컬렉션(Garbage Collection)은 프로그래머가 동적으로 theworldaswillandidea.tistory.com 가비지 컬렉터(Gabage Collector)에 관한 주요 내용은 위 포스팅으로, Stop-the-world (이하, STW)는 가비지 컬렉터가 자신을 제외한 모든 쓰레드를 중단시키는 것을 말합니다. 즉, 가비지 컬렉터는 가비지 컬렉션을 제외한 모든 애플리케이션을 멈춥니다. 이는 ..
오늘은 프로그래머의 뒤처리를 담당해 주는 가비지 컬렉터(Garbage Collector, GC)에 대해서 알아보도록 합시다. 메모리 관리 방법 중 하나인 가비지 컬렉션(Garbage Collection)은 프로그래머가 동적으로 할당한 메모리 영역 중 사용되지 않는 영역을 자동으로 식별하고 해제하는 기능입니다. 이 개념은 1959년 존 매카시(John McCarthy)가 LISP 언어의 메모리 관리를 위해 처음 도입했다고 알려져 있습니다. 과거 프로그래밍 언어들은 동적 메모리 할당 기능이 전혀 없거나, C 계열 언어와 같이 프로그래머가 직접 메모리를 할당한 후 수동으로 해제해야 하는 방식이었습니다. 프로그래머의 메모리 관리가 완벽하지 않을 수 있기 때문에 메모리 누수, 이미 해제된 메모리의 재사용, 해제된..