글또
-
글또 10기 소감글또 2025. 3. 29. 23:46
안녕하세요.이번에는 글또 10기를 마무리하며 몇 자 적어보려 합니다. 벌써 지난 7기, 8기, 9기를 지나 10기를 마무리하는 시간이 다가왔습니다. 시간이 참 빠릅니다.10기를 시작할 때 “좋은 기술 글을 쓰자”는 목표를 품었지만, 실제로 기술 글은 많이 쓰지는 못했습니다.그럼에도 불구하고 열심히 글을 작성하면서 많은 배움이 있었고 만족감을 느낍니다.회사에서는 다양한 문제 상황이 발생할 때마다 이를 해결하는 과정을 기록하는 것을 좋아합니다.새로운 기술이나 이론을 찾아 정리하는 것도 물론 의미가 있지만, 실제로 겪은 문제를 해결하는 과정을 글로 남기며 공부하는 것이 더 효과적이라 생각하기 때문입니다.이번에도 회사에서 발생한 DB 장애, 애플리케이션 장애 등 여러 가지 문제 상황에 대해 글을 작성하였고, 그..
-
장애 해결: 부하 원인 찾기글또 2025. 3. 2. 23:21
들어가며안녕하세요.앞으로 두 편의 글에서는 Kafka를 기반으로 한 서비스에서 특정 시각에 트래픽이 집중되면서 발생하는 장애 현상과 그 해결 방법에 대해 이야기해보려 합니다.현재 장애 복구를 위한 retry 정책은 적용되어 있지만, 근본적인 문제 해결을 위해서는 보다 구조적인 접근이 필요했습니다. 오늘은 그 원인을 분석해보겠습니다. 문제 상황A 서비스의 데이터가 B, C 서비스로 전달되면서 데이터베이스(DB)에 저장되는 과정에서 부하가 발생합니다. 이러한 구조에서는 DB가 전체 시스템의 병목이 될 수 있으며, 실제로 부하로 인해 쿼리 처리 속도가 늦어지고 timeout 현상이 발생하는 문제가 관찰되었습니다.특히 slow 쿼리 로그에서 커밋이 다수 노출되었는데, 이는 DB에 많은 요청이 몰리면서 커밋..
-
DB 장애 분석: Galera Cluster Segfault글또 2025. 1. 31. 20:06
들어가며안녕하세요.이번에는 DB장애 분석 글을 써보려합니다.현재 저희 회사에서 가장 큰 이슈는 DB 장애 문제였고, 이를 해결해 보면 좋겠다고 생각했습니다. 제가 문제를 해결하기 위해 시도한 방법과 과정을 써보고자 합니다. 글의 순서는 다음과 같습니다.문제 상황의심 사례 분석메모리 부족, 많은 스레드 부하: 부하 테스트 (Sysbench 활용)특정 시각의 배치 작업, 시나리오 테스트 (K6 활용)개선점마무리 문제 상황 저희 회사는 MariaDB를 EC2에서 구동하며 Galera Cluster를 사용하고 있습니다.그중 일부 노드가 간헐적으로 다운되는 현상이 발생했습니다.Cluster 내 3개 노드 중 일부가 장애를 일으켜도 동작은 가능했지만, Segmentation Fault(Segfault) 에러..
-
개발자를 위한 커리어 관리 핸드북글또 2025. 1. 4. 19:22
해당 리뷰는 한빛미디어의 후원으로 책을 받아 작성합니다. 들어가며안녕하세요.오늘은 책 한 권을 읽고 느낀 점을 적어보려고 합니다.운 좋게 한빛미디어에서 책을 후원해 주셔서 읽게 되었습니다.여러 후보 중에서 이 책을 선택한 이유는 다음과 같습니다."내가 잘하고 있는 걸까? 앞으로 나의 커리어가 정체되지는 않을까?"책을 읽고 나니 답변을 얻기보다는 질문이 바뀌었습니다."나에게 정말 중요한 것은 무엇일까?" 개발자를 위한 커리어 관리 핸드북 - 예스241:1 멘토링하듯 알려주는 커리어 관리 노하우* 네이버, 배민, 토스, 틱톡, 트위니 등 국내 개발자 10인의 커리어 이야기 수록커리어가 어느 시점에 이르면, 코드를 다루는 것보다 중요하고 복잡한www.yes24.com 이직의 신호제가 생각하는 회사의 일은..
-
2024 회고글또 2024. 12. 22. 12:00
들어가며안녕하세요.이번 글에서는 2024년 한 해를 돌아보며 정리하고, 내년을 계획해보려 합니다. 매번 느끼지만, 시간은 정말 빠르게 흐른다고 생각합니다.2023년 회고 글을 작성한 게 엊그제 같은데 벌써 2024년 회고를 작성하고 있습니다.올해를 돌아보며 커리어, 취미, 그리고 개인적인 성장을 정리해보고자 합니다. 커리어작년 회고에서 언급했던 신규 프로젝트를 성공적으로 릴리스한 한 해였습니다.재고와 출고를 관리하는 WMS 프로젝트로, 회사에서 중요한 역할을 담당하는 프로그램입니다.스타트업의 장점 중 하나는 경력이 적더라도 큰 프로젝트를 맡아볼 기회가 많다는 점입니다.저에게 연이어 큰 프로젝트를 경험할 기회가 주어진 것은 행운이라 생각합니다.또 , 이번 프로젝트를 통해 기존에 막연히 사용하던 기술을 더..
-
Galera Cluster 알아보기글또 2024. 12. 20. 18:05
0. 들어가며안녕하세요.이번에는 Galera Cluster에 대해 알아보려고 합니다.회사 내부에서 Galera Cluster를 사용하고 있는데, 사용해 보니 특색 있는 Clustering 방식이며 잘 모르고 사용해서는 안 되는 기술이라는 생각이 들어서 공부하게 되었습니다.제가 궁금했던 점과 에러를 파악하며 공부했던 내용을 정리합니다. 글의 순서는 다음과 같습니다.Galera cluster 소개Replication 방법인증 복제비동기 복제DeadLockLarge TransactionDDL 복제 방식 (Schema Upgrades)Cluster join 시 이뤄지는 일들 (State Snapshot Transfers)SST, ISTCrash 대응 방안Health check마무리 1. Galera clust..
-
Mybatis 사용시 return 값을 검사하는 이유는 무엇일까글또 2024. 12. 18. 22:54
2024.12.18 과거 글 수정들어가며안녕하세요.이번 글에서는 MyBatis 사용 중 고민되었던 코드 작성 방식에 대해 다뤄보겠습니다. 고민 다음은 새로운 회사의 코드에서 발견한 예제입니다. 이 코드가 왜 result 값을 검사하는지 고민하게 되었습니다. @Serviceclass UserService( private val userRepository: UserRepository) { fun register(user: User) { val result = userRepository.insert(user) if (result != 1L) { throw RuntimeException("사용자 등록 중 예외가 발생했습니다.") } }}..
-
Sharding 만들어보기글또 2024. 11. 24. 17:11
들어가며 안녕하세요.최근 Pinterest의 샤딩 관련 글을 읽고 흥미로운 점들이 많아 이를 계기로 샤딩에 대해 더 공부하게 되었습니다.이 과정에서 우아한형제들의 기술 블로그 글도 접하게 되었고, 글에 소개된 코드를 바탕으로 직접 따라 만들어 보았습니다.이 글은 샤딩에 대한 소개, 우아한형제들의 글 분석, 그리고 Pinterest의 글 분석 순으로 구성되어 있습니다. 샤딩(Sharding) 샤딩이란 무엇이며, 언제 필요할까? 서비스를 장기간 운영하거나 폭발적인 성장을 경험하면 데이터베이스(DB)에 저장된 데이터의 양이 급격히 증가합니다. 데이터가 많아지면 DB의 쓰기, 읽기 속도가 느려지고, 저장 용량 부족과 네트워크 병목 같은 문제가 발생할 수 있습니다. 이를 해결하기 위해 선택할 수 있는 확장 ..