본문 바로가기
CS study

Answer the Question (8)

by DaSsom 2023. 7. 28.

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

더보기
- 절차지향 프로그래밍 : 일이 진행되는 순서대로 프로그래밍하는 방법이다. 코드의 가독성이 좋고 컴퓨터의 처리구조와 비슷해 실행 속도가 빠르다. 다만 코드가 순서에 민감하기 때문에 유지보수가 어렵다.

- 객체지향 프로그래밍 : 절차지향 프로그래밍이 유지보수가 어렵다는 단점을 보완하기 위해 등장했다. 실세계의 실체를 프로그래밍에 접목하며 시작되었기 때문에 모든 것을 객체로 취급하고 객체 내부의 기능을 사용해 처리하는 방법이다. 객체 내에 담긴 변수와 함수를 이용하여 처리한다. 

- 함수형 프로그래밍 : 거의 모든 것을 순수 함수로 나누어 문제를 처리하는 기법이다. 작은 문제를 해결하기 위해 함수를 작성하여 가독성을 높이고 유지보수를 용이하게 한다. 

2. 알고리즘에서 '시간복잡도'와 '공간복잡도'란 무엇인가? 그리고 이것들은 왜 중요한가?

더보기
시간복잡도와 공간복잡도는 알고리즘의 성능을 판단하는 지표이다. 

- 시간 복잡도는 특정한 크기의 입력에 대하여 알고리즘의 수행 시간을 분석하고 공간복잡도는 메모리 사용량을 분석한다. 

- 컴퓨터의 성능이 계속해서 개선됨에 따라 메모리 공간이 많아지고 이전보다 공간복잡도의 중요성은 떨어졌으며 시간 복잡도를 더 우선시하여 프로그래밍을 작성한다.

- 시간이 지날수록 프로그램의 규모가 방대해지며 처리해야하는 데이터의 양이 많아지면 알고리즘 간의 효율성 차이는 커질 수 밖에 없기 때문에 알고리즘 성능 분석을 필수적으로 해야하며 이를 알 수 있는 기준이 시/공간 복잡도이기 때문에 중요하다. 

'CS study' 카테고리의 다른 글

디자인 패턴 - 싱글톤 패턴  (0) 2023.08.10
Answer the Question (7)  (0) 2023.07.27
Answer the Question (6)  (0) 2023.07.26
Answer the Question (5)  (0) 2023.07.25
Answer the Question (4)  (0) 2023.07.24