지식 정리 한번에 보기 (펼치기/접기)
- 🔤 언어
- 📱 안드로이드
- 안드로이드 스튜디오
- API 관련
- OS 관련
- 기초
- 중급
- 아키텍쳐
- 기본
- 의존성 주입 - Dagger2
- 디자인 패턴의 기본
- 객체 지향 프로그래밍
- 라이브러리
- 기본
- Glide
- Retrofit
- 레이아웃
- 리엑티브자바 - RxJava2
- 테스트
- 안드로이드 관련 컨퍼런스 영상 정리
- 🧑🏭 협업
- 💻 기타
- 맨 위로 가기 ⬆️
- Generic.md
- Generic_wildcard.md
- Map (HashMap) .md
- Method References.md
- Spring Constant Pool(상수풀),literal.md
- Static Nested Class, inner Class, .md
- abstract.md
- enum.md
- interface, implement.md
- java.util.FuctionalInterface.md
- lambda expression(람다표현식).md
- semaphore.md
- stream api.md
- stream.md
- synchronized.md
- 리플렉션(reflection).md
- 애노테이션(Annotaion).md
- 이중클론(::) .md
- sync, async, blocking, non-blooking.md
- final 과 const의 차이점.md
- class -> interface 형변환.md
- Optional.md
- Set(HashSet, TreeSet, LinkedHashSet).md
- isAssignableFrom, instanceOf.md
- AutoClosable.md
- Executor.md
- Callable and Future.md
- POJO 와 Java Beans.md
- 직렬화(Serializable).md
- collection, iterator.md
- Regular Expression(Regex).md
- LRUCache 구현.md
- collections.deque.md
- Annotation 이란? (및 정리).md
- volatile(예약어).md
- 맨 위로 가기 ⬆️
- basic.md
- is, as, smartcast, 동일성체크.md
- kotlin 이중클론 (::).md
- type.md
- 고차함수, 일급함수, 익명함수.md
- 고차함수와 람다함수.md
- 물음표(?)(null-check).md
- 익명객체와 옵저버 패턴.md
- 함수.md
- First-class citizen(일급 객체).md
- Scope Function.md
- Companion Object 는 static 과 같을까?.md
- 싱글톤 구현.md
- get(),set() + custom.md
- 익명의 객체 생성.md
- by 키워드.md
- 함수 파라미터 다양한 설정.md
- Annotation 정리.md
- @JvmSuppressWildcards.md
- Generic(in, out).md
- lazy vs lateinit.md
- Sequence.md
- Flow.md
- Any or Object ?.md
- Operator fun.md
- object vs class.md
- invoke.md
- <*> (Star-projections).md
- sealed class(Result class).md
- inline.md
- reified.md
- 확장 함수.md
- Void vs Unit vs Nothing.md
- init.md
- nested, open, inner.md
- [email protected]
- collection.md
- kapt 란?.md
- Generic 런타임중 구별하기.md
- 맨 위로 가기 ⬆️
- 1. 안전한 프로그래밍.md
- 2.0.1 필드와 변수.md
- 2.0.2 클래스와 인터페이스.md
- 2.0.3 원시타입 없음.md
- 2.0.4 컬렉션의 두 유형(listOf, MutableListOf).md
- 2.0.5 패키지.md
- 2.0.6 가시성.md
- 2.0.7 함수.md
- 2.0.8 널.md
- 2.0.9 프로그램 흐름과 제어 구조.md
- 2.1.0 비검사 예외.md
- 2.1.1 사용한 자원 자동으로 닫기.md
- 2.1.2 스마트캐스트.md
- 2.1.3 동등성과 동일성.md
- 2.1.4 문자열 인터폴레이션.md
- 2.1.5 여러 줄 문자열.md
- 2.1.6 변성: 파라미터화한 타입과 하위 타입.md
- 2.1.7 요약.md
- 3.1.0 함수란 무엇인가.md
- 3.1.1 두 함수 집합 사이의 대응 관계 이해하기.md
- 3.2.1~3 코틀린함수.md
- 3.2.4 순수함수의 조건.md
- 3.2.5 객체 표기법과 함수 표기법 비교.md
- 3.2.6 함수 값 사용하기.md
- 3.2.7 함수 참조 사용하기.md
- 3.2.9 함수 재사용하기.md
- 3.3.0 고급 함수 기능.md
- 맨 위로 가기 ⬆️
- 디버깅.md
- 모듈(Module).md
- gradle.md
- flavor 에 따른 의존성 주입.md
- java, groovy plugin not compatible with android plugin (동시 지원 불가).md
- Dalvik, ART, MultiDex.md
- M1 Macbook 설정.md
- Android 메모리 최적화 코드 작성팁.md
- 난독화 및 앱 축소(proguard와 R8).md
- Firebase Crashlytics_Analytics .md
- 맨 위로 가기 ⬆️
- Gmail API 사용절차.md
- Google Sign-in.md
- OAuth 인증.md
- OAuth2.0.md
- REST API.md
- bluetoothFileSharing.java - 예제코드
- camera2.java - 예제코드
- camera2.md
- sdcard.java - 예제코드
- 전화상태 감시.md
- ssh,sftp(JSch).md
- 맨 위로 가기 ⬆️
- OS 6.0 - OS_6.0_Marshmallow.md
- OS 8.0 - OS 8.0_Oreo.md
- OS 8.0 - implicit Broadcast Exceptions.md
- OS 8.0 - Notification.md
- OS 8.0 - startForegroundService.md
- OS 8.0 - 출처를알수없는소스.md
- OS 9.0 - OS 9.0_PIE.md
- OS 10.0 - OS 10.0_Q.md.md
- 맨 위로 가기 ⬆️
- APK에 서명된키 정보 확인.md
- AlarmManager,JobScheduler.md
- Android .com 의 의미.md
- Android ADB command.md
- Android Debugging 최적화.md
- Android LifeCycle.md
- Android permission Request.md
- Android projectStructure .md
- BroadcastReceiver, OrderedBroadcast.md
- ConstraintLayout.md
- Content Provider, Resolver, UriMatcher, resolver(),notifychanged(), withappendedID().md
- Context.md
- DOPO(Owner).md
- DisplayListener(displayManager).md
- Doze Mode(모드).md
- E2E.md
- FCM GCM.md
- Garbage Collector.md
- IPC, Transaction, Binder, AIDL, Parcel, Bundle.md
- aidl 심화(with 'to jar')
- Launchmode(activity stack).md
- Library 배포.md
- LifeCycle(생명주기).md
- MQTT Protocol.md
- Parcelable(직렬화).md
- Push 서비스.md
- RecyclerView-adapter.md
- Service, IntentService, BindService, BoundService.md
- SharedPreferences.md
- SurfaceView.md
- TLS.md
- Thread, Runnable, Handler, Looper.md
- Uri.md
- WeakRefrence, Strong Reference, SoftReference.md
- XmlPullParser.md
- callback, Listener, Observer.md
- intent,intentfilter, pendingintent.md
- jni, so, mk, ndk.md
- rotate ImgView.md
- scopedstorage.md
- 메모리 누수(Memory leak) Weak, Strong.md
- 모바일 관리 솔루션.md
- 자바, 안드로이드 코딩 규칙.md
- RecyclerView-adapter-DiffUItil.md
- ListAdapter.md
- Fragment
- fragment 와 activity 간의 통신 설정하기
- 애니메이션 설정
- onBackPressed() 처리하기
- fragment 겹치는 현상
- 맨 위로 가기 ⬆️
- 분리된 뷰들 실시간 동기화.md
- Coroutine(코루틴).md
- onSavedInstance(상태저장).md
- BroadCastReceiver 관련 제한 정책.md
- DialogFragment 여백 설정 안됨.md
- Navigation Component 에서 DialogFragment 결과값 수신.md
- ViewPager2 에서 횡스크롤.md
- 안드로이드 캐싱 전략.md
- Android KTX.md
- Activity(Or Fragment) LifeCycle 수집.md
- 안드로이드 아키텍쳐 가이드.md
- 안드로이드 클린 아키텍쳐.md
- 안드로이드 클린 아키텍쳐_최적화.md
- 멀티 모듈 프로젝트(의존성 정립).md
- AAC-DataBinding.md
- AAC-LiveData.md
- AAC-View Model.md
- AAC-Room.md
- AAC-Navigation Component.md
- AAC-Repository pattern with AAC.md
- AAC-WorkManager.md
- AAC-WorkManager Threading.md
- AAC - Paging(v3).md
- (DI)종속 항목 삽입.md
- (IoC)제어의 역전.md
- Mapper.md
- 안드로이드에서 의존성을 주입하는것의 의미.md
- Dagger 성능향상.md
- (DI)Dagger2.md
- @Module.md
- @Component.md
- @Component.Builder, @Component.Factory.md
- @Subcomponent
- @Inject.md
- @Inject_2.md
- @Scope,@Singleton,@Reusable.md
- @Binds, @BindsOptionalOf, @BindsInstance, @Multibinds.md
- Lazy<T>, Provider<T>.md
- @Named, @Qualifier.md
- SetMultiBinding(@IntoSet, @ElementsIntoSet).md
- MapMultiBinding(@IntoMap, @StringKey, @ClassKey).md
- 안드로이드와 Dagger2.md
- android.dagger.* 패키지 사용.md
- @ContributesAndroidInjector, Dagger base Class.md
- Dagger2 Hilt(작성중단).md
- ViewModel과의 상호운용.md
- Assisted Inject.md
- Assisted Inject_Workmnager.md
- @module in abstract class and interface.md
- 디자인 패턴이란?.md
- SOLID 원칙
- SRP.md
- DIP.md
- MVC, MVP, MVVM.md
- 관심사 분리(Separation of concerns).md
- Observer Pattern.md
- Singletone Pattern.md
- Factory Pattern.md
- Decorator Pattern.md
- Delegation Pattern.md
- Builder Pattern.md
- Repository pattern.md
- 객체 지향 프로그래밍 - 인프런(최범균) 강의정리
- 1. 비용과 변화
- 2. 객체
- 3. 캡슐화
- 4. 캡슐화 심화
- 5. 다형성과 추상화
- 6. 추상화 예제 (매우 중요)
- 7. 상속보단 조립
- 8. 기능의 책임 분리 (매우 중요)
- 9. 의존과 DI
- 10. 정리
- 11. DIP(의존역전원칙)
- Glide vs Picasso.md
- glide - glide.md
- glide - Generated API.md
- glide - Getting Stated(시작하기).md
- glide - Module classes and annotations.md
- glide - Options.md
- glide - Registering Components.md
- glide - example code.md
- glide - prepend example.md
- Retrofit.md - 기본
- Retrofit HTTP 전체 응답 확인하기.md
- Retrofit Gson(코드).md
- Retrofit TikXML(READ XML on Retrofit).md
- 맨 위로 가기 ⬆️
- Naming Rule
- Shape 요소.md
- ripple(물결효과).md
- selector.md
- toolbar,actionbar.md
- tools attribute(개발자가 미리 layout 확인하기).md
- 동적 레이아웃.md
- 투명도(Color).md
- ActionBar vs Toolbar.md
- 레아아웃 Id 동적생성.md
- statusbar.md
- GridLayout View 맞추기.md
- stroke 방향에 따라 다르게 값 주기.md
- Int to dp 변환.md
- RelativeLayout.md
- 애니메이션(animation).md
- CoordinatorLayout.md
- custom radiobutton.md
- Spannable(글자_마크업) - 글자색 입히기, 글자에 링크달기 등..
- 맨 위로 가기 ⬆️
- 0. RxAndroid 도입해야되는 이유.md
- 1. RxJava란.md
- 1.5 Marble Diagram.md
- 2.1 Observable 클래스.md
- 2.2 Single 클래스.md
- 2.3 Maybe 클래스.md
- 2.4 뜨거운 Observable.md
- 2.5 Subject 클래스.md
- 2.5.4 데이터 발행자와 수신자.md
- 2.6 ConnectableObservable 클래스.md
- 3 ReactiveX 연산자.md
- 3.1 map() 함수.md
- 3.2 flatMap() 함수.md
- 3.2.1 구구단 만들기.md
- 3.3 filter() 함수.md
- 3.4 reduce() 함수.md
- 3.4.1 데이터 쿼리하기.md
- 4.0 리액티브 연산자 활용.md
- 4.1 생성 연산자.md
- 4.1.1 interval() 함수.md
- 4.1.2 timer() 함수.md
- 4.1.3 range() 함수.md
- 4.1.4 intervalRange() 함수.md
- 4.1.5 defer() 함수.md
- 4.1.6 repeat() 함수.md
- 4.2.1 concatMap() 함수.md
- 4.2.2 switchMap() 함수.md
- 4.2.3. groupBy() 함수.md
- 4.2.4 scan() 함수.md
- 4.3.0 결합연산자.md
- 4.3.1 zip() 함수.md
- 4.3.2 combineLatest() 함수.md
- 4.3.3 merge() 함수.md
- 4.3.4 concat() 함수.md
- 4.4.0 조건 연산자.md
- 4.4.1 amb() 함수.md
- 4.4.2 takeUntil() 함수.md
- 4.4.3 skipUntil() 함수.md
- 4.4.4 all() 함수.md
- 4.5.0 수학 및 기타 연산자.md
- 4.5.1 RxJava2Extensions 라이브러리.md
- 4.5.2 delay() 함수.md
- 4.5.3 timeInterval() 함수.md
- 5.1.0 스케즐러(핵심포함).md
- 5.2.0 스케줄러의 종류.md
- 5.2.1 뉴 스레드 스케줄러.md
- 5.2.2 계산 스케줄러(Computation).md
- 5.2.3. IO 스케줄러.md
- 5.2.4 트램펄린 스케줄러.md
- 5.2.5 싱글 스레드 스케줄러.md
- 5.2.6 Executor 변환 스케줄러.md
- 5.3.0 스케줄러를 활용한 콜백 지옥 벗어나기.md
- 5.4.0 ObserveOn() 활용.md
- 6.1.0 RxAndroid.md
- 6.2.0 RxAndroid 기본.md
- 6.2.1 Hello world 예제.md
- 6.2.2 제어흐름.md
- 6.2.3 RxLifecycle 라이브러리.md
- 6.2.4 UI 이벤트 처리.md
- 6.2.4.2 UI 이벤트 처리(자동검색기능구헌).md
- 6.3.1 리액티브 RecyclerView.md
- 6.3.2. 안드로이드 스레드 대체하기.md
- 6.3.3 REST API 네트워크 프로그래밍.md
- 6.4.0 메모리누수.md
- ...
- Observable 중간상태값 확인.md
- 리엑티브 프로그래밍이란.md
- 액티비티 중복 실행 문제.md
- 자바에 함수형프로그래밍 도입.md
- Observable, Flowable, Single, Maybe, Completable
- Map vs FlatMap
- create, just, defer, fromCallable
- andThen(Completable).md
- 변환 (compose).md
- doOn..(상태대응).md
- 합치기 (concat(순서), merge(병합), zip(조건병합)).md
- List<T> to List<R> in Rx.md
- Reactive stream 이란?.md
- 인터페이스 모음(Consumer, Function..).md
- API Paging 하여 요청하기.md
- difference between rxjava and java 8 stream api.md
- 흐름제어(debounce, throttle..)
- distinct, distinctUntilChanged().md
- 맨 위로 가기 ⬆️
- UI Automator 기본 개요.md
- espresso 기본사항.md
- espresso 레시피(테스트설정).md
- Junit.md
- string파일 테스트.md
- Mockito.md
코드 작성 마인드 Set (펼치기/접기)
스택 쌓기 (펼치기/접기)
- Need
- develop service android application
- language
- kotlin
- java - advanced
- AAC
- mvvm
- dagger
- jetpack
- workmanager
- rxjava
- TDD
- mockito (..studying)
- popular library
- glide
- picasson (..studying)
- etc
- CI/CD
- versioning
- lint
- ktlint와 detekt
- basic
- Recursion
- Queue
- Stack
- LinkedList
- Hash Map
- String
- Graph
- intermediate
- DFS
- BFS
- DP
- 완전탐색
- advanced
- Priority Queue
- Binary search
- studying site : programmers dot com, 백준, SW Expert Academy
안드로이드 기술 트렌드 (펼치기/접기)
카카오톡(신입/경력 무관)
- Java, Kotlin
- 신입 및 경력연차 무관
- 우대사항
- 최신개발 동향에 관심이 많은 분
- 목표지향적인 사고와 실행능력이 뛰어난 분
- 메신저 앱 개발 경험
브런치(3년)
- 브런치/티스토리 Android 앱 개발 및 공통 모듈 설계를 담당합니다.
- 전체 코드가 Kotlin으로 작성되었으며, MVVM 아키텍쳐로 구현하였습니다.
- 담당하는 프로젝트는 물론이고, 담당하지 않는 프로젝트의 코드도 모두 리뷰합니다.
- 각 프로젝트의 기획 리뷰, 디자인 리뷰에 참석하여 다양한 의견을 교환합니다.
- 매 프로젝트 종료 시, 회고를 통해 개선할 점을 찾습니다.
- Clean Architecture 기반의 멀티 모듈로 설계되어있습니다.
- Google I/O 포함 개발 컨퍼런스를 참석을 장려하고 함께 챙겨봅니다.
- 주요 기술: Clean Architecture, Coroutines + Flow, Glide, JetPack, Retrofit
카카오페이(3년)
- 3년 이상의 Android 개발 경력이 있으신 분
- Java/Kotlin에 대한 이해 및 개발 경험이 있으신 분
- 다양한 UI 개발 경험과 사용자 경험에 대한 깊이 있는 이해도를 보유하신 분
- 논리적이고 체계적인 문제해결 능력이 있으신 분
- 효과적인 의사전달 및 협업 능력이 있으신 분
- 우대사항
- MVP, MVVM등 architecture 설계 및 개발 경험이 있으신 분
- 보안 및 네트워크에 대한 높은 이해도를 보유하신 분
- Unit test 경험이 있으신 분
- 핀테크 서비스에 대한 경험 및 이해도를 보유하신 분
- 신규 서비스 개발 및 운영 경험을 보유하신 분
- 오픈소스 컨트리뷰션 경험을 보유하신 분
- 능동적으로 일하며 원활한 커뮤니케이션이 가능하신 분
- RxJava, Coroutine 사용 경험이 있으신 분
- Android architecture(Room, LiveData, MVVM)의 개발 경험이 있으신 분
- 논리적 사고와 문제 분석 및 해결 능력을 보유하신 분
- 타 직군과 문제 해결책을 찾아나갈 수 있는 원활한 커뮤니케이션 능력을 보유하신 분
- Android 개발 경력을 만 2년 이상 보유하신 분
- Kotlin, JAVA 기본 개발 역량을 보유하신 분
- Android Framework에 대한 이해도가 높으신 분
- RESTful API 설계 경험
- Rx 기술을 이용한 서비스 개발 경험
- MVI / MVP / MVVM 등의 디자인 패턴 이해와 개발 적용 경험이 있으신 분
- Clean Architecture, Clean Code 구현에 깊이 고민하고 개선해 보신 분
- 3명 이상 규모의 앱 개발 프로젝트를 리드해보신 분
- Kotlin 언어 사용이 익숙하신 분
- Git으로 협업하며 Android 앱을 개발하여 구글플레이에 서비스 해 본 경험
- 객체 지향 설계와 개발에 대해 이해하고 실제 개발해 본 경험
- 신규 기능 정의 및 개발을 위해 유관 부서와의 협업 경험
- 버그 수정 및 애플리케이션 성능 향상을 위한 욕심
- 우대사항
- 오픈소스, 디자인 패턴, 리팩토링에 대한 기본 지식
- 애니메이션 및 화면 개발에 대한 관심
- Rxjava 기술 사용 경험
- AAC(Android Architecture Components) 를 통한 개발 경험
- Unit test 및 UI test 작성 경험
- 함수형 프로그래밍에 대한 관심
- Java 또는 Kotlin 개발 언어에 능숙한 분
- 상용 서비스 및 제품 개발 참여해본 경험 보유
- Reactive 프로그래밍에 대한 이해 및 RxJava 사용 경험 보유
- Android 최신 트렌드를 이용한 개발 경험 보유
- 다른 팀원의 성장에 도움을 줄 수 있는 분
- 우대사항
- 새로운 기술 습득과 지식 공유에 즐거움을 느끼시는 분
- 코드 개선 및 코드 리뷰에 적극 참여하시는 분
- 클린 아키텍처에 대한 이해 및 프로젝트 적용 경험이 있으신 분
- MVP, MVVM, MVC 등의 디자인 패턴 적용에 대한 경험이 있으신 분
- 유닛 테스트 및 UI 테스트 작성 경험이 있으신 분
- 앱 최적화 및 Localization 경험이 있으신 분
- 개발환경
- 사용 언어: Java / Kotlin
- 주요 라이브러리: RxJava2, Retrofit2, OkHttp3, Glide, Room
- 업무 도구: Gitlab, Jira, Confluence, Zeplin 사용
- Gitlab에서 MR방식으로 온라인 코드 리뷰 진행
- Jenkins와 Firebase App Distribution을 이용한 빌드, 배포, 테스트 자동화
- 클린아키텍처 구조에 프리젠테이션 레이어는 MVP 패턴으로 구성
AD TECH
- Computer Science/Engineering 또는 관련 분야의 BA/BS 학위
- 안드로이드 개발 및 설계 경력 3년 이상
- Java, Gradle, Maven, JSON, 원격 데이터 및 리유저블 컴포넌트 설계에 능숙
- 모바일 개발 라이프 사이클 전체에 대한 탄탄한 이해
- 현재 모바일 환경, 트렌드, 아키텍처, 신규 기술에 대한 실용적 지식 보유
- 사용성, Lean UX 디자인, 개념적 모델링 및 현재 트렌드에 대한 뛰어난 지식
- 유닛/유저 테스팅, 반복적/인터랙션 디자인 경험
- 우대 사항
- 광고 그리고/또는 이커머스 도메인 경험
- 웹 기반 프로덕트 및 API 개발에 대한 탄탄한 이해
- Kotlin, RxAndroid, Glide, Mockito 경험
- 애자일 소프트웨어 개발
- SQL, NoSQL, Kafka, Redis, Hive, Hadoop, Spark
- RESTful API, GraphQL
- 마이크로서비스 아키텍처
- 아마존 웹 서비스, 분산 시스템, 서비스/메시지 지향 아키텍처
- 안드로이드 플랫폼에 대한 이해도를 가지신 분
- 코틀린으로 작성된 코드를 이해하고 작성이 가능하신 분
- 우대사항
- 안드로이드 플랫폼 및 개발 전반에 대한 높은 이해와 다양한 경험이 있으신 분
- 앱을 개발하면서 발생할 수 있는 다양한 기술적 문제들을 경험해봤고, 스스로 해결해 보신 분
- AAC, Jetpack, DataBinding, RxJava, Dagger2, 반응형 프로그래밍, 디자인 패턴, 테스트 등에 대한 이해가 높고 능숙하게 다룰 수 있는 분
- 코드 리팩토링에 대한 경험과 이해가 높으신 분
- 개인 앱을 직접 개발, 배포, 운영한 경험을 갖고 계신 분
- 자기 주도적이고, 스스로 성장 해본 경험을 갖고 계신 분
- 서버, 기획, 디자인 직군과 원활하게 소통하고 적극적으로 협업하실 수 있는 분
- 모바일 서비스 UX, 기획, 디자인 등에 관심이 많으신 분
- 당근마켓과 같은 지역 서비스에 관심이 많으신 분
- MAU 100만 이상의 서비스를 만들어보신 분
- 오픈소스 Contribution 경험이 있으신 분
토스코어
- 상용 서비스 개발 경험이 있는 분을 찾습니다.
- Kotlin 개발 경험이 있는 분을 찾습니다.
- 안드로이드의 UI/UX 가이드라인에 대한 이해도가 높은 분을 찾습니다.
- 최고의 서비스를 지향하며 적극적으로 동료들과 커뮤니케이션 할 수 있는 분을 찾습니다.
- 목표 지향적인 사고와 실행 능력이 뛰어난 분을 찾습니다.
- 제품의 품질과 안정성에 높은 책임감을 가지고 주도적이고 지속적으로 개선하는 분을 찾습니다.
- 우대사항
- RxJava, RxAndroid 개발 경험이 있는 분이면 좋습니다.
- 네트워크/앱 보안에 대한 이해도가 높은 분이면 좋습니다.
- Agile/Scrum 기반의 개발 경험 있는 분이면 좋습니다.
- 안드로이드 최신 개발 동향에 관심이 많은 분이면 좋습니다.
- 안드로이드와 모바일 전반에 대한 풍부한 이해를 바탕으로 최적화된 인터페이스 설계를 지향하는 분이면 좋습니다.