절차지향 / 객체지향 / 함수형 프로그래밍이란 무엇이고 차이점은 무엇인가?

2023. 4. 29. 00:11·스파르타 기술면접

절차지향 프로그래밍

 💡 명령어를 순차적으로 실행하는 방식으로, 순서대로 실행되는 코드 블록을 작성하여 문제를 해결합니다.

순서대로???라기보다는 다른 워딩을 좀 더 찾아보자

  • 프로시저와 함수를 중심으로 구성
  • C언어나 Pascal 등이 이에 해당합니다.
  • 절차지향 프로그래밍의 장점으로는 구현이 쉽고 이해하기 쉽다는 점이 있습니다. 또한 대부분의 컴퓨터에서 실행 가능하며, 속도가 빠른 것이 특징입니다. 하지만 대규모 프로젝트에서는 유지보수가 어려워지고 코드의 재사용성이 떨어지는 단점이 있습니다. 또한 데이터와 함수가 분리되어 있어서 코드의 가독성이 떨어질 수 있습니다.

 

객체지향 프로그래밍

 💡 객체 간의 상호작용을 통해 프로그램을 구성하며, 이를 통해 모듈화, 재사용성, 유지보수성 등을 높일 수 있습니다.
  • 클래스, 상속, 캡슐화, 다형성 등의 개념이 사용
  • 외부에서는 객체의 인터페이스만을 사용하여 상호작용할 수 있도록 하는 것을 말합니다.
  • Java, Python, C++ 등이 이에 해당합니다.

 

함수형 프로그래밍

💡 함수의 조합으로 문제를 해결하는 방식으로, 입력값에 대한 출력값만을 반환하는 순수 함수를 작성합니다.
  • 상태 변화를 최소화하고 복잡한 문제를 간결하게 표현
  • Lisp, Haskell, Scala 등이 이에 해당합니다.
  • 함수형 프로그래밍에서는 상태를 변경하는 것을 지양합니다. 따라서 변수나 객체의 상태를 변경하는 대신에 새로운 값을 반환하는 방식으로 프로그래밍을 합니다.
    1. 부작용을 제거할 수 있어서 코드의 안정성을 높일 수 있습니다.
    2. 코드의 가독성이 높아집니다.
    3. 동시성 처리가 용이합니다.

'스파르타 기술면접' 카테고리의 다른 글

Stack과 Queue 그리고 Array와 Linked List 자료구조  (0) 2023.04.25
프로세스와 스레드  (0) 2023.04.17
List / Set / MAp, HashMap  (0) 2023.04.16
Filter / Interceptor / AOP  (0) 2023.04.11
DI의 방식 중 필드 vs 생성자 주입 방식  (0) 2023.04.11
'스파르타 기술면접' 카테고리의 다른 글
  • Stack과 Queue 그리고 Array와 Linked List 자료구조
  • 프로세스와 스레드
  • List / Set / MAp, HashMap
  • Filter / Interceptor / AOP
yeah구리
yeah구리
백엔드를 공부하는 초심자입니다.
  • yeah구리
    개발일지_헤맨만큼 내땅이다
    yeah구리
  • 전체
    오늘
    어제
    • 분류 전체보기 (114)
      • 스파르타 부트캠프(spring) (75)
      • 스파르타 기술면접 (10)
      • 코딩연습 (0)
      • 항해 (10)
      • 개발일지 (4)
        • 개인 회고 (1)
        • 개발로그 (실무) (2)
      • 공부노트 (0)
      • 코딩테스트 (0)
        • 프로그래머스 (0)
        • 백준 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    비전공개발자 #개발로그 #커리어
    X(Twitter) API #캐싱 #트러블슈팅 #개발
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
yeah구리
절차지향 / 객체지향 / 함수형 프로그래밍이란 무엇이고 차이점은 무엇인가?
상단으로

티스토리툴바