본문 바로가기

CS10

Sync / Async, Block / Non-block 차이점 Sync, Async와 Block, Non-block이 얼핏 보면 비슷해보여 계속 헷갈려서 정리한다.. ✔ Sync / Async - 호출된 함수의 완료 여부를 누가 신경쓰는가 Synchronous 호출된 함수의 수행 결과 및 종료를 호출한 함수가 신경씀 호출한 함수가 호출된 함수의 작업이 끝나서 결과값을 반화하기를 기다리거나, 지속적으로 호출된 함수에게 확인 요청 Asynchronous 호출하는 함수가 호출된 함수의 완료 여부를 신경쓰지 않음 호출된 함수의 수행 결과 및 종료를 호출된 함수 혼자 직접 신경 쓰고 처리함(callback) ✔ Block / Non-block - 호출된 함수가 바로 제어권을 넘기는가 Block 호출된 함수가 자신이 할 일을 모두 마칠 때까지 제어권을 계속 가지고서 호출한 함.. 2022. 1. 18.
Thread-Safe란 무엇일까? ✔ Thread-Safe 멀티 쓰레드 프로그래밍에서 일반적으로 어떤 함수나 변수, 혹은 객체가 여러 쓰레드로부터 동시에 접근이 이루어져도 프로그램의 실행에 문제가 없음을 뜻한다. 하나의 함수가 한 쓰레드로부터 호출되어 실행 중일 때, 다른 쓰레드가 그 함수를 호출하여 동시에 함께 실행되더라도 각 쓰레드에서의 수행 결과가 올바르게 나오는 것으로 정의한다. 멀티쓰레드 환경에서 동작해도 원래 의도한 형태로 동작하는 코드를 "Thread-Safe"하다고 한다. ✔ Thread-Safe 보장 방법 Re-entrancy 어떤 함수가 한 쓰레드에 의해 호출되어 실행 중일 때, 다른 쓰레드가 그 함수를 호출하더라도 그 결과가 각각에게 올바로 주어져야 한다. Thread-local storage 공유 자원의 사용을 최대.. 2022. 1. 17.
CORS (Cross-Origin Resource Sharing)란 무엇일까? ✔ CORS란? 교차 출처 리소스 공유(Cross-Origin Resource Sharing, CORS)이다. 도메인이 다른 도메인에 리소스를 요청할 때 접근 권한을 부여하는 메커니즘 추가 HTTP헤더를 사용하여, 실행 중인 웹 애플리케이션이 다른 출처의 자원에 접근할 수 있는 권한을 부여하도록 브라우저에 알려주는 체제 웹 애플리케이션은 리소스가 자신의 출처(도메인, 프로토콜, 포트)와 다를 때 교차 출처 HTTP 요청을 실행 ✔ SOP란? 동일 출처 정책(Same-Origin Policy)이다. 브라우저가 다른 출처의 리소스 접근을 금지하는 정책. 자신의 출처와 동일한 리소스만 불러올 수 있다. 따라서 다른 출처의 리소스를 불러오기 위해서는 그 출처에서 올바른 CORS 헤더를 포함한 응답을 반환해주어야.. 2022. 1. 14.
동기화 문제의 해결책 (Mutex, Semaphore) 동기화 문제 동기화 : 한정적인 시스템 자원에 여러 스레드가 동시에 접근해서 사용하면 문제가 발생할 수 있다. 이 문제를 방지하기 위해 여러 스레드에게 하나의 자원에 대한 처리 권한을 주거나 순서를 조정하는 기법이다. 임계 영역 (Critical Section) 동일한 자원을 동시에 접근하는 작업(ex. 공유 변수)을 실행하는 코드 영역을 임계영역 (Critical Section)이라고 한다. 동기화 기법 유저 모드의 동기화 커널의 힘을 빌리지 않는 동기화 기법(커널의 코드가 실행되지 않음.) 성능상 이점이 있으나 기능상의 제한이 존재. 임계 구역 기반의 동기화, 인터락 함수 기반의 동기화. 커널 모드의 동기화 커널에서 제공하는 동기화 기능을 이용하는 방법. 커널 모드로의 변경이 필요하고 이는 성능 저하.. 2021. 12. 13.