Myugyin's Watchtower

[우당탕탕 Android Studio] 2. 프로젝트 생성과 에뮬레이터 실행 본문

우당탕탕 Android Studio

[우당탕탕 Android Studio] 2. 프로젝트 생성과 에뮬레이터 실행

Myugyin 2020. 5. 10. 00:36

 Android Studio! 어디까지 알아보고 오셨는가!

 

 이번 시간에는 새로운 프로젝트를 생성해볼 것이다. 프로젝트에서 여러분들은 앱의 UI와 여러 기능들을 구현하게 되고, 여러 기능들을 배우면서 점차 멋진 앱들을 구성해 나갈 것이다. 하지만 처음부터 멋진 앱을 만들어 사람들을 감동시킬 생각은 너무 큰 욕심일 것이다. 프로젝트를 생성하는 방법부터 배워가며 실력을 쌓아나가도록 하자. 이번에는 프로젝트를 만드는 방법과 더불어, 안드로이드 스튜디오의 인터페이스(Interface)를 알아볼 것이고, 추가로 에뮬레이터(Emulator)를 만들어 앱을 가상 환경에서 구동해 볼 것이다.

 

So...Let's dive in!

 

Today's Keyword

Creating Project, Android Studio Interface, Emulator

 

 

 

1. 프로젝트 생성

자신이 현재 형성한 프로젝트는 위 사진처럼 옆에 보여지게 된다.

 저번시간에 보았던 익숙한 메인 화면이다. 이미 필자는 개인적인 코딩 공부와 프로젝트 진행, 안드로이드 강의 멘티들의 수업자료로 인해 이미 존재하는 프로젝트가 넘쳐나고 있다. 하지만 처음 Android Studio를 시작하는 여러분들은 깔끔하게 메뉴만 떠져 있을 것이다.

 Start a new Android Studio project를 눌러 새로운 프로젝트를 만들자. 나중에 여러분이 만든 프로젝트는 옆에 프로젝트 목록들을 클릭해서도, 옆에 Open an existing Android Sudio project를 눌러 프로젝트를 오픈할 수 있다.

 보니까 우와! 뭔가 많이 보인다! 보면 알 수 있듯이, 해당 개발도구를 활용하여 안드로이드 앱뿐만이 아니라 Wearable Device (예를 들어 스마트워치), TV 등과 같이 안드로이드와 관련된 모든 것은 해당 개발 도구로 제작할 수 있다는 것을 알 수 있다. 하지만 일단은 이 카테고리의 존재 의의인 안드로이드 앱 만들기에 집중하기 위해 다른 것들은 제쳐두고, 스마트폰과 태블릿에 사용되는 안드로이드 앱을 만드는 것에 집중하도록 하자.

 Empty Activity를 눌러 새로운 프로젝트를 형성하자. 빈 프로젝트가 여러 기능들을 연습하기엔 가장 안성맞춤일 것이다. 보면 이미 템플렛처럼 기능이 일부 구현되어 있는 기본 액티비티도 존재하는 것을 알 수 있다. 여러분들이 다른 기능들을 많이 배우면 해당 템플릿을 사용하여 더욱 다양하고 멋집 앱을 개발할 수 있다는 점을 알아두자.

 다음 화면에서 프로젝트 이름과 패키지 이름을 설정할 수 있다. 프로젝트 이름은 중복이 되지 않는 '정상적인 이름'이면 된다. 당연히 ' - '와 같은 기호가 먼저 오면 안 되고, 한글과 같은 영어가 아닌 다른 문자는 안드로이드 스튜디오가 인식을 못한다. 

 패키지 이름(Package name)은 기본적으로 'com.example.프로젝트이름' 으로 구성된다. 나중에 import 하거나, 인터페이스 내에서 java파일을 찾거나 생성할 때 해당 패키지에 저장된다는 점만 기억하면 될 것이다.

 언어(Language)는 해당 카테고리에서 주로 사용하여 설명할 JAVA로 설정한다. 나중에 기회가 된다면 안드로이드 스튜디오가 지원하는 다른 언어인 Kotlin에 대해서도 포스팅을 해보겠다.

 Finish를 누르면 프로젝트가 형성이 된다. 

 

2. 안드로이드 스튜디오 인터페이스 알아보기

 자, 여러분과 내가 즐겁게 놀 놀이터이다. 하지만 놀이터도 각각의 기구를 어떻게 사용하는지 알아야지 제대로 놀 수 있다. 여러분이 작업하며 가장 많이 들을 공간의 명칭들을 알아볼 것이다. 

 

 먼저 프로젝트를 형성하면 기본적으로 activity_main.xml파일과 MainActivity.java라는 파일이 형성된다. 각각 앱의 기본 UI와 기본 기능들을 담당한다. 이러한 파일들에서 어떤 기능이 구현이 가능한지에 대해서는 차차 배워나갈 것이다.

 

 Project: 말 그대로 프로젝트의 구성요소를 보여주는 곳이다. 기능을 구연하는 JAVA 파일, UI를 구현하는 UI파일 모두 해당 프로젝트에서 찾을 수 있다. 나중에 설명할 Drawable 파일과 이미지 파일 또한 해당 프로젝트 창에서 찾을 수 있다.

 

 

이하 인터페이스는 UI작업, 즉 XML 작업을 할 때 추가로 존재하는 인터페이스이다. 

 

 Pallette: 화가는 자신이 가장 자주 사용하는 색깔을 따로 팔레트에 둬 더욱 사용하기 쉽게 한다. 이와 같이 앱의 UI를 구성할때 가장 많이 사용되는 구성요소들을 간단히 Drag & Drop방식으로 형성할 수 있게 해주는 것이 Pallette이다. 이후에 알아볼 것이지만, XML 파일은 태그(Tag)를 사용하는 마크다운(Markdown) 언어이다. 즉, UI를 구현하기 위해서는 다음 사진과 같이 태그를 추가한 후, 여러 속성들을 지정해 줘야 한다.

XML은 나중에 익숙해지면 매우 편한 언어이지만, 안드로이드 스튜디오가 처음인 사람들에게는 그저 멘붕일 것이다.

 하지만 팔레트에 있는 여러 구성요소들을 간단히 Drag&Drop으로 형성할 수 있다. 이는 초보자들에겐 매우 기쁜 소식을 것이다.

 

Component Tree: 앱의 UI는 일종의 계층 구조(Hierarchy Structure)를 지니고 있다. 즉, 일정한 구성요소는 다른 구성 요소 안에 속하게 되는 구조인 것이다. (이는 다음 포스팅에서 더욱 자세히 알아볼 것이다.) 만약 복잡한 앱일 경우, 해당 UI의 구성요소를 클릭해서 접근하는 것은 어려울 것이다. 해당 경우, 이 창에서 해당 구성요소를 클릭함으로써 간단하게 접근할 수 있다.

 

Attribute: 각 구성요소들은 속성(Attribute)를 가지고 있다. 해당 속성들을 바꿔줌으로써 자신이 원하는 모양과 기능을 구현할 수 있다. 해당 작업 또한 XML 코드로 이루어지지만, Attribute창에서 간단하게 바꿔줄 수 있다. (Attribute에 대해서는 다음 포스팅에서 더욱 자세히 알아볼 것이다.)

 

3. 에뮬레이터 만들기

 에뮬레이터는 가상의 기기를 만들어 해당 기기에서 구동을 하는 것이다. 에뮬레이터의 장점은 실제 기기를 연결하고 연동시킬 필요 없이 가상의 핸드폰에서 빌드를 하여 손쉽게 빌드 오류와 결과를 확인할 수 있다는 점이다. 하지만 여러분들에게 에뮬레이터는 웬만하면 추천하고 싶지 않다. 아무리 에뮬레이터가 편리하다고 해도, 무섭도록 무겁다는 점이 해당 장점을 모두 가려버린다. (RAM이 16GB인 필자의 컴퓨터에서도 가끔 블루스크린이 뜨게 만드는 괴물 같은 녀석이다.) 이후 포스팅에 따로 실제 기기와 컴퓨터를 연결하는 방법에 대해서도 포스팅할 계획이다.

 

먼저 메인화면 (프로젝트 화면 말고!) Contifure -> AVD Manager를 누른다.

AVD Manager

해당 화면에서는 지금까지 자신이 만든 Virtual Device, 즉 가상 기기의 목록들을 보여준다. 필자는 에뮬레이터를 사용하기보다 실제 기기를 연결하여 빌드하는 것을 선호하기 때문에 가상기기를 하나만 만들었다.

 

 자, 가상기기를 만들어보자. 좌측 하단의 Create Virtual Divice를 클릭하여 가상기기를 만들자.

 

 Hardware Profile를 선택하여 기기의 크기를 설정하자. 필자는 가장 평범한 스마트폰 기기의 크기는 Pixel 2를 선택하여 진행하겠다. Next를 누르자.

 이제 기기의 버전을 선택하자. 옆에 Download가 적혀있는 것은 따로 다운로드가 필요하다는 뜻이니, 클릭하여 다운로드하자.

 이제 해당 기기의 이름을 만들고, orientation (기존의 세로 화면 or 가로 화면)을 정한 후, Finish를 눌러 만들자.

 

 이렇게 새로운 가상기기가 형성된 것을 확인할 수 있다.

 

4. Wrap - Up

 다음 시간부터 본격적인 앱 개발에 필요한 기본지식과 개발 작업에 들어갈 것이다. 모든 UIdml 기본이 되는 (View), 이 뷰를 기반으로 만들어진 위젯(Widget)레이아웃(Layout)에 대해서 공부해 볼 것이다. 모두들 안드로이드 개발자가 되는 순간까지 파이팅이다! 

Comments