stanford-oval/wikipedia huggingface dataset:
등줄쥐

|  등줄쥐 |
| --- | --- |
 등줄쥐
생물 분류ℹ️
계:: 동물계
문:: 척삭동물문
강:: 포유강
목:: 쥐목
아목:: 쥐아목
과:: 쥐과
아과:: 쥐아과
족:: 붉은쥐족
속:: 붉은쥐속
종:: 등줄쥐 (A. agrarius)
학명
Apodemus agrarius
(Pallas, 1771)
등줄쥐의 분포
 
보전상태
  최소관심(LC): 절멸위협 조건 만족하지 않음  평가기관: IUCN 적색 목록 3.1  절멸위구 ⅠA류(CR):  평가기관: 일본 환경성(MOE)-JRDB[출처 필요]
등줄쥐(학명: Apodemus agrarius)는 쥐목 쥐과에 속하는 설치류이다. 검은 줄이 앞머리에서 등의 가운데를 따라 꼬리의 밑동까지 이어져 있다. 꼬리가 짧고, 귀와 뒷다리도 짧으며, 눈도 작다. 등은 적갈색이고, 배는 회백색이다.
잡목숲·숲의 가장자리·개천가·논·밭에서 산다. 습한 곳을 좋아하며, 갈대밭에도 서식한다. 낮에 활동하며, 주로 곡식이나 씨앗을 먹지만, 곤충이나 무척추동물을 잡아먹기도 한다. 겨울에는 짚가리 속이나 창고에서 생활한다. 복잡한 굴을 파고 그 속에 살며, 보금자리는 지하 40cm 깊이에 나뭇잎을 깔아 만든다. 2-11월까지 한 해에 3-4차례 번식을 하며, 한배에 4-9마리의 새끼를 낳는다. 유행성 출혈열의 매개자로서 사람에게 해를 끼치기도 한다. 한국을 비롯한 유라시아 대륙 전역에 분포한다.
같이 보기

한국의 포유동물
NX 비트

NX 비트(NX bit, Never eXecute bit, 실행 방지 비트)는 프로세서 명령어나 코드 또는 데이터 저장을 위한 메모리 영역을 따로 분리하는 CPU의 기술이다. 이 기능은 하버드 아키텍처 프로세서에서 보통 쓰인다. 그러나 NX 비트는 기본적인 폰 노이만 구조 프로세서에서 보안을 목적으로 많이 쓰인다.
NX 특성으로 지정된 모든 메모리 구역은 데이터 저장을 위해서만 사용되며, 프로세서 명령어가 그 곳에 상주하지 않음으로써 실행되지 않도록 만들어 준다. 실행 보호라는 일반 기술은 특정한 종류의 악성 소프트웨어를 컴퓨터에 들어오지 못하게 막는 데 사용된다. 악성 소프트웨어의 경우 자신의 코드를 다른 프로그램의 자료 기억 영역에 심어 놓은 다음 이 구역 안에서 자신의 코드를 실행하게 만들며, 이를 버퍼 오버플로 공격이라고 한다.
인텔은 eXecute Disable의 약자인 XD 비트로 광고하기로 결정하였다. 그러나 인텔의 XD 비트와 AMD의 NX 비트는 같은 기능을 수행하며 이름만 다른 것이다.
하드웨어 배경

80286 이후의 x86 프로세서들은 세그먼트 수준으로 추가된 비슷한 기능을 제공한다. 그러나 이러한 제어 구조는 너무 빈약하여 쓸모가 없다. 특히 플랫 메모리 모델(Flat memory model)을 사용하는 현대의 소프트웨어의 경우에는 그렇다. 완전한 세그먼트가 아닌, 각 페이지마다 실행을 제어할 수 있는 새로운 구조가 필요하게 되었다.
페이지 수준의 구조는 썬의 SPARC, 알파, IBM의 파워PC와 같은 다른 다양한 프로세서 아키텍처에서 여러 해 동안 사용되었다. 2001년에 인텔은 IA-64 아키텍처를 사용하는 자사의 아이테니엄 (Merced) 프로세서에 비슷한 기능을 추가하였지만, 당시 사람들이 애용하던 x86 프로세서 계열(펜티엄, 셀러론, 제온 등)에는 도입하지 않았다. x86 아키텍처의 경우, AMD는 애슬론 64와 옵테론과 같은 AMD64 계열 프로세서에 NX 비트를 도입하였다. NX 비트라는 용어는 다른 프로세서의 비슷한 기술을 서술할 때에도 흔히 쓰이게 되었다.
AMD가 이 기능을 AMD64 명령어 세트에 도입하기로 결정한 뒤, 인텔은 후반 프레스캇 코어의 x86 기반의 펜티엄 4 프로세서부터 이와 비슷한 기능을 도입하였다.
구체적으로 말해, NX 비트는 페이지 테이블 안에 있는 64비트 엔트리의 비트 숫자 63(최상위 비트)을 일컫는다. 이 비트가 0으로 설정된 경우, 코드는 그 페이지에서 실행될 수 있다. 1로 설정된 경우, 코드는 그 페이지에서 실행될 수 없으며 어떠한 것도 그 데이터에 상주할 수 없다. 또한 물리 주소 확장 (PAE) 페이지 테이블 포맷으로만 사용될 수 있다는 것도 잊어서는 안 된다. 왜냐하면 x86의 원래 32비트 페이지 테이블 포맷은 분명히 비트 63이 존재하지 않기 때문이다.
소프트웨어 구현

하드웨어로 이 기능을 구현하기 앞서, 여러 운영 체제는 소프트웨어를 통해 이 기능을 가상으로 구현하였다. 이를테면  W^X 또는 Exec Shield를 들 수 있다.
NX 비트의 이점을 이용하고 이를 가상으로 구현하는 기능을 포함하는 운영 체제는 스택과 히프 메모리 영역이 실행되지 못하게 막으며, 실행 가능한 메모리를 기록하지 못하게 막는다. 특히 새서 웜과 블래스터 웜과 같은 코드를 실행하고 거부하는 특정한 버퍼 오버플로의 이용을 막는 데 도움을 준다. 이러한 공격은 쓰기 가능, 실행 가능이 되기 위한 메모리 일부 (보통 스택)에 따라 달라진다. 쓰기나 실행이 불가한 경우, 공격은 실패로 끝난다.
운영 체제로의 도입

수많은 운영 체제는 NX 정책을 포함하고 있으며, 그 운영 체제들 가운데 일부는 NX 에뮬레이션을 사용한다. 일부 기술의 경우, 각 기술이 지원하는 주된 기능을 다음과 같이 요약하고 있다.
하드웨어 지원 프로세서: (CPU 아키텍처의 쉼표 구분 목록)
에뮬레이션: (아니오) 또는 (아키텍처 독립) 또는 (CPU 아키텍처의 쉼표 구분 목록)
기타 지원: (없음) 또는 (CPU 아키텍처의 쉼표 구분 목록)
표준 분배: (아니오) 또는 (예) 또는 (이 기술을 지원하는 버전이나 배포의 쉼표 구분 목록)
공개일: (처음 공개된 날)
아키텍처 독립 에뮬레이션을 공급하는 기술은 하드웨어적으로 지원하지 않는 모든 프로세서에서 사용할 수 있다. "기타 지원"는 NX 비트가 분명히 존재하지 않는 프로세서를 위한 것이다.
운영 체제로의 도입 > FreeBSD

FreeBSD는 2007년 4월 6일 이후로 NX를 지원하지 않는다.
운영 체제로의 도입 > OS X

인텔 기반 OS X은 애플로부터 NX 비트를 지원한다. (처음 공개한 인텔 기반의 10.4.4 뒤로).
운영 체제로의 도입 > 리눅스

리눅스 커널은 NX 비트를 지원하는 CPU(이를테면 현재 팔리는 64비트 AMD, 인텔, VIA, 트랜스메타 CPU)의 기본 하드웨어 NX를 지원하고 있다.
x86_64 CPU 위의 64비트 모드에서 이 기능에 대한 지원이 2004년에 앤디 클린에 의해 추가되었고, 같은 해에 인고 몰나는 64비트 CPU 위의 32 비트 모드에서 NX 비트에 대한 지원을 추가하였다. 이러한 기능들은 안정화된 리눅스 커널(2004년 8월에 공개한 2.6.8 이후)에서 사용할 수 있다.
32비트 x86 CPU와 64비트 x86 호환 CPU에서 실행되는 32비트 x86 커널 위의 NX 비트의 이용은 매우 중요하다. 왜냐하면 32비트 x86 커널은 보통 AMD64나 IA-64가 제공하는 NX 비트를 예측하지 못하기 때문이다. NX 사용 가능화 패치는 "NX 비트"를 사용할 수 있는 환경을 갖추었을 경우 이러한 커널이 NX 비트를 사용할 수 있게 도와 준다.
일부 데스크톱 리눅스 배포판, 이를테면 페도라 코어 6, 우분투 리눅스, 오픈수세는 32 비트 모드에서 NX 비트 접근에 요구되는 HIGHMEM64 옵션을 기본 커널에서 켜 놓지 않는다. 그 까닭은 NX 비트 사용에 필요한 PAE 모드를 켜 놓고 (PAE를 지원하지 않는) 펜티엄 프로 이전, 셀러론 M, 펜티엄 M 프로세서를 사용할 경우, 시동에 실패하기 때문이다. PAE를 지원하지 않는 다른 프로세서는 AMD K6 이전, 트랜스메타 크루소, VIA C3 이전, 그리고 Geode GX/LX가 있다. 페도라 코어 6은 PAE, NX를 지원하는 커널 PAE 패키지를 제공하지 않는다.
실행 방지 기능은 다른 비 x86 프로세서에도 존재한다.
같이 보기

데이터 실행 방지
뉴턴 (매사추세츠주)

뉴턴 사우스 고등학교
뉴턴(Newton)은 매사추세츠주에 위치한 도시이다. 인구는 85,146명이다.
인구

| 연도 | 인구 | ±% |
| --- | --- | --- |
| 1790 | 1,360 | —     |
| 1800 | 1,491 | +9.6% |
| 1810 | 1,709 | +14.6% |
| 1820 | 1,850 | +8.3% |
| 1830 | 2,376 | +28.4% |
| 1840 | 3,351 | +41.0% |
| 1850 | 5,258 | +56.9% |
| 1860 | 8,382 | +59.4% |
| 1870 | 12,825 | +53.0% |
| 1880 | 16,995 | +32.5% |
| 1890 | 24,379 | +43.4% |
| 1900 | 33,587 | +37.8% |
| 1910 | 39,806 | +18.5% |
| 1920 | 46,054 | +15.7% |
| 1930 | 65,276 | +41.7% |
| 1940 | 69,873 | +7.0% |
| 1950 | 81,994 | +17.3% |
| 1960 | 92,384 | +12.7% |
| 1970 | 91,263 | −1.2% |
| 1980 | 83,622 | −8.4% |
| 1990 | 82,585 | −1.2% |
| 2000 | 83,829 | +1.5% |
| 2010 | 85,146 | +1.6% |
| 2019 | 88,414 | +3.8% |
* = population estimate.   출처: United States Census records and Population Estimates Program data. 출처: U.S. Decennial Census
기후

| Newton, Massachusetts의 기후> 월 | Newton, Massachusetts의 기후> 1월 | Newton, Massachusetts의 기후> 2월 | Newton, Massachusetts의 기후> 3월 | Newton, Massachusetts의 기후> 4월 | Newton, Massachusetts의 기후> 5월 | Newton, Massachusetts의 기후> 6월 | Newton, Massachusetts의 기후> 7월 | Newton, Massachusetts의 기후> 8월 | Newton, Massachusetts의 기후> 9월 | Newton, Massachusetts의 기후> 10월 | Newton, Massachusetts의 기후> 11월 | Newton, Massachusetts의 기후> 12월 | Newton, Massachusetts의 기후> 연간 |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 역대 최고 기온 °F (°C) | 68 (20) | 68 (20) | 89 (32) | 94 (34) | 93 (34) | 99 (37) | 100 (38) | 101 (38) | 99 (37) | 88 (31) | 81 (27) | 74 (23) | 101 (38) |
| 일평균 최고 기온 °F (°C) | 34 (1) | 37 (3) | 44 (7) | 56 (13) | 66 (19) | 76 (24) | 82 (28) | 79 (26) | 72 (22) | 60 (16) | 50 (10) | 39 (4) | 58 (14) |
| 일평균 최저 기온 °F (°C) | 17 (−8) | 19 (−7) | 27 (−3) | 38 (3) | 48 (9) | 57 (14) | 63 (17) | 62 (17) | 55 (13) | 43 (6) | 34 (1) | 24 (−4) | 41 (5) |
| 역대 최저 기온 °F (°C) | −14 (−26) | −21 (−29) | −5 (−21) | 6 (−14) | 27 (−3) | 36 (2) | 44 (7) | 39 (4) | 28 (−2) | 20 (−7) | 5 (−15) | −19 (−28) | −21 (−29) |
| 평균 강수량 인치 (mm) | 4.35 (110) | 4.24 (108) | 5.58 (142) | 4.55 (116) | 4.11 (104) | 4.31 (109) | 4.02 (102) | 4.03 (102) | 4.06 (103) | 4.69 (119) | 4.76 (121) | 4.89 (124) | 53.59 (1,360) |
출처:
전직 친위대원 조직

전직 친위대원 조직(독일어: Organisation der Ehemaligen SS-Angehörigen; ODESSA 오르가니자치온 데어 에헤말리겐 에스에스 앙게회리겐; 오데에에스에스아; 오데사[*])는 제2차 세계 대전 종전 이후 나치 친위대원들이 중립국으로의 탈출 경로(소위 "쥐구멍 라인")를 마련하기 위해 조직한 나치 네트워크이다. SS 대원들은 ODESSA를 통해 독일과 오스트리아를 탈출, 남아메리카와 중동 등으로 도피하여 전쟁범죄 기소를 회피하려 시도했다.
다만 이 조직이 실존했는 것인지에 대해서는 논란의 여지가 있다. T.H. Tetens와 Joseph Wechsberg는 조직의 존재와 그 작전 상세를 확인했다고 주장한다. 하지만 가이 월터스는 어떠한 증거도 찾을 수 없었다고 주장한다. 2011년 Daniel Stahl에 따르면, 현재 역사학자들의 학계 총의는 ODESSA가 존재하지 않았다는 것이다. 그럼에도 ODESSA는 첩보소설이나 영화 등에서 자주 등장해 그 얼굴을 알리고 있다.
같이 보기

베어볼프
공변성과 반공변성 (컴퓨터 과학)

프로그래밍 언어의 공변성(영어: Covariance)과 반공변성(영어: Contravariance)은 프로그래밍 언어가 타입 생성자(영어: type constructor)에 있어 서브타입을 처리하는 방법을 나타내는 것으로, 더 복잡한 타입간의 서브타입 관계가 타입 사이의 서브타입 관계에 따라 정의되거나, 이를 배반해 정의됨을 가리킨다.
예를 들어, 목록과 함수에 대해 생각해 보자. 고양이는 동물의 서브타입이다. 그렇다면 고양이 목록은 동물 목록과 어떻게 연관되어야 할까? 또는 고양이를 인자로 받는 함수가 동물을 인자로 받는 함수와 어떻게 연관되어야 할까? 이는 변성(영어: Variance)으로 설명될 수 있다. OCaml 언어에서 고양이 목록은 동물 목록의 서브타입이다. 목록 타입 생성자가 공변하기 때문이다. 그러나 동물 -> 문자열 함수는 고양이 -> 문자열 함수의 서브타입이다. 함수 타입 생성자는 인자 타입에 있어 반공변하기 때문이다.
정의

프로그래밍 언어의 자료형 체계에서 I를 타입 매개변수 하나를 받는 타입 생성자라고 할 때,
공변(영어: Covariance)할 때, S가 T의 서브타입이라면( S<:T),  I{<}S{>}는  I{<}T{>}의 서브타입이다. ( I{<}S{>}<:I{<}T{>})
반공변(영어: Contravariance)할 때, S가 T의 서브타입이라면( S<:T),  I{<}T{>}는  I{<}S{>}의 서브타입이다. ( I{<}T{>}<:I{<}S{>})
이변(영어: Bivariance)할 때, 공변하면서도 반공변한다.
무공변(영어: Invariant)하다면 공변하지도 반공변하지도 않는다.
제네릭에서

‘공변성(Covariance)’과 ‘반공변성(Contravariance)’은 원래 지정된 것보다 더 많이 파생되거나(더 구체적인) 더 적게 파생된 형식(덜 구체적인)을 사용할 수 있는 능력을 지칭하는 용어입니다. 제네릭 형식 매개 변수는 더욱 유연하게 제네릭 형식을 할당하고 사용할 수 있도록 공변성과 반공변성을 지원합니다.
형식 시스템을 참조할 때 공변성(Covariance), 반공변성(Contravariance), 불변성의 정의는 다음과 같습니다. 이 예제에서는 Base 라는 기본 클래스와 Derived라는 파생 클래스가 있는 것으로 가정합니다.
Covariance  원래 지정된 것보다 더 많이 파생된 형식을 사용할 수 있습니다.  IEnumerable<Derived>의 인스턴스를 IEnumerable<Base> 형식의 변수에 할당할 수 있습니다.
Contravariance  원래 지정된 것보다 더 제네릭한(덜 파생적인) 형식을 사용할 수 있습니다.  Action<Base>의 인스턴스를 Action<Derived> 형식의 변수에 할당할 수 있습니다.
Invariance  원래 지정된 형식만 사용할 수 있음을 의미합니다. 고정 제네릭 형식 매개 변수는 공변(covariant) 및 반공변(contravariant)이 아닙니다.  List<Base>의 인스턴스를 List<Derived> 형식의 변수에 할당할 수 없고, 그 반대로도 할당할 수 없습니다.
다음 코드에 표시된 것처럼, 공변 형식 매개 변수를 사용하여 일반적인 다형성과 매우 비슷한 할당을 수행할 수 있습니다.
C#
IEnumerable<Derived> d = new List<Derived>(); IEnumerable<Base> b = d;
List<T> 클래스는 IEnumerable<T> 인터페이스를 구현하므로 List<Derived> (Visual Basic의 경우List(Of Derived) )는 IEnumerable<Derived>를 구현합니다. 나머지 작업은 공변 형식 매개 변수가 처리합니다.
그러나 반공변성은 직관적으로 이해하기가 어려울 수 있습니다. 다음 예제에서는 Action<Base>(Visual Basic의 경우 Action(Of Base)) 형식의 대리자를 만든 다음 이 대리자를 Action<Derived> 형식의 변수에 할당합니다.
C#
Action<Base> b = (target) => { Console.WriteLine(target.GetType().Name); };
Action<Derived> d = b;
d(new Derived());
이는 순서가 뒤바뀐 것처럼 보이지만 실제로는 형식이 안전한 코드로서 문제 없이 컴파일 및 실행됩니다. 람다 식이 할당된 대리자와 일치하므로 Base 형식의 매개 변수 하나를 사용하고 반환 값이 없는 메서드를 정의할 수 있습니다. 결과로 얻은 대리자를 Action<Derived> 형식의 변수에 할당할 수 있습니다. T 대리자의 형식 매개 변수 Action<T> 가 반공변성을 지니기 때문입니다. T 에서 매개 변수 형식을 지정하므로 이는 형식이 안전한 코드입니다. Action<Base> 형식의 대리자를 Action<Derived>형식의 대리자인 것처럼 호출하는 경우 해당 인수가 Derived형식이어야 합니다. 메서드의 매개 변수가 Base형식이므로 이 인수를 내부 메서드에 항상 안전하게 전달할 수 있습니다.
일반적으로 공변 형식 매개 변수는 대리자의 반환 형식으로 사용할 수 있으며, 반공변 형식 매개 변수는 매개 변수 형식으로 사용할 수 있습니다. 인터페이스의 경우 공변 형식 매개 변수는 인터페이스 메서드의 반환 형식으로 사용할 수 있으며, 반공변 형식 매개 변수는 인터페이스 메서드의 매개 변수 형식으로 사용할 수 있습니다.
공변성(Covariance) 및 반공변성(Contravariance)을 전체적으로 차이라고 합니다. 공변 또는 반공변 여부가 표시되지 않은 제네릭 형식 매개 변수를 고정(invariant)매개 변수라고 합니다. 다음은 공용 언어 런타임의 가변성에 대한 간략한 설명입니다.
Variant 형식 매개 변수가 제네릭 인터페이스와 제네릭 대리자 형식에만 사용됩니다.
제네릭 인터페이스 또는 제네릭 대리자 형식은 공변 및 반공변 형식 매개 변수를 둘 다 가질 수 있습니다.
가변성은 참조 형식에만 적용되므로 variant 형식 매개 변수에 대한 값 형식을 지정하면 이 형식 매개 변수는 결과로 생성되는 형식에 대해 invariant가 됩니다.
대리자 결합에는 가변성이 적용되지 않습니다. 즉, 두 대리자의 형식이 Action<Derived> 및 Action<Base> (Visual Basic의 경우Action(Of Derived) 및 Action(Of Base) )라고 할 때 결과의 형식이 안전하더라도 둘째 대리자를 첫째 대리자와 결합할 수 없습니다. 가변성을 통해 둘째 대리자를 Action<Derived>형식의 변수에 할당할 수 있지만, 대리자를 결합하기 위해서는 해당 형식이 정확하게 일치해야 합니다.
C# 9부터 공변 반환 형식이 지원됩니다. 재정의 메서드는 재정의하는 메서드의 더 파생된 반환 형식으로 선언할 수 있으며, 재정의 읽기 전용 속성은 더 파생된 형식을 선언할 수 있습니다.
공변 형식 매개 변수가 있는 제네릭 인터페이스

여러 제네릭 인터페이스에 공변 형식 매개 변수가 있습니다(예: IEnumerable<T>, IEnumerator<T>, IQueryable<T>, IGrouping<TKey,TElement>). 이러한 인터페이스의 모든 형식 매개 변수는 공변성이므로, 형식 매개 변수는 멤버의 반환 형식에만 사용됩니다.
다음 예제에서는 공변 형식 매개 변수를 사용하는 방법을 보여 줍니다. 이 예제에서는 두 가지 형식을 정의합니다. 그중 하나인 Base 에는 PrintBases (Visual Basic의 경우 IEnumerable<Base> )를 취하고 요소를 출력하는IEnumerable(Of Base) 라는 정적 메서드가 있습니다. Derived는 Base에서 상속됩니다. 이 예제에서는 빈 List<Derived>(Visual Basic의 경우 List(Of Derived))를 만든 다음 이 형식을 캐스팅하지 않은 채 PrintBases에 전달하고 IEnumerable<Base> 형식의 변수에 할당하는 방법을 보여 줍니다. List<T> 은 단일 공변 형식 매개 변수가 있는 IEnumerable<T>을 구현합니다. IEnumerable<Derived>의 인스턴스를 IEnumerable<Base> 대신 사용할 수 있는 것은 공변 형식 매개 변수 때문입니다.
C#
using System;
using System.Collections.Generic;

class Base
{
    public static void PrintBases(IEnumerable<Base> bases)
    {
        foreach(Base b in bases)
        {
            Console.WriteLine(b);
        }
    }
}

class Derived : Base
{
    public static void Main()
    {
        List<Derived> dlist = new List<Derived>();

        Derived.PrintBases(dlist);
        IEnumerable<Base> bIEnum = dlist;
    }
}
반공변 형식 매개 변수가 있는 제네릭 인터페이스

IComparer<T>, IComparable<T>, IEqualityComparer<T> 같은 여러 제네릭 인터페이스에서 반공변 형식 매개 변수를 사용합니다. 이러한 인터페이스에는 반공변 형식 매개 변수만 있으므로 형식 매개 변수가 인터페이스 멤버의 매개 변수 형식으로만 사용됩니다.
다음 예제에서는 반공변 형식 매개 변수를 사용하는 방법을 보여 줍니다. 이 예제에서는MustInherit 속성을 사용하여 추상(Visual Basic의 경우 Shape ) Area 클래스를 정의합니다. 이 예제에서는 또한 ShapeAreaComparer (Visual Basic의 경우 IComparer<Shape> )를 구현하는IComparer(Of Shape) 클래스를 정의합니다. IComparer<T>.Compare 메서드 구현은 Area 속성의 값을 기반으로 하므로 ShapeAreaComparer 를 사용하여 Shape 개체를 영역별로 정렬할 수 있습니다.
Circle 클래스는 Shape 를 상속하고 Area를 재정의합니다. 이 예제에서는 SortedSet<T> (Visual Basic의 경우 Circle )을 받아 들이는 생성자를 사용하여 IComparer<Circle> 개체의IComparer(Of Circle) 을 만듭니다. 하지만 이 예제에서는 IComparer<Circle>을 전달하는 대신 ShapeAreaComparer 를 구현하는 IComparer<Shape>개체를 전달합니다. 이 예제에서는Shape제네릭 인터페이스의 형식 매개 변수가 반공변 형식이기 때문에 코드에서 더 많이 파생된 형식(Circle)의 비교자를 호출하더라도 더 적게 파생된 형식( IComparer<T> )의 비교자를 전달할 수 있습니다.
새 Circle 개체를 SortedSet<Circle>에 추가하면 기존 요소에 대해 새 요소를 비교할 때마다 IComparer<Shape>.Compare 개체의IComparer(Of Shape).Compare 메서드(Visual Basic의 경우 ShapeAreaComparer 메서드)가 호출됩니다. 메서드의 매개 변수 형식(Shape)은 전달되는 형식(Circle)보다 더 적게 파생되었으므로 호출에서 형식 안전성을 유지합니다. 반공변성은 ShapeAreaComparer가 Shape에서 파생되는 혼합된 형식 컬렉션뿐만 아니라 모든 단일 형식의 컬렉션을 정렬할 수 있게 해줍니다.
C#
using System;
using System.Collections.Generic;

abstract class Shape
{
    public virtual double Area { get { return 0; }}
}

class Circle : Shape
{
    private double r;
    public Circle(double radius) { r = radius; }
    public double Radius { get { return r; }}
    public override double Area { get { return Math.PI * r * r; }}
}

class ShapeAreaComparer : System.Collections.Generic.IComparer<Shape>
{
    int IComparer<Shape>.Compare(Shape a, Shape b)
    {
        if (a == null) return b == null ? 0 : -1;
        return b == null ? 1 : a.Area.CompareTo(b.Area);
    }
}

class Program
{
    static void Main()
    {
        // You can pass ShapeAreaComparer, which implements IComparer<Shape>,
        // even though the constructor for SortedSet<Circle> expects
        // IComparer<Circle>, because type parameter T of IComparer<T> is
        // contravariant.
        SortedSet<Circle> circlesByArea =
            new SortedSet<Circle>(new ShapeAreaComparer())
                { new Circle(7.2), new Circle(100), null, new Circle(.01) };

        foreach (Circle c in circlesByArea)
        {
            Console.WriteLine(c == null ? "null" : "Circle with area " + c.Area);
        }
    }
}

/* This code example produces the following output:

null
Circle with area 0.000314159265358979
Circle with area 162.860163162095
Circle with area 31415.9265358979
 */
Variant 형식 매개 변수가 있는 제네릭 대리자

Func<T,TResult> 같은 Func 제네릭 대리자가 공변 반환 형식과 반공변 매개 변수 형식을 사용합니다. Action 같은 Action<T1,T2>제네릭 대리자는 반공변 매개 변수 형식을 사용합니다. 즉, 더 많이 파생된 매개 변수 형식과 더 적게 파생된 반환 형식(Func 제네릭 대리자의 경우)이 있는 변수에 대리자를 할당할 수 있습니다.
참고
Func 제네릭 대리자의 마지막 제네릭 형식 매개 변수는 대리자 시그니처에 반환 값의 형식을 지정합니다. 이 제네릭 형식 매개 변수는 공변(out 키워드)인 반면 다른 한 제네릭 형식 매개 변수는 반공변(in 키워드)입니다.
다음 코드가 이를 보여줍니다. 코드의 첫 부분에서는 Base라는 클래스, Derived 를 상속하는 Base라는 클래스 및 static 라는Shared 메서드(Visual Basic의 경우 MyMethod)가 있는 또 다른 클래스를 정의합니다. 이 메서드는 Base의 인스턴스를 사용하고 Derived의 인스턴스를 반환합니다. 인수가 Derived의 인스턴스이면 MyMethod에서 이 인스턴스를 반환하고, 인수가 Base의 인스턴스이면 MyMethod에서 Derived의 새 인스턴스를 반환합니다. 이 예제에서는 Main() 내에서 Func<Base, Derived>를 나타내고 이를 Func(Of Base, Derived) 변수에 저장하는 MyMethod(Visual Basic의 경우 f1)의 인스턴스를 만듭니다.
C#
public class Base {}
public class Derived : Base {}

public class Program
{
    public static Derived MyMethod(Base b)
    {
        return b as Derived ?? new Derived();
    }

    static void Main()
    {
        Func<Base, Derived> f1 = MyMethod;
코드의 둘째 부분에서는 반환 형식이 공변적이기 때문에 Func<Base, Base> (Visual Basic의 경우Func(Of Base, Base) ) 형식의 변수에 대리자를 할당할 수 있음을 보여 줍니다.
C#
// Covariant return type.
Func<Base, Base> f2 = f1;
Base b2 = f2(new Base());
코드의 셋째 부분에서는 매개 변수 형식이 반공변적이기 때문에 Func<Derived, Derived>(Visual Basic의 경우 Func(Of Derived, Derived)) 형식의 변수에 대리자를 할당할 수 있음을 보여 줍니다.
C#
// Contravariant parameter type.
Func<Derived, Derived> f3 = f1;
Derived d3 = f3(new Derived());
코드의 마지막 부분에서는 반공변 매개 변수 형식과 공변 반환 형식의 효과를 결합하여 Func<Derived, Base> (Visual Basic의 경우Func(Of Derived, Base) ) 형식의 변수에 대리자를 할당할 수 있음을 보여 줍니다.
C#
// Covariant return type and contravariant parameter type.
Func<Derived, Base> f4 = f1;
Base b4 = f4(new Derived());
Variant 형식 매개 변수가 있는 제네릭 대리자 > 제네릭이 아닌 대리자의 가변성

위의 코드에서 MyMethod의 시그니처는 생성된 제네릭 대리자 Func<Base, Derived>(Visual Basic의 경우 Func(Of Base, Derived))의 시그니처와 정확하게 일치합니다. 이 예제에서는 모든 대리자 형식이 제네릭 대리자 형식 Func<T,TResult>에서 생성되는 한 더 많이 파생된 매개 변수 형식과 더 적게 파생된 반환 형식이 있는 메서드 매개 변수 또는 변수에 이 제네릭 대리자를 저장할 수 있음을 보여 줍니다.
다음은 중요한 내용입니다. 제네릭 대리자의 형식 매개 변수가 지니는 공변성 및 반공변성의 효과는 일반적인 대리자 바인딩이 지니는 공변성 및 반의 효과와 비슷합니다. 자세한 내용은 대리자의 가변성(C#) 및 대리자의 가변성(Visual Basic)을 참조하세요. 그러나 대리자 바인딩의 가변성은 variant 형식 매개 변수가 있는 제네릭 대리자 형식뿐 아니라 모든 대리자 형식에서 작동합니다. 또한 대리자 바인딩이 가변성을 지니면 더 제한적인 매개 변수 형식과 덜 제한적인 반환 형식이 있는 임의의 대리자에 메서드를 바인딩할 수 있는 반면, 제네릭 대리자의 할당은 두 대리자 형식이 모두 동일한 제네릭 형식 정의에서 생성되는 경우에만 작동합니다.
다음 예제에서는 대리자 바인딩의 가변성과 제네릭 형식 매개 변수의 가변성이 결합된 효과를 보여 줍니다. 이 예제에서는 가장 적게 파생된 형식(Type1)부터 가장 많이 파생된 형식(Type3)까지 세 개의 형식을 포함하는 형식 계층을 정의합니다. 일반적인 대리자 바인딩의 가변성은 Type1 의 매개 변수 형식과 Type3 의 반환 형식이 있는 제네릭 대리자에 Type2 의 매개 변수 형식과 Type2의 반환 형식이 있는 메서드를 바인딩하는 데 사용됩니다. 결과로 생성된 제네릭 대리자는 제네릭 형식 매개 변수의 공 분산과 반공 분산을 사용하여 제네릭 대리자의 매개 변수 형식과 반환 형식이 각각 Type3과 Type1인 다른 변수에 할당됩니다. 이 두 번째 할당을 수행하려면 변수 형식과 대리자 형식이 둘 다 같은 제네릭 형식 정의(이 예제의 경우 Func<T,TResult>)에서 생성된 것이어야 합니다.
C#
using System;

public class Type1 {}
public class Type2 : Type1 {}
public class Type3 : Type2 {}

public class Program
{
    public static Type3 MyMethod(Type1 t)
    {
        return t as Type3 ?? new Type3();
    }

    static void Main()
    {
        Func<Type2, Type2> f1 = MyMethod;

        // Covariant return type and contravariant parameter type.
        Func<Type3, Type1> f2 = f1;
        Type1 t1 = f2(new Type3());
    }
}
Variant 제네릭 인터페이스 및 대리자 정의

Visual Basic과 C#에서 인터페이스와 대리자의 제네릭 형식 매개 변수를 공변 또는 반공변으로 표시하는 데 사용할 수 있는 키워드를 제공합니다.
공변 형식 매개 변수는 out 키워드(Visual Basic의 Out 키워드)로 표시됩니다. 공변 형식 매개 변수는 인터페이스에 속하는 메서드의 반환 값이나 대리자의 반환 형식으로 사용할 수 있지만 인터페이스 메서드에 대한 제네릭 형식 제약 조건으로는 사용할 수 없습니다.
참고
인터페이스의 메서드에 제네릭 대리자 형식인 매개 변수가 있으면 인터페이스 형식의 공변 형식 매개 변수를 사용하여 대리자 형식의 반공변 형식 매개 변수를 지정할 수 있습니다.
반공변 형식 매개 변수는 in 키워드(Visual Basic의 In 키워드)로 표시됩니다. 반공변 형식 매개 변수는 인터페이스에 속하는 메서드의 매개 변수 형식이나 대리자의 매개 변수 형식으로 사용할 수 있으며 인터페이스 메서드의 제네릭 형식 제약 조건으로도 사용할 수 있습니다.
variant 형식 매개 변수를 사용할 수 있는 것은 인터페이스 형식과 대리자 형식뿐입니다. 인터페이스 형식이나 대리자 형식은 공변 및 반공변 형식 매개 변수를 둘 다 가질 수 있습니다.
Visual Basic과 C#에서는 공변 및 반공변 형식 매개 변수의 사용 규칙을 위반하거나 인터페이스와 대리자가 아닌 다른 형식의 형식 매개 변수에 공 분산 및 반공 분산 주석을 추가할 수 없습니다.
자세한 내용과 예제 코드는 제네릭 인터페이스의 가변성(C#) 및 제네릭 인터페이스의 가변성(Visual Basic)을 참조하세요.
형식 목록

다음 인터페이스 및 대리자 형식에서 공변 및/또는 반공변 형식 매개 변수를 사용합니다.
| Type | 공변 형식 매개 변수 | 반공변 형식 매개 변수 |
| --- | --- | --- |
| Action<T> - Action<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16> |  | 예 |
| Comparison<T> |  | 네 |
Converter<TInput,TOutput>: 네
| Func<TResult> | 예 |  |
| Func<T,TResult> - Func<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,TResult> | 예 | 네 |
| IComparable<T> |  | 네 |
| Predicate<T> |  | 네 |
| IComparer<T> |  | 네 |
| IEnumerable<T> | 네 |  |
| IEnumerator<T> | 네 |  |
| IEqualityComparer<T> |  | 네 |
| IGrouping<TKey,TElement> | 네 |  |
| IOrderedEnumerable<TElement> | 네 |  |
| IOrderedQueryable<T> | 네 |  |
| IQueryable<T> | 예 |  |
참고 항목

공변성(Covariance) 및 반공변성(Contravariance)(C#)
공변성(Covariance) 및 반공변성(Contravariance)(Visual Basic)
대리자의 가변성(C#)
대리자의 가변성(Visual Basic)
객체 지향 언어의 상속에서

서브클래스가 슈퍼클래스의 메소드를 오버라이드 할 경우, 컴파일러는 메소드의 타입이 올바른지 확인해 타입 안전(영어: type safe)을 보장해야만 한다. 무공변만을 허용하는 일부 언어에서는 인자 타입과 반환 타입 모두 슈퍼클래스의 인자 타입 그리고 반환 타입과 정확히 같아야 한다. 그러나 특별한 규칙을 따른다면, 오버라이드된 메소드가 더 유연한 타입을 갖도록 허용하면서도 타입 안전을 보장할 수 있다. 함수 유형에 대한 일반적인 서브타이핑 규칙에 따르면, 오버라이드된 메소드는 더욱 구체적인 타입을 반환해야 하고(반환 타입 공변), 더욱 일반적인 타입을 허용해야만 한다.(인자 타입 반공변)
ClassB가 ClassA를 상속하는 서브클래스라고 할 때, 가능한 조합들을 UML로 나타내면 다음과 같다.
변성과 메소드 오버라이딩: 개요
함수의 인자/반환 타입과 서브타이핑
무공변. 오버라이딩된 메소드의 시그니처는 변하지 않았다. -- 타입 안전하다.
공변 반환 타입. 서브타이핑 관계는 CalssA와 ClassB 사이의 관계와 같은 방향이다. -- 타입 안전하다.
반공변 인자 타입. 서브타이핑 관계는 ClassA 그리고 ClassB 사이의 관계와 반대 방향이다. -- 타입 안전하다.
공변 인자 타입. -- 이 경우에는 타입 안전하지 않다.
객체지향 프로그래밍 언어들의 메소드 오버라이딩 규칙을 요약하면 다음과 같다.
| 프로그래밍 언어 | 인자 타입 | 반환 타입 |
| --- | --- | --- |
| C++ (1998년부터), 자바 (J2SE 5.0부터), D | 무공변 | 공변 |
| C# | 무공변 | 공변 (C# 9부터 - 이전까지는 무공변) |
| Scala | 반공변 | 공변 |
Eiffel: 공변
같이 보기

리스코프 치환 원칙
다형성 (컴퓨터 과학)
상속 (객체 지향 프로그래밍)
참조문헌

Castagna, Giuseppe (1995년 5월). “Covariance and contravariance”. 《ACM Transactions on Programming Languages and Systems》 17 (3): 431–447. doi:10.1145/203095.203096. ISSN 0164-0925.
루호비치

시 문장
루호비치(러시아어: Лухови́цы)는 러시아 모스크바주 남동부에 위치한 도시로, 인구는 32,403명(2002년 기준)이다. 오카강과 접하며 모스크바(러시아의 수도이며 모스크바주의 주도이기도 함)에서 남동쪽으로 135 km 정도 떨어진 곳에 위치한다. 1594년 글루호비치(Глуховичи)라는 이름으로 처음 등장했고 1920년대 중반 루호비치(Луховичи)라는 이름으로 변경되었다. 1957년 시로 승격되었다.
| --- | --- |
전거 통제: 지리 :  뮤직브레인즈 지역
앵거스 (의회 구역)

앵거스
앵거스(영어: Angus, 스코틀랜드 게일어: Aonghas)는 스코틀랜드의 의회 구역으로 행정 중심지는 포퍼이며 면적은 2,182km2, 인구는 116,000명(2010년 기준), 인구 밀도는 51명/km2이다. 애버딘셔, 던디, 퍼스 킨로스와 접한다.
인구

| 연도 | 인구 | ±% |
| --- | --- | --- |
| 1801 | 65,068 | —     |
| 1811 | 69,376 | +6.6% |
| 1821 | 74,436 | +7.3% |
| 1831 | 84,630 | +13.7% |
| 1841 | 106,890 | +26.3% |
| 1851 | 119,357 | +11.7% |
| 1911 | 118,748 | −0.5% |
| 1921 | 101,767 | −14.3% |
| 1931 | 93,803 | −7.8% |
| 1941 | 95,290 | +1.6% |
| 1951 | 96,777 | +1.6% |
| 1961 | 93,666 | −3.2% |
| 1971 | 90,554 | −3.3% |
| 1981 | 98,685 | +9.0% |
| 1991 | 107,866 | +9.3% |
| 2001 | 108,400 | +0.5% |
| 2011 | 116,000 | +7.0% |
출처:
로곤옥시당탈주

로곤옥시당탈주
로곤옥시당탈주(프랑스어: Région du Logone Occidental, 아랍어: منطقة لوقون الغربي)는 차드 남서부에 위치한 주로, 주도는 문두이며 3개 현(도제현, 라크웨이현, 응구르코소현)을 관할한다.
| v t e차드의 행정 구역 |
| --- | --- | --- |
|  게라주  라크주  로곤오리앙탈주  로곤옥시당탈주  마요케비에스트주  마요케비우에스트주  망둘주  무아얭샤리주  바르엘가젤주  바타주  보르쿠주  살라마트주  샤리바기르미주  실라주  엔네디주  와다이주  와디피라주  은자메나  카넴주  탕질레주  티베스티주  하제르라미주  |  게라주  라크주  로곤오리앙탈주  로곤옥시당탈주  마요케비에스트주  마요케비우에스트주  망둘주  무아얭샤리주  바르엘가젤주  바타주  보르쿠주  살라마트주  샤리바기르미주  실라주  엔네디주  와다이주  와디피라주  은자메나  카넴주  탕질레주  티베스티주  하제르라미주  |  |
| --- | --- |
전거 통제: 지리 :  뮤직브레인즈 지역
라벤더 오일

라벤더 오일(Lavender oil) 또는 라벤더 기름은 특정 라벤더속 종들의 꽃 스파이크를 증류하여 얻은 에센셜 오일이다. 전 세계적으로 다양한 향과 품질을 지닌 400종 이상의 라벤더가 있다. 라벤더 오일은 두 가지 형태로 구분된다. 라벤더 꽃 오일은 무색 오일이며 물에 불용성이며 밀도는 0.885g/mL이다. 라벤더 스파이크 오일(Lavandula latifolia 허브의 증류액)은 밀도가 0.905g/mL이다. 모든 에센셜 오일과 마찬가지로 이는 순수한 화합물이 아니다. 이는 리날룰과 리날릴 아세테이트를 포함한 식물화학물질의 복잡한 혼합물이다.
| --- | --- |
전거 통제: 국가 :  독일
Q별

Q 별(Q-Star) 또는 그레이 홀(gray hole→회색 구멍)은 가설 상의 밀집성의 한 종류이며, 무거운 중성자와 함께 별난 상태의 물질로 이루어진 천체이다. Q 별이란 용어를 쿼크 별과 착각하면 안 되며, Q는 쿼크를 의미하기 보다는 보존된 입자수를 의미한다. Q 별은 항성블랙홀과 착각할 수도 있다. Q 별의 후보자로 백조자리 V404가 있다.
Q 별의 종류

초대칭 Q 볼
B 볼 (안정된 Q 볼이 B 바리온을 가지고 있으며, 중성자별에 함유되어있고 Q 볼을 흡수한다.)
같이 보기

블랙홀
고트프리트 페더

| 고트프리트 페더 Gottfried Feder |
| --- | --- |
출생: 1883년 1월 27일
사망: 1941년 9월 24일
성별: 남성
직업: 경제학자, 나치당원
소속: 나치당
고트프리트 페더
고트프리트 페더(Gottfried Feder, 1883년 1월 27일 ~ 1941년 9월 24일)는 경제학자이자 초기 나치당의 주요 당원였다. 나치당의 경제 이론가였다. 그의 1919년 강의가 히틀러를 당에 끌어들였다.
삶

1883년 1월 27일에 독일 뷔르츠부르크에서 공무원 한스 페더와 마틸데 페더의 아들로 태어났다. 안스바흐와 뮌헨에 있는 인문주의 학교를 다닌 후 베를린과 취리히에서 공학을 전공하였다. 졸업 후, 1908년에 건설 회사를 설립하였다. 후에 수많은 공공 건물을 세웠던 불가리아에서 활동하였다.
1917년부터 스스로 재정 정치와 경제학을 공부하였다. 제1차 세계대전 동안 부유한 은행을 향하여 적개심을 키워나갔으며 1919년에 《Brechung der Zinsknechtschaft》를 저술하였다. 나중에 모든 은행을 국유화하고 이자를 없애는 위한 일종의 대책 위원회를 창립하였다.
같은 해에 안톤 드렉슬러, 디트리히 에카르트, 카를 하러와 함께 나치당의 전신인 독일 노동자당을 창당하였다.
히틑러는 1919년 여름에 그를 만났으며, 페더는 이어 그의 제정 경제 자문관으로 일하였다. 그는 히틀러의 유대계 제정 자본주의에 영감을 주었다.
그러나 후에 히틀러의 신임을 얻은 우익 경제인들이 페더를 공격하였고, 1934년 히틀러가 당내의 좌익 세력을 숙청하자 페더는 내각에서 사임했다. 베를린 공대에서 교수로 있다가 1941년에 사망했다.
같이 보기

슈트라서주의
사회 신용
프린스턴 신학

프린스턴 신학 ( Princeton Theology )은 개혁주의 신학, 장로교 신학의 전통을 프린스턴 신학교에서 가르친 것으로 1812년부터 1920년까지의 기간 동안 일어났다.  그 이후로 이 신학교가 자유주의 신학의 영향을 받아 존 그레섬 메이천이 떠나 웨스트민스터 신학교를 설립하게 된다.
관저

다른 뜻에 대해서는 관저 (동음이의) 문서를 참고하십시오.
관저(官邸)는 정부에서 장관급 이상의 고관(高官)들이 살도록 마련한 집인데, 주로 총리 및 공화국의 국가 원수, 해외 주재 대사가 공무상 거처하는 집을 가리킨다.
영어로는 Official residence로 번역되나 관저와 완전히 동일한 개념은 아닌데, Official residence가 군주와 고위 공직자의 구분 없이 '공식 거처'를 나타낸다면, 官邸는 '고위 공직자(官)의 거처(邸)'를 뜻하기 때문이다. 따라서 한자 문화권에서 군주의 거처는 궁전으로 표현한다.
호프부르크 왕궁, 퀴리날레 궁전과 같이 한때 왕궁으로 쓰였으나, 공화국이 들어서면서 대통령 관저로 사용되고 있는 건물을 포함한다.
대한민국 - 용산의 대한민국  대통령실(구 청와대)
러시아 - 모스크바 크렘린(러시아어: Московский Кремль)
미국 - 백악관(영어: White House)
슬로바키아 - 그라살코비흐 궁전(슬로바키아어: Grasalkovičov palác)
오스트리아 - 호프부르크 왕궁(독일어: Hofburg)
체코 - 프라하 성(체코어: Pražský hrad)
이탈리아 - 퀴리날레 궁전(이탈리아어: Palazzo del Quirinale)
스페인 - 마드리드 왕궁(스페인어:  Palacio Real de Madrid)
포르투갈 - 벨렝 궁전(포르투갈어: Palácio Nacional de Belém)
아르헨티나 - 카사 로사다(스페인어: Casa Rosada)
브라질 - 팔라시우 두 플라나우투(포르투갈어: Palácio do Planalto)
인도네시아 - 보고르 궁전(인도네시아어: Istana Bogor)
중화인민공화국 - 중난하이(중국어: 中南海)
베트남 - 주석궁(베트남어: Phủ Chủ tịch)
페루 - 페루 대통령궁(스페인어: Palacio de Gobierno)
프랑스 - 엘리제 궁전(프랑스어: Palais de l'Élysée)
캐나다 - 리도 홀(영어: Rideau Hall)
독일 - 독일 총리관저(독일어: Bundeskanzleramt)
영국 - 버킹엄 궁전(영어: Buckingham Palace)
일본 - 총리대신 관저(일본어: 總理大臣 官邸)
미얀마 - 대통령궁(버마어: သမ္မတနန်းတော)
싱가포르 - 이스타나 왕궁(말레이어: Istana)
옛 관저

나치 독일 - 총통관저(독일어: Neue Reichskanzlei)
북베트남 - 호찌민 관저(베트남어: Khu di tích Phủ Chủ tịch)
남베트남 - 독립궁(베트남어: Dinh Độc Lập)
쿠바 - 구 대통령관저 (현 혁명박물관 (쿠바))