디자인패턴(3)
-
알림톡과 예약 시스템의 트랜잭션 분리 - 아웃박스 패턴 도입기
문제 상황시작은 이랬습니다.“앤디(영어이름), 서버에 알림톡 에러 났다는 버그가 있던데요?”“앤디, 항공권이 예약이 제대로 안 됐다는데 확인좀 부탁드려요.”이런 문의가 들어왔을 때 가장 먼저 확인하는 것이 예약 상태입니다.일반적으로는 예약 실패시 즉시 사용자에게 피드백이 가야하는데, 해당 건은 예약도 실패했고 알림도 실패한 상황이었죠.로그를 확인해보니 ApiPlex(카카오 알림톡 대행사)와의 통신 오류로 인해 알림톡 발송에 실패했고, 이 실패가 예약 트랜잭션을 롤백시킨 것이었습니다.더 큰 문제는 사용자는 예약을 시도했다가 실패했다는 것조차 알 수 없었다는 점입니다.이는 출장 예약 시스템에서는 심각한 문제였습니다.항공권이나 호텔의 경우 실시간 재고(좌석, 객실)가 중요한데, 알림톡 장애로 인해 예약이 실패..
2025.01.29 -
싱글톤(Singleton) 패턴
2023.05.09 - [디자인 패턴] - 소프트웨어 위기를 극복한 디자인 패턴의 탄생과 발전 소프트웨어 위기를 극복한 디자인 패턴의 탄생과 발전 먼저 디자인 패턴의 정의부터 바로 알아보겠습니다! 디자인 패턴은 S/W 설계에서 자주 발생하는 문제들을 해결하기 위해 사용되는 재사용 가능한 해결책이다. 아마 이 글을 읽으시는 분들 중 디 xpmxf4.tistory.com 해당 포스팅을 읽기 전 위 글을 읽고 오시는 것을 추천드려요! 위 글에서 디자인 패턴이 무엇인지, 그 필요성에 대해 알게 됐다면 이제는 본격적으로 디자인 패턴 즉 소프트웨어 솔루션들에 각 종류에 대해 알아보겠습니다! 디자인 패턴은 크게 3 가지 유형으로 나눠집니다! 생성 패턴 객체 생성에 관련된 패턴으로, 객체를 생성하는 방법과 시점을 결정..
2023.05.09 -
소프트웨어 위기를 극복한 디자인 패턴의 탄생과 발전
먼저 디자인 패턴의 정의부터 바로 알아보겠습니다! 디자인 패턴은 S/W 설계에서 자주 발생하는 문제들을 해결하기 위해 사용되는 재사용 가능한 해결책이다. 아마 이 글을 읽으시는 분들 중 디자인 패턴에 대해 검색해 보셨다면 위와 같은 설명을 많이 보셨을 겁니다. 여기서 "자주 발생하는 문제들" 이란 대체 무엇일까요? 디자인 패턴은 모든 개발자들에게 중요한 개념이지만, 주니어 개발자들이 알아야 하는 필수 덕목 중 하나라는 데... 만약 위 짤 설명과 비슷한 생각이 든다면 정상입니다! 저도 그랬으니깐요 왜냐하면 디자인 패턴이라는 개념은 사실 소프트웨어 분야가 발전한 역사, 즉 과거와 밀접한 관련이 있기 때문이죠. 그렇기에 앞으로 이 카테고리에 설명할 디자인 패턴의 종류가 뭐가 있고 각각을 어떻게 구현하고 실사..
2023.05.09