아키텍처(4)
-
[아키텍처] CQRS 패턴
CQRS 패턴에 대해서 간략하게 정리를 하려합니다. MySQL Replication 구성 및 TypeScript의 CQRS 모듈 사용을 경험해보면서 아주 깊이는 없지만, 대략적인 개념들을 정리하였습니다. 이 패턴을 처음 접한것은 '2021년 B마트 전시 도메인 CQRS 적용하기'라는 우아콘 세션이었습니다. 왜 CQRS를 적용해야하는지, 그리고 왜 이렇게 하면 좋은지에 대해서 알게되었고 저도 간단하게나마 한번 적용을 해보았습니다. 사실 '만들어 보았다.'인데 실제 해당 패턴의 장점을 극대화하려면 어느정도 규모가 있는 서비스에서 운영경험이 있어야 되지 않을까 라는 생각이 들었습니다. 개념과 필요성 CQRS는 Command and Query Responsibility Segregation의 약자로 데이터 저장..
2022.12.20 -
서버리스 아키텍처(Serverless Architecture)
개인적으로 임베디드 시스템을 다루면서 '제어보드 생산 -> Bring up -> System Management Setting -> 배포 -> 테스트' 과정을 매번 거쳐보았기에 개발자가 서버로 사용할 인프라 인스턴스를 직접 다룬다는 것이 얼마나 힘들고, 귀찮고, 어려운지 경험한바 있습니다. 이런 것들을 누가 대신 다 제공해준다? 솔직히 아주 솔깃합니다. 특히 서비스에 집중을 해야하거나, infra를 On-Premise로 구축할 필요가 없는 경우 더더욱 그러할 것 같습니다. 최근 AWS 기술 스택을 보면서 서버리스 아키텍처라는 용어가 종종 등장합니다. 개념적으로는 참 오래된 개념이지만, HW 기술이 비약적으로 발전하기 전까지는 각광받지 못한 분야기도 합니다. Serverless라는 용어때문에 혼동이 많은데..
2022.12.19 -
[아키텍처] 스프링 멀티 모듈 설계 - 헥사고날 아키텍처
최근 하나의 모듈로 개발했던 프로젝트를 멀티 모듈로 분할을 진행하면서 과연 올바른 방법으로 멀티모듈이 설계가 된건가... 라는 물음과 이게 과연 적절한 것인가...하는 물음이 발생했습니다. 자료를 찾아보면서 다시금 정리를 해본바... '싹다 갈아 엎을까?'라는 생각이 많이 들고 있습니다. 개인적인 경험으로 보았을 때, 멀티 모듈을 구성하는 이유(분산 아키텍처를 수용하는 이유)는 두가지라고 생각합니다. 단일 실패지점(SPOF)에 의해 전체 시스템이 마비가 되는 것을 방지 높은 응집도와 낮은 결합도를 가지고 유지보수성 증가 그래서 적용은 해보고 싶은데, 참 어렵습니다. 그래서 멘토링 경험을 계기로 인프콘 세션 중 '실전!멀티 모듈 프로젝트 구조와 설계' 라는 주제로 네이버 김대성님이 발표해주신 세션 내용을 ..
2022.12.14 -
Event Driven Architecture - 이벤트 드리븐 아키텍처
개발을 하면서 정말 많이 쓰이는 아키텍처 패턴이라고 생각하는 이벤트 드리븐 아키텍처에 대한 내용을 간단하게 요약해보고자 합니다. 해당 내용을 파고들면 정말 끝이없는... 내용인 것 같습니다. C언어로 프로덕션 코드를 구현할 때도 직접 Queue로 구현해서 사용하곤 했었는데, Spring이나 NestJS등 고수준 프레임워크에서는 애너테이션 등으로 아주 간편하게 제공하고 있습니다. 무튼 그런 내용들은 각설하고 아키텍처의 개념에 대해서만 요약 정리를 해보겠습니다. 용어 정의 ED ( Event-driven ) 이벤트를 생성, 발생하고 발행된 이벤트를 필요로하는 수신자에게 전송되는 구조 이벤트를 수신한 수신자가 이벤트를 처리하는 형태의 구조 programming, architecture와 연결되어 다양한 정의로..
2022.12.07