객체란 사물을 논리적으로 추상화한 것이다. 예를들어 자동차가 있다고 가정할 때 자동차는 바퀴, 유리창, 사이드미러, 기어, 엑셀, 브레이크 등 눈으로 볼 수 있는 수천가지 부품으로 구성돼 있다. 추상화란 우리가 관심 있는 부분만 추려내는 것이다. 자동차 객체를 만드는데 다른건 다 필요없고 앞뒤로 움직이는 것만 관심이 있다면 기어, 엑셀, 브레이크 속성과 전진, 후진, 정지, 가속 기능만 있으면 된다. 따라서 객체는 사물에 대해 관심 있는 부분만 추려내 추상화한 것이다.
객체는 데이터와 기능을 동시에 가지고 있다. 하나의 객체는 다른 객체가 가지고 있는 데이터와 기능을 사용할 수 있고 이런 능력은 객체간 결합을 가능하게 한다. 객체지향 방법론은 객체의 특성을 활용하여 객체를 생성하고 구체화하여 프로그램을 진행한다. 정보공학 방법론처럼 데이터와 프로세스를 따로 설계하지 않고 데이터와 프로세스를 모두 객체에 담아 오로지 객체의 관점에서 프로그램을 개발한다.
객체지향 방법론에서는 분석, 설계, 구현의 전 과정을 객체 중심으로 진행한다. 심지어 데이터를 저장하는 테이블도 따로 설계하지 않고 데이터 객체로 설계한다. 데이터는 결국 데이터베이스에 저장되는데 만일 데이터베이스가 객체행 데이터베이스라면 별다른 변환과정 없이 데이터 객체를 그대로 저장하면 되지만 관계형 데이터베이스를 사용한다면 객체를 관계형 테이블로 변환하는 과정이 필요하다. 이 과정을 객체-관계 간 매핑이라고 한다. 현재 대부분의 회사에서 관계형 데이터베이스를 사용하고 있기 때문에 객체-관계 간 매핑은 필수적인 과정이라고 할 수 있다.
객체지향 방법론은 높은 재사용성과 안정성을 갖고 있다는 단점이 있으나 관계형 데이터베이스로 구성되어 있는 현재 산업계에서 객체-관계 간 매핑 과정이 필수적이기 때문에 활발하게 사용되지는 않는다. 관계형 데이터베이스에서 제공하는 SQL은 풍부한 기능을 가지고 있어 많은 개발자들이 이 분야에서 지식과 노하우를 축적하고 있다. 이 또한 관계형 데이터베이스에서 객체형 데이터베이스로의 이전을 가로막는 장애물이 되고 있다.
많은 프로젝트에서 자바와 같은 객체지향 언어를 사용하기 때문에 프로세스 설계 과정에서는 객체지향 개발 방법론 개념이 많이 사용되고 있으며 데이터 설계 과정에서는 기존의 정보공학 방법론이 많이 사용된다. 프로그램은 객체지향 언어를 사용하고 데이터베이스는 관계형으로 설계한다.
'개발 > 소프트웨어공학' 카테고리의 다른 글
애자일 개발 방법론 - XP (0) | 2020.06.07 |
---|---|
CBD 개발 방법론 (0) | 2020.06.06 |
정보공학 방법론 (0) | 2020.06.05 |
소프트웨어 개발 방법론 (0) | 2020.06.05 |
SOLID - 단일 책임 원칙(Single Responsibility Principle) (0) | 2020.06.05 |