일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- github
- Jetpack
- library
- Algorithm
- ReactiveProgramming
- FRAGMENT
- Java
- Android
- sourcetree
- programmers
- leetcode
- Room
- Kotlin
- rxjava
- Java8
- IntelliJ
- git
- androidstudio
- ViewModel
- Database
- livedata
- homebrew
- Version
- Today
- Total
목록IntelliJ (20)
Learn & Run
https://programmers.co.kr/learn/courses/30/lessons/72412
https://programmers.co.kr/learn/courses/30/lessons/1844 코딩테스트 연습 - 게임 맵 최단거리 [[1,0,1,1,1],[1,0,1,0,1],[1,0,1,1,1],[1,1,1,0,1],[0,0,0,0,1]] 11 [[1,0,1,1,1],[1,0,1,0,1],[1,0,1,1,1],[1,1,1,0,0],[0,0,0,0,1]] -1 programmers.co.kr 문제 N x M 배열이 입력값으로 주어진다. (1, 1) 지점에서 시작해서 (N, M) 지점에 도달했을 때의 최단 거리를 구하는 문제입니다. 단, (N, M) 지점에 도달하지 못했을 때는 -1을 반환해줍니다. 접근 아이디어 1. 최단거리를 구하는 문제에 필요한 BFS 알고리즘을 이용하였습니다. 2. 이전에 방..
https://programmers.co.kr/learn/courses/30/lessons/83201?language=kotlin 코딩테스트 연습 - 2주차 [[100,90,98,88,65],[50,45,99,85,77],[47,88,95,80,67],[61,57,100,80,65],[24,90,94,75,65]] "FBABD" [[70,49,90],[68,50,38],[73,31,100]] "CFD" programmers.co.kr 문제 i x j 배열이 입력값으로 들어올 때 scores[i][j]의 값은 i행이 j열을 평가한 점수를 나타내는 것이다. 이 때, 각자가 받은 점수에 대해서 본인이 평가한 점수가 받은 점수중 유일한 최고점, 최저점이라면, 평균 점수를 계산할 때 제외시키면 된다. 여기서 평균..
목표 RxJava에서 중요한 요소인 연산자가 무엇인지 알아 보도록 하고 생성 연산자를 사용해보도록 합니다. 1. RxJava에서 연산자란 무엇인가? RxJava에서의 연산자는 메서드(함수) 입니다. 연산자를 이용하여 데이터를 생성하고 통지하는 Flowable이나 Observable 등의 연산자를 생성할 수 있습니다. Flowable이나 Observable에서 통지한 데이터를 다양한 연산자를 사용하여 가공 처리하여 결과값을 만들어 냅니다. 연산자의 특성에 따라 카테고리로 분류될 수 있습니다. 2. Flowable / Observable 생성 연산자 interval 지정한 시간 간격마다 0부터 시작하는 숫자(Long)을 통지합니다. initialDelay 파라미터를 이용해서 최초 통지에 대한 대기시간을 지정..
목표 RxJava에서 사용되는 Java의 기본지식을 리뷰해보고, Java 8부터 지원하는 함수형 인터페이스와 람다의 개념을 이해해보고 사용해보도록 합니다. 1. 함수형 인터페이스 Java의 인터페이스입니다. 단 하나의 추상 메서드만 가지고 있는 인터페이스입니다. (예외로 Java 8에서 새롭게 도입된 Predicate, Consumer 인터페이스처럼 Default 메서드는 포함할 수 있습니다) 함수형 인터페이스의 메서드를 람다식으로 작성해서 다른 메서드의 파라미터로 전달할 수 있습니다. 람다식 자체를 해당 함수형 인터페이스를 구현한 클래스의 인스턴스로 취급합니다. Java 8에서 새롭게 추가된 함수형 인터페이스(Predicate, Consumer, Function) 외에 기존에 작성되어 있는 하나의 추상..
목표 지난 포스팅에서 Flowable과 Observable을 사용해왔습니다. 이번 포스팅에서는 또 다른 생산자인 Single, Maybe 그리고 Completable을 사용해보며 익숙해지도록 합니다. 또한 어떠한 차이점이 있는지 알아보도록 합니다. 이 3가지 클래스는 Flowable과 Observable처럼 대량의 데이터를 처리하는 것이 아니라 데이터를 최대 1건만 발행하는 생산자들인데 각각 어떠한 차이점들이 있는지 알아보도록 합니다. 1. Single 데이터를 1건만 통지하거나 에러를 통지합니다. 데이터 통지 자체가 완료를 의미하기 때문에 별도로 완료 통지를 하지 않습니다. 데이터를 1건만 통지하므로 데이터의 개수를 요청할 필요가 없습니다. onNext(), onComplete()가 없으며, 이 둘을 ..
목표 이전 포스팅에서 Flowable과 Observable의 차이를 알아보면서 배압이 무엇인지 알아보았습니다. 이번 포스팅에선 배압 전략에는 어떤 것들이 있는지 알아보고 간단한 소스 코드로 적용해봅니다. 배압 전략 RxJava는 BackpressureStrategy를 통해 Flowable이 통지 대기 중인 데이터를 어떻게 다뤄야하는지에 대한 전략을 제공합니다. 1) MISSING : 처음엔 배압을 적용하지 않다가, 나중에 onBackpressureXXX()로 배압을 적용할 수 있습니다. 2) ERROR : 통지된 데이터가 버퍼의 크기를 초과하면 Exception을 통지하는 전략입니다. 이전 포스팅에서 배압 기능을 설명할 때 소스코드로 작성한 부분에서 ERROR전략을 확인해 볼 수 있었습니다. 3) BUF..
목표 생산자인 Flowable과 Observable의 차이점을 이해해보도록 합니다. Flowable vs Observable 1. Reactive Streams 인터페이스 구현 유무 Flowable은 Reactive Streams 인터페이스를 구현합니다. Observable은 Reactive Streams 인터페이스를 구현하지 않습니다. 2. 데이터 처리 Flowable은 Subscriber라는 구독자로 데이터를 처리합니다. Observable은 Observer라는 구독자로 데이터를 처리합니다. 3. 구독 해지 Flowable은 Subscription으로 구독을 해지합니다. Observable은 Disposable로 구독을 해지합니다. 4. 배압(Back Pressure) 기능 Flowable은 배압 기..
목표 Reactive Streams란 무엇인가 알아보도록 하고, 이것을 통해서 Reactive Programming에서 Data Flow가 어떻게 진행되는지 알아보고 이해하도록 합니다. 1. Reactive Streams의 정의 Reactive Streams는 간단하게 비동기 스트림을 처리하는 표준을 제공하기 위한 것이라고 생각하면 된다. 참고 : www.reactive-streams.org/ https://www.reactive-streams.org/ Reactive Streams Reactive Streams is an initiative to provide a standard for asynchronous stream processing with non-blocking back pressure. T..
목표 간단한 예제를 통해서 리액티브 프로그래밍이 무엇인지 알아보고 이것을 사용하기 위해서 무엇을 알아야하는지도 알아보도록 합니다. 과거의 어플리케이션은 클라이언트와 서버의 작업간에 동기식 구조가 대부분이였습니다. 하지만 어플리케이션의 규모가 커지고 복잡해지면서 복잡한 비동기식 처리를 해야만하는 시대가 도래했다. 리액티브 프로그래밍은 이러한 비동기 처리를 효과적으로 처리하기 위해 사용되는 비동기 프로그래밍을 위한 API입니다. RxJava는 이러한 리액티브 프로그래밍을 확장하여 구현한 라이브러리입니다. 1. Reactive Programming의 정의 정의 : In computing, reactive programming is a declarative programming paradigm concerned..