목록Tech (45)
우당탕탕
서비스 장애, 신입~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년,..
[동시성 제어 3편] 낙관적 락(Optimistic Lock)안녕하세요!지난 글에서는 비관적 락(Pessimistic Lock)에 대해 알아보았습니다. 오늘은 그 반대 성격의 낙관적 락(Optimistic Lock)을 실전 코드 중심으로 정리해 보려고 합니다.이전 편 보러 가기[동시성] 동시성 제어란? - 1편 (데이터가 꼬이지 않는 백엔드의 첫걸음)[동시성 2편] 비관적 락(Pessimistic Lock) - JPA 스프링으로 경험해 보는 실전 가이드1. 낙관적 락(Optimistic Lock)이란?이름 그대로 "충돌이 자주 일어나지 않을 것"이라는 낙관적 가정!여러 트랜잭션이 동시에 데이터를 읽고, 수정 시점에만 충돌이 있는지 검사▶️ 행(row)을 잠그지 않고, 데이터를 자유롭게 읽게 한 뒤, 커밋..
[동시성 2편] 비관적 락(Pessimistic Lock) 안녕하세요!이전 편에서는 "동시성 제어란?" 이란 내용으로 동시성이 무엇인지 알아보았습니다. 이제 본격적으로 첫 번째 실전 대책, 비관적 락(Pessimistic Lock)에 대해 알아보도록 하겠습니다.이전 편 보러 가기[동시성] 동시성 제어란? - 1편 (데이터가 꼬이지 않는 백엔드의 첫걸음)1. 비관적 락이란? 말 그대로 "충돌이 난다고 미리 가정"하고, 데이터를 사용하는 동안 다른 트랜잭션의 접근 자체를 막는 방식입니다.트랜잭션이 데이터를 읽거나 변경하는 동안 DB가 자동으로 행(row) 또는 테이블 전체에 락을 건다 → 데이터 일관성 100% 보장(속도보다 ‘정확’ 우선) → 다른 트랜잭션은 내 작업이 끝날 때까지 ‘대기’..
동시성 제어란? - 데이터가 꼬이지 않는 백엔드의 첫걸음 안녕하세요!오늘은 백엔드 실무에서 꼭 한 번은 마주치는 동시성 제어에 대해서 작성해 보려고 합니다. 회사에서 과제형식으로도 많이 나오는 문제이고 현금지급, 쿠폰 이벤트등과 같은 서비스를 만들 때 꼭 적용되어야 하는 부분이라 정독해 보시는 것을 추천드립니다. 1편에서는 기본적인 내용 설명을 진행하며 2~4편은 해결방법 설명과 예시코드를 작성해 보려고 합니다.1. 동시성이란 무엇인가?동시성(concurrency)이란, 여러 사용자가 ‘동시에’ 데이터나 시스템 자원(예: DB, 메모리 등)에 접근/변경을 시도하는 상황을 의미합니다.예시: 쇼핑몰 재고 감소• 유저A, B가 동시에 “마지막 1개 남은 상품”을 장바구니에 담고 동시에 주문을 진행 • 둘 다 ..
