안드로이드 vs 안드로이드스튜디오 ?
충분히 다르다는 것은 알지만 어떻게 다른지에 대해 좀 더 생각해보기로 했다.
먼저, 안드로이드는 모바일 운영체제(OS;Operating System)다.
비유하자면 애플리케이션이 '영화'라고 했을때 '영화의 제작스탭진'이다.
시청자는 잘 모르지만 수많은 제작스태프의 참여로 한 영화가 만들어진다. 코드들이 제작스태프를 의미하고 그들의 모든 실행들과 유기적인 연계들을 모두 합하여 의미하는 것이 '안드로이드'다. 중요한 스태프 중 '패키지매니저'와 '액티비티매니저'가 있는데, 각각 영화의 구성요소를 찾거나 활성화시키는 역할을 하며, '인텐트'라는 요소는 이런 스탭진들과 구성요소 사이에 오고가는 쪽지를 말한다.
안드로이드를 모바일 오픈소스 플랫폼(OpenSource Flat-form)라고도 말하는데, 이는 안드로이드의 특성을 잘 보여준다.
세상에 영화는 다양하고 많으며 영화의 제작스탭진들은 중복이 될 수도 있고 개별적으로 존재할 수도 있다. 하지만 이런 스탭진들이 서로서로의 영화를 위해 기술도 공유하고 대신 활동할 수도 있는 개념을 말한다. 한마디로 스탭진은 다양한 영화 속 일정부분 공유할 수 있다.
안드로이드스튜디오는 그럼 무엇일까? 여기서 통합개발환경(IDE)라는 것이 나온다. 작업하기 위한 다양한 기능을 편하게 작업할 수 있도록 도와주는 프로그램이다. 비유하자면 개발자가 '감독', 애플리케이션이 '영화'라고 했을때 안드로이드스튜디오는 감독이 스탭진에게 효율적으로 감독전달할 수 있는 툴이라고 볼 수 있다. 수많은 스탭진들에게 다양한 감독전달을 하기 위해서는 구두로 일일히 한명한명 설명해주는 것보다 '채팅'같은 툴로 전체적으로 전달할 수 있는 느낌과 유사하다.
개발자 = 영화감독
애플리케이션 = 영화
안드로이드 = 스탭진
안드로이드스튜디오 = 감독의 스탭진 관리 및 실행도구
안드로이드 4대 구성요소
안드로이드라는 스탭진에서 4대 구성요소, 즉, 4가지 대표 하위스탭진이 존재한다.
액티비티는 씬 자체를 관장하는 하위 스탭진이고, 서비스는 씬 외 조명, 음향 등을 관장하는 하위 스탭진, 콘텐츠프로바이더는 배우(데이터)들을 연출하는 하위스탭진, 브로드캐스트리시버는 상영관, 세트장과 같은 외부요소를 감시하는 하위스탭진이다.
정확한 비유는 아닐 수도 있지만 어느정도 핵심 특성들을 충분히 느낄 수 있는 비유라고 생각한다.
개발자 = 영화감독
애플리케이션 = 영화
데이터 = 배우
안드로이드 = 스탭진
안드로이드스튜디오 = 감독의 스탭진 관리 및 실행도구
액티비티 = 씬 스탭진
서비스 = 조명,음향 스탭진
콘텐츠프로바이더 = 연출 스탭진
브로드캐스트리시버 = 외부요소 감시 스탭진
안드로이드스튜디오 폴더 : manifest, java, res
안드로이드스튜디오에서는 다음과 같은 폴더 카테고리 환경을 제공한다. 그 중 가장 많이 접하게 되는 세가지 영역에 대해 생각해보았다. manifest는 감독이 스탭진에게 전달하는 일종의 가이드라인이다. 위에서 말한 4대 스탭진들에게 여러 속성들을 정해놓고 시작할 수 있다. 한 개의 XML파일로 존재하는데, 감독의 가이드라인 문서라고 봐도 좋을 것 같다. 스탭진들은 그 부분을 숙지해서 영화를 제작한다.
java는 실제로 다양한 제작진들의 활동들이 담겨져있다. 이 속에는 4대 스탭진들(구성요소)도 담겨있다. 이 때, 모든 스탭진들은 'java'라는 프로그래밍 언어를 사용한다. 우리나라 사람들이 한국말로 이야기를 나누는 개념과 유사하다.
res는 영화 속 필요한 각종 보여주는 것들을 말하는데, 소품부터 세트장, 의상, 헤어, 메이크업 등이 모두 해당된다. 대기하고 있다가 스탭진이 java폴더 안 활동하면서 수시로 가져다 쓸 수 있다.
개발자 = 영화감독
애플리케이션 = 영화
데이터 = 배우
JAVA = 영화 내 소통 언어
안드로이드 = 스탭진
안드로이드스튜디오 = 감독의 스탭진 관리 및 실행도구
액티비티 = 씬 스탭진
서비스 = 조명,음향 스탭진
콘텐츠프로바이더 = 연출 스탭진
브로드캐스트리시버 = 외부요소 감시 스탭진
매니페스트폴더 = 감독의 가이드라인 문서 저장소
JAVA폴더= 스탭진의 활동
RES폴더= 스탭진의 디자인 아이템
결론
영화란 | 애플리케이션이란 |
영화감독이 | 개발자가 |
감독 가이드라인과 각종 소품을 통해 | 매니페스트와 RES를 통하여 |
배우들과 스탭진들 힘을 합쳐 | 데이터와 안드로이드의 힘을 합쳐 |
새로운 창작물을 만드는 것이다. |