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

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

드라마의 Pair Programming과 Code Review 도입 후기

작년 11월에 Tom님과 Jaden님이 처음으로 페어 프로그래밍을 진행하고 도전기를 남겨주셨는데요,   Tom과 Jaden의 첫 페어 프로그래밍 도전기 그 이후로 API, 타이피스트 시스템 등 백엔드 애플리케이션을 중심으로 Pair Programming(이하 PP)과 Code Review(이하 CR)를 개발 문화로 정착시키기 위해 꾸준한 노력이 있었습니다. 본 글에서는 PP와 CR을 적용하면서 느꼈던 점들을 요약하여 말씀드리고자 합니다.   Why PP & CR? PP와Read more

리멤버 앱의 명함인식 기능

안녕하세요. 이번 포스팅에서는 리멤버 앱에 포함된 명함인식 기능에 관한 내용을 소개하려 합니다. 아래에서 그 내용을 간략히 소개해 드리려 합니다. 리멤버 iOS 앱에서 명함 영역 인식하기 Apple의 iOS SDK는 “CoreImage Framework“를 기본으로 제공해 주고 있는데요, 이것은 이미지 처리와 관련된 다양한 기능을 제공하고 있습니다. 저희 리멤버 iOS 앱도 이를 사용하여 명함 영역을 인식해 보기로 했습니다. 사각형 영역Read more

Rails Engine을 이용한 Zeus 프로젝트

1. Problem 드라마앤컴퍼니에서는 리멤버 서비스를 위해 다양한 서버 애플리케이션들을 운용하고 있습니다. 일부 데이터 분석을 위한 소프트웨어를 제외하고는 모두 Ruby on Rails를 사용하여 작성되었고, 크게 아래와 같은 것들이 있습니다. API 서버 애플리케이션: 리멤버 앱 등 클라이언트에서 발생하는 모든 요청을 처리합니다. Typist 서버 애플리케이션: 사용자가 등록한 명함 요청을 타이피스트가 확인하고 입력하는 시스템입니다. Admin 서버 애플리케이션: 운영자가 명함을Read more

개발그룹은 어떻게 일을 하는가? #1

오늘은 개발자 면접을 볼 때 면접자 분들께서 늘 물어보시는 질문인 ‘드라마앤컴퍼니의 개발 그룹은 어떻게 일을 하나요’에 대한 첫 번째 글을 적어볼까 합니다. ‘어떻게 일을 하는지’는 굉장히 광범위한 질문이기 때문에 이번 글에서는 저희의 방법론과 계획 등에 대하여 얘기해보겠습니다. 업무의 방법론이란 굉장히 중요합니다. 무작정 열심히 한다고 해서는 절대로 장기적으로 일을 효율적으로 해낼 수 없습니다. 특히 사람이 많아지면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

RDS MySQL에서 RDS Aurora로 DB이전 다운타임 최소화 하기

얼마 전 저희 리멤버의 DB서버 이전이 있었습니다. 기존엔 AWS RDS에서 MySQL을 사용하고 있었으나 AuroraDB로 서버 이전을 하였고, 손쉽게(?) 작업을 마무리 할 수 있었습니다. 이전을 할 때 데이터 소실없이 이전 하는 것이 첫 번째로 중요했고, 두 번째로 중요했던 건 서비스의 다운타임을 최소화 하는 것 이었습니다. 첫 번째로 중요했던 데이터의 소실 없이 이전 하는건 철저한 검증을 통해 확인과 복원을Read more

안정적인 서비스 운영을 위한 서버 모니터링 #2

0. Background 전편에서는 안정적인 서비스 운영을 위해 꼭 필요한 APM(Application Performance Management)에 대해 이야기하였습니다. APM을 도입하면 운영 환경에서도 어느 곳이 성능 병목 구간인지, 어떤 에러가 발생하는지 쉽게 파악하고 추적할 수 있습니다. 하지만 이것만으로는 부족합니다. 예를 들어, 특정 사용자가 리멤버의 명함 조회 API를 호출했는데 어느 순간 갑자기 응답이 느려지기 시작합니다. APM을 통해 모니터링을 하면 이런 현상이Read more

‘처음’ Windows 설치 파일을 ‘배포’하는 개발자들을 위하여

이번에 리멤버 Windows 데스크톱 버전을 개발하면서 처음으로 exe 파일로 설치 파일을 만들고 웹에 배포해 보았습니다. 이 글에서는 처음으로 설치 파일을 웹에 배포하는 과정 그리고 예상하지 못했던 난관에 대하여 설명해보려 합니다. 앱 개발을 완성하고 설치 파일까지 만들었다고 모든 것이 끝났다고 생각하시면 안됩니다. 별 생각 없이 설치 파일을 웹에 게시하고 웹페이지에서 다운을 받으면 다음과 같은 화면들을 만나게Read more

1 2 3