hotchpotch/wikipedia-multilingual-ir-pairs huggingface dataset:
직관주의 유형 이론 유형 이론
마찬가지로, 1 유형은 하나의 기초 항을 포함하며 존재를 나타낸다. 또한 단위 유형이라고도 불린다.
마지막으로, 2 유형은 두 개의 기초 항을 포함한다. 이것은 두 값 사이의 명확한 선택을 나타낸다. 불 값에 사용되지만 명제에는 사용되지 않는다.
명제는 대신 특정 유형으로 표현된다. 예를 들어, 참 명제는 1 유형으로 표현될 수 있고, 거짓 명제는 0 유형으로 표현될 수 있다. 그러나 이것들이 유일한 명제라고 단언할 수는 없으며, 즉 직관주의 유형 이론에서 명제에 대해 배중률은 성립하지 않는다.
Σ-유형은 순서쌍을 포함한다. 일반적인 순서쌍(또는 2-튜플) 유형과 마찬가지로, Σ-유형은 두 다른 유형 와 의 카르테시안 곱, 를 설명할 수 있다. 논리적으로, 그러한 순서쌍은 의 증명과 의 증명을 포함하므로, 그러한 유형은 로 쓰이는 것을 볼 수 있다.
Σ-유형은 의존적 유형화 때문에 일반적인 순서쌍 유형보다 더 강력하다. 순서쌍에서 두 번째 항의 유형은 첫 번째 항의 값에 따라 달라질 수 있다. 예를 들어, 쌍의 첫 번째 항이 자연수이고 두 번째 항의 유형이 첫 번째 항의 길이와 같은 실수의 수열일 수 있다. 그러한 유형은 다음과 같이 쓰일 것이다.
직관주의 유형 이론 유형 이론
집합론 용어를 사용하면, 이것은 집합의 인덱스화된 분리합집합과 유사하다. 일반적인 카르테시안 곱의 경우, 두 번째 항의 유형은 첫 번째 항의 값에 따라 달라지지 않는다. 따라서 카르테시안 곱 을 설명하는 유형은 다음과 같이 쓰인다.
여기서 첫 번째 항의 값인 은 두 번째 항의 유형인 에 의존하지 않는다는 점에 유의해야 한다.
Σ-유형은 수학에서 사용되는 더 긴 의존적 튜플과 대부분의 프로그래밍 언어에서 사용되는 레코드 또는 구조체를 구성하는 데 사용될 수 있다. 의존적 3-튜플의 예로는 두 정수와 첫 번째 정수가 두 번째 정수보다 작다는 증명이 있으며, 이는 다음 유형으로 설명된다.
의존적 유형화는 Σ-유형이 존재 양화사의 역할을 수행하도록 허용한다. "유형 의 이 존재하고, 이 증명된다"는 문장은 첫 번째 항목이 유형 의 값 이고 두 번째 항목이 의 증명인 순서쌍의 유형이 된다. 두 번째 항목(의 증명)의 유형이 순서쌍의 첫 번째 부분()의 값에 의존한다는 점에 주목하라. 그 유형은 다음과 같을 것이다.
직관주의 유형 이론 유형 이론
Π-유형은 함수를 포함한다. 일반적인 함수 유형과 마찬가지로, 입력 유형과 출력 유형으로 구성된다. 그러나 반환 유형이 입력 값에 따라 달라질 수 있다는 점에서 일반적인 함수 유형보다 더 강력하다. 유형 이론의 함수는 집합론과 다르다. 집합론에서는 순서쌍 집합에서 인수의 값을 찾는다. 유형 이론에서는 인수가 항에 대입된 다음, 항에 대한 계산("환원")이 적용된다.
예를 들어, 자연수 이 주어지면 개의 실수를 포함하는 벡터를 반환하는 함수의 유형은 다음과 같이 쓰인다.
출력 유형이 입력 값에 의존하지 않을 때, 함수 유형은 종종 단순히 로 쓰인다. 따라서 은 자연수에서 실수로 가는 함수의 유형이다. 이러한 Π-유형은 논리적 함의에 해당한다. 논리적 명제 는 의 증명을 받아 의 증명을 반환하는 함수를 포함하는 유형 에 해당한다. 이 유형은 다음과 같이 더 일관성 있게 쓸 수 있다.
Π-유형은 또한 보편 양화를 위한 논리에도 사용된다. "모든 유형 의 에 대해 이 증명된다"는 문장은 유형 의 에서 의 증명으로 가는 함수가 된다. 따라서 에 대한 값이 주어지면 함수는 해당 값에 대해 가 성립한다는 증명을 생성한다. 이 유형은 다음과 같을 것이다.
직관주의 유형 이론 유형 이론
=-유형은 두 개의 항으로부터 생성된다. 와 와 같은 두 항이 주어지면, 새로운 유형 를 생성할 수 있다. 그 새로운 유형의 항들은 그 쌍이 동일한 기초 항으로 축소된다는 증명을 나타낸다. 따라서 와  모두 기초 항 로 계산되므로, 유형 의 항이 존재할 것이다. 직관주의 유형 이론에서는 =-유형을 도입하는 단일한 방법이 있으며, 그것은 반사성에 의한 것이다.
항이 동일한 기초 항으로 축소되지 않는 와 같은 =-유형을 생성하는 것이 가능하지만, 그 새로운 유형의 항을 생성할 수는 없다. 사실, 만약 의 항을 생성할 수 있었다면, 의 항을 생성할 수 있었을 것이다. 그것을 함수에 넣으면  유형의 함수가 생성될 것이다. 는 직관주의 유형 이론이 부정을 정의하는 방식이므로,  또는 최종적으로 를 가질 것이다.
증명의 등식은 증명 이론에서 활발히 연구되는 분야이며 호모토피 유형 이론 및 다른 유형 이론의 발전을 이끌었다.
직관주의 유형 이론 유형 이론
귀납 유형은 복잡한 자기 참조 유형을 생성할 수 있도록 한다. 예를 들어, 자연수의 연결 리스트는 빈 리스트이거나 자연수와 또 다른 연결 리스트의 쌍이다. 귀납 유형은 나무, 그래프 등과 같은 무한 수학적 구조를 정의하는 데 사용될 수 있다. 사실, 자연수 유형은 귀납 유형으로 정의될 수 있는데, 이는 이거나 다른 자연수의 다음수이다.
귀납 유형은 와 같은 새로운 상수와 다음수 함수 를 정의한다. 는 정의를 가지고 있지 않고 대체(substitution)를 사용하여 평가될 수 없으므로, 와 와 같은 항은 자연수의 기초 항이 된다.
귀납 유형에 대한 증명은 귀납법을 통해 가능하다. 각 새로운 귀납 유형은 고유한 귀납 규칙과 함께 제공된다. 모든 자연수에 대해 술어 를 증명하려면 다음 규칙을 사용한다.
직관주의 유형 이론의 귀납 유형은 잘 정돈된 트리의 유형인 W-유형으로 정의된다. 유형 이론의 후속 연구는 보다 모호한 종류의 자기 참조성을 가진 유형에 대한 코귀납 유형, 귀납-재귀 및 귀납-귀납을 생성했다. 고차 귀납 유형은 항 간의 등식을 정의할 수 있도록 한다.
직관주의 유형 이론 유형 이론
전체 유형은 다른 유형 생성자로 생성된 모든 유형에 대한 증명을 작성할 수 있도록 한다. 전체 유형 의 모든 항은  및 귀납 유형 생성자의 모든 조합으로 생성된 유형에 매핑될 수 있다. 그러나 역설을 피하기 위해, 어떤 에 대해서도 에 으로 매핑되는 항은 없다.
모든 "작은 유형"과 에 대한 증명을 작성하려면 을 사용해야 한다. 이 유형은 에 대한 항을 포함하지만, 자체 에 대한 항은 포함하지 않는다. 마찬가지로, 도 그렇다. 예측적 계층의 전체가 존재하므로, 고정된 상수  전체에 대한 증명을 정량화하려면 을 사용할 수 있다.
전체 유형은 유형 이론의 까다로운 기능이다. 마르틴뢰프의 원래 유형 이론은 지라르의 역설을 설명하기 위해 변경되어야 했다. 후속 연구는 "초 전체", "말로 전체" 및 비예측적 전체와 같은 주제를 다루었다.
직관주의 유형 이론 판단
직관주의 유형 이론의 형식적 정의는 판단을 사용하여 작성된다. 예를 들어, "만약 가 유형이고 가 유형이면 는 유형이다"라는 문장에는 "는 유형이다", "그리고", "만약...이면..."이라는 판단이 있다. 표현 는 판단이 아니다; 그것은 정의되는 유형이다.
유형 이론의 이 두 번째 수준은 특히 등식(equality)과 관련하여 혼란스러울 수 있다. 항 등식에 대한 판단이 있을 수 있는데, 예를 들어 가 있다. 이것은 두 항이 동일한 기초 항으로 축소된다는 진술이다. 유형 등식에 대한 판단도 있으며, 예를 들어 라고 말하면, 의 모든 요소가 유형 의 요소이며 그 반대도 마찬가지라는 의미이다. 유형 수준에서는 유형 가 있으며, 와 가 동일한 값으로 축소된다는 증명이 있다면 이 유형에는 항이 포함된다. (이 유형의 항은 항 등식 판단을 사용하여 생성된다.) 마지막으로, 자연언어(영어) 수준의 등식이 있는데, 이는 우리가 "four"라는 단어와 ""라는 기호를 사용하여 기초 항 를 참조하기 때문이다. 이러한 동의어는 마르틴뢰프에 의해 "정의적으로 동일하다"고 불린다.
아래 판단에 대한 설명은 노르드스트롬, 페테르손, 스미스의 논의를 기반으로 한다.
직관주의 유형 이론 판단
형식 이론은 유형과 객체를 다룬다.
유형은 다음과 같이 선언된다.
객체가 존재하며 유형에 속하는 경우는 다음과 같다.
객체는 같을 수 있다.
그리고 유형은 같을 수 있다.
다른 유형의 객체에 의존하는 유형은 다음과 같이 선언된다.
그리고 대입으로 제거된다.
다른 유형의 객체에 의존하는 객체는 두 가지 방법으로 수행될 수 있다.
객체가 "추상화"된 경우, 다음과 같이 쓰인다.
그리고 대입으로 제거된다.
객체에 의존하는 객체는 재귀 유형의 일부로 상수로 선언될 수도 있다. 재귀 유형의 예는 다음과 같다.
여기서 는 상수 객체 의존 객체이다. 추상화와 관련이 없다. 와 같은 상수는 등식을 정의하여 제거할 수 있다. 여기서 덧셈과의 관계는 등식과 의 재귀적 측면을 처리하기 위한 패턴 매칭을 사용하여 정의된다.
는 불투명한 상수로 조작된다. 즉, 대체할 내부 구조가 없다.
따라서 객체와 유형, 그리고 이러한 관계는 이론에서 공식을 표현하는 데 사용된다. 다음 스타일의 판단은 기존 객체, 유형 및 관계에서 새로운 객체, 유형 및 관계를 생성하는 데 사용된다.
직관주의 유형 이론 판단
관례상, 다른 모든 유형을 나타내는 유형이 있다. 이를 (또는 )라고 한다. 는 유형이므로, 그 구성원들은 객체이다. 각 객체를 해당 유형에 매핑하는 의존 유형 이 있다. 대부분의 텍스트에서는 이 작성되지 않는다. 진술의 문맥상 독자는 가 유형을 나타내는지, 아니면 유형에 해당하는 의 객체를 나타내는지를 거의 항상 알 수 있다.
이것이 이론의 완전한 기초이다. 다른 모든 것은 파생된다.
논리를 구현하기 위해 각 명제는 고유한 유형을 갖는다. 해당 유형의 객체는 명제를 증명하는 다양한 가능한 방법을 나타낸다. 명제에 대한 증명이 없으면 해당 유형에는 객체가 없다. 명제에 작용하는 "그리고" 및 "또는"과 같은 연산자는 새로운 유형과 새로운 객체를 도입한다. 따라서 는 유형 와 유형 에 의존하는 유형이다. 해당 의존 유형의 객체는 와 의 모든 객체 쌍에 대해 존재하도록 정의된다.  또는  중 하나가 증명이 없고 빈 유형이면 를 나타내는 새 유형도 비어 있다.
이것은 다른 유형(부울, 자연수 등) 및 해당 연산자에 대해서도 수행될 수 있다.
직관주의 유형 이론 유형 이론의 범주적 모형
범주론의 언어를 사용하여 R. A. G. 실리는 유형 이론의 기본 모형으로 국소 카르테시안 닫힌 범주 (LCCC)의 개념을 도입했다. 이것은 호프만과 딥비르에 의해 카트멜의 이전 작업을 기반으로 패밀리가 있는 범주 또는 속성이 있는 범주로 정교화되었다.
패밀리가 있는 범주는 문맥의 범주 C(여기서 객체는 문맥이고, 문맥 사상은 대입이다)와, 반변함자 T : Cop → Fam(Set)으로 구성된다.
Fam(Set)은 집합의 패밀리 범주이며, 객체는 "인덱스 집합" A와 함수 B: X → A의 쌍 이고, 사상은 함수 f : A → A' 와 g : X → X' 의 쌍으로, B'  ° g = f ° B를 만족한다. 즉, f는 Ba를 Bg(a)로 매핑한다.
함자 T는 문맥 G에 대해 유형 집합 를 할당하고, 각 에 대해 항 집합 를 할당한다. 함자에 대한 공리는 이들이 대입과 조화롭게 작동하도록 요구한다. 대입은 일반적으로 Af 또는 af 형태로 쓰며, 여기서 A는 의 유형이고 a는 의 항이며, f는 D에서 G로의 대입이다. 여기서 이고 이다.
직관주의 유형 이론 유형 이론의 범주적 모형
범주 C는 종단 객체(빈 문맥)와, 오른쪽에 있는 원소가 왼쪽 원소의 문맥에 있는 유형인 포괄(comprehension) 또는 문맥 확장이라는 형태의 곱에 대한 최종 객체를 포함해야 한다. G가 문맥이고 이면, 매핑 p : D → G, q : Tm(D,Ap)를 갖는 문맥 D 중에서 최종적인 객체 가 있어야 한다.
마르틴뢰프의 것과 같은 논리적 프레임워크는 문맥 의존적인 유형 및 항 집합에 대한 닫힘 조건의 형태를 취한다. 즉, Set이라는 유형이 있어야 하고, 각 Set에 대해 유형이 있어야 하며, 유형은 의존 합 및 곱의 형태와 다양한 형태의 귀납적 정의에 대해 닫혀 있어야 한다.
예측적 집합론과 같은 이론은 집합의 유형과 그 원소에 대한 닫힘 조건을 표현한다. 즉, 의존 합 및 곱을 반영하는 연산과 다양한 형태의 귀납적 정의에 대해 닫혀 있어야 한다.
직관주의 유형 이론 외연적 대 내포적
근본적인 구분은 외연적 유형 이론 대 내포적 유형 이론이다. 외연적 유형 이론에서는 정의적(즉, 계산적) 동등성과 증명을 필요로 하는 명제적 동등성이 구별되지 않는다. 결과적으로 유형 이론 내의 프로그램이 종료되지 않을 수 있으므로 외연적 유형 이론에서는 유형 검사가 결정 불가능해진다. 예를 들어, 이러한 이론은 Y 콤비네이터에 유형을 부여하는 것을 허용한다. 이에 대한 자세한 예시는 Nordstöm과 Petersson의 "Programming in Martin-Löf's Type Theory"에서 찾을 수 있다. 그러나 이것이 외연적 유형 이론이 실용적인 도구의 기반이 되는 것을 막지는 못한다. 예를 들어, 누프르 시스템은 계산 유형 이론에 기반을 두고 있다. 그리고 Coq는 귀납적 구성의 계산에 기반을 두고 있다.
직관주의 유형 이론 외연적 대 내포적
반면, 내포적 유형 이론에서는 유형 검사가 결정 가능하지만, 표준 수학적 개념의 표현은 다소 번거롭다. 내포적 추론은 집합동치 또는 유사한 구성을 사용해야 하기 때문이다. 정수, 유리수, 실수와 같이 이 없이는 다루기 어렵거나 표현할 수 없는 공통 수학적 객체가 많이 있다. 정수와 유리수는 집합동치 없이도 표현할 수 있지만, 이러한 표현은 다루기 어렵다. 코시 실수는 이 없이는 표현할 수 없다.
호모토피 유형 이론은 이 문제를 해결하기 위해 노력한다. 이는 고차 귀납 유형을 정의할 수 있게 하는데, 이는 1차 생성자(값 또는 점)뿐만 아니라 고차 생성자, 즉 요소 간의 등식(경로), 등식 간의 등식(호모토피), 그리고 무한히 계속되는 등식을 정의한다.
직관주의 유형 이론 유형 이론의 구현
다양한 형태의 유형 이론이 여러 증명 보조기의 기반이 되는 형식 시스템으로 구현되었다. 많은 시스템이 페르 마르틴뢰프의 아이디어를 기반으로 하지만, 많은 시스템은 추가 기능, 더 많은 공리 또는 다른 철학적 배경을 가지고 있다. 예를 들어, 누프르 시스템은 계산 유형 이론(computational type theory)에 기반을 두고 있으며 Coq는  (공)귀납적 구성의 계산에 기반을 두고 있다. 의존형은 또한 ATS, 카옌, 에피그램, 아그다, 및 아이드리스와 같은 프로그래밍 언어의 설계에도 특징적으로 나타난다.
직관주의 유형 이론 마르틴뢰프 유형 이론
페르 마르틴뢰프는 여러 유형 이론을 구축하여 다양한 시기에 발표했는데, 일부는 그의 설명이 담긴 사전 인쇄물이 전문가들(특히 장 이브 지라르와 조반니 삼빈)에게 공개된 시점보다 훨씬 늦게 발표되었다. 아래 목록은 인쇄된 형태로 설명된 모든 이론을 나열하고 서로를 구별하는 주요 특징을 간략하게 설명하려고 한다. 이 모든 이론은 종속 곱, 종속 합, 분리 합집합, 유한 유형 및 자연수를 가지고 있었다. 모든 이론은 종속 곱 또는 종속 합에 대한 η-환원을 포함하지 않는 동일한 환원 규칙을 가졌으며, 종속 곱에 대한 η-환원이 추가된 MLTT79는 예외였다.
MLTT71은 페르 마르틴뢰프가 만든 최초의 유형 이론이다. 1971년 사전 인쇄물로 등장했다. 하나의 전체를 가지고 있었지만, 이 전체는 그 자체로 이름을 가지고 있었다. 즉, 오늘날 "유형 안의 유형(Type in Type)"이라고 불리는 유형 이론이었다. 장 이브 지라르는 이 시스템이 불일치함을 보여주었고, 사전 인쇄물은 출판되지 않았다.
직관주의 유형 이론 마르틴뢰프 유형 이론
MLTT72는 1972년 현재 출판된 사전 인쇄물에서 발표되었다. 이 이론은 하나의 전체 V를 가지고 있었고 동일성 유형 (=-유형)은 없었다. 이 전체는 예측적이었는데, 이는 V에 있지 않은 객체(예를 들어 V 자체)에 대한 V의 객체들의 패밀리의 종속 곱이 V에 있다고 가정되지 않았다는 의미이다. 이 전체는 버트런드 러셀의 수학 원리와 유사했는데, 즉 "T∈V"와 "t∈T" (마르틴뢰프는 현대의 ":" 대신 "∈" 기호를 사용했다)를 추가적인 생성자 "El" 없이 직접 작성했을 것이다.
직관주의 유형 이론 마르틴뢰프 유형 이론
MLTT73은 페르 마르틴뢰프가 처음으로 출판한 유형 이론의 정의였다(1973년 논리 콜로퀴엄에서 발표되었고 1975년에 출판되었다). 그는 "명제"라고 설명하는 동일성 유형이 있지만, 명제와 다른 유형 간의 실제 구별이 도입되지 않았기 때문에 그 의미는 불분명하다. 나중에 J-소거자라는 이름을 얻게 되는 것이 있지만 아직 이름이 없다(pp. 94–95 참조). 이 이론에는 V0, ..., Vn, ...와 같은 무한한 전체 시퀀스가 있다. 이 전체는 예측적이고, 러셀 스타일이며, 누적되지 않는다. 사실, p. 115의 따름정리 3.10은 A∈Vm이고 B∈Vn이 A와 B가 변환 가능하면 m=n이라고 말한다.
MLTT79는 1979년에 발표되었고 1982년에 출판되었다. 이 논문에서 마르틴뢰프는 종속 유형 이론의 네 가지 기본 판단 유형을 도입했는데, 이는 그 이후 이러한 시스템의 메타 이론 연구에서 기본이 되었다. 그는 또한 컨텍스트를 별도의 개념으로 도입했다(p. 161 참조). J-소거자(MLTT73에도 나타났지만 그때는 이 이름이 없었다)를 가진 동일성 유형이 있었지만, 이론을 "외연적"으로 만드는 규칙도 있었다(p. 169). W-유형도 있었다. 누적되는 예측적 전체의 무한 시퀀스가 있었다.
비블리오폴리스(Bibliopolis): 1984년 비블리오폴리스 책에는 유형 이론에 대한 논의가 있지만, 다소 개방적이며 특정 선택 집합을 나타내는 것 같지 않으므로 그와 관련된 특정 유형 이론은 없다.
컨테이너 (추상 자료형)
컴퓨터 과학에서 컨테이너(container)는 다른 객체들의 클래스 또는 자료 구조의 인스턴스이다. 즉, 특정 접근 규칙을 따르는 조직화된 방식으로 객체를 저장한다.
컨테이너의 크기는 컨테이너가 포함하는 객체(요소)의 수에 따라 달라진다. 다양한 컨테이너 유형의 하위(상속된) 구현은 크기, 복잡성 및 언어 유형에 따라 달라질 수 있지만, 많은 경우 주어진 시나리오에 맞는 올바른 구현을 선택할 수 있는 유연성을 제공한다.
컨테이너 자료 구조는 많은 종류의 프로그래밍 언어에서 흔히 사용된다.
컨테이너 (추상 자료형) 기능 및 속성
컨테이너는 다음 세 가지 속성으로 특징지을 수 있다.
컨테이너 클래스는 다음을 수행하기 위한 CRUD와 유사한 메서드를 구현할 것으로 예상된다.
컨테이너는 때때로 반복자와 함께 구현된다.
컨테이너 (추상 자료형) 종류
컨테이너는 단일 값 컨테이너 또는 연관 컨테이너로 분류될 수 있다.
단일 값 컨테이너는 각 객체를 독립적으로 저장한다. 객체는 직접, 언어 루프 구조(예: For 루프) 또는 반복자로 접근할 수 있다.
연관 컨테이너는 키-값 쌍으로 구성된 연관 배열, 맵 또는 딕셔너리를 사용하며, 각 키는 컨테이너에 최대 한 번 나타난다. 키는 컨테이너에 저장되어 있는 경우 값인 객체를 찾는 데 사용된다. 연관 컨테이너는 프로그래밍 언어에서 클래스 템플릿으로 사용된다.
컨테이너 추상 자료형은 다음을 포함한다.
이러한 추상 유형을 구현하는 데 사용되는 일반적인 자료 구조는 다음을 포함한다.
컨테이너 (추상 자료형) 그래픽 컨테이너
위젯 툴킷은 또한 창, 패널과 같은 다른 위젯을 그룹화하는 특수 위젯인 컨테이너를 사용한다. 그래픽 속성 외에도 컨테이너 클래스와 동일한 유형의 동작을 가지는데, 이는 자식 위젯 목록을 유지하고 자식 중에서 위젯을 추가, 제거 또는 검색할 수 있도록 하기 때문이다.
컨테이너 (추상 자료형) 정적 타입 언어에서
컨테이너 추상화는 타입 시스템에 관계없이 거의 모든 프로그래밍 언어로 작성할 수 있다.(p. 273) 그러나 강한 타입 객체 지향 프로그래밍 언어에서는 개발자가 재사용 가능한 동종 컨테이너를 작성하는 것이 다소 복잡할 수 있다.
요소 유형의 차이로 인해 각 요소 유형에 대한 컨테이너 컬렉션을 작성하고 유지하는 지루한 과정이 발생한다.
많은 요소 유형(예: 정수 또는 부동 소수점 숫자)은 차지하는 메모리 크기와 의미론적 의미로 인해 본질적으로 서로 호환되지 않으므로 다른 컨테이너가 필요하다(물론 상호 호환되거나 변환 가능한 경우는 제외). 최신 프로그래밍 언어는 이 문제를 해결하는 데 도움이 되는 다양한 접근 방식을 제공한다.
컨테이너 (추상 자료형) 정적 타입 언어에서
범용 기본 타입
다른 어떤 타입으로든 범용적으로 할당 가능한 타입(예: 루트 객체 클래스).
다운캐스팅;
클래스 대체
위의 세 가지 접근 방식은 약한 타입 언어에 사용되며, 일반적으로 타입 간에 공유되는 상속과 다형성을 의미한다.
공용체 (C/C++ 언어)
다른 데이터 크기의 타입을 저장할 수 있다. 그러나 검색 시 공용체에 어떤 타입이 저장되어 있는지 확인하기 어렵고 신중하게 따라야 한다.
형 변환
템플릿 또는 제네릭
재사용성과 타입 안전성을 보장한다. 역상속으로 생각할 수 있다. 그러나 이 접근 방식은 템플릿 특수화를 구현해야 할 수 있는데, 타입이 메서드에서 다르다는 점을 고려할 때 시간이 많이 소요되는 과정으로 알려져 있다.
구미타니촌
구미타니촌(일본어: 久美谷村)은 일본 교토부 구마노군에 설치되었던 촌이다. 현재의 교탄고시의 일부에 해당한다.
메타클래스
객체 지향 프로그래밍에서 메타클래스는 그 인스턴스가 클래스 자체인 클래스이다. 객체의 동작을 정의하는 일반적인 클래스와 달리, 메타클래스는 클래스 및 해당 인스턴스의 동작을 지정한다. 모든 객체 지향 프로그래밍 언어가 메타클래스 개념을 지원하는 것은 아니다. 지원하는 언어의 경우 메타클래스가 클래스 동작에 대해 가지는 제어의 정도가 다양하다. 메타클래스는 종종 클래스를 일급 객체로 취급하여 구현되며, 메타클래스는 이러한 클래스를 생성하고 관리하는 객체가 된다. 각 프로그래밍 언어는 고유한 메타객체 프로토콜을 따르는데, 이는 객체, 클래스 및 메타클래스 간의 상호 작용을 결정하는 규칙이다. 메타클래스는 코드 생성을 자동화하고 프레임워크 개발을 향상시키기 위해 활용된다.
메타클래스 파이썬 예시
파이썬에서 내장 클래스 type은 메타클래스이다. 다음 간단한 파이썬 클래스를 살펴보자.
실행 시 Car 자체는 type의 인스턴스이다. 위에 보이는 Car 클래스의 소스 코드에는 Car 객체의 바이트 크기, 메모리에서의 이진 레이아웃, 할당 방법, Car가 생성될 때마다 __init__ 메서드가 자동으로 호출되는 등의 세부 사항이 포함되어 있지 않다. 이러한 세부 사항은 새 Car 객체가 생성될 때뿐만 아니라 Car의 어떤 속성에 접근할 때마다 적용된다. 메타클래스가 없는 언어에서는 이러한 세부 사항이 언어 사양에 의해 정의되며 재정의할 수 없다. 파이썬에서는 메타클래스인 type이 Car의 동작에 대한 이러한 세부 사항을 제어한다. type 대신 다른 메타클래스를 사용하여 재정의할 수 있다.
메타클래스 파이썬 예시
위 예시에는 make, model, year, color의 네 가지 속성과 관련된 일부 중복 코드가 포함되어 있다. 사용자 지정 메타클래스를 사용하여 이러한 중복을 일부 제거할 수 있다. 파이썬에서 메타클래스는 type의 서브클래스로 정의하는 것이 가장 쉽다.
이 메타클래스는 객체 생성만 재정의한다. 클래스 및 객체 동작의 다른 모든 측면은 여전히 type에 의해 처리된다.
이제 Car 클래스는 이 메타클래스를 사용하도록 다시 작성할 수 있다. 파이썬 3에서는 클래스 정의에 "키워드 인수" metaclass를 제공하여 이를 수행한다.
결과 객체 Car는 평소와 같이 인스턴스화할 수 있지만, 원하는 수의 키워드 인수를 포함할 수 있다.
메타클래스 스몰토크-80에서
스몰토크에서는 모든 것이 객체이다. 또한, 스몰토크는 클래스 기반 시스템으로, 모든 객체는 해당 객체의 구조(즉, 객체가 가지는 인스턴스 변수)와 객체가 이해하는 메시지를 정의하는 클래스를 가진다. 이는 스몰토크에서 클래스가 객체이며, 따라서 클래스는 클래스(메타클래스라고 불림)의 인스턴스여야 한다는 것을 의미한다.
예를 들어, 자동차 객체 c는 클래스 Car의 인스턴스이다. 차례로, 클래스 Car는 다시 객체이며, 그 자체로 Car class라고 불리는 Car의 메타클래스의 인스턴스이다. 메타클래스 이름의 공백에 유의하라. 메타클래스의 이름은 평가될 때 메타클래스 객체를 결과로 내놓는 스몰토크 표현식이다. 따라서 Car class를 평가하면 Car의 메타클래스 객체가 생성되며, 그 이름은 Car class이다 (Car class name을 평가하여 Car의 메타클래스 이름을 반환하는 것으로 이를 확인할 수 있다).
메타클래스 스몰토크-80에서
클래스 메서드는 인스턴스 메서드가 클래스에 속하는 것처럼 실제로 메타클래스에 속한다. 객체 2에 메시지가 전송될 때, 메서드 검색은 Integer에서 시작된다. 찾을 수 없으면 슈퍼클래스 체인을 따라 올라가서 찾든 못 찾든 Object에서 멈춘다.
Integer에 메시지가 전송될 때 메서드 검색은 Integer class에서 시작되어 슈퍼클래스 체인을 따라 Object class로 진행된다. 지금까지 메타클래스 상속 체인이 클래스 상속 체인을 정확히 따르고 있음에 유의하라. 그러나 Object class가 Class의 서브클래스이므로 메타클래스 체인은 더 확장된다. 모든 메타클래스는 Class의 서브클래스이다.
초기 스몰토크에서는 Class라는 메타클래스가 하나뿐이었다. 이는 모든 클래스가 동일한 메서드, 특히 새 객체를 생성하는 메서드, 즉 new를 가진다는 것을 의미했다. 클래스가 고유한 메서드와 고유한 인스턴스 변수(클래스 인스턴스 변수라고 하며 클래스 변수와 혼동해서는 안 됨)를 가질 수 있도록 스몰토크-80은 각 클래스 C에 대해 고유한 메타클래스 C class를 도입했다. 이는 각 메타클래스가 사실상 싱글턴 클래스임을 의미한다.
메타클래스 스몰토크-80에서
메타클래스들이 서로 다르게 동작해야 한다는 요구 사항이 없으므로, 모든 메타클래스는 Metaclass라는 단 하나의 클래스의 인스턴스이다. Metaclass의 메타클래스는 Metaclass class라고 불리며, 이는 다시 클래스 Metaclass의 인스턴스이다.
스몰토크-80에서 모든 클래스(Object 제외)는 슈퍼클래스를 가진다. 모든 메타클래스의 추상 슈퍼클래스는 Class이며, 이는 클래스의 일반적인 특성을 기술한다.
메타클래스에 대한 슈퍼클래스 계층은 클래스에 대한 계층과 평행을 이루지만, Object 클래스는 예외이다. 모든 메타클래스는 Class의 서브클래스이므로:
결합 쌍둥이처럼 클래스와 메타클래스는 함께 탄생한다. Metaclass는 결합된 클래스를 가리키는 인스턴스 변수 thisClass를 가진다.
일반적인 스몰토크 클래스 브라우저는 메타클래스를 별도의 클래스로 표시하지 않는다. 대신 클래스 브라우저는 클래스와 해당 메타클래스를 동시에 편집할 수 있도록 한다.
메타클래스 스몰토크-80에서
메타클래스 계층의 클래스 이름은 동일한 이름의 개념과 쉽게 혼동될 수 있다. 예를 들어:
네 개의 클래스는 새 클래스를 설명하는 기능을 제공한다. 이들의 상속 계층 (Object에서 시작)과 제공하는 주요 기능은 다음과 같다.
Object - 클래스 접근과 같이 모든 객체에 공통적인 기본 동작
Behavior - 메서드 컴파일 및 객체 생성/실행을 위한 최소 상태
ClassDescription (추상 클래스) - 클래스/변수 이름 지정, 주석
Class - 슈퍼클래스와 유사하고 더 포괄적인 기능
Metaclass - 클래스 변수 초기화, 인스턴스 생성 메시지
메타클래스 루비에서
루비는 eigenclass를 도입하고 Metaclass 클래스를 제거하며 클래스-오브 맵을 (재)정의함으로써 스몰토크-80 메타클래스 개념을 순화한다.

변경 사항은 다음과 같이 도식화할 수 있다:
특히 스몰토크의 암시적 메타클래스와 루비의 클래스 eigenclass 간의 대응 관계에 주목하라.
루비 eigenclass 모델은 암시적 메타클래스 개념을 완전히 통일시킨다. 즉, 모든 객체 x는 x의 eigenclass라고 불리는 고유한 메타 객체를 가지며, 이는 x보다 한 단계 더 높은 메타 수준이다. "고차" eigenclass는 일반적으로 순전히 개념적으로 존재한다. 대부분의 루비 프로그램에서는 어떤 메서드도 포함하지 않거나 다른 데이터를 저장하지 않는다.
메타클래스 루비에서
다음 다이어그램은 스몰토크-80과 루비의 핵심 구조 샘플을 비교하여 보여준다.
두 언어 모두에서 구조는 순환 객체(즉, 파란색 또는 녹색 링크의 조합으로 형성된 주기에서 나타나는 객체)를 포함하는 내장 부분과 클래스 A와 B, 그리고 말단 객체 u와 v의 네 가지 명시적 객체를 포함하는 사용자 부분으로 구성된다.
녹색 링크는 상속의 자식→부모 관계(암시적인 상향 방향 포함)를 보여주고, 파란색 링크는 인스턴스화의 보완적인 멤버→컨테이너 관계를 보여준다(x에서 나가는 파란색 링크는 x에서 메서드가 호출될 때 메서드 조회를 시작하는 x의 최소 실제 컨테이너를 가리킨다). 회색 노드는 eigenclass(스몰토크-80의 경우 암시적 메타클래스)를 나타낸다.
오른쪽 다이어그램은 루비의 eigenclass에 대한 느긋한 계산법 그림도 제공한다. v 객체는 v에 싱글턴 메서드를 추가한 결과로 eigenclass가 평가(할당)될 수 있다.
메타클래스 루비에서
루비의 class라는 인트로스펙션 메서드에 따르면,
모든 클래스(및 모든 eigenclass)의 클래스는
항상 Class 클래스이다(다이어그램에서 c로 표시됨).
Class와 Struct만이 클래스를 인스턴스로 가지는 클래스이다. Class의 서브클래싱은 허용되지 않는다.

메타클래스의 표준 정의를 따르면 Class와 Struct가 루비의 유일한 메타클래스라고 결론 내릴 수 있다.
이는 스몰토크-80에서 모든 클래스가 자체 메타클래스를 가지므로, 루비와 스몰토크 간의 대응 관계와 모순되는 것처럼 보인다.
이러한 불일치는 루비와 스몰토크의 class 인트로스펙션 메서드 간의 불일치에 기반한다. x ↦ x.class 맵이 말단 객체에서는 일치하지만, 클래스에 대한 제한에서는 다르다. 이미 위에서 언급했듯이, 클래스 x의 경우 루비 표현식 x.class는 항상 Class로 평가된다. 스몰토크-80에서는 x가 클래스이면 x class 표현식은
루비의 x.singleton_class에 해당하며,
이는 x의 eigenclass로 평가된다.
메타클래스 오브젝티브-C에서
오브젝티브-C의 메타클래스는 스몰토크-80의 메타클래스와 거의 동일하다. 이는 오브젝티브-C가 스몰토크에서 많은 것을 차용했기 때문에 놀라운 일이 아니다. 스몰토크와 마찬가지로 오브젝티브-C에서는 인스턴스 변수와 메서드가 객체의 클래스에 의해 정의된다. 클래스는 객체이므로 메타클래스의 인스턴스이다.
스몰토크와 마찬가지로 오브젝티브-C에서는 클래스 메서드가 단순히 클래스 객체에서 호출되는 메서드이므로, 클래스의 클래스 메서드는 해당 메타클래스에서 인스턴스 메서드로 정의되어야 한다. 다른 클래스는 다른 클래스 메서드 집합을 가질 수 있으므로, 각 클래스는 자체적인 별도의 메타클래스를 가져야 한다. 클래스와 메타클래스는 항상 쌍으로 생성된다. 런타임에는 클래스-메타클래스 쌍을 각각 생성하고 등록하는 함수 objc_allocateClassPair() 및 objc_registerClassPair()가 있다.
메타클래스에 대한 이름은 없지만, 모든 클래스 객체에 대한 포인터는 제네릭 타입 Class로 참조될 수 있다(모든 객체에 대한 포인터에 사용되는 타입 id와 유사).
메타클래스 오브젝티브-C에서
클래스 메서드는 상속을 통해 상속되므로 스몰토크와 마찬가지로 메타클래스는 클래스 계층과 평행한 상속 스키마를 따라야 한다(예: 클래스 A의 부모 클래스가 클래스 B인 경우, A의 메타클래스 부모 클래스는 B의 메타클래스이다). 루트 클래스는 예외이다.
스몰토크와 달리 루트 클래스의 메타클래스는 루트 클래스(일반적으로 코코아 프레임워크를 사용하는 NSObject) 자체로부터 상속받는다. 이는 모든 클래스 객체가 궁극적으로 루트 클래스의 인스턴스임을 보장하여, 객체 자체에 유용한 유틸리티 메서드인 루트 클래스의 인스턴스 메서드를 클래스 객체에 사용할 수 있도록 한다.
메타클래스 객체는 다르게 동작하지 않으므로(메타클래스에 클래스 메서드를 추가할 수 없으므로 모든 메타클래스 객체는 동일한 메서드를 가짐), 모두 동일한 클래스, 즉 루트 클래스의 메타클래스(스몰토크와 다름)의 인스턴스이다. 따라서 루트 클래스의 메타클래스는 그 자체의 인스턴스이다. 그 이유는 모든 메타클래스가 루트 클래스로부터 상속받으므로 루트 클래스의 클래스 메서드를 상속받아야 하기 때문이다.
메타클래스 언어 및 도구 지원
다음은 메타클래스를 지원하는 가장 눈에 띄는 프로그래밍 언어들이다.
메타클래스를 지원하는 덜 보편적인 언어로는 OpenJava, OpenC++, OpenAda, CorbaScript, ObjVLisp, Object-Z, MODEL-K, XOTcl, MELDC 등이 있다. 이들 중 몇몇은 1990년대 초반에 만들어졌으며 학술적 관심의 대상이다.
프롤로그의 객체 지향 확장인 Logtalk도 메타클래스를 지원한다.
자원 기술 프레임워크 (RDF)와 통합 모델링 언어 (UML)는 모두 메타클래스를 지원한다.
가와카미촌 (교토부)
가와카미촌(川上村)은 일본 교토부 구마노군에 설치되었던 촌이다. 현재의 교탄고시의 일부에 해당한다.
가이베촌
가이베촌(일본어: 海部村)은 일본 교토부 구마노군에 설치되었던 촌이다. 현재의 교탄고시의 일부에 해당한다.
다촌 (교토부)
다촌(일본어: 田村)은 일본 교토부 구마노군에 설치되었던 촌이다. 현재의 교탄고시의 일부에 해당한다.
간노촌 (교토부)
간노촌(일본어: 神野村)은 일본 교토부 구마노군에 설치되었던 촌이다. 현재의 교탄고시의 일부에 해당한다.
헬퍼 클래스
객체 지향 프로그래밍에서 헬퍼 클래스(Helper class)는 사용되는 애플리케이션이나 클래스의 주요 목표가 아닌 일부 기능을 제공하는 데 도움을 주기 위해 사용된다. 헬퍼 클래스의 인스턴스는 헬퍼 객체라고 불린다 (예를 들어, 위임 패턴에서).
헬퍼 클래스는 종종 초보 프로그래머가 한두 개의 클래스를 만드는 것을 넘어선 후에 초급 프로그래밍 수업에서 생성된다.
유틸리티 클래스는 모든 메서드가 정적이라는 점에서 헬퍼 클래스의 특별한 경우이다. 일반적으로 헬퍼 클래스는 모든 정적 메서드를 가질 필요는 없지만 인스턴스 변수를 가질 수 있다. 헬퍼 클래스의 여러 인스턴스가 존재할 수도 있다.
헬퍼 클래스 예시
이것은 유틸리티 클래스의 예시이기도 하다. 아래는 문자열 객체에 대한 확장 메서드이다.
헬퍼 클래스 헬퍼 클래스의 대안
헬퍼 클래스가 될 함수들은 사용되는 곳 가까이에 배치될 수 있다.
다른 대안은 헬퍼 클래스 매개변수를 필드로 클래스에 래핑하는 것이다. 그 클래스는 가지고 있는 필드와 연결된 비즈니스 도메인에서 이름을 가질 수 있다. 아래 예시는 헬퍼 메서드를 도메인 타입의 메서드로 변환하는 방법을 보여준다:
미나토촌 (교토부)
미나토촌(일본어: 湊村)은 일본 교토부 구마노군에 설치되었던 촌이다. 현재의 교탄고시의 일부에 해당한다.
가미사노촌
가미사노촌(上佐濃村)은 일본 교토부 구마노군에 설치되었던 촌이다. 현재의 교탄고시의 일부에 해당한다.
인터페이스 (객체 지향 프로그래밍)
객체 지향 프로그래밍에서 인터페이스(interface) 또는 프로토콜(protocol) 타입은 클래스의 추상으로 작용하는 자료형이다. 이것은 일련의 메서드 시그니처를 설명하며, 그 구현은 서로 반드시 관련될 필요는 없는 여러 클래스가 제공할 수 있다. 인터페이스에 나열된 메서드를 제공하는 클래스는 인터페이스를 구현한다고 말하거나, 프로토콜을 채택한다고 말한다.
객체가 완전히 캡슐화되면 인터페이스는 다른 객체가 객체에 접근할 수 있는 유일한 방법이다. 예를 들어, 자바에서 Comparable 인터페이스는 구현하는 클래스가 구현해야 하는 compareTo() 메서드를 지정한다. 이는 예를 들어 정렬 메서드가 클래스의 내부 특성에 대해 아무것도 알 필요 없이(이러한 두 객체가 compareTo()를 통해 비교될 수 있다는 점을 제외하고) Comparable 인터페이스를 구현하는 모든 타입의 객체 컬렉션을 정렬할 수 있음을 의미한다.
인터페이스 (객체 지향 프로그래밍) 예시
일부 프로그래밍 언어는 인터페이스에 대한 명시적인 언어 지원을 제공한다: 에이다, C#, D, 다트, 델파이, Go, 자바, 로그토크, 오브젝트 파스칼, 오브젝티브-C, OCaml, PHP, 래킷, Seed7, 스위프트, 파이썬 3.8. C++와 같이 다중 상속을 지원하는 언어에서는 인터페이스가 추상 클래스로 구현된다.
인터페이스 구문 예시는 다음과 같다:
명시적인 지원이 없는 언어에서는 인터페이스가 종종 관례로 존재하며, 이는 덕 타이핑으로 알려져 있다. 예를 들어, 파이썬에서 어떤 클래스든 __iter__ 메서드를 구현하고 컬렉션으로 사용될 수 있다.
하스켈과 같은 언어의 타입 클래스나 ML 및 OCaml의 모듈 시그니처는 인터페이스가 사용되는 많은 용도로 사용된다.
러스트에서는 인터페이스를 트레이트(traits)라고 부른다. 러스트에서 struct는 메서드를 가지지 않고, 대신 struct가 구현하는 메서드를 선언하는 trait를 구현한다.
시모사노촌
시모사노촌(일본어: 下佐濃村)은 일본 교토부 구마노군에 설치되었던 촌이다. 현재의 교탄고시의 일부에 해당한다.
오하라촌 (교토부)
오하라촌(大原村)은 일본 교토부 오타기군에 설치되었던 촌이다. 현재의 교토시 사쿄구의 북동부에 해당한다.
러시아-키르기스스탄 관계
러시아-키르기스스탄 관계는 러시아와 키르기스스탄 양국 간의 관계를 말한다. 러시아는 비슈케크에 대사관을, 오시에 총영사관을 두고 있으며, 키르기스스탄은 모스크바에 대사관을, 예카테린부르크에 총영사관을, 노보시비르스크에 부영사관을 두고 있다.
러시아-키르기스스탄 관계 역사
1860년대에 옛 카라키르기스 칸국은 러시아에 의해 정복되었으며, 1916년에는 중앙아시아 전역에서 일어난 반란의 일환으로 키르기스인들이 러시아의 지배에 맞서 봉기하였다.
1991년 러시아 대통령으로 선출된 보리스 옐친은 첫 해외 순방지로 키르기스스탄을 방문하였다.
당시 키르기스스탄 대통령 아스카르 아카예프는 카자흐스탄의 누르술탄 나자르바예프 대통령이 1994년 6월에 제안한 유라시아 연합과 같은 보다 직접적인 형태의 재통합 구상에 대해 매우 긍정적인 입장을 보였다. 그는 중립 정책을 대폭 수정하여, 키르기스스탄과 중국의 국경 통제권을 러시아 국경수비대에 위임하기도 하였는데, 이는 재통합을 향한 또 다른 움직임이었다.
러시아-키르기스스탄 관계 역사
키르기스스탄 정부는 러시아의 경제적 보호를 요청할 수밖에 없었다. 아카예프 대통령은 국제적인 "후원자"를 찾기 위한 노력을 기울였으나, 실질적인 지원보다는 국제 사회의 호의적인 태도만을 얻는 데 그쳤다.
알마즈베크 아탐바예프 대통령은 재임 기간 동안 스스로를 친러 정치인으로 거듭 강조하였다. 그는 키르기스스탄의 관세동맹 가입을 발표하고, 2014년에는 미국 제376항공원정비행단의 철수를 성사시켰으며, 러시아 연방과의 경제 관계 강화를 지속적으로 주장하였다.
러시아-키르기스스탄 관계 이주민 관계
러시아는 키르기스스탄에 대한 지원을 구소련 국가들이었던 국가들, 즉 "근접 해외"에서 영향력을 확대하려는 새로운 대외 정책의 성공적인 선례로 보고 있다. 러시아는 신생 독립국들로부터 러시아인들이 대규모로 유입되는 상황을 원치 않았으며, 실제로 1992년부터 1995년 사이 약 200만 명의 러시아계 주민이 러시아로 귀환하였다. 반면, 아스카르 아카예프 대통령은 자국 내 러시아계 인구의 유출을 막을 방안을 모색했는데, 이로 인해 의사, 교사, 기술자 등 전문 인력의 부족 현상이 심화되고 있었기 때문이다. 그러나 인구 조사 자료에 따르면, 2020년 기준 키르기스스탄 내 러시아계 인구는 1989년에 비해 약 3분의 1 수준으로 감소하였다.
2023년, 키르기스스탄은 자국에 망명 중인 러시아 반전 인사들의 개인정보를 러시아 정부와 공유하는 데 동의하였다. 같은 해 6월에는 러시아의 반전 활동가 알렉세이 로즈코프를 러시아로 송환하였다.
러시아-키르기스스탄 관계 이주민 관계
2025년 2월 1일 기준, 키르기스스탄은 총 6,305개의 일자리 공석이 발생할 정도로 심각한 노동력 부족을 겪고 있으며, 이는 주로 블루칼라 직종에서 나타났다. 공식 실업률은 1.8%였지만, 약 69,300명이 고용 서비스 기관에 구직 등록을 한 상태였다. 지난 30여 년간 많은 키르기스스탄 국민이 러시아에서 노동자로 일해왔으나, 최근에는 러시아의 경기 침체, 규제 강화, 반이민 정서 확산 등의 이유로 귀국 이주가 증가하는 추세이다. 이에 따라 키르기스스탄 정부는 귀환 노동자들을 수용하기 위해 새로운 산업 기업체 설립에 주력하고 있다.
러시아-키르기스스탄 관계 민족 정책
이러한 이유들로 인해, 키르기스 민족주의자들과 다른 독립 성향의 정치인들의 반대에도 불구하고, 1995년 아카예프는 키르기스어를 유일한 공용어로 규정한 헌법 조항을 재검토해 달라는 보리스 옐친 러시아 대통령의 요청을 수용하였다. 현재 헌법에서는 키르기스어가 국가 언어로, 러시아어는 "공용어"로 명시되어 있다.
나베야우에노촌
나베야우에노촌(鍋屋上野村)은 일본 아이치현 아이치군에 설치되었던 촌이다. 현재의 나고야시 지쿠사구의 일부에 해당한다.
야마구치촌 (아이치현)
야마구치촌(山口村)은 일본 아이치현 아이치군에 설치되었던 촌이다. 현재의 세토시의 일부에 해당한다.
나와촌 (아이치현)
나와촌(名和村)은 일본 아이치현 지타군에 설치되었던 촌이다. 현재의 도카이시의 북부에 해당한다.
에스토니아의 대외 관계
에스토니아는 1918년 2월 24일, 러시아 제국으로부터 독립을 얻었고, 국제연맹의 회원국 자격을 통해 많은 나라와 외교 관계를 수립하였다. 1940년 에스토니아가 강제로 소련에 편입된 것은 국제 사회에서 일반적으로 인정받지 못하였으며, 에스토니아 외교 서비스는 일부 나라에서 계속 활동하였다. 소련으로부터 독립을 회복한 후, 러시아는 에스토니아 독립을 재인정한 최초 국가들 중 하나였다(가장 먼저 한 국가는 1991년 8월 22일, 아이슬란드였다). 에스토니아가 독립을 되찾은 직후의 즉각적인 우선 과제는 러시아 (구소련) 군대가 에스토니아 영토에서 철수하는 것이었다. 1994년 8월에 이것이 완료되었다. 그러나 1999년에 에스토니아와 체결된 국경 조약을 러시아가 비준하지 않기로 결정함에 따라 모스크바와의 관계는 계속 긴장 상태를 유지하고 있다.
에스토니아의 대외 관계 각국별 대외 관계
에스토니아와 대한민국 간의 외교 관계 수립은 1991년 9월 17일에 시작되었다.
에스토니아는 서울에 대사관을 두고 있다.
에스토니아는 한반도에서 대한민국을 유일한 합법 정부로 인정하고 있다.
에스토니아는 리가에 대사관을 두고 있으며, 라트비아는 탈린에 대사관을 두고 있다.
두 국가는 343km에 달하는 국경을 공유하고 있다.
양국은 소련 시절의 공통된 역사를 바탕으로 인접 국가로서 긴밀한 관계를 유지하고 있다.
러시아는 1920년 2월 2일, 타르투 조약을 통해 에스토니아를 인정하였다. 러시아-에스토니아 관계는 1991년 1월 양국 지도자인 러시아의 보리스 옐친과 에스토니아의 아르놀드 뤼텔이 탈린에서 만나 소련으로부터의 에스토니아 독립을 예상하여 두 나라 관계에 관한 조약을 체결하면서 재수립되었다. 이 조약은 당시 에스토니아에 영구 거주하는 모든 주민이 자유롭게 시민권을 선택할 권리를 보장하였다.
에스토니아의 대외 관계 각국별 대외 관계
러시아는 1991년 8월 24일, 소련 쿠데타 실패 이후 에스토니아를 재인정한 최초 국가들 중 하나였다. 소련은 1991년 9월 6일, 에스토니아의 독립을 인정하였다. 1991년 1월, 옐친 대통령이 발트 3국에 연대감을 처음 표명한 이후 에스토니아와 옐친 정부 간의 관계는 약화되었다. 러시아군의 발트 지방 철수 문제와 1940년부터 1991년 사이에 에스토니아에 정착한 이들과 그 후손들에게 자동 시민권을 부여하지 않은 에스토니아의 정책이 주요 쟁점으로 남아 있었다.
에스토니아는 빌뉴스에 대사관을 두고 있으며, 리투아니아는 탈린에 대사관을 두고 있다.
두 나라는 발트 지방에 위치해 있으며 NATO와 EU의 정회원국이다.
핀란드는 1920년 6월 20일, 에스토니아를 최초로 승인하였다.
에스토니아의 대외 관계 각국별 대외 관계
현재 핀란드는 탈린에 대사관과 타르투에 명예영사관을 두고 있으며, 에스토니아는 헬싱키에 대사관을, 코트카, 마리에함, 오울루, 탐페레, 투르쿠, 바사에 명예영사관을 두고 있다.
양국은 지리적, 문화적으로 밀접한 관계를 유지해왔으며, 발트해 국가 이사회(CBSS), 유럽 연합(EU), 북대서양 조약 기구(NATO)의 정회원국으로서 긴밀히 협력하고 있다.
또한, 에스토니아와 핀란드는 오스트레일리아 캔버라에 공동 대사관을 운영하고 있으며,
에스토니아는 핀란드의 NATO 가입 신청을 전폭적으로 지지하였고, 이는 2023년 4월 4일, 핀란드의 정식 가입으로 이어졌다.
에스토니아는 워싱턴 D.C.에 대사관을, 뉴욕과 샌프란시스코에 총영사관을 두고 있다.
미국은 탈린에 대사관을 두고 있다.
빈스 벨라스케즈
빈센트 존 벨라스케즈(Vincent John Velasquez, 1992년 6월 7일 ~ )는 미국의 야구 선수이자, 전 KBO 리그 롯데 자이언츠의 투수이다.
빈스 벨라스케즈 미국 프로야구 시절
2010년에 휴스턴 애스트로스에 입단하였다.
빈스 벨라스케즈 한국 프로야구 시절
2025년 8월 7일에 터커 데이비드슨을 대체할 외국인 투수로 영입되었으며 시즌 도중 상무 입대한 투수 진승현이 단 26번을 선택했는데 이 등번호는 2025년 5월 14일 찰리 반즈 대체 외국인 투수로 영입된 알렉 감보아 등번호 물망에 거론됐다.
1991년 이라크에 대한 군사력 사용 승인 결의안
이라크에 대한 군사력 사용 승인 결의안(영어: Authorization for Use of Military Force Against Iraq Resolution, 약칭)(Pub.L. 102–1) 또는 유엔 안전 보장 이사회 결의 제678호에 따른 미군 사용을 승인하는 공동 결의안(영어: Joint Resolution to authorize the use of United States Armed Forces pursuant to United Nations Security Council Resolution 678, 공식 명칭)은 미국 의회가 걸프 전쟁에서 미군 사용을 승인한 1991년 1월 14일의 결의안이다.
조지 H. W. 부시 대통령은 1990년 11월 29일 유엔 유엔 안전 보장 이사회 결의 제678호에 명시된 이라크에 대한 1991년 1월 15일 시한을 일주일 앞둔 1991년 1월 8일에 의회 공동 결의안을 요청했다. 부시 대통령은 이라크의 1990년 8월 2일 쿠웨이트 침공에 대응하여 지난 5개월 동안 의회 승인 없이 50만 명 이상의 미군을 사우디아라비아와 페르시아만 지역에 배치했다.
1991년 이라크에 대한 군사력 사용 승인 결의안 입법 연혁
상원 공동 결의안 2는 1991년 1월 12일 미국 상원에서 52대 47로 승인되었다.
1991년 1월 12일 토요일 오후 2시 44분(EST)에 52대 47로 승인되었다.
민주당: 10대 45. 56명의 민주당 상원의원 중 10명(18%)이 결의안에 찬성했다: 존 브레오, 리처드 브라이언, 앨 고어, 밥 그레이엄, 하웰 헤플린, 베넷 존스턴, 조 리버먼, 해리 리드, 척 롭, 리처드 셸비
공화당: 42대 2. 척 그래슬리와 마크 햇필드는 결의안에 반대했다.
하원 공동 결의안 77은 1991년 1월 12일 미국 하원에서 250대 183으로 승인되었다.
H.J.Res. 77은 하원 소수당 원내대표인 밥 미셸 (R)이 31명의 공동 발의자(공화당 14명, 민주당 17명)와 함께 발의했다 (민주당은: 개리 애커먼, 레스 애스핀, 하워드 버먼, 단테 파스첼, 톰 랜토스, 그렉 러플린 (R), 멜 레빈, 마릴린 로이드, 데이브 맥커디, 찰스 토머스 맥밀런, 길레스피 V. 몽고메리, 존 머사, 아이크 스켈턴, 스티븐 J. 솔라즈, 찰스 스텐홀름, 로버트 토리첼리, 해롤드 볼크머).
1991년 이라크에 대한 군사력 사용 승인 결의안 입법 연혁
승인: 1991년 1월 12일 토요일 오후 3시 51분(EST)에 250대 183.
민주당: 86대 179. 267명의 민주당 의원 중 86명(32%)이 결의안에 찬성했다.
머빈 M. 다이말리와 모 유돌은 병으로 투표하지 못했지만, 결의안에 반대했을 것이다.
공화당: 164대 3. 실비오 콘테, 코니 모렐라, 프랭크 릭스 의원은 결의안에 반대했다.
무소속: 0대 1. 버니 샌더스 의원 (I)은 결의안에 반대했다.
1991년 이라크에 대한 군사력 사용 승인 결의안 폐지
2021년 6월 29일, 미국 하원은 1957년 승인과 함께 이 승인안을 폐지하기 위해 366대 46으로 투표했다. 2023년 3월 16일, 팀 케인과 토드 영이 발의한 1991년 및 2002년 AUMF 폐지 법안이 상원에서 68대 27로 통과되었다.