목록개발 (41)
Dharma
이번에 회사에서 새로운 기능을 런칭했다. 내려오는 데이터 량이 좀 된다. 150K 정도 스테이징 서버(한국에 있다)에서 혹독한 테스트를 거쳐도 문제가 없고, 론칭후 테스트에서도 별 이상이 밝혀지지 않았다. WI-FI 환경하에서도 동작을 잘하고 문제는 내 폰에서 발생했다. 참고로 나는 SKT 폰을 사용중이다. SKT 의 LTE 환경하에서는 멈춘거처럼 동작하는 것이다. 150K 다.. 다시 말하면. 그정도 데이터를 내려 봤는데 멈춘다고? 개발자를 소집해서 물어봤더니 전혀 안 느리다고 한다. 내 폰을 실제로 보여주니 개발자들이 다들 당황하는 것이다. 결국 이런 저런 테스트를 통해서 내린 결론은 SKT - LTE 가 완전 개 구리다는 것이다. 국내는 별 문제가 없으나 특히 해외가 KT, LG, WI-FI 망에서..
예전에는 혼자서 개발하면서 성장할 수 있는 시기가 있었지만, 요즘은 팀단위로 개발을 진행하기 때문에 빠르게 성장할 수 있지만, 자신의 파트에 특화되는 경향이 있습니다. 물론 지금도 파트를 오가면서 개발을 할 수는 있지만 예전만큼 쉽지 않습니다. 저도 실제로 클라이언트 개발을 하다가 서버 사이드로 옮긴 경우 입니다. 예전 다니던 회사에서 공개 개발자 모집을 한 적이 있습니다. 들어온 원서의 비율을 체크 해보니 안드로이드, iOS, 백엔드 개발자의 비율이 8:1:1 이였습니다. 클라이언트와 서버 비율로 따져보면 9:1 입니다. 클라이언트 사이드에서 안드로이드 개발자가 iOS 보다 많은 이유를 몇 가지 짐작해 볼 수가 있습니다. 안드로이드 폰을 가진 사람이 월등하게 많습니다. 자신이 가진 폰에 맞는 앱을 개발..
큰 회사를 제외하고 일반적으로 작은 형태의 IT 회사는 다양한 형태가 존재하지만 무리하게 일반화를 굳이 하자면, CTO (Technology) 주도의 회사와 CPO (Product) 주도의 회사가 있습니다. 쉽게 말하자면 기술 주도의 회사와 기획 주도의 회사 입니다. 각각의 장점이 확실히 존재합니다. 기술 주도는 제품이 단순하고 개발 이터레이션이 짧게 돌아가고, 기획 주도는 창의적이고 다양한 시도를 하기에 기존하고 다른 제품이 나올 확률이 높습니다. 어떤 개발 스타일을 제가 좋아하는 것은 별도로 치고도, 잘 생각해 보면 회사의 개발 방향이 이런 형태중에 한가지에 가까울 수가 있습니다. 다만 개발자 출신으로서 생각해 보기에는 (초보) 개발자는 기술 주도의 회사가 더 편하겠지요? 아무래도 CTO 가 주도하는..
프로그래밍 언어는 python을 이용하고 웹 프레임워크는 Django 를 사용하고, 데이타베이스로는 MySQL 을 사용중인데 admin 사이트 구현중에 date_hierarchy = 'created_at' 이 구문 때문에 Database returned an invalid value in QuerySet.dates(). Are time zone definitions and pytz installed? 이런 에러가 발생한다. 해결을 위해서는 일단 pytz 를 설치해줘야 한다. $ pip install pytz 그리고 우분투에 설치된 mysql 에 한하여 (docker 로 설치한 mysql 도 괜찮다, 테스트 해보니 osx 도 된다) $ mysql_tzinfo_to_sql /usr/share/zoneinfo..
최근에 다시 clojurescript 를 이용해서 작업할 일이 생겼습니다. javascript 는 편리하긴 하지만 구현하는데 재미가 없다는 심각한 결점이 있기 때문입니다. 게다가 최근 lein-figwheel 이라는 편리한 툴이 나와서 정말 편하게 작업을 할 수가 있습니다. 다만 lein figwheel 을 하면 불편하게도 console 에서 작업을 해야 하기 때문에 emacs 의 편리한 기능을 못써서 안타깝습니다. 따라서 nRepl 을 이용해서 편리하게 작업하는 방법을 소개시켜드릴까 합니다. CIDER 와 clojure-mode 를 설치해야 한다. package-install 명령을 이용하면 쉽게 설치가 가능하다. leiningen plugins 를 설정해야 한다. ~.lein/profiles.clj ..
처음 스위프트 (Swift : 혹 수입푸드 라고 부르는 사람들도 있음 ㅋㅋ) 개념을 보았을 때, VM (Virtual Machine) 같은 개념으로 여겼습니다. '뭐 또 빠르게 개발은 될 지 모르겠으나 동작은 느린애가 되겠군' 라고 생각하며 안 보고 있다가. 최근에 보니 이게 컴파일러용 언어였더군요. 플레이그라운드(Playground) 개념은 잽싸게 컴파일 해서 그 결과를 보여줘서 interactive 하게 보일지 모르지만 실은 컴파일 언어였습니다. 개념이 재미 있는데다가 컴파일된 바이너리가 기존의 Object-C 언어로 만들어진 것보다 속도가 2.8 배가 빠르다는 것을 보고 관심이 가더군요. 그래서 언어 개요를 가볍게 살펴봤습니다. iOS 기기를 가지고 있으면 iBooks 에서 공짜로 프로그래밍 언어에..
안드로이드 어플리케이션 개발시 strings.xml 에 html tag 를 삽입할려고 하다 보니 ADT 와 안드로이드 스튜디오 와 호환성 문제가 발생하더군요. 1 현상 메모CDATA[ ]]> %1$s 위와 같이 html tag 를 strings.xml 에서 사용할때 공백문자를 사용하기 위해서 CDATA 태그를 조금이라도 적게 사용할려고 공백 문자에만 사용할려고 하다가 발생했습니다. 2 원인 ]]> 태그가 마지막에 오지 않으면 발생한다는 에러가 발생합니다. 혹은 리소스 머지(merge) 시에 에러가 발생한다던가 , 잘 쓰고 있던 컴퍼넌트 (component) 가 없다는 등 종잡을 수 없는 에러가 발생합니다. 3 해결 CDATA[메모 %1$s]]> 위와 같이 변경해 주면 해결됩니다. 공백은 단순히 CDATA..
안드로이드 어플리케이션 개발 시 YoutubeStandAlonePlayer 를 쓸 일이 있었서 사용했는데 예상치 못한 버그가 발생하더군요. 그 현상과 해결방법을 정리합니다. 1 현상 안드로이드 앱 개살시 메인 어플리케이션을 Portrait 전용으로 개발중이였습니다. Intent intent = YouTubeStandalonePlayer.createVideoIntent(context, DEVELOP_KEY, youtubeCode); context.startActivity(intent); 와 같은 식으로 유튜브 플레이어를 띄우니 띄운 액티비티(Activity) 와 그 스택에 쌓여있던 액티비티 들의 onResume 이 호출되는 현상이 있습니다. 그래서 플레이중에 멋대로 호출된 Activity 로 튕깁니다. 게..
Multiple dex files define Landroid/support/v4 관련된 어쩌구 저쩌구 에러가 발생했을 때의 대처법입니다. 100% 제 환경에서 발생하는 일이였습니다. 먼저 환경을 소개하자면 회사에서 개발하는 안드로이드 (Android) 프로젝트인데 전부 환경이 달라서 문제가 발생했습니다. PM 인 저는 Command Line 에서 프로젝트를 개발합니다. 사용하고 있는 툴(Tool)은 Emacs 에 Ant 를 이용해서 빌드합니다. 회사에서 작업하는 개발자는 Android Studio 를 이용해서 개발합니다. 회사 외부에서 개발하는 개발자는 ADT (Android Development Tool) 을 이용합니다. 저와 외부에서 개발하는 개발자간의 호환은 별 문제가 없습니다. Eclipse 와..
저는 안드로이드를 Emacs 로 개발하고 있는 중인데요. 외부 jar 가 추가 될 때 자동으로 classpath 에 추가 하고 자동으로 import 기능을 활성화 시키는 방안을 찾는 중인데, 없더군요.. 물론 Eclipse 를 사용하면서 Google AdMob SDK 같은 외부 jar를 사용하기는 쉽습니다. 외부 라이브러리로 추가해 주면 끝이기 때문입니다. 다만 CLI (Command Line Interface) 에서 Ant 를 이용해서 빌드를 할 때는 마구 마구 귀찮아집니다. 하지만 쉽게 하는 방법이 생겼더군요. $(ANDROID_PROJECT_ROOT) 밑에 /libs 라는 디렉토리를 만들고 그 안에다가 GoogleAdMobAdsSdk-6.0.1.jar android-support-v4.jar 두개의..