이제야 보는 Droid Knights 2021 [1편]
1. 송성현 - 해커 입장에서 생각해보고 안전한 앱 개발하기
- 금융 보안원 담당자
- OS 커널의 권한 획득 및 READ/WRITE을 이용한 취약점 확인 => 오픈 소스 사용의 최소화
- Double-Free 취약점
- Fuzz 취약점 확인 자동화 프로그램
- 루팅 시켜서 앱 취약점 확인하는 것이 보편적
- OEM Unlock - Insttall TWRP - Install Rooting tool
- Target App 디버깅하여 함수와 파라미터, Stack Trace 정보 확인
- 클라이언트 단에서 중요, 개인 정보의 사용을 최소화 => 충분히 노출 될 수 있음
2. 정승옥 - 액티비티 : 코드제로
- LifeCycle Awareness 기반 RxJava 또는 Flow 동작 : annotation interface 사용
- ViewModel에서 모든 로직 처리
- Activity 의존적 컴포넌트들은 랩핑 : 함수의 참조변수로 전달, 유닛테스트 가능한 모킹 객체 구현
- 액티비티의 최종 형태는 DI, XML, 데이터바인딩 설정만 남음
- Compose 전환
3. 김호중 - 복잡한 RecyclerView 군더더기 없이 데이터로 표현하기
- 데이터 == View State
- 중복된 구현의 어뎁터 줄이기
- ViewType 정의 : Model 자체에서 타입 정의
- ViewHolderBuilder
- Adapter 공통화
- 데이터 바인딩으로 뷰 홀더 구현 없애기 : XML에서 정의하기
- RecyclerView 상태를 ViewModel에 표현하기
RecyclerViewState를 두고 Adapter간의 Interface를 만들어 의존성을 주입
- NaverZ/Anttonio 참고 : https://github.com/naverz/Antonio
- ListState & Compose
4. 강사룡 - Android Testing Best Practices
- 테스트 코드를 작성햏야 하는 이유
- 협업을 위해, 장애를 위해, 다른 사람이 수정하는 경우 등
- 안정성 / 호환성, 성능 테스트는 Real Device
- Unit Test는 JVM 실행, 되지 않는 것은 Simulator에서 테스트(디바이스에서 테스트 전 단계)
- 1단계 : 테스트 주도 개발(TDD)
- 2단계 : 실제/의사 디버깅 과정에서 테스트 코드를 적용
- 실제에 가까운 단위 테스트 만들기
- 3단계 : 패자 부활전! 대원칙 UnChanging Test
- 참고 https://testing.googleblog.com/
5. 권혁신 - Asynchronous Programming For Android
- 비동기 프로그래밍이 필요한 이유
- RxJava / Kotlin Coroutine
- RxJava는 Reactive Extension 기반
스트림 기반이며 operator과 Event 와 함께 쓰임
Real time에 유리
- Coroutine는 Stream와 Operator가 없으며
Sequential Code Structure 가짐, Try-catch문으로 에러처리함
이를 보완하는 방법이 Flow를 함께 사용
참고 사이트 https://sites.google.com/view/dk21/
https://www.youtube.com/playlist?list=PLu8dnNjU2FmsROfv5pNAvhRiOFVN_EmnV
'Seminar' 카테고리의 다른 글
이제야 보는 Droid Knights 2021 [3편] (0) | 2022.12.05 |
---|---|
이제야 보는 Droid Knights 2021 [2편] (0) | 2022.11.29 |
2022 배민 WOOWACON 우아콘 3 (0) | 2022.11.10 |
2022 배민 WOOWACON 우아콘 2 (0) | 2022.11.07 |
2022 배민 WOOWACON 우아콘 1 (0) | 2022.11.04 |
댓글