진짜 개발자
본문 바로가기

Software Engineering/OOAD (총 3개)

OOAD - 진정한 캡슐화 (잘못된 캡슐화 예제) 진정한 캡슐화 진정한 캡슐화에 대해 알아보도록 하겠습니다. 진정한 캡슐화제목이 조금 이상한듯 싶지만, 우리가 알고 있는 이전의 캡슐화는 진짜 캡슐화가 아닐 확률이 높습니다. 때문에 진정한 캡슐화를 알아보자는 취지에서 이런 제목을 붙혔습니다. 우선 보통의 경우 캡슐화의 의미에 대해서 알아보겠습니다. 1. 캡슐화란 ? 캡슐화란 내부의 구현을 인터페이스를 통해 숨기는것을 말합니다. 설계중에서 변경될 가능성이 높은 부분을 구현 이라고하며, 상대적으로 안정적인 부분을 인터페이스라고 부릅니다. 캡슐화는 이런 변경가능성이 높은 구현을 숨기고 상대적으로 안정적인 부분을 공개함으로써 변경을 최소화하도록 합니다. 2. 캡슐화가 필요한 이유?상태와, 행동을 객체라는 하나의 단위로 묶는 이유는, 객체 스스로 자신의 상태를 처..
OOAD - 데이터 주도 설계의 문제점(결합도와 응집도) 데이터 주도 설계의 문제점 이번 포스팅에서는 지난 포스팅에서 다루었던 책임주도 설계와 대비하여 소개되는 데이터 주도 설계 방식을 알아보고 결합도와 응집도에 대해 알아보도록 하겠습니다. 이 포스팅은 OBJECTS(코드로 이해하는 객체지향 설계)라는 책을 토대로 작성되었습니다. 지난 포스팅 ( https://galid1.tistory.com/681 )과 이어 보시는것이 도움이 더 많이 될것입니다. 데이터 주도 설계데이터 주도설계란 간단히 말씀드려 객체가 가져야할 데이터에 초점을 두고 설계를 하게되는 방식을 일컫습니다. 데이터 주도 설계에서는 객체 자신이 포함하고 있는 데이터를 조작하는 데 필요한 행동을 정의하게 됩니다. 반면 책임주도 설계에서는 다른 객체로부터 자신에게 요청할 수 있는 요청을 수행하기 위해 ..
OOAD - 책임, 역할, 협력을 이용한 객체지향 설계 역할, 책임, 협력을 이용한 유연한 설계 이번 시간에는 OOP 설계 방법 (역할, 책임, 협력)에 대해 알아보도록 하겠습니다. 이 포스팅은 오브젝트 (코드로 이해하는 객체지향 설계)라는 책을 토대로 작성되었습니다. 코드 https://github.com/galid1/oop_study 아래의 설명들은 위의 코드를 토대로 설명을 하고 있습니다. 1. 시나리오2. 에서 앞으로 설명드릴 역할, 책임, 협력이라는 단어들에 대한 효율적인 이해를 돕기 위해, 간단한 영화 예메 시스템시나리오를 살펴보도록 하겠습니다. 1.1 요구사항 분석우선, 영화 예매 시스템에서 빠질 수 없는 영화에 대한 요구사항을 분석하도록 하겠습니다. 영화영화는 제목, 상영시간(running time), 가격 정보 등의 영화의 기본적인 정보를 가..