안드로이드 개발자로서 알아야 할 개념들에 대해 정리하는 레포입니다.
- URL.md : 참고하면 좋을 만한 안드로이드 관련 URL을 정리해두었습니다.
- PROGRESS.md : 주차별 진행 정도 및 담당 파트를 기록했습니다.
- 시스템 콜(유저 모드, 커널 모드)
- 시스템 부트
- 스레드, 프로세스
- Synchronization : Semaphore, DeadLock
- Main memory : Address binding && Segmentation, Paging && TLB,
- Virtual memory : Virtual Memory && Demand Paging, Page Replacement 알고리즘(FIFO, LRU, Optimal Page..) && Thrashing
- CPU 스케줄링
- File system (Inode, journaling, allocation, caching ...)
- Disk 스케줄링(HDD vs SSD)
- IO system(polling, Interrupt, blocking, non blocking)
- ...
- 우선은 책으로 기본 개념 학습
- Http, Https + REST + 대칭키 비대칭키
- Socket
- 5계층
- ...
- 트랜잭션, join
- 관계형 DB vs 비관계형 DB
- B+ Tree Indexing && Hash Indexing
- Activity
- BroadcastReceiver
- Service
- ContentProvider
- View와 ViewGroup, View Lifecycle
- Intent(명시적 intent, 암시적 intent 등등), Context
- Thread, Handler, Looper, ANR
- HTTP통신(Java API 이용 vs Retrofit vs Volley)
- ListView vs RecyclerView
- Android Test (JUnit, Espresso)
-> 여기서부터 AAC(Android Architecture Component)
- DataBinding vs ButterKnife vs FindViewById
- ViewModel
- Room
- Workmanager
- Paging
- 생명주기 기반 컴포넌트
- MVC, MVP, MVVM 왜 쓰는가. 각 패턴의 장단점.
- 5대 원칙(SOLID)
- JVM 구조 - > 안드로이드와 연결하여 공부
- GC
- Collection , 람다
- 제너릭
- Class, interface 상속 ( OOP개념. 왜 쓰는지)
- Shallow Copy, Deep Copy
- ...
- 객체지향 모델링이란?
- UML
- 클래스 다이어그램
- 피터코드의 상속 규칙
- 일반화 vs 위임
생성패턴
- 싱글톤
- 빌더
- 팩토리 메서드
- 추상 팩토리
구조 패턴
- 어뎁터
- 퍼사이드
- 데커레이터
- 컴퍼지트
- 프록시
행위 패턴
- 스트래티지
- 스테이트
- 커맨드
- 옵서버
- 템플릿 메서드
- 이터레이터
- 위임 패턴
....
- MVC
- MVP
- MVVM
- BST -> AVL -> RB, B+
- 우선 순위 큐(힙으로 구현)
- 정렬 알고리즘(quick , merge)
- MST(크루스칼, 프림) + disjoint set + union find
- 다익스트라, 밸만포드
- ...