Q. 알고리즘에서 '시간복잡도'와 '공간복잡도'란 무엇인가? 그리고 이것들은 왜 중요한가?
특정 알고리즘이 어떤 문제를 해결하는데 걸리는 시간을 의미한다. 같은 결과를 갖는 프로그래밍 소스도 작성 방법에 따라 걸리는 시간이 달라진다.
작성한 프로그램이 얼마나 많은 메모리를 차지 하느냐를 분석하는 방법을 의미한다.
최근 대용량 시스템이 보편화되면서, 공간복잡도 보다는 시간 복잡도가 우선이다.
시간복잡도와 공간복잡도를 통해 원하는 데이터를 빠르고 효율적으로 찾을 수 있기 때문에 중요하다.
Q. 절차지향/객체지향/함수형 프로그래밍이란 무엇이고 차이점은 무엇인가?
물이 위에서 아래로 흐르는 것처럼 순차적인 처리가 중요시되고, 프로그램 전체가 유기적으로 연결되도록 마드는 프로그래밍 기법
특징
- 모든 데이터를 객체(Object)로 취급하고, 객체가 처리 요청 받았을 때, 객체 내부에 있는 기능을 사용해 처리하는 방법
- 데이터와 절차를 하나의 덩어리로 묶어서 생각하게 된다.
특징
- "순수함수"를 사용해, 상태를 제어하기 보다는 빨리 처리하는 데에 초점을 둔 방법
- 실행 순서를 지정할 필요가 없기 때문에 비절차형 언어라고도 함
특징