728x90
반응형

컴퓨터과학/0 + 소프트웨어 아키텍처(디자인 패턴) 18

[소프트웨어 아키텍처] 5. 템플릿 메소드 패턴(Template method Pattern -java)

템플릿 메소드 패턴 커멘드 패턴에서 우리는 메서드의 호출을 캡슐화 했습니다. 이번에는 서브클래스에서 언제든 필요할 때마다 알고리즘을 가져다가 사용 할 수 있도록 캡슐화 해보겠습니다. 그리고 할리우드에서 영감을 받아 만들어진 디자인 원칙도 같이 배워보도록 합시다.! 템플릿 메소드 패턴은 알고리즘의 골격을 정의 합니다. 템플릿 메소드를 사용하면 알고리즘의 일부 단계를 서브클래스에서 구현할 수 있으며, 알고리즘의 구조는 그대로 유지하면서 알고리즘의 특정 단계를 서브클래스에서 재정의할 수도 있습니다. 간단하게 말하면, 알고리즘의 템플릿(틀)을 만듭니다. 템플릿이란 그냥 메서드 입니다.(템플릿 안에는 또 다른 메서드가 존재합니다.) 좀더 구체적으로 이야기 하면 알고리즘의 정의한 메서드 입니다. 즉, 템플릿 메서드..

[소프트웨어 아키텍처] 2. 전략 패턴(Strategy Pattern -java)

전략패턴 알고리즘군을 정의하고 캡슐화해서 각각의 알고리즘군을 수정해서 사용 할 수 있게하는 패턴 입니다. 클라이언트로부터 알고리즘을 분리해서 독립적으로 변경할 수 있다. 하나의 움짤에 여러가지 전략을 설정할 수 있습니다. 변하지 않는 것은 움짤, 변하는 것은 전략 입니다. 상속이 모든 문제를 해결할 수는 없습니다.(템플릿 메소드 패턴에서는 상속을 사용합니다.) 2022.10.25 - [컴퓨터 공학/0 + 소프트웨어 아키텍처] - [소프트웨어 아키텍처] 5. 템플릿 메소드 패턴(Template method Pattern -java) [소프트웨어 아키텍처] 5. 템플릿 메소드 패턴(Template method Pattern -java) 템플릿 메소드 패턴 커멘드 패턴에서 우리는 메서드의 호출을 캡슐화 했습니..

[소프트웨어 아키텍처] 6. 상태 패턴(State Pattern -java)

상태 패턴 전략 패턴과 상태 패턴을 쌍둥이다?! 전략패턴(Strategy Pattern)을 사용하면 행위(알고리즘)을 캡슐화해서 객체가 행위 자체 변경할 수 있습니다. 상태패턴(State Pattern)을 사용하면 객체의 내부 상태를 캡슐화해서 상태 변경에 따라서 객체의 행동을 바꿀 수 있습니다. 쉽게 이야기 하면, 상태 패턴은 내부 상태를 바꿈으로써 객체가 행동을 바꿀 수 있도록 한다. 다시 말하면 상태에 따라서 행동을 달리해야하는 경우에 사용하는 패턴이다. 상태를 별도의 클래스로 캡슐화한 다음 현재 상태를 나타내는 객체에게 행동을 위임하므로 내부 상태가 바뀔 때 행동이 달라지게 된다. 4강 상태를 제외하고 모든 상태가 같다..! 상태 패턴 구조 Context 해당 클래스에는 여러가지 내부 상태가 들..

[소프트웨어 아키텍처] 3. 커맨드 패턴(Command Pattern-java)

커맨드 패턴 커맨드 패턴을 사용하면 요청 내역을 객체로 캡슐화해서 객체를 서로 다른 요청 내역에 따라 매개변수화할 수 있다. 이러면 요청을 큐에 저장하거나 로그로 기록하거나 작업 취소 기능을 사용할 수 있다. 리시버의 메서드 호출을 캡슐화 한다. 메서드 호출을 캡슐화하면 계산 과정의 부분을 결정화할 수 있기에 계산하는 코드를 호출한 객체는 그 일이 어떤 방법으로 처리되는지 신경 쓸 필요가 없다. 쉽게 이야기하면 다음과 같습니다. Command 를 통해서 리시버의 특정 메서드를 캡슐화 하고, 인보커(호출자)는 리시버에 관계 없이(Command에서 캡슐화했기 때문) Command 객체의 메서드를 호출하면 됩니다. 즉, 커맨드 패턴은 호출을 캡슐화 합니다. 위 내용을 레스토랑의 종업원, 주방장의 예시로 코드를..

[소프트웨어 아키텍처] 4. 옵저버 패턴(Observer Pattern -java)

옵저버 패턴 옵저버 패턴이란 한 객체의 상태가 변화하면 그 객체에 의존하는 다른 객체에게 연락이 가고 자동으로 내용이 갱신되는 방식으로 일대다(one-to-many) 의존성을 정의합니다. 예를들어 정보통신대대라는 객체의 상태가 변화하면 그객체에 의존하는 병사 및 간부들에게 연락이 가고 자동으로 전달사항이 갱신되는 방식이다. 옵저버 패턴은 일련의 객체 사이에서 일대다 관계를 정의 또한, 신문 구독 매커니즘을 이해하고 있으면 옵저버 패턴을 쉽게 이해할 수 있다. 신문사를 주제(subject) 구독자를 옵저버(observer)라고 부른다고 알고 있으면 됩니다.! 주제(subject)가 상태를 저장하고 제어한다…! e.g) 행보관(subject)은 매일 아침7시에 병사들(obsever)에게 아침점호 방식을 알려..

[소프트웨어 아키텍처] 1-3) 아키텍처 패턴 스타일

2022.09.20 - [분류 전체보기] - [소프트웨어 아키텍처] 1-2) 소프트웨어 아키텍처 문서화와 평가 [소프트웨어 아키텍처] 1-2) 소프트웨어 아키텍처 문서화와 평가 2022.09.20 - [컴퓨터 공학/0 + 소프트웨어 아키텍처] - [소프트웨어 아키텍처] 1-1) 소프트웨어 아키텍처 기초지식 [소프트웨어 아키텍처] 1-1) 소프트웨어 아키텍처 기초지식 ✅ 아키텍처 기초 소프트 howisitgo1ng.tistory.com 아키텍처 패턴 스타일 왜 등장했는가??? 개발은 보통 완료된 후에도 오랜 시간 지속적으로 업그레이드되면서 향상된 서비스와 새로운 서비스를 제공해야 하는데,설계 없이 이런 유지보수, 진화의 작업을 하는 것은 장기적으로 큰 비용의 낭비를 가져오게 됩니다. 그래서 크고 복잡한 소..

[소프트웨어 아키텍처] 1-2) 소프트웨어 아키텍처 문서화와 평가

2022.09.20 - [컴퓨터 공학/0 + 소프트웨어 아키텍처] - [소프트웨어 아키텍처] 1-1) 소프트웨어 아키텍처 기초지식 [소프트웨어 아키텍처] 1-1) 소프트웨어 아키텍처 기초지식 ✅ 아키텍처 기초 소프트웨어 아키텍처를 공부하기 위해서 기초지식에 대해서 알아보자..! 💭 소프트웨어 아키텍처란? 소프트웨어 구조 또는 소프트웨어 아키텍처(software architecture)는 소프트웨 howisitgo1ng.tistory.com 지난 시간에 소프트웨어 아키텍처 기초 지식에 대해서 알아보았다. 이번에는 📚 문서화 하는 과정을 알아보자! 📚 아키텍처 문서화 🛠 아키텍처 문서는 더 좋은 설계를 만들기 위한 도구 문서화를 함으로써 얻는 이점은 다음과 같다. 구현을 시작하기 전에 중요한 설계 이슈를 발..

[소프트웨어 아키텍처] 1-1) 소프트웨어 아키텍처 기초지식

✅ 아키텍처 기초 소프트웨어 아키텍처를 공부하기 위해서 기초지식에 대해서 알아보자..! 💭 소프트웨어 아키텍처란? 소프트웨어 구조 또는 소프트웨어 아키텍처(software architecture)는 소프트웨어의 구성요소들 사이에서 유기적 관계를 표현하고 소프트웨어의 설계와 업그레이드를 통제하는 지침과 원칙이다. 소프트웨어 구조 - 위키백과, 우리 모두의 백과사전 소프트웨어의 설계는 서브시스템 수준의 덩어리화(chunking) 작업이라고 말할 수 있다. 👨‍🔧 아키텍처의 역할 시스템 구조를 확립하면서 소프트풰어 개발의 중심축 설계, 구현, 통합, 테스팅까지 통합하는 뼈대 초기 의사 결정의 핵심 컴포넌트 명백한 역할을 가지고 있고, 독립적으로 존재할 수 있는 시스템의 부분 모듈 프로그래밍 언어의 문법 구조에..

728x90
반응형