-
[Spring] 객체지향이란?Framework/Spring 2021. 7. 15. 00:06
객체지향의 등장
- 객체지향 이전에는 C언어처럼 실행하고자 하는 순서대로 명령어를 입력해서 실행되는 "절차 지향"이 주를 이루었다.
=> 이와 같은 코딩하는 언어들을 "절차지향 언어"라고 지칭한다. - 이 당시에는 프로그램의 단위가 크지 않았고, 대체적으로 간단한 로직을 순차적으로 처리하여 결과를 얻는데 그쳤지만, 컴퓨터의 발전과 이로 인한 프로그램의 복잡도가 증가하며 이에 들어가는 유지보수, 개발기간등 다양한 방면에서 비효율이 발생하였다.
- 위의 비효울적인 부분을 개선하고자 "효과적인 개발방식"을 채택하게 되었고 객체지향의 특성인 추상화, 상속, 은닉, 재사용, 인터페이스등 여러 곳에서 객체지향으로 개발을 시작하였다.
- 객체지향이란 현실에 존재하는 사물을 있는 그대로 모델링하여, 이들의 행위와 속성을 정의하고 절차적이 아닌 객체가 중심이 되어 실제 사물이 동작하는 방식으로 설계하기 시작하였다.
=> 사물은 객체라고 부르며, 해당 사물이 하는 행위는 메소드 해당 사물이 가지고 있는 속성을 변수라고 정의한다.
객체 설계
- 자동차
=>속성: 자동차 이름, 자동차 번호, 등록년월, 모델명..
=>행위: 주행거리, 연비계산, 번호교체, 등록증갱신 - 계정
=>속성: 아이디, 패스워드, 이메일, 전화번호..
=>행위: 계정등록, 계정삭제, 비밀번호변경.. - 객체의 3가지 요소(객체의 상태, 객체의 책임, 객체의 유일성)
- 상태 유지: 객체는 상태 정보를 저장하고, 유지되어져야하며 이러한 속성은 변수로 정의되어져야한다. 이러한 속성값이 바뀜으로 인해 객체의 상태가 변경될 수 있어야한다.
- 기능 제공: 메소드를 통해 기능을 제공해야하고, 외부로 부터 직접 속성에 접근하여 변경하는 것이 아닌 객체가 제공하는 메서드로 기능이 제공되어져야 한다.
- 고유 식별자 제공: 각각의 객체는 고유한 식별자를 가져야 한다.
물리 객체와 개념 객체
- 물리 객체
=> 물리적 객체는 실제로 사물이 존재하며, 이를 클래스로 정의한 객체를 의미한다.
=> Ex) 자동차 렌탈 시스템: 자동차, 고객, 직원, 사업장... - 개념 객체
=> 웹 시스템에서 Service에 해당되며, Business logic을 처리하는 부분을 의미한다.
=> Business logic에서는 여러 객체를 서로 상호작용하도록 하며 객체가 제공하는 오퍼레이션 메소드를 통하여 객체의 속성을 변경 시킨다.
'Framework > Spring' 카테고리의 다른 글
[Spring/디자인패턴] 어댑터 패턴 (0) 2021.07.18 [Spring/디자인패턴] 싱글톤 패턴 (0) 2021.07.18 [Spring/디자인패턴] 디자인패턴 (0) 2021.07.17 [Spring] 객체지향 설계 5원칙 SOLID (0) 2021.07.17 [Spring] 객체지향 4가지 (0) 2021.07.16 - 객체지향 이전에는 C언어처럼 실행하고자 하는 순서대로 명령어를 입력해서 실행되는 "절차 지향"이 주를 이루었다.