애니메이션
총 383개 · 15 / 16 페이지 · 337–360
본문 코드 펜스로 삽입: ```anim:<id>
태그로 필터 (697)
wide-format 의 여러 컬럼이 두 개의 컬럼 (variable, value) 으로 합쳐지는 melt 변환.
inner / left / right / outer join 의 결과 차이를 두 DataFrame 의 교집합/합집합 다이어그램으로 시각화.
long-format 데이터의 product 컬럼 고유값이 새로운 컬럼이 되고, sales 값이 그 자리에 배치되는 변환.
일별 데이터를 3 일 단위로 그룹화하여 합계를 구하는 resample 의 동작.
rolling(window=3).mean() 가 윈도우를 한 칸씩 이동하며 각 위치의 평균을 계산하는 과정.
T1이 COUNT(*)를 두 번 실행하는 동안 T2가 새 row를 INSERT + COMMIT하면 T1의 두 카운트가 달라진다. REPEATABLE READ (ANSI)에서 발생.
Phaser 의 강점은 참여자 수가 동적으로 변할 수 있다는 점. register/deregister 로 phase 별 참여자 수가 달라진다.
async/await 는 Promise.then 체이닝의 문법 설탕이다. 컴파일러는 await 를 .then 으로 변환할 수 있다.
pending 으로 태어나 fulfilled 또는 rejected 로 정착한다. 한 번 정착하면 다시 바뀌지 않는다.
.then 의 반환값은 자동으로 Promise 로 감싸진다. 일반 값은 그대로, Promise 반환 시 정착할 때까지 기다린 뒤 다음 .then 으로.
여러 Promise 를 병렬로 시작하고, 모두 fulfilled 될 때까지 기다린다. 하나라도 rejected 면 즉시 rejected.
race 와 비슷하지만 다르다. 첫 fulfilled 만을 결과로 삼고, rejected 는 무시한다. 모두 실패해야만 AggregateError 로 rejected.
성공/실패 무관하게 첫 번째로 정착한 Promise 의 결과를 그대로 반환한다. 타임아웃 패턴의 정통.
여러 reader 가 read lock 을 동시에 잡고 병렬 읽기, writer 가 write lock 잡으면 모두 대기 (배타).
Promise 는 처리하는 쪽과 요청하는 쪽을 두 함수 (resolve, reject) 와 두 메서드 (.then, .catch) 로 명시적으로 나눈다.
Semaphore(3) 에 5 개 스레드가 acquire 시도, 3 개는 즉시 진행, 2 개는 release 까지 BLOCKED.
Filter A → Filter B → Servlet → Filter B post → Filter A post 순서로 진행되는 양파 (onion) 구조.
콜백 실행이 interval 보다 오래 걸리면 매크로태스크 큐에 콜백이 쌓인다. 시간이 흐를수록 큐가 무한히 길어진다.
setTimeout(fn, 1000) 은 콜백을 Web API 타이머에 등록하고, 1초 뒤 만료되면 태스크 큐로 이관, 콜 스택이 비면 실행.
0 밀리초를 줘도 콜백은 동기 코드가 끝나고 마이크로태스크 큐도 다 비운 후에야 실행된다.
Spring 컨테이너가 Bean 인스턴스를 생성/주입/초기화/사용/소멸하는 순서와 콜백 시점.
SELECT 를 가장 먼저 쓰지만, RDBMS 는 FROM → WHERE → GROUP BY → HAVING → SELECT → DISTINCT → ORDER BY → LIMIT 순으로 평가한다.
StampedLock 이 락 없이 stamp 만 받아 읽기 시도, validate 로 변경 감지 → 없으면 lock-free, 있으면 read lock 폴백.
SynchronousQueue 가 용량 0 으로 producer 와 consumer 가 서로를 정확히 한 명씩 기다리며 직접 핸드오프하는 패턴.