주니어 백엔드 개발자가 반드시 알아야 할 실무 지식 - 1장 들어가며 Book 이 책의 시작점은 단순하다. 주니어 백엔드 개발자는 언어 문법이나 프레임워크 문법을 아는 것만으로는 충분하지 않다. 실제 서비스 환경에서는 다음 질문에 답할 수 있어야 한다. 왜 서비스가 느려졌는가 DB가 병목일 때 어디를 봐야 하는가 외부 연동 실패를 어떻게 해석해야 하는가 동시성 문제를 어떤 관점으로 분해해야 하는가 서버, 네... 2025/10/28 Book, 주니어 백엔드 개발자가 반드시 알아야 할 실무 지식
단위 테스트와 통합 테스트를 어떻게 구분해야 할까 Notes 테스트를 작성하다 보면 가장 자주 헷갈리는 질문 중 하나가 있다. 이 테스트는 단위 테스트인가, 통합 테스트인가? 이 질문이 중요한 이유는 용어 자체보다 테스트가 어떤 책임을 가지는지를 결정하기 때문이다. 단위 테스트와 통합 테스트를 잘 구분하지 못하면 테스트는 많아지는데도 실패 원인을 찾기 어렵고, 실행 속도는 느려지고, 유지보수 비용은 ... 2025/09/03 Notes, Programming
2025-09-02-TIL TIL Today I Learned Spring의 의존주입(DI) 방식 3가지 생성자 주입 (Constructor Injection) 의존 객체를 생성자의 파라미터로 전달받아 주입하는 방식 불변성(immutability)을 보장하고, 테스트 시에 의존 객체를 명확하게 주입해야 하므로 안정성이 높다. 스프링 4.3 이후에는 생성자가 하... 2025/09/02 TIL, 2025-TIL
Single Flight Notes Single Flight? 개발을 하면서 종종 동일한 리소스에 대한 여러 요청이 동시에 발생하는 상황에 직면하게 된다. 이는 중복 작업, 서비스 부하 증가, 그리고 전반적인 비효율성과 성능 저하로 이어질 수 있다. Go에서는 singleflight 패키지(golang.org/x/sync/singleflight)로 이에 대한 해결책을 제시한다. “S... 2025/09/02 Archive, Programming
테스트 코드는 왜 작성해야 할까? Notes 왜 테스트 코드를 작성해야 할까? 테스트 코드는 “버그 예방 + 안전한 변경 + 지식의 기록”을 자동으로 해주는 가장 싸고 강력한 도구이다. 덕분에 더 빠르게, 더 자신 있게, 더 오래 유지되는 소프트웨어를 만들 수 있다. 반대로 말하면 테스트 코드가 주는 핵심 가치의 장점이 크기 때문에 작성하는 것이 좋다. 테스트 코드가 주는 핵심 가치 1... 2025/09/02 Archive, Programming
2025-08-27-TIL TIL Today I Learned 오늘은 멘토링이 있는 날이다. 이전 시간에 ACID에 대해서 깊이있는 이야기를 했는데, 관련 내용이 ‘데이터 중심 애플리케이션’의 07장 트랜잭션에 나와있다. 이 책에서 말하는 설명을 잘 읽어보면 ACID 속성의 하나하나가 더 와닿는다. 이 네 가지 속성에 대해서는 다시 한 번 정리해봐야겠다. 그리고 MongoDB 등 N... 2025/08/27 TIL, 2025-TIL
2025-08-26-TIL TIL Today I Learned 자바빈이란 자바빈은 원래 비주얼 툴에서 조작 가능한 컴포넌트를 말한다. 자바의 주력 플랫폼이 웹 기반의 엔터프라이즈 방식으로 바뀌면서 이제는 JSP 빈, EJB 같은 표준기술과 자바빈 스타일의 오브젝트를 사용하는 오픈소스 기술을 통해서 이어져왔다. 자바빈(JavaBean)은 자바(Java)에서 재사용 가능한 컴포넌트를... 2025/08/26 TIL, 2025-TIL
Redis Cache Best Practices Notes Redis를 붙였다고 캐시 전략이 끝나는 것은 아니다 Redis는 빠르지만, 캐시 설계가 잘못되면 장애를 더 빠르게 전파할 수도 있다. 중요한 것은 Redis 자체보다 무엇을, 얼마나 오래, 어떤 방식으로 캐시할지를 정하는 일이다. 기본 원칙 키를 명확히 설계 키는 사람이 읽기 쉬우면서도 충돌을 피해야 한다. product:123 u... 2025/08/22 Notes, Cache
Redis Sentinel Replication Notes Sentinel Replication이 다루는 문제 Redis를 운영할 때 중요한 것은 단순한 캐시 성능만이 아니라, master 장애가 났을 때 얼마나 빨리 복구할 수 있는가다. Sentinel Replication은 이 지점을 위한 구조다. 기본 구성은 다음과 같다. 1개의 master 여러 개의 replica 여러 개의 sent... 2025/08/22 Notes, Cache
Error Handling in HTTP APIs Notes 에러 처리는 왜 설계 대상인가 API를 설계할 때 성공 응답만 정의하고 에러 응답을 나중으로 미루면, 클라이언트와 운영자가 가장 자주 보게 되는 실패 상황이 오히려 제일 불명확해진다. 좋은 에러 응답은 다음 역할을 해야 한다. 클라이언트가 재시도 가능 여부를 판단하게 한다. 잘못된 요청인지, 서버 장애인지 구분하게 한다. 운영자가 로... 2025/08/22 Notes, Web