:pushpin: 학습목표

  • 절차지향 객체지향 함수형 프로그래밍 특징
  • 03-3 연습 문제 풀기




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

절차지향과 객체지향은 컴파일 시 소스 코드를 어디서부터 읽느냐에 따라 구분됨
서로 반대되는 개념은 아님
절차지향 => 순서 중요 객체지향 => 관계, 조직 중요

:round_pushpin: 절차지향 프로그래밍
소스 코드 위에서 부터 차례대로 읽는 방법
=> 소스 코드의 순서가 중요 & 프로그램 전체 유기적 연결
컴퓨터 처리 구조와 비슷 => 실행속도 빠름
ex. C

장점 단점
실행속도 빠름 모든 요소 유기적 연결 => 사소한 문제 하나만 있어도 전체 돌아가지 않음
실행 순서 정해짐 => 순서가 바뀌면 결과도 바뀔 수 있음

:round_pushpin: 객체지향 프로그래밍
구성요소를 객체라는 단위로 묶어 조합으로 프로그램을 만듦
다수의 객체를 만들고 객체끼리 서로 상호작용하는 방법
ex. C# C++

장점 단점
객체의 역할이 나뉘어 있고 사용하고자 하는 부분에서 각 객체가 따로 작동
=> 하나의 객체가 고장나도 해당 객제를 교체, 수리 하면 됨
=> 유지 보수 용이 & 생산성 좋음
모든 객체의 역할과 기능을 이해해야함
=> 설계의 시간 오래걸림
처리 속도가 절차지향보다 느림
난도 높은 편 (특히 다중상속되는 C++)

| 함수형 프로그래밍

변수 사용을 최소화함 => 스파게티 코드 오류 줄임
프로그래밍 언어가 제공하는 기능들을 사용해서 어떤 변수를 두지 않고 기능을 설계
외부에 따로 상태값을 두지 않고 내부에서 연쇄적으로 기능을 사용해서 결과를 연산
=> 멀티 스레딩이 많이 이루어지는 환경에서 좋음
ex. 스칼라 하스켈 클로저 F# javascript ReactiveX

:100: 미션 인증

image

댓글남기기