리액티브 X에는 다양한 연산자 함수가 있습니다. 이 연산자 함수들의 개수는 Rx 버전이 올라갈수록 계속 증가하고 있습니다. 하지만 기본적인 함수들을 익혀놓으면 이후에는 필수 연산자에서 파생된 연산자 함수들이기 때문에 이해할 수 있습니다. 리액티브 연산자의 특징은 언어 특성과 크게 연관이 없습니다. RxJava, RxKotlin, RxJS, RxSwift 등 언어적인 부분에서 말고는 연산자의 기능이 크게 다르지 않습니다. 리액티브 연산자는 함수형 프로그래밍 관점에서 보았을 때 순수 함수입니다. 이번 포스트에서는 다양한 연산자 함수 중 변환 연산자에 대해 알아보도록 하겠습니다. Transforming 연산자에는 map()과 flatMap() 두 가지가 있습니다. 1. map() 함수 map() 함수는 입력된..
Retrofit2를 사용하여 Multipart Form-Data형태로 파일과 Body를 업로드하는 방법에 대해 정리해보고자 합니다. MultiPart에 대해서 잘 모르는 분들을 위해 간단하게 MultiPart에 대해 정리해보고자 합니다. Multipart/form-data File Upload Feature를 구현할 때, Client가 만약 Web Browser라면 Form을 통해서 사용자로부터 파일을 받고 올리게 됩니다. 이때 Web Browser가 보내는 HTTP 메시지에서 Content-Type 속성이 multipart/form-data로 지정되며, 정해진 형식에 따라 메시지를 인코딩하여 전송합니다. 이를 처리하기 위한 서버는 멀티파트 메시지에 대해서 각 파트별로 분리하여 개별 파일의 정보를 얻게 ..
Android 에서 Recycler View를 사용할 때 Adapter에 데이터 List를 넘겨주게 된다. 아래 처럼 말이다. ArrayList imageUrls; StoryImageAdapter adapter = new StoryImageAdapter(context, imageUrls); 이 때 imageUrls라는 ArrayList에 데이터를 넣고 Adapter Constructor의 매개 변수로 넘겨주게 되는데 보통은 아래처럼 데이터를 넣어 주게 된다. public void setImageUrlSet(ArrayList urls) { this.imageUrls = urls; } 위의 코드는 urls라는 매개 변수 값을 받아와서 imageUrls라는 ArrayList에 대입해주는 구문인데 자세히 살펴보..
이번 포스트에서는 Lottie 사용법에 대해 간단하게 알아보려고 합니다. 그동안 우리가 만들어온 어플리케이션들이 뭔가 밋밋하고 생동감 넘치지 않은 느낌이 들었던 경험이 한 번쯤은 가지고 있을 것입니다. 그러한 밋밋함을 채워줄 무언가를 소개해드리려고 합니다. AirBnB에서 개발한 Lottie Animation 라이브러리 입니다. Lottie란? After Effect에서 제작한 Motion Graphic을 Android에서 그대로 보여줄 수 있는 것으로써 OOM(OUT OF MEMORY)에 대해서도 신경을 많이 쓴 라이브러리 입니다. 이전에 Facebook에서 KeyFrame이라는 라이브러리를 개발했었는데 이보다 더 많은 기능을 제공하는 라이브러리가 바로 Lottie가 되겠습니다. Lottie는 실제 A..
이번 포스트에서는 RxJava를 사용하여 간단하게 EditText에 Debounce를 구현하는 시간을 가져보도록 하겠습니다. 우선 시작하기에 앞서 Debounce가 무엇인지 알아보고 가도록 하겠습니다. Debounce vs. Throttle Debounce를 더 잘 설명하기 위해 비슷한 개념 중 하나인 Throttle과 함께 설명하도록 하겠습니다. Scrolling Event가 발생 할 때 마다 호출되는 Call Back이 있다고 가정해보도록 합시다. 이 말은 1px만 스크롤되어도 이벤트가 발생한다는 것을 의미합니다. 이런 Scrolling Event에 매 번 Call Back이 발생한다면 어떨까요? 그리고 그 Call Back이 수행하는 일이 리소스를 굉장히 많이 먹는 작업이라면 어떨까요? Thrott..
이번 포스트는 Android에서 커스텀 Fragment Pager Adapter를 활용하여 간단하게 Fragment View Pager를 구현해보도록 하겠습니다. RecyclerView나 ListView보다 더 간단한 코드를 통해 Fragment View Pager를 구현할 수 있습니다. 1. XML Layout 구성하기 우선 Activity에 ViewPager를 추가해줍니다. (사이즈는 Max로 해주셔도 되고 본인취향입니다.) 간단하게 ViewPager를 match_parent, match_parent로 하여 레이아웃을 구성해보았습니다. 이제 ViewPager에 추가해 볼 Fragment Layout를 짜보도록 하겠습니다. 레이아웃은 간단하게 구성합니다. fragment_start_1.xml fragm..
멀티 스레드는 동시성(Concurrency) 또는 병렬성(Parallelism)으로 실행된다. 동시성은 멀티 작업을 위해 하나의 코어에서 멀티 스레드가 번갈아가며 실행하는 성질을 말하고 병렬성은 멀티 작업을 위해 멀티 코어에서 개별 스레드를 동시에 실행하는 성질을 말한다. 자바의 스레드 스케줄링은 Priority 방식과 Round Robin 방식을 사용한다. Priority 방식은 우선순위가 높은 스레드가 실행 상태를 더 많이 가지도록 스케줄링 하는 것을 말한다. Round Robin 방식은 시간 할당량(Time Slice)를 정해서 하나의 스레드를 정해진 시간만큼 실행하고 다시 다른 스레드를 실행하는 방식을 말한다. Priority 방식에서 우선순위는 1~10으로 주어지며 1이 가장 낮고 10이 가장 ..
* Binding - 프로그램 구성 요소의 성격을 결정해주는 것 ex ) 변수의 데이터 타입이 무엇인지 정해지는 것 종류 정적 바인딩(Static binding) 동적 바인딩(Dynamic binding) 정의 컴파일 시간에 성격이 결정되는 것 실행 시간(runtime)에 성격이 결정되는 것 예시 C언어 컴파일 시간에 변수의 데이터 타입이 결정 Python(Interpreter 언어) 런타임에 값에 따라 변수의 데이터 타입이 결정 장단점 컴파일 시간에 많은 정보가 결정되므로 실행 효율↑ 런타임에 자유롭게 성격이 바뀌므로 적응성↑
- Total
- Today
- Yesterday
- C++
- ios
- Apple Watch
- Notissu
- 컬렉션
- 알고리즘
- 코틀린
- Reactive programming
- 스위프트
- SwiftUI
- 오토레이아웃
- 함수형
- apple
- 함수형프로그래밍
- databinding
- android
- Elliotable
- Swift
- watchos
- 애플워치
- Kotlin
- Auto Layout
- 아이폰
- retrofit
- 안드로이드
- java
- 상속
- Rxjava
- XCode
- CloudComputing
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |