Architecture

EventLoop 설계와 구현 – el Project (1)

들어가기에 앞서 이 글을 쓰기 시작하기 전에 여러가지를 살펴보고 있었다. 첫 번째는 Spring Webflux의 Reactive 시스템의 방식을 이해하기 위해서 Webflux가 사용하는 Netty를 살펴보는 것이었다. 직접적인 관련은 없지만 Netty를 이해하면 좀 더 확실하게 이해할 수 있다고 생각하였다. 두 번째는 NodeJS 엔진의 동작 방식에 대해서도 궁금증을 가지고 있었다. ‘Single thread 에서 동작하는 EventLoop가 있고 거기서(그 엔진에서) Javascript… 더 보기 »EventLoop 설계와 구현 – el Project (1)

GCP Hybrid 시스템 네트워크 구축 (내부통제 측면, ISMS 대비)

ISMS 준비를 하면서 네트워크 쪽으로 가장 사이즈가 컸던 작업 중 하나가 바로 내부망에서 필요한 GCP 서비스와 연결하는 부분이었다. 이번에는 ISMS를 준비하면서 특정 서비스의 시스템을 구축하는 과정 중에 네트워크에 관한 전체적인 흐름을 설명한다. 네트워크도 사실 여러가지 부분이 있다고 생각하는데 이번 포스팅에서는 어플리케이션과 관련된 네트워크 이야기라기보다는 내부 통제, 내부적인 사용을 위해서 필요한 네트워크 설정과 관련된 이야기를 할… 더 보기 »GCP Hybrid 시스템 네트워크 구축 (내부통제 측면, ISMS 대비)

Query Service 성능 개선기 첫 번째 이야기

작년 4분기부터 올해 초까지 현재 근무하고 있는 회사에서 제공하고 있는 Saas 솔루션의 대시보드 개발을 맡았다. Spring Boot와 JPA를 이용하였고 현재는 베타버전이 거의 완성되었다. 개발 막바지에 Query Service의 성능과 관련된 이슈를 경험하여 글로 남기려고 한다. 이번 포스팅에서는 성능을 개선해야하는 Query Service가 어떤 서비스인지 컨텍스트에서 간단히 설명하고 어떤 문제가 있었으며 그것을 소프트웨어 레벨에서 어떻게 해결하려고 했는지를 써보려고한다.… 더 보기 »Query Service 성능 개선기 첫 번째 이야기

EBI 아키텍쳐에 대해서

Entity-Boundary-Interactor(EBI) 아키텍쳐는 Robert C. Martin의 Clean Architecture에서 언급되었다. 그런데 사실 EBI 아키텍쳐는 1992년 Ivar Jacobson의 Object-Oriented Software Engineering: A use case driven approach에서 먼저 등장하였다.

EBI 아키텍쳐의 목표는 결국 서로 다른 타입의 객체들이 각자의 책임을 캡슐화를 함으로써 시스템에 변화가 필요할 때 그 변화가 시스템 전체에서 일어나지 않고 특정 부분에서만 바꿈으로써 문제가 해결될 수 있도록 하는 것이다.

How DDD Concept can be applied to Project

I’ve translated blog post (korean version) which is about 7 important concepts which is about DDD(Domain-Driven Design). Ubiquitous language Layers Bounded contexts Anti-Corruption Layer Shared Kernal Generic subdomain After translating post I’ve done projects which apply DDD concepts. One is blockchain engine project, it-chain. You can see the codes on this link Lightweight & Customizable… 더 보기 »How DDD Concept can be applied to Project

Ports & Adapters Architecture

Hexagonal Architecture로 알려져있는 Ports & Adapters Architecture는 2005년에 Alistair Cockburn 블로그에 소개되었다. 거기서 그는 Ports & Architecture의 목표를 한 문장으로 정리했다.: Allow an application to equally be driven by users, programs, automated test or batch scripts, and to be developed and tested in isolation from its eventual run-time devices and databases. – Alistair Cockburn 2005,… 더 보기 »Ports & Adapters Architecture

DDD – Entities, Value Objects, Aggregates

Domain-Driven Design 모델링을 할 때 알아야할 가장 기본적인 요소들에 대해서 포스팅해보려고 한다. DDD의 전체적인 개념은 여기에 소개되어있다. 이번 포스팅에서는 세 가지 개념을 설명하려고 한다: Entities Value Objects Aggregates and Roots Entities Eric Evan의 Domain-Driven Design 책에서: Many objects are not fundamentally defined by their attributes, but rather by a thread of continuity and identity. 보통… 더 보기 »DDD – Entities, Value Objects, Aggregates

Domain-Driven Design Key Concepts

현재 오픈소스로 활동하고 있는 it-chain-Engine에서 적용 중인 아키텍쳐, 디자인에 대해서 조금 더 자세하게 알아보고 개념에 대해서 포스팅해보려고 한다. 그 중에 첫 번째가 DDD(Domain-Driven-Design)이다. 본 글은 원작자의 허가를 받고 번역한 글입니다. 의역과 오역이 있을 수 있습니다. 원본 링크: https://herbertograca.com/2017/09/07/domain-driven-design/ Domain-Driven Design과 관련해서 엄청나게 많은 중요한 컨셉들이 있지만 여기서 그것들에 대해서 모두 다루는 것은 아니고 중요하다고 생각하는… 더 보기 »Domain-Driven Design Key Concepts