Software Architecture/Software design(22)
-
Adapter pattern(어뎁터 패턴)
Adapter pattern interface를 다른 interface로 변경할 때 사용하는 패턴 입니다. 어떤 제 3의 코드가 있을 때 이 코드의 interface는 변경하지 않고 이를 사용하는 client가 요구하는 interfac에 맞추고자 하는 경우에 사용합니다. WildDog이라는 class가 제공하는 interface는 변경하지 않고 싶습니다. 또한 IAnimal을 사용하는 client도 IAnimal이 제공하는 interface로 WildDog을 사용하고 싶습니다. 이런 경우 위와 같이 concreate class로서 Dog을 만든 후 이를 WildDog이 adapt 하게 합니다. Sample code class IAnimal { public: ... virtual void bark() co..
2022.02.28 -
Abstract Factory pattern (팩토리 패턴)
Abstract Factory Pattern 구체적인 concrete class가 무엇인지 몰라도 생성을 요청하고 생성된 객체를 전달 받을 수 있는 interface를 제공하는 의도로 만들어진 pattern 입니다. 위 그림에서 client는 PhoneFactory를 사용해서 어떠한 폰도 만들어 낼 수 있습니다. 이렇듯 생성에 대한 부분을 client에서 구현하지 않도록하여 다음과 같은 장점을 얻을 수 있습니다. 생성에 대한 코드를 각 client게 중복적으로 구현하지 않음 생성에 대한 코드를 한 곳에 모아 놓게 됨 생성과 사용의 독립적인 개발 및 유지보수가 가능 디자인 패턴은 결국 1) 중복 코드의 제거 2) 확장성 제공 이 목적이며 생성 패턴도 위 두 가지 목적을 달성하고자 합니다. sample co..
2022.02.28 -
SA prj. #1
Software Architecture S.R 교수님의 SA는 총 3개의 project와 final term을 수행했던 과목 이었다. 일단, 한 마디로 SA 과목의 goal을 요약하자면, 본 과목의 goal은 "객체 지향 적 사고를 하자" 였다. 무조건 객체 지향이 아닌, 정말 좋은 객체 지향적 설계를 하자는 건데, 매우 인상 깊었던 것 중에 하나가 Coffee Maker 논문 이었다. Coffee Maker Coffee Maker 논문은 너무 객체 그 자체만을 바라보는 설계를 하면, 결코 좋은 설계를 할 수 없다가 요지인데, 객체의 설계에는 눈에 바로 보이는 객체 뿐만 아니라 눈에 보이지 않는 객체까지 모두 다 잘 찾아 내야 한다는 것과, 객체 간의 관계를 마구잡이로 정의 하지 말라는 것 이었다. 또한..
2021.12.19 -
Fundamentals of Software Architecture
저자 정보 Mark Richards & Neal Ford topics architecture patterns technial basis components identification, coupling, cohesion, partitioning, granularity soft skills team management, meetings, negotiation, presentations, and more modernity engineering practices and operational approaches discipline repeatable results, metrics, and concrete valuations code examples http://fundamentalsofsoftwarearchite..
2021.12.08