분류 전체보기
-
[자료구조] 빅오 표기법(Big-O notation)Data Structure || Algorithm 2021. 9. 30. 21:41
빅오 표기법은 알고리즘의 시간 복잡도를 나타내는 표기법이다. O(f(n))으로 나타낸다. 알고리즘의 복잡도는 시간 복잡도, 공간 복잡도 두 가지로 구분할 수 있다. 시간 복잡도는 알고리즘 내 연산의 횟수와 관련이 있다. 알고리즘에서의 시간 복잡도라는 것은 'n값의 증가에 따른 처리 시간의 증가 정도'라고 할 수 있다. 쉽게 생각하면 루프를 몇 번 도는지, 재귀함수를 몇 번 실행시키는지로 볼 수 있다. 빅오 표기법에서는 재밌는 부분이 있다. for i in 0.. O(n^2) 영향력 없는 항을 무시 O(n^2 + n) -> O(n^2) O(n + log n) -> O(n) 위와 같이 상수항은 제거함으로 최대한 간결한 표기를 한다. 일반적으로 사용하는 빅오 표기법에서의 우선 순위는 아래와 같다. O(1) <..
-
RxSwift 기초 + 개념 정리 및 Rx의 3대요소RxSwift 2021. 4. 30. 12:10
RxSwift? 우선 RxSwift를 공부하면서 가장 먼저 드는 의문은 '왜 RxSwift를 써야하는가?'가 아닐까 생각합니다. 그에 대한 대답을 간단한 그림으로 알아보겠습니다. 이는 RxSwift 뿐만 아니라 RxJava, RxAndroid, RxKotlin, RxJS, etc.. 모든 ReativeX Programming에 접합되는 내용이라고 생각합니다. 한 블로거(Keval Patel)는 위 Evaluation matrix를 아래와 같이 설명합니다. 명시적 실행 : 새로운 Thread 작업을 할 때 그것을 컨트롤 할 수 있어야 하고, 백그라운드에서 작업을 시킬 때 그것에 대한 정보를 얻고 준비할 수 있어야합니다. 간편한 Thread 관리 : 비동기 작업이 핵심인 Rx에서는 당연하게도 여러 Threa..
-
RxSwift 핫 옵저버블(Hot Observable) & 콜드 옵저버블 (Cold Observable)RxSwift 2021. 4. 19. 14:45
이 글은 독학하는 개발자가 공부를 위해 적어둔 글입니다. 참고용으로만 사용하시길 권장드립니다. 우선 옵저버블(Observable)의 간단한 정의를 먼저 설명한 후 핫 옵저버블(Hot Observable)과 콜드 옵저버블(Cold Observable)에 대해 설명할 예정입니다. Observable 이란? Observer(관찰자)가 구독할수 있는 형태를 Observable이라 합니다. 흔히 개발할 때 하나씩 작성된 순서에 따라 실행되고 완료 되기를 기대하지만 ReactiveX에서는 'Observer'에 의해 임의의 순서에 따라 병렬로 실행되고 결과는 나중에 연산됩니다. (흔히 말하는 비동기) Observable은 항목들을 배출하거나 Observable의 메소드 호출을 통해 옵저버에게 알림(notify)을 보..