heegyu/kowiki-sentences huggingface dataset:
를 만족시키는 이항관계다.
이항관계 formula_1의 정의역, 치역, 역에 대하여 다음이 성립한다.
코시는 다음을 가리킨다.
코시 열(Cauchy列, )은 해석학에서 점 사이의 거리가 서로 점점 가까워지는 수열이다.
프랑스의 수학자인 오귀스탱 루이 코시에서 이름을 따서 명명되었다.
보다 정확히 말하면 작은 양수의 거리가 주어진 경우에 수열의 유한한 수의 원소를 제외한 모든 원소가 서로 주어진 거리보다 작다.
각 항이 "이전" 항에 임의로 근접하는 것은 충분하지 않다.
예를 들어 자연수의 제곱근 수열은 다음과 같다.
연속 항은 다음과 같이 임의로 서로 가까워진다.
그러나 지수 의 값이 증가함에 따라 항은 임의로 커지게 된다.
따라서 모든 지수 과 거리 에 대해 과 같이 충분히 큰 지수 이 존재한다.
결과적으로, 얼마나 멀리 가더라도 수열의 나머지 항은 서로 가까워지지 않으므로 수열은 코시 열이 아니다.
코시 열의 효용성은 완비 거리 공간(모든 그러한 수열이 극한으로 수렴한다고 알려진 곳)에서 수열의 수렴 기준이 극한을 사용하는 정의와는 다르게 수열의 항 자체에만 의존하는 점에 있다.
이는 이론 및 응용 알고리즘에서 종종 이용되는데 반복적 프로세스는 반복법으로 구성된 코시 열을 생성하기 위해 상대적으로 쉽게 보여질 수 있으며 따라서 종료와 같은 논리적 조건을 충족시킨다.
보다 추상적인 균등 공간에서 코시 열은 코시 필터와 코시 그물의 형태로 일반화 할 수 있다.
모든 양수인 "ε"에 대해 양의 정수 "N"이 있어서, 모든 자연수 "m", "n" &gt; "N"이 다음 조건을 만족한다면, 이 수열을 코시 열이라고 부른다.
여기서 수직 막대는 절댓값을 나타낸다.
비슷한 방법으로 유리수나 복소수의 코시 열을 정의할 수 있다.
코시는 이러한 조건을 무한대인 "m", "n"의 모든 쌍에 대해 formula_5이 무한소가 되는 것으로 공식화했다.
실수 "r"의 경우에는 "r"의 잘린 소수 확장 수열은 코시 열을 형성한다.
코시 수렴 계수가 있는 모든 수열은 코시 열이다.
코시 열을 위한 계수의 존재는 자연수의 순서적 특성에서 비롯된다 (formula_10는 코시 열의 정의에서 가능한 가장 작은 formula_11이 되도록 하여 formula_12을 formula_13로 한다). 또한 계수의 존재는 선택 공리의 약한 형태인 의존적 선택 공리로부터 따르며 또한 AC00이라고 불리는 훨씬 더 약한 조건으로부터 온다. "정규 코시 열"은 주어진 코시 수렴 계수(보통 formula_14 또는 formula_15)의 수열이다.
코시 수렴 계수를 갖는 모든 코시 열은 정규 코시 열과 동일하다.
이것은 어떠한 형태의 선택 공리도 사용하지 않고 증명될 수 있다.
코시 수렴 계수는 어떠한 형태의 선택도 사용하지 않으려는 구성주의 수학자들에 의해 사용된다.
코시 수렴 계수를 사용하면 구성주의 해석학에서 정의와 이론을 모두 단순화할 수 있다.
코시 열의 정의는 거리 개념만 포함하므로 이를 거리 공간 "X"로 일반화하는 것이 간단하다.
일반적으로 주어진 거리 공간 의 수열은 이다.
코시 열()은 모든 양의 실수 인 경우 모든 양의 정수 에 대해 거리인 양의 정수 이 있다는 것을 의미한다.
대략적으로 말해서 수열의 항은 "X"에 극한이 있어야 한다는 것을 암시하는 방식으로 점점 더 가까워지고 있다.
그럼에도 불구하고 그러한 극한은 항상 "X" 내에 존재하는 것은 아니다.
모든 코시 열이 공간에서 수렴하는 공간의 속성을 완비성이라고 하며 아래에 자세히 설명되어 있다.
모든 코시 열이 "X"의 원소로 수렴되는 거리 공간("X", "d")을 완비 거리 공간이라고 한다.
실수는 일반적인 절댓값에 의해 유도된 거리 아래에서 완비이며 실수의 구성 가운데 유리수의 코시 열을 포함한다.
이 구조에서 특정한 꼬리 행동을 가진 유리수의 코시 열의 각 동치류, 즉 서로 임의로 가까워지는 수열의 모임은 실수이다.
다소 다른 유형의 예는 이산 위상을 가진 거리 공간 "X"이다. "X" 원소의 모든 코시 열은 어떤 지점 이후에는 값이 일정해야 하며, 결국 반복해서 등장하는 값으로 수렴한다.
예시가 아닌 경우: 유리수.
유리수 Q는 일반적인 거리에서 완비가 아니다.
무리수 R에 수렴하는 일련의 유리수들이 있는데 이들은 Q에 극한이 없는 코시 열들이다.
실수 "x"가 무리수인 경우에 "n"번째 항이 "x"의 소수점 확장에서 "n"번째 항이 잘린 소수점 자리인 수열("x""n")은 무리수인 극한 "x"를 가진 유리수의 코시열을 제공한다.
무리수는 확실히 R에 존재한다.
예시가 아닌 경우: 열린 구간.
R에 보통 거리가 있는 실수의 집합에서 열린 구간 formula_22는 완비 공간이 아니다.
볼차노-바이어슈트라스 정리, 하이네-보렐 정리는 이들의 마지막 2가지 특성과 밀접하게 관련된 실수의 완비성에 대한 표준 증거를 제시한다.
실수의 코시 열은 유계이고 볼차노-바이어슈트라스 정리에 따라 수렴하는 부분 수열을 갖기 때문에 그 자체를 스스로 수렴한다.
실수의 완전성에 대한 이 증거는 암시적으로 최소 상계 성질을 이용한다.
위에서 언급한 유리수의 완성으로서 실수를 구성하는 대안적 접근 방식은 실수의 완전성을 자율적으로 만든다.
코시 열로 작업하고 완비성을 사용할 수 있는 이점을 보여주는 표준 삽화 가운데 하나는 무한히 연속되는 실수의 합계(또는 보다 일반적인 노름 공간 또는 바나흐 공간의 원소)를 고려하여 제공된다.
이러한 급수 formula_30은 부분합 formula_31의 수열이 수렴하는 경우에만 수렴하는 것으로 간주된다.
양수 "p" &gt; "q"인 경우에는 formula_33이라는 등식을 통해 부분합의 수열이 코시 열인지 아닌지를 판단할 수 있다.
코시 열의 위상 벡터 공간 정의는 연속적인 "추출" 연산만 있으면 되기 때문에 위상군의 맥락에서 설명될 수 있다.
이러한 관계는 동치관계이고 이러한 수열은 반사적인 코시 열이다.
이러한 수열은 formula_63이기 때문에 대칭이며 이는 역의 연속성에 의해 항등원의 또다른 열린 근방이기 때문에 대칭이다.
이러한 쌍들은 군 연산의 연속성에 의해 존재한다.
그런 다음에 이러한 완비가 수열 formula_86의 역극한과 같은 형이라는 것을 확인할 수 있다.
정수론과 대수기하학에서 익숙한 이러한 구조의 예는 소수 "p"에 대한 p진수 완비 구조이다.
이 경우 "G"는 추가되는 정수이고 "H""r"은 "p""r"의 정수 배수로 구성된 가법 부분군이다.
만약 formula_73가 공종 집합 수열이라면(즉 유한 지수의 모든 정규 부분군은 formula_88을 포함한다) 이 완비는 formula_89의 역극한과 동일하다는 점에서 표준이다.
여기서 formula_73는 유한 지수의 "모든" 정규 부분군에 걸쳐 변화한다.
실제 수열 formula_91은 일반적인 자연수 "n" 이외에 지수 "n"의 초정수 값에 대해 정의된 자연적인 초실수 확장 "H"를 갖고 있다.
여기서 "st"는 표준부분함수이다.
Q(유리수를 대상으로 하며, 작은 유리수에서 큰 유리수로의 사상을 가지는 얇은 범주)의 범주 코시 완비화는 R(마찬가지의 범주)이다.
아우구스트 페르디난트 베벨과 빌헬름 리브크네히트의 지도하에 있던 사회민주노동자당과 빌헬름 하젠클레버 하의 전독일노동자협회가 1875년 5월 22일부터 27일까지 고타에서 열린 당대회에서 통합을 선언하고 고타 강령을 당 강령으로 채택한다.
사회민주노동자당 강령의 핵심은 "자유로운 국가와 사회주의적 사회, 임노동제의 철폐를 통한 구시대적 임금법의 분쇄, 모든 사회에서의 착취의 지양, 모든 사회적 정치적 불평등의 제거"였다.
양당의 통합을 주도한 인물은 리브크네히트와 베벨와 함께 빌헬름 하젠클레버였다.
고타 강령은 당시 런던에서 망명하고 있던 사회주의 이론가 칼 마르크스가 많은 비판을 했다.
마르크스는 고타 강령이 개혁주의적인 전독일노동자협회의 입장에 기울어져 있다고 봤기 때문이다.
리브크네히트는 강령보다 독일에 단일한 노동자 정당을 건설하는 것이 중요하다고 생각했기 때문에 독일 사회주의노동자당에 참여한다.
그는 후에 1876년 창간된 당기관지 '전진'을 통해 마르크스주의의 재수용과 사회주의노동자당의 혁명적 내용을 지지한다.
고타 강령은 1890년 사회주의 탄압법이 철폐된 후 1891년 당대회에서 에르푸르트 강령으로 대체된다.
티베트고원 또는 청장고원(, , )은 동아시아의 고원으로, 중화인민공화국의 티베트 자치구와 칭하이성, 인도 카슈미르의 라다크 지역에 걸쳐 있다.
세계의 지붕이라고도 불리며 넓이는 250만 km2로 세계에서 가장 높고 가장 큰 고원이다.
티베트고원은 남쪽은 히말라야산맥, 서쪽은 카라코람산맥, 북쪽은 쿤룬산맥과 치롄산맥, 동쪽은 헝돤산맥 등 높은 산맥으로 둘러싸여 있다.
인도판과 유라시아판의 충돌로 대략 5,500만 년 전에 형성되었다.
티베트고원은 동아시아에 위치한 넓고 높은 고원이다.
티베트 자치구와 중화인민공화국 칭하이성, 그리고 인도 카슈미르에 걸쳐 있는 티베트고원은 남북 1000 km, 동서 2500 km에 뻗어 있으며, 그 평균 높이는 4500 m가 넘는다. '세계의 지붕'으로 불릴 만큼 세계에서 가장 높고 크며 면적은 약 250만 km2나 된다.
이 고원은 인도판와 유라시아판이 신생대에 충돌하며 생성되었으며 그 과정은 지금도 진행되고 있다.
이 고원은 산맥과 소금 호수가 분포한 고원의 건조, 스텝 지대를 형성하고 있다.
한 해 평균 강수량은 100 mm에서 300 mm로, 강수량의 대부분은 우박을 이룬다.
유목민들은 고원의 남부 및 동부 경계의 한 해 6개월가량 서리가 내리는 목초지에서 유목 생활을 유지하고 있다.
고원의 북부과 북서부에 위치한 외딴 커커시리 지역에 이르기까지 북서부로 갈수록, 고원의 고도가 높아지며, 기온이 떨어지며, 토질이 척박해짐을 알 수 있다.
이 지역 평균 고도는 5,000 m(16,500 ft)가 넘으며, 대기 속 산소량은 해수면 산소량의 60%에 맞먹으며, 한 해 평균 영하 4'C의 기온을 나타내며, 최저 기온은 영하 40'C까지 떨어진다.
커커시리는 이러한 극한의 환경으로 인하여, 전 아시아에서 가장 인구 밀도가 희박하며 전 세계적으로 남극과 북쪽의 그린란드 다음인 세 번째로 인구 밀도가 희박한 지역으로 잘 알려져 있다.
티베트고원의 북서부 지역은 타림 분지와 경계를 이루는 쿤룬산맥에, 북동쪽은 고비 사막과 경계를 이루는 치롄산맥과 맞닿아, 고원의 남부 지역은 히말라야 기슭을 통해 뻗어있는 브라마푸트라강 계곡과 인도의 광활한 갠지스 평야로 둘러싸여 있다.
한편, 고원의 동부과 남동부 지역은 살윈강, 메콩강을 비롯한 쓰촨 분지 서쪽의 창장 삼림 계곡과 산 상류의 산등성이를 마주하며, 서쪽은 카슈미르 북쪽에 위치한 융단과 같은 카라코람 고개의 능선으로 둘러싸여 있다.
티베트고원은 신생대 초기(약 5500만 년 전)에 인도판과 유라시아판의 충돌로 형성되기 시작하였다.
티베트고원이 형성되면서 상당한 기후 패턴의 변화가 있었으며, 아시아 열대 몬순에 영향을 주었다고 생각된다.
6월에서 10월에 걸친 인도 몬순 시기에 남쪽으로부터 불어오는 습한 열대 공기는 히말라야산맥에 막혀 비그늘을 만드는데, 이 때문에 인도 북부는 매우 습하게 되는 반면, 티베트고원 지역은 매우 건조하게 된다.
바람은 고원을 지나며 남아있던 습기를 모두 잃어버리며, 더욱 건조하게 되어 북쪽으로 이동하며 타클라마칸 사막이나 고비 사막을 만들게 된다.
세계적으로도 긴 강들이 티베트고원에서 발원하는데, 장강, 황하, 인더스강, 사틀루즈강, 브라마푸트라강, 메콩강, 이라와디강, 살윈강 등이 포함된다.
이들 강들은 전 세계에서 유실되는 토양의 1/4을 침식하여 수송하고 있다.
지구 온난화의 영향으로 빙하가 녹아 칭짱철도도 우려되다.
티베트고원은 몇 번 빙하의 지세와 침전물에 의한 빙하의 전진을 경험했다.
인류 문화에서 이룩한 가장 큰 진보 중 하나는 유목적 목축의 발달이다.
유목민의 적응은 생존을 위한 것으로, 그 지역에 적합하지 않은 곡식 대신에 목초지에서 가축류를 기르면서 이루어졌다.
유목민들은 지금도 티베트고원과 히말라야산맥 등지에서 살아가고 있다.
그들의 삶은 역사적으로 아시아와 아프리카로 확산되었던 유목이 여전히 남아있는 경우에 해당한다.
밴쿠버 국제공항()은 캐나다 브리티시컬럼비아주 밴쿠버에 있는 국제공항으로 이 공항은 다운타운에서 12km 떨어져있는 리치먼드에 위치해있다.
당시에는 폭격기를 제외하면 대형 수상기 정도만이 대륙간 대양횡단 또는 대륙횡단 비행을 할 수 있었기 때문으로, 당시 기술로는 그정도 비행거리를 가지는 항공기가 여객을 목적으로 광동체화할 경우 그 중량과 착지충격을 감당할 노반을 그렇게 대규모로 짓기가 곤란했던 것이 크다.
거기다 당시 광동체 대륙간 여객기로 주로 쓰던 보잉 314는 내부에 호화 여객선과 견줄만한 시설을 넣었고, 그 바람에 중량은 당시 많이 쓰이던 경쟁기종인 쌍발 DC-3는 물론, 314가 대체했던 팬암의 단 3대뿐이었으나 모조리 추락사고로 파괴 및 영구소실됐던 4발 협동체 수상기 마틴 M-130과 비교해도 압도적으로 무거웠었다.
따라서 4발 광동체 대륙간 여객기는 물 위가 아니면 운용 자체가 아예 불가능했고 그나마 장거리 폭격기를 다뤄야 하는 군사기지가 그래도 전략 목적으로 그정도 중량의 항공기가 쓸수있는 활주로 노반을 지었던 것이 고작이었다.
그래서 수상기 전용공항으로 개항했던 것이다.
그러다 결국 지상공항화를 하면서 제2차 세계대전 중 군용기지로 활용됐고, 1947년 밴쿠버가 공항 관리를 재개하면서 민항기 운항이 시작됐다.
1968년에 현재의 주 터미널이 건립되었고, 1996년에 국제선 터미널이, 2005년에 국내선 터미널이 증축되었다.
2011년 현재 여객 터미널은 국제선과 국내선 터미널과 별도의 사우스터미널 등 3개가 있다. 2010년 현재 승객 및 비행횟수 측면에서 토론토 피어슨 국제공항에 이어 캐나다에서 두 번째로 붐비는 공항이다.
스카이트랙스(Skytrax)가 발표한 북미 공항 최고상을 2007년과 2010년부터 2018년까지 9회 연속 수상하는 등 수상하는 등 북미 최고의 공항으로 불려왔다.
1968년 완공된 터미널. 탑승구는 A1,6, B11,22, C25,52의 3블록으로 나뉘는데, A블록은 주로 웨스트 제트가 C블록은 주로 에어 캐나다가 사용하고 있다.
A블록 보딩 브리지는 특수한 구조 도중에서 2가지로 나뉘며 한쪽은 기체 전방의 문, 다른 한쪽은 기체의 주익을 넘어 기체 뒤쪽 문에서 탑승할 수 있다.
1996년에 국내선 터미널을 확장하는 형태로 새롭게 건설완료했다.
미국의 사전 입국 시설(즉 도착 시는 다른 미국 국내선과 같은 장소에 내려옴)이 있어 미국으로 떠나는 여행객은 그 이외의 여객과 동선이 구분되면서 이 구역은 종종 USA터미널(탑승구 E70~96)으로 안내되고 있어.
그것 이외 일반의 국제선의 탑승구는 D50, D78이지만, 일부의 탑승구는 수요에 응하고 국내선과 미국선용으로 이용할 수 있도록 동선을 구절레루게 되고 있다.
최고의 터미널에서 주로 주 내를 맺은 지역 항공사나 제너럴 애비에이션용이다.
수상기와 헬기는 이 터미널을 이용한다.
메인 터미널 사이는 무료 셔틀 버스가 접속하고 있다.
사슬은 다음과 같은 뜻을 갖는다.
기원전 1세기 고대 로마가 공화국에서 제국으로 변모하던 시기를 그린 작품이다.
시즌 1은 미국의 HBO 케이블 텔레비전에서 2005년 8월 28일부터 11월 20일까지 방영되었다.
시즌 2는 2007년 1월 4일부터 3월 25일까지 미국에서 방영되었다.
2006년과 2007년에 각각 3개와 4개의 에미상을 수상했다.
호찌민 시내 중심에서 약 50km의 거리에 있다.
행정구역 상으로는 호찌민 광역시에 속해 있다.
베트남 전쟁 당시에 전투가 격렬했던 곳으로 꾸찌(Củ Chi), 떠이닌(Tây Ninh)과 함께 껀저는 3대 혁명 사적지 중에 한 곳이다.
껀저 지역은 2000년 유네스코에 의하여 생물권보전지역으로 지정되어 있다.
동·식물이 그대로 잘 보존되어 있고, 특히 수백 마리의 원숭이가 반야생으로 생활하고 있다.
스펙트럼은 항생물질에게 감수성이 있는 세균의 범위(균주)와 그 작용 강도(효과)를 표시하는 것이다.
항균 스펙트럼, 항균역(抗菌域)이라고도 하고 영어로는 spectrum으로 표기한다.
선위(禪位) 또는 양위(讓位)는 군주(군왕)가 아직 살아 있으면서 다른 사람에게 군주의 지위를 물려주는 일을 가리킨다.
보통 같은 왕조에서 아버지가 아들에게 왕위를 물려주고 자신은 상왕(上王, 또는 상황(上皇))으로 물러나 있는 것을 말한다.
수학, 특히 순서론에서 극대 원소(極大元素, )와 극소 원소(極小元素, )는 부분 순서 집합에서 그와 비교 가능한 원소들 가운데 가장 크거나 가장 작은 원소이다.
이는 최대 원소, 최소 원소보다 약한 개념이다.
줄여서 극대원, 극소원이라고도 한다.
극대·극소 원소는 각각 존재하지 않을 수도, 유일하게 존재할 수도, 둘 이상 존재할 수도 있다.
극대 원소가 존재할 충분조건은 초른 보조정리에 의해 제시된다.
이 정리에 의하면, 부분 순서 집합의 모든 사슬이 상계를 가지면 그 부분 순서 집합은 극대 원소를 가진다.
이는 정렬 정리, 선택 공리와 동치인 명제이다.
즉, 다음의 서로 동치인 성질 중 하나를 만족하는 formula_10이다.
극대 원소와 극소 원소는 존재하지 않을 수 있다.
극대 원소와 극소 원소는 유일하지 않을 수 있다.
최대·최소 원소와의 관계.
그 역은 일반적으로 성립하지 않는다.
전순서 집합에서는 극대 원소와 최대 원소, 극소 원소와 최소 원소의 개념이 동등하다.
최대 원소와 최소 원소가 각각 많아야 하나뿐인 반면, 부분 순서 집합의 극대 원소와 극소 원소는 여러 개일 수 있다.
다만, 어떤 부분 순서 집합이 최대 원소를 갖는다면, 이는 유일하며, 또한 최대 원소가 아닌 극대 원소는 존재하지 않는다.
이는 최소 원소에 대해서도 마찬가지다.
극대 원소와 최대 원소가 동일시 되는 경우는 전순서뿐만이 아니다.
임의의 집합 formula_24에 대해, 그의 멱집합과 포함 관계로 이루어진 부분 순서 집합 formula_30은 극대와 최대, 극소와 최소 원소가 각각 유일하며 같으나, 이는 일반적으로 전순서가 아니다(formula_24의 원소가 없거나 하나 뿐일 때에만 전순서이다).
순서론에서 부분 순서(部分順序, ) 또는 반순서(半順序)는 순서·나열 등의 개념을 추상화한 이항 관계이다.
부분 순서를 갖춘 집합을 부분 순서 집합(部分順序集合, )이라고 한다.
이는 전순서 집합과 달리 모든 원소가 비교 가능할 필요는 없으며, 원순서 집합과 달리 순서가 같은 여러 원소는 존재하지 않아야 한다.
유한 부분 순서 집합은 하세 도형을 통해 나타낼 수 있다.
예를 들어, 가계도에서의 관계는 부분 순서이다.
어떤 두 사람은 조상과 후손의 관계이나, 어떤 두 사람은 서로가 서로의 후손이 아니며, 어떤 이도 다른 이의 조상이자 후손일 수는 없다.
이들 가운데 비대칭 관계 조건은 나머지 조건들로부터 유도 가능하다.
부분 순서를 갖춘 집합 formula_29을 부분 순서 집합이라고 한다.
부분 순서의 정의에 삼분성(임의의 두 원소의 비교 가능성)을 추가하면 전순서의 정의를 얻는다.
범주론적으로, 부분 순서 집합 formula_29는 범주로 여길 수 있다.
또한, 순서 보존 순서 반사 함수를 순서 매입()라고 하며, 전사 순서 매입를 순서 동형()라고 한다.
예를 들어, 자연수 집합(약수 관계에 의한 부분 순서)에서 그 멱집합(포함 관계에 의한 부분 순서)으로 가는 함수 formula_51가 임의의 자연수를 소인수들의 집합으로 대응시킨다
면, 이는 순서 보존 사상이다.
임의의 자연수는 그의 약수의 소인수를 소인수로 가지기에 그러하다. 하지만 이는 단사가 아니며 (formula_52) 순서 반사도 아니다(formula_53, 하지만 formula_54). 자연수를 소수 거듭제곱 형식의 약수들의 집합으로 대응시키는 함수 formula_55는 순서 보존, 순서 반사이며 따라서 순서 매입이다, 전단사가 아니므로 (formula_56의 역상이 존재하지 않는다) 순서 동형은 아니다.
그러나 공역을 formula_57으로 제한하면 순서 동형이 된다.
집합과 멱집합 사이의 순서 동형은 더 넓은 의미의 부분 순서인 분배 격자로 일반화할 수 있다(버코프의 표현 정리 참조).
예를 들어 양의 정수 집합과 약수 관계로 이루어진 부분 순서 집합 formula_90를 생각하면, 1은 그의 최소 원소이다.
최대 원소와 극대 원소는 존재치 않는다.
여기에 0을 추가하면 0이 최대 원소가 된다.
1보다 큰 정수만을 생각하면, 최소 원소가 존재하지 않게 되고, 모든 소수가 극소 원소가 된다.
이러한 집합에서, 부분 집합 formula_91은 상계 60을 가지며 하계는 존재하지 않는다.
2의 거듭제곱들의 집합은 2를 하계로 가지며 상계가 존재하지 않는다.
이를 선형합()이라고 한다.
절대 부분 순서의 직접곱의 반사 폐포.
마찬가지로, 절대 부분 순서 집합의 직접곱을 정의할 수 있으며, 이에 대응하는, 곱집합 위의 부분 순서는 다음과 같다.
이를 사전식 순서라고 한다.
모든 전순서는 부분 순서이다.
또한, 이를 formula_126의 부분 집합에 국한시켜도 역시 부분 순서를 이룬다.
등등은 특정한 부분 집합들의 집합이므로 포함 관계를 통해 부분 순서를 갖는다.
부분수열에 의한 관계는 특정한 집합 (예를 들어 어떤 수열의 부분수열들의 집합, 집합 formula_1의 원소를 항으로 하는 수열들의 집합) 위의 부분 순서이다.
이는 일반적으로 전순서가 아니다.
이와 비슷하게 문자열들의 집합에서 부속문자열에 의한 관계는 부분 순서이다.
비순환 유향그래프의 꼭짓점들의 집합은 도달가능성에 의한 부분 순서를 가진다.
예를 들어, 부분 순서 집합의 직접곱의 한 가지 선형 확장은 사전식 순서이다.
선택 공리 아래, 임의의 부분 순서는 선형 확장을 갖는다.
컴퓨터 과학에서, 위상 정렬은 부분 순서의 선형 확장을 구하는 알고리즘이다.
체인(chain)은 금속으로 된 사슬을 부르는 말이다.
추상대수학에서 반군(半群, )은 결합법칙을 따르는 하나의 이항 연산이 부여된 대수 구조이다.
반군 formula_1은 다음과 같은 데이터로 구성되는 대수 구조이다.
항등원을 갖는 반군을 모노이드라고 한다.
즉, 반군과 모노이드의 관계는 유사환과 환의 관계와 같다.
보통, 편의상 이항 연산을 (곱셈과 같이) 생략하는 경우가 많다.
모든 모노이드는 반군이므로, 두 모노이드 사이의 반군 준동형을 생각할 수 있다.
두 모노이드 사이의 모든 모노이드 준동형은 반군 준동형이지만, 두 모노이드 사이의 반군 준동형은 모노이드 준동형이 아닐 수 있다 (즉, 항등원을 항등원으로 대응시키지 않을 수 있다).
모노이드의 모든 부분 모노이드는 부분 반군이지만, 모노이드의 부분 반군은 부분 모노이드가 아닐 수 있다 (즉, 항등원을 포함하지 않을 수 있다).
왼쪽 아이디얼이자 오른쪽 아이디얼인 부분 반군을 아이디얼()이라고 한다.
모노이드의 아이디얼은 부분 모노이드를 이룰 필요가 없다 (즉, 1을 포함하지 않을 수 있다). 이는 환의 환론적 아이디얼이 부분환을 이룰 필요가 없는 것과 마찬가지다.
왼쪽 영원이자 오른쪽 영원인 원소를 영원()이라고 한다.
왼쪽 영원과 오른쪽 영원은 일반적으로 유일하지 않지만, (양쪽) 영원은 만약 존재한다면 유일하다.
왼쪽 항등원이자 오른쪽 항등원인 원소를 항등원()이라고 한다.
왼쪽 항등원과 오른쪽 항등원은 일반적으로 유일하지 않지만, (양쪽) 항등원은 만약 존재한다면 유일하다.
이렇게 양쪽 항등원을 갖는 반군을 모노이드라고 한다.
왼쪽 영원 · 오른쪽 역원 · 왼쪽 항등원 · 오른쪽 항등원은 모두 항상 멱등원이다.
유한 반군은 항상 적어도 하나 이상의 멱등원을 갖는다.
보다 일반적으로, 모든 원소의 차수가 유한한 반군은 적어도 하나 이상의 멱등원을 갖는다.
이는 하나의 원소로 생성되는 모든 유한 반군은 멱등원을 갖기 때문이다.
유사역원은 일반적으로 유일하지 않다.
반대 모노이드나, 군론의 반대군이나, 환론의 반대환은 반대 반군의 특수한 경우이다.
군의 경우 모든 군은 스스로의 반대군과 역원 함수를 통해 표준적으로 동형이지만, 반군의 경우 일반적으로 스스로의 반대 반군과 동형이 아니다. (가환 반군은 물론 스스로의 반대 반군과 같다.)
군이나 유사환의 경우와 달리, 반군의 경우 합동 관계는 일반적으로 정규 부분군이나 유사환 아이디얼과 같은 부분 집합으로 나타내어지지 않는다.
는 합동 관계를 이루며, 따라서 몫반군 formula_68를 정의할 수 있다.
이러한 꼴의 몫반군을 리스 몫반군()이라고 한다.
반군의 모임은 대수 구조 다양체이므로, 여러 개의 반군들의 직접곱을 정의할 수 있다.
이는 반군과 반군 준동형의 범주에서의 범주론적 곱이다.
구체적으로, 반군들의 집합 formula_76의 직접곱 formula_77은 집합으로서 곱집합과 같으며, 그 위의 이항 연산은 다음과 같다.
반군의 모임은 대수 구조 다양체이므로, 여러 개의 반군들의 자유곱을 정의할 수 있으며, 이는 반군의 범주의 쌍대곱이다.
반군의 자유곱은 모노이드의 자유곱과 다르다.
즉, 각 성분들의 항등원이 모노이드 자유곱에서는 한 원소로 합쳐지지만, 반군 자유곱에서는 그렇지 않다.
군론의 화환곱()을 반군에 대하여 일반화할 수 있다.
작용을 갖춘 반군들에 대하여, 화환곱은 결합 법칙을 따른다.
군론의 케일리 정리와 마찬가지로, 반군에 대하여 케일리 정리가 성립한다.
반군 formula_2의 부분 반군 가운데 부분군인 것들은 포함 관계에 따라 부분 순서 집합을 이룬다.
공집합이 아닌 모든 유한 반군은 항상 하나 이상의 멱등원을 가진다. (모노이드의 경우 항등원이 멱등원이므로 이는 자명하게 성립한다.) 그러나 이는 무한 반군에 대하여 성립하지 않는다.
다음과 같은 특별한 종류의 반군들의 모임이 존재한다.
유한 반군에 대하여, 크론-로즈 정리()라는 구조 정리가 존재한다.
이에 따르면, 모든 유한 반군 formula_2는 유한 단순군과 비자명군을 포함하지 않는 유한 반군들의 화환곱의 부분 반군의 몫반군이다.
즉, 다음과 같은 꼴로 나타낼 수 있다.
가환 반군의 경우, 다음과 같은 구조 정리가 존재한다.
따라서, 가환 반군의 분류는 가환 멱등 반군의 분류와 아르키메데스 반군의 분류로 귀결된다.
가환 멱등 반군은 공집합이 아닌 유한 부분 집합이 항상 최소 원소를 갖는 부분 순서 집합과 동치이다.
모든 모노이드는 반군이다.
따라서 모든 군은 반군이다.
공집합 formula_177 위에 유일한 이항 관계를 준다면, 이는 자명하게 반군을 이룬다.
이를 공반군(空半群, )이라고 하며, 이는 모노이드가 아니다.
만약 formula_2가 공집합이 아니라면 이는 모노이드를 이루지 않는다. (만약 formula_2가 공집합이라면 이는 자명군을 이룬다.)
아벨 군 위에 곱셈을 모두 0으로 정의하여 영 유사환을 정의할 수 있는데, 그 곱셈 반군은 영반군이다.
반군의 모임은 대수 구조 다양체이므로, 이에 대한 자유 대수를 정의할 수 있다.
한원소 집합으로 생성되는 자유 반군은 양의 정수의 덧셈 반군 formula_190과 동형이다.
마찬가지로 자유 가환 반군(自由可換半群, )을 정의할 수 있다.
집합 formula_2 위의 자유 가환 모노이드는 formula_2의 원소들로 구성된 유한 중복집합들의 모노이드이며, formula_2 위의 자유 가환 반군은 이 가운데 공집합을 제거한 것이다.
집합 formula_2 위에 다음과 같은 두 이항 연산을 정의하자.
왼쪽 영원 반군에서, 모든 원소는 왼쪽 영원이자 오른쪽 항등원이다.
오른쪽 영원 반군에서, 모든 원소는 오른쪽 영원이자 왼쪽 항등원이다.
왼쪽 · 오른쪽 영원 반군은 formula_2가 한원소 집합이 아니라면 모노이드를 이루지 않는다.
하나의 원소로 생성되는 반군.
하나의 원소로 생성되는 반군은 항상 가환 반군이며, 다음 두 경우 가운데 하나와 동형이다.
마찬가지로, 하나의 원소로 생성되는 모노이드는 항상 가환 모노이드이며, 다음 두 경우 가운데 하나와 동형이다.
크기가 formula_174인 반군의 동형류의 수는 다음과 같다. (formula_226. 모노이드와 그 반대 모노이드는 일반적으로 서로 동형이 아니라고 간주한다.)
만약 반군과 그 반대 반군을 동치로 놓았을 때, 동치류의 수는 다음과 같다. (formula_226)
만약 반군과 그 반대 반군을 동치로 놓았을 때, 정확히 1개의 멱등원을 갖는 반군의 동치류의 수는 다음과 같다.
정확히 2개의 멱등원을 갖는 반군의 동형류의 수는 다음과 같다.
크기가 formula_174인 가환 반군의 동형류의 수는 다음과 같다.
크기가 0인 반군은 공반군 밖에 없고, 크기가 1인 반군은 자명군 밖에 없다.
크기가 2인 반군은 총 5개가 있다.
크기가 3인 반군은 총 24개가 있다.
이 가운데 모노이드가 아닌 것은 17개이며, 다음과 같다.
아래 목록에서 표시는 반군의 표시이며, 영원의 경우 항상 0으로 표기하며 이에 대한 관계 (formula_236 등)는 생략하였다.
1904년에 장아르망 드 세기에(, 1862~1935)가 최초로 반군()이라는 용어를 사용하였으나, 드 세기에는 이를 오늘날과 달리 "소거 반군"의 뜻으로 사용하였다.
1908년에 해럴트 힐턴(, 훗날 해럴드 심프슨()으로 개명, 1876~1974)은 최초로 영어 문헌에서 "반군"()이라는 용어를 사용하였으며, 힐턴은 반군을 오늘날과 같이 정의하였다.
앨프리드 호블리첼 클리퍼드(, 1908~1992)는 수시케비치의 구조 정리들을 일반화하였다.
특히, 그린은 1951년에 그린 관계를 도입하였다.
사무엘 에일렌베르크(1913~1998)와 마르셀폴 쉬첸베르제(, 1920~1996)는 반군 이론을 자동기계 이론에 응용하여 발전시켰다.
특히, 쉬첸베르제는 1957년에 쉬첸베르제 군을 도입하였다.
크론-로즈 정리는 미국의 케네스 크론()과 존 루이스 로즈(, 1937~)가 1965년 박사 학위 논문에서 발표하였다.
1961년~1967년에 클리퍼드와 프레스턴은 당시 알려진 반군 이론을 체계화하여, 반군 이론에 대한 최초의 책을 출판하였다.
제베대오, 또는 세베대의 아들 야고보(, , , ? - 44년)는 예수 그리스도의 열두 사도들 가운데 한 사람이며, 사도 요한의 형제이다.
야고보라는 이름의 유래는 ‘발꿈치를 잡다’라는 뜻이다.
또 다른 사도인 알패오의 아들 야고보와 동명이인이라 혼동을 피하기 위해 흔히 ‘대(大)야고보’라고 부른다.
사도 가운데 가장 먼저 순교하였고, 기독교의 성인으로 기린다.
로마 가톨릭에서 축일은 7월 25일이며, 동방 정교회에서 축일은 4월 30일이다.
회화에서는 종종 말을 타고, 한 손에는 순례자의 종, 다른 손에는 칼을 들고 무어인을 무찌르는 모습으로 그린다.
상징물은 책·칼·외투·조가비·모자·지팡이·자루·호리병이며, 수의사·약사·기수·식료품 상인·순례자·에스파냐·과테말라·니카라과의 수호 성인이다.
야고보는 제베대오(세배대)와 살로메 사이 태어난 첫째 아들로, 동생 요한과 함께 아버지를 도와 갈릴래아 호숫가에서 어부로 일하다가 예수를 만나서 같은 직업의 다른 형제인 베드로와 안드레아와 함께 부름을 받았다.
예수의 부름을 듣자 그들은 곧 배를 버리고 아버지를 떠나 예수를 따라갔다(마태 4,21-22). 마가 복음사가는 제베대오가 일용직 노동자들을 고용했다고 말하는 것을 보면(마가 1:19-20), 야고보, 요한 형제 집안은 임금노동자는 아니고, 사업장을 갖춘 중간계급으로 보인다.
김성 협성대학교 교수에 따르면, 고대 이스라엘에서 물고기는 훈제한 물고기 한 수레를 황소와 바꿀 정도로 비싼 식량이었다고 한다.
그럼에도, 이들은 예수의 부름을 듣고서 즉시 안정된 삶을 버렸다.
복음서에 있는 두 가지 사건이 야고보와 요한 형제의 성격을 보여주고 있다.
하루는 야고보와 요한 형제(또는 그들의 어머니라고도 함)가 예수에게 하늘 나라에서 자신들이 각각 예수의 오른편과 왼편에 앉도록 해달라고 간청했다.
이때 예수는 “너희는 너희가 청하고 있는 것이 무엇인지조차도 모르는구나!
너희는 내가 마시고자 하는 잔을 마실 수 있으며, 내가 받을 고난의 세례를 받을 수 있겠느냐?” 며 물었다.
그러자 그들은 자신있게 할 수 있다고 대답했다.
이에 예수는 “죽음의 잔을 마시고 고통의 세례를 받을 수는 있다.
그러나 나의 오른편이나 왼편에 앉는 특권은 내가 줄 수 있는 것이 아니고 오직 하느님께서 미리 정하신 이들을 위한 것이다.” 라고 대답하였다.
다른 사도들이 이 형제의 야심에 분개하자, 예수는 그들에게 “너희 사이에서 높은 사람이 되고자 하는 사람은 남을 섬기는 사람이 되어야 하고 으뜸이 되고자 하는 사람은 종이 되어야 한다.
사람의 아들도 섬김을 받으러 온 것이 아니라 섬기러 왔고 또 많은 사람을 위하여 목숨을 바쳐 몸값을 치르러 온 것이다”라고 훈계하여 권력의 목적은 봉사하는 것으로서 다른 사람들에게 무언가를 강요하거나 그들 위에 군림하는 것이 아니라는 것을 일깨워 주었다(마태 20,27-28).
또한 두 형제는 예수가 예루살렘으로 가던 길에 자신들을 영접하지 않은 불친절한 사마리아 사람들을 보고 불같이 화를 내며 “주님, 저희가 하늘에서 불을 내리게 하여 그들을 불살라 버릴까요?” 하고 말했다.
예수는 그 말을 듣고 그들을 호되게 질책하였다(누가 9,54).
이러한 타고난 과격한 성격 때문에 예수는 요한과 야고보 형제를 아울러 ‘천둥의 아들’이라는 뜻의 보아네르게스("Boanerges")라는 별명을 붙여주었지만(마르 3,17), 야고보는 베드로 및 요한과 더불어 타볼 산에서의 변모와 야이로의 딸 소생과 겟세마네에서의 피땀을 흘린 기도를 보고 사람들에게 증언할 특권을 누리며 총애를 받던 세 제자 중의 한 사람이었다(마태 7,1; 마르 1,29-31; 마르 5,37; 마르 13,3-14; 14,32-35). 그런 야고보도 예수가 이스카리옷 유다에게 배신당하여 군인들에게 붙잡혀 끌려갔을 때는 지레 겁을 먹고 다른 사도들과 함께 어디론가 도망가 숨어버리고 말았다.
성령 강림 이후 다른 사도들처럼 야고보 역시 사마리아와 유대 지역에서 복음을 전파하였으며 심지어 이베리아 반도까지도 다녀갔다는 기록이 있다. 44년 예루살렘에서 그리스도인을 탄압하던 헤로데 아그리파 1세에 의하여 체포되어 파스카 축일 전날 참수형으로써 순교를 하였다.
야고보의 유해는 처음에는 예루살렘에 안장되었으나, 정확히 어디에 묻혔는지에 대해서는 행방이 묘연하여 찾을 길이 없었다.
그러던 중 9세기 즈음에 하늘에서 한 별빛이 내려와 숲 속의 한 동굴을 비추어 사람들이 그 안으로 가보니 야고보의 무덤이 있었다고 한다.
그 후 야고보의 유해는 에스파냐의 서북부 지역 갈리시아의 산티아고데콤포스텔라로 이장되어 모셔졌고, 당시 국왕 알폰소는 그 묘지 위에 150년에 걸쳐 웅대한 대성당을 건축하였다.
산티아고데콤포스텔라 대성당 안으로 들어가보면 그의 유골함이 전시되어 있다.
그 후 844년 이베리아 반도에 세력을 뻗친 이슬람교 세력에 로마 가톨릭 세력이 대항하기 위하여 일어난 클라비호 전투에서 야고보가 에스파냐군 앞에 나타나는 기적을 일으켜 이슬람군을 무찔렀다는 말이 전해지면서 그에 대한 신심이 에스파냐를 중심으로 대폭 커져 산티아고데콤포스텔라는 금새 세계적인 순례지가 되었다.
참고로 산티아고는 야고보의 에스파냐어식 표기이다.
블라디미르 세묘노비치 비소츠키(, , 1938년 1월 25일 ~ 1980년 7월 25일)는 소련의 배우 겸 시인이며 가수 겸 작사가이다.
비소츠키는 1938년 1월 25일 모스크바에서 태어났다.
아버지는 군장교였으며 어머니는 독일어 번역사였는데 그의 출생직후 이혼하여 계모의 손에서 컸다.
1954년 부모의 희망에 따라 모스크바 기술대학(Moscow Institute of Civil Engineering)에 진학해서 공부했지만 적성에 맞지 않아 곧바로 중단하고 자신의 꿈을 이루기 위해 1956년 모스크바 예술극단의 배우학교에 입학하여 4년 동안 배우 수업을 받는다.
비소츠키는 1960년 대학을 졸업하고 알렉산드르 푸시킨 극단(Aleksandr Pushkin Theatre)에 입단한 후 단역배우로 전전하던 시절 가끔씩 친구들 앞에서 자신이 작곡하고 가사를 붙인 노래를 불렀다.
독재체제에 대한 비판과 억눌린 인민들의 삶에 대해 분노에 찬 목소리로 절규하듯 700여 곡의 저항가요를 불렀다.
그는 세상을 떠날 때까지 단 한 권의 시집도, 단 한장의 음반도 내지 못하고 정보기관으로부터 늘 감시를 받았다.
본인은 스스로를 가수라고 인정하지 않았지만 카세트테이프에 녹음된 그의 노래는 사람들에게 전해져 소련은 물론 주변 국가들에까지 널리 퍼지게 되었다.
배우로도 성공하여 수많은 연극과 드라마에서 연기했으며 28편의 영화에 출연하였다.
그는 1980년 7월 27일 모스크바에서 42세의 젊은 나이에 심장마비로 죽었는데, 사인은 평소 과도했던 음주벽 때문이라고 하지만 러시아인들 사이에서는 비소츠키의 사인은 마약복용으로 인한 쇼크사라는 이야기도 있다.
사후에도 그의 노래는 꾸준히 사랑받아 1980년대 후반에 이르러 소련 정부는 그의 시와 노래의 출판을 허용하기 시작했으며 그는 아직도 러시아에서 가장 사랑받는 배우/음유시인들 중 한명이다.
답답함을 토해내듯 노래불렀던 비소츠키는 부드러운 목소리로 서정적인 음유시가를 부른 불라트 오쿠자바()와 함께 러시아의 대표적인 음유시인이 되었다.
그는 인기있는 배우였지만 오히려 음유시가의 발전에 지대한 공을 세워 음유시가를 좋아하는 사람들에게 우상이 되었다.
입법부(立法府, , , )는 법률이나 조례 등을 제정하거나 수정 또는 폐기하는 중앙정부 혹은 지방정부기관이다.
행정부, 사법부와 함께 국가의 주요 기능을 담당한다.
근대 민주주의 정치는 권력을 독점하는 것을 막기 위해 입법권, 행정권, 사법권을 서로 견제하는 세 개의 국가 기관에 분리하여 부여하는 것을 원칙으로 하고 있다.
이러한 권력의 분리와 견제를 삼권분립의 원칙이라 한다.
입법기관은 광의로는 법률제정에 참여하는 권한을 가진 국가기관을 통틀어 이르는 말이다.
사법부의 규칙제정권, 행정부의 집행명령·위임명령, 대통령의 국가긴급권, 그리고 지방자치단체의 조례제정권도 법에 해당하므로, 광의에서는 위와 같은 기관도 입법기관에 해당한다.
그러나 입법을 담당할 국가기관으로 입법의 법을 형식적 의미의 법률로 볼 경우에 있어서는 입법기관은 이 법을 담당하는 국가기관인 국회를 가리킨다.
입법부는 나라마다 부르는 명칭이 다르다.
나라에 따른 명칭은 아래와 같다.
버퍼 오버플로() 또는 버퍼 오버런()은 메모리를 다루는 데에 오류가 발생하여 잘못된 동작을 하는 프로그램 취약점이다.
컴퓨터 보안과 프로그래밍에서는 프로세스가 데이터를 버퍼에 저장할 때 프로그래머가 지정한 곳 바깥에 저장하는 것을 의미한다.
벗어난 데이터는 인접 메모리를 덮어 쓰게 되며 이때 다른 데이터가 포함되어 있을 수도 있는데, 손상을 받을 수 있는 데이터는 프로그램 변수와 프로그램 흐름 제어 데이터도 포함된다.
이로 인해 잘못된 프로그램 거동이 나타날 수 있으며, 메모리 접근 오류, 잘못된 결과, 프로그램 종료, 또는 시스템 보안 누설이 발생할 수 있다.
버퍼 오버플로가 코드를 실행시키도록 설계되거나 프로그램 작동을 변경시키도록 설계된 입력에 의해 촉발될 수 있다.
따라서 이는 많은 소프트웨어 취약점의 근간이 되며 악의적으로 이용될 수 있다.
경계 검사로 버퍼 오버플로를 방지할 수 있다.
버퍼 오버플로는 보통 데이터를 저장하는 과정에서 그 데이터를 저장할 메모리 위치가 유효한지를 검사하지 않아 발생한다.
이러한 경우 데이터가 담긴 위치 근처에 있는 값이 손상되고 그 손상이 프로그램 실행에 영향을 미칠 수도 있다.
특히, 악의적인 공격으로 인해 프로그램에 취약점이 발생할 수도 있다.
흔히 버퍼 오버플로와 관련되는 프로그래밍 언어는 C와 C++로, 어떤 영역의 메모리에서도 내장된 데이터 접근 또는 덮어쓰기 보호 기능을 제공하지 않으며 어떤 배열에 기록되는 데이터가 그 배열의 범위 안에 포함되는지 자동으로 검사하지 않는다.
버퍼 오버플로는 불충분한 경계 검사에 의해 버퍼에 쓰인 데이터가 버퍼에 이미 할당된 근접한 메모리 주소에 있는 데이터 값을 오염시킬 때 발생한다.
대부분 이는 문자열을 하나의 버퍼에서 다른 버퍼로 복사할 때 발생한다.
아래의 예제에서, 프로그램은 메모리에서 인접해 있는 두 아이템을 정의하였다: 8 바이트 길이 스트링 버퍼, A. 그리고 2 바이트 정수형, B. 우선, A는 8바이트 모두 숫자 0값만 포함하고 B는 숫자 3을 포함한다.
문자들은 1바이트 크기이다.
한 바이트짜리 0값이 스트링의 끝임을 알리기 위해 따라온다.
스트링의 길이를 확인하지 않음으로 B의 값을 덮어쓴다.
비록 프로그래머가 B가 바뀌는 것을 전혀 의도하지 않았다 하더라도, B의 값은 문자열의 한 부분을 구성하는 숫자로 바뀌었다.
B가 프로그램이 정의한 유일한 다른 변수였다면, B의 끝을 지나가는 긴 스트링을 쓰는 것은 세그멘테이션 오류, 프로세스 종료와 같은 오류를 발생시켰을 것이다.
버퍼 오버플로 취약점을 이용하는 기술은 구조, 운영 체제, 메모리 영역에 따라 다르다.
예를 들어 힙(heap, 동적 메모리 할당에 사용됨) 을 이용하는 방법은 함수 호출 스택을 이용하는 방법과 매우 다르다.
기술적 성향을 가진 악의적 사용자가 스택 기반 버퍼 오버플로를 이용하여 프로그램을 아래와 같이 조작할 수 있다:
트램폴라이닝(trampolining)이라 불리는 방법을 사용하면, 사용자가 지정한 데이터의 주소를 모르더라도, 레지스터에 그 주소가 저장되어 있다면, 실행 흐름을 사용자 제공 데이터로 도약하도록하는 어떤 실행코드의 주소로 귀환 주소를 덮어쓸 수 있다.
위치가 레지스터 R에 저장되어 있다면 jump R이나 call R과 같이 R에 저장되어 있는 주소로 건너뛰는 작동코드 opcode 로 사용자 제공 데이터가 실행되도록 할 수 있다.
적당한 작동코드 또는 바이트의 위치는 DLL 이나 실행 파일 자체 안에서 찾을 수 있다.
그러나 작동 코드의 주소는 전형적으로는 어떠한 무효 문자도 포함할 수 없고, 이러한 작동 코드의 위치는 응용 프로그램마다, 운영 체제 버전에 따라 달라질 수 있다.
메타스플로잇 프로젝트는 그러한 적당한 작동코드의 데이터베이스로 윈도우 운영 체제에 관한 것이 나열되어 있다.
아래의 예에서 "X"는 프로그램이 실행될 때 스택에 있게 되는 데이터이다.
프로그램은 그 다음 작은 양의 저장공간만 필요한 함수 "Y"를 호출한다.
그리고 "Y"는 그 다음 많은 버퍼를 필요로 하는 "Z"를 호출한다.
만약 함수 Z가 오버플로를 발생시키면, 그것은 함수 Y나 주 프로그램에 포함된 데이터를 덮어 쓸 수도 있다:
이것은 대부분의 시스템에서 현재의 프로세스가 호출되기 전 실행되고 있던 프로그램 부분의 위치인 반환값을 스택이 갖고 있기 때문에 특히나 심각하다.
함수가 끝날 때 임시 저장소는 스택에서 제거되고 실행은 반환 주소로 되돌아간다.
그런데 반환 주소를 버퍼 오버플로가 덮어쓰면 어떤 다른 위치를 가리킬 것이다.
처음 예제에서와 같은 버퍼 오퍼플로가 우연히 발생하는 경우 거의 틀림없이 쓸모없는 위치일 것이다.
어떠한 프로그램 명령어 위치가 아닌 이상, 프로세스는 망가질 것이다.
그리고 악의적인 공격자가 시스템 보안과 충돌할 수 있는 임의 위치로 반환 주소를 바꿀 수 있다.
힙 데이터 영역에서 일어나는 버퍼 오버플로를 힙 오버플로라 부르며 스택 기반 오버플로와는 다른 방법으로 이용할 수 있다.
힙 상의 메모리는 동적으로 응용 프로그램에 의해 실행시간 중에 할당되고 보통 프로그램 데이터를 보관하고 있다.
이용하는 방법은 이 데이터를 특정한 방법으로 오염시켜 응용 프로그램이 연결 리스트 포인터(linked list pointer)등과 같은 내부 자료 구조를 덮어쓰게 한다.
기본적인 힙 오버플로 기술은 동적 메모리 할당 연결(malloc 상위 수준 데이터)을 덮어씀으로써 프로그램 함수 포인터를 조작한다.
마이크로소프트 JPEG GDI+ 취약점은 힙 오버플로도 컴퓨터 사용자에 위험이 될 수 있다는 예이다.
이용당하는 것을 막는 장벽.
읽히거나 실행되기 전에 버퍼를 조작하면 이용하려는 시도를 막을 수도 있다.
이러한 조작은 이용당할 위협을 완화시켜줄 수는 있지만 불가능하게 만들지는 못한다.
조작에는 대문자로 또는 소문자로 변환, 제어 부호 제거, 숫자 영문자 제거 등이 포함된다.
이러한 방지 수단을 회피하는 기술도 존재한다: 숫자 영문자 코드, 다형성 코드, 자체 수정 코드, libc 귀환 공격 등. 같은 방법을 침입 감지 시스템에 의한 피탐지를 회피하는 데도 사용할 수 있다.
어떤 경우에는, 유니코드 변환의 경우도 포함되지만, 서비스 거부만 가능한 것으로 취약점의 위협이 잘못 표현되었지만 사실은 임의 코드의 원격 실행이 가능할 수도 있다.
실세계 이용에서는 다양한 이슈를 극복해야 공격을 신뢰성 있게 수행할 수 있다.
이러한 요소에는 주소에서의 무효값 바이트, 셸 코드 위치 가변성, 환경간 상이성, 그리고 다양한 대응수단이다.
NOP 슬라이드 기법은 가장 오래되고 가장 널리 알려진 스택 버퍼 오버플로 공격 기법이다.
버퍼의 정확한 주소를 찾는 문제를 해결하는 것으로, 표적 영역의 크기를 효과적으로 증대시킨다.
이를 위하여 훨씬 큰 영역의 스택을 NOP 기계어 코드 (컴퓨터가 이 명령을 읽으면 그 클럭 싸이클에는 아무 일도 하지 않는다)로 오염시킨다.
공격자 제공 데이터 끝, 즉 NOP 명령어 이후에 버퍼의 최상위 위치, 셸 코드가 있는 곳으로 상대적 jump 명령어를 둔다.
NOP 명령어의 모음이 "NOP 슬라이드"라고 불린다.
왜냐하면 귀환 주소를 덮어 쓸 때 NOP 영역 내의 주소값 어디를 써도 결국 NOP 명령어들을 따라 "미끄러져" 최후의 상대 jump로 실제 악성 코드에 도달하기 때문이다.
이 기법은 공격자가 상대적으로 작은 크기의 셸 코드의 위치 대신 스택에서 NOP 슬라이드의 위치를 추정하면 된다.
이 기법이 인기 있기 때문에 많은 침입 방지 시스템 업체에서 이러한 NOP 기계어 명령어 패턴을 탐색하여 사용중인 셸 코드를 검출할 것이다.
중요한 것은 NOP 슬라이드는 반드시 전통적인 NOP 기계어 코드만 담는 것은 아니며 어떤 명령이라도 셸 코드가 실행될 수 없을 만큼 기계 상태를 해치지 않으면 하드웨어로 지원되는 NOP자리에 사용할 수 있다.
결과적으로, 공격자가 NOP 슬라이드를 셸코드 실행에 사실상 지장이 없는 임의로 선택한 명령어로 채우는 관행이 널리 퍼지게 되었다.
한편, 이 방법이 어떤 공격이 성공적일 확률을 크게 높이는 반면, 문제가 없는 것은 아니다.
레지스터에 저장된 주소로 건너뛰기.
레지스터로 건너뛰기 jump to register 기법은 NOP-슬라이드와 같은 추가 공간이나 스택 위치 오프셋을 추정하지 않아도 잘 작동한다.
전략은 복귀 포인터를 덮어써서 통제된 버퍼, 즉 셸코드를 담고 있는 레지스터의 위치로 프로그램이 건너뛰게 만드는 것이다.
예를 들어 레지스터 A가 어떤 버퍼의 시작점을 담고 있다면, 이 레지스터를 오퍼랜드(operand)로 삼은 어떠한 건너뛰기 또는 호출로 실행 흐름의 제어권을 얻을 수 있다.
실전에서는 어떤 프로그램이 의도적으로는 어떤 특정 레지스터에 저장된 주소로 건너뛰는 명령을 포함하지 않을 수도 있다.
전통적인 해법은 어떤 의도되지 않은 적당한 작동코드 opcode 사례를 프로그램 메모리 어딘가 고정된 위치에서 찾는 것이다.
이 명령의 작동 코드는 FF E4이다.
공격자가 프로그램의 귀환 주소를 이 주소로 덮어 쓰면, 프로그램이 처음에는 0x7C941EED로 건너뛰어 실행 코드 FF E4를 JMP esp 명령으로 인식하여 스택의 정상 위치로 jump, 공격자의 코드를 실행할 것이다.
이 기법이 가능하다면 취약성의 심각성이 상당히 증가한다.
이는 왜냐하면 이용이 충분히 신뢰성 있게 작동하여 공격을 자동화, 실행하면 가상적으로 성공을 보증할 수 있게 되기 때문이다.
이러한 이유로, 이 기법이 인터넷 웜에서 가장 흔히 버퍼 오버플로 취약점을 이용하기 위해 사용된다.
이 방법은 또한 셸코드의 위치를 윈도 플랫폼 상에서 덮어씌어진 귀환 주소 뒤에 위치하더라고 가능하다.
실행 코드는 주소 0x00400000에 기반하고, x86은 리틀 엔디안 구조이므로 귀환 주소의 최후 바이트는 반드시 무효값이 되고, 이것이 버퍼 복사를 마감하며 그 이후에는 아무것도 씌지 않는다.
이로 하여 셸코드의 크기는 버퍼의 크기로 제한되며, 지나친 규제가 될 수 있다.
동적 연결 라이브러리 DLL은 고위 메모리 (0x01000000 이상)에 저장되며 따라서 무효 바이트가 없는 주소를 가지므로, 이 방법은 무효 바이트 (또는 다른 허용 안되는 문자)를 덮어씌어진 복귀 주소에서 제거할 수 있다.
이런 식으로 사용되면, 이 방법은 때때로 DLL 프램폴라이닝이라고 불린다.
다양한 기법이 버퍼 오버플로를 감지
또는 방지하기 위하여, 다양한 대가를 지불하며 사용되어 왔다.
가장 신뢰성 있는 버퍼 오버플로를 회피 또는 방지하기 위한 방법은 언어 수준에서 자동 보호를 사용하는 것이다.
그러나 이러한 종류의 보호는 기존 코드에 적용할 수 없고, 때때로 기술적, 상업적, 또는 문화적 제한으로 취약한 언어를 요구한다.
프로그래밍 언어 선택은 버퍼 오버플로 발생에 깊이 있는 영향을 미칠 수 있다. 2008년 기준으로, C와 그로부터 발전된 C++는 가장 인기 있는 언어들에 포함되며, 거대한 양의 소프트웨어가 이러한 언어로 작성되었다.
C와 C++는 메모리상 어떤 부분에서도 데이터 접근과 덮어쓰기에 대한 내장 보호 기능이 없다.
더 구체적으로, 데이터가 어떤 배열 (버퍼의 구현)에 씌어지는 데이터가 그 배열의 범위 안에 씌어지는지 검사하지 않는다.
그러나 표준 C++ 라이브러리는 데이터를 안전히 저장하는 많은 방법을 제공하고, C언어에서 버퍼 오버플로를 회피하기 위한 기술도 존재한다.
장기간 작동시키며 안정성을 유지해야 하는 프로그램을 작성해야 한다면 보다 데이터 타입과 오버플로 검사가 엄격한 C#과 자바를 사용할 수 있다.