Android 플랫폼 용어

아래 목록에서 Android 오픈소스 프로젝트(AOSP)의 기본 용어를 확인하세요. 주요 용어 정의의 기타 출처는 다음과 같습니다.

더 포용적인 생태계를 조성하기 위해 사용하거나 사용하지 않아야 할 용어의 예는 사용자를 존중하는 코딩을 참고하세요.

.apk 파일
Android 애플리케이션 패키지 파일. 각 Android 애플리케이션은 애플리케이션의 코드(.dex 파일), 리소스, 애셋, 매니페스트 파일이 모두 포함된 단일 파일로 컴파일 및 패키징됩니다. 애플리케이션 패키지 파일에는 원하는 이름을 지정할 수 있지만 .apk 확장자를 사용해야 합니다. 예: myExampleAppname.apk. 편의상 애플리케이션 패키지 파일을 일반적으로 '.apk'라고 합니다.

관련 항목: 애플리케이션

작업
인텐트 발신자가 완료하고자 하는 항목의 설명. 작업은 인텐트에 할당된 문자열 값입니다. 작업 문자열은 Android 또는 타사 개발자가 정의할 수 있습니다. 예: 웹 URL의 android.intent.action.VIEW 또는 스마트폰을 진동시키기 위한 맞춤 애플리케이션의 com.example.rumbler.SHAKE_PHONE.

관련 항목: 인텐트

활동
Activity 클래스에서 파생된 지원하는 자바 코드가 있는 애플리케이션의 단일 화면. 일반적으로 활동은 UI 이벤트를 받아서 처리하고 복잡한 작업을 실행할 수 있는 전체 화면 창으로 표시되는데 이는 활동이 창을 렌더링할 때 사용하는 특정 창 때문입니다. 활동은 일반적으로 전체 화면이지만 플로팅되거나 투명할 수도 있습니다.
애플리케이션
구성요소의 관점에서 Android 애플리케이션은 하나 이상의 활동, 서비스, 리스너 및 인텐트 수신자로 구성됩니다. 소스 파일의 관점에서 Android 애플리케이션은 코드, 리소스, 애셋 및 단일 매니페스트로 구성됩니다. 컴파일하는 동안 이러한 파일은 애플리케이션 패키지 파일(.apk)이라는 단일 파일로 패키징됩니다.

관련 항목: .apk, 활동

Broadcast Receiver
단일 타겟 애플리케이션/활동에 전송되지 않고 브로드캐스트 인텐트를 수신 대기하는 애플리케이션 클래스. 시스템에서 관심 있는 모든 broadcast receiver에 브로드캐스트 인텐트를 전달하며 broadcast receiver에서 인텐트를 순차적으로 처리합니다.

관련 항목: 인텐트, 인텐트 필터

콘텐츠 제공업체
애플리케이션의 데이터를 다른 애플리케이션에 안전하게 노출하기 위해 사용할 수 있는 데이터 추상화 레이어. 콘텐츠 제공업체는 특정 형식의 콘텐츠 쿼리 문자열을 처리하여 특정 형식의 데이터를 반환하는 ContentProvider 클래스를 기반으로 빌드됩니다. 자세한 내용은 콘텐츠 제공업체 주제를 참고하세요.

관련 항목: Android에서의 URI 사용

대화상자
가벼운 양식처럼 작동하는 플로팅 창. 대화상자는 버튼 컨트롤만 포함하고 간단한 작업(예: 버튼 선택)을 실행하고 값을 반환하기 위해 사용할 수 있습니다. 대화상자는 기록 스택에 유지되거나 복잡한 레이아웃을 포함하거나 복잡한 작업을 실행하지 않습니다. Android에는 선택적 버튼이 포함된 간단한 기본 대화상자가 제공되지만 개발자가 고유한 대화상자 레이아웃을 정의할 수 있습니다. 대화상자의 기본 클래스는 Dialog입니다.

관련 항목: 활동

인텐트
다른 애플리케이션/활동을 실행하거나 다른 애플리케이션/활동과 비동기식으로 통신하는 데 사용할 수 있는 메시지 객체. 인텐트 객체는 Intent의 인스턴스로, 인텐트를 수신하는 애플리케이션/활동 및 인텐트를 처리할 때 수신자가 실행하는 작업을 결정하기 위해 제공할 수 있는 여러 기준 필드가 포함됩니다. 사용할 수 있는 기준에는 원하는 작업, 카테고리, 데이터 문자열, 데이터의 MIME 유형, 처리 클래스 등이 있습니다. 애플리케이션은 인텐트를 다른 애플리케이션/활동에 직접 전송하지 않고 Android 시스템에 전송합니다. 애플리케이션에서는 인텐트를 단일 타겟 애플리케이션에 전송하거나 여러 애플리케이션에 의해 순차적으로 처리되는 브로드캐스트로 전송할 수 있습니다. Android 시스템이 다른 애플리케이션에서 정의한 인텐트 및 인텐트 필터에 제공된 기준을 기반으로 각 인텐트에 가장 적합한 수신자를 결정해야 합니다. 자세한 내용은 인텐트 및 인텐트 필터를 참고하세요.

관련 항목: 인텐트 필터, Broadcast Receiver.

인텐트 필터
애플리케이션이 애플리케이션의 각 구성요소에서 허용되는 인텐트의 유형 및 허용 기준을 시스템에 알리기 위해 매니페스트 파일에서 선언하는 필터 객체. 애플리케이션은 인텐트 필터를 통해 특정 데이터 유형, 인텐트 작업, URI 형식 등에 관심을 표현할 수 있습니다. 시스템에서는 인텐트를 해결할 때 모든 애플리케이션의 사용 가능한 모든 인텐트 필터를 평가하고 인텐트 및 기준과 가장 일치하는 애플리케이션/활동에 인텐트를 전달합니다. 자세한 내용은 인텐트 및 인텐트 필터를 참고하세요.

관련 항목: 인텐트, Broadcast Receiver

리소스
컴파일된 애플리케이션 코드에 포함되지 않지만 잘 알려진 참조 형식을 사용하여 애플리케이션 코드에서 로드할 수 있는 비 프로그래매틱 애플리케이션 구성요소. Android는 다양한 리소스 유형을 지원하지만 일반적인 애플리케이션 리소스는 UI 문자열, UI 레이아웃 구성요소, 그래픽 또는 기타 미디어 파일 등으로 구성됩니다. 애플리케이션은 리소스를 사용하여 현지화 및 다양한 기기 프로필과 상태를 효율적으로 지원합니다. 예를 들어 애플리케이션에 지원되는 로컬 또는 기기 유형별로 별도의 리소스 집합을 포함하고 현재 화면 방향(가로 또는 세로)에 적합한 레이아웃 리소스를 포함할 수 있습니다. 리소스에 관한 자세한 내용은 리소스 및 애셋을 참고하세요. 애플리케이션의 리소스는 항상 프로젝트의 res/* 하위 폴더에 저장됩니다.
서비스
다양한 지속적인 작업(예: 음악 재생, 네트워크 활동 모니터링)을 실행하기 위해 백그라운드로(UI 존재 없이) 실행되는 Service 클래스 객체.

관련 항목: 활동

Android의 URI
Android는 URI(Uniform Resource Identifier) 문자열을 콘텐츠 제공업체에서 데이터를 요청(예: 연락처 목록 가져오기)하고 인텐트에서 작업을 요청(예: 브라우저에서 웹페이지 열기)하기 위한 기반으로 사용합니다. URI 스키마와 형식은 사용 유형에 따라 특수화되며 애플리케이션에서 원하는 방식으로 특정 URI 스키마와 문자열을 처리할 수 있습니다. 일부 URI 스키마는 시스템 구성요소에 의해 예약됩니다. 예를 들어 콘텐츠 제공업체의 데이터 요청에서는 content://를 사용해야 합니다. 인텐트에서 http:// 스키마를 사용하는 URI는 브라우저에 의해 처리됩니다.

빌드

adb
Android 디버그 브리지는 SDK와 함께 포함되는 명령줄 디버깅 애플리케이션으로, 기기를 둘러보고 기기에 도구를 복사하고 디버깅을 위한 포트를 전달하는 도구를 제공합니다. Android 스튜디오에서 개발하는 경우 adb가 개발 환경에 통합됩니다. 자세한 내용은 Android 디버그 브리지를 참고하세요.
Android 프로젝트
Android Gerrit 호스트의 Git 저장소입니다. 자세한 내용은 Source Control Tools > Gerrit에서 확인하세요.
빌드 지문
빌드 지문은 각 빌드에 발행된 제조업체 정보를 포함하며, 사람이 읽을 수 있는 고유한 문자열입니다. 자세한 내용은 빌드 지문 이해를 참고하세요.
Git
Android에서 사용하는 소스 제어 도구로, 이전에 단일 Git 저장소에서 작동했습니다. 여러 Git 저장소에서 Repo와 함께 사용됩니다. 자세한 내용은 Source Control Tools > Git을 참고하세요.
Git 브랜치 - 표준
각 Git 저장소의 고유한 버전(예: android-11.0.0_r1)으로, cs.android.com/android/platform/superproject/+/android-11.0.0_r1에서 확인할 수 있습니다. 자세한 내용은 Git 브랜치 - 브랜치 요약을 참고하세요.
Git 브랜치 - 로컬
현재 Repo 클라이언트의 임시 브랜치로, 코드를 변경하며, 실제 개발 줄인 repo start branch-name . 명령어로 시작됩니다. 브랜치에서 가장 최근 커밋은 브랜치의 팁이라고 합니다.
Git 저장소
프로젝트라고도 하며 기기의 특정 구성요소나 유형(예: frameworks/base 또는 platform/packages/apps/Car/Media)을 나타내는 코드베이스의 일부입니다.
매니페스트 파일
XML 파일로, 브랜치별 Git 저장소 그룹화, 이러한 저장소를 확인할 Git 버전, 파일 시스템의 레이아웃을 설명합니다. 일반적으로 default.xml이라는 이름의 이 XML 파일은 Repo 브랜치와 연결되어 있으며 Repo 브랜치를 초기화하고 동기화할 때 체크아웃되는 Git 저장소 및 Git 브랜치를 설명합니다. XML 파일은 제품(예: Android Automotive OS)을 빌드하기 위해 Repo 도구가 Repo 클라이언트 확인으로 가져와야 하는 다양한 Git 저장소를 정의합니다. android.googlesource.com/platform/manifest/+refs에서 모든 매니페스트를 확인하세요. Android 플랫폼(AOSP) 파일을 가져올 매니페스트는 android.googlesource.com/platform/manifest/+/refs/heads/master/default.xml에서 AndroidManifest 파일에 포함된 기본 매니페스트를 확인하세요. 앱 정보에 관한 AndroidManifest.xml 파일 및 플랫폼 개발에 관한 repo 매니페스트 형식을 참고하세요.
무선 업데이트(OTA)
일반 Android 기기는 무선 업데이트(OTA)를 설치하여 시스템, 애플리케이션 소프트웨어 및 시간대 규칙을 수신할 수 있습니다. 자세한 내용은 OTA 업데이트를 참고하세요.
Repo
Git 래퍼로, 여러 Git 저장소에서 작업의 난이도를 낮춰줍니다. 많은 Git 저장소를 단일 확인 또는 코드베이스로 집계하고 관리합니다. 자세한 내용은 Source Control Tools > Repo에서 참고하세요.
Repo 브랜치
repo initrepo sync 명령어를 통해 다운로드된 android11-gsi 또는 aosp-android-games-sdk와 같은 Android 코드베이스 버전(빌드)을 나타내는 AndroidManifest 파일에 수집된 Git 저장소 모음입니다. 모든 매니페스트 파일의 링크는 매니페스트 파일 설명을 참고하고 빌드를 검색하려면 https://cs.android.com/을 사용하세요.
uprev
일반적으로 uprev는 큰 프로젝트의 구성요소인 하위 프로젝트를 새 버전으로 업데이트합니다. uprev로 업데이트하면 버전이 한 단계 높아지거나 사용 가능한 최신 버전으로 변경됩니다. HIDL 패키지의 경우 부 버전 uprev는 패키지 수준의 하위 호환 확장성을 유지하기 위해 이름과 주 버전을 이전 패키지와 동일하게 유지하면서 새 패키지를 한 단계 높은 부 버전으로 업데이트합니다. 부트로더 구성의 경우 uprev는 부팅 헤더 버전 지원을 최신 버전으로 업데이트합니다.

그래픽

캔버스
비트맵 또는 표면 객체에 비교하여 실제 비트의 합성을 처리하는 그리기 표면. 캔버스에는 비트맵, 선, 원, 직사각형, 텍스트 등의 표준 컴퓨터 그리기 메서드가 있으며 비트맵 또는 표면에 결합됩니다. 캔버스는 화면에 2D 객체를 그리는 가장 간단하고 쉬운 방법입니다. 기본 클래스는 Canvas입니다.

관련 항목: 드로어블, OpenGL ES, 표면.

드로어블
화면의 배경, 제목 또는 다른 부분으로 사용할 수 있는 컴파일된 시각적 리소스. 드로어블은 일반적으로 다른 UI 요소에, 예를 들어 배경 이미지로 로드됩니다. 드로어블은 이벤트를 수신할 수 없지만 기타 '상태' 및 일정과 같은 다양한 속성을 할당하여 애니메이션 객체나 이미지 라이브러리와 같은 서브클래스를 사용 설정합니다. 대부분의 드로어블 객체는 이미지를 설명하는 xml 또는 비트맵 파일인 드로어블 리소스 파일에서 로드됩니다. 드로어블 리소스는 android.graphics.drawable의 서브클래스로 컴파일됩니다. 드로어블 및 기타 리소스에 관한 자세한 내용은 리소스를 참고하세요.

관련 항목: 리소스, 캔버스

레이아웃 리소스
활동 화면의 레이아웃을 설명하는 XML 파일.

관련 항목: 리소스

나인 패치/9-패치/Ninepatch 이미지
기기의 배경 또는 다른 이미지에 사용할 수 있는 크기 조절 가능한 비트맵 리소스. 자세한 내용은 나인 패치 늘릴 수 있는 이미지를 참고하세요.

관련 항목: 리소스

OpenGL ES
Android는 하드웨어 가속 3D 렌더링을 위한 OpenGL ES 라이브러리를 제공합니다. 2D 렌더링의 경우 캔버스가 더 단순한 옵션입니다. OpenGL ES는 Android Native Development Kit에서 쉽게 사용할 수 있습니다. android.opengljavax.microedition.khronos.opengles 패키지는 OpenGL ES 기능을 노출합니다.

관련 항목: 캔버스, 표면

표면
화면으로 합성되는 메모리 블록을 나타내는 Surface 유형의 객체. 표면은 그리기 위한 캔버스 객체를 포함하며 레이어를 그리고 표면의 크기를 조절할 수 있는 다양한 도우미 메서드를 제공합니다. 이 클래스를 직접 사용해서는 안 됩니다. 대신 SurfaceView를 사용하세요.

관련 항목: 캔버스

SurfaceView
그리기 위한 표면을 래핑하고 크기와 형식을 동적으로 지정하는 메서드를 노출하는 뷰 객체. SurfaceView는 리소스를 많이 사용하는 작업(예: 게임 또는 카메라 미리보기)의 UI 스레드와 독립적으로 그릴 수 있는 방법을 제공하지만 결과적으로 추가 메모리를 사용합니다. SurfaceView는 캔버스 및 OpenGL ES 그래픽을 모두 지원합니다. 기본 클래스는 SurfaceView입니다.

관련 항목: 표면

테마
다양한 기본 디스플레이 설정을 정의하기 위해 함께 번들되는 속성(텍스트 크기, 배경 색상 등)의 집합. Android는 R.style에 나열되는 몇 가지 표준 테마('Theme_'으로 시작)를 제공합니다.
화면의 직사각형 영역에 그리고 클릭, 키 입력 및 기타 상호작용 이벤트를 처리하는 객체. 뷰는 활동 또는 대화상자 화면에 표시되는 대부분 레이아웃 구성요소(텍스트 상자, 창 등)의 기본 클래스입니다. 뷰는 상위 객체(ViewGroup 참조)로부터 호출을 받고 자신을 그리며 원하는 위치 및 크기를 상위 객체에 알립니다(상위 객체에서 이 위치 및 크기를 고려할 수도 있고 고려하지 않을 수도 있습니다). 자세한 내용은 View를 참고하세요.

관련 항목: 뷰 계층 구조, ViewGroup , 위젯

뷰 계층 구조
각 앱 구성요소의 사용자 인터페이스를 정의하는 뷰 및 ViewGroup 객체의 정렬. 계층 구조는 하나 이상의 뷰 또는 뷰 그룹이 포함된 뷰 그룹으로 구성됩니다. Android SDK와 함께 제공되는 Hierarchy Viewer를 사용하면 디버깅 및 최적화를 위한 뷰 계층 구조를 시각적으로 표현할 수 있습니다.

관련 항목: , ViewGroup

ViewGroup
하위 뷰의 집합을 그룹화하는 컨테이너 객체. 뷰 그룹은 하위 뷰의 위치와 크기를 결정하며 적절할 때 각 하위 뷰를 호출하여 자신을 그리도록 합니다. 일부 뷰 그룹은 보이지 않고 레이아웃 전용이며 다른 뷰 그룹에는 고유한 UI(예: 스크롤 목록 상자)가 있습니다. 뷰 그룹은 모두 widget 패키지에 포함되지만 ViewGroup을 확장합니다.

관련 항목: , 뷰 계층 구조

위젯
양식 요소 및 기타 UI 구성요소(예: 텍스트 상자, 팝업 메뉴)를 렌더링하는 완전하게 구현된 View 서브클래스의 집합 중 하나. 위젯은 완전히 구현되었으므로 자체 측정 및 그리기와 화면 이벤트의 응답을 처리합니다. 위젯은 모두 android.widget 패키지에 포함됩니다.
Android 애플리케이션에서 디자인과 분위기 등 일반 창의 요소(제목 표시줄 텍스트, 메뉴의 위치 및 내용 등)를 지정하는 추상 클래스 Window에서 파생된 객체. 대화상자 및 활동에서는 이 클래스의 구현을 사용하여 창을 렌더링합니다. 이 클래스를 구현하거나 애플리케이션에 창을 사용할 필요가 없습니다.

플랫폼

Android 런타임(ART) 및 Dalvik
Android 런타임(ART)은 Android의 애플리케이션 및 일부 시스템 서비스에서 사용하는 관리형 런타임입니다. Android 런타임(ART)은 Android 5.0(API 수준 21) 이상이 실행되는 기기의 기본 런타임입니다. ART와 그 전의 Dalvik은 원래 Android 오픈소스 프로젝트용으로 특별히 제작된 것입니다. ART는 런타임으로서 Dalvik Executable 형식 및 Dex 바이트 코드 사양을 실행합니다. ART와 Dalvik은 Dex 바이트 코드를 실행하는 호환 가능한 런타임이므로, Dalvik용으로 개발된 앱은 ART로 실행 시에도 작동해야 합니다.
코드 라인
코드 라인에는 소프트웨어 제품의 출시가 포함되어 있습니다. 코드 라인은 하나 이상의 저장소에서 비롯된 여러 브랜치로 구성되며, 이러한 브랜치는 동시에 개발 중일 때가 많습니다. 코드 라인은 출시를 위한 집계 지점이자 대상입니다. 코드 라인에 관한 자세한 내용은 Android 소프트웨어 관리를 참고하세요.
.dex 파일
컴파일된 Android 애플리케이션 코드 파일.

Android 프로그램은 .dex(Dalvik Executable) 파일로 컴파일된 후 기기의 단일 .apk 파일로 압축됩니다. .dex 파일은 자바 프로그래밍 언어로 작성하여 컴파일된 애플리케이션을 자동으로 변환하여 만들 수 있습니다.

테스트

아티팩트
아티팩트는 로컬 문제 해결을 지원하는 빌드 관련 로그입니다. 이러한 로그에는 변경사항 목록을 볼 때 Gerrit에서 바로 액세스할 수 있습니다. 관련 build_error.log 파일을 보거나 다운로드하려면 Presubmit Status까지 아래로 스크롤한 다음 빨간색 Build 링크를 클릭합니다. 대상과 빌드에 해당하는 다운로드(아래쪽 화살표) 아이콘을 클릭하여, 중앙 Android 지속적 통합 서버(ci.android.com/)에서 이러한 아티팩트를 가져올 수도 있습니다. 아티팩트를 찾는 방법에 관한 자세한 내용은 Android 지속적 통합을 참고하세요.
CDD
Android 호환성 정의 문서(CDD)에는 기기가 최신 버전의 Android와 호환하려면 충족해야 할 요구사항이 나와 있습니다. Android와 호환하는 것으로 간주되려면 기기 구현이 호환성 정의에 나와 있는 요구사항을 충족해야 하며, 참조를 통해 통합된 모든 문서의 요구사항도 충족해야 합니다. CDD에 관한 자세한 내용은 Android 호환성 정의 문서를 참고하세요.
CTS
호환성 테스트 모음(CTS)은 CDD에 나와 있는 사양과 API 정확성을 보장하기 위한 테스트 모음입니다. 이는 AOSP 내에서 소스로 사용할 수 있으며 바이너리로 다운로드할 수 있습니다. 자세한 내용은 호환성 테스트 모음을 참고하세요.
CTS 인증 도구
호환성 테스트 모음 인증 도구(CTS 인증 도구)는 CTS의 추가 항목입니다. CTS 인증 도구는 고정된 기기(예: 음질, 가속도계)에서 수동 입력 없이 테스트할 수 없는 API 및 기능용 테스트를 제공합니다. 자세한 내용은 CTS 인증 도구 사용을 참고하세요.
디버깅
디버깅하려면 Android 플랫폼 코드에서 기능 또는 테스트에 있는 오류를 찾아 수정해야 합니다. 자세한 내용은 네이티브 Android 플랫폼 코드 디버깅을 참고하세요.
GoogleTest(GTest)
GTest는 Google의 C++ 테스트 및 모의 처리 프레임워크입니다. GTest 바이너리는 일반적으로 하위 수준 추상화 계층에 액세스하거나 다양한 시스템 서비스를 대상으로 원시 IPC를 실행합니다. 이 때문에 GTest의 테스트 접근 방식은 일반적으로 테스트 중인 서비스와 밀접한 관련이 있습니다. github.com/google/googletest에서 관련 코드와 google.github.io/googletest에서 관련 문서를 찾을 수 있습니다.
계측 테스트
계측 테스트는 am instrument 명령어를 통해 실행되는 특수한 테스트 실행 환경을 제공합니다. 여기에서 타겟 애플리케이션 프로세스가 다시 시작되고 기본 애플리케이션 컨텍스트를 사용하여 초기화되며 계측 스레드가 애플리케이션 프로세스 가상 머신에서 시작됩니다. 자세한 내용은 계측 테스트를 참고하세요.
Logcat
Logcat은 기기에서 오류와 메시지가 발생할 때 스택 트레이스를 비롯하여 시스템 메시지의 로그를 덤프하는 명령줄 도구입니다. 이러한 오류와 메시지는 앱에서 Log 클래스로 작성한 것입니다. 자세한 내용은 Logcat 명령줄 도구를 참고하세요.
로깅
Android에서 로깅은 logcat에 결합된 표준이 혼합되어 사용되기 때문에 복잡합니다. 사용된 기본 표준에 관한 자세한 내용은 로깅 이해를 참고하세요.
병합 충돌
병합 충돌은 동일한 파일의 두 가지 이상 버전이 Android 빌드 서버에서 더 이상 자동으로 병합되지 못하는 경우에 발생합니다. 이 경우 충돌하는 모든 업데이트를 해결하려면 일반적으로 파일을 수동으로 수정해야 합니다.
사전 제출 및 사후 제출 테스트
사전 제출 테스트는 일반 커널에 장애가 도입되는 것을 방지하는 데 사용됩니다. 현재 이 결과는 공개적으로 제공되지 않습니다.

새 패치가 일반 커널 브랜치에 커밋되면 Android 사후 제출 테스트가 실행됩니다. 부분 브랜치 이름으로 aosp_kernel을 입력하면 사용 가능한 결과가 있는 커널 브랜치 목록이 표시됩니다. 예를 들어 `android-mainline`의 결과는 여기에서 확인할 수 있습니다.
Tradefed
Trade Federation(Tradefed 또는 약어로 TF로 표시)은 Android 기기에서 테스트를 실행하기 위해 고안된 연속 테스트 프레임워크입니다. 예를 들어 Tradefed는 CTS 및 VTS를 실행하는 데 사용됩니다. 자세한 내용은 Trade Federation 개요를 참고하세요.
VTS
Android 공급업체 테스트 모음(VTS)은 Android 테스트를 위한 광범위한 기능을 제공하고, 테스트 기반 개발 프로세스를 촉진하며, HAL 및 OS 커널 테스트를 자동화합니다. 자세한 내용은 공급업체 테스트 모음(VTS) 및 인프라를 참고하세요.