<TIL> 127. Study / 절차지향, 객체지향, 함수형 프로그래밍, 알고리즘 시간복잡도 vs 공간복잡도

YUJIN LEE·2023년 6월 9일
0

개발log

목록 보기
118/149

절차지향 / 객체지향 / 함수형 프로그래밍이란? 차이점?

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

절차지향 프로그래밍은 일련의 절차(함수, 서브루틴)들로 구성됩니다.
프로그램의 흐름은 단계적인 절차에 의해 결정됩니다.
데이터와 해당 데이터를 조작하는 함수 간의 분리가 적습니다.

객체지향 프로그래밍(Object-Oriented Programming, OOP)

객체지향 프로그래밍은 객체들의 집합으로 프로그램 구성
객체는 데이터와 해당 데이터를 조작하는 메서드(함수)의 결합체
객체 간의 상호작용을 중심으로 프로그램 흐름 결정
캡슐화, 상속, 다형성 등의 개념을 활용해 유연하고 재사용 가능한 코드 작성 가능

함수형 프로그래밍(Functional Programming)

함수형 프로그래밍은 함수의 적용과 조합을 통해 프로그램 구성
상태 변경이나 가변 데이터보다는 불변성 강조
부작용을 최소화하고, 순수 함수를 사용해 더 안정적이고 예측 가능한 프로그램 작성
재귀, 고차 함수, 람다식 등의 개념 사용

알고리즘에서 ‘시간복잡도‘와 ‘공간복잡도’란? + 중요성?

시간복잡도(Time Complexity)는 알고리즘이 실행되는 데 걸리는 시간의 측정입니다.
시간복잡도는 입력 크기에 대한 알고리즘 실행 시간의 증가율을 나타냅니다.
주어진 문제를 해결하기 위해 알고리즘이 필요로 하는 연산의 양을 추정합니다.

공간복잡도(Space Complexity)는 알고리즘이 실행되는데 필요한 메모리 공간의 양을 측정합니다.
공간복잡도는 입력 크기에 대한 알고리즘의 메모리 사용량의 증가율을 나타냅니다.

시간복잡도와 공간복잡도는 알고리즘의 효율성을 평가하는데 중요한 역할을 합니다.
알고리즘 선택, 성능 개선, 자원관리 등 다양한 측면에서 중요시합니다.
이들을 고려해 효율적인 알고리즘을 설계하고 개발하는 것이 중요합니다.

profile
인정받는 개발자가 되고싶습니다.

0개의 댓글