SlideShare a Scribd company logo
1 of 28
뜯어고치기 쉽게
앱 뜯어고치기
장선옥
풀이 검색 서비스 질문 답변 서비스
2017 콴다 변천사
1월 6월
10월
Realm, Dagger, Rx 도입
RetrievableObject RealmObject
Cursor기반 Paginator Service를
구현하기 위해 PK를 포함한
Object
Realm Cache를 사용하기 위해
Table을 정의하는 Model
2017년 3월. Code Refactoring (실패)
2017년 6월. OCR 베타 출시 & Material Design Guide적용
Icon Card Style
Bottom Navigation Text Style
2017년 10월. 콴다 V2 출시
Mission
뜯어고치기 쉬운 앱 만들기
Mission
지속관리 용이한 앱 만들기
Mission
재사용성 의존성 제거 모듈화
지속관리 용이한 앱 만들기
Android Clean Architecture
Presenter
Data
Domain
Android Clean Architecture
- View, Presenter
- Network, Cache, RepositoryImpl
- Model, Repository
Android Clean Architecture
- View, Presenter
- Network, Cache, Entity, RepositoryImpl
- Model, Repository
UserModel
UserEntity
User
Presenter
Data
Domain
BaseApp
Data
Domain
Qanda Android Architecture
Qanda QandaTeacherPresenter
BaseApp
Data
Domain
Qanda Android Architecture
- Custom View, Base Activity, Style, Resource
- Network, Cache, RepositoryImpl, Repository
- Custom Factory, Builder, Etc
- Model, Repository
Qanda - View, Presenter
BaseApp
Data
Domain
Qanda Android Architecture
- Custom View, Base Activity, Style, Resource
- Network, Cache, RepositoryImpl, Repository
- Custom Factory, Builder, Etc
- Model, Repository
Qanda - View, Presenter
Realm
UserModel
UserEntity
User
>RealmObject
AAC Room 도입하려면?
RealmObject Room Entity
Realm Cache를 사용하기 위해
Table을 정의하는 Model
Room DataBase에서
Table을 정의하는 Annotation @Entity
Qanda Android Architecture
BaseApp
Data
Domain
Qanda Android Architecture
- Custom View, Base Activity, Style, Resource
- Network, Cache, RepositoryImpl, Repository
- Custom Factory, Builder, Etc
- Model, Repository
Qanda - View, Presenter
Room
@Entity
UserModel
UserEntity
User
Mission
뜯어고치기 쉬운 앱 만들기
디자인 컴포넌트
Qanda Android Design Guide
Qanda Android Design Guide
Qanda Android Design Guide
Qanda Android Design Guide
SDK 버전에 따른 Style의 차이를 인지시키
자
안드로이드 기본 컴포넌트를 이해시키자
삼성폰과 LG폰 차이를 인지시키자. 특히 색감
디자인 가이드 앱을 만드는 목적
Margin과 Pagging을 이해시키자
Qanda Android Design Guide
디자인 가이드 앱을 만들었을 때 장점
개발자를 배려한 디자인, 디자이너를 배려
한 개발
안드로이드 기본 컴포넌트에 대한 이해도 상승
앱의 디자인 통일성, 직관성
가입 전환
율
앱 다운
수
질문 수
Qanda Android Design Guide
Qanda Android Design Guide
Qanda Android Design Guide
콴다에서 개발자를
찾습니다.
recruit@mathpresso.com

More Related Content

Similar to 뜯어고치기쉽게 장선옥

Unionweb프로젝트
Unionweb프로젝트Unionweb프로젝트
Unionweb프로젝트Dong-Jin Park
 
MEAN Stack 기반 모바일 서비스 개발 overview
MEAN Stack 기반 모바일 서비스 개발 overviewMEAN Stack 기반 모바일 서비스 개발 overview
MEAN Stack 기반 모바일 서비스 개발 overview민태 김
 
2016 Staccato track3 Android를 더 잘 개발하려면? (MVP, MVVM, Clean Architecture)
2016 Staccato track3 Android를 더 잘 개발하려면? (MVP, MVVM, Clean Architecture)2016 Staccato track3 Android를 더 잘 개발하려면? (MVP, MVVM, Clean Architecture)
2016 Staccato track3 Android를 더 잘 개발하려면? (MVP, MVVM, Clean Architecture)승용 윤
 
[오픈소스컨설팅]이기종 WAS 클러스터링 솔루션- Athena Dolly
[오픈소스컨설팅]이기종 WAS 클러스터링 솔루션- Athena Dolly[오픈소스컨설팅]이기종 WAS 클러스터링 솔루션- Athena Dolly
[오픈소스컨설팅]이기종 WAS 클러스터링 솔루션- Athena DollyJi-Woong Choi
 
Computer Vision OCR 이미지 텍스트추출 기초 실습가이드
Computer Vision OCR 이미지 텍스트추출 기초 실습가이드Computer Vision OCR 이미지 텍스트추출 기초 실습가이드
Computer Vision OCR 이미지 텍스트추출 기초 실습가이드Minnie Seungmin Cho
 
KCSE 2015 Tutorial 빅데이터 분석 기술의 소프트웨어 공학 분야 활용 (...
KCSE 2015 Tutorial 빅데이터 분석 기술의  소프트웨어 공학 분야 활용 (...KCSE 2015 Tutorial 빅데이터 분석 기술의  소프트웨어 공학 분야 활용 (...
KCSE 2015 Tutorial 빅데이터 분석 기술의 소프트웨어 공학 분야 활용 (...Chanjin Park
 
Elastic Stack & Data pipeline
Elastic Stack & Data pipelineElastic Stack & Data pipeline
Elastic Stack & Data pipelineJongho Woo
 
빅데이터 인공지능 전략 및 로드맵
빅데이터 인공지능 전략 및 로드맵빅데이터 인공지능 전략 및 로드맵
빅데이터 인공지능 전략 및 로드맵r-kor
 
[AI & DevOps] BigData Scale Production AI 서비스를 위한 최상의 플랫폼 아키텍처
[AI & DevOps] BigData Scale Production AI 서비스를 위한 최상의 플랫폼 아키텍처[AI & DevOps] BigData Scale Production AI 서비스를 위한 최상의 플랫폼 아키텍처
[AI & DevOps] BigData Scale Production AI 서비스를 위한 최상의 플랫폼 아키텍처hoondong kim
 
AWS기반 서버리스 데이터레이크 구축하기 - 김진웅 (SK C&C) :: AWS Community Day 2020
AWS기반 서버리스 데이터레이크 구축하기 - 김진웅 (SK C&C) :: AWS Community Day 2020AWS기반 서버리스 데이터레이크 구축하기 - 김진웅 (SK C&C) :: AWS Community Day 2020
AWS기반 서버리스 데이터레이크 구축하기 - 김진웅 (SK C&C) :: AWS Community Day 2020Jinwoong Kim
 
AWS기반 서버리스 데이터레이크 구축하기 - 김진웅 (SK C&C) :: AWS Community Day 2020
AWS기반 서버리스 데이터레이크 구축하기 - 김진웅 (SK C&C) :: AWS Community Day 2020 AWS기반 서버리스 데이터레이크 구축하기 - 김진웅 (SK C&C) :: AWS Community Day 2020
AWS기반 서버리스 데이터레이크 구축하기 - 김진웅 (SK C&C) :: AWS Community Day 2020 AWSKRUG - AWS한국사용자모임
 
웹표준 프레임워크 메타웍스3의 적용 사례와 생산성
웹표준 프레임워크   메타웍스3의 적용 사례와 생산성웹표준 프레임워크   메타웍스3의 적용 사례와 생산성
웹표준 프레임워크 메타웍스3의 적용 사례와 생산성영재 김
 
Lablupconf session8 "Paving the road to AI-powered world"
Lablupconf session8 "Paving the road to AI-powered world"Lablupconf session8 "Paving the road to AI-powered world"
Lablupconf session8 "Paving the road to AI-powered world"Lablup Inc.
 
Metaworks3 Framework workbook 2015
Metaworks3 Framework workbook 2015Metaworks3 Framework workbook 2015
Metaworks3 Framework workbook 2015uEngine Solutions
 
웹 개발 신입 지원자 프로젝트
웹 개발 신입 지원자 프로젝트웹 개발 신입 지원자 프로젝트
웹 개발 신입 지원자 프로젝트Park HanSol
 
모바일 게임과 앱을 위한 오픈소스 게임서버 엔진 프로젝트 CloudBread 프로젝트
모바일 게임과 앱을 위한 오픈소스 게임서버 엔진 프로젝트 CloudBread 프로젝트모바일 게임과 앱을 위한 오픈소스 게임서버 엔진 프로젝트 CloudBread 프로젝트
모바일 게임과 앱을 위한 오픈소스 게임서버 엔진 프로젝트 CloudBread 프로젝트Dae Kim
 
2013 빅데이터 및 API 기술 현황과 전망- 윤석찬
2013 빅데이터 및 API 기술 현황과 전망- 윤석찬2013 빅데이터 및 API 기술 현황과 전망- 윤석찬
2013 빅데이터 및 API 기술 현황과 전망- 윤석찬Channy Yun
 
Agados Function and Feature Overview
Agados Function and Feature OverviewAgados Function and Feature Overview
Agados Function and Feature OverviewYongkyoo Park
 

Similar to 뜯어고치기쉽게 장선옥 (20)

Unionweb프로젝트
Unionweb프로젝트Unionweb프로젝트
Unionweb프로젝트
 
MEAN Stack 기반 모바일 서비스 개발 overview
MEAN Stack 기반 모바일 서비스 개발 overviewMEAN Stack 기반 모바일 서비스 개발 overview
MEAN Stack 기반 모바일 서비스 개발 overview
 
2016 Staccato track3 Android를 더 잘 개발하려면? (MVP, MVVM, Clean Architecture)
2016 Staccato track3 Android를 더 잘 개발하려면? (MVP, MVVM, Clean Architecture)2016 Staccato track3 Android를 더 잘 개발하려면? (MVP, MVVM, Clean Architecture)
2016 Staccato track3 Android를 더 잘 개발하려면? (MVP, MVVM, Clean Architecture)
 
[오픈소스컨설팅]이기종 WAS 클러스터링 솔루션- Athena Dolly
[오픈소스컨설팅]이기종 WAS 클러스터링 솔루션- Athena Dolly[오픈소스컨설팅]이기종 WAS 클러스터링 솔루션- Athena Dolly
[오픈소스컨설팅]이기종 WAS 클러스터링 솔루션- Athena Dolly
 
Computer Vision OCR 이미지 텍스트추출 기초 실습가이드
Computer Vision OCR 이미지 텍스트추출 기초 실습가이드Computer Vision OCR 이미지 텍스트추출 기초 실습가이드
Computer Vision OCR 이미지 텍스트추출 기초 실습가이드
 
KCSE 2015 Tutorial 빅데이터 분석 기술의 소프트웨어 공학 분야 활용 (...
KCSE 2015 Tutorial 빅데이터 분석 기술의  소프트웨어 공학 분야 활용 (...KCSE 2015 Tutorial 빅데이터 분석 기술의  소프트웨어 공학 분야 활용 (...
KCSE 2015 Tutorial 빅데이터 분석 기술의 소프트웨어 공학 분야 활용 (...
 
Elastic Stack & Data pipeline
Elastic Stack & Data pipelineElastic Stack & Data pipeline
Elastic Stack & Data pipeline
 
빅데이터 인공지능 전략 및 로드맵
빅데이터 인공지능 전략 및 로드맵빅데이터 인공지능 전략 및 로드맵
빅데이터 인공지능 전략 및 로드맵
 
모바일을 위한 (AWS) 클라우드 기술 동향
모바일을 위한 (AWS) 클라우드 기술 동향 모바일을 위한 (AWS) 클라우드 기술 동향
모바일을 위한 (AWS) 클라우드 기술 동향
 
[AI & DevOps] BigData Scale Production AI 서비스를 위한 최상의 플랫폼 아키텍처
[AI & DevOps] BigData Scale Production AI 서비스를 위한 최상의 플랫폼 아키텍처[AI & DevOps] BigData Scale Production AI 서비스를 위한 최상의 플랫폼 아키텍처
[AI & DevOps] BigData Scale Production AI 서비스를 위한 최상의 플랫폼 아키텍처
 
AWS기반 서버리스 데이터레이크 구축하기 - 김진웅 (SK C&C) :: AWS Community Day 2020
AWS기반 서버리스 데이터레이크 구축하기 - 김진웅 (SK C&C) :: AWS Community Day 2020AWS기반 서버리스 데이터레이크 구축하기 - 김진웅 (SK C&C) :: AWS Community Day 2020
AWS기반 서버리스 데이터레이크 구축하기 - 김진웅 (SK C&C) :: AWS Community Day 2020
 
AWS기반 서버리스 데이터레이크 구축하기 - 김진웅 (SK C&C) :: AWS Community Day 2020
AWS기반 서버리스 데이터레이크 구축하기 - 김진웅 (SK C&C) :: AWS Community Day 2020 AWS기반 서버리스 데이터레이크 구축하기 - 김진웅 (SK C&C) :: AWS Community Day 2020
AWS기반 서버리스 데이터레이크 구축하기 - 김진웅 (SK C&C) :: AWS Community Day 2020
 
웹표준 프레임워크 메타웍스3의 적용 사례와 생산성
웹표준 프레임워크   메타웍스3의 적용 사례와 생산성웹표준 프레임워크   메타웍스3의 적용 사례와 생산성
웹표준 프레임워크 메타웍스3의 적용 사례와 생산성
 
Lablupconf session8 "Paving the road to AI-powered world"
Lablupconf session8 "Paving the road to AI-powered world"Lablupconf session8 "Paving the road to AI-powered world"
Lablupconf session8 "Paving the road to AI-powered world"
 
Metaworks3 Framework workbook 2015
Metaworks3 Framework workbook 2015Metaworks3 Framework workbook 2015
Metaworks3 Framework workbook 2015
 
웹 개발 신입 지원자 프로젝트
웹 개발 신입 지원자 프로젝트웹 개발 신입 지원자 프로젝트
웹 개발 신입 지원자 프로젝트
 
모바일 게임과 앱을 위한 오픈소스 게임서버 엔진 프로젝트 CloudBread 프로젝트
모바일 게임과 앱을 위한 오픈소스 게임서버 엔진 프로젝트 CloudBread 프로젝트모바일 게임과 앱을 위한 오픈소스 게임서버 엔진 프로젝트 CloudBread 프로젝트
모바일 게임과 앱을 위한 오픈소스 게임서버 엔진 프로젝트 CloudBread 프로젝트
 
Jeongheetaek p
Jeongheetaek pJeongheetaek p
Jeongheetaek p
 
2013 빅데이터 및 API 기술 현황과 전망- 윤석찬
2013 빅데이터 및 API 기술 현황과 전망- 윤석찬2013 빅데이터 및 API 기술 현황과 전망- 윤석찬
2013 빅데이터 및 API 기술 현황과 전망- 윤석찬
 
Agados Function and Feature Overview
Agados Function and Feature OverviewAgados Function and Feature Overview
Agados Function and Feature Overview
 

Recently uploaded

A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)Tae Young Lee
 
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionKim Daeun
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Wonjun Hwang
 
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Kim Daeun
 
캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스
 
Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Wonjun Hwang
 

Recently uploaded (6)

A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)
 
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)
 
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
 
캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차
 
Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)
 

뜯어고치기쉽게 장선옥

Editor's Notes

  1. 2017년 한해동안 콴다에는 참많은 변화들이 있었는데요.
  2. Realm, Dagger, Rx를 도입하기위한 대대적인 코드리팩토링이 있었는데요. 렘의 경우 렘의 Data Model들은 RealmObject를 상속받아야하는데 저희 앱의 Data Model들은 자체적인 Paginator Service를 위해 Retrievable이라는 Object를 상속받고있었습니다. 따라서 렘을 도입하려면 거의 대부분의 Data Model을 수정해야했고 그에 따라 대부분의 코드를 수정해야만해서 리팩토링의 규모가 매우 커졌고, 결국 시간 부족으로 실패를 하게 되었습니다.
  3. 그 이후 6월 풀이검색 서비스를 강조하기 위해 메인 디자인이 변경되고 탭이 추가되었고, 그와 더불어 디자이너와 함께 구글 머터리얼 디자인 가이드를 적용하면서 대부분의 디자인 요소들을 변경하면서 대규모 업데이트가 있었습니다.
  4. 또 마지막으로 대략 3개월간의 기간을 거쳐 앱을 완전히 새롭게 만든 콴다 버전2가 출시되었습니다. 앱을 처음부터 완전히 새롭게 제작을 하였는데요. 앱을 새롭게 제작하게된 이유는 1. 학생&선생 앱 분리 출시 2. 전체적인 디자인 개선 3. 서버API도 모두 변경하며 서버에서 주는 Model도 바뀔 예정 4. 한달의 준비기간 안드에서도 앱을 새롭게 제작하기로 결정.
  5. Domain은 순수한 Java 모듈, Data와 Presenter는 Android 모듈
  6. 네트워크나 캐시등에서 사용하는 모델은 UserEntity. 후에 User로 변환해서 View에맞게 UserModel로 변경해서 뿌려주는 구조.