전체 글

전체 글

    [iOS] URLSession을 활용한 비동기 프로그래밍 (with. NASA API)

    URLSession의 구조나 원리, Json 구조, 비동기 프로그래밍에 대해 익숙해지고 싶은 마음과, 더욱 더 잘 활용하고 싶다는 생각에 각종 API들을 활용하여 데이터를 받아와 비동기적으로 처리하는 방법들을 차례대로 학습해보고자 합니다! 어떤 API가 재밌을까 고민하던 찰나에, NASA에서 매일 우주 사진과, 이에 대한 설명을 제공하는 API를 무료로 사용할 수 있다고 하여서 이를 바로 선택해서 진행했습니다! 대략 어떤 플로우로 진행될지 간략하게 보고 바로 시작해봅시다! --------사전 준비-------- 1. NASA Open API : key 발급 2. Json 구조 확인 ---------XCode--------- 3. 데이터 모델 정의 4. API Service 구현 (URLSession) 5..

    [RxSwift] Operators - empty, never, throw

    Creating에 속하는 empty, never, throw에 대해 알아볼 것이다. Empty 1. 정의 empty는 아무 것도 emit하지 않는 옵저버블을 생성하지만 정상적으로 종료시킨다. 즉, 그냥 빈 값으로 종료만 시키는 것! 2. 구현부 public static func empty() -> Observable { EmptyProducer() } final private class EmptyProducer: Producer { override func subscribe(_ observer: Observer) -> Disposable where Observer.Element == Element { observer.on(.completed) return Disposables.create() } } Em..

    [Network] 네트워크 계층 4

    이전에 포워딩 테이블은 라우팅 알고리즘에 의해서 만들어진다고 했었다. 이번 강의에서는 라우팅 알고리즘에 대해서 알아볼 것이다. Routing Algorithms 라우터의 주 역할 중 하나는 포워딩이었다. 포워딩이라는 것은 패킷 내 헤더의 목적지 정보를 보고 포워딩 테이블내 가장 적합한 엔트리와 매칭해서 연결시켜주는 것이다. 즉 A를 B로 보내기 위해 중간에 거쳐야하는 관문 정도로 보면 될 것 같다. 이제는 네트워크를 그림으로만 보지 않고 노드와 간선으로 이루어진 네트워크 그래프로 볼 것이다. 노드는 라우터고, 간선은 링크라고 보면 된다. 이 네트워크 그래프를 보는 이유가 뭘까?? 바로 앞서 말했듯이 포워딩 테이블을 만들기 위해서이다. 어? 그럼 포워딩 테이블의 엔트리는 어떻게 구성해야 좋은거지?? 예를 ..

    [OS] 9. Process Synchronization and Mutual Exclusion 2

    지난 강의에서는 상호 배제를 구현하기 위한 노력들을 살펴 봤었다. 그 이후에 어떠한 소프트웨어적인 해결책을 내놓았는지 하나씩 살펴보자. Dekker's algorithm 이 알고리즘은 프로세스가 두 개일 때, Mutual Exclusion을 보장하는 최초의 알고리즘이다. 앞의 버전 0, 1보다 더 발전한 모양으로, 해당 문제들을 처음으로 해결해냈다. 진행되는 플로우를 살펴보자. 먼저 P0이 작업을 하려고 flag를 true로 바꾸었다고 해보자. 이 때 flag[1]에 따라 작업을 수행할 수 있는지 여부가 정해지는 데, P1도 flag를 true로 전환 시킨 상태라고 가정해보자. 그렇다면 while문 안으로 들어가서 현재 turn을 통해 누구의 차례인지 알아낼 수 있다. turn이 1이라면 P1의 차례이기..

    [LeetCode] Algorithm I 스터디 플랜

    https://leetcode.com/study-plan/algorithm/?progress=pxd53i Algorithm - Study Plan - LeetCode In mathematics and computer science, an algorithm is defined as a process or set of rules to be followed in calculations or other problem-solving operations. This practical method is often used in calculations, data processing, and automatic reasoning beca leetcode.com 14일 동안 매일 주어진 문제를 풀어내는 스터디 플랜(Study..

    [RxSwift] Operators - from, of

    Creating 카테고리에 속하는 From과 of에 대해서 알아볼 것이다. From 1. 정의 From은 다양한 객체나 데이터 타입들을 옵저버블로 변환시켜준다. 즉, 배열의 원소들을 각각 옵저버블로 반환해주기 때문에, 매번 필요한 데이터를 옵저버블로 생성하기 보다는 From으로 넘겨주어 옵저버블로 변환할 수 있다! 약간 for문 처럼 iterative하게 값들을 내려준다는 점을 기억하자! 2. 구현 // from public static func from(_ array: [Element], scheduler: ImmediateSchedulerType = CurrentThreadScheduler.instance) -> Observable { ObservableSequence(elements: array, ..