목록Tech (42)
우당탕탕

빈 라이프사이클과 초기화 실수 feat. Proxy(프록시) 이번에는 프록시와 내부 호출에서 벗어나, 스프링에서 자주 실수하는 빈 라이프사이클 및 초기화와 관련된 내용을 다룹니다.1. @PostConstruct 초기화 타이밍 실수스프링 빈이 생성되고 DI가 끝난 후 호출되는 @PostConstruct 하지만 이 시점에 DB 커넥션 등 외부 자원이 완전히 준비됐다고 기대하면 안됩니다.예를 들어 DB 트랜잭션이나, 다른 빈에서 초기화를 의존할 때 순서 관련 오류가 자주 발생합니다.@Componentpublic class MyBean { @Autowired private UserRepository userRepository; @PostConstruct public void init() ..

@Transactional 분리 시 발생하는 Self Invocation 오류와 그 원인 및 해결Self Invocation과 @Transactional의 관계 Spring에서 트랜잭션을 선언할 때 흔히 사용하는 방식은 바로 @Transactional 어노테이션을 메서드나 클래스에 붙이는 것이다. 이 어노테이션 덕분에 해당 메소드의 실행 시작과 함께 트랜잭션이 열리고, 작업이 끝나면 커밋 또는 롤백이 자동으로 처리된다. 그런데 개발하다 보면 이런 상황이 자주 생긴다.“한 서비스 내 메소드A에서 메서드 B를 호출하는데, B에만 @Transactional을 붙였더니 트랜잭션이 동작하지 않는 것 같다?” “@Transactional(propagation=REQUIRES_NEW)로 새로운 트랜잭션을 만들었는..

데이터 중심 AI 서버 프로토콜의 대변혁, 왜 Streamable HTTP인가? 2025년, AI·서비스 백엔드 계에서 가장 핫한 변화 가운데 하나는 새로운 스트리밍 서버-클라이언트 프로토콜의 진화다.과거 MCP(Modal Context Protocol)는 JSON-RPC 2.0 기반 메시지 구조, HTTP+SSE(SSE: Server-Sent Events)로 대표되는 통신 메커니즘을 공식 표준으로 삼고 있었다. 이 구조는 엔트로픽(Anthropic)이 2024년 11월 26일 최초로 제안, 오늘날 다양한 AI 시스템들이 클라이언트-서버 상호작용에 필수로 채택한 전송 프로토콜이 됐다. 1. MCP의 JSON-RPC 2.0 포맷• 모든 메시지는 JSON 객체로 구성되고, jsonrpc (버전), me..

서비스 장애, 신입~10년차도 무조건 경험하는 인시던트 처리 마스터 가이드 안녕하세요! “어제 저녁 서비스 터졌어요! 원인 아세요?”“누가 코드 머지한 이후 첫 주말에 서버가 먹통이 됐어요.”서비스가 크건 작건, 언젠가는 반드시 겪는 실전 장애(인시던트). 이번 글에서는 개발자가 실제로 어떻게 사고를 진화/진단/복구하고, 수평적인 팀 커뮤니케이션에서 자동화된 복구, 포스트모템 작성, 재발 방지까지 현실적인 전체 흐름을 구조적으로 정리해 보려고 합니다. Feat. 온콜, Slack 및 Teams 알림1. 장애는 왜 반드시 일어나는가?• 소프트웨어, 인프라, 데이터, 네트워크, 외부 API 등 모든 복잡한 시스템은 예외 없이 실패한다는 전제를 먼저 깔고 있어야 합니다. ( 실패가 없는 서비스는 없습니다 )•..

Redis + Lua Script를 활용한 분산락안녕하세요!이번 글에서는 대규모 분산 환경에서 안전하게 “한 번에 한 명만” 작업이 이루어지게 하는 Redis + Lua Script 기반 분산 락을 알아보고 예시코드를 통해 개발하는 방법을 알아보도록 하겠습니다. 이전 글 보러가기[동시성 제어 1편] 동시성 제어란? - 데이터가 꼬이지 않는 백엔드의 첫걸음[동시성 제어 2편] 비관적 락(Pessimistic Lock) - JPA 스프링으로 경험해보는 실전 가이드[동시성 제어 3편] 낙관적 락(Optimistic Lock) - @Version 어노테이션을 활용한 락1. 분산락이란? 왜 Redis에서 구현할까• 서버가 2대 이상(마이크로서비스, 스케일아웃 인프라 등)인 환경 → DB 락/코드 수준 락으로는 “..

3조 달러, 당신의 서버는 안전한가? 안녕하세요! 오늘은 백엔드 보안 솔루션에 관련된 이야기로 글을 써보려고 합니다.2025년, 사이버 범죄 피해가 전 세계 3조 달러를 넘는 시대. 스타트업부터 대기업까지, 언제 데이터가 털릴지 모른다는 공포 속에, 현업에서는 하루라도 빨리 제대로 된 보안 솔루션 도입을 검토하고 있습니다. 하지만, • “Auth0, Okta, AWS Cognito… 도대체 뭐가 다른 건가요?”• “가격도 천차만별이고, 써보니 또 API 연동이 꼬여버렸어요…”• “실제 해킹 막아본 개발자, 생생하게 비교해 줄 수 없나요?”와 같은 다양한 궁금증이 존재하는데요.– 이번 글에서는 당신의 서비스와 직장, 그리고 월 수익(!)이 바뀔 수 있는 내용으로 작성해 보겠습니다. 1. 📢 2025년,..