문서의 각 단락이 어느 리비전에서 마지막으로 수정되었는지 확인할 수 있습니다. 왼쪽의 정보 칩을 통해 작성자와 수정 시점을 파악하세요.

임포트 | |
정의 | 동음이의어 문서로, 다음을 가리킨다. 수입 (무역) Import 지시자 (오브젝티브-C) import 키워드 (자바) |
상세 정보 | |
같이 보기 | 제목에 "임포트" 항목을 포함한 모든 문서 |

임포트는 동음이의어로, 서로 다른 분야에서 사용되는 주요 용어들을 포괄한다. 가장 일반적으로는 무역 분야에서 외국으로부터 상품이나 서비스를 구매하여 국내로 반입하는 행위, 즉 수입을 의미한다. 이는 한 국가의 경제 활동과 국제 무역의 기본적인 흐름을 구성하는 중요한 개념이다.
한편, 컴퓨터 프로그래밍 언어에서 임포트는 외부에 정의된 코드나 모듈, 라이브러리의 기능을 현재 작성 중인 프로그램에서 사용할 수 있도록 불러오는 키워드 또는 지시자를 가리킨다. 대표적으로 오브젝티브-C 언어에서는 #import 지시자를, 자바 언어에서는 import 키워드를 사용하여 이러한 기능을 수행한다.
이처럼 임포트는 상업과 소프트웨어 개발이라는 전혀 다른 영역에서 각각 핵심적인 역할을 하는 용어이다. 본 문서는 이러한 동음이의 관계를 설명하며, 각각의 구체적인 내용은 해당 하위 문서에서 다룬다.

무역 용어로서의 임포트는 수입을 의미하는 영어 단어이다. 이는 외국에서 상품이나 서비스를 구매하여 자국으로 반입하는 모든 무역 활동을 포괄한다. 수입은 국내에서 생산되지 않거나 국내 생산이 충분하지 않은 재화와 서비스를 확보하는 주요 경로로, 국가 경제에 필수적인 요소이다.
수입은 크게 원자재나 반제품과 같은 생산재 수입과 소비자가 직접 사용하는 소비재 수입으로 구분된다. 또한 관세 및 비관세 장벽, 환율, 국제 무역 협정 등 다양한 요인의 영향을 받는다. 한 국가의 수입 규모와 구조는 해당국의 산업 구조와 소비 패턴을 반영한다.
수입과 수출은 한 국가의 경제 성장과 국제 수지를 결정하는 중요한 요소이다. 무역 수지가 적자를 기록하면 해당국은 외국으로부터 더 많은 재화와 서비스를 구매하고 있음을 의미한다. 현대 글로벌 경제에서 수입은 단순한 상품 교류를 넘어 기술 이전과 국제 분업의 핵심 매커니즘이 되었다.

오브젝티브-C의 #import 지시자는 헤더 파일을 소스 코드에 포함시키는 데 사용되는 전처리기 지시자이다. 이는 C 언어의 #include 지시자와 유사한 기능을 하지만, 동일한 헤더 파일이 여러 번 포함되는 것을 방지하는 차이가 있다. #import는 파일의 내용이 이미 포함되었는지를 자동으로 확인하여 중복 포함을 막아주므로, 순환 참조와 같은 문제를 방지하는 데 유용하다.
이 지시자는 주로 오브젝티브-C 및 그 후속 언어인 스위프트와의 호환성을 위해 사용되는 Cocoa 및 Cocoa Touch 프레임워크의 헤더 파일을 포함할 때 흔히 볼 수 있다. 예를 들어, iOS나 macOS 애플리케이션을 개발할 때 UIKit이나 Foundation 같은 시스템 프레임워크의 기능을 사용하기 위해 #import <UIKit/UIKit.h>과 같은 형태로 작성한다.
자바 프로그래밍 언어에서 import는 키워드로, 다른 패키지에 정의된 클래스나 인터페이스를 현재 소스 코드 파일에서 사용할 수 있도록 선언하는 데 사용된다. 이를 통해 개발자는 클래스의 정규화된 이름을 매번 전체 패키지 경로와 함께 작성하지 않고, 단순한 클래스 이름만으로 참조할 수 있다. 이는 코드의 가독성을 높이고 작성 시간을 단축시키는 역할을 한다.
import 선언은 소스 파일의 상단, 패키지 선언 이후와 클래스 정의 이전에 위치한다. 구문은 import 패키지명.클래스명; 형식을 따른다. 특정 패키지의 모든 공개 클래스를 한 번에 임포트하려면 와일드카드(*)를 사용한 import 패키지명.*; 형식을 사용할 수 있다. 그러나 와일드카드 임포트는 어떤 클래스가 실제로 사용되는지 명시적이지 않을 수 있어, 필요에 따라 개별 클래스를 명시적으로 임포트하는 것이 권장되기도 한다.
import는 컴파일 시간에 처리되는 기능으로, 바이트코드에는 영향을 주지 않는다. 컴파일러는 import 문을 보고 해당 클래스의 위치를 찾아 타입 검사 및 이름 해결을 수행한다. 자바 가상 머신은 실행 시점에 클래스 로더를 통해 필요한 클래스를 동적으로 로드하며, 이때 클래스의 정규화된 이름을 사용한다. 따라서 import는 단지 프로그래머의 편의를 위한 편의 문법에 해당한다.
자바의 기본 라이브러리인 java.lang 패키지(예: String, System 클래스 등)는 별도의 import 선언 없이도 자동으로 임포트되어 사용 가능하다. 이 외의 표준 라이브러리나 사용자 정의 패키지, 서드파티 라이브러리의 클래스를 사용할 때는 명시적인 import 선언이 필요하다.

