본문 바로가기

아키텍처17

클린 아키텍처 - 설계원칙 - OCP 설계원칙 SOLID SRP: 단일 책임 원칙 Single Responsible Principle OCP: 개방-폐쇄 원칙 Open-Closed Principle LSP: 리스코프 치환 법칙 Liskov Substitution Principle ISP: 인터페이스 분리 원칙 Interface Segregation Principle DIP: 의존성 역전 원칙 Dependency Inversion Principle OCP 개방-폐쇄 원칙 Open-Closed Principle 소프트웨어 개체(artifact)는 확장에는 열려 있어야 하고, 변경에는 닫혀 있어야 한다. 다시 말하자면 소프트웨어 개체의 행위는 확장할 수 있어야 하지만, 이때 개체를 변경해서는 안 된다. 만약 요구사항을 살짝 확장하는 데 소프트웨어.. 2023. 2. 11.
클린 아키텍처 - 설계원칙 - ISP 설계원칙 SOLID SRP: 단일 책임 원칙 Single Responsible Principle OCP: 개방-폐쇄 원칙 Open-Closed Principle LSP: 리스코프 치환 법칙 Liskov Substitution Principle ISP: 인터페이스 분리 원칙 Interface Segregation Principle DIP: 의존성 역전 원칙 Dependency Inversion Principle ISP 인터페이스 분리 원칙 Interface Segregation Principle [그림 4-1. 인터페이스 분리 원칙] 그림 4-1에서 기술된 상황에서, 다수의 사용자가 me 클래스의 오퍼레이션을 사용한다. children: cooking, exercise wife: cooking, clean.. 2023. 2. 11.
소프트웨어 아키텍처 선택의 중요성 소프트웨어 아키텍처는 높은 추상화 단계에서의 소프트웨어 설계이다. 아키텍처 결정 중 일부는 코드 깊숙이 영향을 미치므로 아키텍처와 디자인 사이의 경계를 구분하기 어려울 수도 있다. 아키텍처가 시스템의 골격 역할을 하고, 품질 속성에 영향을 미치며, 시스템을 제한하기 때문에 소프트웨어 아키텍처 선택은 중요하다. 아키텍처는 시스템 전반에 영향을 끼친다. 시스템의 목적에 따라 올바른 아키텍처를 선택해야만 한다. 아키텍처는 기능에 직접적인 영향을 끼치지 않기 때문에 어느 정도는 아키텍처와 기능을 자유롭게 조합사여 사용할 수 있다. 하지만 필요한 기능과 품질 속성에 아키텍처가 적합하다면 시스템을 구축하기가 훨씬 쉬워진다. 반대로 아키텍처가 접합하지 않다면 요구사항을 충족하는 데 어려움이 있어 어느 선에서 타협해야.. 2023. 1. 28.
아키텍처 세 가지 접근 방식 소프트웨어 아키텍트라면 인정하기 싫겠지만, 개발자가 소프트웨어 아키텍처를 무시하더라도 성공할 수 있는 시스템이 많다. 그렇지만 소프트웨어 아키텍처를 충분히 생각했다면 피할 수 있었던 실패도 많다. 예를 먼저 들어보자. 예전 트럭은 안전벨트가 없었다. 그때의 트럭은 안전벨트가 없었다. 설계자가 차를 설계 할 때 안전에 무관심했다는 뜻이다. 설계자가 차를 설계할 때 안전에 무관심했다는 뜻이다. 그 이후에 나온 차들은 안전벨트가 있었다. 설계자는 아키텍처 집중 설계를 선택하여 안전벨트를 장착했다. 하지만 매번 버클을 맸어야 했다. 버클을 매지 않으면 안전을 보장할 수 없었다. 요즘에 나온 차들은 전부 에어백이 있어야 한다. 아키텍처 수준에서 안정성을 우선하지 않은 차량을 구매할 수 없다. 즉, 아키텍처 상향 .. 2023. 1. 28.