shopkeeper/korean_wiki_content_only_120125 huggingface dataset:
펄 프로그래밍 언어의 구조는 언어의 문법 규칙과 프로그램이 구성되는 일반적인 방식을 모두 포함한다. 펄의 설계 철학은 일반적으로 인용되는 "어떤 일을 하는 데에는 하나 이상의 길이 있다"라는 표어에 표현되어 있다. 다중 패러다임, 동적 형식 언어로서 펄은 프로그램 설계에 상당한 유연성을 허용한다. 펄은 또한 모듈화를 장려한다. 이는 유닉스 기반의 구성 요소 기반 설계 구조에 기인하며, 100,000개 이상의 모듈로 구성된 커뮤니티 유지 관리 저장소인 CPAN 아카이브의 규모에 책임이 있다.
펄에서 최소한의 ""Hello, World!" 프로그램"은 다음과 같이 작성할 수 있다.
이것은 출력한다 문자열 Hello, World! 와 새 줄, 기호적으로 codice_1 문자로 표현되며, 이 문자의 해석은 선행하는 이스케이프 문자(역슬래시)에 의해 변경된다. 버전 5.10부터 새로운 'say' 내장 함수는 훨씬 더 간단하게 동일한 효과를 낸다.
say "Hello, World!"
전체 펄 프로그램은 펄에 대한 명령줄 매개변수로도 지정될 수 있으므로, 동일한 프로그램은 명령줄에서도 실행될 수 있다 (유닉스의 예시):
$ perl -e 'print "Hello, World!\n"'
이 프로그램의 정식 형태는 약간 더 길다:
해시 마크 문자는 펄에서 주석을 나타내며, 코드 줄의 끝까지 이어지고 컴파일러에 의해 무시된다 (Windows 제외). 여기에 사용된 주석은 특별한 종류이다: 이것은 셔뱅 줄이라고 불린다. 이는 유닉스 계열 운영 체제에 펄 인터프리터를 찾도록 지시하여, codice_2을 명시적으로 언급하지 않고도 프로그램을 호출할 수 있게 한다. (마이크로소프트 윈도우 시스템에서 펄 프로그램은 일반적으로 codice_3 확장자를 펄 인터프리터와 연결하여 호출된다는 점에 유의하라. 이러한 상황을 처리하기 위해 codice_2은 셔뱅 줄을 감지하고 스위치를 위해 파싱한다.)
정식 형태의 두 번째 줄에는 펄에서 문장을 구분하는 데 사용되는 세미콜론이 포함되어 있다. 블록이나 파일에 단일 문장만 있는 경우 구분 기호는 불필요하므로 프로그램의 최소 형태에서 또는 일반적으로 블록이나 파일의 마지막 문장에서 생략할 수 있다. 정식 형태에는 포함되어 있는데, 이는 편집을 더 쉽게 만들기 위해 불필요할 때도 모든 문장을 종료하는 것이 일반적이기 때문이다: 세미콜론을 조정할 필요 없이 블록이나 파일의 끝에 코드를 추가하거나 이동할 수 있다.
펄 버전 5.10은 출력에 새 줄 문자를 암묵적으로 추가하는 codice_5 함수를 도입하여, 최소한의 "Hello World" 프로그램을 더욱 짧게 만든다.
use 5.010; # 새로운 5.10 함수를 가져오려면 반드시 있어야 하며, 5.10이 아닌 5.010에 유의
say 'Hello, World!'
펄에는 여러 가지 기본적인 자료형이 있다. 가장 일반적으로 사용되고 논의되는 것은 스칼라, 배열, 해시, 파일 핸들, 그리고 서브루틴이다.
스칼라 값.
문자열 값(리터럴)은 따옴표로 묶어야 한다. 문자열을 이중 따옴표로 묶으면 문자열에 나타나는 변수 이름의 값이 문자열에서 변수 이름을 자동으로 대체(또는 삽입됨)할 수 있다. 문자열을 작은 따옴표로 묶으면 변수 삽입이 방지된다.
예를 들어, codice_6이 codice_7인 경우:
문자열에 큰따옴표를 포함시키려면 앞에 백슬래시를 붙이거나 문자열을 작은따옴표로 묶어야 한다. 작은따옴표를 포함시키려면 앞에 백슬래시를 붙이거나 문자열을 큰따옴표로 묶어야 한다.
문자열은 codice_12 및 codice_13 따옴표와 유사한 연산자를 사용하여 따옴표로 묶을 수도 있다.
마지막으로, 여러 줄 문자열은 히어 도큐먼트를 사용하여 정의할 수 있다.
$multilined_string = «EOF;
This is my multilined string
note that I am terminating it with the word "EOF".
숫자(숫자 상수)는 따옴표가 필요하지 않다. 펄은 숫자를 문자열로, 문자열을 숫자로 변환하며 이는 사용되는 컨텍스트에 따라 달라진다. 문자열이 숫자로 변환될 때, 문자열의 뒤따르는 비숫자 부분은 버려진다. 문자열의 선행 부분이 숫자가 아닌 경우, 문자열은 숫자 0으로 변환된다. 다음 예시에서 문자열 codice_18과 codice_19은 숫자로 취급된다. 이 코드는 숫자 '5'를 출력한다. 변수의 값은 동일하게 유지된다. 펄에서 codice_20는 항상 숫자 덧셈 연산자이다. 문자열 연결 연산자는 마침표이다.
$n = '3 apples';
$m = '2 oranges';
print $n + $m;
분수 값을 정수 값으로 반올림하는 함수가 제공된다. codice_21는 소수 부분을 잘라내어 0으로 반올림하고, codice_22과 codice_23는 각각 항상 올림과 항상 내림을 수행한다. codice_24 또는 codice_25의 숫자-문자열 변환은 짝수로 반올림하며, 은행원 반올림을 사용한다.
펄에는 조건문을 평가하는 데 사용하는 불리언 컨텍스트도 있다. 다음 값들은 모두 펄에서 거짓으로 평가된다.
$false = 0; # 숫자 0
$false = 0.0; # 실수 0
$false = 0b0; # 이진수 0
$false = 0x0; # 십육진수 0
$false = '0'; # 문자열 "0"
$false = ""; # 빈 문자열
$false = (); # 빈 리스트
$false = undef; # undef의 반환 값
$false = 2-3+1 # 0으로 계산되어 "0"으로 변환되므로 거짓이다
다른 모든 (0이 아닌) 값은 참으로 평가된다. 여기에는 이상한 자기 설명 리터럴 문자열 "0 but true"도 포함되는데, 이는 사실 숫자로는 0이지만, 불리언으로 사용될 때는 참이다. 모든 비숫자 문자열도 이 속성을 가지지만, 이 특정 문자열은 숫자 경고 없이 펄에 의해 잘린다. 이 문자열의 덜 명시적이지만 개념적으로 더 이식성이 높은 버전은 " 또는 "인데, 이는 문자가 0으로 평가되는 것에 의존하지 않는다. 왜냐하면 '0E0'은 문자 그대로 0 곱하기 10의 0제곱이기 때문이다. 빈 해시 codice_26도 참이다. 이 컨텍스트에서 codice_26는 빈 블록이 아니다. 왜냐하면 codice_28는 codice_29를 반환하기 때문이다.
평가된 불리언 표현식도 스칼라 값이다. 문서는 참 또는 거짓의 특정 값이 반환된다고 약속하지 않는다. 많은 불리언 연산자는 참에 대해 1을 반환하고 거짓에 대해 빈 문자열을 반환한다. 함수는 변수에 어떤 값이 설정되었는지 여부를 결정한다. 위의 예에서 는 를 제외한 모든 값에 대해 참이다.
1 또는 0이 특별히 필요한 경우, 조건부 연산자를 사용하여 명시적인 변환을 수행할 수 있다.
my $real_result = $boolean_result ? 1 : 0;
배열 값.
배열 값(또는 리스트)은 요소들을 나열하고 쉼표로 구분하며 괄호로 묶어(최소한 연산자 우선순위에 따라 필요한 경우) 지정한다.
@scores = (32, 45, 16, 5);
qw() 따옴표와 유사한 연산자는 따옴표와 쉼표를 입력하지 않고도 문자열 목록을 정의할 수 있게 한다. 괄호 대신 거의 모든 구분 기호를 사용할 수 있다. 다음 줄은 동일하다.
@names = ('Billy', 'Joe', 'Jim-Bob');
@names = qw(Billy Joe Jim-Bob);
`split` 함수는 구분 문자열이나 정규 표현식을 사용하여 문자열 표현식에서 분리된 문자열 목록을 반환한다.
@scores = split(',', '32,45,16,5');
목록의 개별 요소는 대괄호 안에 숫자 인덱스를 제공하여 접근한다. 스칼라 시길을 사용해야 한다. 범위 또는 숫자 인덱스 목록을 대괄호 안에 사용하여 하위 목록(배열 슬라이스)도 지정할 수 있다. 이 경우 배열 시길이 사용된다. 예를 들어, codice_30은 codice_31이고(배열의 첫 번째 요소는 인덱스 값 0을 가진다), codice_32은 codice_33이다.
해시 값.
펄 프로그래머는 키/값 쌍 목록에서 해시(또는 연관 배열)를 초기화할 수 있다. 키와 값이 쉼표 대신 codice_34 연산자(때로는 fat comma라고 불림)로 구분되면 따옴표 없이(barewords) 사용할 수 있다. 다음 줄은 동일하다.
%favorite = ('joe', "red", 'sam', "blue");
%favorite = (joe =&gt; 'red', sam =&gt; 'blue');
해시의 개별 값은 해당 키를 중괄호 안에 제공하여 접근한다. codice_35 시길은 접근된 요소를 스칼라로 식별한다. 예를 들어, 는 와 같다. 해시는 개별적으로 값을 설정하여 초기화할 수도 있다.
$favorite{joe} = 'red';
$favorite{sam} = 'blue';
$favorite{oscar} = 'green';
대신 codice_36 시길을 사용하여 여러 요소에 접근할 수도 있다(결과를 목록으로 식별). 예를 들어,
은 와 같다.
파일 핸들.
파일 핸들은 리소스에 대한 읽기 및 쓰기 접근을 제공한다. 이것들은 대부분 디스크의 파일이지만, 장치, 파이프, 또는 심지어 스칼라 값일 수도 있다.
원래 파일 핸들은 패키지 변수로만 생성할 수 있었고, 다른 변수들과 구별하기 위해 ALL_CAPS 규칙을 사용했다. Perl 5.6 이상은 명명된 파일 핸들 대신 스칼라 변수도 허용하며, 이 변수는 익명 파일 핸들에 대한 참조로 설정된다(자동 생성).
타입글로브 값.
타입글로브 값은 심볼 테이블 항목이다. 타입글로브의 주요 용도는 심볼 테이블 별칭을 만드는 것이다. 예를 들어:
배열 함수.
배열의 요소 수는 스칼라 컨텍스트에서 배열을 평가하거나 codice_37 시길을 사용하여 결정할 수 있다. 후자는 배열의 마지막 요소 인덱스를 제공하며, 요소의 수가 아니다. scalar()와 (codice_38) 표현식은 동일하다.
해시 함수.
전체 해시에서 작동하는 몇 가지 함수가 있다. keys 함수는 해시를 받아 키 목록을 반환한다. 마찬가지로 values 함수는 해시의 값을 반환한다. 키와 값은 일관되지만 임의의 순서로 반환된다는 점에 유의한다.
while (($name, $address) = each %addressbook) {
print "$name lives at $address\n";
foreach my $next_name (sort keys %addressbook) {
print "$next_name lives at $addressbook{$next_name}\n";
펄에는 여러 종류의 제어 구조가 있다.
C, 자바스크립트, 자바 프로그래밍 언어와 유사한 블록 지향 제어 구조를 가지고 있다. 조건은 괄호로 둘러싸고, 제어되는 블록은 중괄호로 둘러싼다.
단일 문장만 제어될 때는 문장 수정자가 더 간결한 문법을 제공한다.
statement if cond ;
statement unless cond ;
statement while cond ;
statement until cond ;
statement foreach list ;
단락 논리 연산자는 표현식 수준에서 제어 흐름에 영향을 미치는 데 일반적으로 사용된다.
expr and expr
expr &amp;&amp; expr
expr or expr
expr || expr
흐름 제어 키워드 codice_39(C의 codice_40에 해당), codice_41(C의 codice_42에 해당), codice_43, codice_44는 표현식이므로 단락 연산자와 함께 사용할 수 있다.
펄에는 각각 두 가지 형태를 가진 두 가지 암시적 반복 구조도 있다.
results = grep { … } list
results = grep expr, list
results = map { … } list
results = map expr, list
codice_45은 제어되는 블록이나 표현식이 참으로 평가되는 리스트의 모든 요소를 반환한다. codice_46은 리스트의 각 요소에 대해 제어되는 블록이나 표현식을 평가하고 결과 값의 리스트를 반환한다. 이러한 구조는 간단한 함수형 프로그래밍 스타일을 가능하게 한다.
5.10.0 릴리스 이전에는 펄 5에 Switch 문이 없었다. 5.10.0부터 codice_47/codice_48이라는 다중 분기 문이 다음 형식으로 제공된다.
use v5.10; # 새로운 5.10 함수를 가져오려면 반드시 있어야 함
문법적으로 이 구조는 다른 언어에서 발견되는 Switch 문과 유사하게 작동하지만 몇 가지 중요한 차이점이 있다. 가장 큰 차이점은 switch/case 구조와 달리 given/when 문은 명시적으로 정의된 break 명령을 기다리지 않고 첫 번째 성공적인 분기 후에 실행을 중단한다는 것이다. 반대로 switch 동작을 에뮬레이션하려면 명시적인 codice_40가 필요하다.
Perl 5.10을 사용하지 않는 사람들을 위해 Perl 문서는 다른 제어 구조를 사용하여 동일한 효과를 얻을 수 있는 6가지 방법을 설명한다. 또한 라쿠 언어의 기능을 모델로 한 Switch 모듈도 있다. 이는 소스 필터를 사용하여 구현되므로 비공식적으로 사용이 권장되지 않는다.
펄에는 codice_50 문이 포함되어 있지만 거의 사용되지 않는다. 다른 언어에서 codice_51가 필요한 상황은 펄의 다양한 흐름 제어 옵션 때문에 자주 발생하지 않는다.
또한 꼬리 재귀를 수행하는 codice_52 문도 있다. 이것은 현재 서브루틴을 종료하고 지정된 codice_53를 즉시 호출한다. 이는 호출자가 Perl 자체보다 더 효율적인 스택 관리를 수행할 수 있는 상황(일반적으로 현재 스택에 변경이 필요 없는 경우)과 깊은 재귀에서 사용되며, 꼬리 호출은 반환 시 스코프/스택 관리 오버헤드를 피하므로 성능에 상당한 긍정적인 영향을 미칠 수 있다.
서브루틴은 codice_53 키워드로 정의되며 단순히 이름을 지정하여 호출한다. 해당 서브루틴이 아직 선언되지 않은 경우, 호출하려면 함수 이름 뒤에 괄호를 붙이거나 함수 이름 앞에 앰퍼샌드(&amp;)를 붙여야 한다. 그러나 괄호 없이 &amp;를 사용하면 현재 서브루틴의 인수가 호출되는 서브루틴으로 암시적으로 전달되며, 괄호와 함께 &amp;를 사용하면 프로토타입이 무시된다.
foo();
&amp;foo; # (이것도 작동하지만, 서브루틴에 전달되는 인수에 관한 다른 결과가 있다.)
foo; # 여기서는 괄호가 필요하지 않다.
서브루틴 이름 뒤에 인수 목록을 제공할 수 있다. 인수는 스칼라, 목록 또는 해시가 될 수 있다.
foo $x, @y, %z;
서브루틴의 매개변수는 개수나 유형을 선언할 필요가 없으며, 실제로 호출마다 달라질 수 있다. 매개변수 유효성 검사는 서브루틴 내부에서 명시적으로 수행해야 한다.
배열은 요소로 확장되고, 해시는 키/값 쌍 목록으로 확장되며, 이 모든 것은 스칼라의 단일 평면 목록으로 서브루틴에 전달된다.
전달된 인수는 모두 특수 배열 codice_55에서 서브루틴에서 사용할 수 있다. codice_55의 요소는 실제 인수에 대한 참조이다. codice_55의 요소를 변경하면 해당 인수가 변경된다.
codice_55의 요소는 일반적인 방식으로 첨자를 사용하여 접근할 수 있다.
$_[0], $_[1]
그러나 결과 코드는 읽기 어려울 수 있으며, 매개변수는 참조에 의한 호출 의미론을 가지므로 바람직하지 않을 수 있다.
일반적인 관용구 중 하나는 codice_55를 명명된 변수 목록에 할당하는 것이다.
my ($x, $y, $z) = @_;
이것은 니모닉 매개변수 이름을 제공하고 값에 의한 호출 의미론을 구현한다. codice_60 키워드는 다음 변수들이 포함하는 블록에 어휘적으로 스코프된다는 것을 나타낸다.
다른 관용구는 codice_55에서 매개변수를 shift하는 것이다. 이는 서브루틴이 단 하나의 인수를 취하거나 객체 지향 모듈에서 codice_62 인수를 처리하는 데 특히 일반적이다.
my $x = shift;
서브루틴은 명명된 인수를 시뮬레이션하기 위해 codice_55를 해시에 할당할 수 있다. 이는 세 개 이상의 매개변수를 가질 가능성이 있는 서브루틴에 대해 Perl Best Practices에서 권장된다.
sub function1 {
my %args = @_;
print "'x' argument was '$args{x}'\n";
function1( x =&gt; 23 );
서브루틴은 값을 반환할 수 있다.
return 42, $x, @y, %z;
서브루틴이 codice_43 문을 통해 종료되지 않으면, 서브루틴 본문 내에서 마지막으로 평가된 표현식을 반환한다. 반환 값의 배열과 해시는 인수와 마찬가지로 스칼라 목록으로 확장된다.
반환된 표현식은 서브루틴의 호출 컨텍스트에서 평가된다. 이는 부주의한 사람들을 놀라게 할 수 있다.
$x = list; # 6 반환 - 목록의 마지막 요소
$x = array; # 3 반환 - 목록의 요소 수
@x = list; # (4, 5, 6) 반환
@x = array; # (4, 5, 6) 반환
서브루틴은 codice_65 함수를 사용하여 호출 컨텍스트를 파악할 수 있다.
sub either {
return wantarray ? (1, 2) : 'Oranges';
$x = either; # "Oranges" 반환
@x = either; # (1, 2) 반환
펄 언어에는 정규 표현식(RE, 또는 regexes)을 작성하기 위한 특수화된 구문이 포함되어 있으며, 인터프리터에는 문자열을 정규 표현식과 일치시키는 엔진이 포함되어 있다. 정규 표현식 엔진은 퇴각검색 알고리즘을 사용하여, 단순한 패턴 매칭에서 문자열 캡처 및 대체까지 기능을 확장한다. 정규 표현식 엔진은 헨리 스펜서가 작성한 정규 표현식에서 파생되었다.
펄 정규 표현식 구문은 원래 유닉스 버전 8 정규 표현식에서 가져왔다. 그러나 펄의 첫 번째 릴리스 이전에 분기되었으며 그 이후로 훨씬 더 많은 기능을 포함하도록 성장했다. PHP, 루비, 자바, 마이크로소프트의 닷넷 프레임워크, 아파치 HTTP 서버와 같은 다른 많은 언어와 응용 프로그램이 이제 펄 호환 정규 표현식을 POSIX 정규 표현식보다 채택하고 있다.
정규 표현식 문법은 역사적으로 매우 간결하다. 초기 정규 표현식 방언은 글로브보다 표현력이 약간 더 많았고, 문법은 표현식이 일치하는 텍스트와 유사하도록 설계되었다. 이는 지원되는 몇 가지 주장을 표현하기 위해 단일 구두점 문자나 한 쌍의 구분 문자를 넘지 않도록 하는 것을 의미했다. 시간이 지남에 따라 정규 표현식의 표현력은 엄청나게 성장했지만, 문법 설계는 결코 수정되지 않았고 계속해서 구두점에 의존하고 있다. 결과적으로 정규 표현식은 난해하고 매우 밀집될 수 있다.
codice_66 (매치) 연산자는 정규 표현식 매치를 도입한다. (여기 모든 예시에서처럼 슬래시로 구분되는 경우, 간결성을 위해 선행하는 codice_67은 생략될 수 있다. 다음 모든 예시에서처럼 codice_67이 있는 경우, 슬래시 대신 다른 구분 기호를 사용할 수 있다.) 가장 간단한 경우, 다음과 같은 표현식은
$x =~ /abc/;
문자열 codice_69가 정규 표현식 codice_70와 일치하는 경우에만 참으로 평가된다.
반면에 codice_71 (대체) 연산자는 검색 및 대체 작업을 지정한다.
$x =~ s/abc/aBc/; # b를 대문자로
정규 표현식의 또 다른 용도는 codice_72 함수의 구분 기호를 지정하는 것이다.
@words = split /,/, $line;
codice_72 함수는 정규 표현식과 일치하는 것에 의해 분리된 문자열 부분들의 목록을 생성한다. 이 예제에서는 한 줄이 쉼표로 구분된 부분들의 목록으로 나뉘고, 이 목록은 codice_74 배열에 할당된다.
펄 정규 표현식은 수정자를 사용할 수 있다. 이들은 표현식의 의미를 수정하는 단일 문자 접미사이다.
$x =~ /abc/i; # 대소문자 구분 없는 패턴 매치
$x =~ s/abc/aBc/g; # 전역 검색 및 대체
정규 표현식의 간결한 문법은 이해하기 어렵고 암호처럼 만들 수 있기 때문에, 프로그래머가 더 읽기 쉬운 정규 표현식을 작성하는 데 도움을 주기 위해 펄에 codice_75 수정자가 추가되었다. 이 수정자는 프로그래머가 정규 표현식 내부에 공백과 주석을 추가할 수 있게 한다.
$x =~ /
a # 'a' 매치
. # 임의의 문자
c # 그리고 'c' 문자
/x;
정규 표현식의 일부는 괄호로 묶을 수 있으며, 일치하는 문자열의 해당 부분은 캡처된다. 캡처된 문자열은 순차적인 내장 변수 codice_76에 할당되며, 캡처된 문자열 목록은 일치의 값으로 반환된다.
$x =~ /a(.)c/; # 'a'와 'c' 사이의 문자 캡처
캡처된 문자열 codice_76는 나중에 코드에서 사용할 수 있다.
펄 정규 표현식은 codice_78 수정자를 사용하여 캡처된 일치 항목에 내장 또는 사용자 정의 함수를 적용할 수도 있다.
$x = "Oranges";
$x =~ s/(ge)/uc($1)/e; # OranGEs
$x .= $1; # 이전 문장에서 일치한 내용으로 $x를 추가: OranGEsge
펄에서 객체 지향 프로그래밍 코드를 작성하는 방법은 여러 가지가 있다. 가장 기본적인 방법은 "축복받은(blessed)" 참조를 사용하는 것이다. 이것은 모든 유형의 참조를 주어진 패키지에 속하는 것으로 식별하여 작동하며, 패키지는 축복받은 참조에 대한 메서드를 제공한다. 예를 들어, 2차원 점은 다음과 같이 정의할 수 있다.
sub Point::new {
# 여기서 Point-&gt;new(4, 5)는 $class가 'Point'가 되도록 한다.
# 이는 서브클래싱을 지원하는 변수이다 (perloop manpage 참조).
my ($class, $x, $y) = @_;
bless [$x, $y], $class; # 암시적 반환
sub Point::distance {
my ($self, $from) = @_;
my ($dx, $dy) = ($$self[0] - $$from[0], $$self[1] - $$from[1]);
sqrt($dx * $dx + $dy * $dy);
이 클래스는 codice_79를 호출하여 인스턴스를 생성하고, 해당 인스턴스에 codice_80를 호출하여 사용할 수 있다.
my $p1 = Point-&gt;new(3, 4);
my $p2 = Point-&gt;new(0, 0);
print $p1-&gt;distance($p2); # 5를 출력
많은 최신 펄 애플리케이션은 Moose 객체 시스템을 사용한다. Moose는 메타 객체 프로토콜인 Class::MOP 위에 구축되어 모든 Moose 사용 클래스에 대한 완전한 자기 성찰 기능을 제공한다. 따라서 간단한 API를 사용하여 클래스의 속성, 부모, 자식, 메서드 등을 질문할 수 있다.
Moose 클래스:
Moose 역할:
Moose의 MooseX::Declare 확장자를 사용하여 작성된 클래스의 예시:
use MooseX::Declare;
class Point3D extends Point {
has 'z' =&gt; (isa =&gt; 'Num', is =&gt; 'rw');
after clear {
$self-&gt;z(0);
method set_to (Num $x, Num $y, Num $z) {
$self-&gt;x($x);
$self-&gt;y($y);
$self-&gt;z($z);
이것은 codice_81라는 클래스로, Moose 예제에서 설명된 codice_82라는 다른 클래스를 확장한다. 이 클래스는 기본 클래스에 새로운 속성 codice_83를 추가하고, codice_84 메서드를 재정의하며, codice_85 메서드를 확장한다.
김민정은 대한민국의 소방공무원이자 간호사로, 제주서부소방서 한림119센터에서 근무하는 소방위이다. 2024년 응급전문간호사 국가자격을 취득하여 대한민국 소방공무원 가운데 최초의 응급전문간호사가 되었다. 임용 전 병원 응급실에서 8년간 근무했고 임용 후 119구급대원으로 20여 년 활동하였다.
김민정은 간호사 면허 취득 후 병원 응급실에서 8년간 임상 경험을 쌓았고, 이후 소방공무원으로 채용되어 119구급대에서 현장 구급업무를 담당하였다. 아주대학교 간호대학원 석사과정을 수료하였다.
2025년 인터뷰에서 김민정은 구급차 내 초기 처치의 질이 환자 예후를 좌우한다는 점을 강조하며, 병원 응급실과 119구급대 사이의 임상·교육 가교 역할을 목표로 제시한다.
최종욱(영문: Choi Jong-uk)은 2023년 7월부터 페루 주재 대한민국 대사로 재임 중인 대한민국의 외교관이다.
외교관 경력은 1997년 입부로 시작하였다.
대사관 공식 인사말에 따르면, 한‑페루 관계의 장기적 비전을 위해 (a) 전통적 우호 협력의 강화, (b) 에너지·인프라·디지털 전환·방산·기후변화 등 신분야로의 협력 확대, (c) 상호 이해 증진과 인적교류 심화를 중점 목표로 제시한다.
대한민국 외교부에서 중남미 지역을 전공한 경력과 스페인어 역량을 바탕으로, 국장기부터 대사기에 이르기까지 중남미 네트워크·의제 관리에 강점을 보여 왔다는 평가가 있다.
개인사 및 기타.
전임자는 조영준 대사이다.
김준표는 대한민국의 외교관으로, 2024년 1월부터 주이란 대한민국 대사관의 제23대 대한민국 대사로 재임 중이다.
김준표는 외무고시 31회로 입부하여 북미1과장과 북미국장, 주오만·주미국 참사관을 지냈다. 2024년 3월 13일 이란 외교부 청사에서 호세인 아미르압돌라히안 외교부 장관에게 신임장 사본을 제출하고 공식 업무를 개시하였다. 이후 상공회의소(ICCIMA) 및 지방산업과의 연계를 강화하고, 수교 63주년을 계기로 문화·예술 협업을 확대하였다.
공관 운영은 의전·경제·행정혁신·문화가 결합된 다차원 구조를 지향한다. 신임장 절차 완료 이후 경제단체(ICCIMA)와 지방산업(마르카지주), 정부 디지털 전환 의제, 문화예술(서예·음악) 협업을 연계함으로써 관계의 복원력과 상호이해를 증진하는 방향으로 전개되었다.
현지·국제 매체는 인사발표 당시 그의 북미 담당 경력을 바탕으로 한 정책·현안 조정 역량을 지목했고, 외교부 장관 서거 시의 애도 메시지 등 공식 발언을 통해 이란 외교 커뮤니티와의 유대 강화 의지를 표명했다고 전한다.
VT100은 1978년 8월 디지털 이큅먼트 코퍼레이션 (DEC)이 선보인 비디오 단말기이다. 커서 제어 및 기타 작업을 위한 ANSI 이스케이프 코드를 지원한 최초의 터미널 중 하나였으며, 키보드의 상태 표시등 제어와 같은 특수 기능을 위한 여러 확장 코드를 추가했다. 이는 ANSI 표준의 빠른 채택으로 이어졌고, 이 표준은 하드웨어 비디오 단말기와 이후 단말 에뮬레이터의 사실상 표준이 되었다.
VT100 시리즈, 특히 VT102는 시장에서 매우 성공적이었고, DEC를 당시 선도적인 단말기 공급업체로 만들었다. VT100 시리즈는 1983년부터 VT200 시리즈로 대체되었고, 이 역시 동등하게 성공적이었다. 궁극적으로 VT 시리즈는 VT100의 성공에 힘입어 600만 대 이상 판매되었다.
DEC의 첫 번째 비디오 터미널은 VT05 (1970)였고, 이어서 VT50 (1974)이 나왔으며 곧 VT52 (1975)로 업그레이드되었다. VT52는 80열 24행의 텍스트 디스플레이, 양방향 스크롤링, 그리고 커서를 화면에서 움직일 수 있는 맞춤형 제어 프로토콜을 특징으로 했다. 이러한 "스마트 터미널"은 그 기능과 더불어 IBM 3270과 같은 시스템의 경우처럼 일반적으로 분산 애플리케이션에 비싼 컨트롤러를 요구하는 맞춤형 독점 연결 대신 저렴한 직렬 링크를 통해 작동할 수 있다는 점에서 큰 성공을 거두었다. 이와 대조적으로 ADM-3 (1975)와 같은 "멍청한 터미널" 또는 "유리 텔레타이프"는 완전한 커서 주소 지정 기능과 같은 고급 기능이 부족했고, 주로 가능한 가장 낮은 하드웨어 비용으로 경쟁했다.
VT100은 1978년 8월에 출시되어 VT50/VT52 제품군을 대체했다. 이전 모델과 마찬가지로 최소 50비트/초의 속도로 직렬 회선을 통해 호스트 시스템과 통신했지만, 최대 속도를 VT52의 두 배인 19,200비트/초로 늘렸다.
이 터미널은 "부드러운 스크롤링" 옵션을 제공했는데, 이는 갑작스러운 "점프"로 진행하는 대신 표시된 텍스트 줄이 새로운 줄을 위해 공간을 만들기 위해 화면에서 점진적으로 위아래로 움직이게 했다. 이 기능은 텍스트를 스캔하거나 읽기 쉽게 만들었지만, 최대 데이터 전송 속도를 다소 늦췄다.
주요 내부 변경 사항은 제어 프로토콜이었다. VT50/52의 독점 커서 제어 언어와 달리 VT100은 새로 등장한 명령 코드용 ANSI X3.64 표준을 기반으로 했다. 당시 일부 컴퓨터 공급업체는 새 표준이 최첨단 기술을 넘어섰고 합리적인 가격으로 구현할 수 없다고 주장했다. 저가 마이크로프로세서의 도입과 끊임없이 하락하는 주기억장치 비용은 greatly 확장된 기능을 제공했고, VT100은 새로운 인텔 8080을 내부 프로세서로 사용했다. 또한 VT100은 이전 제어 시퀀스도 지원하여 VT52 호환 소프트웨어에 대한 하위 호환성을 제공했다.
VT52를 넘어선 다른 개선 사항으로는 132열 모드와 깜박임, 굵게 표시, 반전 비디오, 밑줄, 이중 크기 또는 이중 폭 문자 선과 같은 다양한 "그래픽 표현"이 포함되었다. VT100은 또한 화면에 양식을 그릴 수 있는 다양한 유사 그래픽을 포함하는 추가 상자 그리기 문자 집합을 도입했다.
VT100의 모든 구성 설정은 화면에 표시되는 대화형 디스플레이를 사용하여 이루어졌으며, 설정 데이터는 단말기 내부의 비휘발성 메모리에 저장되었다. 유지보수성 또한 크게 향상되었는데, VT100은 교체 가능한 모듈로 빠르게 분해될 수 있었기 때문이다.
VT100의 내부 레이아웃은 구매할 수 있는 VT100의 선택적 보드를 제외하고 기능에 따라 두 개의 보드로 나눌 수 있다. 터미널 자체의 CRT 조정과 같은 용도로 사용되는 비디오 모니터 보드가 있다. 이 보드는 전자 빔이 오프셋된 경우 CRT를 조정하는 역할을 한다. 터미널 컨트롤러 보드는 터미널 논리를 처리하며, DEC의 인텔 8080 재브랜딩과 같은 다양한 칩을 포함한다.
1983년, VT100은 VT220과 같은 더 강력한 VT200 시리즈 터미널로 대체되었다.
VT100은 장치 기능을 향상시키기 위해 설계된 다양한 타사 및 자체 보드를 가지고 있다. 이 중에서 DEC 자체에서 가장 주목할 만한 것은 VT1XX-AB (고급 비디오 옵션)와 VT1XX-AA (20mA 전류 루프 옵션)이다. 이 카드들의 기능과 존재 여부는 VT100 사용자 가이드 4장에 설명되어 있다.
VT100은 인텔 8080이라는 산업 표준 마이크로프로세서를 기반으로 한 디지털 최초의 터미널이었다. 터미널에 외부 프린터, 추가 그래픽 렌더링 및 더 많은 문자 메모리를 지원하는 옵션을 추가할 수 있었다. "고급 비디오 옵션"(AVO)으로 알려진 마지막 옵션은 터미널이 132열 모드에서 완전한 24줄의 텍스트를 지원하도록 허용하여, 132열 모드에서 사용될 때 확장되지 않은 모델의 14줄에서 증가시켰다. VT100은 디지털이 여러 관련 하드웨어 제품을 구축한 플랫폼이 되었다.
VT101과 VT102는 비용 절감형의 비확장 후속 버전이었다. VT101은 본질적으로 기본 모델 VT100이었고, VT102는 AVO와 직렬 프린터 포트 옵션이 기본으로 사전 설치되었다. VT105는 이전 VT55와 동일한 시스템과 대부분 호환되는 파형 그래픽으로 알려진 간단한 그래픽 서브시스템을 포함했다. 이 시스템은 두 개의 수학 함수를 일반 텍스트 디스플레이 위에 겹쳐 화면에 그릴 수 있도록 하여 텍스트와 그래픽을 혼합하여 차트 및 유사한 출력을 생성할 수 있게 했다. VT125는 바이트 효율적인 원격 그래픽 명령 세트(ReGIS) 구현을 추가했는데, 이는 VT105처럼 터미널이 별도의 비효율적인 그래픽 모드로 설정될 필요 없이 사용자 정의 ANSI 코드를 사용하여 터미널에 그래픽 명령을 보냈다.
VT131은 블록 모드 지원을 추가하여, 양식을 터미널로 보내 사용자가 로컬에서 채울 수 있도록 한 다음, 양식이 채워지면 양식 필드의 내용을 호스트로 다시 보낼 수 있도록 했다.
VT100 폼 팩터는 케이스 내부에 확장 공간을 상당히 많이 남겨두었으며, DEC는 이를 활용하여 여러 올인원 독립형 미니컴퓨터 시스템을 생산했다. VT103은 카드케이지와 4×4(8슬롯) Q-버스 백플레인을 포함하여, 케이스 내부에 작은 16비트 LSI-11 마이크로컴퓨터 시스템을 구성하기에 충분했으며, 매우 느린 디스크 드라이브처럼 사용할 수 있는 선택적 이중 TU58 DECtape II 블록 주소 지정 카트리지 테이프 드라이브를 지원했다. VT180 (코드명 "로빈")은 CP/M 운영체제를 실행하기 위해 자일로그 Z80을 사용하는 단일 보드 마이크로컴퓨터를 추가했다. VT278 (DECmate)은 작은 PDP-8 프로세서를 추가하여 터미널이 디지털의 WPS-8 워드 프로세싱 소프트웨어를 실행할 수 있도록 했다.
박종석(영어: Park Chong-suk, 1967년 3월 25일 ~ )은 대한민국의 외교관으로, 2024년부터 쿠웨이트 주재 대한민국 대사이다. 2020년부터 2023년까지 네팔 주재 대한민국 대사를 지냈다.
박종석은 1967년 3월 25일 출생하였다. 서울대학교에서 국제관계학 학사(1990)를, 미국 조지타운 대학교에서 외교학 석사(MSFS, 1999)를 취득하였다. 1992년 외무고시에 합격한 뒤 같은 해 외교부에 입부하여 북미 분야와 다자외교, 인사·교육 업무 등을 거쳤다.
쿠웨이트 (2024– ).
2024년 7월 21일 신임장 사본 제출 후, 같은 해 10월 9일 쿠웨이트 국왕에게 정식으로 신임장을 제정하고 대사 임기를 시작하였다.
쿠웨이트 국영정유사(KNPC)·KIPIC 경영진과 면담하여 정유·석유화학 분야 협력과 프로젝트 참여 확대를 논의하였다. 또한 쿠웨이트 투자청(KDIPA) 수장과의 면담을 통해 한국 기업 투자와 양국 직접투자 활성화를 논의하였다. 2024년에는 수교 45주년 기념행사를 통해 에너지 협력 60년의 성과를 강조하였다.
한국학·서예 등 문화 프로그램과 미디어 접촉을 통해 한국 문화 소개와 양국 인적 교류를 지원하였다.
네팔 (2020–2023).
2020년 9월 27일 네팔 대통령에게 신임장을 제정하고 경제·개발협력, 기후변화 대응, 인적 교류를 추진하였다.
2021년 12월 네팔 2번 주(마데시 프라데시) 건설인력개발 폴리텍 설립을 위한 양해각서 체결을 주선하였다. 코로나19 대응을 위해 한국 정부의 RT-PCR 진단키트 등을 네팔 정부에 지원·인도하였다.
고용허가제(EPS) 재개 등 네팔 근로자 한국 취업 절차 정상화와 안전한 이주 지원을 밝혔다.
박종석은 산유국인 쿠웨이트와의 에너지·인프라 파트너십, 투자·산업 협력의 심화를 대사관 핵심 과제로 제시하였다. 2024년 수교 45주년 기념사에서는 장기적 에너지 협력의 역사와 전략적 동반자 관계를 강조하였다. 네팔 재임 중에는 직업훈련 인프라 구축과 방역·보건 협력, 합법적 고용 경로의 안정화를 통해 양국 실질 협력 기반을 확장하였다.
2024년 10월 공개된 고위공직자 수시 재산등록에서 약 83억 8천만 원(83억 8036만 원)을 신고하였다.
권민호는 대한민국의 소방공무원으로, 충청북도소방본부 소속이며 충북안전체험관에서 근무한다. 2023년 12월 청주시 눈썰매장 붕괴 사고에서 심정지 환자에 대한 심폐소생술과 현장 통제로 중상자의 회복을 이끌었고, 2024년 4월 당진–영덕고속도로 당산3터널 인근 차량 화재를 옥내소화전으로 초기 진압했다. 이러한 공적으로 제14기 국민추천포상에서 대통령 표창을 받았다.
권민호는 2014년에 소방공무원으로 임용되어 청주서부소방서에서 경력을 시작하였다. 이후 구급대 및 예방·기획 업무를 거쳐 충북안전체험관에서 근무하였다.
2023년 청주 눈썰매장 붕괴 사고 대응.
2023년 12월 24일 청주시 상당구 지북동의 눈썰매장 보행통로 붕괴 당시, 권민호는 비번 중 가족과 이용하던 중 즉시 구조활동에 참여하였다. 그는 주변 시민과 함께 잔해 제거를 진행하고 심정지 환자에게 심폐소생술을 실시하여 의식과 호흡 회복을 이끌고, 추가 부상자의 수색과 현장 통제를 병행하였다.
2024년 당산3터널 차량 화재 초기 진압.
2024년 4월 29일 경북 영덕군 당산3터널 인근에서 발생한 25톤 트럭 화재에 대해, 권민호는 터널 내 옥내소화전을 활용하여 수관을 연장하고 초동 대응으로 연소 확대를 억제하였다. 이로써 인명·재산 피해를 최소화하였다.
음식 관광(fulinary tourism), 미식 관광(food tourism), 음식 투어는 관광을 목적으로 음식을 탐험하는 것이다. 이는 관광 경험의 필수적인 구성 요소로 간주된다. 외식은 관광객들 사이에서 흔하며 "음식은 관광객들에게 기후, 숙박, 그리고 경치와 함께 중요하다고 여겨진다."
미식 관광은 2001년 세계 음식 여행 협회(World Food Travel Association)의 에릭 울프 회장이 이 주제에 대한 백서를 작성한 후 유명해졌다. 여행자 참여: 2019년 연구에 따르면 참가자의 93%가 지난 2년간 여행 중에 식음료 활동에 참여했으며, 82%는 집에서보다 여행 중에 식음료에 더 많은 비용을 지출했다.
미식 또는 음식 관광은 가깝든 멀든 독특하고 기억에 남는 식음료 경험을 추구하는 것이다. 미식 관광은 관광농업과 다른데, 미식 관광은 문화 관광의 하위 집합(요리는 문화의 표현임)으로 간주되는 반면, 관광농업은 농촌 관광의 하위 집합으로 간주된다. 하지만 미식 관광과 관광농업은 요리의 씨앗이 농업에서 발견될 수 있듯이 불가분의 관계에 있다. 미식/음식 관광은 미식 음식에만 국한되지 않는다. 음식 관광은 경험 여행의 하위 범주로 간주될 수 있다.
많은 도시, 지역 또는 국가가 음식으로 유명하지만, 미식 관광은 음식 문화에 의해 제한되지 않는다. 모든 관광객은 하루에 약 세 번 식사를 하므로, 음식은 관광의 근본적인 경제 동력 중 하나이다. 아일랜드, 페루, 캐나다와 같은 국가들은 미식 관광 개발에 상당한 투자를 하고 있으며, 음식 관광 진흥 및 제품 개발의 결과로 방문객 지출과 숙박 일수가 증가하는 것을 목격하고 있다.
음식 관광에는 요리 수업 수강; 음식 또는 음료 투어 참여; 음식 및 음료 축제 참석; 특별 식사 경험 참여; 전문 소매점에서 쇼핑; 농장, 시장 및 생산자 방문과 같은 활동이 포함된다.
세계 음식 여행 협회는 식음료 비용이 목적지의 경제성에 따라 전체 관광 지출의 15%에서 35%를 차지한다고 추정한다. WFTA는 가능한 음식 관광의 이점으로 더 많은 방문객, 더 많은 판매, 더 많은 미디어 관심, 증가된 세수, 그리고 더 큰 지역 사회의 자부심을 포함한다.
요리 수업.
미식 관광의 성장하는 분야는 요리 수업이다. 형식은 몇 시간 동안의 짧은 수업부터 종일 및 여러 날 과정까지 다양하다. 외국인 관광객의 초점은 보통 방문하는 나라의 요리에 맞춰지지만, 현지 관광객은 자신에게 새로운 요리를 경험하는 데 열심일 수 있다. 많은 요리 수업은 문화 경험을 향상시키기 위해 시장 투어도 포함한다. 일부 요리 수업은 현지인들의 집에서 진행되어 외국인 관광객들이 방문하는 나라에서 그들의 일상생활과 요리가 어떤 모습인지 엿볼 수 있게 한다. 현지 호스트와 외국인 손님 모두 문화 간 경험에서 혜택을 얻는다.
음식 투어.
음식 투어는 지역 및 운영자에 따라 다르다. 런던, 파리, 로마, 피렌체, 토론토, 쿠알라룸푸르, 바르셀로나와 같은 주요 도시에서 흔히 볼 수 있다.
2017년 6월 10일은 전 세계 음식 관광을 기념하는 첫 번째 연례 전국 음식 투어의 날이었다. 세계 음식 여행 협회는 2018년 4월 18일에 세계 음식 여행의 날을 도입했다. 이는 세계의 요리 문화를 경험하기 위해 우리가 어떻게, 왜 여행하는지에 초점을 맞추기 위함이다. 이 날은 소비자와 업계 모두에게 인식을 높이고, 환대와 관광을 통해 요리 문화를 보존하고 홍보하는 협회의 사명을 지원하기 위해 고안되었다. 이 날은 매년 4월 18일 전 세계에서 기념된다.
미식 또는 음식 관광의 이점.
음식 관광은 여행객에게 다음과 같은 다양한 이점을 제공한다.
산업 관광(Industrial tourism)은 특정 지역의 독특한 산업 현장을 포함하는 관광이다. 이 개념은 새로운 것이 아니며, 예를 들어 프랑스의 와인 투어, 네덜란드의 치즈 제조업체 방문, 미국의 잭 대니얼스 증류소 투어 등을 포함하지만, 최근에는 산업 유산 유적지와 현대 산업 모두가 관광객을 유치하면서 새로운 관심을 받고 있다.
개념이 개인의 선호도에 따라 주관적일지라도, 시장 조사를 통해 사람들이 다음의 현재 또는 역사적(유산) 생산 과정을 보고 경험하는 것을 선호한다는 점이 확인되었다.
일부 중앙-동남 유럽 국가를 위한 관광 명소 디렉토리는 이 분류를 설명하고 포함한다.
매력에 대한 인식은 또한 목적 도시가 산업 이미지 및 정체성을 반영하는 관광 상품을 구성하는 능력에 의해 영향을 받는다. 각각의 경우, 여행사들은 제공되는 패키지의 관광 명소 조합에서 산업적 요소를 능숙하게 다루는 것에 의해 영향을 받는다.
현재, 성숙한 시장에서도 산업 관광 패키지를 제공하는 여행사는 비교적 적으며, 다른 상품을 보완하고 거의 항상 전문화된 상품은 부족한데, 이는 이러한 전문 서비스를 제공하는 여행사 중 한 곳에서 수행한 시장 연구에서 조사되었다.
산업 고고학 협회와 산업 고고학회는 역사적인 산업 현장의 보존을 장려한다.
가장 명확한 산업 관광 목적지는 견고한 산업 기반을 가진 도시와 지역이다. 이들에게 산업 관광은 그들의 정체성과 일치하는 잠재적인 성장 부문이다. 이 부문은 특히 기존 자산을 활용하여 독특함과 이미지를 강화할 기회를 제공한다.
그러나 성공적인 성과는 소수이며 대부분 선진국(서유럽 – 특히 독일, 영국, 네덜란드, 그리고 미국과 일본)에 집중되어 있는데, 이곳에서는 지역사회 거버넌스 수준에서 다양한 이해관계자들 간의 리더십과 협력 문화가 이미 존재한다. 중앙유럽(오스트리아, 헝가리, 체코, 폴란드), 중화인민공화국 및 인도에서도 긍정적인 경향과 주목할 만한 성과가 나타나고 있다.
또한, 경제적으로 붕괴된 단일 산업 지역(특히 광업 및 야금 지역)을 산업 관광을 통해 재활용하는 것에 대해 전 세계적으로 관심이 집중되고 있다. (크리보이로그, 레시차 및 페트로샤니).
풍력 발전소와 댐, 은퇴한 원자력 발전소와 같은 기타 에너지 발전 시설은 교육 투어로 점점 인기가 많아지고 있다.
작가 에드워드 애비와 같은 일부 환경 및 보존 운동가들은 산업 관광이라는 용어를 보호된 자연 지역 내의 상업화된 관광을 지칭하는 데 사용했으며, 이는 생태계에 위협을 가하고 있다.
그의 책 사막의 고독에서 애비는 다음과 같이 썼다: "산업 관광은 국립공원에 위협이 된다. 그러나 이 시스템의 주요 피해자는 자동차를 이용하는 관광객들이다. 그들은 강탈당하고 있으며 스스로를 강탈하고 있다. 그들이 자동차에서 기어 나오기를 거부하는 한, 그들은 국립공원의 보물을 발견하지 못할 것이며, 아마도 잠시 뒤로하고 싶었던 도시-교외 복합 단지의 스트레스와 혼란에서 결코 벗어나지 못할 것이다."
2023년에 유엔 생물 다양성 협약(COP15)은 상업 관광이 국립공원에 위협이 된다고 강조했다.
글로벌 북반구의 많은 국가에서는 화석 연료 사용을 중단하고 있으며, 산업 시설 부지가 관광 명소로 활용되고 있다. 따라서 관광은 지속 가능한 전환 과정의 판도를 바꾸는 요소가 될 수 있다.
항공기 엔진은 화석연료 연소로 인해 가스, 소음, 미립자를 배출하며, 이는 지구적 영향과 지역 대기질에 미치는 영향 모두에서 환경적 우려를 낳는다.
여객기는 가장 잘 이해되는 온실 기체인 이산화 탄소()를 배출하고, 과학적 이해가 덜한 질소 산화물, 비행운 및 미립자를 배출함으로써 기후변화에 기여한다.
이들의 복사강제력은 단독의 1.3~1.4배로 추정되며, 과학적으로 잘 이해되지 않는 유발 권운은 제외된다.
2018년 전 세계 상업 운항은 전체 배출량의 2.4%를 차지했다.
여객기는 1967년에서 2007년 사이에 연료 효율이 약 70% 향상되었으며, 2018년의 유상 톤-킬로미터 (RTK) 당 배출량은 1990년의 47%였다. 2018년에는 유상 승객 1인당 킬로미터당 평균 88그램의 가 배출되었다.
항공 산업이 연료 효율적임에도 불구하고, 항공 여행량이 증가함에 따라 전반적인 배출량은 증가했다. 2020년까지 항공 배출량은 2005년보다 70% 증가했으며 2050년까지 300% 증가할 수 있다.
항공기 소음은 잠을 방해하고, 어린이의 교육에 부정적인 영향을 미치며, 심혈관 위험을 증가시킬 수 있다.
공항은 제트 연료와 제빙 화학물질을 광범위하게 취급하기 때문에 수질 오염을 유발할 수 있으며, 억제되지 않으면 인근 수역을 오염시킨다.
항공 활동은 오존과 초미세먼지를 배출하며, 이 둘 모두 건강 위험 요소이다. 일반 항공에 사용되는 피스톤 엔진은 Avgas를 태우며 독성 납을 방출한다.
항공의 환경 발자국은 항공기의 연료 경제성 개선, 또는 항공 교통 관제 및 항공로 최적화를 통해 , 미립자 또는 비행운으로 인한 비- 기후 영향을 줄일 수 있다.
바이오 연료, 배출권 거래제 및 탄소 상쇄는 국제 민간 항공 기구의 CORSIA의 일부이며, 배출량을 줄일 수 있다. 단거리 항공편 금지, 기차 연결, 개인적인 선택 및 항공 과세 및 보조금을 통해 항공 사용을 줄일 수 있다. 연료 동력 항공기는 하이브리드 전기 항공기 및 전동항공기 또는 수소 동력 항공기로 대체될 수 있다.
2021년부터 IATA 회원사들은 2050년까지 탄소 순배출 제로를 계획하고 있으며, 2022년에는 ICAO가 이를 따랐다.
항공기는 가스(이산화 탄소, 수증기, 질소 산화물 또는 일산화 탄소 − 방출 시 산소와 결합하여 가 됨)와 대기 미립자(불완전 연소된 탄화수소, 황 산화물, 블랙카본)를 배출하며, 이들은 서로 상호작용하고 대기와 상호작용한다.
동력 항공기에서 배출되는 주요 온실 기체는 이지만, 여객기는 대류권계면을 비행하면서 네 가지 방식으로 기후변화에 기여한다:
1999년, IPCC는 1992년 항공의 복사강제력이 단독의 2.7(2~4)배로 추정된다고 밝혔다. 단, 권운 증가의 잠재적 영향은 제외되었다.
이는 2000년에 업데이트되어 항공의 복사강제력이 47.8 mW/m2로 추정되었는데, 이는 배출 단독 효과인 25.3 mW/m2의 배이다.
2005년, 데이비드 S. 리(David S. Lee) 등이 과학 저널 Atmospheric Environment에 발표한 연구는 항공으로 인한 누적 복사강제력 효과를 55 mW/m2로 추정했는데, 이는 유발 권운을 제외한 누적 배출 단독 복사강제력 효과인 28 mW/m2의 두 배이다.
2012년 찰머스 대학교의 연구는 항공 유발 권운을 포함하지 않을 경우 이 가중치 계수를 1.3~1.4로, 포함할 경우 1.7~1.8(1.3~2.9 범위 내)로 추정했다. 이 비율은 항공 활동이 어떻게 성장하는지에 따라 달라진다. 성장이 기하급수적이면 비율은 일정하다. 그러나 성장이 멈추면 항공으로 인한 대기 중 는 계속 증가하는 반면 다른 효과는 정체되므로 비율은 낮아질 것이다.
NOx–O3–CH4 상호작용, 항공기에서 생성되는 비행운 형성, 그을음 에어로졸이 권운에 미치는 영향 및 비-CO2 복사강제력 측정에 대한 불확실성은 여전히 존재한다.
2018년, 는 항공의 유효 복사강제력(ERF, 지표면 기준)의 34.3 mW/m2를 차지했으며, 높은 신뢰 수준 (± 6 mW/m2)을 보였다. 는 낮은 신뢰 수준(± 14)으로 17.5 mW/m2, 비행운 권운은 역시 낮은 신뢰 수준(± 40)으로 57.4 mW/m2를 차지했다.
모든 요인을 합치면 비행운 권운을 제외할 경우 43.5 mW/m2( 단독의 배)를, 포함할 경우 101 mW/m2 (±45)를 나타냈으며, 이는 인위적 ERF인 2290 mW/m2 (± 1100)의 3.5%에 해당한다. 다시 한번, 의 영향은 비행운과 권운의 영향과 달리 해마다 축적된다는 점을 기억해야 한다.
2018년까지 항공사 교통량은 43억 명의 승객과 3,780만 건의 출발을 기록했으며, ICAO에 따르면 항공편당 평균 승객 명과 8조 2천 6백억 RPK를 기록하여 평균 이동 거리는 였다.
교통량은 외부 충격에도 불구하고 꾸준히 성장하여 15년마다 두 배로 증가했으며, 연평균 4.3%의 성장률을 보였고 에어버스는 이러한 성장이 계속될 것으로 예상하고 있다.
항공 산업이 연료 효율적임에도 불구하고, 기술 발전과 운영 개선을 통해 1990년 대비 항공편당 연료 소모량을 절반으로 줄였음에도 불구하고, 항공 여행량이 증가함에 따라 전반적인 배출량은 증가했다.
1960년과 2018년 사이에 RPK는 1,090억에서 8조 2,690억으로 증가했다.
1992년, 항공기 배출량은 전체 인위적 배출량의 2%를 차지했으며, 50년 동안 전체 인위적 증가량의 1%를 약간 넘게 누적시켰다.
2015년까지 항공은 전 세계 배출량의 2.5%를 차지했다.
2018년, 전 세계 상업 운항은 9억 1,800만 미터톤의 를 배출했으며, 이는 전체 배출량의 2.4%에 해당한다. 이 중 여객 운송이 7억 4,700만 미터톤, 화물 운송이 1억 7,100만 미터톤이었다.
1960년과 2018년 사이에 배출량은 연간 만 미터톤에서 10억 3,400만 미터톤으로 6.8배 증가했다.
2013년과 2018년 사이에 항공편 배출량은 32% 증가했다.
1990년과 2006년 사이에 유럽 연합의 항공 분야 온실가스 배출량은 87% 증가했다.