일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 데이터베이스
- 리액트
- 안드로이드 디자인 패턴
- 앱
- MVVM
- 디자인패턴
- 개발
- 스레드
- 안드로이드
- Kotlin
- reactnative
- Operating System
- CS지식
- 운영체제
- 프로세스
- Android
- 앱개발
- Database
- 액티비티
- 리액트네이티브
- github
- 앱 개발
- 코틀린
- React
- cs
- 안드로이드 개발
- 디자인 패턴
- 메모리
- OS
- db
- Today
- Total
목록디자인 패턴 (4)
Tech Log
1. Observer Pattern이란? 주체가 어떤 객체(subject)의 상태 변화를 관찰하다가, 상태 변화가 있을 때마다 메소드 등을 통해 옵저버들에게 변화를 알려주는 디자인 패턴. 주체는 객체의 상태 변화를 보고 있는 관찰자를 말한다. 옵저버들은 객체의 상태 변화에 따라 전달되는 메소드, 이벤트 등을 기반으로 추가 변화 사항이 생기는 객체들이다. 위와 같이 주체와 객체를 분리하지 않고 상태가 변경되는 객체만을 기반으로 옵저버 패턴을 적용하기도 한다. 옵저버 패턴의 원리가 적용된 서비스 중에는 트위터가 있다. 팔로워들은 주체가 새로운 트윗을 올리면 알림을 받게 된다. 2. 예시 kotlin으로 작성한 옵저버 패턴 예시는 다음과 같다. interface Observer { fun update() } ..
프로젝트를 하면서 Repository Pattern을 사용해보았고, 데이터 레이어를 분리하였을 때 다른 이점이 더 있을까 궁금하여 조사해보았다. 해당 글은 안드로이드 플랫폼을 기준으로 기술하였습니다. 1. Repository Pattern이란? 데이터 레이어를 분리하는 디자인 패턴이다. 데이터 레이어에는 네트워킹 코드, Room 데이터베이스와 같이 데이터와 관련된 코드들이 들어간다. UI 부분과는 분리되어 데이터와 비즈니스 로직이 들어간다. 안드로이드는 위 그림과 같이 Repository 패턴을 적용하고 있다. Remote Data Source와 Local Data Source를 추상화하여 중앙 집중 처리 방식을 구현하였다. 이 덕분에 데이터를 사용하는 곳(ViewModel)에서 비즈니스 로직(Repos..
MVC, MVVM 패턴에 이어서, 많이 사용되는 MVP 패턴에 대해서도 공부해보고자 한다. MVP 패턴도 공부해서 이때까지 공부해본 여러 아키텍처 패턴의 특징에 맞게 프로젝트에 적용해보고 싶다. 해당 포스팅은 안드로이드 아키텍처 기준으로 작성되었습니다. 1. MVP 패턴이란? MVP 패턴은 Model, View, Presenter 이 세 가지 역할로 어플리케이션(프로그램)을 분리해놓은 것이다. MVC 패턴과는 한 가지만 다르다. MVC의 Controller 대신에 Presenter가 있다. 2. MVP 패턴의 구조 MVP 패턴은 Model, View, Presenter로 구성되어 있다. Model 프로그램에서 다루는 데이터를 가지고 있고 그 데이터를 처리하는 부분 데이터 처리하는 역할 안드로이드에서는 A..
안드로이드 Room DB의 인스턴스를 생성할 때 반드시 싱글톤 패턴으로 생성했던 것 같다. 그때는 강의에서 그렇게 하라고 해서 했었는데, 다른 곳에서도 사용할 일이 있을 것 같아서 싱글톤 패턴에 대해 정리해본다. 1. 정의 위키백과에서는 다음과 같이 싱글톤 패턴을 정의하고 있다. 소프트웨어 디자인에서 싱글톤 패턴을 따르는 클래스는, 생성자가 여러 차례에 호출되더라도 실제로 생성되는 객체는 하나이고 최초 생성 이후에 호출된 생성자는 최초의 생성자가 생성한 객체를 리턴한다. 위 정의에서 알 수 있듯이, 싱글톤 패턴에서는 객체(인스턴스)를 메모리에 하나만 생성한다. 그리고 이 객체를 여러 스레드에서 동시에 어디에서든지 참조할 수 있도록 하는 것이다. 전역 범위에서 이 객체에 접근할 수 있도록 하면 어디에서든지..