728x90
반응형

Android 공부 59

[Android] DI ??

1. DI ( 그게 뭔데..왜 날 괴롭히는거야 ) - Dependency Injection ( 의존관계 주입 ) “A가 B를 의존한다.”는 표현은 => B의 기능이 추가 또는 변경되거나 형식이 바뀌면, 그 영향이 A에 미친다. 1) 의존관계??? 그건 뭔데 예시) 햄버거 가게 요리사는 햄버거 레시피에 의존한다. 햄버거 레시피가 변화하게 되었을 때, 변화된 레시피에 따라서 요리사는 햄버거 만드는 방법을 수정해야 한다. 레시피의 변화가 요리사의 행위에 영향을 미쳤기 때문에, “요리사는 레시피에 의존한다”고 말할 수 있다. 코드로 표현해보면 다음과 같다. class BurgerChef { private HamBurgerRecipe hamBurgerRecipe; public BurgerChef() { hamBu..

단위테스트? : (JUnit, Mock ) 01

1. 수동 테스트 vs 자동 테스트 수동 테스트의 장점 - 최종 사용자와 완전히 똑같은 동작을 확인할 수 있음. - 사용성, 쾌적함 등 정성적인 부분의 면에서 평가가 가능. 자동 테스트의 장점 - 반복실행 가능 - 테스트 실행 상황을 시각화 - 클래스와 메서드등 확인하기 어려운 단위동작을 확인 2. 프레임 웍 1) 단위 테스트 - JUnit - Mockito ( 목 라이프러리 ) 2) UI 테스트 - Espresso * 단위테스트를 공부할 수 있는 링크 https://www.javatpoint.com/junit-tutorial JUnit Tutorial | Testing Framework for java - javatpoint Junit tutorial for beginners and profession..

어플리케이션 설계 원칙 ( SOLID / 클린 아키 텍쳐 )

SOLID 2000년대 초반 로버트C. 마틴이 객체 지향프로그래밍 및 설계에 대한 SOLID 라는 5가지 원칙을 소개함 1. 단일 책임 원칙 ( Single Responsibility Principle ) - 단일 책임은 어떤 클래스나 모듈 또는 메서드가 단 하나의 기능을 가져야 한다는 뜻. => 어떤 변경 사항이 발생하더라도 그 변경 사항에 대한 책임이 있는 부분만 수정하면 된다. ex ( 분석 + 서버전송 ) => (분석) ( 서버전송 ) 2. 개방 - 폐쇄 원칙 ( Open Closed Principle ) - 시스템의 구조를 올바르게 구성하여, 변경사항이 발생하더라도 다른코드나, 모듈에 영향이 없도록 해야한다. => 확장성을 높이고, 수정에는 폐쇄적이어야 한다. 3. 리스코프 치환 원칙 ( Lis..

(스크랩) 코루틴 이란?

2020-04-26 in Studynote 비동기 처리를 하는 데에는 몇 가지 방법이 있다. Rx는 다양한 기능을 제공하지만 진입 장벽이 높아 학습에 오랜 시간이 걸린다. 또 오랜 기간 사용되었던 AsyncTask는 지금은 Deprecated 된데다가 구리다.(내가 본 영상에서는 AsyncTask는 sucks 혹은 shit 로 표현되었다.) 코루틴을 이용하면 비동기스럽지 않게 생긴 코드로, 메모리를 효율적으로 사용하면서 손쉽게 비동기 처리를 할 수 있다. 그래서 간단히 알아보았다. 코루틴, Coroutine? Coroutine은 안드로에드에서 백그라운드 스레드에서 코드를 처리할 때 사용하는 하나의 방법이다. 코틀린 언어의 하위 개념인 줄 알았는데, C# 이나 Python, Go 등 다양한 언어에서 이미 ..

(펌) 안드로이드 개발자 로드맵

안드로이드 개발자로서 잘하는 개발자가 되기 위해선 무엇이 필요할까? 체워도 체워도 언제나 고민이다. 우연히 찾게된 안드로이드 개발자 로드맵 PPT이다. 네이버 테크 콘서트에서 발표한 내용을 담은 PPT였다. 더 검색해보니 영상도 찾을 수 있었다. 영상을 보면서 나오는 내용들 대부분은 접하거나 공부한 내용이다. 하지만 부족한 부분도 있고 공부했다 해도 완벽하게 설명할 수 있는가 하면 아니다. 안드로이드 개발자로서 튼튼한 기본기를 가지고 이를 바탕으로 더 많은 것을 할 수 있는 개발자가 되기를 바란다. 발표한 내용을 바탕으로 포스팅을 정리해보려 한다. PPT https://www.slideshare.net/NaverEngineering/techcon-2019-mobile-android3 [TECHCON 20..

Android 공부 2020.12.19

Android Architecture Components (1) 소개

왜 AAC를 만들었니? 안드로이드는 Activity, BroadcastReceiver, Service, ContentProvider 등 여러 컴포넌트들이 있고, 생명주기가 다르게 얽혀있습니다. 앱을 잘 만들기 위해서는 이러한 컴포넌트들을 부드럽게 연결해야 하는데, 생명주기를 학습하고 엉키지 않도록 고민하는 것은 결국 개발자의 몫이였습니다. 구글은 이 고민을 줄이기 위해 SDK에서 제공하는 컴포넌트들에 대해 개발자들에게 더 가이드를 주기를 원했습니다. 그래서 Android Architecture Components(AAC)를 만들었습니다. AAC는 Google I/O 2017에 발표한 4가지와 추후에 추가된 1개까지 총 5개의 라이브러리로 구성되어 있습니다. Lifecycles (Easy handling ..

Android 공부 2020.08.01

1) MVVM 패턴

MVVM 패턴? 위에서 언급한 대로, 액티비티에 기능을 붙이다보면 액티비티가 무거워지거나 혹은 종속성이 너무 강해 테스트가 힘들고 유지보수가 어려워진다. 이런 고민 때문에 MVVM 패턴이 등장했다. MVVM은 View - ViewModel - Model을 이용해 각각의 역할을 분리하여 가독성과 재사용성을 높인 디자인 패턴이다. MVC와 MVVM 차이점 기존 MVC(Model - View - Controller) 구조에서는 액티비티가 컨트롤러의 역할을 했으며, 뷰와 연결되어 유저와 상호작용도 하고, 모델과 연결되어 데이터도 처리했다. 즉 뷰와 모델 사이에서 중재자 역할을 했다. MVVM에서는 뷰에서 뷰모델로, 뷰모델에서 모델로 작업을 처리하며, 뷰에서 모델을 직접 참조하지 않는다. 대신 뷰에서 뷰모델을 관..

MVP 패턴 정리1

Model View Presenter 패턴은 MVC(Model View Controller) 패턴을 기반으로 하는 아키텍처 패턴으로 관심사의 분리를 높이고 단위 테스트를 용이하게 합니다. MVC 패턴에서 View와 Model의 의존성을 없애고 단위 테스트가 어려웠던 문제점을 해결하기 위해 등장하게된 패턴이라고 할 수 있다. 1. Contract interface 생성 Presenter와 View 사이에 어떤 기능이 있는지 한눈에 파악할 수 있도록 명시하는 역할. ( Contract는 MVP의 필수요소는 아닙니다. ) interface MainContract { interface View : BaseView { fun showProgress(isShow: Boolean) fun setData(str: St..

MVP 패턴 예시1

Contract ( view와 presenter가 구현해야할 인터페이스를 정의 ) public interface main_view_contract { /* MVP의 View가 구현할 인터페이스 프레젠터가 View를 조작 할때 사용 */ interface View{ void showToast(String message); void setText_userName(String name); void setText_userAge(int age); } /* MVP의 Presenter가 구현할 인터페이스 View를 클릭 했을대 등 View가 Presenter에 알릴때 사용 */ interface userActoin{ void setUserName(String name); void getUserName(); void ..

728x90
반응형