레이어가 거꾸로 의존하지 못하게 — ArchUnit으로 아키텍처를 테스트하기
컨트롤러→서비스→리포지토리 의존 방향과 패키지 규칙을 컴파일이 아닌 테스트로 강제하는 법. ArchUnit으로 아키텍처를 코드에 박제한다.
키워드가 정확히 일치하지 않아도 의미로 글을 찾아줍니다. 모든 처리는 브라우저 안에서 일어나며 — 서버·API 키·외부 전송이 없습니다. (검색 모델은 처음 한 번만 받고 이후 캐시됩니다.)
매일 자동으로 바뀌는 복습 6선 — Network · OS · Algorithm · Database 각 1편 + 랜덤 2편.
컨트롤러→서비스→리포지토리 의존 방향과 패키지 규칙을 컴파일이 아닌 테스트로 강제하는 법. ArchUnit으로 아키텍처를 코드에 박제한다.

서비스가 커지면 “메시지”가 필요해진다 모놀리식에서 모든 걸 동기 호출로 처리하다 보면, 주문 하나에 결제·재고·알림·정산이 줄줄이 매달려 느려지고, 하나가 죽으면 전체가 흔들립니다. 이때 “이벤트를 발행하고 각자 알아서 처리” 하는 비동기 구조가 필요해지는데, 그 중심에 Apache Kafka가 있습니다. Kafka는 단순 메시지 큐를 넘어선 분...

포워드 프록시와 리버스 프록시의 차이, HTTP 캐싱(Cache-Control·ETag), CDN 엣지 캐싱과 Anycast로 가장 가까운 PoP 라우팅, origin shielding과 캐시 무효화(CloudFront)를 설명합니다.
수십만 건을 페이지 단위로 내보내는 도중 원본이 변경될 때 생기는 중복·누락 현상과, 스냅샷·키셋 기반으로 일관된 추출을 보장하는 방법을 다룬다.
함께 바뀌어야 하는 데이터를 하나의 일관성 단위(애그리거트)로 묶고, 불변식과 트랜잭션 경계를 어떻게 설계하는지 다룬다.
하나의 스키마에 여러 집단의 데이터가 섞여 있을 때, 모든 쿼리에 테넌트 조건을 강제하지 않으면 어떻게 데이터가 교차 노출되는지와 기본 스코프 강제 설계를 다룬다.

그리디 알고리즘은 언제 통하고 언제 실패할까? 교환 논법과 활동 선택, 그리고 허프만 코딩이 빈도로 최적 압축을 만드는 과정을 애니메이션으로 정리합니다.
단일 컨슈머 스레드의 처리량 한계를 워커 풀로 넘되, 작업 완료 후에만 오프셋을 커밋해 메시지 유실을 막는 동시성 모델.
외부에서 들어오는 모든 입력을 신뢰 경계에서 검증해야 하는 이유, 내부 신뢰 가정의 위험, 다층 방어 설계를 다룬다.