아름다운 모델 구조를 찾아서

어떤 소프트웨어든 OOP 기반이라면 모델 구조를 설계하는 것부터 시작합니다. 모델이라 함은 소프트웨어를 Object-Oriented로 만들기 위해 현실에 존재하는 개념을 묶은 객체를 의미합니다. 모델은 소프트웨어를 구성하는 작으면서도 근본적인 단위이기 때문에 처음 정의하는 것에 따라 구현방향과 성능에 영향을 미칩니다. 따라서 상황에 적절한 모델을 설계하고 활용하는 것이 중요합니다. 이번에 리멤버에서 메신저 기능을 추가하면서 지금까지와는 다른 속성의 모델들이 추가되었습니다. 자연히Read more

드라마에서 1년의 성장기

2015년 7월에 입사하여 드라마앤컴퍼니에 온지 이제 1년이 지났습니다. 어느 분야든 정체를 겪다가 한번에 올라가는 순간이 있습니다. 저는 120만명 이상이 사용하는 리멤버 서비스의 안드로이드 앱을 혼자 개발하면서 한번에 올라가는 성장을 경험하고 있습니다. 개발 능력도 많이 성장하였지만, 근본적인 것들을 많이 배웁니다. 그리고 배운 것들 중 의미있는 것들을 나누려고 합니다. 원칙있는 개발, 기술부채의 최소화 지금까지 많은 유저가 실제로Read more

안드로이드에 테스트 도입하기

좋은 소프트웨어를 만들기 위해서는 테스트 자동화가 중요합니다. 꼼꼼하고 정확한 자동화 테스트는 QA 비용을 줄이고, 제품의 질을 높입니다. 리멤버의 백엔드는 오래 전부터 TDD를 적용하였습니다. 하지만 클라이언트는 View단과 직접 엮여있기 때문에 겪는 테스트의 어려움과, 빠르게 처리해야 할 비즈니스 요구사항에 밀려, 테스트 자동화를 하지 못하고 있었습니다. 우리는 저번 페이즈 브레이크 때 클라이언트 개발자들끼리 모여 테스트에 대해 논의하였습니다. 그리고Read more

Realm 데이터베이스, 제대로 알고 안드로이드에서 사용하기

* 아래 글은 Realm-Java 0.87.5 버전을 기준으로 작성되었습니다. 현재는 0.88.0이 나왔으며, 그에따라 약간 다른 내용이 있을 수 있습니다. Changelog를 참조하시면서 글을 보신다면, 혼동하지 않고 볼 수 있습니다. 리멤버는 최근에 API를 v2로 리팩토링 하면서 데이터 스키마를 많이 변경했습니다. 그에 따라 클라이언트도 리팩토링이 필요했고, 자연스럽게 사용하던 기술 스택을 재구성하였습니다. 그 과정에서 큰 부분을 차지했던 Realm에 대해 1.Read more

안드로이드에 Flux 적용하기. Flux는 정말 새로운 것인가?

Flux는 MVC모델의 단점을 보완하기 위해 페이스북에서 고안한 패턴으로, 웹개발 환경에서 먼저 쓰여지기 시작하였습니다. 2014년에 페이스북에서 Flux를 발표하였는데, 발표 후 많은 웹개발자들의 관심과 함께 기술적인 논의도 활발히 이루어졌습니다. 저는 이것이 무엇이길래 다들 이렇게 주목하는가 궁금했습니다. 그리고 이것이 패턴이라면, 안드로이드에도 적용하여 구조개선을 이룰 수 있지 않을까, 기대감을 품고 학습을 시작하였습니다. 결론을 먼저 말씀드리면, 기대했던만큼 좋은 패턴은 아니라고Read more

리멤버의 안드로이드 6.0 M버전 대응기

2015년 10월 20일, 넥서스 5x 출시를 시작으로 안드로이드 6.0 마시멜로우(이하 M버전)가 정식으로 시장에 풀렸습니다. M버전은 고객의 입장에서는 체감할만한 큰 변화가 없지만, 개발자들에게는 매우 많은 변화가 있던 업데이트 였습니다. 그만큼 구글에서는 정식으로 출시하기 전부터 3차례에 걸쳐 프리뷰를 발표하면서 많은 개발자들이 변화에 대응할 수 있는 시간을 주었습니다. (심지어 targetSdkVersion을 23으로 올리지 않아도 M버전 기기에서 앱이 잘 돌아갑니다.Read more