지하철에 탔을 때 앱을 사용하지 않으시나요? 초행길을 헤매고 있을 때도 앱을 사용하지 않으시나요?
일상생활에서 우리는 앱을 정말 많이 이용합니다. 거의 일상이 되었지요. 그만큼 앱이 일상생활에 편리함을 주고 있는데요. 근데 앱이 어떻게 만들어지는지 아시나요? “컴퓨터로 만들어지겠지~”라는 대답은 하실 수 있겠지만 그 세부과정이 어떻게 되는지는 여러분께서도 저처럼 궁금해 하실 것이라고 생각합니다! 그래서 앱이 어떤 과정을 거쳐서 제작되는지 이야기하고자 합니다! 앱을 잘 알고 있는 사람과 인터뷰하기 위해서 직접 인터넷을 통해 앱 개발자를 찾아보았는데요! 강원도에 살고 있는 오세용 고등학생 앱 개발자를 만나게 되었습니다!
오세용 고등학생 앱 개발자(18)
Q. 앱을 개발할 때, 앱에 대한 아이디어는 주로 어디에서 어떨 때 얻나요?
A. 당연한 이야기겠지만, 주로 실생활에서 불편한 부분과, ‘스마트폰을 통해 이러이러한 부분도 할 수 있으면 좋겠다’ 하는 생각이 앱에 대한 아이디어가 됩니다. 저는 고등학생이고 실력이 뛰어나지 않은 만큼 간단히 개발할 수 있으면서도 유용한 것이 무엇이 있을까 하는 생각으로 고민하게 됩니다. 말은 간단히라고 말씀드렸지만, 이제 보시게 될 간단한 어플리케이션의 개발 과정을 보시면 하나도 간단하지 않다는 걸 아실 겁니다.(웃음)
Q. 현재 개발하고 있는 앱에 대하여 간략하게 소개 부탁드립니다.
A. 현재는 저희 학교의 급식 메뉴 안내 어플리케이션을 만들고 있습니다. 많은 학생들이 “오늘 급식은 뭐지? 맛있는 게 나왔으면 좋겠다~” 라고 매일 궁금해해서, 이걸 스마트폰으로 확인할 수 있으면 좋겠다는 생각에서 개발하기 시작한 어플리케이션입니다. 현재는 안드로이드 마켓에서 확인할 수 있지만 개발과정인 만큼 일부 기능만 작동합니다.
Q. 현재 개발하고 있는 앱이 어떠한 과정을 거쳐서 제작되고 있는지 보여주실 수 있나요?
A. 대다수의 스마트폰용 어플리케이션은 컴퓨터에서 제작됩니다. 간단히 안드로이드 어플리케이션이 만들어지는 원리에 대해 소개해 보겠습니다. 컴퓨터 프로그램을 만들려면 컴퓨터가 알아듣는 언어로 프로그램을 작성해야 하는데, 안드로이드 스마트폰은 ‘자바’ 라고 하는 언어를 사용합니다. 즉 ‘자바’라는 언어를 이용하여 프로그램을 작성하면 컴퓨터의 ‘컴파일러’ 라고 하는 프로그램이 안드로이드 스마트폰이 사용하는 언어로 제가 작성한 프로그램을 번역하여 저장하면 하나의 안드로이드용 앱이 됩니다. 이 앱을 안드로이드 마켓에 배포하면 많은 사람들이 쉽게 검색하여 다운로드할 수 있게 되는 것이지요.
자세한 과정을 안내하자면
1. 어떤 어플리케이션을 만들 것인지 생각을 하고 정해야 합니다. 당연한 이야기겠지만 먼저 뭘 만들지 구상하고 정해야겠죠.
2. 무슨 일을 하는 어플리케이션을 만들 것인지 정한 뒤엔, 스마트폰용 어플리케이션인 만큼 작은 화면 크기에 알맞은 구성으로 디자인해야 합니다. 저는 고등학생이고 혼자 개발하는 만큼 디자인부터 개발까지 혼자 다 해야 하는데요, 여기서 말하는 디자인이란 거창하게 들리지만 어플리케이션을 구동했을 때 화면의 하단 부분에 무엇이 위치하게 될지, 화면의 버튼은 어느 정도 크기로 해야 사람들이 누를 때 편리할지 생각하는 것도 모두 디자인 과정에 속하게 됩니다.
여기서 잠깐, 스마트폰용 프로그램을 제작할 땐, 우선 개발자가 명령하는 대로 알아듣고, 그 명령어를 스마트폰이 알아들을 수 있게 변환시켜주는 ‘컴파일러’ 라는 프로그램이 필요하다고 위에서 이야기했는데, 여기 이 프로그램이 있습니다.
처음 보시는 분은 ‘이게 뭐지...’ 싶으실 수 있습니다.
왼쪽 “포함된 파일들” 영역은 말 그대로 포함된 파일들을 띄워줍니다. 프로그램 한 개를 만들 때 사용되는 파일은 여러 개입니다. 디자인 배치에 대해 작성한 파일 하나, A이라는 버튼을 눌렀을 때 어떻게 반응해놓을지에 대해 작성한 파일 등 파일 여러 개를 편집할 필요가 있기 때문에 이러한 파일탐색기가 있고, 가운데 소스 영역은 파일 탐색기에서 선택한 해당 파일에 대해 편집하는 창입니다. 다시 아까 디자인 이야기로 돌아가자면, 디자인 및 배치는 보통 사람들이 생각하는 ‘디자인’과는 다르게 모두 문자(텍스트) 기반으로 이루어집니다. 마우스로 휙휙 그리거나 움직여서 그림을 배치하는 게 아니고, 직접 코드를 입력해 주어야 합니다. 예를 들어 가운데 부분에 버튼을 만들고 싶다면 가운데에 마우스를 가지고 버튼을 마음대로 배치할 수 있는 게 아니고, “위에서부터 300픽셀, 왼쪽으로부터 200픽셀 위치에 80*20 사이즈의 버튼을 배치해라.” 라는 명령어를 작성해 줌으로서 레이아웃 배치가 이루어집니다. 레이아웃 배치의 예를 한번 들어 보겠습니다.
이해가 가시나요? 왼쪽에 영어로 적힌 부분이 프로그래머가 적은 부분이고, 오른쪽에 제가 검정색으로 작성해놓은 것이 왼쪽 영어 언어에 대한 한국어 해석입니다. 저런 식으로 컴퓨터가 알아들을 수 있는 언어로 글자와, 버튼을 배치한 것입니다.
3. 아까 만든 디자인 및 배치했던 버튼들의 하는 일을 정해줍니다. 보통 작은 의미에서의 프로그래밍은 이 작업을 의미하는데요, 예를 들어 화면상에 ‘A’ 라는 버튼이 있다면, 이 버튼이 눌렸을 때 무슨 작업을 할 것인지, 작업을 하고 화면에 무엇을 띄울 것인지 정하여 아까 말씀드렸던 '자바'라는 프로그래밍 언어로 직접 작성합니다. 위에서 예를 들어 작성했던 프로그램을 보겠습니다.
여기에서 보면 설명의 세 번째 줄 ‘텍스트 출력’ 부분에 ‘hello라고 저장해 놓은 문자열을 출력하라’ 라는 말이 보이실 겁니다. 이 디자인 배치 파일 그대로 프로그램을 제작하려 하면 오류가 나고 제작이 되질 않습니다. 왜냐구요? hello 라는 이름으로 저장해 놓은 문자열이 무엇인지 컴퓨터가 모르기 때문입니다. hello 라고 출력하라는 게 아니라, hello 라는 껍데기 안에 저장해 둔 문자열을 출력하라는 말인데, 그 껍데기 안에 무엇이 들어있는지 컴퓨터가 알 수 없다는 이야기입니다. 이럴 때 필요한 문자열 저장 등을 이번 단계에서 진행하게 됩니다.
아까 작성했던 디자인 배치 파일과 맞추어 볼까요?
hello 안에 저장해 놓은 문자열을 출력하라고 한 부분에서, 위에서 저장한 “방송통신위원회” 라는 문자열을 출력할 것이라고 짐작할 수 있겠죠?
4. 작성이 완료되면 컴퓨터 화면 속에서 실제 안드로이드 폰처럼 작동하는 “에뮬레이터” 에 만든 프로그램을 넣어보고, 에뮬레이터에서 정상적으로 작동하는 것을 확인하면 스마트폰에도 직접 넣어서 테스트를 해 보게 됩니다. 위에서 지금까지 만들었던 프로그램을 테스트 해 보겠습니다. 아래는 컴퓨터에서 작동하는 에뮬레이터에서 방금 만든 안드로이드 어플을 구동해 본 모습입니다.
프로그램을 구성했던 대로 문자열이 맨 윗 줄에 출력되고, 아래에 버튼이 한 개 출력되는 걸 볼 수 있습니다. 실제로 잘 작동하는 것이 확인되었다면 테스트를 마칩니다. 이후 안드로이드 마켓에 올리고, 안드로이드 마켓에서 많은 사람들이 받아가게 됩니다.
위 경우처럼 매우 간단한 어플리케이션을 만드는 데도 무척이나 많은 노력이 필요합니다.
Q. 앱을 개발하여 안드로이드 마켓에 나오게 되면 많은 사람들이 이용하게 됩니다. 그리고 이용하면서 발생하는 오류나 불편한 점에 대해서 댓글로 남겨 피드백을 하는데요. 개발자는 이 피드백을 보고 어떠한 조치를 취하나요?
A. 안드로이드 개발자로 개발자 전용 사이트에 접속을 하게 되면 자신이 올렸던 어플리케이션에 목록이 뜨게 됩니다.
여기서 별 모양과 ‘댓글’을 클릭하면 사용자들의 평가와 댓글을 볼 수 있게 되는데요.
이곳에서 보면 어플리케이션의 평점과, 사람들의 댓글을 보고 사람들이 더 원하는 기능이 무엇인지, 개발 과정에서 테스트하면서 미처 잡아내지 못했던 문제점은 무엇이 있는지 판단하고 수정할 계획을 하게 됩니다. 댓글 목록에 보면 댓글 단 사람이 사용하는 휴대폰 기종이 나와있기 때문에 캡쳐화면처럼 ‘음성인식불가’ 같은 문제가 생겼다면 문제 생긴 기종이 어느 기종인지, 다른 기종에서는 문제가 생기지 않는지 확인하게 되죠. 해당 기종의 무슨 특징 때문에 문제가 생겼는지 파악하고 해결하려 하고요.
Q. 업데이트된 앱을 보면 ‘버그 수정(?)’이라고 쓰여 있는데요. 버그를 어떻게 없애는 건가요?
A. 버그는 개발자가 의도하지 않았는데 우연히 혹은 실수로 프로그래밍 언어에 의해 작동하거나, 아니면 개발자가 의도한대로 작동하지 않는 것을 버그라고 합니다. 예를 들어 특정 위치를 터치하면 어플리케이션이 자체적으로 연산하는 과정에 오류를 일으켜 강제로 종료된다던지, 의도한 것과는 다르게 작동하는 부분들을 버그라고 하는데 이러한 부분 때문에 사용에 불편함이 발생할 경우 당연히 수정을 하게 됩니다. 이러한 것을 버그 수정이라고 하는 것입니다.
여러분이 사용하고 있는 편리한 앱, 꽤 복잡한 과정을 통해 만들어지지 않나요? 모든 앱들은 복잡한 과정을 거쳐 개발자들의 정성이 들어가 만들어진답니다! 편리한 만큼 노력이 투자된 것이지요! 오늘도 앱 개발자들은 여러분의 생활을 편리하게 하고자 아이디어를 생각해내고, 또 앱을 만들어내고 있답니다! 여러분의 일상생활을 편리하게 해주는 앱, 앱 개발자에게 한번쯤은 고마움을 느껴 보는 게 어떨까요?
두루누리 기자 - 조현영
kkkiii00@naver.com
'시사정보 큐레이션 > ICT·녹색·BT·NT外' 카테고리의 다른 글
[광파리의 IT 이야기] 화웨이 "터치프리+무한백업" 개발중 (0) | 2012.05.01 |
---|---|
블랙리스트 제도 시행(`11.05.01)전후 휴대전화 유통방식 변화 (0) | 2012.05.01 |
[스크랩] (일본)인들 “페이스북보다 트위터가 더 좋아!” (0) | 2012.05.01 |
일본 '아세안+6개국 FTA' 협상 참여 (0) | 2012.04.29 |
방송통신위원회, MVNO도 번호이동 의무 대상 사업자에 포함 (0) | 2012.04.29 |