| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 | 29 | 30 | 31 |
- android clean architecture
- 안드로이드 앱 아키텍처 가이드라인 사용법
- 안드로이드 mvvm예제
- Android MVVM
- sharedFlow
- 코루틴
- RxJava
- 안드로이드 JUnit
- 스타트업 코딩테스트
- 안드로이드 mvvm
- 안드로이드 테스트코드
- android memory leak
- Android App Architecture Guideline
- 안드로이드 앱 아키텍처 가이드라인 설명
- 안드로이드 의존성주입
- 안드로이드 앱 아키텍처 가이드라인 예시
- 안드로이드 Espresso
- 안드로이드 클린 아키텍처
- coroutine
- 안드로이드 리싸이클러뷰
- 안드로이드 아키텍처 컴포넌트
- Koin
- 안드로이드 hilt
- 안드로이드 Mockito
- Hilt
- 안드로이드 앱 아키텍처 가이드라인
- MVVM
- 리싸이클러뷰 최적화
- 안드로이드 최적화
- android DI
- Today
- Total
목록전체 글 (42)
안드로이드 연구소
안녕하세요. 안드로이드 연구원입니다. 이제 장마가 끝나고 다시 무더운 땡볕이 다가오기만 기다리고 있는 여름입니다. 최근 두달간 써오던 안드로이드 기술블로그를 쭉 포스팅을 한달 정도 멈추게 되었습니다. 여름이여서 휴가를 간 것도 아니고 블로그가 이제 쓰기 싫어서 도망친 것 도 아니고 그동안 처음으로 코딩 테스트라는 것을 공부하였습니다. (참고로 저는 코딩테스트 혐오주의자였습니다.) 1. 취업을 해도 달라지지 않는 현실 저는 사실 첫 회사에서 알고리즘 코딩 테스트는 따로 보지 않았고 대기업은 나와 먼 일이라 생각을 해서 준비를 한 적이 없었습니다. 저는 컴공을 나와서 필수 과목인 "자료구조"와 "알고리즘" 수업을 들었는데 다 소화시키지도 못한 채 6-7년의 시간만 흘러 제 기억 속에서는 찾을 수 가 없게 되..
Q1. Domain레이어에 대해 설명해줘 Domain레이어는 UI 계층과 데이터 계층 사이에 있는 계층입니다. 복잡한 비즈니스 로직 또는 여러 ViewModel에서 재사용되는 단순한 비즈니스 로직을 캡슐화하는 역할을 합니다. 복잡성을 처리하거나 재사용성을 선호하는 경우와 같이 필요한 경우에만 사용해야 합니다. 일반적으로 Data레이어에서 재사용성 또는 캐싱을 장려하는 것은 복잡한 프로세스 발생합니다. Domain레이어의 목적은 Data레이어에서 사용한 데이터를 재사용하기 위해서인데요 Data레이어에서도 캐싱 기술을 이용해서 재사용을 할 수 있지만 새로운 기술 학습과 복잡한 프로세스로 사용하기가 많이 어려웠습니다. 그래서 Data레이어에서보다 쉽게 Domain레이어에서 데이터를 재사용할 수 있게하고 있는..
Q1. UI 레이어에 대해 설명해줘 https://developer.android.com/jetpack/guide/ui-layer?hl=ko#case-study UI레이어는 데이터 레이어에서 가져온 애플리케이션 상태를 시각적으로 나타냅니다. 위에서 설명한 Data레이어의 레파지토리와 이곳에서 연결이되어서 UI로 나타나는 것 같습니다. Q1-1. UI레이어는 어떻게 구성되어있니? UI레이어로는 UI state와 UI element 두 구성요소가 있습니다. UI element는 위젯이라고도하며 애플리케이션의 사용자가 화면에서 보고 상호 작용할 수 있는 요소입니다. TextView, EditText, Buttons은 UI element에 해당됩니다. UI state는 UI element가 화면에 표시되고 작동..
Q1. Data 레이어에 대해 설명해줘 https://developer.android.com/topic/architecture/data-layer Data 레이어에서는 비즈니스 로직이 포함되어 있습니다. 비즈니스 로직은 앱이 데이터를 생성, 저장 및 변경하는 방법을 결정하는 규칙으로 구성됩니다. 비즈니스 로직을 사용한다고 얘기하니 클린 아키텍처에서 Entity에 해당하는 녀석인가봅니다. 데이터 레이어는 비즈니스 로직(애플리케이션의 데이터와 데이터를 다루는 메소드들) 관리하는 역할을 하고 있네요. Q1-1. Data 레이어는 어떻게 구성이 되어 있어? Data레이어는 레파지토리와 데이터소스로 구성이 되어 있습니다. Q1-2. 데이터소스와 레포지토리는 각 각 어떤 역할을 하니? 데이터 소스는 실제 데이터를 ..
처음 블로그를 준비했을 때 핵심으로 준비했던 챕터는 3개였습니다. - 메모리누수제거, 다양한 오류 검사, Recyclerview최적화 - Android Architecture Component + MVVM - DI와 테스트코드 위의 공부들이 끝내고 다음 연구 내용을 찾기 위해 많은 채용사이트에서 자격요건과 우대사항의 내용들을 많이 확인하고 있었습니다. 그러던 중 가장 눈에 많이 띄는 내용이 보였는데 그것은 바로 첫번째 클린 아키텍처(Clean Architecture)에 대한 이해 및 프로젝트 적용 경험 보유하신 분 두번째 Android App Architecture Guideline을 잘 이해하고 있으신 분 클린 아키텍처? 앱 아키텍처 가이드라인? 둘 다 찾아보니 매우 밀접한 연관이 있는 것으로 보였습니..
지난 예제에서 Flow라이브러리에 대해서 알아보았습니다. Flow는 데이터 스트림속에서 변경 사항을 감지한 후 다양한 연산자(map, filter, take)와 같은 연산자들을 이용하여 원하는 조건에 맞게 데이터를 가져오기 위해 사용하였습니다. 이를 반응형 프로그래밍(Reactive Programming)이라고 합니다. Flow(코루틴)가 등장하기 이전에는 RxJava라는 것을 이용하여 반응형 프로그래밍 작업을 하였다고 합니다. 그렇다면 RxJava에 대해서 한번 자세히 알아보도록 하겠습니다. Q1. ChatGPT, RxJava는 언제 만들어졌는가? 2012년에 Microsoft에서 ReactiveX 프로젝트가 시작했습니다. 그리고 RxJava는 2013년 Netflix에서 ReactiveX(Reacti..
요즘 채용 시장에서 "Flow 라이브러리에 익숙하신 분"이라고 우대사항에 적어놓은 기업들을 많이 보았습니다. Flow에 대해서 한번 알아보겠습니다. Q1. ChatGPT, Flow에 대해 설명해줘 안드로이드에서 "Flow"는 코루틴 프레임워크의 일부인 "Kotlin Flow"라는 라이브러리를 나타냅니다. 반응형 프로그래밍 스타일에서 데이터(이벤트) 스트림을 비동기식으로 처리하는 효율적이고 사용하기 쉬운 방법을 제공하도록 설계되었습니다. 시간이 지남에 따라 비동기적으로 내보낼 수 있는 값의 스트림을 나타낼 수 있습니다. Flow를 사용하면 데이터 스트림을 생성 및 사용하고, 변경 사항에 대응하고, 체계적이고 간결한 방식으로 backpressure을 처리할 수 있습니다. Q2. 데이터 스트림이란 데이터 스트..
지난 포스트에서 안드로이드 테스트코드에 대한 종류를 확인하고 그 중 하나인 Unit테스트에 대해 알아보았습니다. 그러면 오늘은 이어서 또다른 대표 안드로이드 테스트코드인 Instrumentation Tests(계측 테스트, 안드로이드 테스트)에 대해서 알아보겠습니다. Q1. Instrumentation Tests(계측 테스트, 안드로이드 테스트)에 대해 설명해줘 안드로이드 애플리케이션의 동작과 통합을 중점을 둔 특정 유형의 테스트를 나타냅니다. 안드로이드 애플리케이션은 다양한 구성 요소(사용자 인터페이스, 비즈니스 로직, 백엔드 서비스)가 있는 복잡한 시스템입니다. 계측 테스트는 이러한 구성 요소의 동작 및 통합을 확인하는 데 중요한 역할을 합니다. 또 안드로이드는 화면 크기, 하드웨어 구성 및 운영 체..
저번 강의에서 안드로이드 테스트코드의 종류들을 살펴보았습니다. 그 중 첫번째 핵심 테스트인 Unit테스트를 시작해보겠습니다. Q1. 안드로이드에서 사용한 Unit테스트에 대해서 설명해줘. 안드로이드 단위테스트는 함수나 컴포넌트가 격리된 상태(isolation)에서 올바르게 작동하는지 테스트하는 방식을 의미합니다. 이러한 테스트는 일반적으로 JVM(Java Virtual Machine)을 사용하여 작성 및 실행하여 물리적 장치나 에뮬레이터에 배포하지 않고도 테스트를 실행할 수 있습니다. 안드로이드의 단위 테스트는 일반적으로 JUnit 또는 Mockito와 같은 테스트 프레임워크를 사용하여 작성됩니다. 이전 게시물에서 Instrumentation테스트(즉, 안드로이드 테스트)는 디바이스나 에뮬레이터에서 테..
지난 포스트에서 DI 의존성 주입 라이브러리에 대해서 살펴보았습니다. 그리고 오늘부터 챕터3의 핵심이 될 안드로이드 테스트코드에 대해서 배워볼 예정입니다. 많은 안드로이드 개발자 채용 공고 시장에서 DI와 더불어 테스트코드를 사용할 수 있는 인재를 원하는 것을 종종 확인할 수 있습니다. 그 채용 공고는 3, 4, 5년차 개발자 채용을 대상으로 하는걸 보아서 러닝커브가 다소 높은 편이고 구현해낼 수 있는 초급 개발자는 많다는 것을 추론할 수 있겠지요? 그렇다면 테스트코드를 사용할 줄 안다면 3년차 이상의 중급 개발자로 들어가는 신호탄이라고 저는 조심스럽게 생각합니다. 그렇다면 테스트코드가 무엇인지 한번 알아볼까요? Q1. chatGPT, 테스트 코드가 뭐야? 테스트 코드는 소프트웨어 응용 프로그램 또는 시..