2025-08-26-TIL TIL Today I Learned 자바빈이란 자바빈은 원래 비주얼 툴에서 조작 가능한 컴포넌트를 말한다. 자바의 주력 플랫폼이 웹 기반의 엔터프라이즈 방식으로 바뀌면서 이제는 JSP 빈, EJB 같은 표준기술과 자바빈 스타일의 오브젝트를 사용하는 오픈소스 기술을 통해서 이어져왔다. 자바빈(JavaBean)은 자바(Java)에서 재사용 가능한 컴포넌트를... 2025/08/26 2025-TIL
Redis Cache Best Practices Notes Redis를 붙였다고 캐시 전략이 끝나는 것은 아니다 Redis는 빠르지만, 캐시 설계가 잘못되면 장애를 더 빠르게 전파할 수도 있다. 중요한 것은 Redis 자체보다 무엇을, 얼마나 오래, 어떤 방식으로 캐시할지를 정하는 일이다. 기본 흐름: 캐시를 먼저 보고 없으면 원본에서 채운다 가장 흔한 구성은 애플리케이션이 캐시를 먼저 조회하고, 없... 2025/08/22 Cache
Redis Sentinel Replication Notes Sentinel Replication이 다루는 문제 Redis를 운영할 때 중요한 것은 단순한 캐시 성능만이 아니라, master 장애가 났을 때 얼마나 빨리 복구할 수 있는가다. Sentinel Replication은 이 지점을 위한 구조다. 기본 구성은 다음과 같다. 1개의 master 여러 개의 replica 여러 개의 sent... 2025/08/22 Cache
Error Handling in HTTP APIs Notes 에러 처리는 왜 설계 대상인가 API를 설계할 때 성공 응답만 정의하고 에러 응답을 나중으로 미루면, 클라이언트와 운영자가 가장 자주 보게 되는 실패 상황이 오히려 제일 불명확해진다. 좋은 에러 응답은 다음 역할을 해야 한다. 클라이언트가 재시도 가능 여부를 판단하게 한다. 잘못된 요청인지, 서버 장애인지 구분하게 한다. 운영자가 로... 2025/08/22 Web
Redo Log와 Undo Log를 어떻게 구분해야 하는가 Notes 둘 다 왜 필요한가 트랜잭션과 복구를 이해하려면 redo log와 undo log를 분리해서 볼 수 있어야 한다. 둘 다 “로그”지만 목적이 다르다. undo log: 이전 상태로 되돌리기 redo log: 커밋된 변경 다시 반영하기 그래서 undo는 rollback과 MVCC 쪽, redo는 crash recovery와 durabil... 2025/08/20 Database
애프랩(F-Lab) Java Backend 2개월 후기 TIL 에프랩(F-Lab) 코스명 2개월 후기 에프랩(F-Lab)에서 코스명을 시작한 지 벌써 2개월이 지났다. 지난 기간 동안 가장 크게 느낀 점은 체계적인 학습 환경과 꾸준한 피드백의 힘이었다. 혼자 공부할 때는 놓치기 쉬운 기본기와 습관들을 다시 다잡을 수 있었고, 작은 성과들이 쌓이면서 확실한 성장감을 얻을 수 있었다. 단순히 지식을 쌓는 것을 ... 2025/08/17 2025-TIL
데이터베이스 리플리케이션 기본 정리 Notes 리플리케이션이란 리플리케이션은 한 데이터베이스의 변경 사항을 다른 데이터베이스로 복제하는 구조다. 보통 primary가 쓰기를 받고, replica가 이를 따라가는 형태를 많이 사용한다. 왜 쓰는가 읽기 부하 분산 장애 대응 백업/분석 분리 지역 분산 아키텍처의 기반 가장 먼저 알아야 할 점 리플리케이션은 “복사본이 ... 2025/08/17 Database
ACID를 실무적으로 이해하기 Notes ACID란 ACID는 트랜잭션의 신뢰성을 설명할 때 가장 먼저 나오는 네 가지 속성이다. Atomicity Consistency Isolation Durability MySQL 매뉴얼은 ACID 모델을 업무 데이터에 중요한 신뢰성 측면을 강조하는 설계 원칙의 집합으로 설명한다. MySQL: InnoDB and the ACID M... 2025/08/14 Database
데이터베이스 트랜잭션을 어떻게 봐야 하는가 Notes 트랜잭션이란 트랜잭션은 여러 작업을 하나의 논리적 단위로 묶어서, 전부 성공하거나 전부 실패하도록 다루는 메커니즘이다. 실무에서 트랜잭션은 단순히 BEGIN, COMMIT 문법이 아니라 “어디까지를 하나의 일관된 작업으로 볼 것인가”를 정하는 설계 도구다. 왜 필요한가 중간 실패 시 데이터가 반쯤 반영되면 안 된다. 동시에 여러 요... 2025/08/14 Database
2025-08-13-TIL TIL Today I Learned 2025-08-13-Mentoring 오늘은 간만에 가슴에 불을 지피는 멘토링이었다. 최근에 개인적인 이유로 멘토링에 대한 학습시간을 많이 내지 못 했는데, 열심히 해야겠다는 다짐이 다시 생겼다. MySQL의 레코드 락 InnoDB 스토리지 엔진 수준의 잠금 기능으로, 레코드 자체만을 잠그는 락을 의미한다. 실제... 2025/08/13 2025-TIL