일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- rxjava disposable
- 서비스 vs 쓰레드
- 서비스 쓰레드 차이
- 2022 플러터 안드로이드 스튜디오
- 안드로이드 os 구조
- jvm이란
- 자바 다형성
- 안드로이드 유닛 테스트 예시
- 멤버변수
- 안드로이드 레트로핏 crud
- 2022 플러터 설치
- 안드로이드 유닛 테스트
- android retrofit login
- 클래스
- Rxjava Observable
- 안드로이드 유닛테스트란
- ar vr 차이
- ANR이란
- 스택 자바 코드
- 안드로이드 라이선스
- 큐 자바 코드
- rxjava hot observable
- 객체
- jvm 작동 원리
- 안드로이드 레트로핏 사용법
- 스택 큐 차이
- android ar 개발
- rxjava cold observable
- 플러터 설치 2022
- 안드로이드 라이선스 종류
- Today
- Total
목록개인 공부/디자인 패턴 (10)
나만을 위한 블로그
안드로이드 디벨로퍼 공식문서 중 앱 아키텍처 가이드라는 페이지를 보면 아래와 같은 그림을 제시하고 있다. https://developer.android.com/jetpack/guide?hl=ko 앱 아키텍처 가이드 | Android 개발자 | Android Developers 앱 아키텍처 가이드 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 이 가이드에는 고품질의 강력한 앱을 빌드하기 위한 권장사항 및 권장 아키텍처가 포함 developer.android.com 기본 뼈대는 MVVM이지만 뷰모델과 Model, Remote Data Source 사이에 Repository(저장소)라는 레이어(이하 계층)가 존재한다. MVVM이라면 View, ViewModel, Model 3가..
예전에 포스팅했던 ContextWrapper는 프록시 패턴을 사용해서 구현돼 있다. ContextImpl은 ContextWrapper에 의해서 래핑된 상태고 내가 Context 기능을 호출해야 할 땐 ContextImpl을 직접 건드리지 않고 ContextWrapper의 함수를 호출하는 것으로 Context의 기능을 호출할 수 있다. 프록시 패턴을 몰라서 ContextWrapper가 어떻게 작동하는 건지 정확히 이해하지 못했는데 이 포스팅에서 정리하면서 이해하려고 한다. 위키백과에서 말하는 프록시 패턴은 아래와 같다. https://en.wikipedia.org/wiki/Proxy_pattern Proxy pattern - Wikipedia From Wikipedia, the free encycloped..
composite의 사전적 정의는 아래와 같다. 합성의, 합성물, 종합적 그래서 이름만 놓고 보면 어떤 것들이 합쳐지는 디자인 패턴이라고 생각된다. 그러나 위키백과에선 사전적 정의와는 다르게 설명한다. https://ko.wikipedia.org/wiki/%EC%BB%B4%ED%8F%AC%EC%A7%80%ED%8A%B8_%ED%8C%A8%ED%84%B4 컴포지트 패턴 - 위키백과, 우리 모두의 백과사전 ko.wikipedia.org 컴포지트 패턴이란 객체들의 관계를 트리 구조로 구성해 부분-전체 계층을 표현하는 패턴으로 사용자가 단일 객체와 복합 객체 모두 동일하게 다루도록 한다 https://en.wikipedia.org/wiki/Composite_pattern Composite pattern - Wi..
데코레이터의 원형인 Decorate는 아래와 같은 뜻을 갖고 있다. 장식하다, 꾸미다 즉 '어떤 장면, 부분 따위를 인상 깊고 의미하게 만들다'라는 의미를 가진 단어다. 원래의 것에 어떤 걸 추가하는 뉘앙스의 단어이니 데코레이터 패턴도 이 의미를 바탕으로 이름이 붙여진 것 아닐까?위키백과에선 아래와 같이 설명한다. https://ko.wikipedia.org/wiki/%EB%8D%B0%EC%BD%94%EB%A0%88%EC%9D%B4%ED%84%B0_%ED%8C%A8%ED%84%B4 데코레이터 패턴 - 위키백과, 우리 모두의 백과사전 ko.wikipedia.org데코레이터 패턴이란 주어진 상황, 용도에 따라 어떤 객체에 책임을 덧붙이는 패턴으로 기능 확장이 필요할 때 서브클래싱 대신 쓸 수 있는 유연한 대..
안드로이드 앱 개발을 하다보면 AlertDialog라는 알림창을 못해도 한 번은 쓰게 된다. 이 때 AlertDialog 안에서 보여줄 제목, 메시지, 각 버튼들을 설정할 때 아래처럼 메서드 체이닝 형태로 쓸 수 있다. 그리고 메서드 체이닝을 하기 전에 컨텍스트를 생성자로 넘겨 AlertDialog.Builder 객체를 만들어야 한다. 이 Builder란 키워드가 붙은 이유는 AlertDialog가 빌더 패턴으로 만들어졌기 때문이다. 빌더의 사전적 정의는 아래와 같다. 건축업자, 건축 회사, ~을 만드는(개발하는) 사람(것) 이 빌더 패턴에 대해 위키백과는 아래와 같이 말한다. https://ko.wikipedia.org/wiki/%EB%B9%8C%EB%8D%94_%ED%8C%A8%ED%84%B4 빌더 ..
뷰모델을 공부하면서 ViewModelProvider.Factory라는 인터페이스를 만들어 사용하는 예제를 같이 포스팅했었는데, 이 방식이 팩토리 패턴이라는 생소한 방식을 활용한 것이라 해서 팩토리 패턴에 대해 공부해봤다. 위키백과에서 말하는 팩토리 패턴의 '팩토리'는 아래와 같다. https://en.wikipedia.org/wiki/Factory_(object-oriented_programming) Factory (object-oriented programming) - Wikipedia In object-oriented programming (OOP), a factory is an object for creating other objects – formally a factory is a function..
MVVM으로 코드를 리팩토링하던 중 LiveData와 MutableLiveData라는 이름이 비슷한 두 클래스를 알게 됐다. 앞에 Mutable이 붙었을 뿐이고 사용법도 비슷하지만 둘의 차이를 알고 넘어가고 싶어서 이 포스팅을 쓰게 됐다. 먼저 Mutable의 사전적 정의는 아래와 같다. mutable : 변할 수 있는, 잘 변하는 스타크래프트 게임에는 저그라는 종족이 있는데, 이 종족으로 플레이할 시 뽑을 수 있는 공중 유닛 중에서 뮤탈리스크(Mutalisk)라는 유닛이 있다. 또한 좀비 게임이나 괴생명체가 등장하는 게임에서 간혹 뮤턴트(Mutant)라는 이름이 붙은 몬스터를 본 기억이 있다. 여기서 "mut"라는 단어는 라틴어 Mutate가 어원인데, to change(~을 바꾸다, 변화시키다, 변경..
냅뒀던 MVVM 패턴 공부를 다시 하려고 예제를 찾아서 분석하던 도중 MutableLiveData를 발견했다. 이게 아니라도 LiveData라는 키워드를 써서 LiveData 형태로 사용하는 예제 코드가 정말 많았다. 이게 뭔지 알면 MVVM 패턴에 한 걸음 다가가는 데 도움이 될 것이라고 생각해서 찾아봤더니 LiveData는 관찰자 패턴이란 걸 사용한다고 한다. 그래서 관찰자 패턴에 대해 정리하고자 한다. 관찰자(Observer) 패턴이란 뭘까? 관찰자라는 건 뭔가를 항상 살펴보고 있는 사람이라는 단어다. 그럼 뭘 관찰하고 있는 건가? 의미없는 걸 지켜보고 있지는 않을 것이다. 위키백과에선 아래와 같이 말하고 있다. 관찰자 패턴은 객체의 상태 변화를 관찰하는 관찰자들, 즉 옵저버들의 목록을 객체에 등록..
먼저 MVC는 Model, View, Controller의 약자다. 이 3가지는 프로젝트의 구성요소를 기준으로 모였다. 그 전에 저 3가지는 각각 뭐하는 놈들일까? 일단 사전에선 뭐라고 말하는지 확인해보자. Model : (보통 실물보다 작게 만든) 모형, (상품의) 모델(디자인) View : (개인적인) 견해, 의견, 생각, 태도 / 관점 / ~라고 여기다, 보다, 생각하다 Control : 지배(권), 통제(제어), 지배하다 -> Controller : 관리자, (기계의) 조종 장치, 회계 담당자 모형 : 모양이 같은 물건을 만들기 위한 틀, 실물을 모방해 만든 물건 모델은 어떤 걸 만들기 위한 틀이란 의미같고 뷰는 어떤 걸 보는 역할, 컨트롤러는 어떤 것을 조종하는 장치라고 이해했다. 많이 들어봐서..
파카드 패턴이라고 읽을 것 같은데 퍼사드라고 읽는다 이번 포스팅에선 디자인 패턴 중 퍼사드 패턴에 대해서 포스팅해보려고 한다. 그 전에 퍼사드는 무슨 뜻이 있는지 먼저 확인해보자. Facade : (건물의) 정면, 앞면 / (실제와 다른) 표면, 허울 정면이거나 진짜가 아닌 다른 것? 정도의 뜻이 있는 듯하다. 다음은 영문 위키백과의 내용이다. (중략) 건축의 파사드와 유사하게 파사드는 더 복잡한 기본 또는 구조 코드를 마스킹하는 전면 인터페이스 역할을 하는 객체다. 퍼사드는 아래의 내용들을 수행할 수 있다. - 단일(또는 단순화된) API 뒤에 있는 더 복잡한 구성요소와의 상호작용을 마스킹해서, 소프트웨어 라이브러리의 가독성과 유용성을 개선 - 일반적인 기능에 대한 컨텍스트 별 인터페이스 제공 - 느슨..