반응형

 안드로이드 게임을 만들기에 앞서 안드로이드의 프로젝트를 만드는 방법과 구조를 알아보겠습니다. 원래 본 강좌는 게임을 개발하기 위한 소스만 설명하고자 했지만 안드로이드에 대해 한번도 다루어보지 않은 사람이 있을 수도 있겠다 싶어서 기본 구조만은 설명하고 본격적인 강좌를 시작하고자 합니다. 다시 말씀드리지만 본 강좌는 기초적인 문법 및 구조는 조금이지만 알고 있는 사람들을 기준으로 진행하고자 하였기 때문에 여기서는 아주 간략히만 설명하고자 합니다. 안드로이드 및 프로그래밍 언어를 처음 접해보신 분들은 지금은 그냥 저런게 있구나 정도만 이해하고 따라하시기 바랍니다. 다만, 어느정도 이해가 되야 제 설명을 좀더 정확히 인지할 수 있는 만큼 시간을 들여 다른 안드로이드 강좌도 학습해 보시기바랍니다.

 

 너무 알아서 학습해 와라 하는 식으로 말하는 것 같다고 느끼실수 있는데 사실 프로그래밍 언어를 학습하는 과정은 본인의 능동적 참여가 매우 중요합니다. 단순히 사용하는 문법만 강의한다면 두어개의 포스트로 끝내버릴 수 있을지 모릅니다. 즉, 문법이 많은 것보다는 그 문법을 어떤 순간에 어떻게 활용하는 가가 중요한데 이는 누가 노하우를 알려준다고 쉽게 익혀지는 것이 아닙니다. 정말 센서블한 몇몇 친구들은 아주 짧은 예제만 가지고도 훌륭히 활용하기도 하지만 대부분의 학습자들은 매우 많은 예제를 다루어 봄으로서 노하우 및 알고리즘이 형성됩니다. 실제 강의를 하다보면 한 기수에 한두명 정도 센스가 좋은 친구들을 제외하고 대부분은 활용에 오랜 시간과 노력이 요구되고 있습니다. 그리고 사실 프로그래밍 언어는 시중에 나와있는 책이나 이런 강좌를 통해서 혼자서 충분히 할 수 있습니다. 대신 시간이 오래걸리겠지요. 또 간혹 혼자 공부하다 보면 막히는 부분이 좀처럼 해결되지 않는 경우가 있을 수 있습니다. 그래서 사람들이 시간을 단축시키고 학습을 좀더 효과적이고 체계적으로 하기위해 학원이나 교육기관을 다니는 것이죠. 이것도 좋은 방법입니다. 하지만 제일 중요한 것은 어떤방식으로 학습을 하든 본인의 능동적 학습이 선행되야 좋은 결실을 맺을 수 있다는 것을 명심하시기 바랍니다.

 

  자. 그럼 이제부터 본격적으로 안드로이드 게임 개발을 위한 첫걸음을 걸어보겠습니다.

 

 먼저 앞으로 만들어 볼 프로젝트들을 한곳에 보관하기 위해 workspace 라는 이름의 폴더를 적당한 위치에 만들고 여기에 보관시키도록 Eclipse의 경로를 지정해 주시기 바랍니다. 가급적 경로는 모두 영어이름으로 지정하시기 바랍니다. 구글에서 한글에 대한 지원을 많이 향상시켰지만 가끔 한글 경로로 인한 에러가 발생하기도 합니다. 윈도우의 컴퓨터 이름도 영어로 사용하길 권장합니다.

 

 우선 어느 프로그램을 학습하던 제일 처음 해보는게 화면에 'Hello'라는 글씨가 나오게 하는 것이니까 우선 그것부터 해보겠습니다. 보통 화면 입출력에 대해 많은 개발언어들이 손쉽게 가능하도록 만들어져 있다보니 대수롭지 않게 학습하시는 분들이 있는데 제가 생각하는 프로그램 언어의 학습은 우선 화면 입출력이 내가 원하는 모양으로 나올 수 있게 하는 것이 무엇보다 중요하다고 봅니다. 단순이 따라해 보니까 되는구나. 라고 넘어가시지 말라는 겁니다. 일단 C나 Java를 접해보신 분들은 콘솔창으로 원하는 결과를 출력하는 방식에 익술하실 겁니다. 하지만 안드로이드는 스마트폰에서 구동되어져야 하는 만큼 결과를 보여주는 곳이 콘솔창이면 안되겠죠. 그래서 안드로이드 개발은 결과를 보기위해 스마트폰이 필요합니다. 하지만 스마튼폰이 없을 수도 있고 많은 버전과 크기, 해상도를 가진 스마트폰을 종류별로 구비할 수도 없겠죠. 그래서 여러분들이 다운받아 설치하신 ADT에는 가상의 스마트 폰을 제공해 줍니다. 보통 '애뮬레이터'라고 하죠. 이 애뮬레이터를 버전, 크기, 해상도별로 수십대로 만들 수 있으니 문법도 학습하기 전에 스마트폰 부터 구비하실 필요는 없습니다. 애뮬레이터를 만드는 방법은 다른 강좌를 우선 보시고 따라 하시기바랍니다. 지금 여기서 설명하려면 그림작업때문에 시간적으로 너무 많이 소요되니 기회가 될 때 차후에 다시 포스팅하도록 하겠습니다.

 

 안드로이드 버전은 매년 새롭게 업데이트 되고 있기때문에 그 때 그때 변경하기보다는 하나의 버전을 정하고 그 버전으로만 설명하도록 하겠습니다. 버전이 바뀌더라도 기본적인 구성은 큰 변화가 없으니 크게 신경쓰지 않으셔도 됩니다. 본 강좌에서는 API-14버전으로 예제를 진행하겠습니다. 아이스크림 샌트위치 버전이고요. 현재 가장 많이 분포되어 있는 버전입니다. 조만간 최신버전인 kitket이 더 많아 지겠죠.  우선 API-14버전으로 애뮬레이터를 준비해 주시고 실제 스마트폰을 연결하셔도 좋고요. 아무래도 애뮬에이터는 동작속도가 느리니까 좀 답답하실 수 있습니다. 

 

 자 그럼 이제 시작하죠.

 

 제일 먼저 프로젝트를 만들어야 하니 Eclipse의 메뉴에서 File->new->Android Application Project를 선택합니다.

 


아래와 같이 팝업윈도우가 나오면 프로젝트 이름과 패키지를 지정하시기 바랍니다. C나 java의 경우에는 결과를 콘솔창에 단순하게 텍스트형태로 보여주기 때문에 간단하게 원시파일(ex. aaa.c or aaa.java)만 만들고 컴파일 하면 됬지만 안드로이드 어플개발은 이미 시작부터 결과창이 스마트폰이기에 간단하게 원시파일만 가지고 작동될 수 가 없습니다. 그래서 스마트폰 화면에 결과가 보여지기까지 상당히 많은 양의 프로그램을 해줘야 합니다. 이게 그렇게 간단할 리가 없겠죠. 그래서 개발자가 개발을 쉽게 하도록 하기 위해 기본적인 화면 출력과 환경설정까지는 해주는 프로그램 파일들을 미리 만들어 놨습니다. 이제부터 여러분들이 보시는 팝업윈도우는 이런 프로그램 파일들을 포함한 기본 프로젝트를 만들어 주는 일종의 마법사 입니다. 그래서 프로젝트 생성까지 여러단계가 있죠. 윈도우 프로그램을 해보신 분은 wizard를 아시겠죠. 그 일종이라고 보시면 됩니다. 

 

매년 새롭게 출시되는 버전에 따라 위 모양이 다를 수 있습니다. 모양과 위치를 익히지 말고 항목의 의미를 이해하시면서 항목의 내용을 입력하시기 바랍니다.

 

▣ 각 항목의 의미

ㆍApplication Name : 본인이 제작하고자 하는 어플(App)의 이름 (마켓에 배포할 때의 이름은 다르게 할 수 있습니다. ex. Angry Bird)

ㆍProject Name : 제작하고자 하는 어플의 프로그램파일들이 저장되는 폴더의 이름

ㆍPackage Name  

   - 같은 이름의 어플 이름이 있을 수 있기때문에 구별되기 위한 고유한 명칭(보통 회사 uri를 역으로 작성)

   - 반드시 모두 소문자로만 작성하며 하나 이상의 구분점(.)으로 작성해야 함

     ( 패키지명 사용불가 : abcd (적어도 하나 이상의 구분점이 있어야 함), com.Andorid (대문자 사용) )

   - 보통은 회사uri의 역순표기를 고정해 두고 각 프로젝트마다 프로젝트 이름을 추가하여 구분함.( ex. com.andsoft.어플이름 )

 

ㆍMinimum Required SDK : 본인이 제작한 어플이 구동되기 위한 최소 버전. 선택한 버전보다 이전 버전의 스마트폰에서는 실행안됨

ㆍTarget SDK : API 14 : 본인 어플을 구동할 실질적인 타겟 버전. 선택한 버전을 우선으로 애뮬레이터가 실행됨.

ㆍCompile With : 프로그램을 만드는데 사용한 API에 대한 컴파일을 어느 버전으로 할 것인가를 선택. 가급적 최신버전 선택

        ( 본 강좌에서는 최신버전인 kitket 대신 API-14버전으로 선택. 'deprecated'되었다는 표시가 보기 싫어서-나중에 추가 설명) 

ㆍTheme : 테마설정. 어플에 적용되는 모양의 기본 틀 테마를 선택하는 항목으로 강좌를 진행하면서 차차 설명하고자 합니다.

 

※ 각 항목에 대해 좀 더 자세히 알고 싶다면 안드로이드 디벨로퍼 사이트를 좀더 참고해 보시기 바랍니다.

 

 

 

일단 아래와 같이 입력해 보겠습니다.

ㆍApplication Name : Hello (직접기입) 

ㆍProject Name : Hello (Application Name 기입하면 자동 완성)

ㆍPackage Name : com.andsoft.hello ( 자동으로 com.example.hello 로 완성되므로 example을 andsoft로 변경해줄것)

     ※ com.example 을 사용하셔도 되지만 그 안에 이미 다른 예제들이 있어서 자칫 에러가 날 수도 있으니 반드시 바꿔주시기 바랍니다.

 

 ※ 각 입력항목의 끝에 있는 콤보버튼으로 선택

  ( 만약 아래 항목들이 보이지 않으면 해당 버전의 SDK가 없는 것이니 상단 툴바에 있는 sdk manager를 통해 다운받으세요) 

ㆍMinimum Required SDK : API 8

ㆍTarget SDK : API 14 : Android 4.0

ㆍCompile With : Google APIs (Google Inc.) (API 14)

  

아래 그림과 같이 입력하셨다면 Next 버튼을 누르고 다음단계로 넘어갑니다.


 

 

아래와 같은 팝업윈도우가 나올겁니다. 참고로 지금 여러분들이 선택하신 내용들은  프로젝트가 생성된 후에 언제라도 변경이 가능합니다.


이 창은 프로젝트의 속성을 지정하는 창입니다.

 

ㆍCreate custom launcher icon 

    - 어플을 설치하면 보여지는 아이콘의 모양을 사용자가 변경하고자 한다면 체크를 합니다.

    - Default로 check 되어 있습니다. 

    - check된 상태에서 Next를 누르면 좀 있다 보게될 icon 설정 단계창이 나오고 해제하시면 icon 설정 단계를 건너뜁니다.

 

ㆍCreate activity 

    - 화면에 보여지기 위해서는 activity라는 class를 만들어야 하는데 만들것인가를 선택합니다. ( activity 설명은 다음 포스트에서)

    - 기본 check 되어 있습니다.

 

ㆍCreate Project in Workspace

    - 생성할 프로젝트 폴더를 저장할 위치를 설정합니다.

    - 기본적으로 처음 여러분이 eclipse에 연결한 workspace폴더 안에 자동으로 앞 단계에서 설정한 Project Name의 폴더를 만듭니다.

 

※ 각 항목에 대해 좀 더 자세히 알고 싶다면 안드로이드 디벨로퍼 사이트를 좀더 참고해 보시기 바랍니다.

 

기본 check상태에서 건드릴 내용이 없으므로 변경 없이 그냥 Next를 누릅니다.

 

위에서 설명한 데로 Icon의 모양을 결정하는 팝업창이 나옵니다.


 

 이 창에서 아이콘의 모양을 바꿀수 있습니다. 이 창은 여러분들이 이것 저것 눌러보시는 것도 좋을 듯 합니다. 오른쪽에 보이는 드로이드 인형 모양의 이미지가 기본적으로 여러분이 만들 어플의 Icon입니다. 해상도별로 여러 사이즈의 이미지가 마련되어 있고 버전에 따라 저 모양도 바뀌고 있습니다.

 

 아이콘 변경은 나중에 언제라도 변경 가능하니 지금은 그냥 Next를 누루고 넘어가겠습니다.

 

화면 출력을 담당하는 Activity Class(추후 설명)를 만드는 단계의 팝업창이 보여집니다.

   

 

현재는 3가지 종류의 액티비티가 선택 가능합니다. 버전에 따라 추가되겠죠. 그냥 여러분이 만드는 액티비티의 기본적이 모양을 결정하는 것이라고 생각하시면 됩니다. 지금 여기서 3가지를 설명하긴 좀 이르니 지금은 기본적으로 선택되어 있는 Black Activity를 선택하고 Next를 누르겠습니다. 각 항목에 마우스를 클릭하면 파란색 음영처리로 선택된 것을 보여줍니다.

 

지금 선택한 Blank Activity는 이름 그대로 비어있는 액티비티를 선택한 것으로 오른쪽 옆에 preview로 보여지는 것처럼 액션바와 제목영역만 포함된 빈 화면을 만들어 내는 Activity 입니다.(강좌를 진행하면서 설명할 내용입니다.)

 

Next를 누르시면 선택한 Blank Activity를 만들기 위해 필요한 파일들을 생성하는 팝업창이 보여집니다.


 

앞에서도 설명한 데로 안드로이드는 C나 Java처럼 콘솔창에 출력하는 것이 아니라서 화면에 'Hello' 라는 글씨 하나를 출력하는데도 상당히 많은양의 프로그래밍이 필요합니다. Activity Class도 이를 위해 미리 만들어 놓은 Class 입니다. 여러분은 이렇게 만들어 져 있는 많은 Class들을 언제 어디에 사용할지를 익히시면 기본적인 어플제작이 가능해 집니다. 또한 이런 일련의 작업들을 하나의 파일안에 다 담아두면 프로그래밍을 하는 것도 어렵고 나중에 디버깅을 하는것도 상당히 어려울 수 밖에 없습니다. 그래서 안드로이드도 기본적으로 프로그래밍과 디버깅이 용이하도록 MVC(Model View Control)패턴으로 구조화하여 프로젝트를 관리합니다. 강좌를 진행하면서 설명드릴 예정입니다. 다음 강좌에서 좀더 자세히 설명하기로 하고 지금은 단순하게 의미만 소개하고 넘어가겠습니다.

 

ㆍActivity Name 

    - 안드로이드는 Java로 개발합니다. 당연히 java원시 파일을 만들어야 겠죠. 그 만들어질 java원시파일의 이름입니다.  

    - 여기서는 특히 화면에 보여지는 역할을 담당하고 있는 Activity Class를 상속한 java파일입니다.

    - Default로 'MainActivity'로 되어있으며 변경가능합니다. java에서 클래스 이름이라고 생각하시면 됩니다.

    - 주의할 점은 'MainActivity'라는 이름이 c나 java의 프로그램 시작점인 main() 함수를 의미하는 것은 아닙니다. *중요*

    - 'MainActivity.java' 라는 이름의 소스파일을 만들어 냅니다.

 

ㆍLayout Name 

    - 안드로이드에서는 화면에 보여질 내용물을 만들때 java언어로 하지 않고 xml 언어로 하기를 권장합니다.

    - xml언어로 하면 디버깅이 용이하고 내용물의 크기나 위치 같은 설정 변경이 용이 합니다. 다음 강좌에서 설명할 예정입니다.

    - 위에서 설정한 'MainActivity.java'와 연결(정확한  의미는 차후에)되어 있는 xml파일의 이름입니다.

    - 이름 변경은 가능하지만 관리가 용이하도록 Activity Name을 참고하여 이름을 선정하는 것이 좋습니다.

    - 기본적으로는 'activity_'로 시작하여 java file의 이름의 대문자를 기준으로 '_'구분자를 사용합니다.

    - 'activity_main.xml' 라는 이름의 리소스파일을 만들어 냅니다.

 

ㆍNavigation Type  

    - 버전 업에 따라 등장한 것으로 지금 설명은 의미가 없으므로 강좌를 진행하면서 설명하기로 하고 지금은 None상태로 두겠습니다.

 

 Default상태에서 변경할 내용이 없으므로 Finish 버튼을 눌러 프로젝트를 생성과정을 마치겠습니다.

 

Finish버튼을 누르고 잠시 기다리면 아래와 같이 프로젝트가 하나가 만들어 집니다. 

 

 

 

 일단 보시는 바와 같이 프로젝트 안에 너무 많은 폴더와 파일들이 보여서 답답해 집니다.

미리 겁먹지 마시기 바랍니다. 강좌를 잘 따라오고 나면 위 파일 구조가 매우 훌륭하게 구조화 되어 있다는 것을 알게 되면서 편하게 프로그래밍 하시게 될 겁니다. 

 

 자. 여기까지 따라 오셨다면 일단 시작은 한 겁니다. 이제 천천히 한걸음씩 어플 개발자가 되어 보겠습니다.

 

프로젝트 생성은 완료하였으니 이제 하나씩 그 구조를 파악해 보겠습니다. 다음 강좌에 뵙겠습니다.

반응형

+ Recent posts