BigTae's Dev Log

팩토리 패턴 + 전략 패턴 — 만드는 책임과 동작하는 책임을 나누다

싱글톤 패턴에 이어 팩토리 패턴과 전략 패턴을 공부했다. 이 두 패턴은 따로 배웠는데 쓰다 보면 같이 쓰는 경우가 많다는 게 흥미로웠다. 팩토리 패턴 — 객체 생성을 공장에 맡기다 결제 시스템을 만든다고 해보자. 카카오페이, 네이버페이, 신용카드 세 가지 방법이 있다. if (type.equals("kakao")) { payment =...

싱글톤 패턴 — 왜 인스턴스는 딱 하나여야 할까

CS 전공지식 노트를 읽기 시작했다. 1장 첫 번째 주제가 싱글톤 패턴이었는데, 사실 이름은 많이 들어봤지만 제대로 설명해보라고 하면 자신 없었다. 하나만 있어야 하는 것들 게임에서 소리를 담당하는 객체가 두 개라면 어떻게 될까. 볼륨을 낮춰도 한쪽은 여전히 시끄럽다. DB 커넥션 풀이 두 개라면 각자 따로 연결을 맺으니 비용이 두 배다. “...

당근 기술 블로그 — 처음 살펴본 서킷 브레이커와 SLA

멘토님이 당근 기술 블로그 링크를 보내주셨다. 피드시스템 안정성 향상기인데, 읽으면서 이름만 들어봤던 개념들이 실제로 어떻게 쓰이는지 처음 감이 왔다. 연쇄 장애 — 하나가 죽으면 왜 전체가 죽나 당근 피드에는 동네생활, 중고거래, 구인공고, 중고차, 부동산 등 여러 마이크로서비스가 붙어있다. 사용자가 피드를 열면 이 서비스들한테 동시에 요청해...

HLS부터 LLHLS까지 — 스트리밍 지연을 줄이는 방법 (이론)

영상 재생 정도면 그냥 라이브러리 하나 붙이면 되겠지 싶었는데, HLS가 뭔지부터 찾아보다가 생각보다 깊은 세계였다. TCP와 UDP — 스트리밍 전에 알아야 할 것 HLS를 이해하려면 TCP와 UDP 차이부터 짚어야 한다. TCP는 등기 택배다. 보내면 수신 확인을 받고, 분실되면 재전송하고, 순서도 맞춰준다. 신뢰성이 높은 대신 확인하는 ...