절차지향 프로그래밍, 객체지향 프로그래밍, 관점지향 프로그래밍

Dasole Kwon·2022년 6월 2일
0

항해99

목록 보기
27/47

각자 다른 프로그래밍 방식을 가지고 있지만, 하나만 선택해서 프로그래밍하는 개념이 아니라 상황에 맞게 선택해서 사용이 필요하다고 함

1. 절차지향 프로그래밍 (Procedural Programming)

  1. 컴퓨터가 해야 할 일을 시간의 흐름에 따라 순차적으로 프로그래밍하는 방식
  2. 컴퓨터의 작업 처리 방식과 유사하기 때문에 객체지향 언어를 사용하는 것에 비해 더 빨리 처리되어 시간적으로 유리하지만, 유지보수 및 디버깅이 어려움
  3. 예) 메모를 할 때, 하나의 메모장에 생각나는대로 순차적으로 작성. 대표적인 예로는 C언어.

2. 객체지향 프로그래밍 (Object-Oriented Programming)

  1. 역할별로 클래스를 나누어 프로그래밍 하는 방식
    1. 하나의 사물 (객체) 에 하나의 의미를 부여하는 것처럼 프로그래밍
    2. 핵심 기능을 모듈화하여 하드웨어가 같은 기능을 중복으로 연산하지 않도록 하고, 모듈을 재활용 하기 때문에 하드웨어의 처리양을 획기적으로 줄여줌.
    3. 그러나 처리속도가 절차지향보다 느리고 설계에 많은 시간소요
    4. 예)
      • 뭔가 자를 것이 필요하면 '✂️' 를 떠올림 (class Sciccors)
      • 종이에 적을 게 필요하면 '✏️' 을 떠올림 (class Pen)
      • 클래스 -> TV, 객체 -> 프로그램

3. 관점지향 프로그래밍 (Aspect-Oriented Programming)

  1. 객체지향을 더욱 발전 시키기 위한 개념의 하나. 하나의 소프트웨어가 하나의 거대한 OOP로써 설계, 프로그래밍 되었다면 이것을 각 기능별로 모듈화 해서 분리 시키는 개념.
    1. 관점지향의 핵심은 공통 모듈을 분리시켜 해당 소스 코드가 외부의 다른 클래스에서 존재하는 것.
      -CORE CONCERN(핵심관심): 각 서비스의 핵심 비즈니스 로직
      예: 계좌이체, 입출금, 이자계산
      -Crosscut Concern(횡단관심): 공통 모듈
      예: 보안, 예외처리, 로깅 등

0개의 댓글