Android Kotlin 기초 01.1: 시작하기

이 Codelab은 Android Kotlin 기초 과정의 일부입니다. Codelab을 순서대로 진행하면 이 과정의 학습 효과를 극대화할 수 있습니다. 모든 과정 Codelab은 Android Kotlin 기본사항 Codelab 방문 페이지에 나열되어 있습니다.

소개

이 Codelab에서는 에뮬레이터와 실제 기기에서 첫 번째 Android 앱인 HelloWorld를 만들고 실행합니다. Android 프로젝트의 모양도 살펴봅니다.

기본 요건

  • Android 스튜디오와 같은 IDE (통합 개발 환경)를 사용하여 객체 지향 앱의 일반적인 소프트웨어 개발 프로세스를 이해해야 합니다.
  • 객체 지향 프로그래밍 경험이 1년 이상 있어야 하며 Java와 Kotlin을 이해해야 합니다.

학습할 내용

  • Android 스튜디오에서 기본 Android 앱을 빌드하는 방법
  • 템플릿에서 Android 프로젝트를 만드는 방법
  • Android 프로젝트의 주요 구성요소를 찾는 방법
  • 에뮬레이터 또는 실제 기기에서 Android 앱을 실행하는 방법

수행할 작업

  • 새 Android 프로젝트와 HelloWorld라는 기본 앱을 만듭니다.
  • 컴퓨터에서 앱을 실행할 수 있도록 에뮬레이터 (가상 기기)를 만듭니다.
  • 가상 기기 및 실제 기기에서 HelloWorld 앱을 실행합니다.
  • 프로젝트 레이아웃을 살펴봅니다.
  • AndroidManifest.xml 파일을 살펴봅니다.

HelloWorld 앱은 Android 가상 기기 또는 실제 기기의 화면에 'Hello World' 문자열을 표시합니다. 앱은 다음과 같이 표시됩니다.

이 작업에서는 Android 스튜디오가 올바르게 설치되었는지 확인하기 위해 새 앱 프로젝트를 만듭니다.

  1. Android 스튜디오가 아직 열려 있지 않다면 엽니다.
  2. 기본 Welcome to Android Studio 대화상자에서 Start a new Android Studio project를 클릭합니다.

  3. 프로젝트 선택 대화상자가 표시됩니다. 아래와 같이 Empty Activity를 선택하고 Next를 클릭합니다.



    Activity은 사용자가 할 수 있는 단일하고 집중된 것입니다. 모든 앱에는 진입점으로 하나 이상의 활동이 있어야 합니다. 이 진입점 활동을 다른 프로그램의 main() 함수로 생각하면 됩니다. 활동에는 일반적으로 사용자 인터페이스 (UI) 요소가 화면에 표시되는 방식을 정의하는 레이아웃이 연결되어 있습니다. Android 스튜디오에서는 시작하는 데 도움이 되는 여러 Activity 템플릿을 제공합니다.
  4. Configure your project 대화상자에서 Name에 'HelloWorld'를 입력합니다.

  5. 회사 도메인의 기본값인 android.example.com을 수락하거나 고유한 회사 도메인을 만듭니다. 이 값에 앱 이름을 더한 값이 앱의 패키지 이름이 됩니다. 앱을 게시할 계획이 없다면 기본값을 수락하세요. 나중에 앱의 패키지 이름을 변경할 수 있지만 추가 작업이 필요합니다.
  6. 기본 저장 위치가 앱을 저장할 위치인지 확인합니다. 그렇지 않은 경우 위치를 원하는 디렉터리로 변경합니다.
  7. 언어가 Kotlin인지 확인합니다.
  8. 최소 API 수준이 API 19: Android 4.4 (KitKat)인지 확인합니다. 이 Codelab이 작성될 당시 Android 스튜디오에서는 이 API 수준을 사용하면 약 95.3% 의 기기에서 앱이 실행된다고 표시했습니다.
    (최소 API 수준에 관한 자세한 내용은 이후 Codelab에서 알아봅니다. 지금 자세히 알아보려면 선택 지원을 클릭하세요. API 수준에 관한 정보가 포함된 창이 열립니다.)
  9. Use AndroidX artifacts 체크박스를 선택합니다.
  10. 다른 체크박스는 모두 선택 해제된 상태로 두고 완료를 클릭합니다. 선택한 타겟 SDK에 프로젝트에 필요한 구성요소가 더 있는 경우 Android 스튜디오에서 자동으로 설치하며, 이 작업은 다소 시간이 걸릴 수 있습니다. 메시지에 따라 기본 옵션을 수락합니다.

이제 Android 스튜디오에서 프로젝트를 만듭니다. 이 작업은 다소 시간이 걸릴 수 있습니다. 오류가 표시되지 않습니다. 경고가 표시되면 무시하세요.

이 작업에서는 Android 스튜디오에서 HelloWorld 프로젝트를 살펴보고 Android 스튜디오를 사용한 개발의 기본사항을 알아봅니다.

1단계: 프로젝트 창 살펴보기

  1. 프로젝트 탭이 아직 선택되지 않은 경우 선택합니다. Project 탭은 Android 스튜디오 창의 왼쪽에 있는 세로 탭 열에 있습니다. 프로젝트 창이 열립니다.


  2. 프로젝트를 표준 Android 프로젝트 계층 구조로 보려면 프로젝트 창 상단의 드롭다운 메뉴에서 Android를 선택합니다. (Android가 기본값입니다.) 파일 시스템 계층 구조에 표시되는 방식 등 다양한 방법으로 프로젝트 파일을 볼 수 있습니다. 하지만 Android 뷰를 사용하면 프로젝트를 더 쉽게 작업할 수 있습니다.

2단계: 앱 폴더 살펴보기

앱의 모든 코드와 리소스는 app 폴더에 있습니다.

  1. Project > Android 창에서 app 폴더를 펼칩니다. app 폴더 안에는 manifests, java, generatedJava, res이라는 4개의 하위 폴더가 있습니다.
  2. java 폴더를 펼친 다음 com.example.android.HelloWorld 폴더를 펼쳐 MainActivity Kotlin 파일을 확인합니다.



    java 폴더에는 Android 앱의 모든 기본 Kotlin 코드가 포함되어 있습니다. Kotlin 코드가 java 폴더에 표시되는 데는 역사적인 이유가 있습니다. 이 규칙을 사용하면 동일한 프로젝트와 앱에서도 Kotlin이 Java 프로그래밍 언어로 작성된 코드와 원활하게 상호 운용될 수 있습니다.

    앱의 클래스 파일은 위의 그림과 같이 세 개의 하위 폴더에 포함되어 있습니다. com.example.hello.helloworld (또는 지정한 도메인 이름) 폴더에는 앱 패키지의 모든 파일이 포함되어 있습니다. 특히 MainActivity 클래스는 앱의 기본 진입점입니다. 다음 Codelab에서 MainActivity에 관해 자세히 알아봅니다. java 폴더의 다른 두 폴더는 단위 테스트와 같은 테스트 관련 코드에 사용됩니다.
  1. generatedJava 폴더를 확인합니다. 이 폴더에는 Android 스튜디오에서 앱을 빌드할 때 생성하는 파일이 포함되어 있습니다. 앱을 다시 빌드할 때 변경사항이 재정의될 수 있으므로 이 폴더의 내용은 수정하지 마세요. 하지만 디버깅 중에 이러한 파일을 살펴봐야 할 때는 이 폴더에 대해 알아두는 것이 유용합니다.

3단계: res 폴더 탐색하기

  1. Project > Android 창에서 res 폴더를 펼칩니다.

    res 폴더에는 리소스가 있습니다. Android의 리소스는 앱에서 사용되는 정적 콘텐츠입니다. 리소스에는 이미지, 텍스트 문자열, 화면 레이아웃, 스타일, 16진수 색상이나 표준 크기와 같은 값이 포함됩니다.

    Android 앱은 Kotlin 코드와 리소스를 최대한 분리합니다. 이렇게 하면 앱의 UI에 사용된 모든 문자열이나 아이콘을 훨씬 쉽게 찾을 수 있습니다. 또한 이러한 리소스 파일 중 하나를 변경하면 앱에서 파일이 사용되는 모든 곳에 변경사항이 적용됩니다.
  2. res 폴더에서 layout 폴더를 펼쳐 activity_main.xml 파일을 확인합니다.


Activity는 일반적으로 res/layout 디렉터리에 XML 파일로 정의된 UI 레이아웃 파일과 연결됩니다. 레이아웃 파일은 일반적으로 활동의 이름을 따서 지정됩니다. 이 경우 활동 이름은 MainActivity이므로 연결된 레이아웃은 activity_main입니다.

4단계: 매니페스트 폴더 및 AndroidManifest.xml 살펴보기

manifests 폴더에는 Android 시스템에 앱에 관한 필수 정보를 제공하는 파일이 포함되어 있습니다.

  1. manifests 폴더를 펼치고 AndroidManifest.xml을 더블클릭하여 엽니다. AndroidManifest.xml 파일에는 앱에 포함된 활동 등 Android 시스템에서 앱을 실행하는 데 필요한 세부정보가 포함되어 있습니다.


  2. MainActivity<activity> 요소에서 참조됩니다. 앱의 모든 Activity는 매니페스트에서 선언해야 합니다. MainActivity의 예는 다음과 같습니다.
<activity android:name=".MainActivity">
   <intent-filter>
       <action android:name="android.intent.action.MAIN"/>

       <category android:name="android.intent.category.LAUNCHER"/>
   </intent-filter>
</activity>
  1. <activity> 내의 <intent-filter> 요소를 확인합니다. 이 인텐트 필터의 <action><category> 요소는 사용자가 런처 아이콘을 클릭할 때 앱을 시작할 위치를 Android에 알려줍니다. 인텐트 필터에 관해서는 이후 Codelab에서 자세히 알아봅니다.

AndroidManifest.xml 파일은 앱에 필요한 권한을 정의하는 곳이기도 합니다. 권한에는 앱이 전화 연락처를 읽거나, 인터넷을 통해 데이터를 전송하거나, 기기의 카메라와 같은 하드웨어에 액세스하는 기능이 포함됩니다.

Gradle은 도메인별 언어(DSL)를 사용하여 앱의 프로젝트 구조, 구성, 종속 항목을 설명하는 빌드 자동화 시스템입니다. 앱을 컴파일하고 실행하면 실행 중인 Gradle 빌드에 관한 정보가 표시됩니다. 설치되는 Android 패키지 키트 (APK)에 관한 정보도 표시됩니다. (APK는 Android 운영체제에서 모바일 앱을 배포하고 설치하는 데 사용하는 패키지 파일 형식입니다.)

Gradle 시스템을 살펴봅니다.

  1. Gradle Scripts 폴더를 펼칩니다. Project > Android 창에서 이 폴더에는 빌드 시스템에 필요한 모든 파일이 포함되어 있습니다.


  2. build.gradle(Project: HelloWorld) 파일을 찾습니다.

    이 파일에는 프로젝트를 구성하는 모든 모듈에 공통적인 구성 옵션이 포함되어 있습니다. 모든 Android 스튜디오 프로젝트에는 단일 최상위 Gradle 빌드 파일이 포함됩니다. 이 파일은 프로젝트의 모든 모듈에 공통되는 Gradle 저장소와 종속 항목을 정의합니다.
  3. build.gradle(Module:app) 파일을 찾습니다.

    프로젝트 수준 build.gradle 파일 외에도 각 모듈에는 자체 build.gradle 파일이 있습니다. 모듈 수준 build.gradle 파일을 사용하면 각 모듈의 빌드 설정을 구성할 수 있습니다. (HelloWorld 앱에는 앱 자체의 모듈 하나만 있습니다.) 이 build.gradle 파일은 앱 수준 빌드 구성을 변경할 때 가장 자주 수정하는 파일입니다. 예를 들어 앱에서 지원하는 SDK 수준을 변경하거나 dependencies 섹션에서 새 종속 항목을 선언할 때 이 build.gradle 파일을 수정합니다. 이 두 가지에 관해서는 이후 Codelab에서 자세히 알아봅니다.

이 작업에서는 Android Virtual Device (AVD) Manager를 사용하여 가상 기기 (에뮬레이터)를 만듭니다. 가상 기기는 특정 유형의 Android 기기를 위한 구성을 시뮬레이션합니다. 그러면 그 가상 기기를 사용하여 앱을 실행할 수 있습니다.

Android Emulator는 독립적인 애플리케이션으로, 자체 시스템 요구사항이 있습니다. 가상 기기는 많은 디스크 공간을 사용할 수 있습니다. 문제가 발생하면 Android Emulator에서 앱 실행을 참고하세요.

1단계: Android Virtual Device (AVD) 만들기

컴퓨터에서 에뮬레이터를 실행하려면 가상 기기를 설명하는 구성을 만들어야 합니다.

  1. Android 스튜디오에서 Tools > AVD Manager를 선택하거나 툴바에서 AVD Manager 아이콘 AVD Manager 아이콘을 클릭합니다. Your Virtual Devices 대화상자가 표시됩니다. 가상 기기를 이미 만든 경우 대화상자에 가상 기기가 표시됩니다 (아래 그림 참고). 그렇지 않으면 빈 목록이 표시됩니다.

    이미 생성된 가상 기기 목록을 보여주는 Android Virtual Device (AVD) Manager
  2. 대화상자의 왼쪽 하단에 있는 +Create Virtual Device를 클릭합니다. Select Hardware 대화상자가 표시되고 사전 구성된 하드웨어 기기 목록이 표시됩니다. 각 기기의 대각선 디스플레이 크기 (Size), 픽셀 단위의 화면 해상도 (Resolution) 및 픽셀 밀도 (Density)에 관한 열을 표로 제공합니다.

    하드웨어 기기 선택
  3. Nexus 5x 또는 Pixel XL과 같은 기기를 선택하고 Next를 클릭합니다. System Image 대화상자가 표시됩니다.
  4. Recommended 탭을 클릭하고 가상 기기에서 실행할 Android 시스템 버전을 선택합니다 (예: Pie).


  1. 시스템 이미지를 선택한 후 Next를 클릭합니다. Android Virtual Device (AVD) 대화상자가 열립니다. 구성을 확인하고 완료를 클릭합니다.

2단계: 가상 기기에서 앱 실행

이 작업에서는 새 앱을 실행합니다.

  1. Android 스튜디오에서 Run > Run app을 선택하거나 툴바에서 Run 아이콘을 클릭합니다. Run app 또는 툴바에서 Run 아이콘 [ICON HERE] 을 클릭합니다. [IMAGEINFO]: ic_run.png, Android 스튜디오 실행 아이콘' style='width: 24.00px' src='img/6c65750f2ce7f651.png'> 을 클릭합니다. Select Deployment Target 대화상자가 표시되고 사용 가능한 기기가 없다는 경고가 표시됩니다. 개발 컴퓨터에 실제 기기가 연결되어 있지 않거나 아직 가상 기기를 실행하지 않은 경우 이 경고가 표시됩니다.
  2. Select Deployment Target 대화상자의 Available Virtual Devices에서 만든 가상 기기를 선택합니다. 확인을 클릭합니다.



    에뮬레이터가 실제 기기와 마찬가지로 시작되고 부팅됩니다. 컴퓨터 속도에 따라 이 과정에 다소 시간이 걸릴 수 있습니다. 앱이 빌드되고 에뮬레이터가 준비되면 Android 스튜디오에서 앱 APK를 에뮬레이터에 업로드하고 실행합니다.

    다음 그림과 같이 HelloWorld 앱이 표시됩니다.

이 작업에서는 휴대전화나 태블릿과 같은 실제 휴대기기가 있는 경우 해당 기기에서 앱을 실행합니다. 항상 가상 기기와 실제 기기 모두에서 앱을 테스트하세요.

필수 요소:

  • Android 기기(예: 휴대전화 또는 태블릿)
  • USB 포트를 통해 Android 기기를 컴퓨터에 연결하는 USB 데이터 케이블
  • Linux 또는 Windows 시스템을 사용하는 경우 추가 단계를 실행해야 할 수 있습니다. 하드웨어 기기에서 앱 실행 문서를 참고하세요. 기기에 적합한 USB 드라이버를 설치해야 할 수도 있습니다. Windows 기반 USB 드라이버는 OEM USB 드라이버 설치를 참고하세요.

1단계: USB 디버깅 사용 설정

Android 스튜디오가 Android 기기와 통신하게 하려면 기기의 개발자 옵션 설정에서 USB 디버깅을 사용 설정해야 합니다.

Android 4.2(Jellybean) 이상에서는 개발자 옵션 설정이 기본적으로 숨겨져 있습니다. 개발자 옵션을 표시하고 USB 디버깅을 사용 설정하려면 다음 단계를 따르세요.

  1. 기기에서 설정을 열고 휴대전화 정보를 검색한 후 휴대전화 정보를 탭하고 빌드 번호를 7번 탭합니다.
  2. 이전 페이지 (설정 / 시스템)로 돌아갑니다. 목록에 개발자 옵션이 표시됩니다. 개발자 옵션을 탭합니다.
  3. USB 디버깅을 선택합니다.

2단계: Android 기기에서 앱 실행

이제 기기를 연결하고 Android 스튜디오에서 앱을 실행할 수 있습니다.

  1. USB 케이블을 사용해 Android 기기를 개발 머신에 연결합니다. USB 디버깅을 허용할지 묻는 대화상자가 기기에 표시됩니다.


  2. 항상 허용 옵션을 선택하여 이 컴퓨터를 기억합니다. 확인을 탭합니다.
  3. 컴퓨터의 Android 스튜디오 툴바에서 Run 버튼 Android 스튜디오 실행 아이콘을 클릭합니다. Select Deployment Target 대화상자가 열리고 사용 가능한 에뮬레이터 및 연결된 기기 목록이 표시됩니다. 에뮬레이터와 함께 실제 기기가 표시됩니다.


  4. 기기를 선택하고 OK를 클릭합니다. Android 스튜디오가 기기에 앱을 설치하고 실행합니다.

문제 해결

Android 스튜디오에서 기기를 인식하지 못하는 경우 다음을 시도해 보세요.

  1. USB 케이블을 연결 해제했다가 다시 연결합니다.
  2. Android 스튜디오를 다시 시작합니다.

컴퓨터가 여전히 기기를 찾지 못하거나 '승인되지 않음'으로 선언하면 다음 단계를 따르세요.

  1. USB 케이블을 연결 해제합니다.
  2. 기기에서 설정 앱의 개발자 옵션을 엽니다.
  3. USB 디버깅 승인 취소를 탭합니다.
  4. 기기를 컴퓨터에 다시 연결합니다.
  5. 메시지가 표시되면 승인을 부여합니다.

기기에 적합한 USB 드라이버를 설치해야 할 수도 있습니다. 하드웨어 기기에서 앱 실행을 참고하세요.

챌린지: 이제 설정이 완료되었고 기본 개발 워크플로에 익숙해졌으므로 다음을 실행하세요.

  1. Android 스튜디오에서 새 프로젝트를 만듭니다.
  2. 'Hello World' 인사말을 'Happy Birthday to '와 최근에 생일을 맞은 사람의 이름으로 변경합니다.
  • Android 스튜디오를 설치하려면 Android 스튜디오로 이동하여 안내에 따라 다운로드하고 설치하세요.
  • 프로젝트 창에서 앱의 Android 계층 구조를 보려면 세로 탭 열에서 프로젝트 탭을 클릭합니다. 그런 다음 상단의 드롭다운 메뉴에서 Android를 선택합니다.
  • 프로젝트에 새 종속 항목을 추가하거나 종속 항목 버전을 변경해야 하는 경우 build.gradle(Module:app) 파일을 수정합니다.
  • 앱의 모든 코드와 리소스는 appres 폴더에 있습니다. java 폴더에는 Kotlin 또는 Java 소스 코드 (또는 둘 다)의 활동, 테스트, 기타 구성요소가 포함됩니다. res 폴더에는 레이아웃, 문자열, 이미지와 같은 리소스가 있습니다.
  • Android 앱에 기능, 구성요소, 권한을 추가하려면 AndroidManifest.xml 파일을 수정하세요. 추가 활동과 같은 모든 앱 구성요소는 이 XML 파일에서 선언해야 합니다.
  • 앱을 실행할 Android Virtual Device (에뮬레이터)를 만들려면 AVD Manager를 사용하세요.
  • Android 스튜디오를 사용하여 실제 Android 기기에서 앱을 실행하려면 기기에서 USB 디버깅을 사용 설정하세요. 이렇게 하려면 설정 > 휴대전화 정보를 열고 빌드 번호를 7번 탭합니다. 그런 다음 설정 > 개발자 옵션을 열고 USB 디버깅을 선택합니다.

Udacity 과정:

Android 스튜디오 문서:

기타:

이 섹션에는 강사가 진행하는 과정의 일부로 이 Codelab을 진행하는 학생에게 출제할 수 있는 과제가 나열되어 있습니다. 다음 작업은 강사가 결정합니다.

  • 필요한 경우 과제를 할당합니다.
  • 과제 제출 방법을 학생에게 알립니다.
  • 과제를 채점합니다.

강사는 이러한 추천을 원하는 만큼 사용할 수 있으며 적절하다고 생각되는 다른 과제를 출제해도 됩니다.

이 Codelab을 직접 진행하는 경우 이러한 과제를 자유롭게 사용하여 배운 내용을 테스트해 보세요.

앱 빌드 및 실행

  • 빈 템플릿에서 새 Android 프로젝트를 만듭니다.
  • res/strings.xml 파일을 엽니다.
  • app_name 문자열 값을 'My Dice Roller'로 변경합니다. 이 이름은 제목 표시줄에 표시됩니다.
  • 원하는 Android 버전을 타겟팅하는 기기의 에뮬레이터를 만들고 앱을 실행합니다. 앱의 제목이 어떻게 변경되었는지 확인하세요.

질문에 답하세요

질문 1

기본 활동의 레이아웃 파일 이름은 무엇인가요?

  • MainActivity.java
  • AndroidManifest.xml
  • activity_main.xml
  • build.gradle

질문 2

앱 이름을 지정하는 문자열 리소스의 이름은 무엇인가요?

  • app_name
  • xmlns:app
  • android:name
  • applicationId

질문 3

새 에뮬레이터를 만드는 데 사용하는 도구는 무엇인가요?

  • Android Device Monitor
  • AVD Manager
  • SDK Manager
  • Theme Editor

채점을 위해 앱 제출

앱에 다음이 있는지 확인합니다.

  • 화면에 'Hello World'를 표시하는 Activity
  • '내 주사위 굴리기'라는 제목 표시줄

다음 강의를 시작합니다. 1.2: 기본 앱 분석

이 과정의 다른 Codelab 링크는 Android Kotlin 기초 Codelab 방문 페이지를 참고하세요.