June's Blog

소프트웨어 아키텍처 101 - CHAPTER 7 아키텍처 특성 범위

아키텍트는 운영 아키텍처 특성을 따져보고 아키텍처 특성에 영향을 미치는 코드베이스 외부의 컴포넌트를 잘 살펴봐야 합니다. 그래서 이런 종류의 의존성을 특정하기 위해 Building Evolutionary Architectures(O’reilly, 2017)의 저자들은 아키텍처 퀀텀(architecture quantum)이라는 용어를 정의했습니다. 아키...

소프트웨어 아키텍처 101 - CHAPTER 5 아키텍처 특성 식별

아키텍처를 구축하거나 기존 아키텍처의 타당성을 검증할 때 제일 먼저 해야 할 일은 아키텍처 특성을 식별하는 것입니다. 아키텍트는 해당 도메인을 잘 이해하고 있어야 하며, 도메인 관점에서 정말 중요한 것들을 결정해야 합니다. 5.1 도메인 관심사에서 아키텍처 특성 도출 아키텍트는 도메인 관심사를 올바르게 해석하여 정확한 아키텍처 특성을 식별해야 합니...

소프트웨어 아키텍처 101 - CHAPTER 4 아키텍처 특성 정의

아키텍트는 개발팀과 함께 도메인 또는 비즈니스 요구사항을 정의할 수 있지만, 주로 소프트웨어로 처리할 일 중 도메인 기능과 직접적인 관련이 없는 모든 것들, 즉 아키텍처 특성(architectural characteristic)을 정의, 발견, 분석하는 일을 수행합니다. 아키텍처 특성은 다음 세가지 기준을 충족합니다. 비도메인(nondomai...

소프트웨어 아키텍처 101 - CHAPTER 3 모듈성

본인이 선택한 개발 플랫폼에서 모듈성과 그것을 구현한 수많은 코드를 이해하는 것은 아키텍트에게 대단히 중요한 일입니다. 우리가 아키텍처를 분석해야 할 많은 도구가 바로 이 모듈성에 기반하기 때문입니다. 모듈성은 일종의 구성 원리(organizing principle)입니다. 3.1 정의 사전에서 모듈을 찾아보면, ‘복잡한 구조를 만드는 데 쓰이는 ...

소프트웨어 아키텍처 101 - CHAPTER 2 아키텍처 사고

아키텍처 사고(architectural thinking): 아키텍처적인 눈으로, 즉 아키텍처 관점에서 사물을 바라보는 것 아키텍트의 사고 방식 아키텍처와 설계의 차이를 이해하고 아키텍처 작업을 진행하려면 개발팀과 어떻게 협력해야 할 지 아는 것. 어느 정도 기술 깊이를 유지하면서 폭 넓은 기술 지식을 확보하는 것. ...

소프트웨어 아키텍처 101 - CHAPTER 1 서론

소프트웨어 아키텍트가 커리어패스가 분명하지 않은 이유 직업 자체에 명확한 정의가 없다. 소프트웨어 아키텍트의 역할은 방대한 분야를 포괄하며, 업무 범위도 계속 넓어지고 있다. 소프트웨어 개발 생태계는 워낙 빠르게 발전하는 분야이고 소프트웨어 아키텍처는 끊임없이 변한다. 소프트웨어 아키택처에 관한 자료는 대부분 역사적인 역사성을 강조한...

Event-driven Architecture

왜 Event-Driven Architecture인가? Software Architecture의 진화 소프트웨어 아키텍처는 서비스의 규모가 커짐에 따라 대략적으로 모놀리틱 아키텍처에서 시작하여 컴포넌트 기반 아키텍처, 서비스 지향 아키텍처, 그리고 마이크로서비스 아키텍처로 발전해 왔습니다. 이러한 소프트웨어 아키텍처 진화의 공통적인 특징은 결합도(...