[230301] 절차지향 / 객체지향 / 함수형 프로그래밍

뜨개발자·2023년 3월 1일
0

TIL

목록 보기
54/75

절차지향 프로그래밍?

말 그대로 '절차'를 중심으로 하는 프로그래밍 방법
일이 진행되는 순서대로 코드를 작성하면 됨

  • 장점
    코드가 읽히는대로 실행되기 때문에 가독성이 좋을 수 있음
    컴퓨터의 처리구조와 비슷하기 때문에 실행 속도가 빠름

  • 단점
    코드끼리의 의존성이 높음
    앞 순서가 일어나면 뒷 순서가 반드시 발생하기 때문
    앞쪽 내용이 변경되면 뒷쪽 내용이 민감하게 반응하기 쉬워 유지보수가 어려움

객체지향 프로그래밍?

서로 연관이 있는 부분끼리 객체로 묶어 이 객체들의 결합으로 프로그래밍하는 방법
객체끼리는 서로 분리되어 있다는 특징

  • 장점
    같은 기능이 필요한 경우에 같은 객체를 계속 사용할 수 있어 코드의 재사용성이 높음
    객체끼리 유기적으로 연결되어 있으나 서로 분리되어 있어 유지보수가 쉬움

  • 단점
    절차지향보다 다소 느린 처리속도

  • 특징
    1) 추상화 : 공통적인 부분들을 모아둔 것
    2) 캡슐화 : 외부에 내부 데이터나 로직을 노출시키지 않는 것
    3) 상속성 : 부모 객체의 특징을 자식 객체가 이어받는 것
    4) 다형성 : 같은 이름의 함수가 전달받는 인자에 따라 다른 기능을 수행하는 것

함수형 프로그래밍?

순수 함수를 사용하여 상태 제어보다 처리 속도에 초점을 둔 방법
실행 순서를 정의하지 않기 때문에 비절차형 언어라고 하기도 함

  • 순수 함수?
    동일한 입력값에 항상 동일한 반환값을 내는 함수
    외부에 영향을 받지 않고, 함수 실행이 프로그램에 영향을 주지 않음
    비상태, 불변성 -> 전달받은 데이터를 변경하지 않고, 새로운 오브젝트를 만들어서 결과로 전달해야 함
  • 장점
    함수의 동작부가 간결해 코드 가독성이 높아짐
    테스트가 쉬움

  • 단점
    외부 혹은 내부 데이터의 상태 조작이 불가능

함수형과 객체지향의 차이

  1. 함수형 프로그래밍은 함수 자체가 일급 객체, 객체지향 프로그래밍에서는 클래스나 객체 등이 일급 객체

  2. 객체지향 프로그램은 상호작용하는 객체들의 집합으로 프로그램이 구성되지만, 함수형 프로그래밍에서는 상태값이 없는 함수들의 연속으로 구성

profile
뜨개질하는 개발자

0개의 댓글