Android Kotlin 기초 01.1: 시작하기

이 Codelab은 Android Kotlin 기초 교육 과정의 일부입니다. Codelab을 순서대로 진행한다면 이 과정을 통해 최대한의 가치를 얻을 수 있을 것입니다. 모든 과정 Codelab은 Android Kotlin 기초 Codelab 방문 페이지에 나열되어 있습니다.

소개

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

기본 요건

  • Android 스튜디오와 같은 IDE (통합 개발 환경)를 사용하는 객체 지향 앱의 일반적인 소프트웨어 개발 프로세스를 이해해야 합니다.
  • 객체 지향 프로그래밍에 관한 1년 이상의 경력과 자바 및 Kotlin에 관한 지식이 있어야 합니다.

학습할 내용

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

수행하는 작업

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

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

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

  1. Android 스튜디오가 아직 열려 있지 않은 경우 엽니다.
  2. 기본 Android 스튜디오 시작 대화상자에서 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. 기본 Save location이 앱을 저장할 위치인지 확인합니다. 그렇지 않으면 위치를 원하는 디렉터리로 변경합니다.
  7. Language가 Kotlin인지 확인합니다.
  8. 최소 API 수준이 API 19: Android 4.4 (KitKat)인지 확인합니다. 이 Codelab이 작성된 시점에 Android 스튜디오는 이 API 수준을 사용하면 앱이 약 95.3% 의 기기에서 실행될 것이라고 밝혔습니다.
    (후속 Codelab에서 최소 API 수준에 관해 자세히 알아봅니다.) 지금 자세히 알아보려면 Help me choose를 클릭하세요. 클릭하면 API 수준에 관한 정보가 포함된 창이 열립니다.)
  9. AndroidX 아티팩트 사용 체크박스를 선택합니다.
  10. 다른 체크박스는 모두 그대로 두고 Finish를 클릭합니다. 프로젝트에 선택한 타겟 SDK의 구성요소가 더 필요하다면 Android 스튜디오가 자동으로 구성요소를 설치하므로 시간이 다소 걸릴 수 있습니다. 표시되는 안내에 따라 기본 옵션을 수락합니다.

이제 Android 스튜디오에서 프로젝트가 생성됩니다. 다소 시간이 걸릴 수 있습니다. 오류가 발생하지 않습니다. 경고가 표시되면 무시합니다.

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

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

  1. Project 탭이 아직 선택되어 있지 않다면 선택합니다. 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 코드가 자바 폴더에 표시되는 데는 과거 이유가 있습니다. 이 규칙을 사용하면 동일한 프로젝트 및 앱에서도 자바 프로그래밍 언어로 작성된 코드와 Kotlin을 원활하게 상호 운용할 수 있습니다.

    위 그림과 같이 앱의 클래스 파일은 세 개의 하위 폴더에 포함되어 있습니다. 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은 도메인별 언어를 사용하여 앱의 프로젝트 구조, 구성, 종속 항목을 설명하는 빌드 자동화 시스템입니다. 앱을 컴파일하고 실행하면 실행 중인 Gradle 빌드에 관한 정보가 표시됩니다. 설치 중인 Android Package Kit (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 대화상자가 표시되면 사전 구성된 하드웨어 기기 목록이 표시됩니다. 각 표에는 대각선 디스플레이 크기(크기), 픽셀 단위의 화면 해상도(해상도), 픽셀 밀도(밀도) 열이 제공됩니다.

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


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

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

이 작업에서는 마지막으로 새 앱을 실행합니다.

  1. Android 스튜디오에서 Run > Run app을 선택하거나 툴바에서 Run 아이콘 Run > Run app을 선택하거나 툴바에서 Run 아이콘 [ICON HERE]을 클릭합니다. [IMAGEINFO]: ic_run.png, Android 스튜디오 Run 아이콘 을 클릭합니다. 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. 기기에서 설정을 열고 휴대전화 정보를 검색한 후 휴대전화 정보를 탭하고 빌드 번호를 일곱 번 탭합니다.
  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로 "로 변경하고 최근에 생일을 맞은 사용자의 이름을 입력합니다.
  • Android 스튜디오를 설치하려면 Android Studio로 이동하여 안내에 따라 다운로드하여 설치합니다.
  • 프로젝트 창에서 앱의 Android 계층 구조를 보려면 세로 탭 열에 있는 Project 탭을 클릭합니다. 그런 다음 상단의 드롭다운 메뉴에서 Android를 선택합니다.
  • 프로젝트에 새 종속 항목을 추가하거나 종속 항목 버전을 변경해야 하는 경우 build.gradle(Module:app) 파일을 수정하세요.
  • 앱의 모든 코드와 리소스는 app 폴더와 res 폴더 내에 있습니다. java 폴더에는 Kotlin 또는 자바 소스 코드 (또는 둘 다)의 활동, 테스트 및 기타 구성요소가 포함되어 있습니다. res 폴더에는 레이아웃, 문자열, 이미지와 같은 리소스가 포함됩니다.
  • Android 앱에 기능, 구성요소, 권한을 추가하려면 AndroidManifest.xml 파일을 수정합니다. 추가 활동과 같은 모든 앱 구성요소는 이 XML 파일에 선언해야 합니다.
  • 앱을 실행할 Android Virtual Device (에뮬레이터)를 만들려면 AVD Manager를 사용합니다.
  • Android 스튜디오를 사용하여 실제 Android 기기에서 앱을 실행하려면 기기에서 USB 디버깅을 사용 설정합니다. Settings > About phone을 열고 Build number를 일곱 번 탭합니다. 그런 다음 SettingsDeveloper options를 열고 USB debugging을 선택합니다.

Udacity 과정:

Android 스튜디오 문서:

기타:

이 섹션에는 강사가 진행하는 과정의 일부로 이 Codelab을 통해 작업하는 학생들의 숙제 과제가 나와 있습니다. 강사는 다음을 처리합니다.

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

강사는 이러한 추천을 원하는 만큼 사용할 수 있으며 다른 적절한 숙제를 할당해도 좋습니다.

이 Codelab을 직접 학습하고 있다면 언제든지 숙제를 통해 지식을 확인해 보세요.

앱 빌드 및 실행

  • Empty Template으로 새 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
  • 'My Dice Roller."'라는 제목 표시줄

다음 강의 시작: 1.2: 기본 앱 분석

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