본문 바로가기

전체 글36

[운영체제] 동기 vs. 비동기 (blocking vs. non-blocking) 공부할 때도 .. 개발할 때도 .. 매일 듣던 말이 동기 / 비동기 였는데요 오늘 요 아이를 한 번 알아보고자 합니다 . . . + 스리슬쩍 blocking vs. non-blocking 개념까지 알아볼게요 . .! 동기 (Synchronous) 동기란 말 그대로 동시에 일어난다는 뜻으로 요청과 그 결과가 동시에 일어나게 됩니다. 요청을 하면 시간이 얼마가 걸리던지 요청한 자리에서 결과가 주어져야 합니다. Thread1 이 작업을 시작시키고 Task1 이 끝날 때까지 기다렸다 Task2를 시작합니다. 작업 요청을 했을 때 요청의 결과값을 직접 받습니다. 이 때, 요청의 결과값은 return값과 동일합니다. (비동기 예시를 보면 이해할 수 있습니다 ~) 호출한 함수가 작업 완료를 신경 씁니다. 비동기 (A.. 2022. 10. 14.
[운영체제] 프로세스 vs. 스레드 OS의 가장 기본적인 개념 중 하나인 프로세스와 스레드를 알아보려고 합니다. . ! 프로그램(Program)이란 ? 어떤 작업을 위해 실행할 수 있는 파일입니다. 프로세스(Process)란 ? 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램입니다. 메모리에 올라와 실행되고 있는 프로그램의 인스턴스 (독립적인 개체) 운영체제로부터 시스템 자원을 할당받는 작업의 단위 동적인 개념으로는 실행된 프로그램 의미 여기서 할당받는 시스템 자원에는 ? - CPU 시간 - 운영되기 위해 필요한 주소 공간 - Code, Data, Stack, Heap의 구조로 되어 있는 독립된 메모리 영역 프로세스는 각각 독립된 메모리 영역(Code, Data, Stack, Heap 구조)을 할당 받습니다. 기본적으로 프로세스당 최소.. 2022. 10. 13.
[Swift] Swift 알고리즘 - 수학 제곱 구하기 let value = 3.0// 소수점으로 선언해야 함 pow(value, 2) // 9.0 순열 func permutation(_ arr: [T], _ n: Int) -> [[T]] { var result = [[T]]() if arr.count < n { return result } var visit = Array(repeating: false, count: arr.count) func cycle(_ now: [T]) { if now.count == n { result.append(now) return } for i in 0.. [[T]] { var result = [[T]]() if arr.count < n { return result } func cycle(_ idx: Int, _ n.. 2022. 10. 13.
[RxSwift] Filtering Operators 어느새 .. 2장으로 .. operator들 살펴보러 갑시다 . . ! 다시 한 번 RxSwift: Reactive Programming with Swift 책과 한글로 정리된 github 참고하면서 작성 중입니다. . ! Ignoring operators 1. IgnoreElements() ignoreElements는 .next 이벤트를 무시하고, .completed나 .error 같은 정지 이벤트는 허용합니다. [코드] example(of: "ignoreElements") { let strikes = PublishSubject() let disposeBag = DisposeBag() strikes .ignoreElements() .subscribe { _ in print("You're out!") }.. 2022. 10. 12.
[RxSwift] Subjects 지난 포스팅에서 Observable에 대해서 알아보았는데요 ! 보통의 앱 개발에서 필요한 것은 실시간으로 Observable에 새로운 값을 수동으로 추가하고 subscriber에게 방출하는 방식입니다. 그러므로 Observable이자 Observer인 녀석이 필요하게 되는데 요 녀석을 Subject라고 합니다. Subject의 종류 Subject = Observable + Observer 와 같이 행동합니다. Subject는 .next 이벤트를 받고, 이런 이벤트를 수신할 때마다 subscriber에 방출합니다. RxSwift에는 4가지 타입의 subject가 있습니다. PublishSubject : 빈 상태로 시작하여 새로운 값만을 subscriber에 방출 BehaviorSubject : 하나의 초기.. 2022. 10. 12.