일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- React ssr
- 웹크롤링
- 자바 프로젝트
- 네이버 부캠
- 스택
- git checkout
- beautifulsoup
- Next/Image 캐싱
- 프로그래머스
- 코딩테스트
- 씨쁠쁠
- c++
- 파이썬 코딩테스트
- React.js
- 파이썬 웹크롤링
- Server Side Rendering
- 네이버 부스트캠프 멤버십
- 멘션 추천 기능
- Image 컴포넌트
- 네이버 부스트캠프
- 자바스크립트 객체
- 자바스크립트 컴파일
- 파이썬
- react
- Next.js
- 비디오 스트리밍
- 자바스크립트
- 부스트캠프
- 브라우저 동작
- PubSub 패턴
- Today
- Total
목록CS공부 (16)
코린이의 개발 일지
기존 Progressive download 방식 기존에 사용되던 Progressing download(PD) 방식은 동영상 소스가 한번 선택되면 해당 컨텐츠를 끝까지 다운로드 하여 플레이하는 방식이다. 아래의 그림처럼 세그먼트 단위로 비디오 파일을 받아서 클라이언트 측 버퍼에 일정 이상 쌓이면 동영상이 재생되는 방식으로 동작한다. PD 방식의 단점은 한가지 해상도의 동영상 소스가 선택되어 계속 다운로드하는 방식이다 보니, 네트워크 상황에 따라 사용자가 지속해서 버퍼링을 만나게 된다는 것이다. 이러한 문제를 해결하기 위해 Adaptive HTTP Streaming 방식이 나왔다 Adaptive HTTP Streaming 기존의 HTTP 프로토콜을 이용해 구현하는 스트리밍 기술이다. 유튜브에서 사용하는 HL..
프로세스 동기화란? 프로세스들 사이에 수행 시기를 맞추는 것 수행 시기를 맞춘다는 것은 크게 아래 두가지를 말한다 실행 순서 제어: 프로세스를 올바른 순서대로 실행하기 상호 배제: 동시에 접근해서는 안되는 자원에 하나의 프로세스만 접근하게 하기 1. 실행 순서 제어를 위한 동기화 동시에 실행되는 프로세스를 올바른 순서대로 실행하는 것 2. 상호 배제를 위한 동기화 상호 배제(mutual exclusion)는 공유가 불가능한 자원의 동시 사용을 피하기 위해 사용하는 알고리즘이다. 동시에 접근해서는 안되는 자원에 동시에 접근하지 못하게 하는 것. 두개 이상의 프로세스가 임계 구역에 동시에 접근하지 못하도록 관리하는 것. 프로세스뿐만 아니라 스레드도 동기화 대상이다. 정확히 말하면 실행의 흐름을 갖는 모든 것..
프로세스와 프로세스 상태, 프로세스 계층 구조, 스레드에 대해 살펴보자 1. 프로세스 개요 포그라운드 프로세스 (foreground progress) : 사용자가 보는 앞에서 실행되는 프로세스 백그라운드 프로세스 (background progress) : 사용자가 보지 못하는 뒷편에서 실행되는 프로세스 사용자와 직접 상호작용 가능한 프로세스 사용자와 상호작용하지 않고 정해진 일만 하는 프로세스 유닉스 운영체제: 데몬(daemon) 윈도위 운영체제: 서비스(service) PCB (Process Control Block) 운영체제는 빠르게 번갈아 수행되는 프로세스의 실행 순서를 관리하고 프로세스에 CPU를 비롯한 자원을 배분한다. 이를 위해 운영체제는 PCB를 이용한다. PCB는 프로세스와 관련된 정보를 ..
Observer pattern 객체의 상태 변화를 관찰하는 옵저버들의 목록을 객체에 등록하여, 상태 변화가 있을 때마다 notify를 통해 객체가 직접 목록의 각 옵저버에게 통지하도록하는 디자인 패턴 구현 예시 기본적인 인터페이스는 아래와 같다. Subject class Subject { #state; constructor() { this._observers = new Set(); } subscribe(observer) { this._observers.add(observer); } unsubscribe(observer) { this._observers.delete(observer); } notify() { this._observers.forEach((observer) => observer.update(t..