728x90
절차적

- 프로그램을 구성하는 데이터와 프로세스를 개별적인 모듈로 분류해서 구현하는 방식을 의미
- 절차적인 방식으로 코드를 작성할 때는 데이터를 먼저 정의하고 데이터를 사용하는 프로세스를 나중에 설계한다.
데이터를 저장할 클래스
- 대부분의 시스템은 데이터를 관계형 데이터베이스에 저장하기 때문에 테이블과 컬럼, 테이블 사이의 관계를 이용해서 데이터와의 관계를 정의한다.
- 객체지향 언어에서는 데이터를 객체 안에 보관하기 때문에 클래스를 이용해서 데이터를 저장할 코드를 구현할 수 있다.
- 클래스는 일반적으로 테이블당 하나씩 추가하고 테이블의 컬럼별로 하나의 필드를 대응시키는 방식으로 구현한다.
- private 키워드를 통해 다른 클래스가 해당 필드를 직접 접근하는 것을 막을 수 있다(캡슐화)
- public 메서드를 통해 필드를 간접적으로 접근가능하도록 열어준다.(일반적으로 getter/setter 메서드를 만들어주는 것이 관례이다.
절차적인 프로세스 설계

- 절차적인 설계는 로직을 실행 순서대로 클래스 안에 배치
데이터 접근 객체

- 데이터베이스에 접근해서 영속성 로직을 처리하는 객체를 데이터 접근 객체(DAO)라고 한다.
- DAO는 보통 테이블당 하나씩 존재한다.
절차적인 설계의 문제점
- 데이터를 설계할 때 데이터가 사용될 문맥을 고려하지 않았다.
- 프로세스는 데이터가 이미 완성된 뒤에 이 데이터를 조합해서 알고리즘을 구현한다.
- 데이터를 사용하는 방식은 프로세스가 결정하게 되는데 데이터를 설계할 떄는 데이터가 사용될 프로세스에 대해서는 전혀 고려하지 않고 있다.
- 데이터를 설계할때 데이터가 사용될 문맥을 고려하지 않으면 유지보수성 측면에서 다양한 문제가 존재한다.
중앙 집중식 제어 스타일

- 절차적인 방식의 경우 프로세스를 구현한 클래스의 제어가 집중된다는 특징이 존재한다.
- 프로세스를 구현한 예약 서비스가 데이터 접근 객체난 데이터를 저장하고 있는 객체 모두의 실행 흐름을 통제한다는 것을 그림으로 확인할 수 있다.
- 제어가 프로세스를 구현한 객체 안으로 집중되는 방식을 중앙 집중식 제어 스타일이라고 한다.
- 제어가 한곳으로 집중이 되면 응집도/ 결합도 측면에서 다양한 문제가 발생한다.
728x90
'오브젝트' 카테고리의 다른 글
| Ch03. 객체지향 기본 원칙 - 객체지향 설계 원칙 (0) | 2024.10.01 |
|---|---|
| Ch02. 절차적인 설계 개선하기 - 절차에서 객체로 (0) | 2024.09.29 |
| Ch02. 절차적인 설계 개선하기 - 데이터와 프로세스 통합하기 (0) | 2024.09.29 |
| Ch02. 절차적인 설계 개선하기 - 변경과 의존성 (0) | 2024.09.29 |
| Ch01. 영화 예매 도메인 (0) | 2024.09.15 |