콘텐츠로 건너뛰기

Architecture

Hashicorp Plugin System Design and Implementation

When we are using Hashicorp products, we can find that there’s always a plugin system that users can develop for their own and enables them to extend the functionality of the product. One of the famous products, Terraform, we can not only use well-known cloud provider modules such as AWS, GCP but our own customed… 더 보기 »Hashicorp Plugin System Design and Implementation

Hashicorp plugin system 설계 및 구현

Hashicorp 제품을 살펴보다보면 사용자가 커스텀한 plugin을 만들고 붙여서 확장된 기능을 사용할 수 있는 형태인 것을 느낄 수 있다. Terraform을 이용하여 우리는 잘 알려진 GCP와 관련된 인프라 리소스를 생성하고 편집할 수도 있지만 커스텀한 리소스를 정의하고 생성하여 관리할 수 있다. Vault에는 기본적으로 제공되는 여러 Secret engine들이 있지만 필요하다면 우리가 커스텀한 secret engine을 만들어 그것을 Vault에 plugin 형식으로… 더 보기 »Hashicorp plugin system 설계 및 구현

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

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

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