NHN NEXT 휴먼디자인 프로젝트 수업 중간 발표자료로 작성한 피피티 입니다.
프로젝트를 한달정도 진행하면서 겪은 삽질을 공유하기 위해 작성하였습니다.
Token을 이용한 인증에 관한 이슈, MVC패턴에 대한 고민, HTTP 오픈소스에 관한 고민등을 간단히 담았습니다.
9. Android 개발 - 삽질 1 : Authorization
Device ID를 대신 할 수 있는 Unique한 ID는 없을까?
java.util의
UUID(Universally Unique Identifier)클래스를 사용해
UUID를 랜덤으로 뽑습니다.
10. Android 개발 - 삽질 1 : Authorization
“UUID를 누군가 관리하면서,
중복되지 않게 할당해 주어야 하는게 아닌가요?”
“랜덤으로 만든 값을 쓰다보면, 누군가와 겹치지 않을까요?”
11. Android 개발 - 삽질 1 : Authorization
로또 당첨 확률
약 8000000 분의 1
12. Android 개발 - 삽질 1 : Authorization
UUID 2개가 중복될 확률
“16자리의 16진수가 순서에 맞게 같아야 한다.”
약 350000000000000000000000000000000000000분의 1
13. Android 개발 - 삽질 1 : Authorization
Server Client
첫 진입
POST
{UUID : %@#$}UUID를
DB저장,
암호화된
token 발행 RESPONSE
{token : ^$@!}
SharedPreference로
token을 로컬에 저장
HTTP Header
Authorization : token
이후 네트워크 통신 시
HTTP Header에
token을 함께 보냄
HTTP Header에서
token정보를 가져와
사용자 식별
14. Android 개발 - 삽질 2 : Network
Android 네트워크 삽질의 추억…
“어, 왜 5.0에서만 POST가 보내지지??”
“4.2, 4.3은 안되고 또 4.1은 되네.. 뭐지???ㅠㅠ”
“왜 두번 클릭해야 POST를 하지??”
대 체 왜 !!!
오픈 소스 사용하자!!!
15. Android 개발 - 삽질 2 : Network
“오픈소스 뭐 쓰지?”
여러 라이브러리를 고르던 중,
Android에 특화되어 가벼운 용량과 간편한 사용법이 장점인
Async-HttpClient를 사용하기로 결정!
17. Android 개발 - 삽질 2 : Network
이렇게 URL과 call back만 구현하면 끝!
18. Android 개발 - 삽질 3 : MVC 패턴을 사용한 구조 설계
MVC… 듣기는 많이 들어 봤는데, 어떻게 설계 해야 하나??
19. Android 개발 - 삽질 3 : MVC 패턴을 사용한 구조 설계
일단 패키지를 나눠서 MVC와 Entity, Network를 구분해보자!
M
C
V
Entity
Network
깔끔한데??
20. Android 개발 - 삽질 3 : MVC 패턴을 사용한 구조 설계
깔끔하긴 하지만… MVC로 구조를 짜는 이유는 뭘까?
조금 더 아래에 깔려 있는 원칙은??
“Component 단위의 분리”
21. Android 개발 - 삽질 3 : MVC 패턴을 사용한 구조 설계
“Component 단위의 분리”를 통해
유지, 보수를 하기가 쉬워진다!
즉, 하나의 컴포넌트를 수정함에 있어
다른 컴포넌트에 영향을 최소화하기 위함!
22. Android 개발 - 삽질 3 : MVC 패턴을 사용한 구조 설계
ViewModel
Controller
Model과 View를 생성
View의 이벤트를 처리할
Listener 인터페이스 구현
내부 인터페이스
Listener를 선언
Model Listener를 구현
내부 인터페이스
Model Listener를 선언
23. Android 개발 - 삽질 3 : MVC 패턴을 사용한 구조 설계
ViewModel
Controller
Model과 View를 생성
View의 이벤트를 처리할
Listener 인터페이스 구현
내부 인터페이스
Listener를 선언
Model Listener를 구현
내부 인터페이스
Model Listener를 선언
사용자에게
이벤트를 받아
Controller로 넘기면
24. Android 개발 - 삽질 3 : MVC 패턴을 사용한 구조 설계
ViewModel
Controller
Model과 View를 생성
View의 이벤트를 처리할
Listener 인터페이스 구현
내부 인터페이스
Listener를 선언
Model Listener를 구현
내부 인터페이스
Model Listener를 선언
Controller는
Listener인터페이스의
구현에 따라
Model을 호출
25. Android 개발 - 삽질 3 : MVC 패턴을 사용한 구조 설계
ViewModel
Controller
Model과 View를 생성
View의 이벤트를 처리할
Listener 인터페이스 구현
내부 인터페이스
Listener를 선언
Model Listener를 구현
내부 인터페이스
Model Listener를 선언
Model의 변화를
View가 감지하고
Model Listener의
구현에 따라
화면 변경
26. Android 개발 - 삽질 3 : MVC 패턴을 사용한 구조 설계
이렇게 나눠놓으니 확실히 코드 변경이 쉬워졌습니다!
27. Android 개발 - 그 외 삽질들
그 외에도 JSON Parser로
어떤 라이브러리를 사용할까를 선택하는 과정,
인터넷 폰트를 적용하는 것 등등
사소하지만 해보지 않았던 부분들을
삽질해 보았습니다.
28. Android 개발 - 그 외 삽질들
아직 진행중인 무한스크롤 이슈와
이미지 Resizing에 관한 이슈 등 훨씬더 다양한 삽질로
학기말에 공유하도록 하겠습니다.