프로그래밍 패러다임

Grace Goh·2023년 1월 26일
0

Computer Science

목록 보기
2/2

: 프로그래밍 관점, 방법론


  1. 선언형
    a. 함수형

  2. 명령형
    a. 객체지향
    b. 절차지향



I. 선언형

a. 함수형

프로그램은 함수로 이루어진 것이다.
‘무엇을’ 풀어내는지에 집중하는 패러다임
‘순수 함수’들을 블록처럼 쌓아 로직을 구현한다.
‘고차 함수’를 통해 재사용성을 높일 수 있다.
Python에서, 함수가 ‘일급 객체’이다.
(커링, 불변성 등)

  • 순수 함수 : output이 input에만 의존한다. f(x) = y
  • 고차 함수 : 함수가 함수를 값처럼 매개변수로 받아 로직을 생성할 수 있다.
  • 일급 객체 : 고차 함수를 쓰려면 해당 언어에 일급 객체라는 특징이 있어야 한다.
    • 변수나 메서드에 함수를 할당할 수 있다.
    • 함수 안에 함수를 매개변수로 담을 수 있다.
    • 함수가 함수를 반환할 수 있다.

II. 명령형

a. 객체지향 (OOP)

프로그램의 상호작용을 객체들의 집합으로 표현한다.
데이터를 객체로 취급하여 객체 내부에 선언된 메서드를 활용하는 방식이다.
설계에 많은 시간이 소요되며 처리 속도가 상대적으로 느리다.

특징

  • 추상화 : 구체적인 시스템으로부터 핵심 개념 또는 기능을 간추린 것
  • 캡슐화 : 객체의 메서드와 속성attribute을 하나로 묶고 일부를 외부에 감추어 은닉하는 것
  • 상속성 : 상위 클래스의 특성을 하위 클래스가 물려 받아 재사용하거나 추가, 확장, 유지보수 하는 것
  • 다형성 (polymorphism) : 하나의 메서드나 클래스가 다양한 방법으로 동작하는 것
    • 오버로딩 overloading : 같은 이름을 가진 메서드를 여러 개 두는 것
    • 오버라이딩 overriding : 주로 메서드 오버라이딩. 상위 클래스로부터 상속 받은 메서드를 하위 클래스가 재정의하는 것
      참고 : https://snepbnt.tistory.com/123

SOLID 설계 원칙

  • Single Responsibility Principle 단일 책임 원칙
    모든 클래스는 각각 하나의 책임만 가져야 한다.
  • Open Closed Principle 개방-폐쇄 원칙
    유지보수할 때 기존의 코드를 수정하지 않으면서 확장할 수 있어야 한다.
  • Liscov Substitution Principle 리스코프 치환 원칙
    프로그램의 객체는 프로그램의 정확성을 깨뜨리지 않으면서 하위 타입의 인스턴스로 바꿀 수 있어야 한다.
    부모 객체에 자식 객체를 넣어도 시스템이 문제 없이 돌아가게 만드는 것.
    참고 : https://velog.io/@kimsehwan96/파이썬-인터페이스-분리-원칙
  • Interface Segregation Principle 인터페이스 분리 원칙
    하나의 일반적인 인터페이스보다 구체적인 여러 개의 인터페이스를 만들어야 한다.
  • Dependency Inversion Principle 의존 역전 원칙
    자신보다 변하기 쉬운 것에 의존하던 것을 상위 클래스를 두어 변하기 쉬운 것의 변화에 영향 받지 않게 하는 원칙.
profile
Español, Inglés, Coreano y Python

0개의 댓글