분류 전체보기(116)
-
AWS VPC 완벽 가이드: 네트워크 구성 요소와 아키텍처 설계 실전 예시
1. 개요1.1 문서의 목적최근에 시작한 사이드 프로젝트 A를 AWS에 배포하면서 VPC를 구성해야 했습니다. CTO님이 VPC, 서브넷, Multi AZ, 라우팅 테이블, 인터넷 게이트웨이, NAT 게이트웨이 등을 설정했다고 하셨는데, 이 용어들이 생소하여 어려움을 겪었습니다.사실 학부(컴퓨터공학과) 시절에 이러한 용어들을 배우긴 했지만, 머리에서 먼지가 되어 날아간 듯 합니다. 그래서 이번 기회에 제대로 공부하고 정리하여, 추후 신규 팀원에게도 공유할 수 있는 문서를 만들게 되었습니다.1.2 문서에서 다루는 내용이 문서에서는 AWS VPC와 관련된 핵심 네트워크 개념들을 설명하고, 실제 사이드 프로젝트 A에서 어떻게 구성했는지 살펴봅니다. 특히 다음 내용에 중점을 둡니다:VPC의 기본 개념과 구성 요..
2025.03.30 -
Java ForkJoinPool의 Work-Stealing 알고리즘 완벽 가이드: 고성능 병렬 처리의 비밀
Java의 ForkJoinPool로 알아보는 Work-Stealing 동시성 모델이번 포스팅에서는 Java의 동시성 처리를 위한 ForkJoinPool과 Work-Stealing 알고리즘에 대해 알아보겠습니다. Java 7부터 도입된 이 기능은 멀티코어 환경에서 효율적인 병렬 처리를 가능하게 해주는 중요한 도구입니다."ForkJoinPool은 병렬 스트림과 CompletableFuture가 사용하는 실행 메커니즘이자, 고성능 작업 분할을 위한 핵심 프레임워크입니다."- Doug Lea (Java의 java.util.concurrent 패키지의 주요 설계자)ForkJoinPool의 필요성일반적인 ThreadPool만으로는 다음과 같은 한계가 있습니다:작업 분배의 불균형: 일부 스레드에 작업이 집중되는 현상..
2025.03.16 -
3 주간의 대작업 후 솔직한 회고록
참 익스트림하게 하고나니, 꼭 회고를 하고 싶었다.느낀게 참 많았었다.뭘 뼈저리게 느꼈을까? ## 1. 기획의 A-Z 까지, 내 스스로가 빠진 게 없는 지 체크하기느낌점이 참 많았던 영역이다. 사실 이번에 큰일이 날뻔한 건 사수 때문이었다고도 생각했다.업무가 겹치다 보니, 사수가 계속 옆에서 " 이건 어떻게 됐냐, 왜 안 됐냐?" 등의 마이크로 매니징이 있었기 때문에 마지막에 문제 없이 일을 마무리 할 수 있었다.마이크로 매니징을 당하다(?) 보면 기분이 나기도 했었다. 상대에 대한 짜증보다도, 내가 부주의해서 일을 제대로 하지 못했을 때 나에 대한 자책이 섞인 짜증이었다.그래도 계속 해내다가, 일주일 전에 내가 전체 업무의 큰 부분을 고려하지 못했다는 걸 알게되었다. 이번에도 마이크로 매니징을 통해서...
2025.03.01 -
호텔 데이터 마이그레이션 최적화 - 인덱스 & UPSERT
들어가며: 호텔 표준 데이터 최신화의 시작"36GB의 호텔 데이터 마이그레이션 해주세요."호텔 표준 데이터 최신화 프로젝트에서 마주한 첫 번째 과제였습니다. 호텔 데이터는 단순한 flat한 구조가 아닌, 6개의 테이블로 분산되어 저장되어야 했습니다:제가 생각한 이 마이그레이션의 핵심 요구사항은 "데이터 정합성"이었습니다. 하나의 호텔 데이터가 이 6개 테이블에 모두 성공적으로 저장되거나, 아니면 전혀 저장되지 않아야 했습니다("All or Nothing").또한 기존 데이터가 있을 수 있어 INSERT가 아닌 UPSERT를 사용해야 했죠.메모리 한계를 고려해 batch size를 100으로 설정했습니다. 36GB 전체를 한 번에 처리하는 것은 현실적으로 불가능했고, 실패 시 복구도 용이해야 했기 때문입니..
2025.02.16 -
알림톡과 예약 시스템의 트랜잭션 분리 - 아웃박스 패턴 도입기
문제 상황시작은 이랬습니다.“앤디(영어이름), 서버에 알림톡 에러 났다는 버그가 있던데요?”“앤디, 항공권이 예약이 제대로 안 됐다는데 확인좀 부탁드려요.”이런 문의가 들어왔을 때 가장 먼저 확인하는 것이 예약 상태입니다.일반적으로는 예약 실패시 즉시 사용자에게 피드백이 가야하는데, 해당 건은 예약도 실패했고 알림도 실패한 상황이었죠.로그를 확인해보니 ApiPlex(카카오 알림톡 대행사)와의 통신 오류로 인해 알림톡 발송에 실패했고, 이 실패가 예약 트랜잭션을 롤백시킨 것이었습니다.더 큰 문제는 사용자는 예약을 시도했다가 실패했다는 것조차 알 수 없었다는 점입니다.이는 출장 예약 시스템에서는 심각한 문제였습니다.항공권이나 호텔의 경우 실시간 재고(좌석, 객실)가 중요한데, 알림톡 장애로 인해 예약이 실패..
2025.01.29 -
비즈니스 확장성을 고려한 알림톡 발송 시스템 개선기: 전략 패턴의 실전 적용
알림톡이란?알림톡은 카카오톡이 제공하는 기업용 메시징 서비스입니다.일반적인 카카오톡 메시지와는 달리, 알림톡은 사용자가 해당 카카오톡 채널을 친구로 추가하지 않아도 정보성 메시지를 발송할 수 있다는 특징이 있습니다.기업들은 주로 주문 내역, 예약 확인, 배송 현황 등 사용자에게 꼭 필요한 정보를 전달하는 용도로 사용됩니다.알림톡의 장점은 다음과 같습니다:친구 추가가 없어도 발송 가능최대 1,000자까지 텍스트 전송 가능버튼을 통한 액션 유도 (최대 5개)높은 도달률과 신뢰도스팸이나 피싱의 위험이 낮음출장관리시스템에서의 알림톡 활용저희 회사가 만드는 출장관리시스템(이하 BTMS)에서는 다음과 같은 상황에서 알림톡을 활용하고 있습니다:항공권 예약 알림미확정(예약 실패)예약 완료 알림에약 취소발권 완료체크인 ..
2025.01.26