분류 전체보기86 Kafka 메세지를 안정적으로 다루는 방법 (Transaction Outbox Pattern) Transaction Outbox 패턴에 대하여 간단히는 알고 있었는데요. 앞으로 이벤트를 다루며 잘 알아두면 좋을 내용이라고 생각해서 구체적으로 어떤 문제를 해결하기 위하여 사용하며, 어떤 장/단점이 있는지 찾아보고 남겨봅니다. 기본적으로 Chris Richardson 선생님의 Pattern: Transactional outbox 아티클을 참고합니다. 풀고 싶은 문제어플리케이션 서버에서 비즈니스 로직을 처리하는 동안, 메세지의 발행까지 Transactional 함을 보장해야 하는 경우가 많습니다. 하지만, 기본적으로 이종 간의 Transaction은 완벽할 수 없습니다. 임시로 대응을 해보자면, Transaction Scope에서 Rollback이 가능한 작업을 모두 한 이후에 메세지 발행을 챙기는 방.. 2024. 10. 13. 이직했어요 정신차려보니 벌써 7월입니다. 캐롤 들으면서 연말 분위기를 누린 것이 정말 얼마 안된 것 같은데, 장마에 불평을 늘어두고 있는 요즘이네요. 이런 계절의 변화를 알아차리지 못할 정도로 올 상반기는 여러 사건들이 있었습니다. 가장 큰 부분은 이직이었는데요. 간단하게 이야기 해보려 합니다. 동기 부여 업을 선택함에 있어, 상당히 많은 종류의 선택할 수 있는 가치가 존재합니다. 이는 금전일 수 있고, 경력일 수 있겠네요. 모두 중요한 가치지만, 저는 올 상반기를 지나오며 일을 해야하는 동기를 찾는 것이 상당히 큰 가치 중 하나임을 느낄 수 있었습니다. 이전 직장에서 golang을 이용하여 새로운 사업을 진행했는데, 시작할 때 들었던 서비스도 아니었고 사업적으로 이해가 되는 선택이 있지도 않았습니다. 기술적으로도.. 2023. 7. 16. Functional Option Pattern in Go Go 언어로 서버 프레임워크를 개발한다고 가정해봅시다. 서버는 다양한 옵션을 가질 수 있으며, 생성자를 통해 이를 설정할 수 있어야 합니다. 예를 들어 서버의 주소, 읽기 타임아웃, 로깅 등의 옵션을 설정할 수 있어야 하는데요. 예시를 들어보겠습니다. // 예시 위와 같이 이러한 옵션은 필수적이거나 선택적일 수 있습니다. 그렇다면 저 상황에서 다른 옵션이 추가된다면 어떨까요? 그에 맞게 생성자를 추가해야하고, 각 옵션이 optional하다면 추가해야하는 생성자가 기하급수적으로 늘어납니다. 물론 메서드 오버로딩을 지원하지 않는 특성 상, 네이밍도 상당히 어렵습니다. 오늘 이야기 해보려 하는 Functional Option Pattern은 이러한 문제를 해결하고자 등장한 패턴입니다. Functional Op.. 2023. 7. 2. 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. 이전 1 2 3 4 5 6 ··· 22 다음