본문 바로가기

기타18

Kafka 메세지를 안정적으로 다루는 방법 (Transaction Outbox Pattern) Transaction Outbox 패턴에 대하여 간단히는 알고 있었는데요. 앞으로 이벤트를 다루며 잘 알아두면 좋을 내용이라고 생각해서 구체적으로 어떤 문제를 해결하기 위하여 사용하며, 어떤 장/단점이 있는지 찾아보고 남겨봅니다. 기본적으로 Chris Richardson 선생님의 Pattern: Transactional outbox 아티클을 참고합니다. 풀고 싶은 문제어플리케이션 서버에서 비즈니스 로직을 처리하는 동안, 메세지의 발행까지 Transactional 함을 보장해야 하는 경우가 많습니다. 하지만, 기본적으로 이종 간의 Transaction은 완벽할 수 없습니다. 임시로 대응을 해보자면, Transaction Scope에서 Rollback이 가능한 작업을 모두 한 이후에 메세지 발행을 챙기는 방.. 2024. 10. 13.
git 별다줄 alias를 소개합니다. git을 사용하다보면 종종 명령어를 치기 귀찮은 경우가 존재합니다. 현재 브랜치만 push하고 싶은데, 브랜치 명이 너무 길다던지... main에 리베이스를 해야하는데 넘어가서 pull 땡겨오기 귀찮다던지... 저만 그런가요..? alias를 잘 사용하면 생산성 증대에도 큰 도움이 되는데요. 개인적인 생산성 증대를 위하여 사용하고 있는 별다줄 alias를 소개해보겠습니다. alias list co = checkout checkout 명령어의 단축키로 co를 사용하고 있어요. 이 alias를 사용하면 git checkout 대신 git co를 입력하여 브랜치를 전환할 수 있습니다. 간단하지만, 7글자나 쓰기 귀찮아서(...) 만들었습니다. 자매품으로 cob(checkout -b)도 있습니다. pr = "!.. 2023. 6. 18.
gRPC 더욱 효율적으로 Load Balancing하기 / Client side load balancing Client Side LB in gRPC 지난 몇 년 동안 마이크로 서비스의 성장과 함께 gRPC 는 이러한 소규모 서비스 간의 상호 통신에 대한 많은 인기를 얻었다. 인기를 얻은 이유 중 하나는 속도이다. HTTP / 1에서 구현된 REST Client는 요청을 전송할 때마다 연결을 생성하고, 응답이 오면 해당 연결을 끊는다. 이처럼 요청마다 connection을 생성하기 때문에 소모되는 비용이 많다. 하지만, gRPC는 HTTP 2.0 기반의 HTTP Streaming을 이용하여 통신한다. HTTP 2.0은 한번 연결된 HTTP 연결을 통신이 끝났을 때 끊지 않고, 장기간 유지하며 재사용할 수 있다. gRPC 또한 이를 이용하여 보통 하나의 연결을 맺어두고, 이 연결을 재사용하는 식으로 이용한다. 이.. 2022. 3. 12.
$0.005 per Elastic IP address not attached to a running instance per hour 분명 사용하는 인스턴스가 없는데 AWS에서 약 5000원 정도의 서버비가 청구되어서 '뭐임???'하고 AWS로 뛰어가 보았다. 확인한 결과 위의 사진과 같은 청구서가 나와있었고, 과금 요소는 Elastic IP Addresses 즉 탄력적 IP였다. 분명 탄력적 IP 한 개는 무료라 그랬는데? 어떤 이유로 이렇게 과금이 되었는지 알아보자. AWS FAQ 탄력적 IP에 대한 과금 요소를 확인해보았다. 다음 모든 조건에 해당하는 경우에는 탄력적 IP 주소에 대한 비용이 발생하지 않습니다. - 탄력적 IP 주소가 EC2 인스턴스에 연결되어 있습니다. - 탄력적 IP 주소와 연결된 인스턴스가 실행 중입니다. - 인스턴스에 연결된 탄력적 IP 주소가 하나만 있습니다. - 탄력적 IP 주소는 Network Load.. 2021. 8. 4.