근거
출처
글에서 인용하거나 참고로 단 책, 글, 문서, 코드를 출처별로 모았습니다. 출처를 누르면 어느 글이 그 출처에 기댔고 어떤 대목을 가져왔는지 볼 수 있습니다.
- RFC 9110: HTTP Semantics
- Spring Framework Reference — Using @Transactional
- data-ops-lab
- SLASH 23
- spring-ops-lab
- JEP 444: Virtual Threads
- Kafka: Topic Configs (cleanup.policy)
- RFC 9112: HTTP/1.1
- SET
- SLASH 21
- 해외주식 서비스 안정화 사례 (Toss Tech)
- How to do distributed locking
- HikariCP: About Pool Sizing
- Linux man: tcp(7)
- SLASH 22
- Spring Framework Reference — Container Extension Points
- Spring Framework Reference — Dependency Injection
- 토스증권 서버 개발자가 많이 듣는 질문 4가지
- ByteBuffer (Java SE 21 API)
- Exponential Backoff And Jitter
- RFC 8446 The Transport Layer Security (TLS) Protocol Version 1.3
- Apache Kafka 4.3 Producer Configs
- Distributed Locks with Redis
- JEP 439: Generational ZGC
- JEP 491: Synchronize Virtual Threads without Pinning
- Kafka 4.3 Design
- Kafka 이중화로 다양한 장애 상황 완벽 대처하기 (SLASH 23 세션)
- microservices.io: Pattern: Transactional outbox
- MySQL 8.0 Reference Manual: InnoDB Locking
- MySQL 8.0 Reference Manual: InnoDB Multi-Versioning
- MySQL 8.0 Reference Manual: InnoDB Startup Options and System Variables
- MySQL 8.4: InnoDB Startup Options and System Variables
- MySQL: InnoDB Transaction Isolation Levels
- Oracle Java SE 21 GC Tuning Guide: Available Collectors
- Redis Pub/Sub: Delivery semantics
- Redis serialization protocol specification
- Resilience4j - CircuitBreaker
- RFC 9114: HTTP/3
- SLASH 24
- Spring Boot Reference: Creating Your Own Auto-configuration
- Spring Framework Reference — Bean Scopes
- Spring: Understanding AOP Proxies
- 실시간 시세 데이터 안전하고 빠르게 처리하기 (SLASH 23)
- 애플 한 주가 고객에게 전달되기까지 (SLASH 22)
- 토스증권 실시간 시세 적용기 (SLASH 22)
- Transaction Isolation
- Avoiding Double Payments in a Distributed Payments System
- Logical Decoding Concepts
- Microservices
- Site Reliability Engineering
- The TLA+ Home Page
- Using EXPLAIN
- 하루 N억 건의 알림 시스템 구축기 (1): 카카오뱅크는 어떻게 발송 플랫폼의 새로운 뼈대를 세웠나
- #2: 데이터 미러링
- #3: Offset Sync
- Amazon SQS at-least-once delivery
- Amazon SQS message quotas
- Apache POI: SXSSF (Streaming Usermodel API)
- Apache Tomcat 10.1, The HTTP Connector
- ArchUnit: User Guide
- async-profiler
- baeldung.com/jvm-garbage-collectors
- Changelog
- Dan Kegel: The C10K problem
- Debezium connector for PostgreSQL: WAL disk space consumption
- FileChannel
- Hibernate hbm2ddl validate
- High availability with Redis Sentinel
- HikariCP README
- HotSpot GC Tuning Guide 21: Garbage-First (G1) Garbage Collector
- Javadoc - ThreadPoolExecutor.DiscardOldestPolicy
- JDK 21 Tool Specifications - jcmd
- JEP 248: Make G1 the Default Garbage Collector
- JMH: Java Microbenchmark Harness
- Kafka 4.3 Consumer Configs
- Kafka 4.3 Operations: Hardware and OS
- Kafka 4.3 Topic Configs
- Kafka Design: Log Compaction
- Linux kernel documentation: Kernel TLS
- Linux man: epoll_ctl(2)
- Logback Manual, Chapter 8: Mapped Diagnostic Context
- Martin Fowler - CQRS
- Martin Fowler - Strangler Fig Application
- MDN: Cross-Origin Resource Sharing (CORS)
- microservices.io - Pattern: Saga
- Netty 4.1 Javadoc, ChannelPipeline
- Netty 4.1 Javadoc, EventLoop
- Netty wiki: Reference counted objects
- Oracle: The java Command (JDK 21)
- ParityPay
- PgBouncer: Configuration
- PostgreSQL Documentation - CREATE TRIGGER
- PostgreSQL Documentation: LIMIT and OFFSET
- PostgreSQL: Explicit Locking
- PostgreSQL: Extended Statistics
- PostgreSQL: INSERT
- Redis Cluster 사양 - ASK 리다이렉션
- Redis: Diagnosing latency issues
- RFC 9111: HTTP Caching
- RFC 9293 - Transmission Control Protocol
- singleflight
- Spring Boot Reference - Metrics
- Spring Boot: proxyTargetClass default
- Spring Boot: SpringApplication — Lazy Initialization, Application Startup Tracking
- Spring Boot: Task Execution and Scheduling
- Spring Cloud Gateway
- Spring Framework Javadoc — BeanFactory
- Spring Framework Javadoc — HandlerInterceptor
- Spring Framework Javadoc: @TransactionalEventListener
- Spring Framework Reference — Understanding the Spring Framework's Declarative Transaction Implementation
- Spring Framework Reference: Advice Ordering
- Spring Framework: DispatcherServlet
- spring-ops-lab ADR-001: 부하 모델의 기본은 open model
- Spring: Rolling Back a Declarative Transaction
- Stripe: Idempotent requests
- The Java Virtual Machine Specification, Java SE 21: Chapter 5. Loading, Linking, and Initializing
- The Twelve-Factor App, Config
- TLA+ Tools
- Transactions
- W3C Trace Context
- 미국 옵션 실시간 시세 파이프라인 (AWS 기술 블로그)
- 발표 영상
- 발표 영상
- 발표 영상
- 발표 자료 (PDF)
- 토스증권 Apache Kafka 데이터센터 이중화 구성 #1
- Asynchronous Commit
- Customizing the Nature of a Bean
- IntegrationTest
- Is Redlock safe?
- JMHSample_08_DeadCode.java
- Reliable Microservices Data Exchange With the Outbox Pattern
- RFC 8725 JSON Web Token Best Current Practices
- SQL Injection Prevention Cheat Sheet
- Transactional (Spring Framework API)
- 실시간 메시징 시스템 개발기 - 삽질 과정
- 초당 100만 건, LINE 앱에 Apache Kafka 종단 간 암호화 적용기
한 글에서만 참고한 출처 820개
- (2) Kafka Connect 트러블슈팅카카오 「PostgreSQL to ES: Kafka Connect CDC 파이프라인」 1·2편 리뷰 — 변경이 없어서 디스크가 차고, LSN이 사라져서 스냅샷을 다시 짜야 했던 CDC의 실제 운영 비용
- 07판 본문멱등한 API 설계 - HTTP 메서드의 의미와 재시도 계약
- 12bme.tistory.com/57Garbage Collection
- 2026년 토스증권 서버 개발자 인터뷰토스증권 Server Developer (Product) 공고 분석: 제품 개발자에게 원장 수준의 정합성을 요구하는 이유
- 2xx - 성공HTTP 웹 기본 지식 7: 상태 코드가 클라이언트의 다음 행동을 정한다
- 3dmpengines.tistory.com/2003MultiThreading and Thread Scheduling
- 3xx - 리다이렉션1HTTP 웹 기본 지식 7: 상태 코드가 클라이언트의 다음 행동을 정한다
- 3xx - 리다이렉션2HTTP 웹 기본 지식 7: 상태 코드가 클라이언트의 다음 행동을 정한다
- 4xx - 클라이언트 오류, 5xx - 서버 오류HTTP 웹 기본 지식 7: 상태 코드가 클라이언트의 다음 행동을 정한다
- 5 reasons why testing code is great테스트 코드는 왜 작성해야 할까?
- 5 simple reasons why testing code is important테스트 코드는 왜 작성해야 할까?
- 5.2.2SLASH 21 리뷰 - SRE 사례 소개: Redis 리밸런싱 ASK 에러, Memcached 재분배 실패, Prometheus가 바꾼 GC 패턴
- 5.3.1SLASH 21 리뷰 - SRE 사례 소개: Redis 리밸런싱 ASK 에러, Memcached 재분배 실패, Prometheus가 바꾼 GC 패턴
- 6개월 만에 연간 수십조를 처리하는 DB CDC 복제 도구 무중단/무장애 교체하기네이버 D2 「6개월 만에 연간 수십조를 처리하는 DB CDC 복제 도구 무중단/무장애 교체하기」 리뷰 — 복제·검증·복구를 셋으로 나누고, 옛 도구와 새 도구를 서로 모르게 같이 돌린 전환
- @Cacheable JavadocPreventing Cache Write Amplification under High Concurrency
- @Configuration Javadoc, proxyBeanMethodsspring-internals-lab로 다시 읽는 Spring 2 - BeanDefinition과 등록 단계
- @RequestCache: HTTP 요청 범위 캐싱을 위한 커스텀 애너테이션 개발기네이버 D2 「@RequestCache: HTTP 요청 범위 캐싱을 위한 커스텀 애너테이션 개발기」 리뷰 — 캐시의 수명을 '요청 하나'로 맞추면 TTL 고민이 사라진다, 그리고 @RequestScope가 안 되는 이유
- A Critique of ANSI SQL Isolation Levels격리 수준과 이상 현상 - 표준이 정의한 것과 MySQL·PostgreSQL이 실제로 하는 것
- aaronryu.github.io/2021/03/14/thread-and-security-context-holder-mode/Thread Local
- About continuous aggregatesTimescaleDB를 시계열 DB로 고른 이유 — Hypertable과 연속 집계
- AbstractApplicationContext.java (v6.1.14)spring-internals-lab로 다시 읽는 Spring 3 - refresh()와 Bean 생성 파이프라인
- AbstractAutowireCapableBeanFactory (v6.2.0)spring-internals-lab로 다시 읽는 Spring 5 - Bean lifecycle과 후처리기
- adoclib.com/blog/hssfworkbook-vs-xssfworkbook-vs-sxssfworkbook-apache-poi.htmlApache POI SXSSF vs XSSF vs HSSF
- akamas.io/resources/right-app-gc-maximum-performance/G1gc Zgc
- Aleksey Shipilev, Nanotrusting the Nanotime직접 만든 마이크로벤치마크는 얼마나 틀리는가 - 결함 넷을 하나씩 재봤다
- ALTER TABLE Statement카카오 「MySQL ALTER DDL 수행 방식에 대한 이해」 리뷰 — Copy·In-Place·Instant는 '무엇을 복사하느냐'보다 '언제 Exclusive 메타 락을 잡느냐'로 구분된다
- Amazon S3 User Guide, Download and upload objects with presigned URLs대용량 파일 업로드를 위한 Presigned URL
- Amazon S3 User Guide, Uploading and copying objects using multipart upload대용량 파일 업로드를 위한 Presigned URL
- Amazon SQS visibility timeout폴링 배치를 SQS 이벤트 파이프라인으로 바꾼 이유: 재시도, DLQ, 메시지 ID 멱등
- anmolsehgal.medium.com/java-garbage-collectors-610689a5b125G1gc Zgc
- Annotated ControllersGraphQL with Spring Boot
- Apache Kafka - Basic Kafka OperationsSLASH 22 리뷰 - 왜 은행은 무한스크롤이 안되나요: 채널계가 거래내역을 직접 갖기 위한 여덟 가지 방어
- Apache Kafka - IntroductionSLASH 22 리뷰 - 왜 은행은 무한스크롤이 안되나요: 채널계가 거래내역을 직접 갖기 위한 여덟 가지 방어
- Apache Kafka - KafkaConsumer Javadoc (3.7)ParityPay로 검증하는 결제 정합성 8 - Kafka에서 중복·유실·순서 역전을 직접 만들어 보기: 멱등 소비자와 Outbox가 막는 것과 못 막는 것
- Apache Kafka - Producer Configs (3.7)ParityPay로 검증하는 결제 정합성 8 - Kafka에서 중복·유실·순서 역전을 직접 만들어 보기: 멱등 소비자와 Outbox가 막는 것과 못 막는 것
- Apache Kafka 3.8, Consumer Configsmarket.ticks 파티션 × 컨슈머 격자 — 키가 같아도 순서가 깨진 이유, 크래시 하나가 시세 전체를 멈춘 이유, 파티션 이웃이 인질이 되는 순간
- Apache Kafka 3.9 docs, Operations: Geo-Replication네이버 D2 「일 3,000만 건의 네이버페이 주문 메시지를 처리하는 Kafka 시스템의 무중단 전환 사례」 리뷰 — 두 벌로 발행해 대조한 검증기와, 발행 제어 키를 파티션 키와 같게 둔 이유
- Apache Kafka Consumer Configs, max.poll.interval.msTMC 25 리뷰 - '주식모으기' 서비스로 살펴보는 대용량 트래픽 처리 노하우: 200만 주문을 3,000건으로 접는 풀링 주문과 그 대가
- Apache Kafka Documentation: Security OverviewLINE 「초당 100만 건, LINE 앱에 Apache Kafka 종단 간 암호화 적용기」 리뷰 — 인터셉터와 시리얼라이저만으로 브로커에 평문을 남기지 않는 법
- Apache Kafka: Introduction순서와 격리는 같은 자원을 반대로 당긴다 - 핫 키가 워커 하나를 넘는 순간 세 설계가 갈라지는 지점
- Apache Log4j. Apache Log4j 1.xLog4j vs Logback vs Log4j2
- Apache Log4j. Asynchronous loggersLog4j vs Logback vs Log4j2
- Apache POI Java Excel Performance for Large Spreadsheets2025-02-03-TIL
- API ReferenceApache Zookeeper
- apiguide.readthedocs.io/en/latest/build_and_publish/use_RESTful_urls.html2021-04-07-TIL
- appdynamics.com/topics/what-is-cloud-native-architectureMicroservices Architecture
- aquasec.com/cloud-native-academy/cloud-native-applications/cloud-native-architecture/Microservices Architecture
- Architectural Decision Records (adr.github.io)ADR(Architecture Decision Record) - 결정의 맥락을 결정과 함께 남기기
- ArchUnitSLASH 22 리뷰 - 지속 성장 가능한 코드를 만들어가는 방법: import 문이 보내는 신호로 패키지·레이어·모듈을 다시 보기
- async-profiler v4.0: Profiling ModesCPU 프로파일러가 1순위로 지목한 코드를 고쳤더니 아무 일도 없었다
- AtomicIntegerLock-Free와 CAS - 락 없이 공유 변수를 바꾸는 방법과 그 한계
- AtomicStampedReferenceLock-Free와 CAS - 락 없이 공유 변수를 바꾸는 방법과 그 한계
- auth0.com/docs/secure/tokens/token-best-practicesToken Authentication
- AWS Builders' Library: Timeouts, retries, and backoff with jitter타임아웃, 재시도, 백오프 - 증폭과 지터, 그리고 데드라인 전파
- AWS. What is load balancing?Load Balancing Algorithms
- AWS. 마이크로서비스란 무엇입니까?Microservice Architecture
- aws.amazon.com/ko/premiumsupport/knowledge-center/api-gateway-cors-errors/2021-05-11-TIL
- aws.amazon.com/what-is/cloud-native/Microservices Architecture
- backstage.forgerock.com/knowledge/kb/article/a75965340G1gc Zgc
- baeldung.com/java-threadlocalThread Local
- baeldung.com/thread-pool-java-and-guavaThread Local
- Barrier and Queue TutorialApache Zookeeper
- BBR: Congestion-Based Congestion Control (ACM Queue)혼잡 제어와 지연 - BDP, 버퍼블로트, 처리량과 지연의 교환
- Beanspring-internals-lab로 다시 읽는 Spring 6 - 프록시와 AOP
- BeanDefinition Javadocspring-internals-lab로 다시 읽는 Spring 2 - BeanDefinition과 등록 단계
- belief-driven-design.com/looking-at-java-21-generational-zgc-e5c1c/G1gc Zgc
- Best Practices for Creating Utility Classes in Software Development헬퍼 클래스는 안티패턴일까?
- betterprogramming.pub/understanding-the-jvm-memory-model-heap-vs-non-heap-c14aa6fa703eGarbage Collectors
- binux.tistory.com/152Thread Local
- Bits.java다이렉트 메모리와 Cleaner - 힙 밖의 버퍼는 누가 언제 해제하는가
- blog-dreamus.com/post/zgc%EC%97%90-%EB%8C%80%ED%95%B4%EC%84%9CG1gc Zgc
- blog.bitsrc.io/basics-of-javascript-pure-functions-3e6f3437066Pure Function
- blog.daum.net/krcpolicy/69252021-10-07-TIL
- blog.devgenius.io/every-jvm-garbage-collector-you-should-know-2b4b3b96282bG1gc Zgc
- blog.gaerae.com/2015/01/bash-hello-world.htmlShell Script
- blog.gceasy.io/2023/07/04/java-zgc-algorithm-tuning/G1gc Zgc
- blogs.oracle.com/javamagazine/post/understanding-the-jdks-new-superfast-garbage-collectorsG1gc Zgc
- Boost JPA Bulk Insert Performance by 90%2025-02-03-TIL
- Brendan Gregg, Off-CPU AnalysisCPU 프로파일러가 1순위로 지목한 코드를 고쳤더니 아무 일도 없었다
- brunch.co.kr/2021-10-07-TIL
- Bufferbloat: Dark Buffers in the Internet (ACM Queue)혼잡 제어와 지연 - BDP, 버퍼블로트, 처리량과 지연의 교환
- byeongmoo.tistory.com/2MultiThreading and Thread Scheduling
- Cache stampede캐시 스탬피드(Cache Stampede)
- Cache Stampede or Dogpile Problem in System Design캐시 스탬피드(Cache Stampede)
- CacheManager네이버 D2 「@RequestCache: HTTP 요청 범위 캐싱을 위한 커스텀 애너테이션 개발기」 리뷰 — 캐시의 수명을 '요청 하나'로 맞추면 TTL 고민이 사라진다, 그리고 @RequestScope가 안 되는 이유
- Cardinality메트릭, 로그, 트레이스 - 무엇을 어디에 남기고 카디널리티는 어디서 터지는가
- CDC 복제 이후 오라클이 느려졌다? child cursor 폭증이 만든 예상치 못한 문제네이버 D2 「CDC 복제 이후 오라클이 느려졌다? child cursor 폭증이 만든 예상치 못한 문제」 리뷰 — 같은 SQL인데 바인딩 타입이 다르면 Oracle은 다른 쿼리로 본다
- Channel Messaging APILINE 「도메인에 의존하지 않는 채팅 플랫폼은 어떻게 만들었을까?」 리뷰 — 사용자를 모르는 채팅 플랫폼, 웹으로 만든 클라이언트, SOFT STOP으로 갈아 끼우는 챗봇 시나리오
- Chrome for Developers: Remove HTTP/2 Server Push from ChromeHTTP/1.1, 2, 3 - HOL 블로킹은 어디로 옮겨갔는가
- Chunk-oriented Processing우아한형제들 「Spring Batch와 Querydsl」 리뷰 — offset을 버린 Reader가 21분을 4분으로 만든 이유, 그리고 그 Reader가 답하지 않는 두 가지
- Class Helpers: Good or Bad ?헬퍼 클래스는 안티패턴일까?
- CLB vs. ALB vs. NLB—Which AWS load balancer is right for you?ELB vs ALB vs NLB
- clickittech.com/devops/cloud-native-architecture/Microservices Architecture
- cloud.google.com/blog/products/application-development/5-principles-for-cloud-native-architecture-what-it-is-and-how-to-master-itMicroservices Architecture
- Cloudflare. Types of load balancing algorithmsLoad Balancing Algorithms
- Cloudflare: HTTP/3 from A to ZHTTP/1.1, 2, 3 - HOL 블로킹은 어디로 옮겨갔는가
- Cloudflare: Introducing Zero Round Trip Time Resumption (0-RTT)TLS 핸드셰이크의 비용 - 세션 재개와 0-RTT의 대가
- Cloudflare: SYN packet handling in the wildTCP 연결 수립과 큐 - SYN 백로그, accept 큐, TIME_WAIT
- cncf.io/Microservices Architecture
- coding-dahee.tistory.com/1452021-10-07-TIL
- Common MIME typesMIME(Multipurpose Internet Mail Extensions)
- Concurrency is not parallelism동기·비동기 강의 정리: 기다림과 실행 순서를 따로 보기
- ConfigurableApplicationContext Javadocspring-internals-lab로 다시 읽는 Spring 3 - refresh()와 Bean 생성 파이프라인
- ConfigurationClassBeanDefinitionReader (v6.2.0)spring-internals-lab로 다시 읽는 Spring 2 - BeanDefinition과 등록 단계
- Configuring a Hikari Connection Pool with Spring BootHikariCP
- Confluent: Schema Evolution and CompatibilityAPI 버저닝과 호환성 - 스키마 진화 규칙
- Consistency Tradeoffs in Modern Distributed Database System Design일관성 모델 - 선형화, 순차, 최종 일관성, 그리고 CAP를 설정값의 언어로
- ContextualDeserializer카카오 「추가배포 없이 API의 case 통일시키기」 리뷰 — 받는 쪽이 자기 케이스에 맞춰 알아서 읽게 하면 배포 순서가 사라진다
- Control Group v2: CPU Interface Files컨텍스트 스위칭과 스케줄링 - CFS, cgroup CPU 제한, 그리고 스로틀링
- coupang.com/2021-10-07-TIL
- cr.openjdk.org/~pliden/slides/ZGC-OracleDevLive-2020.pdfG1gc Zgc
- d2.naver.com/helloworld/0128759G1gc Zgc
- d2.naver.com/helloworld/1329Garbage Collection
- d2.naver.com/helloworld/329631Garbage Collection
- Dapper, a Large-Scale Distributed Systems Tracing InfrastructureSLASH 23 리뷰 - 분산 추적 체계 & 로그 중심으로 Observability 확보하기: 좋은 로그의 조건, 글로벌 trace ID, TCP 전문에 문맥 심기, 헤더 라우팅 디버깅 환경
- Data retentionTimescaleDB를 시계열 DB로 고른 이유 — Hypertable과 연속 집계
- Data Type Storage Requirements카카오 「MySQL DATETIME, TIMESTAMP 데이터 타입에 대한 분석」 리뷰 — 바이트 단위 저장 구조부터 아직 안 고쳐진 Y2K38까지
- DataIntegrityViolationException폴링 배치를 SQS 이벤트 파이프라인으로 바꾼 이유: 재시도, DLQ, 메시지 ID 멱등
- DBLog: A Watermark Based Change-Data-Capture Framework (Netflix, 2020)CDC의 원리와 한계 - 로그 기반 변경 포착, 초기 스냅샷, 스키마 변경
- Debezium: Connector for MySQLCDC의 원리와 한계 - 로그 기반 변경 포착, 초기 스냅샷, 스키마 변경
- Debugging Classloading네이버 D2 「6개월 만에 연간 수십조를 처리하는 DB CDC 복제 도구 무중단/무장애 교체하기」 리뷰 — 복제·검증·복구를 셋으로 나누고, 옛 도구와 새 도구를 서로 모르게 같이 돌린 전환
- DeferredImportSelector Javadocspring-internals-lab로 다시 읽는 Spring 9 - Spring Boot는 무엇을 자동으로 조립하는가
- developer.mozilla.org/en-US/docs/Web/JavaScript/ClosuresClosure
- developers.redhat.com/articles/2021/11/02/how-choose-best-java-garbage-collectorG1gc Zgc
- developers.redhat.com/blog/2016/07/20/from-fragile-to-antifragile-softwareMicroservices Architecture
- deveric.tistory.com/104Concorrency
- Differences: ALB vs. NLB vs. CLBELB vs ALB vs NLB
- digitalbourgeois.tistory.com/542021-04-07-TIL
- digitalocean.com/community/tutorials/java-threadlocal-exampleThread Local
- Direct-X-Buffer.java.template다이렉트 메모리와 Cleaner - 힙 밖의 버퍼는 누가 언제 해제하는가
- DisposableBeanAdapter (v6.2.0)spring-internals-lab로 다시 읽는 Spring 5 - Bean lifecycle과 후처리기
- Distributed Systems Observability메트릭, 로그, 트레이스 - 무엇을 어디에 남기고 카디널리티는 어디서 터지는가
- dl.acm.org/doi/10.1145/3538532#d1e1202G1gc Zgc
- DNSHTTP 웹 기본 지식 2: IP, TCP, 포트, DNS의 역할 나누기
- docs.azul.com/prime/diagnosing-java-performance-problems-with-gc-log-analyzerG1gc Zgc
- docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/ThreadLocal.htmlThread Local
- docs.oracle.com/javase/7/docs/api/java/lang/ThreadLocal.htmlThread Local
- docs.oracle.com/javase/specs/jvms/se7/html/jvms-2.htmlGarbage Collectors
- docs.spring.io/spring-framework/docs/3.2.4.RELEASE_to_4.0.0.M3/Spring%20Framework%203.2.4.RELEASE/org/springframework/web/context/request/RequestContextHolder.htmlThread Local
- docs.spring.io/spring-security/site/docs/3.0.x/reference/technical-overview.htmlThread Local
- Does a Method’s Signature Include the Return Type in Java?Function Signature
- draft-ietf-ccwg-bbr: BBR Congestion Control혼잡 제어와 지연 - BDP, 버퍼블로트, 처리량과 지연의 교환
- Dynamo: Amazon's Highly Available Key-value Store읽기 수리, 쓰기 수리, 비동기 수리 - 최종 일관성은 누가 언제 맞추는가
- dzone.com/articles/an-alternative-approach-to-threadlocal-using-sprin-1Thread Local
- dzone.com/articles/choosing-the-best-garbage-collection-algorithm-forG1gc Zgc
- dzone.com/articles/java-memory-architecture-model-garbage-collectionGarbage Collectors
- dzone.com/articles/jvm-architecture-explainedGarbage Collectors
- Eclipse Memory AnalyzerSLASH 23 리뷰 - 프로파일러로 시스템 성능 향상시키기: Pinpoint, 힙 덤프, jemalloc, async-profiler, strace, 그리고 커널 버전
- eginnovations.com/blog/what-is-garbage-collection-java/Garbage Collection
- ELB vs. ALB vs. NLB: Choosing the Best AWS Load Balancer for Your NeedsELB vs ALB vs NLB
- elmprogramming.com/pure-functions.htmlPure Function
- en.dict.naver.com/#/entry/enko/ece8f24b3b1f4c43a459bb1579cb9ad0Microservices Architecture
- en.wikipedia.org/wiki/Cloud_native_computingMicroservices Architecture
- en.wikipedia.org/wiki/Multithreading_(computer_architectureMultiThreading and Thread Scheduling
- en.wikipedia.org/wiki/Pure_functionPure Function
- enmalvi.com/2021/06/24/springsecurity-inheritablethreadlocal/Thread Local
- entrepreneurshandbook.co/antifragility-how-to-turn-your-business-into-an-immortal-hydra-77b1054c6b48Microservices Architecture
- evan-moon.github.io/2019/12/29/about-pure-functions/Pure Function
- Event Sourcing이벤트 소싱과 CQRS - 언제 비용이 이익을 넘는가
- Exactly-once processing in Amazon SQS대량 엑셀 다운로드를 메시지 큐와 S3 사전 생성으로 개선한 이야기
- Exceptionsspring-internals-lab로 다시 읽는 Spring 8 - DispatcherServlet과 MVC 요청 흐름
- EXPIREMemoryDb, TTL, Hash 구조로 보는 Redis keyspace 설계
- Filebeat Reference: filestream inputISMS 대응을 위한 로그 수집 체계 개선
- Fine-tuning Annotation-based Autowiring with Qualifiersspring-internals-lab로 다시 읽는 Spring 4 - 의존성 주입과 후보 선택
- Fixed-point arithmeticFloating Point
- fldi.kr/2021-10-07-TIL
- Floating-point arithmetic - WikipediaFloating Point
- FlywaySLASH 22 리뷰 - 토스뱅크의 완전히 새로운 대출 시스템: Flyway + Hibernate validate, 대외기관 파이프라인, 연동 서킷과 대기열
- ForkJoinPool Javadoc (Java SE 21)카카오뱅크 「하루 N억 건의 알림 시스템 구축기 (1)」 리뷰 — P99의 80%가 대기였다는 진단, Age 기반 Work-Stealing, 그리고 큐를 나누는 순간 순서를 잃는 문제
- freecodecamp.org/news/what-is-a-pure-function-in-javascript-acb887375dfe/Pure Function
- Function Signature — What is it?Function Signature
- Fundamentals모듈러 모놀리스 - 경계를 코드로 강제하는 방법
- G1 GC humongous objectsSLASH 21 리뷰 - SRE 사례 소개: Redis 리밸런싱 ASK 에러, Memcached 재분배 실패, Prometheus가 바꾼 GC 패턴
- gall.dcinside.com/board/view/?id=tree&no=377147&page=12021-10-07-TIL
- GeeksforGeeks (November 11, 2024). Load Balancing AlgorithmsLoad Balancing Algorithms
- geeksforgeeks.org/closures-in-java-with-examples/Closure
- geeksforgeeks.org/facade-design-pattern-introduction/Facade
- geeksforgeeks.org/jvm-works-jvm-architecture/Garbage Collectors
- geeksforgeeks.org/stress-testing-software-testing/Microservices Architecture
- geeksforgeeks.org/thread-scheduling/MultiThreading and Thread Scheduling
- Generate Excel With POI With Most Optimized Way2025-02-03-TIL
- GenericApplicationContext Javadocspring-internals-lab로 다시 읽는 Spring 3 - refresh()와 Bean 생성 파이프라인
- GET, POSTHTTP 웹 기본 지식 5: 메서드의 의미와 재시도 판단
- Getting Started (Spring Boot)Circuit Breaker로 외부 API 장애 격리 — Resilience4j + KIS·Yahoo 폴백 체인
- github.com/cncf/foundation/blob/main/charter.mdMicroservices Architecture
- github.com/cncf/toc/blob/main/DEFINITION.mdMicroservices Architecture
- github.com/eugenp/tutorials/tree/master/core-java-modules/core-java-concurrency-advanced/src/main/java/com/baeldung/threadlocalThread Local
- github.com/spring-projects/spring-security/blob/main/core/src/main/java/org/springframework/security/core/context/SecurityContextHolder.javaThread Local
- github.com/spring-projects/spring-security/blob/main/core/src/main/java/org/springframework/security/core/context/ThreadLocalSecurityContextHolderStrategy.javaThread Local
- Go Singleflight Melts in Your Code, Not in Your DBSingle Flight
- GraalVM Native Image: Reachability Metadata클래스 로딩과 기동 시간 - 리플렉션의 비용과 AOT가 바꾸는 것
- Gradle Java Plugin - dependency configurationsSLASH 22 리뷰 - 지속 성장 가능한 코드를 만들어가는 방법: import 문이 보내는 신호로 패키지·레이어·모듈을 다시 보기
- GraphQL: Best PracticesREST, gRPC, GraphQL - 선택 기준과 각자가 내는 비용
- GraphQL: PerformanceREST, gRPC, GraphQL - 선택 기준과 각자가 내는 비용
- gRPC Blog: gRPC Load BalancingREST, gRPC, GraphQL - 선택 기준과 각자가 내는 비용
- gRPC: Deadlines타임아웃, 재시도, 백오프 - 증폭과 지터, 그리고 데드라인 전파
- gRPC: IntroductionREST, gRPC, GraphQL - 선택 기준과 각자가 내는 비용
- gRPC: Retry타임아웃, 재시도, 백오프 - 증폭과 지터, 그리고 데드라인 전파
- guru99.com/stress-testing-tutorial.htmlMicroservices Architecture
- hazelcast.com/glossary/cloud-native-architecture/Microservices Architecture
- Helper class - Wikipedia헬퍼 클래스는 안티패턴일까?
- Helper class is evil헬퍼 클래스는 안티패턴일까?
- Helper class usage best practice헬퍼 클래스는 안티패턴일까?
- Helper Classes Are Evil헬퍼 클래스는 안티패턴일까?
- Helper classes considered bad OO헬퍼 클래스는 안티패턴일까?
- Helper Classes in Android헬퍼 클래스는 안티패턴일까?
- hg.openjdk.org/zgc/zgc/file/59c07aef65ac/src/hotspot/os_cpu/linux_x86/zGlobals_linux_x86.hpp#l39G1gc Zgc
- Hibernate 6.6: Limits and offsetsJPA 활용 2편 복습: API 응답과 조회 전략을 분리하기
- Hibernate Bulk loading from excel: suggestions for design or approach for better performance2025-02-03-TIL
- Hibernate ORM 6.5 User Guide: Flushing카카오 「잃어버린 리포트를 찾아서: 카카오 메시징 시스템의 경쟁 조건 문제와 안티 패턴 제거 과정」 리뷰 — 벤더가 8ms 만에 리포트를 보냈고, 우리는 101ms짜리 트랜잭션 안에 있었다
- Hibernate ORM 6.6 User Guide: FlushingParityPay로 검증하는 결제 정합성 2 - 잠금을 필요 이상으로 오래 쥐고 있었다: 추론을 측정으로 바꾼 기록
- Hibernate ORM 6.6: An Introduction to Hibernate 6Spring에서 이해해야 할 JPA 아키텍처
- hibernate.org/orm/documentation/6.2/2023-06-22-TIL
- HikariCP Best Practices for Oracle Database and Spring BootHikariCP
- HikariCP란?HikariCP
- honeyinfo7.tistory.com/323Thread Local
- Hot key Cache Stampede와 Probabilistic Early Recomputation 적용캐시 스탬피드(Cache Stampede)
- How NOT to Measure Latency백분위 통계 - 평균이 거짓말하는 이유와 히스토그램의 집계 오류
- How the Pattern Works컬리 「컬리의 입고 시스템이 외부 인입 데이터를 안전하게 동기화하는 방법」 리뷰 — 145회 재시도가 맞는 도메인과 재시도를 금지한 도메인, 그리고 발행부와 수신부가 각자 책임지는 구조
- How to Avoid Cache Stampede or “Dogpile” Problem Upon Cache Expiry?캐시 스탬피드(Cache Stampede)
- How to Avoid Static Helper Classes헬퍼 클래스는 안티패턴일까?
- How to Generate an Excel Report in a Spring Boot REST API with Apache POI and Kotlin2025-02-03-TIL
- How to read Excel file in Java Spring Boot and upload into Database?2025-02-03-TIL
- HTML Living Standard, Server-sent eventsSLASH 24 리뷰 - SSE 이벤트 푸쉬로 불필요한 Polling 제거하기: 3초 폴링을 이벤트로 바꾸고 브로커를 세 번 갈아탄 기록
- HTTP API 설계 예시HTTP 웹 기본 지식 6: 폼 전송에서 리소스 중심 API 설계까지
- HTTP API를 만들어보자HTTP 웹 기본 지식 5: 메서드의 의미와 재시도 판단
- HTTP 메서드의 속성HTTP 웹 기본 지식 5: 메서드의 의미와 재시도 판단
- HTTP 메시지HTTP 웹 기본 지식 4: 무상태, 연결 재사용, 메시지 구조
- HTTP 상태코드 소개HTTP 웹 기본 지식 7: 상태 코드가 클라이언트의 다음 행동을 정한다
- HTTP 헤더 개요HTTP 웹 기본 지식 8: 표현과 협상, 인증과 쿠키를 헤더로 연결하기
- hub.docker.com/_/zookeeperApache Zookeeper
- hub.packtpub.com/getting-started-with-z-garbage-collectorzgc-in-java-11-tutorial/G1gc Zgc
- hwahae.co.kr/about2021-10-07-TIL
- hwannny.tistory.com/95Thread Local
- HypertablesTimescaleDB를 시계열 DB로 고른 이유 — Hypertable과 연속 집계
- hyunseob.github.io/2016/08/30/javascript-closure/Closure
- IBM. 마이크로서비스란?Microservice Architecture
- IEEE 754 - WikipediaFloating Point
- IEEE Standard 754 Floating Point NumbersFloating Point
- IETF draft: The Idempotency-Key HTTP Header Field멱등한 API 설계 - HTTP 메서드의 의미와 재시도 계약
- iitk.ac.in/esc101/05Aug/tutorial/essential/threads/priority.htmlMultiThreading and Thread Scheduling
- Improve Cache Speed at Scale - RedisConf 2020캐시 스탬피드(Cache Stampede)
- In Search of an Understandable Consensus Algorithm합의 알고리즘 - Raft를 상태 기계로 읽기
- Incremental Snapshots in Debezium (2021)CDC의 원리와 한계 - 로그 기반 변경 포착, 초기 스냅샷, 스키마 변경
- Index Merge Optimization네이버 D2 「스마트스토어센터 Oracle에서 MySQL로의 무중단 전환기」 리뷰 — 두 DB에 동시에 쓰되 한쪽 실패는 무시하고, 읽기 트래픽을 복제해 성능을 재고, 6개월간 불일치를 0으로 만든 과정
- inf.run/RwpYMicroservices Architecture
- infoworld.com/article/2071214/java-101--understanding-java-threads--part-3--thread-scheduling-and-wait-notify.htmlMultiThreading and Thread Scheduling
- inpa.tistory.com/entry/JAVA-%E2%98%95-JVM-%EB%82%B4%EB%B6%80-%EA%B5%AC%EC%A1%B0-%EB%A9%94%EB%AA%A8%EB%A6%AC-%EC%98%81%EC%97%AD-%EC%8B%AC%ED%99%94%ED%8E%B8Garbage Collectors
- inside.java/2023/06/20/optimizing-memory-utilization-zgc/G1gc Zgc
- inside.java/2023/11/28/gen-zgc-explainer/G1gc Zgc
- instana.com/blog/cloud-native-seeing-through-hype/Microservices Architecture
- InstantiationAwareBeanPostProcessor Javadocspring-internals-lab로 다시 읽는 Spring 5 - Bean lifecycle과 후처리기
- Intel: Advanced Encryption Standard Instructions (AES-NI)TLS 키 교환과 암호 스위트 - key share, forward secrecy, PSK, AES-NI
- Interceptionspring-internals-lab로 다시 읽는 Spring 8 - DispatcherServlet과 MVC 요청 흐름
- IntrinsicCandidate.javaLock-Free와 CAS - 락 없이 공유 변수를 바꾸는 방법과 그 한계
- Introduction to HikariCPHikariCP
- ionutbalosin.com/2019/12/jvm-garbage-collectors-benchmarks-report-19-12/G1gc Zgc
- IPHTTP 웹 기본 지식 2: IP, TCP, 포트, DNS의 역할 나누기
- j-dev.tistory.com/entry/SpringPOI-%EB%8C%80%EC%9A%A9%EB%9F%89-%EC%97%91%EC%85%80-%EB%8B%A4%EC%9A%B4%EB%A1%9C%EB%93%9CApache POI SXSSF vs XSSF vs HSSF
- Jackson DeserializationFeature Javadoc (2.17)API 버저닝과 호환성 - 스키마 진화 규칙
- JaCoCo Coverage CountersSLASH 21 리뷰 - 테스트 커버리지 100%: 두 달의 비용, 1600개 테스트를 6초로, 그리고 100%여도 남는 버그
- Jakarta Bean Validation 3.0JSP 기반 시스템의 구조적 문제를 해결한 아키텍처 전환기: DTO 중심 아키텍처 전환과 검증 체계 개선
- Jakarta Bean Validation 3.0 — AssertTrueJSP 기반 시스템의 구조적 문제를 해결한 아키텍처 전환기: JavaScript에 과도하게 집중된 로직 분리하기
- Jakarta Persistence 3.1 - SequenceGenerator키 생성 병목을 추적해 구조를 바꾼 기록: Part 3 - 채번을 INSERT 시점으로 옮기고 범위 단위로 받기
- Jakarta Persistence 3.1 — AttributeConverterJSP 기반 시스템의 구조적 문제를 해결한 아키텍처 전환기: MyBatis와 JPA 공존 환경의 데이터 정합성 전략
- Jakarta Persistence 3.1 — EnumTypeJSP 기반 시스템의 구조적 문제를 해결한 아키텍처 전환기: MyBatis와 JPA 공존 환경의 데이터 정합성 전략
- Jakarta Persistence 3.1 — VersionSpring과 JPA에서 Race Condition을 다루는 방법
- Java Helper vs. Utility Classes헬퍼 클래스는 안티패턴일까?
- Java Language Specification, §8.4.9: OverloadingFunction Signature
- Java SE 21 - Introduction to JMX TechnologyJMX와 MBean, 그리고 Micrometer가 지표를 얻는 길 - MBean이 없으면 지표는 0이 아니라 없다
- Java SE 21 API - ManagementFactoryJMX와 MBean, 그리고 Micrometer가 지표를 얻는 길 - MBean이 없으면 지표는 0이 아니라 없다
- Java SE 21 API - Semaphore세마포어와 permit - 동시에 몇 개까지 들일지를 세는 도구, 그리고 벌크헤드
- Java SE 21 API - Thread.Statethread dump 읽는 법 - 스레드 상태와 스택 프레임, 그리고 RUNNABLE이 CPU를 쓴다는 뜻이 아닌 이유
- Java SE 21 API: ClassLoader클래스 로딩과 기동 시간 - 리플렉션의 비용과 AOT가 바꾸는 것
- Java SE 21 API: ConcurrentLinkedQueueLock-Free와 CAS - 락 없이 공유 변수를 바꾸는 방법과 그 한계
- Java SE 21 API: java.lang.ref.Cleaner다이렉트 메모리와 Cleaner - 힙 밖의 버퍼는 누가 언제 해제하는가
- Java SE 21 API: java.util.concurrent.atomic 패키지Lock-Free와 CAS - 락 없이 공유 변수를 바꾸는 방법과 그 한계
- Java SE 21 API: SelectorNIO와 이벤트 루프 - 셀렉터, 다이렉트 버퍼, Netty가 대신 해주는 일
- Java SE 21 API: VarHandleLock-Free와 CAS - 락 없이 공유 변수를 바꾸는 방법과 그 한계
- Java SE 21 API: WritableByteChannelNIO와 이벤트 루프 - 셀렉터, 다이렉트 버퍼, Netty가 대신 해주는 일
- Java SE 21 — Enum.valueOfJSP 기반 시스템의 구조적 문제를 해결한 아키텍처 전환기: MyBatis와 JPA 공존 환경의 데이터 정합성 전략
- Java SE 21: PreparedStatementStatement와 PreparedStatement는 무엇이 다른가
- Java SE 21: System.nanoTime()시간과 순서 - 물리 시계의 한계, 논리 시계, 하이브리드 시계
- Java: LongAdder동시성 도구의 비용 - synchronized, ReentrantLock, CAS가 경쟁에서 갈리는 지점
- Java: ReentrantLock동시성 도구의 비용 - synchronized, ReentrantLock, CAS가 경쟁에서 갈리는 지점
- javacan.tistory.com/entry/ThreadLocalUsageThread Local
- JDK 21 Tool Specifications - jstackthread dump 읽는 법 - 스레드 상태와 스택 프레임, 그리고 RUNNABLE이 CPU를 쓴다는 뜻이 아닌 이유
- JDK-6670302: NIO selector wakes up with 0 selected keys infinitelyNIO와 이벤트 루프 - 셀렉터, 다이렉트 버퍼, Netty가 대신 해주는 일
- JDK-8256425: Obsolete Biased Locking in JDK 18동시성 도구의 비용 - synchronized, ReentrantLock, CAS가 경쟁에서 갈리는 지점
- jdm.kr/blog/2Shell Script
- jemalloc heap profilingSLASH 22 리뷰 - Java Native Memory Leak 원인을 찾아서: RSS와 NMT의 2GB 차이, jemalloc 프로파일, C2 컴파일러, Graal JIT
- jeong-pro.tistory.com/23Pure Function
- JEP 122: Remove the Permanent GenerationJVM은 무엇을 하는가
- JEP 317: Experimental Java-Based JIT CompilerSLASH 22 리뷰 - Java Native Memory Leak 원인을 찾아서: RSS와 NMT의 2GB 차이, jemalloc 프로파일, C2 컴파일러, Graal JIT
- JEP 350: Dynamic CDS Archives클래스 로딩과 기동 시간 - 리플렉션의 비용과 AOT가 바꾸는 것
- JEP 374: Deprecate and Disable Biased Locking동시성 도구의 비용 - synchronized, ReentrantLock, CAS가 경쟁에서 갈리는 지점
- JEP 395: RecordsSpring에서 Java 21을 도입할 때 체크할 것
- JEP 446: Scoped Values가상 스레드의 내부 - 스케줄러와 캐리어, 핀닝, 그리고 쓰지 않아야 할 때
- JEP 474: ZGC: Generational Mode by DefaultGC 알고리즘 비교 - G1, ZGC, Shenandoah가 각자 무엇을 포기하는가
- JEP 483: Ahead-of-Time Class Loading & Linking클래스 로딩과 기동 시간 - 리플렉션의 비용과 AOT가 바꾸는 것
- Jepsen: Consistency Models일관성 모델 - 선형화, 순차, 최종 일관성, 그리고 CAP를 설정값의 언어로
- jfokus.se/jfokus22-preso/The-Diabolical-Developers-Guide-to-JVM-Ergonomics-in-Containers.pdfG1gc Zgc
- jhnyang.tistory.com/68Shell Script
- JLS 17.4: Memory Model자바 메모리 모델 - happens-before, volatile, 그리고 final의 안전 공개
- JMH samples 1.37JIT 컴파일 - 계층 컴파일, 인라이닝, 역최적화
- JMHSample_10_ConstantFold직접 만든 마이크로벤치마크는 얼마나 틀리는가 - 결함 넷을 하나씩 재봤다
- jmlim.github.io/spring/2018/12/11/spring-boot-crossorigin/2021-05-11-TIL
- John Grib (2022.12.22). 콘웨이의 법칙(Conway's law)Microservice Architecture
- JPA 활용1 - 웹 애플리케이션 개발JPA 활용 1편 복습: 계층을 나누고 변경의 경계를 정하기
- JPA 활용2 - API 개발과 성능 최적화JPA 활용 2편 복습: API 응답과 조회 전략을 분리하기
- jqwik User GuideParityPay로 검증하는 결제 정합성 7 - 애플리케이션 코드를 믿지 않는 원장: 이중부기를 계정 체계, DB 제약, 속성 테스트로 강제하기
- JSON Schema야놀자 「RESTful API validation 자동화 하기」 리뷰 — 인터페이스 하나에서 검증·문서·타입을 뽑는 이유, 그리고 자동화가 없으면 누락이 필연이라는 문장
- JSR-133 FAQ자바 메모리 모델 - happens-before, volatile, 그리고 final의 안전 공개
- JVM Anatomy QuarksJIT 컴파일 - 계층 컴파일, 인라이닝, 역최적화
- JVM Native Memory TrackingSLASH 22 리뷰 - Java Native Memory Leak 원인을 찾아서: RSS와 NMT의 2GB 차이, jemalloc 프로파일, C2 컴파일러, Graal JIT
- JVM Specification, §4.3.3: MethodDescriptorFunction Signature
- jvm-bench-lab직접 만든 마이크로벤치마크는 얼마나 틀리는가 - 결함 넷을 하나씩 재봤다
- k6 - Dropped iterations무너지는 Spring 서버 1 - CPU는 놀고 있는데 API가 느리다: 업스트림 하나가 무관한 엔드포인트를 죽이는 과정을 thread dump 세 장으로 읽기
- k6: Open and closed models백분위 통계 - 평균이 거짓말하는 이유와 히스토그램의 집계 오류
- Kafka 4.1 Producer Configs일관성 모델 - 선형화, 순차, 최종 일관성, 그리고 CAP를 설정값의 언어로
- Kafka 4.3 Operations: Java VersionKafka의 저장 구조 - 세그먼트와 오프셋, 페이지 캐시와 zero-copy
- Kafka Connect 사용자 가이드토스증권 Kafka 데이터센터 이중화 리뷰: 미러링보다 오프셋이 어렵고, 재난과 작업의 기준이 다르다
- Kafka Connect 설정토스증권 Kafka 데이터센터 이중화 리뷰: 미러링보다 오프셋이 어렵고, 재난과 작업의 기준이 다르다
- Kafka Javadoc: ProducerInterceptorLINE 「초당 100만 건, LINE 앱에 Apache Kafka 종단 간 암호화 적용기」 리뷰 — 인터셉터와 시리얼라이저만으로 브로커에 평문을 남기지 않는 법
- Kafka와 Strimzi를 이용하여 6개의 도메인을 하나의 도메인으로 합쳐보았습니다무신사 「Kafka와 Strimzi를 이용하여 6개의 도메인을 하나의 도메인으로 합쳐보았습니다」 리뷰 — 배치 없이 CDC와 Kafka Streams로 옮긴 결정, 그리고 통합 모델이 원본과 같다는 것을 누가 확인하는가
- Kakao Entertainment - Test Code Why? What? How?테스트 코드는 왜 작성해야 할까?
- Keepalive 설정으로 NGINX HTTP 성능 향상Keep-Alive
- Key evictionRedis Cache Best Practices
- khj93.tistory.com/entry/JAVA-%EB%9E%8C%EB%8B%A4%EC%8B%9DRambda%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B4%EA%B3%A0-%EC%82%AC%EC%9A%A9%EB%B2%95Lambda
- Kim Jaewook (July 15, 2021). 로드 밸런싱(Load balancing) 종류와 알고리즘Load Balancing Algorithms
- kin.naver.com/search/list.naver?query=%EC%8B%9D%EB%AC%BC2021-10-07-TIL
- KIP-345: Static Membership컨슈머 그룹과 리밸런스 - eager, cooperative, static membership
- KIP-429: Incremental Cooperative Rebalancing컨슈머 그룹과 리밸런스 - eager, cooperative, static membership
- KIP-458: Connector Client Config Override Policy토스증권 Kafka 데이터센터 이중화 리뷰: 미러링보다 오프셋이 어렵고, 재난과 작업의 기준이 다르다
- KIP-98: Exactly Once Delivery and Transactional Messaging전달 보장 - at-most-once, at-least-once, exactly-once가 각각 무엇을 약속하는가
- ko.wikipedia.org/wiki/%EC%8A%A4%EB%A0%88%EB%93%9C_(%EC%BB%B4%ED%93%A8%ED%8C%85MultiThreading and Thread Scheduling
- ko.wikipedia.org/wiki/%EC%93%B0%EB%A0%88%EA%B8%B0_%EC%88%98%EC%A7%91_(%EC%BB%B4%ED%93%A8%ED%84%B0_%EA%B3%BC%ED%95%99Garbage Collection
- ko.wikipedia.org/wiki/%EC%95%84%ED%8C%8C%EC%B9%98_POIApache POI SXSSF vs XSSF vs HSSF
- Kotlin - Coroutine scope and structured concurrencySLASH 24 리뷰 - 대규모 사용자 기반의 마이데이터 서비스 안정적으로 운영하기: 클러스터 단위 서킷 코디네이터, 웹소켓 얼리 리턴, 7일 배치 분산
- Kotlin Coroutine ChannelsSLASH 24 리뷰 - 대규모 사용자 기반의 마이데이터 서비스 안정적으로 운영하기: 클러스터 단위 서킷 코디네이터, 웹소켓 얼리 리턴, 7일 배치 분산
- Kotlin 코루틴 설계 문서 (KEEP)SLASH 23 리뷰 - 연결되면 비로소 보이는 것들: Pinpoint 코루틴 플러그인을 만들기 위해 코루틴 바이트코드를 읽다
- Kotlin, Visibility modifiers모듈식 모놀리스를 선택한 이유 — MSA의 유혹을 거부하기
- Kotlin: All-open compiler plugin프록시의 한계 - self-invocation, final, JDK와 CGLIB의 선택
- KRaft: Apache Kafka Without ZooKeeper합의 알고리즘 - Raft를 상태 기계로 읽기
- ktword.co.kr/test/view/view.php?no=4223Microservices Architecture
- Kubernetes: CPU limits and throttling컨텍스트 스위칭과 스케줄링 - CFS, cgroup CPU 제한, 그리고 스로틀링
- Kubernetes: Secrets - Security considerations시크릿 관리 - 로테이션과 주입 경로
- lazyfree.cRedis 단일 스레드가 멈추는 순간 - SCAN이 3.7배 오래 걸리면서 아무도 막지 않고, 120ms 멈춤이 p99에 안 잡히는 이유
- Learn TLA+: Conceptual Overview모델 검사 입문 - TLA+, TLC, 상태 공간, 불변조건, 반례
- Learn TLA+: Invariants모델 검사 입문 - TLA+, TLC, 상태 공간, 불변조건, 반례
- learn.microsoft.com/en-us/dotnet/architecture/cloud-native/definitionMicroservices Architecture
- learning.postman.com/docs/publishing-your-api/documenting-your-api/2021-04-07-TIL
- lesstif.com/lpt/bash-shell-script-programming-26083916.htmlShell Script
- Linearizability일관성 모델 - 선형화, 순차, 최종 일관성, 그리고 CAP를 설정값의 언어로
- Linearizability: A Correctness Condition for Concurrent Objects일관성 모델 - 선형화, 순차, 최종 일관성, 그리고 CAP를 설정값의 언어로
- LINE에서 Kafka를 사용하는 방법 - 1편LINE 「LINE에서 Kafka를 사용하는 방법 - 1편」 리뷰 — 초당 4GB 클러스터가 바이트가 아니라 요청 수를 제한하는 이유, 그리고 2,000틱짜리 파이프라인에서 같은 것을 본 기록
- linkedin.com/pulse/choosing-best-garbage-collection-algorithm-better-java-prasadG1gc Zgc
- linkedin.com/pulse/jdk-17-g1gc-vs-zgc-usage-core-exchange-application-performance-razaG1gc Zgc
- Linux man: epoll(7)epoll - select, poll과의 차이와 edge, level 트리거
- Linux man: fsync(2)페이지 캐시와 파일 IO - buffered와 direct, fsync가 실제로 하는 일
- Linux man: listen(2)TCP 연결 수립과 큐 - SYN 백로그, accept 큐, TIME_WAIT
- Linux man: select(2)epoll - select, poll과의 차이와 edge, level 트리거
- Linux: CFS Scheduler컨텍스트 스위칭과 스케줄링 - CFS, cgroup CPU 제한, 그리고 스로틀링
- Linux: EEVDF Scheduler컨텍스트 스위칭과 스케줄링 - CFS, cgroup CPU 제한, 그리고 스로틀링
- Little's Law큐잉 이론 한 조각 - 도착률과 서비스율로 파라미터를 정하기
- Live migration process프로세스는 왜 멈추는가 - GC, 페이지 폴트, CPU 경합, SIGSTOP, VM 정지와 스스로 알 수 없는 멈춤
- Logback Manual: ArchitectureLog Level
- Logback. Reasons to prefer logback over log4j 1.xLog4j vs Logback vs Log4j2
- Logical Physical Clocks (HLC)시간과 순서 - 물리 시계의 한계, 논리 시계, 하이브리드 시계
- logstash-logback-encoder백엔드 시스템 로깅 베스트 프랙티스
- m.blog.naver.com/plantgram/2220946409882021-10-07-TIL
- m.blog.naver.com/PostView.nhn?blogId=qbxlvnf11&logNo=220837131449&proxyReferer=https:%2F%2Fwww.google.com%2FMultiThreading and Thread Scheduling
- M/M/1 queue큐잉 이론 한 조각 - 도착률과 서비스율로 파라미터를 정하기
- madplay.github.io/post/java-threadlocalThread Local
- magazine.channel.daum.net/daumapp_notice/search_flower2021-10-07-TIL
- malloc.se/blog/zgc-jdk17G1gc Zgc
- man.he.net/man1/HEADShell Script
- mangkyu.tistory.com/118Garbage Collectors
- marieclairekorea.com/lifestyle/2021/03/planterior/2021-10-07-TIL
- Martin Fowler — BlueGreenDeploymentJSP 기반 시스템의 구조적 문제를 해결한 아키텍처 전환기: API 명세 없는 레거시 시스템의 신규 시스템 이관 전략
- Martin Fowler — CanaryReleaseJSP 기반 시스템의 구조적 문제를 해결한 아키텍처 전환기: API 명세 없는 레거시 시스템의 신규 시스템 이관 전략
- Martin Fowler — UnitTest단위 테스트와 통합 테스트를 어떻게 구분해야 할까
- Martin Fowler, MonolithFirst모듈식 모놀리스를 선택한 이유 — MSA의 유혹을 거부하기
- Maximizing HikariCP Performance in Spring Boot ApplicationsHikariCP
- MDN Set-CookieHTTP 웹 기본 지식 8: 표현과 협상, 인증과 쿠키를 헤더로 연결하기
- MDN: SameSite cookiesCORS와 CSRF - 브라우저가 막는 것과 서버가 막아야 하는 것
- medium.com/@AlexanderObregon/java-17s-garbage-collectors-a-beginner-s-guide-421b8caed3f9G1gc Zgc
- medium.com/@asdf123456789/a-new-modern-garbage-collector-in-jdk-21-4087e7ea9a5cG1gc Zgc
- medium.com/@avocadi/what-is-threadlocal-and-test-with-spring-f3d04b7c3844Thread Local
- medium.com/@shaistha24/functional-programming-vs-object-oriented-programming-oop-which-is-better-82172e53a526Oop And Fp
- medium.com/velotio-perspectives/cloud-native-applications-the-why-the-what-the-how-9b2d31897496Microservices Architecture
- medium.com/walmartglobaltech/cloud-native-application-architecture-a84ddf378f82Microservices Architecture
- Mel Conway - Conway's LawSLASH 24 리뷰 - 토스뱅크가 차세대를 하지 않는 이유, 지속 가능한 마이그레이션 전략: 스트랭글러 피그, 6단계 사이클, 컴포지트 분할 정복, 병렬 실행 비교 검증
- Michael Nygard, Documenting Architecture Decisions (2011)ADR(Architecture Decision Record) - 결정의 맥락을 결정과 함께 남기기
- Micrometer - GaugesJMX와 MBean, 그리고 Micrometer가 지표를 얻는 길 - MBean이 없으면 지표는 0이 아니라 없다
- Micrometer - JVM MetricsJMX와 MBean, 그리고 Micrometer가 지표를 얻는 길 - MBean이 없으면 지표는 0이 아니라 없다
- Micrometer ObservationOpenTelemetry + Jaeger로 분산 추적 — 시세 파이프라인 지연 측정
- Micrometer TracingOpenTelemetry + Jaeger로 분산 추적 — 시세 파이프라인 지연 측정
- Micrometer 소스 - TomcatMetrics.javaJMX와 MBean, 그리고 Micrometer가 지표를 얻는 길 - MBean이 없으면 지표는 0이 아니라 없다
- MIMEMIME(Multipurpose Internet Mail Extensions)
- MIME types (IANA media types)MIME(Multipurpose Internet Mail Extensions)
- MSA 환경에서 네트워크 예외를 잘 다루는 방법카카오페이 「MSA 환경에서 네트워크 예외를 잘 다루는 방법」 리뷰 — Unknown을 타입으로 만든 글과, Unknown을 상태로 저장한 프로젝트가 갈리는 지점
- mug896.github.io/bash-shell/index.htmlShell Script
- mug896.github.io/bash-shell/readline.html#Shell Script
- MyBatis 3 Java API - SqlSession, ExecutorType키 생성 병목을 추적해 구조를 바꾼 기록: Part 1 - INSERT가 느린 줄 알았다
- MySQL 8.0 INSTANT ADD and DROP Column(s)카카오 「MySQL Ver. 8.0 New Feature: Instant DDL Algorithm에 대한 이해」 리뷰 — 컬럼을 0.01초에 추가하는 대가는 '읽을 때마다 버전을 대조하는 것'이다
- MySQL 8.0 Reference Manual - Information Functions, LAST_INSERT_ID()키 생성 병목을 추적해 구조를 바꾼 기록: Part 3 - 채번을 INSERT 시점으로 옮기고 범위 단위로 받기
- MySQL 8.0 Reference Manual — Locks Set by Different SQL Statements in InnoDB키 생성 병목을 추적해 구조를 바꾼 기록: Part 2 - SELECT 안에서 UPDATE가 일어나고 있었다
- MySQL 8.0 Reference Manual, Locking ReadsJSP 기반 시스템의 구조적 문제를 해결한 아키텍처 전환기: 시퀀스 테이블 기반 코드 생성의 병목을 해결한 이야기
- MySQL 8.0 Reference Manual: autocommit, Commit, and Rollback데이터베이스 트랜잭션을 어떻게 봐야 하는가
- MySQL 8.0 Reference Manual: Consistent Nonlocking ReadsMVCC를 어떻게 이해해야 하는가
- MySQL 8.0 Reference Manual: DELETE Statement대량 배치 안정성을 높이기 위한 구조 개선: Part 2 - 전체 삭제 후 전체 등록 구조의 위험성
- MySQL 8.0 Reference Manual: How to Minimize and Handle Deadlocks대량 배치 안정성을 높이기 위한 구조 개선: Part 3 - 청크 분할과 병렬 처리로 재설계하기
- MySQL 8.0 Reference Manual: InnoDB and the ACID ModelACID를 실무적으로 이해하기
- MySQL 8.0 Reference Manual: Redo LogRedo Log와 Undo Log를 어떻게 구분해야 하는가
- MySQL 8.0 Reference Manual: Replication데이터베이스 리플리케이션 기본 정리
- MySQL 8.0 Reference Manual: The JSON Data Type카카오 「MySQL Json 데이터 타입의 저장 구조와 성능 비교」 리뷰 — 통째로 넣고 통째로 꺼내면 TEXT, 키로 파고들면 JSON
- MySQL 8.0 Reference Manual: Undo LogsRedo Log와 Undo Log를 어떻게 구분해야 하는가
- MySQL 8.0: EXPLAIN Statement실행 계획을 읽는 법 - 연산자, 비용 모델, 카디널리티 추정이 틀어지는 지점
- MySQL 8.0: New Lock free, scalable WAL design카카오 「MySQL InnoDB Log에 대한 이해 - (1)」 리뷰 — 트랜잭션 하나가 어떻게 MTR 여러 개로 쪼개져 Redo Log Buffer에 들어가는가
- MySQL 8.4 Reference Manual, Multiple-Column Indexes[3주차] 속도를 지배하는 DB 인덱스
- MySQL 8.4 Reference Manual, The Physical Structure of an InnoDB Index[3주차] 속도를 지배하는 DB 인덱스
- MySQL 8.4 Reference Manual: Caching SHA-2 Pluggable Authentication카카오 「MySQL 인증 플러그인 caching_sha2_password에 대한 이해」 리뷰 — 비밀번호 해시가 바뀌는 것보다 '평문이 서버까지 가야 한다'는 점이 전환의 진짜 비용
- MySQL 8.4: SELECT Statement실전 데이터베이스 입문 복습: SQL을 적는 순서와 해석하는 순서
- MySQL 8.4: The Binary LogCDC의 원리와 한계 - 로그 기반 변경 포착, 초기 스냅샷, 스키마 변경
- MySQL ALTER DDL 수행 방식에 대한 이해카카오 「MySQL ALTER DDL 수행 방식에 대한 이해」 리뷰 — Copy·In-Place·Instant는 '무엇을 복사하느냐'보다 '언제 Exclusive 메타 락을 잡느냐'로 구분된다
- MySQL DATETIME, TIMESTAMP 데이터 타입에 대한 분석카카오 「MySQL DATETIME, TIMESTAMP 데이터 타입에 대한 분석」 리뷰 — 바이트 단위 저장 구조부터 아직 안 고쳐진 Y2K38까지
- MySQL InnoDB Log에 대한 이해 - (1)카카오 「MySQL InnoDB Log에 대한 이해 - (1)」 리뷰 — 트랜잭션 하나가 어떻게 MTR 여러 개로 쪼개져 Redo Log Buffer에 들어가는가
- MySQL Json 데이터 타입의 저장 구조와 성능 비교카카오 「MySQL Json 데이터 타입의 저장 구조와 성능 비교」 리뷰 — 통째로 넣고 통째로 꺼내면 TEXT, 키로 파고들면 JSON
- MySQL log_replica_updatesSLASH 21 리뷰 - MySQL HA & DR Topology: MMM, 대칭 DR 구성, 바이너리 로그 필터, super_read_only 안전장치
- MySQL Multi-Source ReplicationSLASH 21 리뷰 - MySQL HA & DR Topology: MMM, 대칭 DR 구성, 바이너리 로그 필터, super_read_only 안전장치
- MySQL Orchestrator 기반의 새로운 HA 표준 개발기카카오 「MySQL Orchestrator 기반의 새로운 HA 표준 개발기」 리뷰 — 10년 멈춘 Perl 도구를 떠나 Raft 클러스터로, 그리고 slave_net_timeout 한 줄
- MySQL super_read_onlySLASH 21 리뷰 - MySQL HA & DR Topology: MMM, 대칭 DR 구성, 바이너리 로그 필터, super_read_only 안전장치
- MySQL Ver. 8.0 New Feature: Instant DDL Algorithm에 대한 이해카카오 「MySQL Ver. 8.0 New Feature: Instant DDL Algorithm에 대한 이해」 리뷰 — 컬럼을 0.01초에 추가하는 대가는 '읽을 때마다 버전을 대조하는 것'이다
- MySQL 인증 플러그인 caching_sha2_password에 대한 이해카카오 「MySQL 인증 플러그인 caching_sha2_password에 대한 이해」 리뷰 — 비밀번호 해시가 바뀌는 것보다 '평문이 서버까지 가야 한다'는 점이 전환의 진짜 비용
- MySQL: Clustered and Secondary IndexesB+Tree 인덱스의 내부 - 노드 분할, 클러스터드와 논클러스터드, 커버링이 아끼는 것
- MySQL: Deadlocks in InnoDB락의 종류와 대기 - row, gap, next-key, intention과 데드락 탐지
- MySQL: Doublewrite BufferWAL과 체크포인트 - 커밋은 언제 디스크에 닿는가
- MySQL: EXPLAIN Output Format실행 계획을 읽는 법 - 연산자, 비용 모델, 카디널리티 추정이 틀어지는 지점
- MySQL: InnoDB Indexes데이터베이스 인덱스를 어떻게 이해해야 하는가
- MySQL: InnoDB Locking락의 종류와 대기 - row, gap, next-key, intention과 데드락 탐지
- MySQL: InnoDB Redo LogWAL과 체크포인트 - 커밋은 언제 디스크에 닿는가
- MySQL: Multiple-Column Indexes데이터베이스 인덱스를 어떻게 이해해야 하는가
- MySQL: Partitioning파티셔닝과 샤딩 - 기준 선택, 로컬과 글로벌 인덱스, 재분배 비용
- narusas.github.io/2019/07/17/Spring-Transaction-Note.htmlThread Local
- Netflix - Edge Authentication and Token-Agnostic Identity PropagationSLASH 23 리뷰 - 토스는 Gateway 이렇게 씁니다: 목적별 게이트웨이, 패스포트, 요청 서명 검증, YAML 라우트와 게이트웨이 봇
- Netty source: NioEventLoop (netty-4.1.115.Final)NIO와 이벤트 루프 - 셀렉터, 다이렉트 버퍼, Netty가 대신 해주는 일
- Netty User Guide for 4.xNIO와 이벤트 루프 - 셀렉터, 다이렉트 버퍼, Netty가 대신 해주는 일
- Network Load BalancersNetwork Load Balancers(NLB)
- NGINX — ngx_http_mirror_moduleJSP 기반 시스템의 구조적 문제를 해결한 아키텍처 전환기: API 명세 없는 레거시 시스템의 신규 시스템 이관 전략
- NIST SP 800-38D: Recommendation for Block Cipher Modes of Operation: Galois/Counter Mode (GCM) and GMACLINE 「초당 100만 건, LINE 앱에 Apache Kafka 종단 간 암호화 적용기」 리뷰 — 인터셉터와 시리얼라이저만으로 브로커에 평문을 남기지 않는 법
- NIST SP 800-63B: Digital Identity Guidelines비밀번호 저장 - bcrypt와 argon2의 파라미터를 정하는 기준
- Non-Blocking Retries컬리 「컬리의 입고 시스템이 외부 인입 데이터를 안전하게 동기화하는 방법」 리뷰 — 145회 재시도가 맞는 도메인과 재시도를 금지한 도메인, 그리고 발행부와 수신부가 각자 책임지는 구조
- OBJECT ENCODINGMemoryDb, TTL, Hash 구조로 보는 Redis keyspace 설계
- ohou.se/2021-10-07-TIL
- okky.kr/articles/408564Apache POI SXSSF vs XSSF vs HSSF
- okta.com/identity-101/what-is-token-based-authentication/Token Authentication
- Online DDL Performance and Concurrency카카오 「MySQL ALTER DDL 수행 방식에 대한 이해」 리뷰 — Copy·In-Place·Instant는 '무엇을 복사하느냐'보다 '언제 Exclusive 메타 락을 잡느냐'로 구분된다
- OOP Alternative to Utility Classes헬퍼 클래스는 안티패턴일까?
- openark/orchestrator카카오 「MySQL Orchestrator 기반의 새로운 HA 표준 개발기」 리뷰 — 10년 멈춘 Perl 도구를 떠나 Raft 클러스터로, 그리고 slave_net_timeout 한 줄
- OpenJDK jcstress자바 메모리 모델 - happens-before, volatile, 그리고 final의 안전 공개
- OpenJDK jdk-21+35: cgroupSubsystem_linux.cpp컨텍스트 스위칭과 스케줄링 - CFS, cgroup CPU 제한, 그리고 스로틀링
- OpenJDK jdk21u: DefaultSelectorProvider (Linux)NIO와 이벤트 루프 - 셀렉터, 다이렉트 버퍼, Netty가 대신 해주는 일
- OpenJDK jdk21u: Unsafe.javaLock-Free와 CAS - 락 없이 공유 변수를 바꾸는 방법과 그 한계
- OpenJDK: HotSpot Runtime OverviewJIT 컴파일 - 계층 컴파일, 인라이닝, 역최적화
- OpenTelemetrySLASH 23 리뷰 - 분산 추적 체계 & 로그 중심으로 Observability 확보하기: 좋은 로그의 조건, 글로벌 trace ID, TCP 전문에 문맥 심기, 헤더 라우팅 디버깅 환경
- OpenTelemetry Collector: Tail Sampling Processor트레이스 샘플링 - 헤드와 테일 샘플링의 선택 기준
- OpenTelemetry Spring Boot starter: Out of the box instrumentationOpenTelemetry + Jaeger로 분산 추적 — 시세 파이프라인 지연 측정
- OpenTelemetry: Sampling트레이스 샘플링 - 헤드와 테일 샘플링의 선택 기준
- OpenTelemetry: Signals메트릭, 로그, 트레이스 - 무엇을 어디에 남기고 카디널리티는 어디서 터지는가
- opentutorials.org/course/743/6544Closure
- Optimal Probabilistic Cache Stampede Prevention캐시 스탬피드(Cache Stampede)
- Optimal Probabilistic Cache Stampede Prevention캐시 스탬피드와 single flight - 200명 중 125명이 원본까지 갔고, 예외를 삼키자 실패가 가장 빠른 요청이 됐다
- Oracle Java SE 17 GC Tuning Guide: Garbage Collector ImplementationJava의 Garbage Collection을 어떻게 이해해야 할까
- oracle.com/cloud/cloud-native/what-is-cloud-native/Microservices Architecture
- oracle.com/webfolder/technetwork/tutorials/obe/java/gc01/index.htmlGarbage Collection
- Oracle: Garbage Collection Tuning GuideGC 알고리즘 비교 - G1, ZGC, Shenandoah가 각자 무엇을 포기하는가
- Oracle: Java HotSpot VM Performance Enhancements — Tiered CompilationJIT 컴파일 - 계층 컴파일, 인라이닝, 역최적화
- Orchestrator High Availability카카오 「MySQL Orchestrator 기반의 새로운 HA 표준 개발기」 리뷰 — 10년 멈춘 Perl 도구를 떠나 Raft 클러스터로, 그리고 slave_net_timeout 한 줄
- oreilly.com/library/view/hands-on-software-architecture/9781788622592/bdde195b-2a5e-4ca6-a297-9aa85e0fbc81.xhtmlMicroservices Architecture
- OWASP Input Validation Cheat SheetJSP 기반 시스템의 구조적 문제를 해결한 아키텍처 전환기: JavaScript에 과도하게 집중된 로직 분리하기
- OWASP: CSRF Prevention Cheat SheetCORS와 CSRF - 브라우저가 막는 것과 서버가 막아야 하는 것
- OWASP: JSON Web Token Cheat SheetJWT의 구조와 검증 - 서명 알고리즘, 만료, 그리고 폐기의 한계
- OWASP: Password Storage Cheat Sheet비밀번호 저장 - bcrypt와 argon2의 파라미터를 정하는 기준
- OWASP: Secrets Management Cheat Sheet시크릿 관리 - 로테이션과 주입 경로
- P6Spy 문서SLASH 24 리뷰 - 리플레이 검증으로 새로운 금융 시스템 안전하게 도입하기: 운영 트래픽을 그대로 재생해 차세대 원장을 검증하다
- PactSLASH 21 리뷰 - 테스트 커버리지 100%: 두 달의 비용, 1600개 테스트를 6초로, 그리고 100%여도 남는 버그
- Pattern Comparisonspring-internals-lab로 다시 읽는 Spring 8 - DispatcherServlet과 MVC 요청 흐름
- Pattern: Transaction log tailing네이버 D2 「일 3,000만 건의 네이버페이 주문 메시지를 처리하는 Kafka 시스템의 무중단 전환 사례」 리뷰 — 두 벌로 발행해 대조한 검증기와, 발행 제어 키를 파티션 키와 같게 둔 이유
- perf-c2c(1)SLASH 23 리뷰 - 프로파일러로 시스템 성능 향상시키기: Pinpoint, 힙 덤프, jemalloc, async-profiler, strace, 그리고 커널 버전
- perforce.com/blog/qac/multithreading-parallel-programming-c-cppMultiThreading and Thread Scheduling
- PgBouncer: Pooling modes커넥션과 세션 - 커넥션 풀이 실제로 아끼는 것
- PinpointSLASH 23 리뷰 - 연결되면 비로소 보이는 것들: Pinpoint 코루틴 플러그인을 만들기 위해 코루틴 바이트코드를 읽다
- Pinpoint kotlin-coroutines 플러그인 (v2.4.0)SLASH 23 리뷰 - 연결되면 비로소 보이는 것들: Pinpoint 코루틴 플러그인을 만들기 위해 코루틴 바이트코드를 읽다
- PIT FAQSLASH 21 리뷰 - 테스트 커버리지 100%: 두 달의 비용, 1600개 테스트를 6초로, 그리고 100%여도 남는 버그
- PIT Mutation TestingSLASH 21 리뷰 - 테스트 커버리지 100%: 두 달의 비용, 1600개 테스트를 6초로, 그리고 100%여도 남는 버그
- poi.apache.org/apidocs/dev/org/apache/poi/xssf/streaming/SXSSFWorkbook.htmlApache POI SXSSF vs XSSF vs HSSF
- poi.apache.org/components/spreadsheet/Apache POI SXSSF vs XSSF vs HSSF
- poiemaweb.com/js-closureClosure
- poll(2)epoll - select, poll과의 차이와 edge, level 트리거
- PORTHTTP 웹 기본 지식 2: IP, TCP, 포트, DNS의 역할 나누기
- POSIX pselect/selectNIO와 이벤트 루프 - 셀렉터, 다이렉트 버퍼, Netty가 대신 해주는 일
- PostgreSQL 17: Transaction Isolation격리 수준의 이상 현상을 직접 만들기 - 같은 REPEATABLE READ에서 PostgreSQL은 중단시키고 MySQL은 조용히 덮어썼다
- PostgreSQL Documentation - Overview (Managing Databases)ParityPay로 검증하는 결제 정합성 6 - 대사: "기관에 물어보지 못했다"와 "기관에 기록이 없다"는 다른 상태다
- PostgreSQL fsync() surprise (LWN, 2018)페이지 캐시와 파일 IO - buffered와 direct, fsync가 실제로 하는 일
- PostgreSQL to ES: (1) Kafka Connect CDC 파이프라인 구성카카오 「PostgreSQL to ES: Kafka Connect CDC 파이프라인」 1·2편 리뷰 — 변경이 없어서 디스크가 차고, LSN이 사라져서 스냅샷을 다시 짜야 했던 CDC의 실제 운영 비용
- PostgreSQL 소스: selfuncs.h (REL_17_0)인덱스가 선택되지 않는 순간 - 컬럼에 캐스팅 하나가 3,000배, 그리고 추정이 31.7배 틀려도 계획이 안 바뀌는 경우
- PostgreSQL: Arrays배열을 데이터베이스에 저장할 때 무엇을 먼저 판단해야 하는가
- PostgreSQL: Connection pooling 고려사항커넥션과 세션 - 커넥션 풀이 실제로 아끼는 것
- PostgreSQL: Error Handling (data_sync_retry)페이지 캐시와 파일 IO - buffered와 direct, fsync가 실제로 하는 일
- PostgreSQL: How Connections Are EstablishedPostgres 커넥션 하나의 비용 - 풀을 키우면 대기가 사라지는 게 아니라 볼 수 없는 곳으로 옮겨간다
- PostgreSQL: Index-Only Scans and Covering IndexesB+Tree 인덱스의 내부 - 노드 분할, 클러스터드와 논클러스터드, 커버링이 아끼는 것
- PostgreSQL: Indexes on Expressions인덱스가 선택되지 않는 순간 - 컬럼에 캐스팅 하나가 3,000배, 그리고 추정이 31.7배 틀려도 계획이 안 바뀌는 경우
- PostgreSQL: Multicolumn IndexesB+Tree 인덱스의 내부 - 노드 분할, 클러스터드와 논클러스터드, 커버링이 아끼는 것
- PostgreSQL: pg_stat_statementsParityPay로 검증하는 결제 정합성 2 - 잠금을 필요 이상으로 오래 쥐고 있었다: 추론을 측정으로 바꾼 기록
- PostgreSQL: Range Types점 이력과 선분 이력 모델링
- PostgreSQL: Reliability and the Write-Ahead Log페이지 캐시와 파일 IO - buffered와 direct, fsync가 실제로 하는 일
- PostgreSQL: Replication 설정CDC의 원리와 한계 - 로그 기반 변경 포착, 초기 스냅샷, 스키마 변경
- PostgreSQL: SAVEPOINTParityPay로 검증하는 결제 정합성 4 - 실험 27종이 찾아낸 결함 12건: 문서와 코드를 읽어서 나온 것은 하나도 없었다
- PostgreSQL: SELECT, The Locking ClauseParityPay로 검증하는 결제 정합성 5 - DB 커밋과 Kafka 발행 사이: Transactional Outbox와 at-least-once 소비자
- PostgreSQL: synchronous_commit일관성 모델 - 선형화, 순차, 최종 일관성, 그리고 CAP를 설정값의 언어로
- PostgreSQL: Table Partitioning파티셔닝과 샤딩 - 기준 선택, 로컬과 글로벌 인덱스, 재분배 비용
- PostgreSQL: The Cumulative Statistics SystemParityPay로 검증하는 결제 정합성 2 - 잠금을 필요 이상으로 오래 쥐고 있었다: 추론을 측정으로 바꾼 기록
- PostgreSQL: WAL ConfigurationWAL과 체크포인트 - 커밋은 언제 디스크에 닿는가
- PostgreSQL: Write-Ahead Logging (WAL)WAL과 체크포인트 - 커밋은 언제 디스크에 닿는가
- PostProcessorRegistrationDelegate (v6.2.0)spring-internals-lab로 다시 읽는 Spring 5 - Bean lifecycle과 후처리기
- programmingwithmosh.com/javascript/what-are-pure-functions/Pure Function
- Project Reactor: Debugging리액티브와 백프레셔 - WebFlux가 해결하는 것과 옮기는 것
- Prometheus: Exemplars storage메트릭, 로그, 트레이스 - 무엇을 어디에 남기고 카디널리티는 어디서 터지는가
- Prometheus: Histograms and summaries백분위 통계 - 평균이 거짓말하는 이유와 히스토그램의 집계 오류
- Prometheus: Naming and labels메트릭, 로그, 트레이스 - 무엇을 어디에 남기고 카디널리티는 어디서 터지는가
- Prometheus: Query functions, histogram_quantile백분위 통계 - 평균이 거짓말하는 이유와 히스토그램의 집계 오류
- Protocol Buffers: Updating a Message TypeAPI 버저닝과 호환성 - 스키마 진화 규칙
- PUT, PATCH, DELETEHTTP 웹 기본 지식 5: 메서드의 의미와 재시도 판단
- qiita.com/tool-taro/items/4b3c802bb114a9110ecbApache POI SXSSF vs XSSF vs HSSF
- qnx.com/developers/docs/qnxcar2/index.jsp?topic=%2Fcom.qnx.doc.neutrino.sys_arch%2Ftopic%2Fkernel_SCHEDULING.htmlMultiThreading and Thread Scheduling
- Querydsl 5.0.0 FilteredClause 소스Querydsl을 사용하는 이유와 기본 패턴
- Querydsl Reference Guide, 2.1 Querying JPAQuerydsl을 사용하는 이유와 기본 패턴
- rabbitmq.com/docs/access-controlRabbitMQ Installation
- rabbitmq.com/docs/managementRabbitMQ Installation
- rabbitmq.com/install-homebrew.htmlRabbitMQ Installation
- rabbitmq.com/tutorials/tutorial-one-java.htmlRabbitMQ Installation
- Reactive Streams JVM 1.0.4 README리액티브와 백프레셔 - WebFlux가 해결하는 것과 옮기는 것
- Reactive Streams 명세리액티브와 백프레셔 - WebFlux가 해결하는 것과 옮기는 것
- Read repair읽기 수리, 쓰기 수리, 비동기 수리 - 최종 일관성은 누가 언제 맞추는가
- ReadableByteChannelNIO와 이벤트 루프 - 셀렉터, 다이렉트 버퍼, Netty가 대신 해주는 일
- Reading and Writing Excel Data in Spring Boot with Apache POI2025-02-03-TIL
- RedHat. 마이크로서비스란?Microservice Architecture
- Redis docs - Pub/SubSLASH 23 리뷰 - 실시간 시세 데이터 안전하고 빠르게 처리하기: Kafka 15ms 대 Redis Pub/Sub 3ms, 그리고 22,000 TPS에서 1ms를 만든 이벤트 루프 설계
- Redis keyspace notificationsRedis 기반 인증 토큰 관리로 분산 환경의 인증 일관성 확보
- Redis PUBLISHSLASH 24 리뷰 - SSE 이벤트 푸쉬로 불필요한 Polling 제거하기: 3초 폴링을 이벤트로 바꾸고 브로커를 세 번 갈아탄 기록
- Redis replicationRedis Sentinel Replication
- redis-lite-javaredis-lite-java로 이해하는 Redis 아키텍처 개요
- redis.confRedis 단일 스레드가 멈추는 순간 - SCAN이 3.7배 오래 걸리면서 아무도 막지 않고, 120ms 멈춤이 p99에 안 잡히는 이유
- Redis: Keyspace - SCAN guaranteesRedis 단일 스레드가 멈추는 순간 - SCAN이 3.7배 오래 걸리면서 아무도 막지 않고, 120ms 멈춤이 p99에 안 잡히는 이유
- Redis: Lazy freeingRedis 단일 스레드가 멈추는 순간 - SCAN이 3.7배 오래 걸리면서 아무도 막지 않고, 120ms 멈춤이 p99에 안 잡히는 이유
- Redis: WAIT일관성 모델 - 선형화, 순차, 최종 일관성, 그리고 CAP를 설정값의 언어로
- Redpanda - Configure ProducersParityPay로 검증하는 결제 정합성 8 - Kafka에서 중복·유실·순서 역전을 직접 만들어 보기: 멱등 소비자와 Outbox가 막는 것과 못 막는 것
- Reflections 라이브러리SLASH 23 리뷰 - 토스뱅크의 모던 FEP: 전문을 Kotlin 어노테이션으로, 리플렉션 코덱, Netty 논블로킹, Redis 폴링으로 액티브-액티브
- RefreshPreventing Cache Write Amplification under High Concurrency
- Repair읽기 수리, 쓰기 수리, 비동기 수리 - 최종 일관성은 누가 언제 맞추는가
- Replica Server Options and Variables카카오 「MySQL Orchestrator 기반의 새로운 HA 표준 개발기」 리뷰 — 10년 멈춘 Perl 도구를 떠나 Raft 클러스터로, 그리고 slave_net_timeout 한 줄
- RequestBodyAdvice카카오 「추가배포 없이 API의 case 통일시키기」 리뷰 — 받는 쪽이 자기 케이스에 맞춰 알아서 읽게 하면 배포 순서가 사라진다
- Resilience4j - Bulkhead세마포어와 permit - 동시에 몇 개까지 들일지를 세는 도구, 그리고 벌크헤드
- REST ClientsSpring Boot에서 외부 API 연동을 설계할 때 보는 것
- RESTful API validation 자동화 하기야놀자 「RESTful API validation 자동화 하기」 리뷰 — 인터페이스 하나에서 검증·문서·타입을 뽑는 이유, 그리고 자동화가 없으면 누락이 필연이라는 문장
- restfulapi.net/resource-naming/2021-04-07-TIL
- RFC 3986: URI Generic SyntaxHTTP 웹 기본 지식 3: URL 한 줄에서 요청과 응답까지
- RFC 5077: TLS Session Resumption without Server-Side StateTLS 핸드셰이크의 비용 - 세션 재개와 0-RTT의 대가
- RFC 5246: TLS 1.2TLS 핸드셰이크의 비용 - 세션 재개와 0-RTT의 대가
- RFC 5861: HTTP Cache-Control Extensions for Stale ContentPreventing Cache Write Amplification under High Concurrency
- RFC 6066: TLS ExtensionsTLS 핸드셰이크의 비용 - 세션 재개와 0-RTT의 대가
- RFC 6265: CookieHTTP 웹 기본 지식 8: 표현과 협상, 인증과 쿠키를 헤더로 연결하기
- RFC 6455 7.4.1 Defined Status CodesSLASH 22 리뷰 - 토스증권 실시간 시세 적용기: 런칭 직전에 폴링을 WebSocket으로 바꾸고, 한 달 만에 200만 계좌를 받아 낸 기록
- RFC 7519: JSON Web TokenJWT의 구조와 검증 - 서명 알고리즘, 만료, 그리고 폐기의 한계
- RFC 8289: Controlled Delay Active Queue Management혼잡 제어와 지연 - BDP, 버퍼블로트, 처리량과 지연의 교환
- RFC 8290: FQ-CoDel혼잡 제어와 지연 - BDP, 버퍼블로트, 처리량과 지연의 교환
- RFC 8470: Using Early Data in HTTPTLS 핸드셰이크의 비용 - 세션 재개와 0-RTT의 대가
- RFC 8594: The Sunset HTTP Header FieldAPI 버저닝과 호환성 - 스키마 진화 규칙
- RFC 9000: QUICHTTP/1.1, 2, 3 - HOL 블로킹은 어디로 옮겨갔는가
- RFC 9001: Using TLS to Secure QUICTLS 핸드셰이크의 비용 - 세션 재개와 0-RTT의 대가
- RFC 9106: Argon2비밀번호 저장 - bcrypt와 argon2의 파라미터를 정하는 기준
- RFC 9113: HTTP/2HTTP/1.1, 2, 3 - HOL 블로킹은 어디로 옮겨갔는가
- RFC 9218: Extensible Prioritization Scheme for HTTPHTTP/1.1, 2, 3 - HOL 블로킹은 어디로 옮겨갔는가
- RFC 9325: Recommendations for Secure Use of TLS and DTLSTLS 키 교환과 암호 스위트 - key share, forward secrecy, PSK, AES-NI
- RFC 9438: CUBIC for Fast and Long-Distance Networks혼잡 제어와 지연 - BDP, 버퍼블로트, 처리량과 지연의 교환
- Roy T. Fielding. Architectural Styles and the Design of Network-based Software Architectures, 5.1.3 StatelessStateless(무상태)가 Idempotent(멱등성)을 의미하는가?
- Sagas분산 트랜잭션 - 2PC와 Saga, 보상 트랜잭션이 실패하는 방식
- samsungsds.com/kr/insights/101917_rd_cloudnative.htmlMicroservices Architecture
- sanghaklee.tistory.com/572021-04-07-TIL
- Scale with Redis ClusterRedis Cluster vs Sentinel
- Scripting with LuaMULTI, Pub/Sub, Lua로 보는 Redis 확장 기능과 구현 과정
- Sealed classes and interfaces카카오페이 「MSA 환경에서 네트워크 예외를 잘 다루는 방법」 리뷰 — Unknown을 타입으로 만든 글과, Unknown을 상태로 저장한 프로젝트가 갈리는 지점
- segmentio/kafka-go v0.4.51, writer.gomarket.ticks 파티션 × 컨슈머 격자 — 키가 같아도 순서가 깨진 이유, 크래시 하나가 시세 전체를 멈춘 이유, 파티션 이웃이 인질이 되는 순간
- sendfile(2)사용자 공간과 커널 공간 - 시스템 콜, 복사, sendfile과 kTLS
- Sequential Consistency일관성 모델 - 선형화, 순차, 최종 일관성, 그리고 CAP를 설정값의 언어로
- Server Developer (Product) 채용공고토스증권 Server Developer (Product) 공고 분석: 제품 개발자에게 원장 수준의 정합성을 요구하는 이유
- Sid캐시 스탬피드(Cache Stampede)
- signal(7) — Linux manual page프로세스는 왜 멈추는가 - GC, 페이지 폴트, CPU 경합, SIGSTOP, VM 정지와 스스로 알 수 없는 멈춤
- Signature (functions)Function Signature
- Simple, Fast, and Practical Non-Blocking and Blocking Concurrent Queue AlgorithmsLock-Free와 CAS - 락 없이 공유 변수를 바꾸는 방법과 그 한계
- Single Writer Principle카카오 「잃어버린 리포트를 찾아서: 카카오 메시징 시스템의 경쟁 조건 문제와 안티 패턴 제거 과정」 리뷰 — 벤더가 8ms 만에 리포트를 보냈고, 우리는 101ms짜리 트랜잭션 안에 있었다
- Singleflight in Go : A Clean Solution to Cache StampedeSingle Flight
- site24x7.com/learn/java/choosing-garbage-collector.htmlG1gc Zgc
- sitepoint.com/functional-programming-pure-functions/Pure Function
- SLASH 22 실시간 시세 적용기토스증권 공개 자료로 읽는 시세·주문 아키텍처: 무엇을 잃어도 되는지 먼저 정한다
- SLASH 23 실시간 데이터 처리토스증권 공개 자료로 읽는 시세·주문 아키텍처: 무엇을 잃어도 되는지 먼저 정한다
- SLF4J FAQ백엔드 시스템 로깅 베스트 프랙티스
- SLF4J. SLF4J user manualLog4j vs Logback vs Log4j2
- SmartInitializingSingleton Javadocspring-internals-lab로 다시 읽는 Spring 5 - Bean lifecycle과 후처리기
- SocketChannel (Java SE 21)RESP, Reactor, Command Registry로 보는 Redis 요청 처리 흐름
- Solving Slow Excel Generation using Apache POI2025-02-03-TIL
- SonarQube Cloud: About new code위반 480건 위에 아키텍처 규칙을 도입하기: 신규 코드는 100% 강제, 레거시는 점진 정리
- Spanner: Google's Globally-Distributed Database시간과 순서 - 물리 시계의 한계, 논리 시계, 하이브리드 시계
- Spanner: TrueTime and external consistency시간과 순서 - 물리 시계의 한계, 논리 시계, 하이브리드 시계
- Specifying Systems모델 검사 입문 - TLA+, TLC, 상태 공간, 불변조건, 반례
- Spring Batch 5.2: Scaling and Parallel ProcessingSpring Batch의 구조 - 청크, 파티셔닝, 재시작과 메타데이터
- Spring Batch API: JpaItemWriterHeap Dump가 가리킨 곳은 데이터가 아니라 영속성 컨텍스트였다: Tasklet에서 Chunk로, XSSF에서 SXSSF로
- Spring Batch, Excel ItemReader로 읽어서 JPA ItemWriter 쓰기2025-02-03-TIL
- Spring Batch: Configuring Skip LogicSpring Batch의 구조 - 청크, 파티셔닝, 재시작과 메타데이터
- Spring Batch: Domain LanguageSpring Batch의 구조 - 청크, 파티셔닝, 재시작과 메타데이터
- Spring Batch: Scaling and Parallel ProcessingSpring Batch의 구조 - 청크, 파티셔닝, 재시작과 메타데이터
- Spring Batch와 Querydsl우아한형제들 「Spring Batch와 Querydsl」 리뷰 — offset을 버린 Reader가 21분을 4분으로 만든 이유, 그리고 그 Reader가 답하지 않는 두 가지
- Spring Boot 3.5, Introducing GraalVM Native Images모듈식 모놀리스를 선택한 이유 — MSA의 유혹을 거부하기
- Spring Boot Export Data to Excel Example2025-02-03-TIL
- Spring Boot Generate Excel with React fetch blob.2025-02-03-TIL
- Spring Boot Reference. LoggingLog4j vs Logback vs Log4j2
- Spring Boot Reference: Developer ToolsSpring Boot DevTools를 언제 써야 하는가
- Spring Boot: Application Properties프록시의 한계 - self-invocation, final, JDK와 CGLIB의 선택
- Spring Boot: Class Data Sharing / AOT클래스 로딩과 기동 시간 - 리플렉션의 비용과 AOT가 바꾸는 것
- Spring Cloud Gateway GlossarySLASH 23 리뷰 - 토스는 Gateway 이렇게 씁니다: 목적별 게이트웨이, 패스포트, 요청 서명 검증, YAML 라우트와 게이트웨이 봇
- Spring Data Commons Reference — Paging, Iterating Large Results, Sorting & LimitingSpring 애플리케이션에서 페이지네이션을 설계하는 방법
- Spring Data Commons Reference — ScrollingSpring 애플리케이션에서 페이지네이션을 설계하는 방법
- Spring Data JPA Reference — LockingSpring과 JPA에서 Race Condition을 다루는 방법
- Spring Data JPA Reference — SpecificationsSpring Data JPA에서 동적 쿼리를 다루는 방법
- Spring Data JPA: JPA Query Methods스프링 데이터 JPA 복습: 반복 코드를 줄인 뒤에도 남는 조회 설계
- Spring Data JPA: Persisting EntitiesSpring에서 이해해야 할 JPA 아키텍처
- Spring for Apache Kafka - Handling ExceptionsParityPay로 검증하는 결제 정합성 8 - Kafka에서 중복·유실·순서 역전을 직접 만들어 보기: 멱등 소비자와 Outbox가 막는 것과 못 막는 것
- Spring Framework Reference — AOP ConceptsFilter, Interceptor, AOP의 차이와 선택 기준
- Spring Framework Reference — Controller Advice@ControllerAdvice와 @RestControllerAdvice 정리
- Spring Framework Reference — Introduction to the Spring IoC Container and BeansSpring의 IoC와 DI를 어떻게 이해할 것인가
- Spring Framework Reference: Special Bean Typesspring-lite로 이해하는 Spring 구현 4 - DispatcherServlet과 MVC 요청 처리 파이프라인
- Spring Framework v6.2.0 JpaTransactionManager 소스트랜잭션 전파 7종 - 각 옵션이 커넥션과 롤백에 남기는 결과
- Spring Framework v6.2.8, TaskExecutorRegistrationWebSocket push와 REST polling을 클라이언트 1만 개에서 재다 — 지연과 서버 비용, Kafka 정지 45초, 느린 소비자 25개
- Spring Framework v6.2.8, WebSocketTransportRegistrationWebSocket push와 REST polling을 클라이언트 1만 개에서 재다 — 지연과 서버 비용, Kafka 정지 45초, 느린 소비자 25개
- Spring Framework, Standard and Custom Events모듈식 모놀리스를 선택한 이유 — MSA의 유혹을 거부하기
- Spring Framework, STOMP PerformanceWebSocket push와 REST polling을 클라이언트 1만 개에서 재다 — 지연과 서버 비용, Kafka 정지 45초, 느린 소비자 25개
- Spring Framework: @ResponseBody@RestController는 무엇을 의미하는가
- Spring Framework: Jackson2ObjectMapperBuilderAPI 버저닝과 호환성 - 스키마 진화 규칙
- Spring Framework: Transaction-bound Events왜 이벤트가 안 먹히지? @TransactionalEventListener가 무시되는 이유와 해결법
- Spring Modulith모듈러 모놀리스 - 경계를 코드로 강제하는 방법
- Spring REST Docs ReferenceJSP 기반 시스템의 구조적 문제를 해결한 아키텍처 전환기: API 명세 없는 레거시 시스템의 신규 시스템 이관 전략
- Spring Security: ArchitectureSecurity 필터 체인 - 인증과 인가는 실제로 어디에 꽂히는가
- Spring Security: Authorize HttpServletRequestsSecurity 필터 체인 - 인증과 인가는 실제로 어디에 꽂히는가
- Spring Security: CORSSecurity 필터 체인 - 인증과 인가는 실제로 어디에 꽂히는가
- Spring Security: CSRFSecurity 필터 체인 - 인증과 인가는 실제로 어디에 꽂히는가
- Spring Security: Method SecuritySecurity 필터 체인 - 인증과 인가는 실제로 어디에 꽂히는가
- Spring Security: Servlet Authentication ArchitectureSecurity 필터 체인 - 인증과 인가는 실제로 어디에 꽂히는가
- Spring WebFlux 문서리액티브와 백프레셔 - WebFlux가 해결하는 것과 옮기는 것
- spring-lite AnnotationConfigApplicationContext (bd8ea3f)spring-lite로 이해하는 Spring 구현 2 - AnnotationConfigApplicationContext로 보는 IoC와 생명주기
- spring-lite JdbcTemplate (bd8ea3f)spring-lite로 이해하는 Spring 구현 3 - ProxyFactory, @Transactional, JdbcTemplate 연결
- spring-lite ProxyFactory (bd8ea3f)spring-lite로 이해하는 Spring 구현 3 - ProxyFactory, @Transactional, JdbcTemplate 연결
- spring-lite TransactionalBeanPostProcessor (bd8ea3f)spring-lite로 이해하는 Spring 구현 3 - ProxyFactory, @Transactional, JdbcTemplate 연결
- spring.io/guides2022-09-05-TIL
- spring.io/guides/gs/rest-service/2021-04-07-TIL
- spring.io/guides/tutorials/rest/2021-04-07-TIL
- Spring: Transaction Propagation트랜잭션 전파 7종 - 각 옵션이 커넥션과 롤백에 남기는 결과
- spymemcached 2.12.3 KetamaNodeLocator.javaSLASH 21 리뷰 - SRE 사례 소개: Redis 리밸런싱 ASK 에러, Memcached 재분배 실패, Prometheus가 바꾼 GC 패턴
- SQL Processing네이버 D2 「CDC 복제 이후 오라클이 느려졌다? child cursor 폭증이 만든 예상치 못한 문제」 리뷰 — 같은 SQL인데 바인딩 타입이 다르면 Oracle은 다른 쿼리로 본다
- stackoverflow.com/questions/10929453/read-a-file-line-by-line-assigning-the-value-to-a-variableShell Script
- stackoverflow.com/questions/21789148/difference-between-cron-and-crontabShell Script
- stackoverflow.com/questions/33047512/hssfworkbook-vs-xssfworkbook-vs-sxssfworkbook-apache-poiApache POI SXSSF vs XSSF vs HSSF
- stackoverflow.com/questions/3805474/what-is-a-closure-does-java-have-closures/3805546Closure
- stackoverflow.com/questions/45725888/why-does-spring-security-store-securitycontext-in-thread-local-variableThread Local
- stackoverflow.com/questions/45936257/apache-poi-hssf-vs-poi-xssfApache POI SXSSF vs XSSF vs HSSF
- stackoverflow.com/questions/57917370/thread-local-behaviour-in-spring-bootThread Local
- stackoverflow.com/questions/58744557/is-this-a-pure-functionPure Function
- Stateful vs Stateless Architectures ExplainedStateful vs Stateless
- Stateful vs. stateless applicationsStateful vs Stateless
- Stateful vs. Stateless: Understanding the Key DifferencesStateful vs Stateless
- Stateful, StatelessHTTP 웹 기본 지식 4: 무상태, 연결 재사용, 메시지 구조
- Steef-Jan Wiggers. Write Stateless and Idempotent FunctionsStateless(무상태)가 Idempotent(멱등성)을 의미하는가?
- Structuring Your Code@SpringBootApplication은 실제로 무엇을 하는가
- styleshare.kr/store2021-10-07-TIL
- swagger.io/resources/articles/documenting-apis-with-swagger/2021-04-07-TIL
- syscall(2)사용자 공간과 커널 공간 - 시스템 콜, 복사, sendfile과 kTLS
- syscalls(2)사용자 공간과 커널 공간 - 시스템 콜, 복사, sendfile과 kTLS
- tanzu.vmware.com/cloud-nativeMicroservices Architecture
- TCP, UDPHTTP 웹 기본 지식 2: IP, TCP, 포트, DNS의 역할 나누기
- The DATE, DATETIME, and TIMESTAMP Types카카오 「MySQL DATETIME, TIMESTAMP 데이터 타입에 대한 분석」 리뷰 — 바이트 단위 저장 구조부터 아직 안 고쳐진 Y2K38까지
- The Java Tutorials — Chained ExceptionsSpring 애플리케이션에서 예외를 설계하는 방법
- The Java Virtual Machine Specification, Java SE 21: Chapter 2. The Structure of the JVMJVM은 무엇을 하는가
- The Log: What every software engineer should know about real-time data's unifying abstractionKafka의 저장 구조 - 세그먼트와 오프셋, 페이지 캐시와 zero-copy
- The PROXY protocol (HAProxy)SLASH 23 리뷰 - 분산 추적 체계 & 로그 중심으로 Observability 확보하기: 좋은 로그의 조건, 글로벌 trace ID, TCP 전문에 문맥 심기, 헤더 라우팅 디버깅 환경
- The Raft Consensus Algorithm합의 알고리즘 - Raft를 상태 기계로 읽기
- The RED MethodRED와 USE - 어디에 무엇을 붙이는가
- The USE MethodRED와 USE - 어디에 무엇을 붙이는가
- tigera.io/learn/guides/cloud-native-security/cloud-native-architecture/Microservices Architecture
- Time, Clocks, and the Ordering of Events in a Distributed System시간과 순서 - 물리 시계의 한계, 논리 시계, 하이브리드 시계
- tldp.org/LDP/Bash-Beginners-Guide/html/Shell Script
- TMC 25TMC 25 리뷰 - '주식모으기' 서비스로 살펴보는 대용량 트래픽 처리 노하우: 200만 주문을 3,000건으로 접는 풀링 주문과 그 대가
- Tolerant ReaderAPI 버저닝과 호환성 - 스키마 진화 규칙
- topic.alibabacloud.com/a/the-difference-between-hssfxssf-and-sxssf_8_8_31570522.htmlApache POI SXSSF vs XSSF vs HSSF
- Toxiproxy무너지는 Spring 서버 1 - CPU는 놀고 있는데 API가 느리다: 업스트림 하나가 무관한 엔드포인트를 죽이는 과정을 thread dump 세 장으로 읽기
- TransactionSynchronization네이버 D2 「스마트스토어센터 Oracle에서 MySQL로의 무중단 전환기」 리뷰 — 두 DB에 동시에 쓰되 한쪽 실패는 무시하고, 읽기 트래픽을 복제해 성능을 재고, 6개월간 불일치를 0으로 만든 과정
- tschatzl.github.io/2023/08/04/jdk21-g1-parallel-gc-changes.htmlG1gc Zgc
- tutorialspoint.com/apache_poi/apache_poi_quick_guide.htmApache POI SXSSF vs XSSF vs HSSF
- tutorialspoint.com/operating_system/os_multi_threading.htmMultiThreading and Thread Scheduling
- Type signatureFunction Signature
- Uber - Building Reliable Reprocessing and Dead Letter Queues with KafkaSLASH 21 리뷰 - 토스 서비스를 구성하는 서버 기술: 두 데이터센터 사이의 트래픽 이동, Istio 도입 후 남은 것, Kafka 두 클러스터
- Uber - uReplicator와 Kafka 멀티 DCSLASH 21 리뷰 - 토스 서비스를 구성하는 서버 기술: 두 데이터센터 사이의 트래픽 이동, Istio 도입 후 남은 것, Kafka 두 클러스터
- Understanding Singleflight in Go: A Solution for Eliminating Redundant WorkSingle Flight
- Understanding State: The Foundation for Building Dynamic ProgramsStateful vs Stateless
- URIHTTP 웹 기본 지식 3: URL 한 줄에서 요청과 응답까지
- Using @Autowiredspring-internals-lab로 다시 읽는 Spring 4 - 의존성 주입과 후보 선택
- Using dead-letter queues in Amazon SQS폴링 배치를 SQS 이벤트 파이프라인으로 바꾼 이유: 재시도, DLQ, 메시지 ID 멱등
- Using the @SpringBootApplication Annotation@SpringBootApplication은 실제로 무엇을 하는가
- Utility and helper classes - a code smell?헬퍼 클래스는 안티패턴일까?
- V$SQL_SHARED_CURSOR네이버 D2 「CDC 복제 이후 오라클이 느려졌다? child cursor 폭증이 만든 예상치 못한 문제」 리뷰 — 같은 SQL인데 바인딩 타입이 다르면 Oracle은 다른 쿼리로 본다
- Vaibhav Singh캐시 스탬피드(Cache Stampede)
- Validation and Serialization야놀자 「RESTful API validation 자동화 하기」 리뷰 — 인터페이스 하나에서 검증·문서·타입을 뽑는 이유, 그리고 자동화가 없으면 누락이 필연이라는 문장
- vdso(7)사용자 공간과 커널 공간 - 시스템 콜, 복사, sendfile과 kTLS
- velog.io/@dbsrud11/SpringBoot-%ED%95%B5%EC%8B%AC-%EC%9B%90%EB%A6%AC-%EC%93%B0%EB%A0%88%EB%93%9C-%EB%A1%9C%EC%BB%AC-ThreadLocal-2Thread Local
- velog.io/@victor/%EA%B3%A0%EC%B0%A8%ED%95%A8%EC%88%98%EB%9E%80%EA%B3%A0%EC%B0%A8%ED%95%A8%EC%88%98Higher Order Function
- Virtualize large lists with react-windowLarge List Rendering Issue
- Vitess Resharding (v22 문서)토스증권의 CQRS·검증기와 ParityPay의 스냅샷·대사: 읽기 모델을 분리하면 반드시 따라오는 세 가지 장치
- vived.io/jdk-21-strikes-again-stable-virtual-threads-and-generational-zgc-jvm-weekly-vol-128/G1gc Zgc
- VM.java다이렉트 메모리와 Cleaner - 힙 밖의 버퍼는 누가 언제 해제하는가
- Wait-Free SynchronizationLock-Free와 CAS - 락 없이 공유 변수를 바꾸는 방법과 그 한계
- What is Cache Stampede?캐시 스탬피드(Cache Stampede)
- What’s the difference between application, network, and gateway load balancing?ELB vs ALB vs NLB
- Wiki C2 (June 17, 2005). Does Being Stateless Imply Being IdempotentStateless(무상태)가 Idempotent(멱등성)을 의미하는가?
- wiki.kldp.org/HOWTO/html/Adv-Bash-Scr-HOWTO/index.htmlShell Script
- wikidocs.net/223082021-01-05-TIL
- Wikipedia. MicroservicesMicroservice Architecture
- Working with Microsoft Excel in Java2025-02-03-TIL
- yaboong.github.io/java/2018/06/09/java-garbage-collection/Garbage Collection
- yes24.com/Product/Goods/153810852021-01-05-TIL
- yes24.com/Product/Goods/16667186?OzSrank=112021-01-05-TIL
- yes24.com/Product/Goods/322032102021-01-05-TIL
- yes24.com/Product/Goods/5170353?OzSrank=12021-01-05-TIL
- youtube.com/watch?v=bLJJ3CY1aE8G1gc Zgc
- youtube.com/watch?v=RIKJVIcYNqE&list=PLYRfEO8DA8gikpkXw8wF8kJZDod2lFrMLShell Script
- youtube.com/watch?v=U2Sx5lU0KM8G1gc Zgc
- ZooKeeper - A Reliable, Scalable Distributed Coordination SystemApache Zookeeper
- ZooKeeper Javadoc: ZooKeeper.setDataMartin Kleppmann 「How to do distributed locking」 리뷰 — 효율을 위한 락과 정확성을 위한 락, fencing token이 막는 것과 못 막는 것, 그리고 lease의 시계는 누구 것인가
- ZooKeeper RecipesApache Zookeeper
- ZooKeeper Talk at the Hadoop Summit 2008Apache Zookeeper
- 검증 헤더와 조건부 요청1HTTP 웹 기본 지식 9: 캐시의 저장, 신선도, 재검증을 구분하기
- 검증 헤더와 조건부 요청2HTTP 웹 기본 지식 9: 캐시의 저장, 신선도, 재검증을 구분하기
- 김영한님 온라인 밋업 Live김영한 온라인 밋업 복습: 함께 성장하는 동료와 학습 기록
- 다음으로HTTP 웹 기본 지식 10: 배운 개념을 작은 API의 설계 기준으로 바꾸기
- 대용량 트래픽 처리를 위한 쿠팡의 백엔드 전략 (Part 1)쿠팡 「대용량 트래픽 처리를 위한 쿠팡의 백엔드 전략」 리뷰 — 캐시 두 겹과 '분 단위 99.99% 동일'이라는 문장, 그리고 그 0.01%를 누가 어떻게 세는가
- 도메인에 의존하지 않는 채팅 플랫폼은 어떻게 만들었을까?LINE 「도메인에 의존하지 않는 채팅 플랫폼은 어떻게 만들었을까?」 리뷰 — 사용자를 모르는 채팅 플랫폼, 웹으로 만든 클라이언트, SOFT STOP으로 갈아 끼우는 챗봇 시나리오
- 동시성 패턴: Fail-fast와 Single Flight 패턴 비교Single Flight
- 모든 개발자를 위한 HTTP 웹 기본 지식HTTP 웹 기본 지식 복습: 섹션별 학습 시리즈
- 모든 것이 HTTPHTTP 웹 기본 지식 4: 무상태, 연결 재사용, 메시지 구조
- 발표 영상SLASH 21 리뷰 - SRE 사례 소개: Redis 리밸런싱 ASK 에러, Memcached 재분배 실패, Prometheus가 바꾼 GC 패턴
- 발표 영상SLASH 21 리뷰 - 결제 시스템의 SDK와 API 디자인: 4단계를 2단계로, DELETE·PUT을 버린 이유, 한글 enum
- 발표 영상SLASH 21 리뷰 - MySQL HA & DR Topology: MMM, 대칭 DR 구성, 바이너리 로그 필터, super_read_only 안전장치
- 발표 영상SLASH 21 리뷰 - 테스트 커버리지 100%: 두 달의 비용, 1600개 테스트를 6초로, 그리고 100%여도 남는 버그
- 발표 영상SLASH 21 리뷰 - 토스 서비스를 구성하는 서버 기술: 두 데이터센터 사이의 트래픽 이동, Istio 도입 후 남은 것, Kafka 두 클러스터
- 발표 영상SLASH 22 리뷰 - Java Native Memory Leak 원인을 찾아서: RSS와 NMT의 2GB 차이, jemalloc 프로파일, C2 컴파일러, Graal JIT
- 발표 영상SLASH 22 리뷰 - 토스뱅크의 완전히 새로운 대출 시스템: Flyway + Hibernate validate, 대외기관 파이프라인, 연동 서킷과 대기열
- 발표 영상SLASH 22 리뷰 - 지속 성장 가능한 코드를 만들어가는 방법: import 문이 보내는 신호로 패키지·레이어·모듈을 다시 보기
- 발표 영상SLASH 22 리뷰 - 왜 은행은 무한스크롤이 안되나요: 채널계가 거래내역을 직접 갖기 위한 여덟 가지 방어
- 발표 영상SLASH 23 리뷰 - 은행 최초 코어뱅킹 MSA 전환기 (feat. 지금 이자 받기): 80회 DML을 50회로, MCI 대비 170배, 빅뱅 없는 전환
- 발표 영상SLASH 23 리뷰 - 토스뱅크의 모던 FEP: 전문을 Kotlin 어노테이션으로, 리플렉션 코덱, Netty 논블로킹, Redis 폴링으로 액티브-액티브
- 발표 영상SLASH 23 리뷰 - 분산 추적 체계 & 로그 중심으로 Observability 확보하기: 좋은 로그의 조건, 글로벌 trace ID, TCP 전문에 문맥 심기, 헤더 라우팅 디버깅 환경
- 발표 영상SLASH 23 리뷰 - 토스는 Gateway 이렇게 씁니다: 목적별 게이트웨이, 패스포트, 요청 서명 검증, YAML 라우트와 게이트웨이 봇
- 발표 영상SLASH 23 리뷰 - 연결되면 비로소 보이는 것들: Pinpoint 코루틴 플러그인을 만들기 위해 코루틴 바이트코드를 읽다
- 발표 영상SLASH 23 리뷰 - 프로파일러로 시스템 성능 향상시키기: Pinpoint, 힙 덤프, jemalloc, async-profiler, strace, 그리고 커널 버전
- 발표 영상SLASH 24 리뷰 - Next 코어뱅킹, MSA와 MySQL로 여는 평생 무료 환전 시대: Oracle을 버린 이유, 30ms 환전, 자정에도 멈추지 않는 잔액 대사
- 발표 영상SLASH 24 리뷰 - 대규모 사용자 기반의 마이데이터 서비스 안정적으로 운영하기: 클러스터 단위 서킷 코디네이터, 웹소켓 얼리 리턴, 7일 배치 분산
- 발표 영상SLASH 24 리뷰 - 토스뱅크가 차세대를 하지 않는 이유, 지속 가능한 마이그레이션 전략: 스트랭글러 피그, 6단계 사이클, 컴포지트 분할 정복, 병렬 실행 비교 검증
- 발표 영상SLASH 23 리뷰 - Kafka 이중화로 다양한 장애 상황 완벽 대처하기: Active-Standby를 믿지 않고 Active-Active로 간 이유와 IDC 장애 당일의 순서
- 발표 영상SLASH 24 리뷰 - 리플레이 검증으로 새로운 금융 시스템 안전하게 도입하기: 운영 트래픽을 그대로 재생해 차세대 원장을 검증하다
- 발표 영상SLASH 24 리뷰 - SSE 이벤트 푸쉬로 불필요한 Polling 제거하기: 3초 폴링을 이벤트로 바꾸고 브로커를 세 번 갈아탄 기록
- 발표 영상TMC 25 리뷰 - '주식모으기' 서비스로 살펴보는 대용량 트래픽 처리 노하우: 200만 주문을 3,000건으로 접는 풀링 주문과 그 대가
- 비 연결성HTTP 웹 기본 지식 4: 무상태, 연결 재사용, 메시지 구조
- 세션 페이지SLASH 24 리뷰 - 리플레이 검증으로 새로운 금융 시스템 안전하게 도입하기: 운영 트래픽을 그대로 재생해 차세대 원장을 검증하다
- 세션 페이지SLASH 24 리뷰 - SSE 이벤트 푸쉬로 불필요한 Polling 제거하기: 3초 폴링을 이벤트로 바꾸고 브로커를 세 번 갈아탄 기록
- 소개영상HTTP 웹 기본 지식 1: 웹 프레임워크 앞에서 확인할 것들
- 스마트스토어센터 Oracle에서 MySQL로의 무중단 전환기네이버 D2 「스마트스토어센터 Oracle에서 MySQL로의 무중단 전환기」 리뷰 — 두 DB에 동시에 쓰되 한쪽 실패는 무시하고, 읽기 트래픽을 복제해 성능을 재고, 6개월간 불일치를 0으로 만든 과정
- 스프링 MVC 1편스프링 MVC 1편 복습: 요청이 컨트롤러에 도착하기까지
- 스프링 핵심 원리 - 기본편스프링 핵심 원리 기본편 복습: 객체를 사용하는 일과 조립하는 일
- 실시간 메시징 시스템 개발 - "성능 테스트 설계와 분석"카카오 「실시간 메시징 시스템 개발기」(3편) 리뷰 — Redis에 몰린 부하를 서버로 옮기고, 그 서버를 pprof로 세 번 깎은 이야기
- 실시간 메시징 시스템 개발기 - "성능 개선 레슨런"카카오 「실시간 메시징 시스템 개발기」(3편) 리뷰 — Redis에 몰린 부하를 서버로 옮기고, 그 서버를 pprof로 세 번 깎은 이야기
- 실전 데이터베이스 입문실전 데이터베이스 입문 복습: SQL을 적는 순서와 해석하는 순서
- 실전! 스프링 데이터 JPA스프링 데이터 JPA 복습: 반복 코드를 줄인 뒤에도 남는 조회 설계
- 아 엑셀다운로드 개발,,, 쉽고 빠르게 하고 싶다 (feat. 엑셀 다운로드 모듈 개발기)2025-02-03-TIL
- 웹 브라우저 요청 흐름HTTP 웹 기본 지식 3: URL 한 줄에서 요청과 응답까지
- 인증HTTP 웹 기본 지식 8: 표현과 협상, 인증과 쿠키를 헤더로 연결하기
- 인터넷 통신HTTP 웹 기본 지식 2: IP, TCP, 포트, DNS의 역할 나누기
- 인프런 강의동기·비동기 강의 정리: 기다림과 실행 순서를 따로 보기
- 일 3,000만 건의 네이버페이 주문 메시지를 처리하는 Kafka 시스템의 무중단 전환 사례네이버 D2 「일 3,000만 건의 네이버페이 주문 메시지를 처리하는 Kafka 시스템의 무중단 전환 사례」 리뷰 — 두 벌로 발행해 대조한 검증기와, 발행 제어 키를 파티션 키와 같게 둔 이유
- 일반 정보HTTP 웹 기본 지식 8: 표현과 협상, 인증과 쿠키를 헤더로 연결하기
- 잃어버린 리포트를 찾아서: 카카오 메시징 시스템의 경쟁 조건 문제와 안티 패턴 제거 과정카카오 「잃어버린 리포트를 찾아서: 카카오 메시징 시스템의 경쟁 조건 문제와 안티 패턴 제거 과정」 리뷰 — 벤더가 8ms 만에 리포트를 보냈고, 우리는 101ms짜리 트랜잭션 안에 있었다
- 전송 방식HTTP 웹 기본 지식 8: 표현과 협상, 인증과 쿠키를 헤더로 연결하기
- 책 소개 사이트Chapter 2. Architectural Thinking
- 추가배포 없이 API의 case 통일시키기카카오 「추가배포 없이 API의 case 통일시키기」 리뷰 — 받는 쪽이 자기 케이스에 맞춰 알아서 읽게 하면 배포 순서가 사라진다
- 캐시 기본 동작HTTP 웹 기본 지식 9: 캐시의 저장, 신선도, 재검증을 구분하기
- 캐시 무효화HTTP 웹 기본 지식 9: 캐시의 저장, 신선도, 재검증을 구분하기
- 캐시 문제 해결 가이드 - DB 과부하 방지 실전 팁캐시 스탬피드(Cache Stampede)
- 캐시 성능 향상기 (Improving Cache Speed at Scale)캐시 스탬피드(Cache Stampede)
- 캐시 스탬피드를 대응하는 성능 향상 전략, PER 알고리즘 구현캐시 스탬피드(Cache Stampede)
- 캐시를 활용한 대용량 트래픽 처리 성능 향상 (Part 2)쿠팡 「대용량 트래픽 처리를 위한 쿠팡의 백엔드 전략」 리뷰 — 캐시 두 겹과 '분 단위 99.99% 동일'이라는 문장, 그리고 그 0.01%를 누가 어떻게 세는가
- 캐시와 조건부 요청 헤더HTTP 웹 기본 지식 9: 캐시의 저장, 신선도, 재검증을 구분하기
- 컬리의 입고 시스템이 외부 인입 데이터를 안전하게 동기화하는 방법컬리 「컬리의 입고 시스템이 외부 인입 데이터를 안전하게 동기화하는 방법」 리뷰 — 145회 재시도가 맞는 도메인과 재시도를 금지한 도메인, 그리고 발행부와 수신부가 각자 책임지는 구조
- 콘텐츠 협상HTTP 웹 기본 지식 8: 표현과 협상, 인증과 쿠키를 헤더로 연결하기
- 쿠키HTTP 웹 기본 지식 8: 표현과 협상, 인증과 쿠키를 헤더로 연결하기
- 클라이언트 서버 구조HTTP 웹 기본 지식 4: 무상태, 연결 재사용, 메시지 구조
- 클라이언트에서 서버로 데이터 전송HTTP 웹 기본 지식 6: 폼 전송에서 리소스 중심 API 설계까지
- 테스트 코드는 왜 만들까?테스트 코드는 왜 작성해야 할까?
- 테스트 코드를 왜 그리고 어떻게 작성해야 할까?테스트 코드는 왜 작성해야 할까?
- 토스증권 마진 트레이딩 서버 개발자 인터뷰토스증권 Server Developer (Product) 공고 분석: 제품 개발자에게 원장 수준의 정합성을 요구하는 이유
- 토스페이먼츠 개발자 문서SLASH 21 리뷰 - 결제 시스템의 SDK와 API 디자인: 4단계를 2단계로, DELETE·PUT을 버린 이유, 한글 enum
- 특별한 정보HTTP 웹 기본 지식 8: 표현과 협상, 인증과 쿠키를 헤더로 연결하기
- 표현HTTP 웹 기본 지식 8: 표현과 협상, 인증과 쿠키를 헤더로 연결하기
- 프록시 캐시HTTP 웹 기본 지식 9: 캐시의 저장, 신선도, 재검증을 구분하기