전체 글

전체 글

    [RxSwift] Operators - Create

    RxSwift의 Operator들 중에서 observable을 생성하는 역할을 하는 operator를 알아볼 것이다! Create 1. 정의 직접 observable sequence를 생성하는 역할을 한다. 2. 구현 먼저 create의 구현부를 살펴보자. extension ObservableType { public static func create(_ subscribe: @escaping (AnyObserver) -> Disposable) -> Observable { AnonymousObservable(subscribe) } } 우선 파라미터를 보면, "AnyObserver -> Disposable"타입의 클로저를 넘겨주어야 정상적으로 옵져버블을 생성할 수 있는 것을 볼 수 있다. 이 클로저는 옵저버들..

    [OS] 8. Process Synchronization and Mutual Exclusion 1

    Process Synchronizatiton (동기화) 동기화라는 말을 생각해보면, 하나의 프로세스를 대상으로 하는 행위는 아닐 것이라는 생각이 들 것이다. 동기화라는 말의 사전적 의미를 먼저 들여다보자. 동기화(同期化, synchronization)는 시스템을 동시에 작동시키기 위해 여러 사건들을 조화시키는 것을 의미한다. 여러 사건, 즉 컴퓨터에서는 "여러 프로세스"에 대한 행위가 되는 것이다. 이에 여러 개의 프로세스가 존재하는 다중 프로그래밍 시스템 상에서 필요로 하는 것이 동기화이다. 왜냐하면 각 프로세스들은 서로 독립적으로 동작하는데, 만약 공유 자원이나 데이터에 동시에 접근하게 되면 이 때 문제가 발생한다. 만약 자원 A를 P1(=프로세스)과 P2이 동시에 접근한다고 하면, 작업 도중에 값이..

    [RxSwift] RxSwift 개념 + 이를 활용한 동적인 로그인 입력창 만들기

    그 유명한 RxSwift... 귀에 딱지가 앉도록 RxSwift에 대한 말들을 들어왔을 것이다. 실제로도 채용 공고 상에 자격요건/우대사항에 항상 존재하고 있는 것을 알 수 있다. 대충 iOS와 관련된 채용 공고만 검색해봐도 Reactive, RxSwift라는 단어는 빠지지않고 등장하고 있는 걸 알 수 있다. 이에 RxSwift 강의로(?) 유명하신 곰튀김님의 시즌0 RxSwift 강의를 듣고 내용을 정리해보겠습니다! (그저 빛...🐻) 강의를 기반으로 조금 더 실험할 수 있는 부분은 추가하면서 응용도 해보고 이해했는지 확인도 해볼 예정입니다. Rx 홈페이지 둘러보기 우선 Rx(Reactive Extention) 공식사이트를 살펴보자. 상당히 많은 언어에 대해서 Rx를 제공하고 있는 모습을 볼 수 있다...

    [Network] 네트워크 계층 3

    DHCP (Dynamic Host Configuration Protocol) 호스트 정보(IP, Mask, Router, DNS 등)를 동적으로 세팅해주는 역할을 한다. 만약 DHCP가 아니라 수동으로 IP주소를 정해주게 된다면 정적으로 사전에 미리 정해줘야 할 것 이다. 예를 들어서 A 아파트에 입주자가 10,000명이라고 할 때, 수동으로 IP를 할당하려면 10,000개를 미리 정해줘야 한다. 하지만 DHCP는 동적으로 사용 중인 입주자를 대상으로만 할당해주기에 그 수를 더 효율적으로 사용할 수 있다. 즉, 네트워크에 접속했을 때 주소가 할당되며, 이후에 회수하여 IP주소의 재사용 또한 가능해진다. (주소를 잠시 렌탈해주는 것과 같은 느낌!) 1. DHCP discover 사용자 : 저기.. 저 새로..

    [OS] 7. Process Scheduling 4

    마지막으로 MLQ와 MFQ에 대해서 알아보자! MLQ (Multi-level Queue) 말 그대로 ready queue를 여러 개 가지는 방식이다. 이전의 스케줄링 방식들은 ready queue를 한 개만 가지고 우선순위를 두고 작업을 진행했었다. 작업(or 우선순위)별 별도의 ready queue를 가진다 최초 배정된 queue를 못 벗어남 (= 다른 queue로 이동 불가) 각각의 queue는 자신만의 스케줄링 기법을 사용한다. Queue와 queue 사이에는 "우선순위 기반"의 스케줄링 사용 (고정 우선순위, 동적 등등) 장점 중요한 작업에 대해서는 빠른 응답시간을 가진다. 단점 여러 개의 queue를 관리해줘야 하기에 스케줄링 overhead가 발생한다. 우선순위가 낮은 queue에서는 star..

    [Network] 네트워크 계층 1, 2

    Application Layer, Transport Layer 그 아래의 Network Layer에 대해 알아볼 것이다. 네트워크 레이어의 두 가지 핵심 기능 (feat. 라우터) 라우터는 패킷이 들어오면 목적지로 향하는 방향으로 전달하는게 핵심이다. 패킷의 헤더에 해당 정보가 있어 이를 분석하여 정보를 얻어낼 수 있다. forwarding : 들어온 패킷의 목적지 + 표(forwarding table)를 보고 매칭시켜서 알맞는 링크로 보낸다. routing : forwarding시 참조할 수 있는 forwarding table을 라우팅 알고리즘이 만드는 역할을 한다. 포워딩 테이블의 양이 너무 많다보니 주소 범위로 관리가 되어 있다. 예를 들어서 0 ~ 100부터는 0번, 101 ~ 200은 1번과 같..