안녕하세요,최근 WeGo 프로젝트에서 다양한 요구사항을 개발하며 늘어나는 도메인 사이의 결합도로 인한 생산성 문제가 있었는데요.이러한 문제를 해결하기 위한 방식으로 도메인 이벤트 패턴(Domain Event Pattern)을 적용하여 결합도를 크게 낮췄던 경험을 공유해보려합니다.정말 체감이 많이 되었던 방식으로 이번 협업에서 생산성을 크게 키워줬던 것 같습니다.서비스 구조적 문제?백엔드팀에서는 각 도메인(패키지) 별로 개발을 진행하고 있었고, 패키지는 아래와 같습니다.notification 도메인은 당연하게도 다른 도메인의 비즈니스 로직에 많이 포함되어 있었고, 동일한 트랜잭션을 사용하고 있었습니다.이로인해 알림의 응답 형식과 같은 변경이 있을 때마다 코드 변경은 어쩔 수 없이 발생했고, 동료가 작성한 ..
안녕하세요.최근 진행하고 있는 사이드 프로젝트에서 클라이언트측의 기획 요구사항으로 실시간 알림 기능이 개발이 되어야 한다고 요청을 받았습니다.백엔드 진영에서는 해당 요구사항을 위한 기술로 SSE, FCM, Web-Socket 3가지 기술이 언급이 되었고,이 중에서 SSE를 선택하게 되었고 개발을 진행하면서 해당 기술에 대한 학습도 병행하여 정리해보려 합니다.우리 팀은 왜 SSE를 선택하였는지.기술 선택에 앞서 고민했던 포인트는 다양하게 있었습니다. 그 중에서 SSE를 선택하게 된 주요 이유로는 아래와 같아요.첫번째로 MVP 성향의 프로젝트로 단기간 개발이 필요했습니다.전체 프로젝트 기간이 한달도 채 안남은 시점에서 받은 요구사항이였고, 1차 MVP 적용을 코앞에 앞두고 있는 시점에서 제일 빠르게 적용할 ..
용어와 관련해서는 아래 공식문서 참조https://developers.kakaopay.com/docs/payment/online/common#term-description 카카오페이 | 개발자센터새로운 기회와 가치를 함께 만들어봐요developers.kakaopay.com 결제 구조위 모식도를 확인해보면 '결제준비 API'과 '결제승인 API' 두 개의 API로 나뉘어져 있는걸 확인할 수 있다. 문제 상황내가 구상했던 흐름은 다음과 같다.클라이언트에서 결제가 필요한 시점에 우리의 서버로 필요한 요청 값을 보내고, 서버에서는 카카오로부터 결제요청API에 대한 응답값을 받아온다. 그 후 서버에서는 tid값을 기반으로 DB에 데이터를 저장하고, 클라이언트에게는 redirec url만 보내주어 결제 프로세스를 ..
IntroWebRTC는 CodeArena라는 팀 프로젝트를 진행하면서 처음 사용해보았던 기술입니다.그 때 당시 과제로 WebRTC 기술을 적용해야 하였고, 저희 팀이 선택한 서비스는 “화면 공유 스트리밍” 서비스 였습니다.해당 서비스에 대해 배포 환경 및 엔드포인트 구축은 제가 맡아 처리하게 되었습니다.또한 최근 직무 면접 컨설팅을 받는 도중 한 프로젝트에서 “WebRTC와 WebSocket을 둘 다 사용하였던데, 그 이유가 있나요? 하나의 기술로 나머지 서비스를 대체할 수 있지 않나요” 라는 질문에 제대로된 답변을 못한 것이 이번 포스팅을 통해 학습을 하는 큰 이유 중의 하나입니다.. 우선 WebRTC에 대해서 간단하게 짚고 넘어가려 합니다.WebRTC란?WebRTC는 Web Real-Time Comm..