V
VCNC
July 31, 20131회
안드로이드 클라이언트 Reflection 극복기
간단 소개
안드로이드 Reflection 성능 이슈를 극복하기 위해 Bytecode 생성(Dexmaker)을 시도했으나, APT 기반 코드 자동 생성으로 최종 해결하고 Binding 라이브러리를 구축한 과정.
AI Summary
- 다양한 데이터 형태와 POJO 변환의 필요성
- 안드로이드 앱 개발 시 JSON, Thrift, ContentValues, Cursor 등 다양한 형태의 데이터가 존재하며, 이를 POJO로 변환하여 코드의 일관성을 유지하고자 함.
- Reflection을 사용하여 데이터 변환을 구현했으나, 성능 저하 문제가 발생함.
- Reflection 성능 문제 해결 시도
- Bytecode 생성(Dexmaker 활용)을 통해 성능 개선을 시도했으나, 초기 실행 성능 저하 및 관리의 어려움으로 인해 실제 적용하지 못함.
- Annotation Processor(APT)를 사용하여 컴파일 시점에 변환 코드를 자동 생성하는 방식으로 전환.
- APT 기반 코드 생성의 장점 및 성능 비교
- APT를 이용한 코드 생성은 Reflection을 사용하지 않아 빠르고, 초기 실행 시 코드 생성 overhead가 없으며, 모델 변경 시 즉시 반영되는 장점이 있음.
- Reflection, Dexmaker, APT 성능 비교 결과, APT 방식이 가장 우수한 성능을 보임.
- Binding 라이브러리를 통해 POJO와 다양한 데이터 형태 간의 변환을 추상화하여 사용.
Next Feeds
비트윈의 스티커 시스템 구현 이야기
비트윈 스티커 시스템의 아키텍처, 구현 과정의 문제 해결, 그리고 보안 적용에 대한 기술적 고민과 해결책을 제시합니다.
스티커아키텍처WebPGAE보안
2013. 6. 24.
VCNC
비트윈이 사용자를 분석하는 방법
비트윈 팀의 사용자 데이터 분석 방법, 기술 스택, 개인정보 보호 노력, 그리고 분석 결과를 활용한 서비스 개선 과정을 소개합니다.
사용자 분석빅데이터 분석로그 분석개인정보 보호데이터 시각화
2013. 5. 14.
VCNC
HBase 설정 최적화하기
비트윈 서비스의 HBase 최적화 경험을 바탕으로 HDFS, HBase 설정, GC 튜닝, Region 관리 등 다양한 최적화 기법을 소개합니다.
HBaseHDFS최적화설정NoSQL
2013. 4. 23.
VCNC
비트윈 시스템 아키텍처
비트윈의 시스템 아키텍처 변천 과정과 현재 구조, 그리고 미래 아키텍처 개선 방향을 제시합니다. 기술 스택, AWS 활용, 샤딩 전략 등이 포함됩니다.
비트윈아키텍처AWSHBase샤딩
2013. 4. 18.
VCNC
VCNC 엔지니어링 블로그를 시작합니다.
VCNC 엔지니어링 블로그 개설을 알리며, 개발 문화 공유, 투명성 증진, 피드백 수렴을 통해 서비스 발전을 도모하고자 함.
VCNC비트윈블로그개발기술
2013. 4. 15.
VCNC