일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 커스텀상태
- 글또
- 안드로이드스튜디오
- ReactiveProgramming
- 안드로이드
- 자바
- 테스트
- g 단위테스트
- 알고리즘
- 병럴프로그래밍
- theming
- 병렬프로그래밍
- 안드로이드강좌
- 디자인패턴
- mockito
- Kotlin
- kotlin강좌
- Coroutine
- k8s
- 회고
- viewmodel
- 코틀린
- 코루틴
- Compose
- 책
- Rxjava
- 알게되는
- android
- Gradle
- 스레드
- Today
- Total
목록분류 전체보기 (154)
선생님, 개발을 잘하고 싶어요.
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/c54gSI/btqZegwge5K/pUXTqAXpmXd3sPuOyXMbFk/img.png)
물리 서버 실제로 물리적 컴퓨터를 관리함. 하드웨어를 관리하는 비용이 듦. 컴퓨팅 리소스가 낭비되는 경향이 있음 소프트웨어 충돌, 네트워크 라우팅, 사용자 접근이 복잡 가상화 하드웨어를 소프트웨어로 에뮬레이션 하는 것. 닳아 없어지지 않는다. 여전히 하드웨어가 필요하다. (그 하드웨어에 설치한 소프트웨어로 가상화를 하는 것이다.) 따라서 물리 서버의 관리와 VM의 운영 로드가 추가된다. IaaS Public Cloud가 나오면서 문제가 해결되나? IaaS는 간단히 말해서, 가상 머신 사용자에게 물리 서버를 숨긴다. Infrastructure의 구성 요소가 하드웨어에서 소프트웨어로 넘어갔다. Infra의 구현 형태만 변경된 것이므로 여전히 운영체제, 앱 모니터링, 지원 도구 관리가 필요하다. PaaS Pa..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/b3CODB/btqVcsVVSpp/dIrWF0pP2oDjpZCandW021/img.png)
대상 2개 이상의 라이브 데이터를 조합해서 사용하고 싶은 사람. MediatorLiveData가 별로라고 생각하는 사람. 문제 2개 이상의 라이브 데이터를 조합하여 새로운 라이브 데이터를 만들고 싶다고 해보죠. 예를 들면, 로그인 화면에서 이메일과 비밀번호가 작성되었을 때만 로그인의 enable 설정이 되었으면 이 화면에서 2개의 live data를 쉽게 설계할 수 있겠죠. val email: MutableLiveData = MutableLiveData() val password: MutableLiveData = MutableLiveData() 해결 해결할 때 Flow를 사용해 봅시다. val enableLogin = combine(email.asFlow(), password.asFlow()) { ema..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/nQbuM/btqU4ZyJS8A/d5iXAcxOKSjNonhV0LSGu1/img.png)
무엇을 원하는가? 완전 커스텀한 뷰의 Dialog 전면을 다 차지하는 Dialog 단계별로 따라 하기 1. AlertDialog 사용하기 Dialog를 띄우는 가장 쉬운 방법은 AlertDialog.Builder가 제공하는 기능만 사용하는 것입니다. setTitle, setMessage, setPositiveButton을 조합하면 위의 Dialog와 일치하는 정보를 제공할 수 있습니다. 개발 기간이 너무 촉박하다면 이 코드를 사용해보세요. AlertDialog.Builder(context) .setTitle("로그인 해볼까요?") .setMessage("로그인 후 사용할 수 있는 기능입니다.") .setPositiveButton("로그인 하기", null) .setNegativeButton("x") { ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/YtLJ0/btqRTRkeh52/RaztVzKkKNNkbGmdFBXOP1/img.jpg)
안드로이드 백그라운드 가이드 https://developer.android.com/guide/background 백그라운드 작업 분류 즉시 (Immediate) 사용자와 상호작용 해야 하는가? 지연 (Deferred) 사용자와 상호작용 하지 않아도 되는가? 정확한 시간에 작동하지 않아도 되는가? 정시 (Exact) 사용자와 상호작용 하지 않아도 되는가? 정확한 시간에 작동해야 하는가? 백그라운드 작업 분류에 따른 해결 즉시 (Immediate) 앱의 스코프 내부에서만 유요한: 코틀린 코루틴, RxJava 앱 외부 스코프에서도 유요한: WorkManager(with long running support) 미디어나 스마트키 위젯에 유요한: Foreground Service 지연 (Deferred) WorkM..