Programming
-
[Kotiln] 범위 지정 함수 - let,apply,with,runProgramming/Kotlin 2020. 10. 28. 15:37
let() -{it} let() 함수는 이 함수를 호출한 객체를 이어지는 함수블럭의 인자로 전달한다. - 불필요한 변수 선언 방지 가능 !!! //sum 변수에 값을 저장한 후 텍스트뷰에 설정 val sum = add(10, 40) //10 + 40 textView.setText(sum) //계산한 후 반환된 값을 인자로 전달 받아 텍스트뷰에 설정 가능 add(10, 40).let { textView.setText(it) } - Null Check : 널 값이 아닌 경우 특정 작업을 수행하는 코드에 활용 가능 fun doSomethig(message: String?){ if(message != null) printToast("hi") } fun doSomethig(message: String?){ //m..
-
[Android] Android App Architecture GuideProgramming/Android 2020. 9. 17. 23:30
안드로이드 개발자 레퍼런스를 보면, 고품질의 앱을 빌드하기 위한 앱 아키텍처 가이드 문서를 제공한다. 모바일 앱 사용자 환경 일반 데스크톱 앱과 달리 Android 앱 구조는 복잡하다. 안드로이드 앱은 Activity, Fragment, Service, Contents Provider, Broadcast Receiver를 비롯하여 여러 앱 컴포넌트가 포함된다. 개발자는 Menifest에서 이러한 컴포넌트를 선언하며, Android OS에서 Menifest를 사용하여 사용자 환경에 앱을 통합하는 방법을 결정한다. SNS 앱에서 사진을 공유하는 상황을 생각해보았을 때, 해당 과정에서 언제든지 전화나 알림에 의해 사용환경이 중단될 수 있다. 사용자는 이 중단에 대응하고 난 후에 사진 공유 프로세스에 돌아가서 ..
-
[Android] Repository Pattern 의 이해Programming/Android 2020. 9. 17. 23:06
Repository Pattern이란? 데이터 출처와 관계 없이 동일 인터페이스로 데이터에 접근할 수 있도록 만드는 것을 Repository 패턴이라고 합니다. 레포지토리는 데이터 소스에 접근하는 데 필요한 논리를 캡슐화하는 클래스 또는 구성 요소입니다. Repository 패턴을 사용하는 이유 Repositoires are classes or componets that encapsulate the logic requriedto aceess data soruces Repository는 DataSource 를 캡슐화 한다. 데이터 로직을 분리시킬 수 있다. 중앙 집중처리 방식으로, 언제나 일관된 인터페이스로 데이터를 요청할 수 있다. 그렇기 때문에, 클라이언트가 어떤 데이터를 사용할지 선택할 필요 없이, ..
-
REST API : 웹상의 자원에 접근하는 방식을 정의한 아키텍처Programming/Android 2020. 9. 13. 00:46
REST(REpresentational State Transfer)란? - 웹의 장점을 최대화 할 수 있는 아키텍처 - HTTP 프로토콜 기반으로 웹상의 자원에 접근하는 방식을 정해놓은 아키텍처/인터페이스 REST의 속성 1. 서버에 있는 모든 Resouce는 각 Resource당 클라이언트가 바로 접근할 수 있는 고유 URI가 존재한다. 2. 모든 요청은 클라이언트가 요청할 때마다 필요한 정보를 주기 때문에 서버에서는 세션 정보를 보관할 필요가 없습니다. 그렇기 때문에 서비스에 자유도가 높아지고 유연한 아키텍처 적응이 가능합니다. 3. HTTP 메소드를 사용한다. 모든 Resource는 일반적으로 HTTP 인터페이스인 GET, POST, PUT, DELETE 4개의 메소드로 접근되어야 한다. 4. 서비..
-
-
[RxJava] 4. Filtering & Combining OperatorProgramming/RxJava 2020. 9. 6. 15:03
Filtering & Combining Operator 분류 조합 연산자 Filtering Operator Combining Operator Utility 1. Filtering Operator (분류 연산자) debounce 아이템이 생성되고 일정시간 동안 다른 아이템이 생성되지 않으면 데이터를 전달하는 연산자 distinct 이전에 전달한 아이템은 전달하지 않게 하는 연산자이다. 중복 제거 distinctUntilChanged 변경이 생기기 전까지 중복된 데이터를 전달하지 않는 연산자이다. 동일한 값을 가진 객체를 필터링하고 싶을 때는 클래스 내부에 hashCode와 equals가 구현되어 있어야 한다. 변경이 생기기 전까지 중복데이터를 전달하지 않는다. filter 특정 조건에 참이 되는 데이터만 ..
-
[RxJava] 3. Creating & Transforming OperatorProgramming/RxJava 2020. 9. 6. 01:50
RxJava 연산자 1. Creating Operator : Obseverbale을 생성하는 연산자 defer 연산자 defer 연산자는 옵저버가 구독할 때까지 Observable의 생성을 지연시키다가 subscribe() 메소드를 호출할 때 Observable 아이템을 생성한다. just() 메소드와 defer() 메소드를 통해 각각 Observable을 발행하고 5초 간 Thread를 sleep시킨 뒤 구독 하면 just() 연산자로 만든 옵저버블은 객체를 생성하는 시점의 시간을 발행하고, defer() 연산자로 만든 옵저버블은 구독한 시점의 시간을 발행한다. 구독하기 직전에 Observable을 생성하여 가장 최신의 상태 또는 아이템이 포함되도록 하는 것이 목적이라면 defer 연산자를 사용할 수 ..
-
[RxJava] 2. Subject / 생산자Programming/RxJava 2020. 9. 2. 15:27
SubjectSubject는 Observable과 Observer를 모두 구현한 추상 타입으로 하나의 소스로부터 다중의 구독자에게 멀티캐스팅이 가능하다.Subject는 Observer를 구현하므로 onNext(), onError(), onComplete() 등 메소르르 수동으로 호출하여 이벤트를 구독자들에게 전달할 수 있다.Observable 이면서 Observable이다. 발행과 구독을 모두 Subject 객체를 통해 한다.* Observable과 Observer의 성격을 둘다 가지고 있는 클래스 * Observable이 가지고 있는 subscribe와 여러 operator를 사용 할 수 있음 * Observer가 가지고 있는 onNext, onError, onComplete를 사용 할 수 있음 * s..