전체 글32 MongoDB concern 정리 0. 들어가기 앞서이전에 MongoDB의 특징과 인덱스, 트랜잭션에 대해서 얕게 정리했습니다. 이후 Replica Set 환경을 구성했을때 쓰기 및 읽기에 설정이 좀 많은 것을 확인했습니다. 이번 글에서는 Write Concern, Read Preference, Read Concern, 실제 애플리케이션에서 어떤 옵션을 선택하면 좋을지 다음 내용을 정리해 보려고 합니다.1. Replica Set 데이터 복제1.1 Replica Set 구조Replica Set은 여러 MongoDB 노드가 같은 데이터를 복제해서 저장하는 구조입니다. 일반적으로 하나의 Primary와 여러 개의 Secondary로 구성됩니다. Primary는 애플리케이션의 쓰기 요청을 처리하고, 쓰기 작업을 oplog에 기록합니다. Seco.. 2026. 10. 18. MongoDB에서 넓고 얕게 파헤쳐보기 0. 들어가기 앞서주로 관계형 데이터베이스를 다루고 있지만, 레거시 프로젝트를 담당하게 되면서 MongoDB를 자주 다루게 되었습니다. 내부적으로 레거시가 많이 있어 이를 보완하고 어떻게 전환해야 하는지에 대해 많은 학습들이 필요하다고 생각되어 기본이 되는 MongoDB의 기능이나 내부적인 동작 원리에 대해서 이해하고자 글을 작성하게 되었습니다. 1. MongoDB 특징 및 관련 개념1.1 MongoDB의 특징MongoDB는 관계형 DB가 아닌 NoSQL DB입니다. 관계형 데이터베이스는 데이터를 테이블의 행과 열로 표현하고 테이블 간의 관계를 나타내지만 MongoDB는 하나의 데이터를 BSON 문서 형태로 저장합니다. RDB인 경우에는 특정 테이블 기본키를 외래키로 사용하고 있는 경우에 존재하지 않는.. 2026. 9. 17. TransactionEventListener과 Transactional의 만남 0. 들어가기 앞서트랜잭션 이벤트 리스너를 활용하고 있지만 정확히 그 원리에 대해서는 이해하지 못하고 있었던 거 같습니다. 또한 트랜잭션 이벤트 리스너가 트랜잭션과 함께 만났을 때 어떻게 동작하는지도 지레짐작으로 파악을 했었는데 제가 생각했던 활용 예시를 바탕으로 왜 그렇게 동작하게 되었는지 알아보고자 합니다. 1. 첫번째 케이스(TransactionEventListener, Transactional 사용) 1.1 예제 코드Spring boot 3.x 버전과 JPA 그리고 MySQL을 사용하는 환경에서 아래와 같은 코드를 작성했습니다. 이전에 핵심 비즈니스 로직에 대해 트랜잭션 처리가 끝나면 알림 데이터를 저장하는 코드입니다. 아래 코드는 어플리케이션 서버를 실행했을 때 예외를 터트리는 코드입니다. 그렇.. 2026. 4. 26. 결제 웹훅 그거 중요한가요? 0. 목적결제 시스템을 도입하면서 결제사에서 들어오는 웹훅을 어떻게 활용할지 많은 고민을 했습니다. 결과적으로 웹훅을 어떻게 사용해야 한다고 생각했는지 그리고 결제 시스템을 구축하면서 어떤 어려움을 겪었는지 경험을 남겨보고자 글을 작성하게 되었습니다. 그래서 이 글에서 얻을 수 있는 점은 다음과 같습니다.결제 기능을 개발할 때 어떤 점을 조심해야 하는지?결제 API 개발 예시웹훅을 언제 사용해야 하고 웹훅을 보조할 수 있는 수단이 왜 필요한지? 1. 결제 로직 작성1.1 결제 상태 정의하기결제 데이터의 상태는 결제 대기, 결제 성공, 결제 실패 3가지로 나누었습니다. 결제 대기 상태는 왜 있는가 했을 때 서버에서 결제 데이터를 DB에 저장할 때 결제 API를 호출하지 않았기 때문에 결제 성공 여부를 알.. 2026. 3. 19. 2025년 월별 회고 인프런 CTO로 재직 중이신 향로님의 회고를 보고 간단하게 월별 회고를 해보면 좋겠다는 생각을 했다. 내가 분명 바쁜 시간도 있었지만 정말로 내가 알차게 보냈는지도 확인이 필요하지 않나 생각이 들었기 때문이다. 1월근속년수 1년을 채움이때 1년간 일을 하면서 내가 뭘 했는지 돌아보고 이력서에 녹여보려고 했다. 많은 일들을 해왔지만 조금 더 주도적으로 일을 해야 할 필요성을 느꼈다. 팀원들에게 좋은 평가를 받았지만, 스스로에게 야박했고 더 잘하고 싶다는 욕심이 생겼다. 물론 1년 동안 프로젝트를 더 많이 이해해야 큰 그림을 그리고 더 좋은 방법을 생각할 수 있었다고 믿었기에 아쉬움이 있거나 하진 않았다.2월첫 커피챗글또 활동을 하면서 처음으로 커피챗을 해보았는데, 이때 인턴으로 재직 중인 분과 취준 중이신.. 2026. 1. 20. ECS OOM Killer로부터 탈출 0. 들어가기 앞서0.1 문제점EC2 인스턴스를 사용해서 ECS 환경을 구축해 API 서버 운영다만 실제 컨테이너가 사용하고 있는 메모리양과 ECS Agent가 사용하는 메모리를 합치면 가용 메모리를 아슬아슬하게 남김그래서 간헐적으로 서버가 내려가는 경우가 발생했다가 ECS가 최대한 고가용성을 보장하기 위해 컨테이너를 다시 띄우는 문제가 발생0.2 다루는 내용컨테이너가 죽어버리는 과정에서 OOM Killler의 개입을 판단한 로그OOM Killer의 역할 및 OOM Killer 회피 방법 1. 원인 파악1.1 구성 환경 EC2 t3a 인스턴스, Linux 2, ECS Agent 1.100.0Spring Boot 3.X, Java 17아래와 같이 task-definition 구성// 다른 설정 생략{ ".. 2025. 11. 22. 이전 1 2 3 4 ··· 6 다음