[Spring] 절차 vs 객체 vs 관점 지향 프로그래밍

상트리버·2022년 12월 6일
0

Spring 이론

목록 보기
13/23
post-custom-banner

절차 지향 프로그래밍

절차 지향 언어(Procedure Oriented Language)란 프로그램 코드를 순서대로 작성하여 실행하는 언어이다.


절차 지향 프로그래밍 특징

  1. 하나의 큰 기능을 처리하기 위해 작은 단위의 기능들로 나누어 처리하는 Top-Down 방식으로 설계된다.
  2. 비교적 작은 규모의 작업을 수행하는 함수(function)를 생성한다.
  3. 인수(parameter)와 반환값(value)으로 명령을 전달하고 수행한다.
  4. 객체지향 프로그래밍과의 가장 큰 차이점으로 데이터와 함수를 별개로 취급한다.
  5. 특정 기능을 수행하려면 그 일을 해주는 메소드를 직접 호출해야 한다. (vs 객체지향 프로그래밍에서는 특정 기능을 수행하는 메소드를 가진 객체를 만들어서, 그 인스턴스를 이용해 메소드를 호출한다.)

절차 지향 프로그래밍 단점

  1. 유지보수가 어렵다.
  2. 정해진 순서대로 입력을 해야되므로 순서가 바뀌면 결과값을 도출하기 어렵다.
    프로그램을 분석하기 어렵다.
  3. 대형 프로젝트에는 부적합하다

★객체 지향 프로그래밍☆


객체 지향 프로그래밍(OOP)는 컴퓨터 프로그램을 “객체(Object)"들의 모임으로 파악하고자 하는 프로그래밍의 패러다임 중에 하나이다. 각 “객체(Object)" 들은 서로 메시지를 주고 받을 수 있으며 데이터를 처리할 수 있다.

객체 지향 프로그래밍의 특징

  1. 프로그램을 유연하고 변경이 용이하게 만든다.
  2. 프로그램의 개발과 보수를 간편하게 만든다.
  3. 직관적인 코드 분석을 가능하게 한다.
    위의 장점들을 관통하는 객체 지향 프로그래밍의 중요한 특성은 강한 응집력(Strong Cohesion)과 약한 결합력(Weak Coupling)을 지향한다는 점이다.

관점 지향 프로그래밍

관점 지향 프로그래밍(Aspect Oriented Programming)
기능별로 class를 분리했음에도 불구하고 생기는 중복 코드의 단점을 해결하고자 나온 방식, 공톡기능과 핵심부분을 분리하여, 필요할 때에만 공통기능을 핵심 부위에 넣어주는 방식

스프링 Aop의 특징

  1. 스프링에서 AOP 구현은 접근 제어 및 부가기능을 추가하기 위해서 Proxy를 이용한다. 이 때문에 다른 AOP의 기능과 비교해서 매우 제한적인 부분만을 지원한다.
  2. 스프링 내에서 프록시 빈에서만 AOP를 적용 가능하다. 설정 구조 상 다른 XML기반의 AOP에 비해 복잡한 편이다.
  3. 모든 AOP 기능을 제공하는 것이 아닌 스피링IoC(제어의 역전)와 연동하여 엔터프라이즈 애플리케이션에서 가장 흔한 문제에 대한 해결책을 지원하는 것이 목적이다.
post-custom-banner

0개의 댓글