14 August 2014

장고로 첫 삽 뜨기 - 우리집 꼬마를 위한 유아용 영어동요 웹앱 개발후기

django 장고 시작하기

장고코딩을 처음 해 본게 스마트스터디의 오픈세션에서 였는데 내 게으름으로 인해 그 후 일년이 지나서야 본격적으로 장고를 시작하게 되었다. 그렇다고 뭐 아주 열심히 열정적으로 장고를 사용한 건 아니지만 말이다. 과거, 옥시토신 호르몬의 분비로 인해 서버 아이디와 비밀번호는 다 잊어버렸지만 VI를 6개월 만에 다시 사용했는데도 마치 어제 사용한 듯 명령어들이 손가락에 붙어 있었던 기억이 있다. 기억력을 감퇴시킨다는 옥시토신 호르몬은 다시 내게 찾아왔고 녹슨 손가락을 가지고 맥북을 다시 열었음에도 마치 어제 코딩 한 듯한 기분이 들었다. 늦은 저녁 서초동 지하에서 타이핑하던 손가락 근육의 움직임을 기억해 가며 한 줄씩 다시 따라해 봤다. 이렇게 하루에 한 두시간씩 장고로 튜토리얼을 따라 해보다가 내것을 만들어 보고자 하는 마음이 조금씩 번져나가기 시작했다.

나만의 서비스 만들기

하루가 어떻게 지나가는지도 모르는 시간을 보내며 배재홍님이 쓴 <스타트업 바이블>을 읽는 데 ‘구멍가게를 하더라도 네 자신을 위해 일할 줄 아는 사람이 되라’라는 문구가 다가왔다. 그렇게 첫 삽을 들게 되었다. 이렇게 작은 것이라도 나만의 서비스를 처음부터 끝까지 만들어 서비스까지 해보고 싶다는 생각이 들었고 기획, 디자인, 개발도 내 생각을 녹여서 오롯이 내것을 만들고 싶었다.

그렇게 다섯 살 아들을 위한 유아용 앱을 하나 만들겠다는 결심으로 터미널을 열고 까만 화면을 채워 나가기 시작했다. 지금도 막상 내가 만든 걸 하루이틀을 꼬박 줄테니 만들어 보라면 만들 수도 있을 것도 같지만 게으른 시간은 빠르게 흘러갔다. 모니터 안의 결과물은 지지부진하고 만족스럽지 못했고 시간은 늘 부족했다.

선택과 집중 그리고 피처크립

내가 잘 못하는 건 필요한 최소한의 기능만을 남겨두고 나머지 불필요한 것들을 버리는 것이다. 현실에서나 작은 화면 안에서나 이런 내 성격은 부끄럽게 도드라졌고 항상 고치고 싶은 부분으로 남아있다. 조금씩 이 앱을 개발하면서 점점 추가하고 싶은 기능과 컨텐츠들이 늘어나며 내가 만들고자 했던 것에서 점점 더 멀어져만 갔다. 기능 하나를 뺄까 생각했다가도 계속 이런저런 기능들이 다 있었으면 좋겠다 생각하고 피처크립을 만들어 가고 있었다.

이건 기능 뿐만이 아니라 개발도구도 그랬다. 새로 장고를 사용하게 되면서 장고에서 유명한 패키지들은 한번씩 다 써보고 싶고 django-REST-framework도 써보고 싶고 south, haystack, celery도 써보고 싶었다. 기존에 사용하던 방법으로 코딩하면 금방할 것도 같았지만 너무 엘레강스 하지 못해 이래저래 시간을 보냈다. 그 와중에 장고는 1.6이 넘게 판올림을 했다. 물론 이런 과정에서 여러 패키지들을 비교해 써보고 학습하는 건 좋았지만 속도가 붙지 않으니 조금 처지는 느낌이 들었다. 그래서 서비스 해가면서 사용하고 싶은 패키지나 툴을 하나씩 공부하며 적용해 나가는 것도 나쁘진 않았을 것 같다.

하지만 장고와 관련 된 여러 패키지들은 너무나도 매력적이었다. 기존의 방법대로 개발 했다면 과연 더 금방 끝낼 수 있었을까? 화성에서 온 개발자 금성에서 온 기획자 를 보면 김밥천국에 가서 밥을 시키면 고추장부터 만드는 걸 프레임워크 사용에 빗대어 나오는 데 그 슬라이드를 보고 혼자 얼마나 웃었는지 장고를 사용하며 깨알같은 여러 패키지의 도움은 많은 시간을 절약하게 해주었다. 내가 그 보다 잘 만들 자신이 없고 또 내가 만들고자 하는 것들에 충실하기 위해서 이런 여러 패키지들의 사용은 너무 꿀맛이었다.

계획했던 것보다 일정이 많이 늘어지면서 같이 느러지는 나를 보고 있자니 쏘면서 달리기가 필요한 시기가 찾아왔다. 막상 이 글과 그간의 결과물을 올려놓고 나면 아무도 찾아와 보지 않더라도 너무나 부끄러워 두 손으로 얼굴을 가리게 될지언정 내게 변화가 필요한 시점임에는 틀림이 없었다.

python과 django의 꿀맛같은 패키지와 기능들

django-taggit

내가 만드는 서비스는 유튜브API를 사용하여 유튜브에 있는 영어동요를 큐레이팅해서 보여주는 서비스다. 우리 아이가 좋아하고 내가 좋아하는 영어동요들을 모으다 보니 6천개가 넘게 모였는데 이것을 어떻게 모아서 보여줄지가 고민이었다. 수집 된 비디오에 각 비디오의 제목과 설명에 맞는 태그를 달아서 태그별로 보여주고 싶었는데 이 역시 내가 직접 만드는 것 보단 누군가 잘 만들어 놓은 것을 가져다 쓰기로 하고 django-taggit을 클론 받아서 사용하고 있다.

django-category

이것도 깃헙에서 클론받아 설치해 사용하고 메뉴의 카테고리를 구성하는데 사용했다.

django-admin

장고의 꽃이라 불리는 기능인 만큼 내가 장고를 사용할 결정을 내리는 데 가장 큰 매력으로 다가왔던 것이 바로 어드민 기능이었다. 기존 웹서비스를 개발하다 보면 일정에 맞추느라고 늘 어드민 기능은 만족스럽지 못했는데 기본적인 어드민 기능을 모두 제공한다. 누군가 django자체가 CMS와 유사하다고도 얘기했던 거 같은데 django-admin이 그 말과 가장 가깝다는 생각이 든다. 로그인 그와 관련된 세션, 계정관리 기능, 각 모델에 대한 CRUD기능, history관리 등등 기본적으로 필요한 기능들은 대부분 구현되어 있어서 내 입맛대로 커스터마이징만 좀 하면 그럴 듯한 관리자 페이지를 갖게 된다.

PEP8

혼자 보는 코드이지만 Python 코딩컨벤션을 지켜서 코딩하고 싶었고 많은 선삽자들과 Tow Scoop of Django 에서도 이를 추천한다. 하지만 한번 보고 뒤 돌아 서면 다 잊어버리기 일쑤라 Vim plugin 잔소리꾼을 고용하여 코딩하며 자연스럽게 PEP8에 익숙해져 갔다.

Vim plugin - Python-mode 잔소리꾼

  • Python-mode, Python in VIM (klen/python-mode)
  • 처음 설치할 때 pathogen 설정이 필요하며 PEP8, 코드폴딩 등을 지원 한다. 사용하지 않는 변수, import된 모듈을 체크해 주며 코딩컨벤션을 지킬 수 있어서 좋고 자동으로 고쳐주니 좋긴 한데 좀 무거운면이 있고, 설치 후 인덴트가 꼬여서 처음 시작할 때부터 사용하는 게 좋다. 중간에 적용하면 나 처럼 디버그하느라 시간을 다 보낼 수 있다.
  • PEP8을 지원하는 다른 VIM plugin 이나 .vimrc 설정파일도 많지만 이걸 적용하면 새로 작성하는 코드에 스페이스 4개와 같은 인덴트 기능을 비롯한 PEP8을 자동으로 적용해 준다. 현재 8~9개월 정도 사용했는데(파이썬 코딩을 많이 안 했다는 게 함정이긴 하지만) 컨벤션을 지킬 수 있게 잔소리가 계속 나오기 때문에 자연스럽게 PEP8을 익힐 수 있어서 좋다. 개발 시작할 때부터 사용하면 좋지만 난 중간에 설치해서 각종 오류에 대처하는데 시간을 많이 소비했다. 하지만 덕분에 PEP8을 손가락으로 익힐 수 있어서 좋았다. vi에서 편집 후 :w를 누르면 화면 하단에 잔소리가 라인별로 뜬다. 잔소리 한 줄씩 줄여가는 재미도 쏠쏠하다.

여러 기능이 있지만 지금까지 파악한 것들을 다시 정리해봤다.

  • 코드 폴딩기능 제공
  • PEP8(인덴트 스페이스4, 너무 긴 라인, 콤마와 오퍼레이터 사이의 여백처리들, 라인여백, 세미콜론의 불필요한 사용 등등)
  • 사용하지 않는 변수
  • 불필요하게 import 된 모듈
  • 오류 시 해당 라인에 ‘EE’ 오류 표시, 불필요한 라인은 ‘WW’표시
  • 화면 하단에 오류 리스팅

virtualenv, virtualenvwrapper

파이썬으로 개발하는 사람들 중에 이 두가지 툴을 사용하지 않는 사람들은 거의 없을 듯 하다. 각 개발환경에 맞는 가상환경을 만들어 주고 배포할 때는 fabric을 사용하게 되면 설치 된 패키지들을 알아서 관리해 준다. 정말 이 두가지 툴이 없었더라면 배포하면서 완전 멘붕이 찾아왔을 지도 모른다. 또 다른 사람이 개발해 놓은 소스를 깃헙에서 받아서 볼 때도 편리하게 가상환경 설정이 가능하다. requirements.txt 만 있다면,

South

python manage.py schemamigration yourapp --auto 
python manage.py migrate yourapp

이 단 두 줄의 마법으로 스키마가 생성, 변경, 삭제 된다. 스키마를 수정할 일이 있으면 모델만 수정해 주면 된다. 설치도 간단하고 사용법도 이렇게 간단할 수가! 아름답다고 밖에 표현할 말이 없다.

layout(폴더구조)

아직까지도 고민되고 아직까지도 어떻게 써야할지에 대한 고민이 된다. Tow Scoop of Django 를 보면 이에 대한 내용이 있고 github에도 이에 대한 예제 소스가 여럿 있다. 일단은 django 기본 예제를 바탕으로 사용하고 있다. 프로젝트의 특성에 맞게 사용하는 걸 추천받았지만 아직 초보라 그런지 어떻게 사용하는 게 편할지는 좀 더 고민해 봐야 될거 같다.

template tags

장고 템플릿 기능을 사용하면 시간변환이나 글자수체크, 통화변환을 비롯해 템플릿 안에서 파이썬 코드나 함수를 불러 사용해야 될 일이 있는데 이럴 때 사용하면 유용하다. Tow Scoop of Django 책에서도 이와 관련 된 깃헙 추천 링크를 제공한다. 또 context_processor를 사용해 파이썬 코드가 필요한 부분이나 메뉴 같은 부분에 응용할 수 있다.

fabric

fabric은 장고를 다른 서버에 배포할 때 유용한 패키지다.

  • [Deploying a Django site with Fabric Richmond Virginia Web Developer · Francis Yaconiello](http://www.yaconiello.com/blog/deploying-django-site-fabric/)
  • Starting a Django Project the Right Way
$ pip install fabric
$ pip freeze > requirements.txt

와우 단 두 줄로 requirements.txt 가 자동으로 생성 된다니 믿을 수 없는 일! aws에 배포하면서 환경이 맞지 않아 잠시 고민하고 fabric을 검색해서 써보니 너무 간단하고 훌륭하다. 배포하는 중간에 그간 설치해 두었던 virtualenv환경을 메모해 둘걸이라고 생각했던 내 뇌구조는 너무나도 구식이었다. 이런 건 그냥 설치 후 한 줄이면 되는거다. 머리가 나쁘면 손발이 고생한다. 그리고 배포 스크립트를 작성해 놓고 혹시라도 서버를 옮기게 된다든지 증설하게 될 때 사용할 수도 있다. 물론 AWS AMI를 사용한다면 더 굳이 이렇게 할 필요도 없겠지만 말이다. 그리고 python에는 너무나도 훌륭한 tool이 많다.

DB

처음에는 sqlite를 사용하다가 결국 mysql로 갈아타게 되었고, Tool은 맥용 Sequel Pro와 터미널을 조합하여 사용하고 있다. 뭔가 새로운 다른 DB를 사용해 보고 싶지만 일단 첫 삽에서는 그동안 사용해 그나마 익숙한 mysql을 사용하기로 했다. django ORM을 사용해 DB를 추상화 시킬 수 있고 사용법도 간단하지만(? 아직 많이 사용하지 못해 빙산의 일각만 보았기 때문에) 추상화로 인해 로드가 심한 쿼리를 작성하는 것에 대한 문제가 고민이었다. 최대한 조인이 없는 쿼리를 만들려고 했고 심플하게 구성하려 했다.

서버

장고로 서비스를 만드는 일은 처음이기 때문에 서버의 인스턴스를 만들기 쉽고, 지웠다 다시 만들었다 하는 무한반복(이라 쓰고 더 낫게 실패하기라 읽는다.)의 삽질과정이 필요하기 때문에 AWS의 무료인스턴스로 서버에 릴리즈 하는 것을 테스트 해보았다. AWS의 마이크로인스턴스는 삽질이 많이 필요할 때 너무나도 유용하다. 국내 호스팅 서비스를 이용한다면 초기 세팅비용의 부담감으로 이렇게 아예 인스턴스를 지웠다 깔았다를 밥먹듯이 하는 건 상상도 못할텐데, 그렇다고 개인서버를 만들어서 OS를 지웠다 깔았다의 무한반복도 시간이 너무 오래 걸려 쉽지 않은데 이런 귀찮은 과정을 무료로 게다가 몇 초에서 몇 분만에 이용할 수 있다니! 이런 기능은 정말 꿀맛같다. 하지만 사용료에 대한 문제 때문에 서버는 끝까지 고민이 된다(사용자가 많지 않다면 무료 인스턴스만으로도 서비스가 가능할 것도 같지만 많은 부모와 아이들이 봐주길 바라는 마음으로, 하지만 이런 걱정도 일단 뚜껑은 열고 하는게 낫겠지,). 중간에 django-medusa를 이용해 static 한 사이트로 변환 후에 이를 깃허브 같은 무료 서버에 호스팅 하는 것도 매생이님을 통해 추천받았는데 내 끈기없는 인내심으로 인해 결국 aws로 서비스 하게 되었다. 하지만 앞으로 만드는 서비스에는 사용해 볼까 생각중이다. 어짜피 스케쥴링도 전원을 끄지 않는 내 노트북에서 오토메이터 등으로 돌아가게 설정해 놓으면 되니까. 통계는 구글어날리틱스와 같은 툴을 사용하면 되니 충분히 STATIC하게 서비스가 가능한 형태의 앱이긴 하다.

서버 후보였던 디지털 오션도 있지만 현재 AWS 무료 서비스만으로도 충분하다. (좋아해야 할지 울어야 할지)

그래서 현재는 nginx+uwsgi의 조합으로 AWS ec2에 무료 인스턴스로 서비스 하고 있다.

Front-end

모바일과 PC용화면을 따로 구분하며 제작하지 말고 해상도에 따라 다르게 보여지도록 작업한다는 목표로 작업했다.

front-end쪽은 내가 스스로 다 하기엔 해야 될 게 너무 많기 때문에 다른 일들과 마찬가지로 이미 잘 만들어지고 검증 된 것들을 가져다 사용하는 것이 옳았고 그렇게 선택하게 된 게 purecssbootstrap이다. 또 Front-end는 내게 가장 취약한 부분이기도 하다.

내가 원하는 페이스북 스타일의 햄버거 아이콘을 가진 슬라이드 메뉴에 RWD(responsive web design)를 지원하는 그리드가 딱이라 생각되었다. 여기에 bootstrap의 몇 가지 컴포넌트들을 가져왔다. 그래서 purecss에서는 grid, menu를 가져와 사용하고 bootstrap에서는 glyphyconbadge를 가져와 사용했다. 그리고 carousel은 bootstrap을 가져다 쓸까 하다가 slick을 사용했다. 그리고 필요한 몇 가지는 만들어 사용했고 미디어쿼리를 사용해서 해상도에 따라 보여지는 정보를 다르게 표현했다. 또 휴대폰의 가로세로 변환에도 적용 될 수 있는 UI를 만들고자 했다.

Grid

UI 테스트는 Chrome 브라우저Emulation 기능을 사용해서 했고 아이폰을 제외한 대부분의 모바일 화면이 제각각이라 각 해상도에서 제목이나 상세설명이 넘쳐흘러 보이지 않는지, 섬네일 등의 이미지가 제대로 보여지는 지 동영상 재생과 관련 된 부분을 중점적으로 보면서 미디어 쿼리를 수정했는데 시간도 가장 많이 걸리고 휴대폰 각각 해상도가 너무 천차만별 이라 모바일 화면에서 섬네일이 2개 보여지는 것이 좋을지 3개 보여지는 것이 좋을지와 같은 그리드 표현에 대한 고민이 많이 되었고 같은 미디어쿼리를 수십번 수정해도 마음에 들지 않아서 가장 힘든 부분이었다. 그나마 pure의 그리드 기능이 개발 도중에 업데이트가 되어서 화면 별로 그리드 숫자를 조정 할 수 있도록 변경되어 도움이 되었다. 개발 초기에는 pure의 그리드와 bootstrap의 그리드도 바꿔가며 사용하면서 어떤 그리드가 내가 만들고자 하는 목적에 부합할지에 대해 여러번 시뮬레이션(삽질)해보고 결국 purecss로 굳히게 되었다.

YouTube API

앱스토어에 보면 유튜브와 관련 된 혹은 유튜브를 큐레이팅 해서 보여주는 앱들이 엄청나게 많다. 개인들이 제작한 많은 유아용 앱들이 대부분 이런 형태를 띠고 있다. 그래서 나도 쉽게 진입할 수 있는 유튜브 API를 사용해 앱을 만들게 되었다. 유튜브는 사용자가 동영상을 올리면 그 영상이 실행 될 때 어떠한 식으로든 광고에 노출 되게 되며 그 광고에 대한 수익을 업로더와 유튜브가 공유하는 형태이다. 이러한 앱들이 유튜브의 동영상을 중계해줘 플레이가 많이 되면 업로더에게 수익이 발생되는 형태이다. 다만 업로더가 저작권이 없는 동영상을 올렸느냐 아니냐에 대한 판가름을 해야하는데 그건 유튜브에서 저작권에 문제가 된다고 판단 되는 영상에 대해서는 별도의 관리를 하고 있다. 나는 주로 영어동요에 관련 된 키워드로 동영상들을 수집하고 있는데 수집하다보면 과거에 수집 되었던 영상들이 저작권 문제로 삭제되어 있는 걸 종종 봤다. 또 유튜브 플레이어는 몇 가지 종류가 있는 데 광고가 플레이 되지 않는 버전으로 연결시켜주어서 동영상이 플레이 될 때는 광고가 보여지지 않도록 개발하였다.

YouTube Player

API문서에 의하면 플레이어 관련 API로 Android, IFrame, Javascript, Flash API를 제공한다. 안드로이드 웹뷰와 내장 브라우저로 서비스해야하는 나로서는 Javascript, Flash, 크롬리스 플레이어로는 사용자가 환경 내에서 별도의 설정을 해야만 했다. 줄곧 크롬에서만 개발해 오던 나는 (복병이야 매 단계마다 있긴 했지만) player에서 새로운 복병을 만났다. 일단 최근 버전이 아닌 안드로이드 웹뷰에서 유튜브 동영상이 재생 되지 않았다. 그냥 까만 화면만 나올 뿐 아무리 동영상을 클릭해도 재생되지 않았다. PC용 크롬에서 주로 개발해 오던 나는 유튜브 동영상 쯤이야 링크만 던져주면 알아서 플레이 되겠지라고 생각했었는데 오산이었다. 이건 웹뷰에서 일부 수정해서 고쳐지긴 했는데 낮은 안드로이드 버전에서는 플레이가 되지 않고 있다.(정말 산넘어 산이다.)

참고서적

Two Scoop of Django

django-packages 사이트를 개발한 ‘Daniel Greenfeld’와 그의 연인‘Audrey Roy’가 쓴 책이다. 보통 프로그래밍 언어 책에는 예제를 따라해 가며 그 언어에 익숙해 지는 방법이라든지와 같은 실제 코딩기법들이 주로 나열되어 있는 책들이 많지만 이 책은 코딩컨벤션, 프로젝트레이아웃, 템플릿태그의 사용, 유용한 3rd party 라이브러리들, 서버에 디플로이 하는 법 등에 대한 조언이 주로 담겨져 있다. 이 저자와 같은사람들을 보통 선삽자라 부르던데 선삽자로서 장고를 개발하며 겪을 수 있는 어려운 점을 옆에서 조언하듯이 써주었다. 그리고 이 책 덕분에 PEP8도 지키려 노력했다. 유일하게 이 책의 참고 소스를 깃허브에 올려 놓은 것이 이 프로젝트 레이아웃인데 이와 가깝게 쓰려고 노력은 하겠지만 설정파일을 어디에 두어야 할지에 대한 고민 등은 아직까지도 가장 어려운 일이다(아마도 프로젝트 특성에 따라 써야겠지만). 내가 구입한 책은 django 1.5 버전을 기준으로 쓰여졌지만 현재 1.6버전으로 업데이트 출판되어 있다.

쉽고 빠른 웹 개발 Django

인사이트 출판사에서 2012년에 출판 된 책이며 장고를 다룬 다른 책도 있긴 하지만 그건 장고를 주로 다룬 책이 아니라서 현재까지 장고만을 다룬 유일한 국내서로 알고 있다. 이미 절판 되었지만 인사이트의 전자책 판매사이트를 통해 구매할 수가 있다. 하지만 절판된 책이라 업데이트 되지 못 하고 장고 1.0버전으로 쓰여졌다는 것과 PDF버전으로만 볼 수 있다는 게 아쉽지만 Django에 대한 감을 잡기엔 좋다. 이 책의 말미에는 Google App Engine으로 서비스하는 팁도 나와 있지만 비교적 오래 된 내용이라 지금 실정과는 시간의 벽이 있지 않을까 싶다.

버전관리 - git, bitbucket

과거엔 버전관리 없이 코딩을 한적도 있었지만 이제는 무엇을 만들든지 버전관리 없이 코딩을 한다는 건 상상할 수도 없는 일이다. 따로 버전관리서버를 운용하긴 부담스럽지만 무료로 사용이 가능한 bitbucket을 이용해서 버전관리했고 tool은 소스트리를 사용했다. 원래 업무용으로는 주로 svn을 사용해 왔지만 이젠 git만을 사용하고 있고 소규모로 사용해서 그런지 부족함 없이 잘 사용하고 있다. 오히려 좋은 기능들이 많을텐데 모르고 지나가는 게 훨씬 많긴 하지만, 이젠 빼놓을 수 없는 너무나도 훌륭한 개발도구이다.

광고

애드몹, 카울리, 아담 등을 알아보다가 결국은 PC와 모바일을 함께 사용할 수 있는 애드센스로 정했다. 이번 서비스를 개발하며 개인용 계정이 아니라 개인스튜디오용 계정을 새로 팠는데 애드센스를 기존에 사용하던 개인 계정에 먼저 연결해 두었더니 다른 계정에서는 등록이 되지 않아 기존계정에서 초대하는 방법으로 사용하게 되었다. 구글어날리틱스와 연동도 시켜놨다. 모니터링은 메일링 등록을 해두고 잔소리를 계속 보내주도록 설정해 놓았다.

개밥먹기

아이에게 YouTube에 있는 동영상들을 찾아 보여주면서 처음엔 즐겨찾기를 등록해서 보여줬고 시간이 지날 수록 아이가 좋아하는 동요의 리스트는 늘어갔고 무료로 볼 수 있는 이런 좋은 컨텐츠들을 주변 아기 엄마들에게도 추천해 줬는데 이걸 모아놓고 더 많은 아기 엄마들과 공유한다면 좋겠다는 생각이 들었다. hooplakidz나 baby Einstein 같은 너무나도 유명한 동영상 업로더들도 많지만 나는 엄청나게 많은 동영상을 본 엄마라 다른 엄마들에게 알려지지 않은 좋은 동영상들을 공유하고 싶었다. 그리고 django를 취미 삼아 쓰면서 개밥먹기 하기 너무 좋은 음식이라는 생각이 들었다. 아직도 코드화 되지 못하고 머릿속에만 남아있는 생각들을 개밥먹기 하면서 조금씩 요리해 볼 계획이다. (참고로 난 요리를 잘 못하는 데 내가 한 요리는 정말 잘 먹는다. 사실 좋아하지 않는 음식이 없다고 해야 더 솔직하겠지만)

라임키즈

이렇게 첫 삽으로 만든 앱이 라임키즈다. 앞으로 다른 유아용 앱을 만들려고 계획 중이고 지금 출시해 놓은 라임키즈도 조금씩 매일 업데이트 하고 있다. 영어동요 주제별로 예를 들면 파닉스, 컬러, 도형, 수학, 계절 등 널서리라임과 마더구스의 내용은 무궁무진하다. 그리고 우리집 꼬마들과 자주 보는 영어책들(예를 들면 노부영 같은)과 같은 동영상들을 어떻게 모아서 보여줄지가 고민이다. 지금 수집해 놓은 동영상들이 6천곡이 넘다보니 이미 컨텐츠는 넘치는데 이걸 어떻게 보여줘야지 아이들이 좋아할지 계속 고민하고 있다.