open-index/open-wikipedia-markdown huggingface dataset:
함양읍성

**함양읍성**(**咸陽邑城**)은 조선 시대 함양군 지역의 정치 행정의 중심부에 축조되었던 읍성(邑城)이다.

## 연혁
함양읍성은 함양군 관아의 이동과 함께 세워졌다. 《신증동국여지승람》에 따르면 함양군의 관아는 함양군 동쪽 2리 지점으로 현재의 함양군 관변리(官邊里)에 있었는데, 홍무 경신년 즉 고려 우왕 6년(1380년)에 왜구의 대대적인 공격(경신년 왜구)으로 청사(廳舍)가 소실되자, 관아를 문필봉 밑으로 옮기고 흙을 쌓아서 성을 만들었다고 하였다. 이후 기존의 읍성은 고읍성(古邑城)이라 불리며, 지금 고을 관아와 4리 거리였다. 함양관아는 현재의 함양군청 부지와 거의 겹치고 있다.

영조 41년(1765년) 토성이었던 함양읍성을 군수 김광이 석성으로 개축하였다.

## 규모
《신증동국여지승람》에 기재된 함양읍성의 둘레는 735척이고 나각(羅閣)이 243칸이었다고 기록하고 있다.

함양읍성에 있었던 세 개의 성문에 대해 실려 있는데, 동쪽은 제운(齊雲), 남쪽은 망악(望岳), 서쪽은 청상(淸商)이다. 이 가운데 남문이었던 망악루만 1932년 당시 고적보존회장 노덕영이 사재를 들여 이건하고 이름을 함화루로 고쳐 현존하고 있다.

## 같이 보기
* 함양 함화루 - 함양읍성의 남문이었다.

분류:읍성
분류:함양군의 역사
에트로폴스키

**에트로폴스키**()는 다음 사람을 가리킨다.

* 바실 에트로폴스키(1959년~)는 불가리아의 펜싱 선수이다.
* 흐리스토 에트로폴스키(1959년~)는 불가리아의 펜싱 선수이다.
DotGNU

**DotGNU**(닷그누)는 마이크로소프트의 닷넷 프레임워크를 대체하는 자유 소프트웨어 제공을 목표로 2001년 1월에 시작되었다가 현재는 중단된 GNU 프로젝트의 일부이다. DotGNU 프로젝트는 자유 소프트웨어 재단에 의해 운영되었다. 프로젝트의 다른 목표로는 비 마이크로소프트 윈도우 플랫폼에 대한 더 나은 지원과 더 많은 프로세서 지원이 있다.

DotGNU 프로젝트 코드 베이스의 주요 목표는 100% 공통 언어 사양(CLS)을 준수하는 클래스 라이브러리를 제공하는 것이었다.

## 주요 개발 프로젝트

### Portable.NET
ECMA-335 공통 언어 기반(CLI)의 구현체인 DotGNU Portable.NET은 닷넷 기본 클래스 라이브러리, XML 및 윈도우 폼을 사용하는 비주얼 베이직 닷넷, C# 및 C 애플리케이션을 컴파일하고 실행하는 소프트웨어를 포함한다. Portable.NET은 x86, PPC, ARM, SPARC 등 다양한 명령어 집합 구조를 지원한다고 밝히고 있다.

### DGEE
DotGNU Execution Environment(DGEE)는 웹 서비스 서버이다.

### libJIT
libJIT는 가상 머신 구현, 동적 프로그래밍 언어, 스크립트 언어에서 고급 JIT 컴파일 개발을 위한 JIT 컴파일 라이브러리이다. 이는 변수가 정적 단일 할당 형식으로 유지되는 3-어드레스 코드 기반의 중간 표현을 구현한다.

libJIT는 GNU 이맥스, ILDJIT 및 HornetsEye를 포함한 다른 오픈 소스 프로젝트에서도 일부 사용되었다.

## 프레임워크 구조
300px|섬네일|단순화된 모노 구조

Portable .NET 클래스 라이브러리는 애플리케이션 개발을 위한 기능을 제공하고자 한다. 이들은 주로 C#으로 작성되었지만, 공통 언어 사양 덕분에 모든 닷넷 언어에서 사용할 수 있다. 닷넷과 마찬가지로 클래스 라이브러리는 네임스페이스와 어셈블리로 구성된다. 여기에는 Accessibility 및 DotGNU를 포함한 추가적인 최상위 네임스페이스가 있다. 일반적인 작동 방식에서 Portable .NET 컴파일러는 ECMA-335 6장에 규정된 대로 공통 언어 사양(CLS) 이미지를 생성하고, Portable .NET 런타임이 이 이미지를 가져와 실행한다.

## 자유 소프트웨어
DotGNU는 자신이 자유 소프트웨어임을 강조하며, 마이크로소프트 윈도우의 GUI 코드 호출과 같은 독점 구성 요소에 대한 의존성을 최소화하도록 보장하는 것을 목표로 한다. DotGNU는 부터 까지 높은 우선순위의 자유 소프트웨어 프로젝트 중 하나였다.

## DotGNU와 마이크로소프트의 특허

표준화를 위해 ECMA에 제출되지 않은 닷넷 스택 구성 요소들에 대한 DotGNU의 구현은 프로젝트 진행 기간 중 상당 부분 동안 특허 침해 우려의 원인이 되었다. 특히 마이크로소프트가 특허 소송을 통해 DotGNU 프로젝트를 무너뜨릴 수 있는지에 대한 논의가 이루어졌다.

ECMA에 제출된 기본 기술들은 문제가 없을 수 있다. 우려는 주로 ASP.NET, ADO.NET, 윈도우 폼(표준화되지 않은 네임스페이스 참조)과 같이 마이크로소프트가 닷넷 프레임워크 위에서 개발한 기술들, 즉 DotGNU의 윈도우 호환성 스택을 구성하는 부분들과 관련이 있다. 이러한 기술들은 현재 DotGNU에서 완전히 구현되지 않았으며 DotGNU 애플리케이션 개발에 필수적인 것도 아니다.

2009년 마이크로소프트는 특허 허여가 포함된 아파치 라이선스 버전 2.0으로 닷넷 마이크로 프레임워크를 출시했다. 그러나 닷넷 마이크로 프레임워크는 CLR의 재구현체이며 임베디드 장치에서 사용하기 위한 기본 클래스 라이브러리의 제한된 하위 집합이다. 또한 아파치 라이선스의 특허 허여는 닷넷 마이크로 프레임워크의 기여자 및 사용자만을 보호했을 것이며, DotGNU나 모노와 같은 대안 구현체의 사용자 및 개발자는 보호하지 않았을 것이다.

2014년 마이크로소프트는 아파치 라이선스로 차세대 공식 마이크로소프트 C# 컴파일러인 Roslyn을 출시했다. 그해 말, 마이크로소프트는 공식 닷넷 프레임워크의 "재시동"을 발표했다. 해당 프레임워크는 MIT 허가서로 출시된 공식 런타임 및 표준 라이브러리를 포함하는 .NET Core를 기반으로 하며, 닷넷 코어와 관련된 마이크로소프트 소유 특허로부터 수혜자를 명시적으로 보호하는 특허 허여를 포함한다.

## 같이 보기

* 가상 머신 비교
* Portable.NET – DotGNU 툴체인 및 런타임의 이식 가능한 버전
* 모노 – 마이크로소프트 닷넷의 인기 있는 자유 소프트웨어 구현체
* 공통 언어 런타임

## 각주

## 외부 링크
* 프로젝트 홈페이지
* 기사 '2001 – DotGNU가 탄생한 해'
* DotGNU의 노르베르트 볼로와의 2003년 인터뷰

분류:컴퓨팅 플랫폼
분류:GNU 프로젝트 소프트웨어
아코나디

**아코나디**(Akonadi)는 가나의 정의의 여신 이름을 딴 개인 정보 관리(PIM) 데이터 및 메타데이터를 위한 저장 서비스이다. 모든 데스크톱 환경에서 사용할 수 있도록 설계되었으나, KDE SC 4 프로젝트를 뒷받침하는 "기둥"(핵심 기술) 중 하나이기도 하다. 확장성이 뛰어나며 동시 읽기, 쓰기 및 쿼리 액세스를 제공한다.

아코나디는 데스크톱 전체에서 고유한 객체 식별 및 검색 기능을 제공한다. 모든 PIM 애플리케이션을 위한 확장 가능한 데이터 저장소 역할을 한다. KDE 3에서는 각 PIM 애플리케이션마다 서로 다른 데이터 저장 및 처리 방식을 사용했기 때문에 본질적으로 동일한 기능을 여러 번 구현해야 했다. 아코나디는 데이터 저장 외에도 검색 기능과 데이터 변경 사항을 쉽게 알 수 있도록 하는 라이브러리(캐시) 등 여러 구성 요소를 포함하고 있다.

아코나디는 애플리케이션 대신 전문화된 API를 통해 서버와 통신하여 데이터를 가져오고 보낸다. 그 후 특정 데이터(메일, 달력, 연락처 등)를 수집하도록 설계된 모델을 통해 아코나디에서 데이터를 검색할 수 있다. 애플리케이션 자체는 사용자에게 데이터를 표시하고 데이터를 입력할 수 있게 해주는 뷰어와 편집기로 구성된다. 또한 아코나디는 애플리케이션에서 생성된 메타데이터를 지원한다.

PIM 애플리케이션을 개발할 때 전통적으로 가장 어려운 부분인 데이터 저장과 검색을 아코나디가 처리해 주기 때문에 개발 과정이 훨씬 쉬워진다. Mailody 개발자인 톰 알버스는 아코나디를 사용하여 단 10분 만에 메일 리더를 만드는 방법을 시연한 바 있다.

## 각주

분류:KDE 플랫폼
분류:KDE 프레임워크
플레이크 (소프트웨어)

**플레이크**(Flake) 또는 **벡터 셰이프**(Vector Shape)는 캘리그라 스위트 및 KOffice 2 시리즈에서 사용되는 프로그래밍 라이브러리다. 플레이크는 "셰이프"(shape, 모양)라는 기본 개념을 제공한다. 최종 사용자에게 셰이프는 이미지나 텍스트와 같은 콘텐츠의 조각으로 나타난다. 셰이프는 스스로를 그리는 역할을 담당하므로 모든 형태(정사각형, 원 등)를 가질 수 있으며 모든 종류의 미디어를 포함할 수 있다. KOffice의 모든 구성 요소는 가능한 한 플레이크를 사용하도록 전면 개편되었다.

## 기능
플레이크의 기능은 콘텐츠를 표시하는 셰이프(Shapes)와 콘텐츠 또는 사용자 인터페이스를 조작하는 도구(Tools)로 나뉜다. 서로 다른 종류의 콘텐츠를 지원하기 위해 다양한 셰이프를 만들 수 있다. 예를 들어 Calligra Words의 텍스트 셰이프는 .txt 및 .odt 형식을 지원하고, KChart 셰이프는 .odc와 같은 차트 관련 문서 표준만 지원한다. 셰이프는 해당 종류의 콘텐츠를 조작하는 도구 세트 및 기능을 사용자에게 노출하는 UI 요소와 함께 패키지화된다. 이는 애플리케이션에 필요한 모든 기능을 제공하며 다른 애플리케이션에 셰이프를 쉽게 삽입할 수 있게 해준다. 셰이프는 필요할 때 다른 셰이프를 불러올 수 있다. 예를 들어 텍스트 문서에 이미지가 있는 경우 이미지를 처리하기 위해 이미지 셰이프가 로드된다.

플레이크는 KOffice 1 시리즈의 위젯 기반 임베딩(삽입) 방식의 후속 설계다. 위젯 임베딩에는 위젯이 항상 사각형이고, 회전할 수 없으며, 픽셀 단위로 측정된다는 세 가지 눈에 띄는 단점이 있었다. 플레이크는 이 모든 것을 수정했다. 이제 삽입된 문서 데이터는 확대/축소, 회전, 기울이기가 가능하고 어떤 형태든 가질 수 있으며 밀리미터와 같은 단위로 측정된다. 또한 플레이크는 확장성 등 여러 영역에서 기존 설계를 개선했다. 예를 들어, 구글 서머 오브 코드 2007에서 마레인 크라위셀브링크(Marijn Kruisselbrink)는 MusicXML 기반의 악보 셰이프와 도구를 개발했다. 셰이프는 다른 셰이프의 위치를 인식할 수 있다. 텍스트 사이로 이미지를 이동하면 텍스트가 이미지 주위를 동적으로 감싸게 된다. 셰이프를 그룹화하여 하나의 셰이프처럼 동작하게 할 수도 있다. 또한 플레이크는 PDF 출력을 지원하며, 더 매끄러운 텍스트를 위해 안티앨리어싱 페인팅을 완벽하게 지원한다.

## 같이 보기
* KDE 프레임워크

## 각주

분류:라이브러리
분류:KDE 플랫폼
분류:캘리그라 스위트
분류:KDE 프레임워크
크로스 (소프트웨어)

**크로스**(Kross)는 KDE 프레임워크를 위한 스크립팅 프레임워크다. 크로스는 원래 KOffice에서 사용하기 위해 설계되었으나, 결국 KDE 소프트웨어 모음 4의 공식 스크립팅 프레임워크가 되었으며, 이후 프레임워크 6에서 제외되었다. 크로스 스크립팅 프레임워크는 그 자체로 스크립트 언어인 것이 아니라, 개발자가 기능을 지정하여 스크립팅을 지원할 수 있게 해주는 인터페이스이며, 사용자는 크로스가 지원하는 언어를 사용하여 스크립트를 작성하게 된다. 현재 파이썬, 루비, 자바스크립트 및 팔콘(Falcon) 프로그래밍 언어를 지원한다. 다른 언어에 대한 지원은 모듈을 통해 추가될 수 있다.

## 다른 스크립팅 프레임워크와의 비교
### SWIG: Simplified Wrapper and Interface Generator
* 크로스는 현재 지원하는 스크립트 언어의 수가 더 적다.
* 크로스는 Qt/KDE 위에 구축되었다. 이를 통해 별도의 래핑 작업 없이도 Qt/KDE 요소에 접근할 수 있다.
* 크로스를 지원하는 애플리케이션은 SWIG를 지원할 때만큼 많은 코드를 필요로 하지 않는다.
* SWIG의 경우 지원되는 스크립트 언어 세트가 애플리케이션 컴파일 시점에 결정된다. 즉, 지원되는 각 언어는 해당 언어의 인터프리터를 호출하기 위한 코드를 애플리케이션 내에 가지고 있거나, 해당 애플리케이션-언어 쌍에 특화된 공유 라이브러리를 가져야 한다. 반면 크로스는 실행 시점까지 이를 알 필요가 없다.

### 애플스크립트
애플스크립트의 오픈 스크립팅 아키텍처(OSA)와 비교했을 때:
* OSA는 IPC(애플 이벤트)와 함께 사용될 수 있어 스크립트가 별도의 프로세스에 있을 수 있는 반면, 크로스 스크립트는 항상 메인 애플리케이션과 동일한 프로세스에서 실행된다. 실질적으로 IPC를 사용하면 하나의 스크립트가 이미 실행 중인 여러 애플리케이션 사이의 인터페이스 역할을 할 수 있지만, 크로스는 그렇지 못하다.
:(기술적으로 하나의 스크립트가 한 번에 여러 애플리케이션의 코드에 접근하기 위해 IPC가 반드시 필요한 것은 아니다. 스크립트는 SWIG에서 생성된 라이브러리와 같이 해당 애플리케이션의 라이브러리 형태와 링크될 수 있다.)
* 크로스는 스크립트 작성자가 자신이 선택한 언어로 스크립트를 작성할 수 있게 해주지만, 애플스크립트는 주어진 하나의 언어다. 다만 다른 (스크립팅) 언어 내에서 호출될 수는 있다.
* 크로스는 항상 애플리케이션에 크로스를 위한 코드를 명시적으로 추가해야 하지만, 많은 MacOS 애플리케이션은 코코아와 같은 GUI 툴킷 선택 덕분에 기본적인 스크립트 제어 기능을 갖추고 있다 (macOS의 애플스크립트 참조). (Dogtail 및 기타 GUI 테스트/자동화 도구들도 이러한 특성을 가진다.) 여기서 "기본적인 스크립트 제어 기능"이란 적어도 버튼과 메뉴를 클릭하고 스크린 리더와 같은 컴퓨터 접근성 소프트웨어에 제공되는 정보에 접근할 수 있음을 의미한다.

크로스는 현재 신뢰할 수 없는 스크립트를 실행하기 위한 조항이 없다. 즉, 스크립트가 할 수 있는 일을 제한하는 기능을 제공하지 않는다. 크로스 개발자인 자우어(Sauer)는 (실험적인 자바 플러그인을 사용하는 것과 같이) 샌드박스 지원이 좋은 언어를 사용하거나, 서명된 스크립트를 사용하는 등 스크립트에 대한 신뢰를 높이는 접근 방식을 사용할 것을 제안한다.

## 크로스를 사용하는 애플리케이션

* 캘리그라 스위트
* Kexi
* 크리타
* KDevelop
* K토렌트
* Kopete
* 플라스마

## 각주

## 외부 링크
* Kross 홈 페이지 (개발자용 문서)
* Kross 개발자 인터뷰 
* Kross 튜토리얼
* aKademy 2006 컨퍼런스 Kross 발표 
* Kross 네임스페이스 참조

분류:KDE 플랫폼
분류:캘리그라 스위트
분류:KDE 프레임워크
소넷 (동음이의)

**소넷** 또는 **소네트**(Sonnet)는 아래 뜻을 함의한다.
* 소네트: 유럽의 시적 형식
* 소넷 (소프트웨어): 컴퓨터 프로그램
* 소넷 (소니): 인터넷 서비스 제공자

## 음악
* Sonnet: 쥘 마스네의 소프라노용 노래
* Sonnet: 조르주 비제가 작곡한 노래

## 인공지능
* 클로드 3 소넷: 앤트로픽의 클로드 3 시리즈의 대형 언어 모델
소넷 (소프트웨어)

**소넷**(Sonnet)은 KDE 프레임워크 5 및 KDE 소프트웨어 모음 4에 포함된 다국어 맞춤법 검사기 프로그램이다. 소넷은 KDE3를 위해 만들어졌던 kspell2를 대체했다. 소넷 개발의 두 가지 주요 목표는 더 단순한 API, 더 넓은 언어 지원 및 성능이었다. kspell2와 비교하여 소넷에서 개선된 주요 사항은 다음과 같다.

*자동 언어 감지 기능에서 텍스트의 20자 정도만으로도 언어를 식별할 수 있다. 동일한 문서 내의 여러 언어도 감지하여 올바르게 맞춤법을 검사할 수 있다.
*더 나은 성능.
*태국어 및 일본어와 같은 언어의 맞춤법 검사 개선.
*더 단순한 설계 - kspell2는 7개의 구성 요소와 복잡한 API로 이루어져 있었다. 소넷은 단일 구성 요소이며 더 단순한 API 제공을 목표로 한다.
*사용자는 기본 사전과 백업 사전을 선택할 수 있다. 예를 들어 의학 사전의 용어를 자주 사용하는 의사의 경우, 일반 사전에 나타나지 않는 단어들을 의학 용어가 포함된 백업 사전으로 교정할 수 있다.

## 각주

## 외부 링크
* 소넷에 관한 기사
* 개발자 블로그 

분류:KDE 플랫폼
분류:KDE 프레임워크
스레드위버

**스레드위버**(ThreadWeaver)는 처음에는 KDE 소프트웨어 모음 4를 위해 개발되었으며 나중에 KDE 프레임워크 5를 위해 리팩토링된 시스템 라이브러리이다.

스레드위버를 사용하면 개발자가 멀티 코어 프로세서와 멀티스레딩의 장점을 쉽게 활용할 수 있다. 스레드위버에서 작업 부하는 개별 작업(job)으로 나뉘며, 그 후 작업 간의 관계(완료되어야 하는 순서나 우선순위)가 설정된다. 스레드위버는 이를 바탕으로 작업을 실행하는 가장 효율적인 방법을 찾아낸다. 크리타는 GUI 잠김 현상을 방지하기 위해 스레드위버를 사용하여 시각적 필터 미리보기를 구현했다.

## 각주

## 더 읽어보기
*

분류:API
분류:KDE 플랫폼
분류:자유 라이브러리
분류:KDE 프레임워크
XMLGUI

**XMLGUI**는 액션(actions)의 개념을 사용하여 XML로 애플리케이션의 사용자 인터페이스를 설계하기 위한 KDE 프레임워크이다.

이 프레임워크에서 프로그래머는 애플리케이션이 구현할 수 있는 다양한 액션을 설계하며, 파일 열기나 애플리케이션 종료와 같은 일부 액션은 KDE 프레임워크에 의해 미리 정의되어 있다. 각 액션은 아이콘, 설명 텍스트, 툴팁을 포함한 다양한 데이터와 연결될 수 있다.

이 설계의 흥미로운 점은 프로그래머가 메뉴나 도구 모음에 액션을 직접 삽입하지 않는다는 것이다. 대신 프로그래머는 메뉴 표시줄과 도구 모음의 레이아웃을 기술하는 XML 파일을 제공한다. 이 시스템을 사용하면 사용자가 해당 프로그램의 소스 코드를 건드리지 않고도 애플리케이션의 사용자 인터페이스를 재설계할 수 있다.

또한 XMLGUI는 KDE의 구성 요소 프로그래밍 인터페이스인 KParts에 유용하며, 애플리케이션이 KPart의 GUI를 자신의 GUI에 쉽게 통합할 수 있게 해준다. Konqueror 파일 관리자가 이 기능의 전형적인 예시이다.

현재 버전은 KDE 프레임워크#KXMLGUI이다.

## 기타 프로젝트
이 이름은 다소 일반적이다. Beryl XML GUI 의 이전 이름이 xmlgui였으며, 동일한 프로젝트 이름을 가진 수십 개의 다른 XML 지향 GUI 라이브러리가 존재한다. KDE XMLGUI는 결과물인 프로그래밍 기반에 대한 용어를 확정 짓지 못한 긴 프로젝트 시리즈 중 하나이다.

## 같이 보기
* Qt 스타일 시트

## 외부 링크
* XMLGUI 아키텍처에 대한 KDE 가이드

분류:KDE 플랫폼
분류:KDE 프레임워크
K 데스크톱 환경 2

**K 데스크톱 환경 2**(K Desktop Environment 2)는 K 데스크톱 환경의 두 번째 주요 출시 시리즈이다. 이 시리즈에는 세 번의 주요 출시가 있었다.

## 주요 업데이트
K 데스크톱 환경 2는 이전 버전에 비해 기술적으로 상당한 개선을 이루었다.

DCOP(데스크톱 통신 프로토콜, Desktop COmmunication Protocol)는 표준 X11 ICE 라이브러리를 통해 서버가 중개하는 클라이언트 간 통신 프로토콜이다.

KIO는 애플리케이션 입출력 라이브러리이다. 이는 네트워크 투명성을 가지며 HTTP, FTP, PoP, IMAP, NFS, SMB, LDAP 및 로컬 파일에 접근할 수 있다. 또한 개발자가 WebDAV와 같은 추가 프로토콜을 "끼워 넣으면" 모든 KDE 애플리케이션에서 자동으로 사용할 수 있도록 설계되었다. KIO는 특정 MIME 형식에 대한 핸들러를 찾을 수도 있으며, 이러한 핸들러는 KParts 기술을 사용하여 요청하는 애플리케이션 내에 내장될 수 있다.

KParts는 컴포넌트 오브젝트 모델로, 하나의 애플리케이션이 다른 애플리케이션을 자신 안에 내장할 수 있게 한다. 이 기술은 내장된 구성 요소가 활성화되거나 비활성화될 때 도구 모음을 배치하고 적절한 메뉴를 삽입하는 등 내장과 관련된 모든 측면을 처리한다. KParts는 또한 KIO 트레이더와 연동하여 특정 MIME 형식이나 서비스/프로토콜에 사용할 수 있는 핸들러를 찾을 수 있다.

KHTML은 HTML 4.0을 준수하는 렌더링 및 드로잉 엔진이다. 자바스크립트, 자바, HTML 4.0, CSS 2 및 보안 통신을 위한 SSL을 포함한 많은 인터넷 기술을 지원한다. 플래시와 같은 넷스케이프 플러그인과 호환된다. KHTML은 또한 KParts 기술을 사용하여 내부에 구성 요소를 내장하는 기능을 갖추고 있다.

## K 데스크톱 환경 2.0
[섬네일|right|250px|오늘의 팁과 함께 [칸달프를 보여주는 K 데스크톱 환경 2.0]]
Konqueror는 웹 브라우저, 파일 관리자 및 문서 뷰어로 도입되었다. 웹 페이지 표시를 위해 KHTML을 사용했다.

K 데스크톱 환경 2는 또한 초기 버전의 KOffice 제품군과 함께 배포되었는데, 이는 스프레드시트 애플리케이션(KSpread), 벡터 드로잉 애플리케이션(KIllustrator), 프레임 기반 워드 프로세싱 애플리케이션(K워드), 프레젠테이션 프로그램(KPresenter), 차트 및 다이어그램 애플리케이션(KChart)으로 구성되었다. 기본 파일 형식은 XML 기반이었다. KOffice는 스크립팅 언어를 포함했으며 KParts를 사용하여 개별 구성 요소를 서로 내장할 수 있는 기능을 제공했다.

## K 데스크톱 환경 2.1
K 데스크톱 환경 2.1 출시에서는 모듈식 플러그인 설계를 사용하는 미디어 플레이어 noatun이 처음 선보였다. 개발을 위해 K 데스크톱 환경 2.1은 KDevelop과 함께 번들로 제공되었다.

## K 데스크톱 환경 2.2
KDE 2.2 출시에서는 리눅스 시스템에서의 애플리케이션 시작 시간이 최대 50% 개선되었으며, HTML 렌더링 및 자바스크립트의 안정성과 기능이 향상되었다. Konqueror에는 다수의 새로운 플러그인이 포함되었다. KMail에는 IMAP 지원(SSL 및 TLS 포함)이 추가되었으며, KOrganizer는 기본 아이캘린더 지원 기능을 갖추게 되었다. 다른 개선 사항으로는 새로운 플러그인 기반 인쇄 아키텍처와 개인화 마법사가 포함되었다.

### KDE 복원 프로젝트
2016년 10월 14일 K 데스크톱 환경 1.1.2를 재출시하며 KDE의 20주년을 기념한 후, KDE 및 페도라 기여자인 엘리우 시시니 지 카스트루(Helio Chissini de Castro)는 2017년 10월에 Qt2를, 2017년 12월에는 KDELibs 2.2.2를 재출시했다.

## 출시 일정

## 각주

분류:데스크톱 환경
분류:2000년 소프트웨어
KDE 교육 프로젝트

**KDE 교육 프로젝트**(KDE Education Project 또는 KDE-Edu 프로젝트)는 학생과 학부모를 위해 KDE 기술을 기반으로 한 자유 소프트웨어 교육용 소프트웨어를 개발한다. 이 교육용 소프트웨어는 사용자가 문제 없이 접근할 수 있도록 65개 이상의 언어로 번역되어 있다. 또한 KDE-Edu 프로젝트는 교사들의 수업 계획을 지원하고 촉진하기 위한 자유 소프트웨어 교육을 제공한다.

KDE-Edu 프로젝트는 BSD 및 리눅스에서 사용할 수 있으며, 마이크로소프트 윈도우 지원은 베타 단계에 있다.

## 역사
KDE-Edu 프로젝트는 2001년 7월에 시작되었다. 프로젝트의 목표는 KDE 환경 내에서 자유 교육용 소프트웨어(GNU 일반 공중 사용 허가서)를 개발하는 것이다. 이 소프트웨어는 주로 학교, 학생, 가정의 학부모뿐만 아니라 지식을 넓히고자 하는 성인을 대상으로 한다.

## 소프트웨어 목록
이 소프트웨어들은 **kdeedu** 패키지에 묶여 있다. 모든 애플리케이션은 KDE와 완전히 호환된다.

### 언어
* Kanagram - 단어의 애너그램을 기반으로 한 사용자 정의 가능 게임.
* KHangMan - 클래식 행맨 게임.
* Kiten - 영일 및 일영 사전과 한자 사전을 포함한 일본어 참조/학습 도구.
* KLettres - 알파벳을 배우고 다양한 언어의 음절을 읽는 데 도움을 준다.
* KWordQuiz - "플래시 카드"나 객관식, 퀴즈 형식을 사용하여 어휘를 배우는 것을 돕는다.
* Parley - 간격 반복 또는 "플래시 카드" 방식을 사용한 어휘 학습 도구.

### 수학
* Cantor - 강력한 수학 및 통계 패키지를 위한 프론트엔드. 네 가지 환경(SageMath, Maxima, R, KAlgebra)을 KDE 플랫폼에 통합하고 워크시트 기반의 훌륭한 그래픽 사용자 인터페이스를 제공한다.
* KAlgebra - 다양한 유형의 2D 및 3D 함수를 그래프로 그리고 MathML 언어를 기반으로 계산을 수행하는 수학 계산기.
* KBruch - 분수와 백분율 계산을 연습하는 작은 프로그램.
* Kig - 대화형으로 기하학적 구조를 탐구하는 프로그램.
* KmPlot - 그래프와 그 적분 또는 도함수를 그리는 수학 함수 플로터.

### 기타
* Blinken - 네 가지 색상의 버튼이 점점 길어지는 순서를 기억하도록 도전하는 사이먼 가라사대(Simon Says) 게임의 컴퓨터 버전.
* KGeography - 일부 국가의 행정 구역(구역, 주도 및 관련 국기)을 포함한 지리학 학습 프로그램.
*KTouch - 터치 타이핑 학습을 위한 프로그램.
*KTurtle - 거북이 그래픽과 TurtleScript 프로그래밍 언어를 사용하는 로고와 같은 교육용 프로그래밍 환경.
* Pairs - 다양한 이미지, 모양, 소리 및 텍스트를 기억하여 기억력을 훈련하는 데 도움이 되는 집중력(Concentration) 게임의 컴퓨터 버전.

### 과학
* Kalzium - 주기율표를 시각적으로 표현하며 모든 일반적인 원소에 대한 기본 정보를 포함한다.
* KStars - 지구상의 어느 위치에서나, 어떤 날짜와 시간의 밤하늘을 정확하게 그래픽으로 시뮬레이션해 주는 KDE용 데스크톱 천체투영관 프로그램.
* Marble - 지구에 대해 더 많이 배우는 데 사용할 수 있는 가상 지구본 및 세계 지도책.
* Step - 시뮬레이션을 통해 물리 세계를 탐구할 수 있는 대화형 물리 시뮬레이터.
*Rocs - 사용하기 쉬운 시각적 데이터 구조 편집기와 알고리즘 실행을 위한 강력한 스크립팅 엔진을 갖춘, 그래프 및 알고리즘 설계 및 분석을 위한 그래프 이론 IDE.

## 미완성 소프트웨어
* Artikulate - 발음 능력 향상을 돕는 언어 학습 소프트웨어.

## 중단됨
* eqchem - 화학 방정식의 균형을 맞추기 위한 프로그램.
* Kard - 어린이용 카드 짝 맞추기 기억 게임.
* KMathTool - 약수 찾기와 같은 수학 계산기 모음.
* Kalcul - 수학 시험 프로그램.
* KPercentage - 학생들이 백분율 계산 능력을 향상시키는 데 도움을 주는 작은 수학 애플리케이션.
* KSimus - 디지털 회로 시뮬레이터 프로그램.
* KEduca - 양식 기반의 테스트 및 시험 생성과 수정을 가능하게 하는 교육 프로젝트.

## 같이 보기
* KCalc
## 각주

## 외부 링크

* KDE 교육 프로젝트 홈페이지
* KDE 교육 문서
* KDE 교육 포럼 

분류:자유 교육용 소프트웨어
분류:오픈 콘텐츠 프로젝트
드래곤 플레이어

**드래곤 플레이어**(Dragon Player)는 KDE 데스크톱 환경을 위한 단순한 미디어 플레이어이다. 맥스 하웰(Max Howell)이 처음 제작하고 개발했던 KDE 3용 비디오 플레이어인 코데인(Codeine)을 계승하여 이름을 바꾼 것이며, 현재는 KDE SC 4를 위해 이안 먼로(Ian Monroe)가 새 이름으로 개발하고 있다. 드래곤 플레이어는 여러 멀티미디어 프레임워크에 연결되는 멀티미디어 API인 포논을 사용하기 때문에, 연결된 특정 멀티미디어 프레임워크가 지원하는 모든 파일을 재생할 수 있다. 쿠분투 8.04부터 14.10까지 KDE 4 버전의 기본 비디오 플레이어였다.

## 기능
* 단순한 인터페이스
* 비디오 이어보기
* 자막 지원
* 비디오 디스플레이 설정 (밝기, 대비)
* Solid 및 포논을 사용하므로, 멀티미디어 프레임워크나 하드웨어 추상화 계층에 독립적임 (중요한 세부 사항일 수 있음).
* CD 및 DVD 재생 지원

## 각주

분류:자유 미디어 플레이어
분류:KDE 소프트웨어 모음
분류:리눅스 미디어 플레이어
JuK

**JuK**은 KDE에서 제작한 자유 소프트웨어 오디오 플레이어로, K 데스크톱 환경 3.2부터 기본 플레이어로 포함되었다. JuK은 MP3, Ogg Vorbis, FLAC 오디오 파일 모음을 지원한다.

JuK은 2000년 스콧 휠러에 의해 시작되었으며, 원래 이름은 **QTagger**였다. 하지만 2002년이 되어서야 KDE CVS로 옮겨졌고, 그곳에서 성숙한 오디오 애플리케이션으로 성장했다. KDE 3.2에서 처음으로 KDE의 공식 일부가 되었다.

## 기능
JuK은 유능한 음악 플레이어이기도 하지만, 주로 음악 관리에 중점을 둔 오디오 주크박스 애플리케이션이다. 다음과 같은 기능들이 이를 뒷받침한다.

* 모음 목록 및 다중 사용자 정의 재생 목록.
* 시작 시 디렉터리를 스캔하여 재생 목록(.m3u 파일) 및 음악 파일을 자동으로 가져오는 기능.
* 모음의 필드가 변경될 때 자동으로 업데이트되는 동적 검색 재생 목록.
* 앨범, 아티스트, 장르 세트에 대해 재생 목록이 자동으로 생성되는 트리 보기 모드.
* 어떤 파일이 언제 재생되었는지 보여주는 재생 목록 기록.
* 표시되는 항목 목록을 필터링하기 위한 인라인 검색.
* 파일 이름에서 태그 정보를 추측하거나 뮤직브레인즈 온라인 조회를 사용하는 기능.
* 태그 내용을 기반으로 파일 이름을 변경할 수 있는 파일 이름 변경 도구.
* ID3v1, ID3v2 및 Ogg Vorbis 태그 읽기 및 편집 지원 (TagLib 사용).

## 같이 보기
*

## 각주

분류:GPL 라이선스 소프트웨어
분류:KDE 애플리케이션
KCalc

**KCalc**는 KDE Gear와 통합된 공학용 소프트웨어 계산기이다.

## 기능
**KCalc**는 삼각함수, 논리 연산, 이전 결과 저장, 복사 및 붙여넣기, UI 설정, 통계 계산 기능을 포함한다. 히스토리 기능은 스택 방식을 사용한다. KCalc는 불리언 연산도 지원한다.

KCalc는 그래프 기능을 지원하지 않는다.

버전 2(KDE 3.5에 포함)부터 KCalc는 임의 정밀도를 제공한다.

## 갤러리

파일:KCalc 21.12.0 science mode screenshot.png|공학용 모드
파일:KCalc 21.12.0 statistic mode screenshot.png|통계 모드
파일:KCalc 21.12.0 numeral system mode screenshot.png|진법 모드


## 같이 보기
* 소프트웨어 계산기 비교
* GNOME 계산기

## 외부 링크

* KCalc 핸드북

## 각주

분류:자유 교육용 소프트웨어
분류:GPL 라이선스 소프트웨어
분류:KDE 애플리케이션
KGPG

**KGpg**는 키 관리 창과 편집기를 포함하는 KDE용 GnuPG 그래픽 프런트엔드이다. 사용자는 암호화 키를 생성하고, 메시지를 작성, 암호화, 복호화, 서명 또는 검증할 수 있다. Konqueror 브라우저 및 파일 관리자와 통합하면, 사용자는 마우스 오른쪽 버튼을 클릭하고 '동작 > 파일 암호화'를 선택하여 파일을 암호화할 수 있다. Konqueror에서 암호화된 파일을 마우스 왼쪽 버튼으로 클릭하면 파일을 복호화하기 위한 비밀번호를 입력하라는 메시지가 표시된다. 사용자는 공개 키 또는 개인 키를 만들 수 있으며, 키를 내보내거나 가져올 수 있다. 또한 사용자는 키에 서명하고 만료 날짜를 설정할 수 있다.

## 각주

분류:GPL 라이선스 소프트웨어
분류:KDE 애플리케이션
Klipper

**Klipper**(클리퍼)는 KDE 인터페이스를 위한 클립보드 관리자이다. KDE 데스크톱 환경을 실행하는 유닉스 계열 운영 체제 사용자가 Wayland 및 X 선택 영역의 기록에 접근할 수 있게 해주며, 이 중 어떤 항목이든 다시 선택하여 붙여넣을 수 있다. 또한 특정 텍스트가 선택되었을 때 특정 동작(예: 브라우저에서 URL 열기)을 자동으로 수행하도록 설정할 수도 있다.

## 외부 링크
* Klipper 핸드북

분류:KDE 소프트웨어
앱스트림

**앱스트림**(AppStream)은 리눅스 상의 애플리케이션 설치 프로그램을 위한 인프라를 구축하고 메타데이터를 공유하기 위해 주요 리눅스 벤더(레드햇, 캐노니컬, SUSE, 데비안, 맨드리바 등) 사이에서 맺어진 합의이다.

이 이니셔티브는 2011년 1월 19~21일경에 시작되었다.

이 프로젝트는 스스로를 다음과 같이 설명한다. "통합된 소프트웨어 메타데이터 데이터베이스와 중앙 집중식 OCS(Open Collaboration Services) 사용자 기여 콘텐츠 데이터베이스를 구축하여 최상의 사용자 경험을 제공하는 것을 목표로 하는 교차 배포판 협업 이니셔티브이다."

0.6 버전 릴리스와 함께 프로젝트의 범위가 확장되어 글꼴, 코덱, 입력기 및 일반 라이브러리와 같은 기타 소프트웨어 구성 요소에 대한 더 많은 메타데이터를 포함하게 되었으며, 이를 통해 애플리케이션이 배포판에 독립적인 방식으로 사용 가능한 소프트웨어 정보를 쿼리할 수 있게 되었다. 이는 소프트웨어 센터에 표시되는 데이터의 품질을 높일 뿐만 아니라, Listaller와 같은 타사 애플리케이션 설치 프로그램이 새 애플리케이션이 배포판의 패키지 데이터베이스에서 실행되는 데 필요한 구성 요소를 찾을 수 있도록 한다. 또한 새로운 메타데이터를 통해 소프트웨어를 빌드하는 데 필요한 전제 조건을 더 쉽게 설치할 수 있으며, 업스트림 애플리케이션을 배포판 패키지와 매칭하고 배포판 간의 패키지를 매칭하여 패치 교환 프로세스를 개선할 수 있다.

앱스트림은 스냅, Flatpak, 앱이미지와 같은 패키징 방식에서도 사용된다.

## 같이 보기
* 패키지 관리자
* 패키지킷, 그놈 소프트웨어 및 Apper
* 우분투 소프트웨어 센터

## 각주

## 외부 링크
* 
* AppData
* freedesktop.org의 AppStream
* AppStream 문서
* 프로젝트 Bretzn
* Phoronix - AppStream 소개, 멀티 배포판 앱 프레임워크
* Google Summer of Code 2011 - 소프트웨어 센터를 위한 패키지킷 백엔드 및 AppStream 통합
* openSUSE의 애플리케이션 관리자

분류:리눅스
분류:자유 응용 소프트웨어
분류:리눅스 패키지 관리 관련 소프트웨어
KDE 시스템 가드

**KDE 시스템 가드**(KDE System Guard) 또는 **KSysGuard**는 유닉스 계열 시스템의 KDE 플랫폼을 위한 작업 관리자 및 성능 모니터였다. 원격 호스트에서 ksysguardd를 실행하고 GUI(ksysguard)를 원격 인스턴스에 연결함으로써 로컬 및 원격 호스트를 모두 모니터링할 수 있다. 단순한 값이나 표와 같은 복잡한 데이터를 가져와 다양한 그래픽 디스플레이로 이 정보를 표시할 수 있다. 디스플레이는 워크시트 단위로 정리할 수 있다. 또한 상세한 top 형태의 프로세스 테이블을 제공한다.

KDE 시스템 가드는 KDE 1.x의 작업 관리자인 KTop을 새로 작성한 것이다.

최근에는 유지보수가 중단되었으며 Plasma System Monitor가 대체제로 채택되었다.

## 같이 보기
* top - 많은 유닉스 계열 운영체제에서 발견되는 작업 관리자 프로그램
* Htop - 리눅스용 대화형 시스템 모니터

## 각주

## 외부 링크
* KDE 시스템 가드 사용자 위키
* KDE 시스템 가드 핸드북

분류:C++로 작성된 자유 소프트웨어
분류:리눅스 프로세스 및 작업 관리 관련 소프트웨어
아바히

**아바히**(Avahi)는 멀티캐스트 DNS 및 DNS 서비스 검색 시스템을 포함하는 자유 소프트웨어 Zeroconf 구현체이다. GNU 약소 일반 공중 사용 허가서(LGPL)에 따라 라이선스가 부여된다.

아바히는 프로그램이 로컬 네트워크에서 실행 중인 서비스와 호스트를 게시하고 검색할 수 있도록 하는 시스템이다. 예를 들어, 사용자가 컴퓨터를 네트워크에 연결하면 아바히가 해당 기기에서 실행 중인 네트워크 서비스를 자동으로 알리게 하여 사용자가 해당 서비스에 쉽게 접근할 수 있도록 돕는다.

## 소프트웨어 구조
섬네일|right|아바히 소프트웨어 프레임워크의 아키텍처 개요

아바히는 애플의 Zeroconf 규격, mDNS, DNS-SD 및 RFC 3927/IPv4LL을 구현한다. 다른 구현체로는 애플의 봉주르 프레임워크가 있으며(mDNSResponder 구성 요소는 아파치 라이선스로 제공됨), 아바히는 이를 대체할 수 있도록 설계되었다.

아바히는 다양한 언어 바인딩(파이썬, 모노 등)을 제공하며 대부분의 리눅스 및 BSD 배포판에 포함되어 있다. 모듈화된 아키텍처 덕분에 그놈 가상 파일 시스템 및 KDE 입출력 아키텍처와 같은 주요 데스크톱 구성 요소에 이미 통합되어 있다.

## 아바히 대 봉주르
아바히 프로젝트는 2004년에 시작되었는데, 당시 애플의 Zeroconf 구현체인 봉주르가 GPL과 호환되지 않는 애플 공공 소스 라이선스를 사용했기 때문이다. 2006년 애플은 봉주르의 일부를 아파치 라이선스로 재라이선스했다.

아바히의 성능은 봉주르와 비슷하며 때로는 이를 능가하기도 한다. 하지만 아바히는 많은 수의 요청을 동시에 관리할 때 서비스를 놓치는 경우가 발생할 수 있다.

## 역사
아바히는 레나르트 페터링과 트렌트 로이드에 의해 개발되었다. 이는 2005년에 페터링의 원래 mDNS/DNS-SD 구현체인 "FlexMDNS"와 로이드의 원래 코드인 "아바히"가 합병된 결과물이다. 오늘날 코드의 대부분은 전자의 프로젝트에서 유래했지만, 공동 프로젝트의 이름은 후자의 것을 사용했다. "FlexMDNS" 개발은 2004년 말에 시작되었고, 원래 "아바히" 작업은 2004년 초에 시작되었다.

아바히는 원래 Freedesktop.org 산하에서 개발되었으나 현재는 별도의 프로젝트가 되었다. 그러나 아바히는 여전히 Freedesktop.org의 D-Bus IPC 계층을 활용한다.

아바히라는 이름은 마다가스카르 토착 영장류 가족인 양털여우원숭이 속의 말라가시어 이름이자 학명이다. 트렌트 로이드가 이 이름을 찾아내어 마음에 들어 했고, 그것이 프로젝트 이름으로 굳어졌다. 로고에도 이 동물이 반영되어 있다.

## 같이 보기
* 리눅스 온 더 데스크톱
* LDAP
* 네트워크 정보 서비스
* OSGi 연합

## 각주

## 외부 링크
* 
* linux.conf.au 2007에서 페터링과 로이드가 진행한 발표  및 슬라이드

분류:KDE
분류:그놈
분류:Freedesktop.org
분류:자유 네트워크 소프트웨어
분류:C로 작성된 자유 소프트웨어
분류:LGPL 라이선스 소프트웨어
Fontconfig

**Fontconfig**(폰트콘피그)는 다른 프로그램에 글꼴의 설정, 나열 및 글꼴 대체 기능을 제공하도록 설계된 자유 소프트웨어 프로그램 라이브러리이다. Fontconfig는 원래 키스 패커드가 작성하고 유지 관리했으며, 현재는 베흐다드 에스파보드가 유지 관리를 맡고 있다.

Fontconfig는 일반적으로 Xorg 및 Wayland와 같은 그래픽 중심의 리눅스 (및 기타 유닉스 계열) 데스크톱에서 사용되며, 글꼴 처리의 중요한 부분으로 남아 있다. 그러나 때때로 다른 플랫폼에서도 사용되는데, 특히 김프와 같이 텍스트 레이아웃 및 렌더링을 위해 Pango를 사용하는 소프트웨어의 마이크로소프트 윈도우 버전 등에 포함된다.

## 사용법
최종 사용자는 시스템의 글꼴을 사용자 정의하고 설정하기 위해 직접 또는 간접적으로 fontconfig를 사용할 수 있다.

애플리케이션은 두 가지 방식으로 fontconfig를 사용할 수 있다.
# 시스템에서 사용 가능한 글꼴을 쿼리(질의)하거나,
# 특정 매개변수(패턴으로 구성됨)와 최대한 가깝게 일치하는 글꼴을 쿼리한다.

글꼴 일치를 수행하기 위해 fontconfig는 폰트 패밀리, 스타일, 두께, 도트 퍼 인치(DPI), 유니코드 지원 범위 등을 포함하여 설치된 모든 글꼴에 대한 조판 정보를 저장한다. 이 정보는 글꼴 대체를 수행하는 데에도 사용된다.

## 설정
Fontconfig는 설정 파일에 XML 형식을 사용한다. fontconfig 파일의 문서 형식 정의(DTD)는 일반적으로 `/etc/fonts/fonts.dtd`에 위치한다.

마스터 설정 파일(보통 `/etc/fonts/fonts.conf`)은 존재할 수도 있고 존재하지 않을 수도 있는 몇 가지 다른 설정 위치를 참조한다.
* `/etc/fonts/fonts.conf`
* `/etc/fonts/conf.d`
* `$XDG_CONFIG_HOME/fontconfig/conf.d`
* `$XDG_CONFIG_HOME/fontconfig/fonts.conf`
* `~/.fonts.conf.d`
* `~/.fonts.conf`

설정 파일의 간단한 예시는 다음과 같다.

```xml
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
    
    <match target="font">
        <edit mode="assign" name="antialias"><bool>true</bool></edit>
    </match>
</fontconfig>
```


## 유틸리티
Fontconfig에는 글꼴과 시스템의 글꼴 설정을 관리하고 쿼리하기 위한 8가지 명령줄 유틸리티가 함께 제공된다.
* `fc-list`: fontconfig가 알고 있는 모든 글꼴 또는 패턴과 일치하는 모든 글꼴을 나열한다.
* `fc-match`: 일반적인 fontconfig 일치 규칙을 사용하여 사용 가능한 가장 적절한 글꼴을 찾기 위해 글꼴 패턴(기본적으로 빈 패턴)을 일치시킨다.
* `fc-cache`: 지정된 디렉터리에 있는 모든 FreeType 읽기 가능 글꼴의 캐시를 생성하거나, 설정 파일에 지정된 모든 디렉터리에서 FreeType 읽기 가능 글꼴의 캐시를 생성한다.
* `fc-cat`: 캐시 파일 또는 글꼴 디렉터리와 관련된 글꼴 정보를 읽고 이를 ASCII 형식으로 출력한다.
* `fc-query`: 글꼴 파일을 쿼리하고 결과 패턴을 보고한다.
* `fc-scan`: 글꼴 파일과 디렉터리를 스캔하고 결과 패턴을 보고한다.
* `fc-pattern`: 제공된 패턴과 일치하는 최적의 글꼴을 나열한다.
* `fc-validate`: 글꼴 파일을 검증하고 결과를 보고한다.

## 같이 보기
* 프리타입
* X 논리 글꼴 기술
* Xft

## 각주

## 외부 링크
* fontconfig 웹사이트
* fontconfig 매뉴얼
* 오픈 소스 시스템을 위한 글꼴 설정 및 사용자 정의 (PDF)

분류:유닉스 소프트웨어
분류:C로 작성된 자유 소프트웨어
분류:MIT 라이선스 소프트웨어
하프버즈

**하프버즈**(HarfBuzz, 페르시아어 번역차용  harf-bāz의 느슨한 음차, 문자 그대로는 "오픈 타입")는 유니코드 텍스트를 자체 인덱스 및 위치로 변환하는 과정인 텍스트 셰이핑을 지원하기 위한 소프트웨어 라이브러리다. 최신 버전인 New HarfBuzz(2012년~현재)는 다양한 글꼴 기술을 대상으로 하는 반면, 첫 번째 버전인 Old HarfBuzz(2006~2012년)는 오픈타입 글꼴만을 대상으로 했다.

## 역사

하프버즈는 원래 프리타입 프로젝트의 일부였던 코드에서 발전했다. 그 후 Qt와 Pango에서 별도로 개발되었다가, 다시 MIT 허가서를 가진 공통 저장소로 통합되었다. 이것이 Old HarfBuzz이며, 현재는 New HarfBuzz가 개발 경로를 이어받으면서 더 이상 개발되지 않는다. 2013년, 베다드 에스파보드는 하프버즈에 대한 공로로 오라일리 오픈 소스 어워드를 수상했다.

New HarfBuzz의 주요 이정표는 다음과 같다:
* 0.9.2, SIL 그래파이트 지원
* 1.0, 마이크로소프트의 유니버설 셰이핑 엔진(Universal Shaping Engine) 개념 포함
* 1.4, 오픈타입 가변 글꼴 지원
* 1.6, 유니코드 10 지원
* 1.8, 유니코드 11 지원
* 2.0, 애플 어드밴스드 타이포그래피(AAT) 셰이핑 지원.
* 2.1, 컬러 글꼴 지원 및 주요 AAT 셰이핑 기능 개선
* 2.4, 유니코드 12 지원
* 2.6.7, 유니코드 13 지원
* 3.0, 안정적인 글꼴 서브세터 API, 유니코드 14 지원
* 4.0, 65,536개 이상의 자체 및 메트릭 지원
* 4.3, 대폭적인 속도 향상
* 5.0, BE 글꼴 지원
* 5.2, 유니코드 15 지원
* 7.0, 새로운 API, 새로운 명령줄 유틸리티, 글꼴 엠볼드닝(emboldening) 지원 및 메모리 사용량 감소 도입
* 8.0, 글꼴에 내장된 웹어셈블리 기반 셰이퍼 사용 지원 도입

## 사용자
대부분의 애플리케이션은 하프버즈를 직접 사용하지 않고, 하프버즈가 통합된 UI 툴킷 라이브러리를 사용한다.

하프버즈를 사용하는 UI 라이브러리는 다음과 같다:

* 그놈 (GTK)
* KDE (Qt)
* 크롬OS (Skia)
* 플레이스테이션 4
* 안드로이드
* 자바
* 플러터
* 고도 (4.0 버전부터)
* 유니티 (6.0 버전부터)
* 오픈하모니 (훙멍)

하프버즈를 직접 사용하는 애플리케이션은 다음과 같다:

* 크로미엄
* 파이어폭스
* 리브레오피스 (리눅스 전용 4.1 버전부터, 모든 플랫폼에서 5.3 버전부터)
* 스크라이버스 (1.5.3 버전부터)
* 잉크스케이프
* 어도비 포토샵 (23.0 버전부터)
* 어도비 인디자인 (인디자인 19.0부터 월드 레디 컴포저(World Ready Composer) 사용 시)
* 피그마
* XeTeX (0.9999 버전부터)
* LuaTeX (1.11.1 버전부터)
* 쿼크익스프레스

## 같이 보기
* 그래파이트, SIL International에서 개발한 프로그래밍 가능한 유니코드 호환 스마트 폰트 기술 및 렌더링 시스템
* 유니스크라이브 및 다이렉트라이트, 마이크로소프트 윈도우 플랫폼에서 유사한 기능을 제공하는 API
* Core Text, macOS에서 유사한 기능을 제공하는 API (macOS에서도 대신 하프버즈를 사용할 수 있음)

## 각주

## 외부 링크
* 
* Old Harfbuzz

분류:디지털 타이포그래피
분류:Freedesktop.org
분류:C로 작성된 자유 소프트웨어
분류:MIT 라이선스 소프트웨어
분류:자유 라이브러리
KInfoCenter

**KInfoCenter**는 사용자의 시스템에 대한 정보를 제공하는 KDE의 유틸리티이다.

KDE 3.1 이전에는 제어 센터에 통합되어 있었다. 대부분의 옵션은 원래 리눅스용으로 설계되었지만, 많은 옵션이 다른 운영체제로 포팅되었다. 또한 사용 가능한 KIO 슬레이브와 같은 KDE에 대한 유용한 정보도 제공한다.

## 제공되는 정보
KInfoCenter가 제공하는 정보는 다양한 KCM 플러그인에 의해 제공되는 다음과 같은 하위 섹션으로 나뉜다.

*장치 (Devices)
*DMA 채널 (DMA-Channels)
*인터럽트 (Interrupts)
*IO 포트 (IO-Ports)
*메모리 (Memory)
*네트워크 인터페이스 (Network Interfaces)
*OpenGL
*파티션 (Partitions)
*PCI
*PCMCIA
*프로세서 (Processor)
*프로토콜 (Protocols)
*Samba 상태 (Samba Status)
*SCSI
*저장 장치 (Storage Devices)
*USB 장치 (USB Devices)
*X 서버 (X-Server)
*Wayland

## 갤러리

파일:KInfoCenter 5.23.4 X-Server screenshot.png|X 서버
파일:KInfoCenter 5.23.4 OpenGL screenshot.png|OpenGL
파일:KInfoCenter 5.23.4 interrupts screenshot.png|인터럽트
파일:KInfoCenter 5.23.4 USB devices screenshot.png|USB 장치


## 각주

## 외부 링크
* KInfoCenter 사용자 매뉴얼 

분류:KDE 애플리케이션
KDE e.V.

**KDE e.V.**는 법적 및 재정적 문제에서 KDE 커뮤니티를 대표하는 비영리 단체다. 1997년 11월 27일에 설립되었으며, 독일 베를린에 본사를 두고 있다. 이 협회는 현금, 하드웨어 및 기타 기부금을 통해 KDE를 지원하며, 이는 프로젝트의 개발 방향에 영향을 미치지 않으면서 개발 노력을 돕는 데 사용된다. 약어 'e.V.'는 독일어로 '등록 협회'를 의미하는 eingetragener Verein의 약자다.

## 역사
1997년 8월, 독일 아른스베르크에서 KDE One으로 알려진 첫 번째 KDE 커뮤니티 회의가 열렸다. 이 행사에는 15명의 참가자가 모였으며 14,000 마르크의 예산으로 운영되었다. 회의 기간 동안 조직자 마티아스 칼레 달하이머는 개인 은행 계좌를 통해 기부금과 비용을 처리하는 것이 비실용적이라는 것을 깨달았다. 그 결과, 그는 KDE 커뮤니티의 재정 및 법적 문제를 관리하기 위한 공식 조직 설립을 제안했다.

1997년 11월 27일, KDE e.V.는 튀빙겐에서 독일 법에 따른 비영리 등록 협회(eingetragener Verein)로 공식 등록되었다. 마티아스 에트리히가 조직의 첫 회장이 되었고, 달하이머가 부회장을 맡았다. 7명의 창립 멤버가 필요하다는 법적 요건을 충족하기 위해, 그들은 하우스메이트와 친구들을 영입하여 협회에 가입시켰다.

KDE e.V.는 기부금을 관리하고 행사를 조직함으로써 KDE 커뮤니티를 지속적으로 지원해 왔다. 시간이 흐르면서 그 역할이 확대되어 공식 회원 프로그램을 개발하고 직원을 고용했다.

2006년 10월, 마크 셔틀워스가 KDE의 첫 번째 개인 후원자가 되었고, 이어서 2007년 2월에 트롤테크가 첫 번째 기업 후원자가 되었다. 그해 말에 KDAB, 인텔, 노벨을 포함한 추가 후원자들이 합류했다. 2008년, KDE e.V.와 독일 위키미디어는 프랑크푸르트에 공동 사무실을 열었으며, 이는 KDE e.V.의 첫 직원 고용을 기록했다. 이후 조직은 유럽 자유 소프트웨어 재단(FSFE)과의 협력을 통해 사무실을 베를린으로 이전했다.

2010년, KDE e.V.는 시간적 헌신 없이 개인이 후원 회원이 될 수 있도록 독려하는 이니셔티브인 "Join the Game" 캠페인을 시작했다. FSFE의 창립자인 게오르크 그레베가 가장 먼저 가입했다.

## 조직

KDE e.V.에는 활동 회원, 특별 회원 및 후원 회원의 세 가지 유형의 멤버십이 있다. 자연인과 법인 모두 회원이 될 수 있다. 활동 회원은 KDE 커뮤니티에 기여한 사람들이다. 후원 회원은 재정적 기부를 통해 KDE를 지원하며, basysKom GmbH, Digia, 시리우스 코퍼레이션, 구글 등으로 구성된다. KDE의 후원자(Patron)는 후원 회원의 최고 단계로, SUSE, Klarälvdalens Datakonsult AB, 노키아 등이 있다. 협회의 모든 회원은 총회에 초대된다. 총회는 종종 Akademy의 일부로 개최된다.

이사회는 협회의 운영을 책임진다. 이사회는 총회에서 선출된 5명의 위원으로 구성된다. KDE e.V. 사무실은 베를린에 위치해 있다. 비즈니스 매니저라고 불리는 1명의 유급 행정 직원이 있다. 비즈니스 매니저는 일상적인 운영, 자원 확보 및 인턴 관리를 전담한다. KDE e.V.는 자격을 갖춘 학생들에게 인턴십 기회를 제공한다. 스페인에서 KDE e.V.의 공식 대표는 KDE España다. KDE e.V.는 FSFE의 제휴 조직이며 오픈 인벤션 네트워크의 라이선스 사용자다.

## 활동
KDE e.V.는 개발자 스프린트, Camp KDE 및 Akademy를 포함한 행사들을 조직하고 보조금을 지원한다. 또한 KDE 커뮤니티와 관련된 법적 문제를 처리한다.

워킹 그룹은 KDE 내의 일부 역할을 공식화하고 KDE 내부의 조정 및 각 부분 간의 의사소통을 강화하기 위한 구조다. 현재 활동 중인 워킹 그룹으로는 커뮤니티 워킹 그룹(CWG), 마케팅 워킹 그룹(MWG), 시스템 관리(sysadmin)가 있다. 해체된 워킹 그룹은 인간-컴퓨터 상호작용 워킹 그룹(HCI WG)과 기술 워킹 그룹(TWG)이다.

시스템 관리 워킹 그룹은 KDE 서버의 관리를 책임진다. 마케팅 워킹 그룹은 2005년 11월에 설립되어 마케팅 및 홍보 조정을 돕는다. 현재 멤버는 트로이 언라우, 프란츠 케퍼뵈크, 웨이드 올슨이다. 커뮤니티 워킹 그룹은 2008년 8월에 설립되어 필요할 때 커뮤니티 조언을 돕는다.

기술 워킹 그룹은 계획 및 릴리스를 조정하기 위한 것이다. 또한 어떤 소프트웨어를 KDE에 포함하거나 제거할지 결정하며, 서로 다른 프로그램이 모듈로 결합되는 방식과 모듈 간 및 외부 소프트웨어와의 의존성 허용 여부를 결정한다. 추가적인 과업으로, 프로젝트 개발자와 제작자 사이에서 KDE와 관련된 일반적인 기술적 질문에 대한 연락 창구 역할을 한다. 1년 후, 기술 워킹 그룹은 KDE e.V.로부터 독립된 릴리스 팀으로 대체되었다.

## 각주

분류:KDE
분류:자유 소프트웨어 프로젝트 재단
사운드 주서

**사운드 주서**(Sound Juicer)는 그놈의 공식 CD 리퍼 프로그램이다. 광학 디스크를 읽고 쓰기 위해 GTK, GStreamer, libburnia를 기반으로 한다. 광학 오디오 디스크에서 오디오 트랙을 추출하여 개인용 컴퓨터나 디지털 오디오 플레이어에서 재생할 수 있는 오디오 파일로 변환할 수 있다. Opus, MP3, Ogg Vorbis, FLAC 및 비압축 PCM 형식과 같이 GStreamer 플러그인이 지원하는 모든 오디오 코덱으로의 리핑을 지원한다. 2.12 이후 버전에서는 CD 재생 기능이 구현되었다. 최신 버전들은 기본 GStreamer 설정을 사용하여 손실 압축 형식을 생성한다.

사운드 주서는 사용하기 쉽고 사용자의 개입을 최소화하도록 설계되었다. 예를 들어, 컴퓨터가 인터넷에 연결되어 있으면 자유롭게 이용 가능한 뮤직브레인즈 서비스를 통해 트랙 정보를 자동으로 가져오려고 시도한다. 사운드 주서는 GNU GPL 조건에 따른 자유-오픈 소스 소프트웨어이다. 버전 2.10부터 그놈의 공식 구성 요소가 되었다.

## 같이 보기
* 

## 각주

## 외부 링크
* 

분류:자유 오디오 소프트웨어
분류:C로 작성된 자유 소프트웨어
분류:GPL 라이선스 소프트웨어
그놈 사운드컨버터

**그놈 사운드컨버터**(GNOME SoundConverter)는 디지털 오디오 파일을 위한 비공식 그놈 기반 자유-오픈 소스 소프트웨어 트랜스코더이다. 입력 및 출력 파일 처리에 GStreamer를 사용한다. 멀티스레드 설계를 갖추고 있으며 비디오 파일에서 오디오를 추출할 수도 있다.

오래전부터 데비안, 페도라, 오픈수세, 우분투, 젠투 리눅스, 아치 리눅스를 포함한 많은 리눅스 배포판의 저장소에서 사용할 수 있다.

## 기능
* 사용자 정의 패턴 또는 미리 정의된 패턴을 기반으로 파일 이름 변경
* 태그 또는 선택한 위치에 따라 폴더 생성
* 원본 파일 삭제 가능
* 비트레이트 조절
* 원본 파일에서 이미지를 포함한 모든 메타데이터 가져오기

## 같이 보기
* OggConvert

## 각주

## 외부 링크

* 

분류:자유 오디오 소프트웨어
분류:2004년 소프트웨어
분류:파이썬으로 작성된 자유 소프트웨어
분류:GPL 라이선스 소프트웨어
칸타렐 (글꼴)

**칸타렐**(Cantarell)은 버전 3.0부터 버전 48까지 그놈의 사용자 인터페이스와 함께 제공된 기본 글꼴로, Bitstream Vera와 데자뷰 폰트를 대체했다. 이 글꼴은 2009년 데이브 크로슬랜드에 의해 처음 만들어졌다.

페도라 리눅스와 같이 그놈(버전 3~48)을 탑재한 운영체제는 이 글꼴 제품군을 기본으로 포함했으며, 레드햇 엔터프라이즈 리눅스는 구글 폰트 디렉터리에 이 글꼴 제품군을 포함하여 웹사이트에서 사용할 수 있도록 했다. 우분투 (글꼴)를 대신 포함하는 우분투에는 포함되지 않은 것으로 유명하다.

그놈 48에서 칸타렐은 사용자 인터페이스의 기본 글꼴로 Adwaita Sans로 대체되었다. Adwaita Sans는 Inter의 맞춤형 버전으로, 원래 그놈 47부터 칸타렐을 대체할 예정이었다.

## 역사
2009년 칸타렐 글꼴은 데이브 크로슬랜드가 레딩 대학교에서 글꼴 디자인을 공부하던 중에 처음 디자인되었다. 2010년, 이 글꼴은 그놈 3.0 릴리스에 사용하기 위해 선택되었으며, 글꼴 소스는 그놈의 Git 저장소로 옮겨졌다. 글꼴은 그곳에서 유지 관리되어 야쿠프 슈타이너와 푸자 삭세나를 포함한 다양한 디자이너의 기여를 허용했다. 2013년 푸자 삭세나는 그놈 재단의 "여성을 위한 아웃리치 프로그램" 인턴십에 참여했으며, 디자인 및 언어 지원 개선 업무를 맡았다. 2014년 푸자는 디자인을 데바나가리 문자로 확장하기 위해 구글 폰트로부터 재정적 지원을 받았으나, 피할 수 없는 수직 메트릭 조정으로 인해 해당 제품군은 **Cambay**라는 새로운 이름으로 발표되었다. 칸타렐에서 파생된 또 다른 글꼴로는 Petra Sans가 있다.

그놈 3.28(2018년 3월)에서 이 글꼴은 라이트(Light)와 엑스트라 볼드(Extra Bold)라는 두 가지 두께가 추가되어 재디자인되었다.

## 비판
칸타렐은 처음에 자유-오픈 소스 소프트웨어 커뮤니티로부터 비판과 지지를 동시에 받았다. 그놈이 칸타렐을 사용함으로써 데스크톱 애플리케이션의 가독성이 떨어졌으며, 커닝이 적용되지 않았고 자체가 변형되었다는 주장이 제기되었다. 다른 사용자들은 "스타일리시하고 아름답지만, 가장 중요한 것은 선명하고 읽기 쉽다"며 디자인을 즐겼다. 초기 릴리스 노트에서는 화면에서의 가독성을 위해 디자인되었다고 명시했다.

그놈의 선택은 칸타렐이 이전에 사용된 데자뷰 폰트보다 훨씬 적은 일부 라틴 언어만 지원한다는 점에서도 비판을 받았다. 글꼴이 처음 발표되었을 때 크로슬랜드는 다른 사람들에게 언어 지원 확장을 요청했고, 이는 2013년 삭세나가 키릴 문자에 디자인을 적용하기 시작하면서 마침내 시작되었다.

칸타렐은 기본 이탤릭체나 기울임꼴 자체를 포함하지 않는다.

## 같이 보기
* Adwaita (디자인 언어) – 칸타렐을 기본 글꼴로 사용하는 그놈의 디자인 언어
* 오픈 소스 유니코드 서체
* 드로이드 (글꼴): 안드로이드 첫 버전들의 기본 글꼴
** 노토 폰트: 최신 안드로이드 버전들의 기본 글꼴
** 오픈 산스: 드로이드 산스를 기반으로 한 또 다른 글꼴
** 로보토: 최신 안드로이드 버전들의 기본 글꼴
* IBM 플렉스: IBM의 자유 및 오픈 소스 글꼴
* 국가 글꼴: 태국의 자유 및 오픈 소스 글꼴
* PT 글꼴: 러시아의 자유 및 오픈 소스 글꼴
* STIX 글꼴: 과학 및 공학 커뮤니티를 위한 글꼴

## 각주

## 외부 링크
* 홈페이지 cantarell.gnome.org (가변 글꼴)
* Cantarell 소스 코드
* Petra Sans 소스 코드
* 구글 폰트 Cambay
* 구글 폰트 Cantarell
* Font Library Cambay
* Font Library Cantarell
* Font Library Petra Sans

분류:그놈
분류:오픈 소스 글꼴
그놈 박스

**그놈 박스**(GNOME Boxes)는 그놈 데스크톱 환경의 응용 프로그램으로, 가상 시스템에 접속하는 데 사용된다. 박스는 QEMU, KVM, Libvirt 가상화 기술을 사용한다.

## 역사 및 기능
그놈 박스는 2011년 12월 그놈 3.3(3.4의 개발 브랜치)에서 베타 소프트웨어로 처음 소개되었으며, 그놈 3.4에서 프리뷰 버전으로 출시되었다. 주요 기능은 libvirt, libvirt-glib, libosinfo 기술을 활용한 가상 머신 관리자, 원격 데스크톱 클라이언트(VNC 이용), 원격 파일 시스템 브라우저였다. 이를 통해 로컬에서 생성된 가상 머신 외에도 다른 컴퓨터의 원격 시스템과 가상 머신을 볼 수 있게 되었다. 박스는 ISO 이미지와 같은 표준 디스크 이미지 파일로부터 사용자의 입력을 최소화하면서 로컬 가상 머신을 쉽게 생성할 수 있는 능력을 갖추고 있다. 버전 40부터 원격 연결 기능은 별도의 응용 프로그램인 그놈 커넥션스(GNOME Connections)로 옮겨졌다.

그놈 박스는 CPU가 특정 형태의 하드웨어 가상화(예를 들어 AMD-V 또는 인텔 VT-x)를 지원해야 한다.

## 개발자
박스는 원래 마르크앙드레 뤼로(Marc-André Lureau), 지샨 알리(Zeeshan Ali), 알렉산데르 라르손(Alexander Larsson), 크리스토프 페르고(Christophe Fergeau)가 개발했으며 현재는 펠리피 보르지스(Felipe Borges)에 의해 유지 관리 및 개발되고 있다.

## 같이 보기
* 버추얼박스
* 레드햇 가상 머신 관리자 (virt-manager)
* VM웨어 워크스테이션
* 그놈 응용 프로그램 목록

## 각주

## 외부 링크
* 그놈 위키의 박스 디자인

분류:자유 에뮬레이션 소프트웨어
분류:자유 가상화 소프트웨어
분류:C로 작성된 자유 소프트웨어
탱고 데스크톱 프로젝트

섬네일|탱고 데스크톱 프로젝트의 색상 팔레트

**탱고 데스크톱 프로젝트**(Tango Desktop Project)는 일련의 디자인 가이드를 만들고 데스크톱 환경의 애플리케이션에 일관된 사용자 경험을 제공하기 위한 오픈 소스 구상이었다. 이 프로젝트는 탱고 아이콘 라이브러리(Tango Icon Library)로 알려진 일련의 아이콘들을 만들었으며, 이는 "개념 증명"으로 설명되었다. 탱고 데스크톱 프로젝트는 freedesktop.org의 프로젝트였으며, 표준 아이콘 테마 규격(Standard Icon Theming Specification)과 같은 다른 freedesktop.org 가이드라인과 밀접하게 연관되어 있었다.

## 목표
프로젝트의 목표는 소프트웨어 개발자들이 외관 측면에서 자신의 소프트웨어를 데스크톱 컴퓨터와 쉽게 통합할 수 있도록 하는 것이었다. 서로 다른 데스크톱 환경(KDE, 그놈, 또는 Xfce 등)과 커스텀 배포판으로 인해 발생하는 시각적 불일치는 제3자가 리눅스를 대상으로 개발하는 것을 어렵게 만든다. 이상적으로, 탱고 가이드라인을 따르는 모든 프로젝트는 해당 가이드라인을 따르는 다른 아이콘 및 애플리케이션과 잘 어울리는 룩 앤드 필을 갖게 된다.

이 스타일은 자신을 차별화하기 위해 시각적으로 독특해지는 것을 목표로 하지 않았다. 대신, 프로젝트의 부수적인 목표는 당시 일반적인 운영 체제에서 애플리케이션이 적절하게 보이도록 하는 표준 스타일을 만드는 것이었다. 이를 통해 독립 소프트웨어 개발 판매 회사들이 자신들의 애플리케이션이 윈도우 XP, Mac OS X, KDE, 그놈 또는 Xfce에서 어색해 보이지 않는다는 것을 알 수 있게 하려 했다.

시각적 가이드라인 외에도, 이 프로젝트는 아이콘에 대한 공통적인 은유(metaphor) 세트를 제공하는 것을 목표로 했다. 탱고는 freedesktop.org의 표준 아이콘 테마 규격을 따랐으며, 가장 일반적인 아이콘의 이름과 사용되는 은유를 정의하는 freedesktop.org의 표준 아이콘 명명 규격(Standard Icon Naming Specification)을 적극적으로 개발했다.

김프, 스크라이버스, 그놈과 같은 많은 자유 소프트웨어 프로젝트들이 그들의 아이콘에 탱고 스타일 가이드라인을 따르기 시작했다. 또한 ReactOS는 탱고 아이콘을 사용하며, 모질라 파이어폭스 3는 사용자가 설치한 아이콘 세트를 찾을 수 없거나 해당 아이콘 세트에 포함되지 않은 아이콘의 경우에 탱고 아이콘을 사용한다.

독점 소스 비공개 애플리케이션도 탱고 데스크톱 프로젝트 아이콘을 사용할 수 있다. 탱고 쇼룸(Tango Showroom)에서 강조된 예시로는 VM웨어 워크스테이션 6와 Medsphere OpenVista CIS가 있다.

## 역사
탱고 아이콘은 원래 카피레프트 크리에이티브 커먼즈 라이선스(저작자표시-동일조건변경허락)로 배포되었으나, 재사용을 더 쉽게 만들기 위해 2009년에 퍼블릭 도메인으로 배포되었다.

## 팔레트
다음은 탱고 데스크톱 프로젝트에서 사용되는 십육진법 색상 팔레트이며, 색상 그룹과 밝기에 따라 구성되어 있다:





## 같이 보기
* Adwaita (디자인 언어) – 그놈의 디자인 언어
* Bluecurve – 이전 페도라의 기본 GPL 아이콘 세트, Echo로 대체됨
*  – 에베랄두 코엘류의 LGPL 아이콘 세트
* 아이콘
* Nuvola – 다비데 비뇨니의 LGPL 아이콘 세트
* 옥시즌 프로젝트 – KDE용 LGPL 아이콘 세트
* 팔레트 (컴퓨팅)
* 테마 (컴퓨팅)
* ReactOS – 탱고 아이콘 라이브러리 사용

## 각주

## 외부 링크

* 
* 탱고 아이콘 라이브러리 버전 0.8.90&nbsp;— tar.gz 아카이브 형식
* "Tango project aims to clean up the desktop" - Linux.com
* 표준 아이콘 테마 규격
* 아이콘 명명 규격
* Tango Patcher 2600 8.06

분류:그놈
분류:자유 소프트웨어 프로젝트
분류:Freedesktop.org
분류:커뮤니케이션 디자인
분류:2009년 소프트웨어
분류:그래픽스
분류:아이콘
텔레파시 (소프트웨어)

**텔레파시**(Telepathy)는 인스턴트 메신저, 음성 인터넷 프로토콜 또는 화상 회의와 같은 대인 통신용 소프트웨어를 만드는 데 사용할 수 있는 소프트웨어 프레임워크다. 텔레파시는 D-Bus 프로세스 간 통신 메커니즘을 통해 구성 요소를 사용하여 통신 애플리케이션을 생성할 수 있게 해준다. 이를 통해 애플리케이션과 기본 네트워크 프로토콜 사이에 논리적 경계를 정의함으로써 통신 애플리케이션의 개발을 단순화하고 자유 소프트웨어 및 오픈 소스 커뮤니티 내에서 코드 재사용을 촉진하는 것을 목표로 한다.

## 구현
텔레파시 인터페이스를 내보내는 다양한 프로토콜의 자유 소프트웨어 구현체가 존재한다:

* **Gabble**: 징글 지원을 포함한 XMPP용
* **Butterfly**: 윈도우 라이브 메신저용
* **Idle**: IRC용
* **Salut**: 링크 로컬 MPP 프로토콜용
* **Haze**: 피진 메시징 클라이언트에서 사용하는 라이브러리인 libpurple이 지원하는 프로토콜에 접근하기 위한 용도. 이는 2007년 구글 서머 오브 코드 프로젝트로 수행되었다.
* **Spirit**: 노키아 N900 및 노키아 N9의 스카이프 프로토콜용
* **Rakia**: 노키아의 오픈 소스 Sofia-SIP 라이브러리를 사용하는 세션 개시 프로토콜(SIP)용
* **Morse**: 텔레그램용

미션 컨트롤(Mission Control)은 엔드 유저 애플리케이션이 연결 관리자와 같은 저수준 텔레파시 구성 요소의 일부 세부 사항을 추상화할 수 있는 방법을 제공하는 구성 요소의 이름이다.

튜브(Tubes)는 임의의 데이터 전송 및 원격 IPC를 지원하기 위한 텔레파시의 메커니즘이다.

텔레파시는 노키아 770, N800, N810, N900, N9 및 욜라 기기들의 인스턴트 메시징 및 음성/영상 통화 소프트웨어의 기반을 형성한다.

## 작동 원리
프로토콜 구현체는 연결 관리자라고 불리는 D-Bus 서비스를 제공한다. 텔레파시 클라이언트는 이를 사용하여 서비스에 대한 연결을 생성한다. 연결이 설정되면, 연결에 요청된 채널이라는 객체를 사용하여 추가 통신이 이루어진다. 채널은 텍스트 메시지를 주고받거나, 연락처 목록을 나타내거나, VoIP 통화를 설정하는 데 사용될 수 있다.

## 애플리케이션
* 엠퍼시
* KDE 텔레파시
* 슈거

## 같이 보기
* Farstream (이전 명칭 Farsight)

## 각주

## 외부 링크
* 프로젝트 웹사이트
* "IM/VOIP Communications Framework" 수석 개발자 로버트 맥퀸(Robert McQueen)의 텔레파시 관련 강연 비디오 다운로드 (77MB ogg). 스트리밍 플래시 비디오.
* KDE-Telepathy 현재 0.9.0
* 텔레파시 개발자 매뉴얼

분류:Freedesktop.org
분류:자유 네트워크 소프트웨어
Librsvg

**librsvg** 또는 **LibRsvg**는 그놈 프로젝트의 일부로 작성된 자유 소프트웨어 SVG 렌더링 라이브러리이며, 경량화와 이식성을 목표로 한다. 리눅스 명령줄 프로그램인 **rsvg-convert**는 이 라이브러리를 사용하여 SVG 파일을 래스터 이미지로 변환한다.

## 백엔드
librsvg는 파일 읽기부터 화면 렌더링까지의 작업을 수행하기 위해 두 개의 다른 라이브러리를 사용한다.
* libxml은 SVG 파일의 XML 표현을 라이브러리가 빠르게 접근할 수 있는 형태로 구문 분석하는 데 사용된다.
* 카이로는 libxml에서 얻은 정보를 랜덤 액세스 메모리의 블록으로 렌더링하는 데 사용된다.

v2.41.0 이후로 많은 부분이 러스트로 재작성되었다.

## 도입
librsvg는 그놈 데스크톱 환경을 위해 개발되었으며 이에 따라 그놈 파일과 그놈 루페에서 사용되지만, 다른 소프트웨어 애플리케이션에서도 사용될 수 있도록 의도되었다. 주목할 만한 사례로, 위키미디어 재단이 호스팅하는 위키들은 SVG 이미지를 렌더링하기 위해 librsvg를 사용한다. 미디어위키에 따르면, 과거에 이 웹 애플리케이션들을 위해 librsvg가 선택된 이유는 "빠르지만 아주 정확하지는 않기" 때문이었다. 2025년 3월 기준, 위키백과와 위키미디어 공용은 SVG를 PNG로 렌더링하기 위해 librsvg 2.54 버전을 사용하고 있다.

2005년에 카이로 벡터 렌더링 엔진으로 전환하면서, librsvg는 더 정확해지고 시각적으로 더 좋아졌다. 2012년부터 독립 개발자가 Win32 콘솔 포트인 를 배포했으며, 2017년 12월 기준 버전은 2.40.20이다. 의 매뉴얼 페이지도 온라인에서 확인할 수 있다.

### 버전 역사

## 각주

## 외부 링크
* 
* 다운로드 페이지
* Librsvg 참조 매뉴얼
* 

분류:C 라이브러리
분류:그래픽 라이브러리
분류:SVG
분류:C로 작성된 자유 소프트웨어
OpenAPI 사양

**OpenAPI 사양**(OpenAPI Specification, 이전 명칭 **스웨거 사양**)은 웹 API를 기술, 생성, 소비 및 시각화하기 위한 기계 판독 가능 인터페이스 정의 언어에 대한 표준 사양이다. 원래 스웨거 프레임워크를 지원하기 위해 개발되었으나, 2015년에 리눅스 재단의 오픈 소스 협력 프로젝트인 OpenAPI 이니셔티브(OpenAPI Initiative)가 관리하는 별도의 프로젝트가 되었다.

OpenAPI 설명(OAD)은 도구가 코드, 문서, 테스트 케이스 등을 생성하는 데 사용할 수 있는 API의 공식적인 설명을 나타낸다.

## 역사
[섬네일|[리눅스 재단 산하에서 OpenAPI 사양을 개발하는 조직인 OpenAPI 이니셔티브의 로고]]
스웨거 개발은 2010년 초 온라인 사전 업체인 워드닉(Wordnik)에서 근무하던 토니 탐(Tony Tam)에 의해 시작되었다.

2015년 3월, 스마트베어 소프트웨어(SmartBear Software)는 워드닉의 모회사인 리버브 테크놀로지스(Reverb Technologies)로부터 오픈 소스 스웨거 API 사양을 인수했다.

2015년 11월, 스마트베어는 리눅스 재단의 후원 하에 OpenAPI 이니셔티브라는 새로운 조직에 스웨거 사양을 기부한다고 발표했다. 다른 창립 멤버 기업으로는 3스케일(3scale), 아피지(Apigee), 캐피털 원, 구글, IBM, 인튜이트, 마이크로소프트, 페이팔, 레스트릿(Restlet) 등이 포함되었다.

2016년 1월 1일, 스웨거 사양은 OpenAPI 사양(OAS)으로 명칭이 변경되었으며 새로운 깃허브 소프트웨어 저장소로 이전되었다.

2017년 7월, OpenAPI 이니셔티브는 사양의 3.0.0 버전을 출시했다.

2021년 2월, OpenAPI 이니셔티브는 3.1.0 버전을 출시했다. OpenAPI 사양 3.1.0의 주요 변경 사항으로는 JSON 스키마 어휘 정렬, 대역 외에서 등록 및 관리되는 웹훅을 기술하기 위한 새로운 최상위 요소, 표준 SPDX 식별자를 사용한 API 라이선스 식별 지원, 스키마 참조 사용과 함께 설명 허용, 컴포넌트의 재사용 가능한 라이브러리 생성을 단순화하기 위해 PathItems 객체를 선택 사항으로 변경한 것 등이 있다.

### 형식의 통합

뮤직소프트(MuleSoft)의 RESTful API Modeling Language(RAML)와 에이피어리(Apiary)의 API 블루프린트(API Blueprint)라는 두 가지 다소 유사한 기술이 당시 스웨거 사양이라 불리던 것과 비슷한 시기에 개발되었다.

두 형식의 제작자들은 나중에 OpenAPI 이니셔티브에 합류했다. 에이피어리는 2016년에, 뮤직소프트는 2017년에 합류했다. 두 곳 모두 OAS에 대한 지원을 추가했다.

### 출시일

## 사용법
OAS는 다양한 애플리케이션, 라이브러리 및 도구에서 사용할 수 있는 OpenAPI 설명(OAD)의 형식을 규정한다.

애플리케이션은 OAD를 사용하여 메서드, 매개변수 및 데이터 모델의 문서를 자동으로 생성할 수 있다. 이는 문서, 클라이언트 라이브러리 및 소스 코드를 동기화된 상태로 유지하는 데 도움이 된다.

OAD를 사용하여 서버용 소스 코드 스텁을 생성할 때, 이 과정을 스캐폴딩이라고 한다.

### 소프트웨어 공학 관행과의 관계
프로그램을 먼저 코딩한 후 그 동작을 나중에 계약으로 기술하는 것과 반대로, API 계약에 먼저 합의한 후 비즈니스 로직을 프로그래밍하는 패러다임을 계약 우선(contract-first) 개발이라고 한다. 코드가 작성되기 전에 인터페이스가 결정되므로, 다운스트림 개발자는 서버 동작을 모방하여 즉시 테스트를 시작할 수 있다. 이러한 의미에서 계약 우선 개발은 쉬프트 레프트(shift-left) 테스트의 관행이기도 하다.

## 특징
OpenAPI 사양은 언어에 구애받지 않는다. OpenAPI의 선언적 리소스 사양을 사용하면, 클라이언트는 서버 구현에 대한 지식이나 서버 코드에 대한 접근 없이도 서비스를 이해하고 소비할 수 있다.

## OpenAPI와 작동하는 도구
OpenAPI 이니셔티브는 구현체 목록을 유지 관리한다.

## 연례 컨퍼런스
OpenAPI 이니셔티브는 매년 API 사양 컨퍼런스(API Specifications Conference, ASC)를 후원한다. 이 행사는 수년 동안 운영된 API 전략 및 관행 컨퍼런스(API Strategy and Practice Conference, APIStrat)에서 유래되었으며 2016년에 OpenAPI 이니셔티브의 일부가 되었다.

## 같이 보기
* 표현 상태 전송
* GRPC
* 데이터 모델링

## 각주

## 참고 자료

* 
* 

## 외부 링크
* OpenAPI 이니셔티브 (OAI) 메인 웹사이트
** OAI 사양 웹사이트
** OAI OpenAPI 학습 웹사이트
** OAI 도구 웹사이트
* 깃허브의 OpenAPI 사양
* OpenAPI 설명 디렉터리

분류:마크업 언어
분류:소프트웨어 구조
분류:API
분류:JSON
데이터 매퍼 패턴

소프트웨어 공학에서 **데이터 매퍼 패턴**(data mapper pattern)은 아키텍처 패턴의 하나다. 마틴 파울러가 2003년에 펴낸 저서 《기업 애플리케이션 아키텍처 패턴》(Patterns of Enterprise Application Architecture)에서 이 이름을 명명했다. 이 패턴을 따르는 객체의 인터페이스는 데이터 저장소 내의 도메인 엔티티 유형을 나타내는 객체들에 대해 작동하는 생성(Create), 읽기(Read), 갱신(Update), 삭제(Delete)와 같은 함수를 포함한다.

데이터 매퍼는 영구 데이터 저장소(흔히 관계형 데이터베이스)와 인메모리 데이터 표현(도메인 계층) 사이에서 데이터의 양방향 전송을 수행하는 데이터 접근 계층이다. 이 패턴의 목적은 인메모리 표현과 영구 데이터 저장소가 서로 독립적이면서 데이터 매퍼 자체와도 독립성을 유지하도록 하는 것이다. 이는 영구 데이터 저장소와 깔끔하게 매핑되지 않는 도메인 계층의 데이터에 대해 엄격한 비즈니스 프로세스를 모델링하고 강제해야 할 때 유용하다. 이 계층은 데이터 전송을 수행하는 하나 이상의 매퍼(또는 데이터 접근 객체)로 구성된다. 매퍼 구현은 그 범위에 따라 다양하다. 범용 매퍼는 다양한 도메인 엔티티 유형을 처리하며, 전용 매퍼는 하나 또는 소수의 엔티티 유형을 처리한다.

## 구현
이 개념의 구현체는 다양한 프로그래밍 환경을 위한 여러 소프트웨어 프레임워크에서 찾아볼 수 있다.

### Java/.NET
* 마이바티스(MyBatis) 영속성 프레임워크
* 하이버네이트(NHibernate) 영속성 프레임워크

### Node.js / TypeScript
* Bookshelf.js 라이브러리
* TypeORM 라이브러리
* Massive.js 라이브러리
* Prisma
* Objection.js 라이브러리
* MikroORM 라이브러리
* LDkit - RDF 데이터 소스를 위한 객체 그래프 매퍼(OGM)

### PHP
* Atlas ORM (데이터 매퍼, 테이블 데이터 게이트웨이, 쿼리 빌더 및 PDO 래퍼)
* Doctrine2 객체 관계 매핑(ORM) 및 데이터베이스 추상화 계층
* Cycle ORM (PHP 데이터 매퍼 ORM 및 데이터 모델링 엔진)
* CakePHP ORM (PHP 데이터 매퍼 ORM, 쿼리 빌더 및 PDO 래퍼)

### Perl
* DBIx

### Python
* SQLAlchemy 라이브러리
* mincePy 라이브러리

### Ruby
* DataMapper 라이브러리 (실제로 이 라이브러리는 액티브 레코드 디자인 패턴을 구현했으며, 그 후속작인 DataMapper 2(현재 ROM)는 이름에 걸맞은 디자인 패턴을 실제로 구현하는 것을 목표로 함)

### Elixir
* Ecto 영속성 프레임워크

## 같이 보기
* 
* 

## 각주

분류:소프트웨어 디자인 패턴
분류:아키텍처 패턴
칸타렐 유전

**칸타렐 유전**(Cantarell Field) 또는 **칸타렐 단지**(Cantarell Complex)는 멕시코에 위치한 노후화된 초거대 해상 유전이다. 1972년 어부인 루데신도 칸타렐 히메네스가 기름띠를 발견한 후, 1976년에 유전이 발견되었다. 2000년부터 질소 주입 공법이 도입되었으며, 2004년에 하루 210만 배럴(330,000 m3/d)의 생산량으로 정점에 도달했다. 현재까지의 누적 생산량 측면에서 멕시코 최대이자 세계에서 가장 큰 유전 중 하나였다. 그러나 2004년 이후 생산량이 감소하기 시작하여 2022년에는 하루 158,300 배럴(25,200 m3/d)로 떨어졌다. 2009년에는 쿠-말로브-자프 유전이 멕시코 최대 유전 자리를 대체하게 되었다.

## 위치
칸타렐은 캄페체만 해안에서  떨어진 곳에 위치해 있다. 이 단지는 아칼(Akal, 가장 규모가 큼), 노호치(Nohoch), 착(Chac), 쿠츠(Kutz)의 네 가지 주요 유전으로 구성된다. 저류층은 백악기 후기의 탄산염 각력암으로 형성되었으며, 이는 칙술루브 충돌구를 형성한 소행성 충돌 당시의 파편들이다. 최근 발견된 시힐(Sihil) 유전(1억 5천만~150억 배럴 규모)은 다른 저류층 아래의 쥐라기 지층에 경질유를 포함하고 있으며, 일반적으로 별개의 유전으로 간주되나 개발 시 기존 인프라를 활용할 수 있다. 칸타렐의 석유 생산은 2004년에 정점에 도달한 이후 계속 감소하고 있으며, 향후 더 큰 감소가 예상된다.

## 지질
칙술루브 충돌체는 칙술루브 충돌구와 그에 따른 탄산염 파편 각력암을 생성했으며, 이것이 비야에르모사 주변과 칸타렐 단지가 위치한 캄페체만 일대 유전의 석유 저류층이 되었다.
약 1500m 깊이 저류층의 공극률은 8%~12%이며, 입자 크기에 따라 유닛 1(조립질)과 유닛 2(세립질)로 나뉘고, 그 위를 유닛 3이라 불리는 셰일질 분출물 층이 덮어 덮개암 역할을 하고 있다.

충돌 이후 탄산염 대지가 붕괴되면서 조립질 각력암이 퇴적되었고, 그 뒤를 이어 발생한 쓰나미에 의해 세립질 각력암이 혼합되어 그 위를 덮었다. 마이오세 초부터 플라이오세 사이에 습곡 작용이 일어났으며, 압축력으로 인해 백악기 및 쥐라기 후기 블록들이 밀려 올라가면서 구조 트랩이 형성되었고, 마이오세에 탄화수소가 이곳으로 이동했다. 칸타렐 단지에는 아칼, 노호치, 착, 쿠츠의 네 개 블록이 있으며, 아칼 블록 아래에는 1998년에 석유가 발견된 다섯 번째 블록인 시힐이 존재한다.

## 생산 이력

1981년까지 칸타렐 유전는 하루 116만 배럴(180,000 m3/d)를 생산했다. 그러나 1995년 생산량은 하루 1백만 배럴(160,000 m3/d)로 떨어졌다. 아타스타 캄페체에 설치된 세계 최대 규모의 질소 공장을 포함한 질소 주입 프로젝트가 2000년에 가동을 시작하면서 생산량은 2002년에 하루 190만 배럴(300,000 m3/d)에서 2003년에는 210만 배럴(330,000 m3/d)로 증가했다. 이는 당시 칸타렐을 사우디아라비아의 가와르 유전에 이어 세계에서 두 번째로 생산량이 많은 유전으로 만들었다. 하지만 칸타렐은 가와르보다 매장량이 훨씬 적었기에 2000년대 후반부터 생산량이 급격히 감소하기 시작했다. 불행히도 주입된 질소가 가스층으로 유입되면서 가스의 열량과 경제적 가치가 낮아졌으며, 연료로 사용하기 위해서는 질소 제거 공정이 필요한 상황이다.

페멕스의 탐사 및 생산 부문 책임자인 루이스 라미레스 코르소는 2004년 8월 12일, 칸타렐의 실제 석유 생산량이 2006년부터 매년 14%씩 급격히 감소할 것이라고 발표했다. 2006년 3월 보고에 따르면 칸타렐은 이미 정점에 도달했으며 2005년에 이미 2년 연속 생산량 감소를 보였다. 페멕스의 총책임자인 헤수스 레예스 헤롤레스에 따르면 2006년 해당 유전의 생산량은 13.1% 감소했다.

2008년 7월, 일일 생산량은 전년 동기의 152만 6천 배럴(243×103 m3/d)에서 973,668 배럴(155,000 m3/d)로 36% 급락했다. 분석가들은 이러한 급격한 감소가 유전의 수명을 희생하면서 단기 생산량을 늘리려 했던 생산 증진 기술의 결과라고 이론화했다. 2009년 1월까지 칸타렐의 생산량은 77만 2천까지 떨어졌는데, 이는 1년 만에 38%가 감소한 것이다. 이로 인해 멕시코 전체 석유 생산량도 9.2% 감소하며 5년 연속 하락세를 이어갔다.

2008년 페멕스는 칸타렐의 감소세가 2012년까지 계속되다가 하루 약 500,000 배럴(80,000 m3/d) 수준에서 안정화될 것으로 예상했다. 그러나 2009년 9월에 이미 이 수치에 도달했으며, 이는 석유 산업 역사상 가장 극적인 급감 사례 중 하나로 기록되었다. 이후 생산량이 하루 40만 배럴(60,000 m3/d)에서 안정될 것으로 보였으나, 2012년 4월에는 하루 40만 8천 배럴(60,000 m3/d)까지 감소했다. 이러한 생산 차질은 멕시코 정부의 연간 예산과 국가 신용 등급에 부정적인 영향을 미쳤다. 생산량은 계속 줄어들어 2014년 6월에는 하루 34만 배럴을 기록했다. 페멕스는 감소를 저지하고 향후 10년 동안 생산량을 하루 32만 5천 배럴 수준으로 유지하기 위해 2017년까지 60억 달러를 투자할 계획을 세웠으나, 감소세는 멈추지 않아 2019년에는 하루 159,300배럴까지 떨어졌다.

캄페체만에서의 중질유 생산을 유지하기 위해 페멕스는 칸타렐의 기존 시설과 연결 가능한 인접 지역의 쿠-말로브-자프 단지 개발에 역량을 집중하고 있다. 쿠-말로브-자프 단지는 2010년대 말까지 하루 80만 배럴(130,000 m3/d)를 생산할 것으로 예상되었다. 2009년, 쿠-말로브-자프는 칸타렐을 대신해 멕시코에서 가장 생산적인 유전이 되었다.

## 같이 보기
* 유전 목록
* 멕시코의 석유 산업

## 각주

## 외부 링크
* Peak Oil is Now Official - 트레이 쇼네시, 2006년 3월 18일.
* Mexico Oil Production going down January 2007 
* Cantarell 주요 데이터
* Rigzone의 생산량 감소 관련 기사
* Cantarell is Dying (기사)

분류:페멕스
분류:석유
분류:유전
분류:멕시코의 에너지
서비스 로케이터 패턴

섬네일|서비스 로케이터 패턴의 UML 클래스 다이어그램.
**서비스 로케이터 패턴**(service locator pattern)은 소프트웨어 개발에서 강한 추상화 계층을 통해 서비스를 얻는 것과 관련된 프로세스를 캡슐화하는 데 사용되는 디자인 패턴이다. 이 패턴은 "서비스 로케이터"라고 불리는 중앙 레지스트리를 사용하며, 요청이 들어오면 특정 작업을 수행하는 데 필요한 정보를 반환한다. 이 패턴의 지지자들은 모든 의존성이 전체 애플리케이션 설계의 시작 부분에 깔끔하게 나열되는 컴포넌트 기반 애플리케이션에서 접근 방식이 단순해지며, 결과적으로 전통적인 의존성 주입이 객체를 연결하는 더 복잡한 방법이 될 수 있다고 말한다. 반면 비판론자들은 이 패턴이 의존성을 모호하게 만들고 소프트웨어 테스트를 어렵게 만드는 안티패턴이라고 주장한다.

## 장점
* "서비스 로케이터"는 간단한 실행 시간 링커 역할을 할 수 있다. 이를 통해 애플리케이션을 다시 컴파일하지 않고도 실행 시간에 코드를 추가할 수 있으며, 어떤 경우에는 애플리케이션을 재시작하지 않아도 된다.
* 애플리케이션은 서비스 로케이터에서 항목을 선택적으로 추가하거나 제거함으로써 실행 시간에 스스로를 최적화할 수 있다. 예를 들어, 애플리케이션이 기본 라이브러리보다 JPG 이미지를 읽는 데 더 나은 라이브러리가 있음을 감지하고 그에 따라 레지스트리를 변경할 수 있다.
* 라이브러리나 애플리케이션의 큰 부분을 완전히 분리할 수 있다. 이들 사이의 유일한 연결 고리는 레지스트리가 된다.
* 애플리케이션은 특정 기능이나 테스트를 목적으로 하는 구조화된 서비스 로케이터를 여러 개 사용할 수 있다. 서비스 로케이터는 프로세스당 하나의 단일 정적 클래스를 강제하지 않는다.
* 잘 구조화된 컴포넌트/서비스 설계를 갖춘 애플리케이션의 경우 의존성 주입보다 서비스 로케이터를 사용하는 솔루션이 더 단순할 수 있다. 이러한 경우 단점은 오히려 장점으로 간주될 수 있다(예: 모든 클래스에 다양한 의존성을 제공하고 의존성 구성을 유지 관리할 필요가 없음).
* 서비스 위치 확인 프로세스는 특정 비즈니스 사례를 나타낼 수 있는 호출 범위/컨텍스트에 민감하게 만들 수 있다. 일반적으로 생성자 매개변수 전달을 통해 객체에 의존성을 공급하는 고정된 DI에 의존하는 대신, 필요에 따라 비즈니스 컨텍스트 내에서 서비스 위치 호출을 수행할 수 있다. 예를 들어, 서비스 로케이터 호출을 통해 얻은 "IShippingStrategy" 인스턴스를 호출하면서 무엇이 어디서 어디로 배송되는지를 명시하는 "ShippingContext"를 서비스 로케이터에 매개변수로 전달하여 서비스 로케이터가 최상의 사례(예: 패턴 매치 점수 사용)를 일치시키도록 할 수 있다. 이는 실행 시간에 동적으로 위치한 최적의 매칭 전략의 점수화를 통해 복잡한 의사결정이 이루어질 수 있는 복잡한 비즈니스 애플리케이션 아키텍처(예: 의료 스코어링 시스템, 라우팅)를 크게 단순화한다.

## 단점
* 레지스트리는 클래스의 의존성을 숨기므로, 의존성이 누락되었을 때 (생성자 주입을 사용할 때와 달리) 컴파일 타임 에러 대신 런타임 에러를 유발한다.
* 모든 테스트가 테스트 대상 클래스의 가짜 의존성을 설정하기 위해 동일한 전역 서비스 로케이터 클래스와 상호작용해야 하므로, 레지스트리는 코드를 테스트하기 어렵게 만든다.

## 같이 보기
* 의존성 주입
* 의존관계 역전 원칙
* JNDI

## 각주


## 외부 링크
* 샘플 코드

분류:소프트웨어 디자인 패턴
분류:아키텍처 패턴
그놈 키링

**그놈 키링**(GNOME Keyring)은 소량의 관련 메타데이터와 함께 사용자 이름, 비밀번호, 키와 같은 보안 자격 증명을 저장하도록 설계된 소프트웨어 응용 프로그램이다. 민감한 데이터는 암호화되어 사용자의 홈 디렉토리에 있는 키링 파일에 저장된다. 기본 키링은 암호화를 위해 로그인 비밀번호를 사용하므로 사용자는 다른 비밀번호를 기억할 필요가 없다.

2009년 기준으로 그놈 키링은 운영 체제 오픈솔라리스의 데스크톱 환경 일부였다.

그놈 키링은 데몬으로 구현되며 gnome-keyring-daemon이라는 프로세스 이름을 사용한다. 응용 프로그램은 더 이상 사용되지 않는 libgnome-keyring 라이브러리를 대체하는 libsecret 라이브러리를 사용하여 비밀번호를 저장하고 요청할 수 있다.

그놈 키링은 그놈 데스크톱의 일부이다. 2006년 기준으로 WEP 비밀번호를 저장하기 위해 네트워크매니저와 통합되었다. 그놈 웹과 이메일 클라이언트인 Geary는 비밀번호를 저장하는 데 그놈 키링을 사용한다.

그놈 키링이 존재하는 시스템에서 발라로 작성된 소프트웨어는 이를 사용하여 비밀번호를 저장하고 검색할 수 있다. 그놈 키링 매니저(gnome-keyring-manager)는 그놈 키링을 위한 최초의 사용자 인터페이스였다. 그놈 2.22부터는 더 이상 사용되지 않으며 Seahorse로 완전히 대체되었다.

## 같이 보기
* 비밀번호 관리자 목록
* KWallet
* 애플 키체인
* 네트워크매니저
* Seahorse (소프트웨어)

## 각주

## 외부 링크
* 

분류:그놈
분류:C로 작성된 자유 소프트웨어
분류:GPL 라이선스 소프트웨어
인터페이스 기반 프로그래밍

**인터페이스 기반 프로그래밍**(Interface-based programming) 또는 **인터페이스 기반 아키텍처**는 모듈 시스템이 없는 객체 지향 프로그래밍 언어에서 컴포넌트 수준의 모듈형 프로그래밍을 구현하기 위한 아키텍처 패턴이다. 이러한 언어의 예로 자바 9에서 도입된 컴포넌트 수준의 모듈 시스템인 자바 플랫폼 모듈 시스템(Java Platform Module System)이 없었던 자바 9 이전의 자바를 들 수 있다. 자바 8까지의 자바는 단순히 패키지 시스템만을 가지고 있었으나, 자바 소프트웨어 컴포넌트는 일반적으로 여러 개의 자바 패키지로 구성되며, 컴포넌트가 단일 자바 패키지로만 구성된 경우라도 인터페이스 프로그래밍은 단순히 자바 패키지를 사용하는 것보다 더 많은 장점을 제공할 수 있다.

인터페이스 기반 프로그래밍은 애플리케이션을 컴포넌트의 집합으로 정의하며, 컴포넌트 간의 애플리케이션 프로그래밍 인터페이스(API) 호출은 구체적인 클래스가 아닌 추상 인터페이스를 통해서만 이루어져야 한다. 클래스의 인스턴스는 일반적으로 팩토리 패턴과 같은 기술을 사용하여 다른 인터페이스를 통해 얻게 된다.

이 방식은 애플리케이션의 모듈성을 높여 유지 보수성을 향상시킨다고 주장된다. 그러나 주의가 필요하다 단순히 애플리케이션을 인터페이스로 통신하는 임의의 컴포넌트로 나누는 것만으로는 유지 보수성의 핵심 속성으로 여겨지는 낮은 결합도나 높은 응집도를 보장하지 않기 때문이다.

인터페이스 기반 아키텍처는 제3자 혹은 동일 조직 내의 서로 다른 팀이 기존 시스템을 위한 추가 컴포넌트나 플러그인을 개발할 때 사용될 수 있다. 이클립스 IDE의 코드베이스가 인터페이스 기반 프로그래밍의 대표적인 예이다. 이클립스 플러그인 공급업체는 모 애플리케이션 공급업체인 이클립스 재단이 지정한 인터페이스를 충족하는 컴포넌트만 개발하면 된다. 실제로 이클립스에서는 자바 개발 도구(JDT)와 같은 원래의 컴포넌트들조차 그 자체로 플러그인이다. 이는 휴대 전화 제조업체가 휴대폰 충전기 인터페이스(핀 배열, 예상 직류 전압 등)를 규정하고, 제조업체와 제3자 모두가 이 표준 인터페이스 사양을 준수하는 자체 휴대폰 충전기를 만드는 것과 비슷하다.

## 인터페이스 기반 프로그래밍에서의 소프트웨어 진화
서로 다른 팀이 협업할 수 있도록 인터페이스를 사용하는 것은, 인터페이스 기반 프로그래밍에서 인터페이스 변경이 어떻게 일어나는지에 대한 문제를 제기한다. 문제는 새로운 메서드를 추가하는 등 인터페이스가 변경되면, 해당 인터페이스를 구현하도록 작성된 기존 코드가 더 이상 컴파일되지 않는다는 점이다 또한 동적으로 로드되거나 링크되는 플러그인의 경우, 로드 또는 링크에 실패하거나 런타임에 충돌이 발생할 수 있다. 이 문제를 해결하기 위한 두 가지 기본 접근 방식이 있다:

# 기존 인터페이스에서 상속받을 수 있는 추가 기능을 가진 새로운 인터페이스를 개발한다.
# 유의적 버전 2.0과 같은 소프트웨어 버전 관리 정책을 인터페이스 구현자에게 전달하여, 플랫폼의 향후 "주요(major)" 버전에서 전방 불일치 또는 후방 불일치 변경을 허용한다.

두 가지 접근 방식 모두 자바 플랫폼에서 사용되어 왔다.

## 계약에 의한 설계
인터페이스 발행자는 일반적으로 소프트웨어의 새로운 "부정(minor)" 버전에서 인터페이스를 변경하지 않겠다고 약속하며, 구현자는 인터페이스를 구현함으로써 인터페이스의 필수적인 부분을 일탈 없이 구현했음을 암시한다. 따라서 인터페이스는 제공자와 소비자 사이의 "계약적 합의"로 볼 수 있다. 이 계약이 소프트웨어 사양으로서 보다 공식적으로 문서화된다면, 이는 계약에 의한 설계의 한 예가 된다. 그러나 계약에 의한 설계 그 자체가 모든 컴포넌트에 대해 인터페이스 사용을 의무화하는 것은 아니다.

## 같이 보기
* 마이크로서비스
* 행위자 모델
* CORBA: 여러 이유로 현재는 거의 사용되지 않는 오래된 객체 지향 소프트웨어용 컴포넌트 기반 시스템
* 자바 플랫폼 모듈 시스템: 자바 9와 함께 도입된 자바 프로그래밍 언어의 컴포넌트 수준 모듈 시스템

## 각주
* C# Interface Based Development, c-sharpcorner.com
* Interface Based Development – The Unified Modeling Language (UML), devmentor.org
* Architecting a large application with interface-based architecture, rhyous.com, 18 October 2011
* Understanding Interface-based Programming, Microsoft Developers Network, accessed 16 September 2016

분류:아키텍처 패턴
런타임 오류 탐지

**런타임 오류 탐지**(Runtime error detection)는 소프트웨어 응용 프로그램이 실행될 때 이를 분석하고, 해당 실행 중에 탐지된 결함을 보고하는 소프트웨어 검증 방법이다. 이는 유닛 테스트, 컴포넌트 테스트, 통합 시험, 시스템 검사(자동/스크립트 또는 수동), 또는 침투 테스트 중에 적용될 수 있다.

런타임 오류 탐지는 실행 시에만 나타나는 결함(예: 파일 덮어쓰기)을 식별하고, 응용 프로그램의 충돌, 느린 실행 또는 예측 불가능한 동작의 근본 원인을 찾아낼 수 있다. 런타임 오류 탐지에 의해 일반적으로 탐지되는 결함은 다음과 같다:
* 경쟁 상태
* 예외
* 자원 누수
* 메모리 누수
* 보안 공격 취약점 (예: SQL 삽입)
* 널 포인터
* 초기화되지 않은 메모리
* 버퍼 오버플로

런타임 오류 탐지 도구는 응용 프로그램의 실행된 제어 흐름 내에 있는 오류만 탐지할 수 있다.

## 같이 보기
* 개발 테스트
* 소프트웨어 테스트
* 메모리 디버거
* BoundsChecker
* 런타임 검증

## 각주

분류:소프트웨어 테스트