본문 바로가기

스터디/오브젝트15

15장 - 디자인 패턴과 프레임워크 개요 이번 장에서는 객체지향 관점에서 디자인 패턴과 프레임워크가 설계에 어떻게 영향을 주는지에 대해 알아봅니다. 소프트웨어 패턴이란 무엇일까? 패턴이란 하나의 실무 컨텍스트에서 유용하게 사용해 왔고 다른 실무 컨텍스트에서도 유용할 것이라고 예상되는 아이디어입니다. 이러한 패턴을 잘 이해하기 위해서는, 단순한 정의를 넘어서 패턴이 내포하는 미묘한 의미와 적용의 배경을 파악하는 것이 중요합니다. 패턴은 문제와 그 해결책을 연결하는 방식으로 정리되며, 이를 통해 개발자들 사이의 의사소통을 돕고, 추상적인 원칙과 실제 코드 사이의 간극을 메우는 역할을 합니다. 패턴의 장점은 무엇일까? 1. 실무에서 얻은 경험을 효과적으로 요약하고 전달할 수 있다는 점입니다. 이는 초보자들이 경험을 통해 검증된 방법론을 배우고,.. 2023. 11. 14.
14장 - 일관성 있는 협력 개요 이번 장에서는 일관성 있는 협력이 왜 중요한지에 대한 내용을 자세히 소개합니다. 왜 일관성 있는 협력이 중요할까? 앱을 개발하다 보면 유사한 요구사항을 반복적으로 추가하거나 수정하게 되는 경우가 있습니다. 유사한 요구사항을 계속 추가해야 하는 상황에서 각 협력이 서로 다른 패턴을 따를 경우에는 전체적인 설계의 일관성이 서서히 무너지게 되면서 코드를 이해하기도 어렵고 코드 수정으로 인해 버그가 발생할 위험성도 높아집니다. 이러한 문제를 해결하기 위해서는 객체들의 협력 방식을 일관성 있게 만들어야 합니다. 일관성 있는 설계가 가져다주는 장점은 유사한 기능을 구현하는 데 드는 시간과 노력을 대폭 줄일 수 있으며, 코드가 이해하기 쉬워진다는 것입니다. 특정한 문제를 유사한 방법으로 해결하고 있다는 사실을 .. 2023. 10. 26.
13장 - 서브클래싱과 서브타이핑 개요 이번 장에서는 상속을 예시로 올바른 타입 계층을 구성하는 원칙을 좀 더 깊이 있게 소개합니다. 기존 상속에 관한 오해 올바른 타입 계층을 구성하는 원칙을 이해하기 위해 먼저 상속은 다음 두 가지 용도로 사용된다는 이해가 필요합니다. 타입 계층 구현 타입 계층 안에서 부모 클래스는 일반적인 개념(일반화), 자식 클래스는 특수한 개념(특수화)을 구현합니다. 코드 재사용 점진적으로 앱의 기능을 확장할 수 있습니다 재사용 목적으로 상속을 사용할 경우 부모 클래스와 자식 클래스가 강하게 결합되기에 변경하기 어려운 코드를 얻게 될 확률이 높습니다. 타입 계층이란 무엇이고 상속을 이용해 타입 계층을 구현한다는 것이 무엇을 의미할까? 이 질문의 답을 찾기 위해 먼저 타입과 타입 계층의 개념을 알아보겠습니다. 타입.. 2023. 10. 16.
12장 - 다형성 개요 이번 장에서는 상속의 관점에서 다형적인 타입 계층을 구현하는 방법과 올바른 타입 계층을 구성하기 위해 고려해야 하는 원칙에 관해 소개합니다. 다형성(Polymorphism)이란? 다형성이라는 단어는 그리스어에서 많은을 의미하는 poly와 형태를 의미하는 morph의 합성어로 많은 형태를 가질 수 있는 능력을 의미하며, 컴퓨터 과학에서는 다형성을 하나의 추상 인터페이스에 대해 코드를 작성하고 이 추상 인터페이스에 대해 서로 다른 구현을 연결할 수 있는 능력으로 정의합니다. 위 두 의미를 정리하자면 다형성은 여러 타입을 대상으로 동작할 수 있는 코드를 작성할 수 있는 방법이라고 할 수 있습니다. 다형성 분류 다형성은 크게 유니버설 다형성과 임시(Ad Hoc) 다형성으로 분류할 수 있습니다. 유니버설 다.. 2023. 9. 20.