때로는 오버엔지니어링이 필요합니다 파헤치기
올리브영 메시지 시스템 전환기를 읽고 — 초당 1건도 안 되는 발송에 Kafka가 필요할까? 참고한 아티클: 때로는 오버엔지니어링이 필요합니다 1. 문제 정의 기존 레거시 발송 구조 기존 알림 발송은 테이블을 거쳐 처리되고 있었다. 각 서비스가 발송 대상 테이블에 메시지를 INSERT하면, 데몬 프로세스가 이 테이블을 주기적으로 읽어 발...
올리브영 메시지 시스템 전환기를 읽고 — 초당 1건도 안 되는 발송에 Kafka가 필요할까? 참고한 아티클: 때로는 오버엔지니어링이 필요합니다 1. 문제 정의 기존 레거시 발송 구조 기존 알림 발송은 테이블을 거쳐 처리되고 있었다. 각 서비스가 발송 대상 테이블에 메시지를 INSERT하면, 데몬 프로세스가 이 테이블을 주기적으로 읽어 발...
최근 출시된 앱들을 보면 소셜 로그인만 제공하는 서비스가 많이 보인다. 처음에는 사용자가 편하게 가입할 수 있어서 그런가 보다 싶었다. 그런데 Nyummy에서 직접 이메일 회원가입을 구현하다 보니, 왜 소셜 로그인을 선택하는지 개발하는 입장에서도 조금씩 느끼게 됐다. 그중 이메일 인증은 코드를 보내고 일치하는지만 확인하면 될 것 같았다. 하지만 재...
우아한형제들 Task Queue 적용기를 읽고 — 장시간 비동기 작업에 Kafka가 꼭 필요할까? 참고한 아티클: 장시간 비동기 작업, Kafka 대신 RDB 기반 Task Queue로 해결하기 1. 문제 정의 기존 Kafka 기반 처리 흐름 기존 시스템은 Kafka를 이용해 엑셀 생성 작업을 비동기로 처리하고 있었다. 사용자가 엑셀 생...
토스뱅크 캐시 적용기를 읽고 — Redis를 쓰면 정합성 문제가 해결될까? 참고한 아티클: 캐시를 적용하기 까지의 험난한 길 (TPS 1만 안정적으로 서비스하기) 1. 문제 정의 약관 서버의 조회 트래픽이 증가하면서 Database 부하가 커졌고, 이를 줄일 방법이 필요해졌다. 약관 동의 여부는 개인정보를 이용하거나 제3자에게 제공해도 ...
트위치 시스템 디자인 완전정복 | 300만 동시시청 비법 공개! 를 보고 참고한 아티클: 트위치 시스템 디자인 완전정복 1. 라이브 스트리밍은 어떻게 하는 거지? 전체 흐름을 먼저 정리하면 이렇다. replication 과정은 내가 아는 그 데이터 정합성? 데이터를 안전하게 유지하기 위해서 필요한 것인가? 여러 storage에 ...
네이버페이 확장 가능한 대기열 개발기를 읽고 참고한 아티클: 네이버페이 주문에 적용된 확장 가능한 대기열 개발기 1. 요구사항 정리 & 질문 리스트 이벤트성 트래픽은 감지되면 어떻게 대기열 서버에 트리거가 되어 대기열이 생기게 되나요? 댓글 확인: 트래픽은 평소에도 Massronome(대기열 서비스)를 거쳐...
당근 피드시스템 안정성 향상기를 읽고 — 마이크로서비스인데 왜 연쇄장애가 날까? 참고한 아티클: 당근 피드시스템 안정성 향상기: 프로파일링부터 서킷브레이커까지 개선 사항 들어가기 전 가졌던 의문 피드시스템이 복잡한 의존성 구조라는 건 알겠는데, 왜 그중 하나라도 문제가 생기면 연쇄적으로 장애가 발생하는 구조일까? 마이크로서비스라면 느슨한...