CQRS란 무엇인가?

CQRS 오해

CQRS와 그 관련 기술들은 .NET 환경을 중심으로 발전해왔고 점차 Java, Ruby 등의 생태계로 확산되고 있습니다. 국내에서는 아직 크게 주목받지는 않지만 최근 CQRS에 대한 관심이 늘어나고 있습니다. CQRS를 처음 접하는 국내 프로그래머들은 혼란스러워하거나 오해를 하곤 합니다. 비단 이런 현상은 CQRS나 국내 환경에 국한되지는 않습니다. CQRS 말고도 여러 기술들이 확산되는 과정에 맹신과 괴담들이 퍼져왔습니다. 또한 해외 커뮤니티에서도 CQRS의 실체에 대해 혼란스러워하는 모습을 어렵지 않게 볼 수 있습니다. 저 또한 CQRS를 처음 공부할 당시 응용기술에 대한 이해보다 CQRS가 무엇인지에 대해 가장 많이 고민했고 몇 차례 주변에의 질문에도 명확한 답변을 얻지는 못했습니다.

계속 읽기

Azure Event Hubs를 이용한 비동기 마이크로서비스 아키텍처

시작하기

Azure Event Hubs는 메시지 스트림을 쉽게 구현할 수 있는 기능들을 제공합니다. 이 글은 Azure Event Hubs로 메시지 스트림을 만들고 분산된 비동기 서비스에 필요한 기반구조를 구축하는 하나의 방법을 제시합니다.

계속 읽기

메시지 스트림을 이용한 비동기 마이크로서비스 아키텍처

시작하기

단일 서비스에서 모든 기능들이 호스팅되는 방식이 하나 둘 씩 만들어내는 문제들을 해결하고자 회사 기술팀은 코드를 몇 개의 서비스로 분리하기로 결정했습니다. 이것을 실천하기 위해 마이크로서비스 아키텍처(microservice architecture)를 학습하면서 동기적인 작업 흐름으로는 달성하기 어려운 요구사항들이 있다는 것을 알게되었습니다. 그래서 메시지 스트림을 이용한 비동기 분산 시스템을 고민하고 학습했습니다. 이 글은 메시지 스트림의 필요성과 기능적 요구사항, 단점 및 보완 방법에 대해 설명합니다.

계속 읽기

단위 테스팅과 통합, 승인, 기능 테스팅

단위 테스팅이란 용어는 자주 사용되지만 유사한 모습을 가진 테스팅 기법들과 자주 혼동됩니다. 용어가 혼동되면 의사소통에 문제가 발생하고 각 용어의 대상이 가지는 특징을 이해할 수 없기 때문에 필요한 곳에 적절한 도구를 사용하지 못합니다. 이 게시물은 단위 테스팅, 그리고 단위 테스팅과 흔히 혼동되는 테스팅 기법 몇 가지를 설명합니다.

계속 읽기

스타트업에 취업하기

박재성님의 ‘최근 구직, 구인 글을 보면서 느끼는 단상’이란 글을 읽었는데 무척이나 공감을 했습니다. 특히 다음 구절에서 생각나는 일화가 있어서 적어봅니다.

다양한 스펙을 쌓는 것에 집중하기 보다 프로그래밍 자체를 즐기는 진정성을 보여주면 더 좋겠다. 경험도 너무 많은 경험보다는 한 가지 경험이라도 깊이 있는 경험을 하면 좋겠다. 프로그래밍 자체에 대한 열정은 자연스럽게 드러난다.

계속 읽기

Inversion of Control(제어 역전)

이전 게시물 의존성 역전 원리(Dependency Inversion Principle) 관련 용어에서 Inversion of Control(제어 역전, 이하 Ioc)에 대해 간단히 정리했습니다. 비록 짧지만 제가 알고있는 범위에서 가장 중요한 부분은 설명이 되었다고 생각합니다. 물론 IoC가 쉽게 이해될 수 있는 개념은 아니지만 제가 이해하는 것보다 훨씬 어렵게 생각하는 반응들을 목격하고 혹시 내가 IoC를 오해하고 있는 것은 아닌가 하는 의문과 함께 내 이해에 대한 좀 더 자세한 기록을 남겨야겠다는 생각이 들었습니다.

Reflectionprojection

계속 읽기

의존성 역전 원리(Dependency Inversion Principle) 관련 용어

의존성 역전 원리(Dependency Inversion Principle)는 모듈간 낮은 결합도(loose coupling)와 테스트 용이성(testability)을 확보하는데 유용한 디자인 방법입니다. 저는 확장 가능하고(scalable) 클라우드 환경에 적응력있는(adaptive) 응용프로그램 디자인을 위해 의존성 역전 원리가 아주 큰 역할을 한다고 생각합니다. 하지만 안타깝게도 의존성 역전 원리와 관련된 기법과 도구를 지칭하는 용어들은 자주 혼동됩니다. 용어가 혼동된다는 것은 그 대상의 의미도 혼동되고 있다는 뜻입니다. 의미를 혼동하면 필요한 곳에 적절히 사용할 수 없겠죠. 의존성 역전 원리에 대한 이해를 돕기 위해 관련된 주요 용어들을 간단히 정리했습니다. 설명 대상 용어에 대해서는 번역된 표현 대신 영어 원문을 그대로 사용했습니다.

Hollywood_Sign_(Zuschnitt)

계속 읽기