본문 바로가기

Spring/Springboot

📝 절차지향 / 객체지향 / 관점지향 프로그래밍 정리

절차적 프로그래밍 (PP; Procedure Programming)

  • procedure(main 함수, 메소드 등)를 이용하여 작성하는 프로그래밍 스타일이다.
  • 순차적인 처리를 중요시 여기며, 프로그램 전체가 유기적으로 연결되도록 한다.
  • 컴퓨터의 처리 구조와 비슷해 실행속도가 빠르지만 확장성이 떨어지며 유지보수가 어렵다.

객체지향 프로그래밍(OOP; Object Oriented Programming)

  • 프로그래밍에 필요한 attribute와 method를 포함한 class를 정의하고, 정의된 class를 통해서 object를 생성하여 object들 간의 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍 방식
  • 유지보수가 보다 수월하지만 설계에 필요한 시간이 크다.

관점지향 프로그래밍(AOP; Aspect Oriented Programming)

  • OOP를 더욱 발전시키기 위한 개념으로서 하나의 소프트웨어가 하나의 거대한 OOP로서 설계, 프로그래밍 되었다면 이것을 각 기능별로 모듈화 해서 분리를 시키는 개념이다.
  • 각각의 OOP에서 공통적인 관심 기능을 처리하는 모듈을 분리해서 개발한 후, 필요한 시점에 자동으로 공통적인 관심 기능이 삽입되도록한다.