Software architecture 5

마이크로 서비스 아키텍처 (Microservice Architecture)

독립적으로 동작하는 다수의 작은 서비스들이 상호 협업하는 구조의 아키텍처 기존 모놀리식 (Monolithic) 아키텍처와 같이 하나의 서비스로 되어 있는 구조에서 기능을 수정하거나 추가할 경우 해당 코드들이 기존의 코드들에 영향을 미칠 수 있고, 이는 점점 더 시스템의 유지 보수를 어렵게 한다. 반면, 마이크로 서비스 (Microservice) 아키텍처는 내부적으로 다수의 작은 서비스들을 가지고 있고, 각 서비스들은 상호협업 한다. 각 서비스들은 독립적이고, 자율성을 가지기 때문에 기능이 수정되거나 추가되더라도 기존 다른 서비스에 미치는 영향은 제한적이다. (각 서비스들은 네트워크 호출을 통해 통신하기 때문에 서로 다른 기술 기반으로 구현 가능하다는 특징도 있음) 마이크로 서비스 아키텍처는... 분산 시..

Use Case Model - Use Case Diagram

Use Case Model 시스템의 Functional Requirements를 표현한 모형 Actor와 Use Case(UC), 그리고 이들간의 관계(Association)를 Diagram으로 표현 (Use Case Diagram) Actor 시스템과 Interaction하는 모든 요소 개발 범위 외부에 존재 Use Case 시스템이 제공하는 기능을 의미 사용자 관점에서 개별적인 기능 단위 표현 필요 Association Actor와 Use Case 간의 관계 및 방향 Use Case 간에는 association을 쓰면 안되고, , 만 허용 임의의 UC내에 특정 UC가 있을 경우 로 표현 (공통의 부분을 떼어 내어 중복 방지를 위한 모듈화를 위함) 특정 조건에 발생하는 추가 UC의 경우 로 표현 (가변..

SOLID - 객체 지향 디자인을 위한 5가지 기본 원칙

유지가능(Maintainable)하고 확장가능(Extensible)한 시스템을 위한 객체 지향 디자인을 위한 5가지 기본 원칙 SRP: Single Responsibility Principle OCP: Open-Closed Principle LSP: Liskov Substitution Principle ISP: Interface Segregation Principle DIP: Dependency Inversion Principle SRP: Single Responsibility Principle 하나의 모듈은 변경을 위한 하나의 이유만 있어야 한다. 모듈을 변경해야 할 이유가 두개 이상이라면 해당 모듈은 두개 이상의 책임을 가지고 있다는 의미로 SRP를 지키지 못한 것이다. OCP: Open-Closed..

Architectural Drivers - 핵심 요구 사항

Architectural Drivers (AD) SW architecture를 Design하기 위해 Architect가 파악해야 할 Key Requirements. 시스템의 Fundamental에 영향을 미침 시스템을 위한 모든 요구 사항을 의미하지는 않음 (AD는 전체 Requirement의 subset) Architectural Driver는 architectural decision에 영향을 미치기 때문에 조기 파악이 중요 Architectural Driver의 종류 Functional requirements => Use Case Model과 Use Case Specification (Scenarios)를 통해 파악 Non Functional requirements Quality attributes ..