<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>기술 on wid's blog</title><link>https://wid-blog.github.io/categories/%EA%B8%B0%EC%88%A0/</link><description>Recent content in 기술 on wid's blog</description><generator>Hugo</generator><language>ko</language><lastBuildDate>Sat, 09 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://wid-blog.github.io/categories/%EA%B8%B0%EC%88%A0/index.xml" rel="self" type="application/rss+xml"/><item><title>Microservices Architecture</title><link>https://wid-blog.github.io/posts/tech/architecture/microservices-architecture/</link><pubDate>Sat, 09 May 2026 00:00:00 +0000</pubDate><guid>https://wid-blog.github.io/posts/tech/architecture/microservices-architecture/</guid><description>MSA 는 서비스를 어느 기준으로 가를 것인가의 결정이다. 도메인 경계, 데이터 소유권, 스케일 패턴, 장애 격리 — 어느 것을 우선하느냐가 경계를 만들고 통신과 데이터를 차례로 결정한다.</description></item><item><title>Event Sourcing and CQRS</title><link>https://wid-blog.github.io/posts/tech/architecture/event-sourcing-and-cqrs/</link><pubDate>Thu, 07 May 2026 00:00:00 +0000</pubDate><guid>https://wid-blog.github.io/posts/tech/architecture/event-sourcing-and-cqrs/</guid><description>ES 와 CQRS 는 시스템의 원본 데이터와 그 표현의 분리를 다룬다. 도입 비용이 시스템 전반에 분산되므로 채택 가치를 명시할 수 있을 때 채택할 만하다고 본다.</description></item><item><title>Distributed Transactions</title><link>https://wid-blog.github.io/posts/tech/architecture/distributed-transactions/</link><pubDate>Tue, 05 May 2026 00:00:00 +0000</pubDate><guid>https://wid-blog.github.io/posts/tech/architecture/distributed-transactions/</guid><description>분산 트랜잭션은 모놀리스의 단일 ACID 트랜잭션이 분산 환경에서 어떻게 분해되고, 그 조각을 어떻게 재조립하는가의 문제다. 2PC, Saga (Choreography vs Orchestration), Outbox 의 역할과 트레이드오프.</description></item><item><title>Claude Code 설정을 레이어로 나누기</title><link>https://wid-blog.github.io/posts/tech/devenv/claude-code-config-layers/</link><pubDate>Fri, 01 May 2026 00:00:00 +0000</pubDate><guid>https://wid-blog.github.io/posts/tech/devenv/claude-code-config-layers/</guid><description>settings.json, CLAUDE.md, slash commands, subagents, hooks. Claude Code 커스터마이징 표면은 &amp;lsquo;언제 개입하는가&amp;rsquo;라는 축 하나로 네 레이어로 정돈된다.</description></item><item><title>macOS 개발 환경: dotfiles</title><link>https://wid-blog.github.io/posts/tech/devenv/macos-dev-environment/</link><pubDate>Thu, 30 Apr 2026 00:00:00 +0000</pubDate><guid>https://wid-blog.github.io/posts/tech/devenv/macos-dev-environment/</guid><description>alacritty + tmux + nvim + zsh + Claude Code 다섯 도구로 구성한 터미널 중심 개발 환경. 각 도구의 선택 이유와 조합 방식을 정리한다.</description></item><item><title>JIRA Sprint 워크플로우와 Git/GitHub 연동</title><link>https://wid-blog.github.io/posts/tech/devenv/jira-sprint-workflow/</link><pubDate>Tue, 30 Dec 2025 00:00:00 +0000</pubDate><guid>https://wid-blog.github.io/posts/tech/devenv/jira-sprint-workflow/</guid><description>JIRA의 이슈와 워크플로우를 작업 단위의 그래프로 보고, Sprint 라이프사이클·이슈 계층·Git/GitHub 연동 패턴·자동화 흐름을 정리한다.</description></item><item><title>GitHub Actions 기본기 — workflow, job, step</title><link>https://wid-blog.github.io/posts/tech/devenv/github-actions-fundamentals/</link><pubDate>Mon, 15 Dec 2025 00:00:00 +0000</pubDate><guid>https://wid-blog.github.io/posts/tech/devenv/github-actions-fundamentals/</guid><description>GitHub Actions를 저장소 이벤트 기반 자동화 엔진으로 보고, workflow / job / step 3단 추상과 trigger·runner·secret 운영을 정리한다.</description></item><item><title>GitHub PR과 Code Review 사이클</title><link>https://wid-blog.github.io/posts/tech/devenv/github-pr-and-code-review/</link><pubDate>Sun, 30 Nov 2025 00:00:00 +0000</pubDate><guid>https://wid-blog.github.io/posts/tech/devenv/github-pr-and-code-review/</guid><description>GitHub PR을 Git 변경 그래프 위에 협업 레이어를 더한 추상으로 보고, Code Review 사이클·PR 단위 설계·머지 전략을 정리한다.</description></item><item><title>Git 워크플로우 기본기 — commit, branch, merge/rebase</title><link>https://wid-blog.github.io/posts/tech/devenv/git-workflow-basics/</link><pubDate>Sat, 15 Nov 2025 00:00:00 +0000</pubDate><guid>https://wid-blog.github.io/posts/tech/devenv/git-workflow-basics/</guid><description>Git을 명령어 모음이 아닌 변경의 그래프로 보고, commit hygiene·branch strategy·merge vs rebase 결정이 그래프 모양에 대한 선택임을 정리한다.</description></item><item><title>Security Group 과 NACL</title><link>https://wid-blog.github.io/posts/tech/infra/vpc-security-fundamentals/</link><pubDate>Sat, 01 Nov 2025 00:00:00 +0000</pubDate><guid>https://wid-blog.github.io/posts/tech/infra/vpc-security-fundamentals/</guid><description>Security Group(stateful, 인스턴스 단위)과 NACL(stateless, Subnet 단위)이 어떻게 서로 다른 계층의 방어선을 만드는지, 그리고 흔한 함정 시나리오를 정리한다.</description></item><item><title>VPC 간/외부 연결 — Peering, VPN, Transit, PrivateLink</title><link>https://wid-blog.github.io/posts/tech/infra/vpc-connectivity-fundamentals/</link><pubDate>Mon, 20 Oct 2025 00:00:00 +0000</pubDate><guid>https://wid-blog.github.io/posts/tech/infra/vpc-connectivity-fundamentals/</guid><description>VPC 간/온프레미스/서비스 연결을 책임지는 4가지 메커니즘 — Peering, Transit Gateway, Site-to-Site VPN, PrivateLink — 의 토폴로지와 비용 트레이드오프를 정리한다.</description></item><item><title>VPC 트래픽 흐름과 Route Table</title><link>https://wid-blog.github.io/posts/tech/infra/vpc-routing-fundamentals/</link><pubDate>Wed, 01 Oct 2025 00:00:00 +0000</pubDate><guid>https://wid-blog.github.io/posts/tech/infra/vpc-routing-fundamentals/</guid><description>VPC 안의 트래픽 경로를 결정하는 Route Table, 외부 출입구 역할의 Internet Gateway와 NAT Gateway, Public/Private Subnet 구분의 실체를 정리한다.</description></item><item><title>VPC와 격리 모델</title><link>https://wid-blog.github.io/posts/tech/infra/vpc-isolation-fundamentals/</link><pubDate>Mon, 15 Sep 2025 00:00:00 +0000</pubDate><guid>https://wid-blog.github.io/posts/tech/infra/vpc-isolation-fundamentals/</guid><description>VPC가 IP CIDR, Subnet, Tenancy 세 요소를 조합해 사설 네트워크 경계를 시뮬레이션하는 원리를 정리한다. AWS/GCP/Azure/Alibaba 벤더 명칭 매핑 포함.</description></item><item><title>무중단 데이터 전환 패턴</title><link>https://wid-blog.github.io/posts/tech/architecture/zero-downtime-data-transition/</link><pubDate>Tue, 15 Apr 2025 00:00:00 +0000</pubDate><guid>https://wid-blog.github.io/posts/tech/architecture/zero-downtime-data-transition/</guid><description>이중 쓰기와 fallback 읽기를 조합하여 운영 중인 서비스의 데이터 형식을 무중단으로 전환하는 3단계 패턴을 정리한다.</description></item><item><title>봉투 암호화</title><link>https://wid-blog.github.io/posts/tech/security/envelope-encryption/</link><pubDate>Tue, 01 Apr 2025 00:00:00 +0000</pubDate><guid>https://wid-blog.github.io/posts/tech/security/envelope-encryption/</guid><description>봉투 암호화의 CMK/DEK 2중 키 구조가 키 유출 영향을 제한하고 키 회전을 단순화하는 원리를 정리한다.</description></item><item><title>MLflow 와 ML Lifecycle</title><link>https://wid-blog.github.io/posts/tech/ml/mlflow/</link><pubDate>Thu, 20 Feb 2025 00:00:00 +0000</pubDate><guid>https://wid-blog.github.io/posts/tech/ml/mlflow/</guid><description>MLflow의 네 조각이 ML Lifecycle의 어느 칸을 메우는지, 그리고 경량 팀이 그 중 어떤 조각을 고를 수 있는지.</description></item><item><title>Circuit Breaker</title><link>https://wid-blog.github.io/posts/tech/design-pattern/circuit-breaker/</link><pubDate>Sat, 15 Feb 2025 00:00:00 +0000</pubDate><guid>https://wid-blog.github.io/posts/tech/design-pattern/circuit-breaker/</guid><description>Circuit Breaker 의 차단 트리거와 회복 전략은 함께 설계되어야 한다. 회복 없는 차단은 의존성을 영구히 끊고, 차단 기준 없는 회복은 무의미한 cycling 이다.</description></item><item><title>Rate Limiting</title><link>https://wid-blog.github.io/posts/tech/design-pattern/rate-limiting/</link><pubDate>Fri, 14 Feb 2025 00:00:00 +0000</pubDate><guid>https://wid-blog.github.io/posts/tech/design-pattern/rate-limiting/</guid><description>Rate Limit 알고리즘을 고르기 전에, 어느 계층에서 보호할지가 먼저 알고리즘의 선택지를 좌우한다. L4/L7/Application 계층과 Token/Leaky/Sliding/Fixed 알고리즘의 교차 관계를 정리한다.</description></item><item><title>모델 학습 프레임워크 고르기: sklearn vs ONNX</title><link>https://wid-blog.github.io/posts/tech/ml/model-training-frameworks/</link><pubDate>Sat, 01 Feb 2025 00:00:00 +0000</pubDate><guid>https://wid-blog.github.io/posts/tech/ml/model-training-frameworks/</guid><description>sklearn과 ONNX는 같은 레이어의 경쟁자가 아니다. 두 도구의 자리를 분리해서 보면 &amp;lsquo;ONNX 레이어가 필요한가&amp;rsquo;라는 질문이 자연스럽게 남는다.</description></item><item><title>Logistic Regression 다시 보기</title><link>https://wid-blog.github.io/posts/tech/ml/logistic-regression/</link><pubDate>Wed, 15 Jan 2025 00:00:00 +0000</pubDate><guid>https://wid-blog.github.io/posts/tech/ml/logistic-regression/</guid><description>CTR 예측의 baseline으로서 Logistic Regression의 구조와 특성을 정리한다. 오래된 모델이 여전히 baseline 으로 쓰이는 이유.</description></item><item><title>배포 변경점 검증의 사각지대 — 캐시 캠페인 장애 회고</title><link>https://wid-blog.github.io/posts/career/dable/campaign-cache-miss-retrospective/</link><pubDate>Wed, 27 Nov 2024 00:00:00 +0000</pubDate><guid>https://wid-blog.github.io/posts/career/dable/campaign-cache-miss-retrospective/</guid><description>배포는 이틀 전에 끝났지만 변경점은 적용되지 않은 채 잠재해 있었다. 캐시 갱신 배치를 끄는 순간 광고 서빙이 멈췄다. 배포 변경점 검증의 부재를 회고한다.</description></item><item><title>Kubernetes 기초</title><link>https://wid-blog.github.io/posts/tech/infra/kubernetes-fundamentals/</link><pubDate>Wed, 10 Apr 2024 00:00:00 +0000</pubDate><guid>https://wid-blog.github.io/posts/tech/infra/kubernetes-fundamentals/</guid><description>Container 오케스트레이션의 기본 구조와 백엔드 개발자가 알아야 할 핵심 오브젝트, 네트워크, 스케일링, 운영 방법을 정리한다.</description></item><item><title>Go Concurrency 모델</title><link>https://wid-blog.github.io/posts/tech/language/go-concurrency-model/</link><pubDate>Fri, 05 Apr 2024 00:00:00 +0000</pubDate><guid>https://wid-blog.github.io/posts/tech/language/go-concurrency-model/</guid><description>Go의 동시성 모델은 CSP를 기반으로 Goroutine과 Channel을 핵심 도구로 제공한다. 각 도구의 동작 원리와 선택 기준을 정리한다.</description></item><item><title>MongoDB와 Redis — 같은 NoSQL, 다른 역할</title><link>https://wid-blog.github.io/posts/tech/database/mongodb-vs-redis/</link><pubDate>Tue, 02 Apr 2024 00:00:00 +0000</pubDate><guid>https://wid-blog.github.io/posts/tech/database/mongodb-vs-redis/</guid><description>같은 NoSQL 우산 아래에서 MongoDB 와 Redis 가 서로 다른 역할로 자리잡은 이유. 데이터 모델·스토리지·스키마·확장·사용 사례를 기준으로 비교 정리.</description></item><item><title>Spring WebFlux 기본 — 논블로킹 I/O와 리액티브 스택</title><link>https://wid-blog.github.io/posts/tech/language/spring-webflux-reactive-stack/</link><pubDate>Mon, 25 Mar 2024 00:00:00 +0000</pubDate><guid>https://wid-blog.github.io/posts/tech/language/spring-webflux-reactive-stack/</guid><description>Spring MVC는 요청당 스레드를 할당한다. I/O 대기가 길어지면 스레드가 묶인다. WebFlux는 이벤트 루프 기반 논블로킹 모델로 이 문제를 해결한다. MVC와의 구조적 차이, Reactor 패턴, 선택 기준을 정리한다.</description></item><item><title>HTTP/1.1과 HTTP/2</title><link>https://wid-blog.github.io/posts/tech/network/http1-vs-http2/</link><pubDate>Wed, 20 Mar 2024 00:00:00 +0000</pubDate><guid>https://wid-blog.github.io/posts/tech/network/http1-vs-http2/</guid><description>HTTP/1.1은 요청과 응답이 순차적이다. HTTP/2는 멀티플렉싱, 바이너리 프레이밍, 헤더 압축으로 이 구조를 바꿨다. 두 프로토콜의 차이와 HTTP/2 위에서 동작하는 gRPC의 특성을 정리한다.</description></item><item><title>Docker Container 기초</title><link>https://wid-blog.github.io/posts/tech/infra/docker-container-fundamentals/</link><pubDate>Fri, 15 Mar 2024 00:00:00 +0000</pubDate><guid>https://wid-blog.github.io/posts/tech/infra/docker-container-fundamentals/</guid><description>Container의 개념과 VM과의 차이를 정리하고, Docker의 아키텍처, Dockerfile, Docker Compose의 기본 사용법을 설명한다.</description></item><item><title>Horizontal vs Vertical Slicing</title><link>https://wid-blog.github.io/posts/tech/architecture/horizontal-vertical-slicing/</link><pubDate>Sun, 10 Mar 2024 00:00:00 +0000</pubDate><guid>https://wid-blog.github.io/posts/tech/architecture/horizontal-vertical-slicing/</guid><description>코드를 기술 계층별로 나누는 수평 분할과, 기능/도메인별로 나누는 수직 분할의 차이를 정리한다. 각각의 장단점과 선택 기준.</description></item><item><title>Nest.js 기본 — DI와 Module 시스템</title><link>https://wid-blog.github.io/posts/tech/language/nestjs-di-module-system/</link><pubDate>Mon, 26 Feb 2024 00:00:00 +0000</pubDate><guid>https://wid-blog.github.io/posts/tech/language/nestjs-di-module-system/</guid><description>Nest.js는 Node.js 생태계에서 DI 컨테이너와 Module 시스템을 프레임워크 수준에서 제공한다. IoC, DI, Module, Provider 등 핵심 설계 원칙을 정리한다.</description></item><item><title>Layered Architecture와 의존성 역전</title><link>https://wid-blog.github.io/posts/tech/architecture/layered-architecture/</link><pubDate>Fri, 23 Feb 2024 00:00:00 +0000</pubDate><guid>https://wid-blog.github.io/posts/tech/architecture/layered-architecture/</guid><description>레이어드 아키텍처는 기술적 책임 기준으로 코드를 수평 계층으로 나눈다. 4계층 구조의 각 역할, 의존성 방향 규칙, DIP로 계층 간 결합을 끊는 방법을 정리한다.</description></item><item><title>Kafka 기초와 KRaft 모드</title><link>https://wid-blog.github.io/posts/tech/infra/kafka-fundamentals-kraft/</link><pubDate>Thu, 22 Feb 2024 00:00:00 +0000</pubDate><guid>https://wid-blog.github.io/posts/tech/infra/kafka-fundamentals-kraft/</guid><description>Kafka의 핵심 개념(토픽, 파티션, 컨슈머 그룹, 복제)을 정리하고, ZooKeeper 의존성을 제거한 KRaft 모드의 등장 배경을 설명한다.</description></item><item><title>Go에서 Hexagonal Architecture 구현</title><link>https://wid-blog.github.io/posts/tech/architecture/go-hexagonal-architecture/</link><pubDate>Wed, 21 Feb 2024 00:00:00 +0000</pubDate><guid>https://wid-blog.github.io/posts/tech/architecture/go-hexagonal-architecture/</guid><description>Hexagonal Architecture의 핵심 개념과 Go에서의 관용적 구현. 암묵적 인터페이스와 패키지 구조를 활용한 의존성 방향 제어.</description></item><item><title>Builder</title><link>https://wid-blog.github.io/posts/tech/design-pattern/builder/</link><pubDate>Sun, 11 Feb 2024 00:00:00 +0000</pubDate><guid>https://wid-blog.github.io/posts/tech/design-pattern/builder/</guid><description>Builder 는 생성자의 세 가지 한계가 동시에 모일 때의 해결책이다. 매개변수 수가 많고, 일부가 선택적이고, 단계적 검증이 필요한 경우. 셋이 같이 모이지 않으면 다른 도구로 충분하다. 언어가 named/default 매개변수를 제공하면 Builder 의 필요도 자연스럽게 줄어든다.</description></item><item><title>Factory</title><link>https://wid-blog.github.io/posts/tech/design-pattern/factory/</link><pubDate>Sun, 04 Feb 2024 00:00:00 +0000</pubDate><guid>https://wid-blog.github.io/posts/tech/design-pattern/factory/</guid><description>Factory 의 공통 의도는 객체 생성과 사용의 분리다. 세 변형 (Factory Method / Abstract Factory / Static Factory Method) 은 분리 방식이 다르고 적합한 상황도 다르다. 실무에서는 Static Factory Method 가 가장 자주 쓰이고, DI 컨테이너가 등장하면 명시적 Factory 의 일부 역할이 컨테이너로 흡수된다.</description></item><item><title>Singleton</title><link>https://wid-blog.github.io/posts/tech/design-pattern/singleton/</link><pubDate>Sun, 28 Jan 2024 00:00:00 +0000</pubDate><guid>https://wid-blog.github.io/posts/tech/design-pattern/singleton/</guid><description>Singleton 은 가장 단순한 패턴이지만 안티패턴 논란의 대표 사례다. 단일 인스턴스 보장과 전역 접근을 한 패턴에 묶은 결정이 강한 결합과 테스트 어려움의 원인. DI 가 두 의도를 분리한 일반 대안이다.</description></item><item><title>Dependency Injection — DIP, IoC, DI의 위계</title><link>https://wid-blog.github.io/posts/tech/design-pattern/dependency-injection/</link><pubDate>Thu, 25 Jan 2024 00:00:00 +0000</pubDate><guid>https://wid-blog.github.io/posts/tech/design-pattern/dependency-injection/</guid><description>DIP(원칙), IoC(패턴), DI(기법)는 서로 다른 추상 수준에 있는 개념이다. 위계를 분명히 봐야 프레임워크 기능과 설계 원리가 섞이지 않는다.</description></item><item><title>변경분 갱신 캐시 패턴</title><link>https://wid-blog.github.io/posts/tech/architecture/incremental-cache-refresh/</link><pubDate>Sat, 20 Jan 2024 00:00:00 +0000</pubDate><guid>https://wid-blog.github.io/posts/tech/architecture/incremental-cache-refresh/</guid><description>전량 갱신 방식의 캐시를 변경분만 갱신하도록 전환하는 패턴. 데이터를 성격별로 분리하고 변경 감지 전략을 적용하여 네트워크 비용을 줄이는 구조를 정리한다.</description></item><item><title>캐시 갱신 최적화 회고</title><link>https://wid-blog.github.io/posts/career/dable/ad-campaign-cache-optimization/</link><pubDate>Mon, 15 Jan 2024 00:00:00 +0000</pubDate><guid>https://wid-blog.github.io/posts/career/dable/ad-campaign-cache-optimization/</guid><description>변경이 드문 캠페인 설정 데이터를 전량 갱신하던 캐시 구조를 개선하여 네트워크 비용을 줄이고 인스턴스를 스케일 다운한 과정을 기록한다.</description></item><item><title>RDB Transaction 의 ACID 가 실제로 보장하는 것</title><link>https://wid-blog.github.io/posts/tech/database/rdb-transaction-acid/</link><pubDate>Fri, 01 Sep 2023 00:00:00 +0000</pubDate><guid>https://wid-blog.github.io/posts/tech/database/rdb-transaction-acid/</guid><description>RDB 트랜잭션의 ACID 4개 속성이 실제로 무엇을 보장하는가. A/C/D 는 비교적 명확한 보장이지만 I 만 &amp;lsquo;단계&amp;rsquo; 가 존재하는 이유 — 정확성과 동시성의 트레이드오프 도입.</description></item><item><title>TCP와 UDP</title><link>https://wid-blog.github.io/posts/tech/network/tcp-udp/</link><pubDate>Tue, 01 Mar 2022 00:00:00 +0000</pubDate><guid>https://wid-blog.github.io/posts/tech/network/tcp-udp/</guid><description>백엔드 개발에서 자주 마주치는 두 전송 프로토콜, TCP와 UDP의 동작 원리를 정리한다. 연결 수립, 신뢰성 보장, 흐름/혼잡 제어 메커니즘과 선택 기준.</description></item><item><title>세션 인증과 JWT</title><link>https://wid-blog.github.io/posts/tech/security/session-and-jwt/</link><pubDate>Sat, 20 Mar 2021 00:00:00 +0000</pubDate><guid>https://wid-blog.github.io/posts/tech/security/session-and-jwt/</guid><description>HTTP는 stateless다. 사용자 인증을 유지하려면 상태를 어딘가에 저장해야 한다. 서버에 저장하는 세션 방식과 토큰에 담아 클라이언트에 위임하는 JWT 방식의 구조, 트레이드오프, 저장 전략을 정리한다.</description></item></channel></rss>