본문으로 건너뛰기
김신건의 로그

애니메이션

총 383개 · 14 / 16 페이지 · 313–336

본문 코드 펜스로 삽입: ```anim:<id>

태그로 필터 (697)
Blocking, 결과를 기다리며 잠드는 스레드 14.0s

blocking call 동안 스레드가 BLOCKED 상태로 들어가고 CPU 가 다른 스레드에 넘어갔다가, 결과가 도착하면 다시 깨어나는 전체 흐름.

🔀 흐름 blocking-thread-suspend
12 elements · 6 chapters
#blocking #thread #scheduler #concurrency +1
BlockingQueue, Producer-Consumer 패턴 15.0s

BlockingQueue 가 큐가 비어 있으면 take() 가 block, 가득 차면 put() 이 block 하면서 자연스러운 backpressure 와 생산자/소비자 동기화를 제공한다.

🔀 흐름 java-blocking-queue-pc
17 elements · 6 chapters
#java #blocking-queue #producer-consumer #concurrency +1
callback.call(context, ...) 가 this 를 주입하는 순간 11.0s

표준 forEach 구현에서 call() 이 매 반복마다 callback 의 this 를 외부에서 지정해주는 흐름을 단계별로 보여준다.

🔀 흐름 foreach-call-binding
12 elements · 5 chapters
#javascript #this #call #foreach
CompositeMap, primary + secondary 의 layered lookup 11.0s

Spring 의 CompositeMap 이 두 Map 을 하나의 view 로 통합, primary 우선 조회 후 없으면 secondary 로 폴백.

🔀 흐름 spring-composite-map
10 elements · 4 chapters
#spring #composite-map #layered #lookup
ConcurrentHashMap, bin-level locking 14.0s

ConcurrentHashMap 의 버킷(bin) 단위 락. 다른 버킷에 접근하는 스레드는 서로 경합 없이 진행하고, 같은 버킷 충돌 시에만 그 버킷 첫 노드에 synchronized.

🔀 흐름 java-concurrent-hashmap-bins
24 elements · 6 chapters
#java #concurrent-hashmap #concurrency #hash +1
ConcurrentLinkedQueue, Michael-Scott 알고리즘 14.0s

두 producer 가 동시에 offer 할 때 CAS 로 lock-free 하게 tail 노드를 갱신, 한 스레드의 CAS 실패는 다른 스레드의 tail 진행을 돕는 형태로 진행.

🔀 흐름 java-concurrentlinkedqueue-ms
14 elements · 5 chapters
#java #concurrent-linked-queue #lock-free #cas +1
ConcurrentReferenceHashMap, weak ref + concurrent 13.0s

Spring 의 ConcurrentReferenceHashMap 이 key 를 WeakReference 로 감싸 GC 친화적이면서도 동시성을 유지하는 메커니즘.

🔀 흐름 spring-crh
13 elements · 5 chapters
#spring #concurrent-reference-hashmap #weak-reference #gc
CopyOnWriteArrayList, 쓰기 시 전체 복사 15.0s

여러 reader 가 lock 없이 같은 배열을 읽는 동안, writer 는 전체 배열을 복사하고 수정한 뒤 참조를 swap 한다. 읽기 lock-free, 쓰기 O(n) 복사.

🔀 흐름 java-cow-arraylist
22 elements · 5 chapters
#java #copyonwritearraylist #concurrency #copy-on-write +1
CountDownLatch, N 작업 완료 대기 13.0s

main 스레드가 N 개 worker 의 작업 완료를 기다리는 패턴, 각 worker 가 countDown 호출하면 count 감소, 0 이 되면 await 깨어남.

🔀 흐름 java-countdown-latch
12 elements · 5 chapters
#java #synchronizer #countdown-latch
CyclicBarrier, N 스레드 동시 만남 14.0s

4 개 스레드가 각 phase 의 작업을 마치고 barrier 에서 대기, 모두 도착하면 동시에 다음 phase 진행, 재사용 가능.

🔀 흐름 java-cyclic-barrier
9 elements · 5 chapters
#java #synchronizer #cyclic-barrier
DelayQueue, delay 만료 시점 큐 13.0s

DelayQueue 가 각 원소의 getDelay 만료 시점을 우선순위 힙으로 관리하고, take 가 만료된 원소만 반환하며 그 외에는 시간만큼 block.

🔀 흐름 java-delayq-timed
9 elements · 5 chapters
#java #delayqueue #blocking-queue #delay +1
Dirty Read: 커밋 안 된 값을 읽는 순간 13.0s

T1이 UPDATE 후 아직 COMMIT 하지 않은 상태에서 T2가 SELECT하면 미커밋 값 (dirty) 을 읽어간다. T1이 ROLLBACK 하면 T2가 읽은 값은 실존한 적 없는 유령 데이터가 된다.

🔀 흐름 tx-dirty-read
17 elements · 6 chapters
#transaction #isolation #dirty-read #read-uncommitted
DRF Pagination 세 종류 12.0s

PageNumberPagination (?page=N), LimitOffsetPagination (?limit=X&offset=Y), CursorPagination (?cursor=abc) 각각의 동작 방식을 비교한다.

🔀 흐름 drf-pagination-types
18 elements · 3 chapters
#drf #pagination #cursor #offset
DRF Request Lifecycle 12.0s

DRF는 HTTP 요청을 dispatch → initialize_request → perform_authentication → check_permissions → check_throttles → handler → finalize_response 순으로 처리한다.

🔀 흐름 drf-request-lifecycle
20 elements · 8 chapters
#drf #django #rest #api +1
DRF Serializer: 직렬화 / 역직렬화 10.0s

Serializer는 두 방향으로 동작한다. Model → dict → JSON (직렬화, 응답용) 과 JSON → dict → validated_data → Model (역직렬화, 요청용).

🔀 흐름 drf-serializer-flow
17 elements · 5 chapters
#drf #serializer #json #validation
JPA Entity 상태 전이와 PersistenceContext 18.0s

transient → managed → detached → removed 4 상태 전이. PersistenceContext 내부 변화와 DB 반영 시점을 분리해 시각화.

🔀 흐름 jpa-persistence-context-states
14 elements · 7 chapters
#jpa #hibernate #persistence-context #entity-lifecycle
JPA N+1: 발생과 해결 16.0s

EAGER fetch 시 posts 1번 SELECT + 각 post 의 author 마다 추가 SELECT 발생. fetch join 으로 1쿼리에 해결.

🔀 흐름 spring-jpa-n-plus-one
12 elements · 6 chapters
#jpa #hibernate #n-plus-one #fetch +1
LinkedBlockingQueue, 두 락의 head/tail 분리 12.0s

LinkedBlockingQueue 가 putLock 과 takeLock 을 분리해 producer 와 consumer 가 동시 진행 가능한 메커니즘.

🔀 흐름 java-lbq-twolock
14 elements · 4 chapters
#java #linkedblockingqueue #blocking-queue #two-lock
LongAdder, striped counter 의 분산 누적 13.0s

여러 스레드가 LongAdder.increment 호출 시 hash 로 다른 cell 에 분산 누적, AtomicLong 의 CAS 경합을 회피.

🔀 흐름 java-long-adder-striped
16 elements · 5 chapters
#java #atomic #long-adder #striped +1
Lost Update: 두 tx의 UPDATE 중 하나가 사라진다 14.0s

T1, T2가 같은 카운터를 read-modify-write할 때, 두 번 증가시켰는데 결과는 한 번만 반영된다. 원자 UPDATE, FOR UPDATE, 낙관적 lock으로 해결.

🔀 흐름 tx-lost-update
18 elements · 4 chapters
#transaction #isolation #lost-update #counter +1
MultiValueMap, 하나의 key 에 여러 value 12.0s

Spring 의 LinkedMultiValueMap 이 Map<K, List<V>> 위에 add 메서드를 제공해 같은 key 에 여러 값을 자연스럽게 누적.

🔀 흐름 spring-multi-value-map
12 elements · 5 chapters
#spring #multi-value-map #linked-multi-value-map #http
Non-Blocking I/O, 한 스레드로 여러 소켓 처리 15.0s

Selector 가 준비된 소켓들만 골라주고, 단일 스레드가 그 소켓들을 차례로 non-blocking 으로 읽고 처리한 뒤 다시 select 로 돌아가는 패턴.

🔀 흐름 non-blocking-selector
17 elements · 8 chapters
#non-blocking #nio #selector #epoll +1
Non-Repeatable Read: 같은 SELECT, 다른 결과 14.0s

T1이 SELECT를 두 번 실행하는 동안 T2가 UPDATE + COMMIT을 완료하면, T1의 두 SELECT 결과가 달라진다. READ COMMITTED에서 발생.

🔀 흐름 tx-non-repeatable-read
16 elements · 4 chapters
#transaction #isolation #non-repeatable-read #read-committed
pandas groupby, split-apply-combine 14.0s

groupby 가 데이터를 그룹으로 나누고 (split), 각 그룹에 함수 적용 (apply), 결과를 하나로 합치는 (combine) 세 단계.

🔀 흐름 pandas-groupby-sac
18 elements · 4 chapters
#python #pandas #groupby #split-apply-combine

사이트 검색 / 명령어

검색

스크롤 = 확대/축소 · 드래그 = 이동 · 0 = 원래 크기 · ESC = 닫기