- 절차지향 / 객체지향 / 함수형 프로그래밍이란 무엇이고 차이점은 무엇인가?
절차지향, 객체지향, 함수형 프로그래밍은 모두 프로그래밍 패러다임으로, 각각의 특징과 방식으로 문제를 해결하고 코드를 구성합니다.
- 절차지향 프로그래밍 (Procedural Programming)
- 명령어들의 집합으로 구성된 순차적인 절차로 문제를 해결하는 프로그래밍 방법입니다.
- 프로그램의 실행 순서가 중요하며, 데이터와 처리를 별도로 구분하여 설계합니다.
- 프로그램의 규모가 커지면 유지보수가 어려워질 수 있습니다.
- 객체지향 프로그래밍 (Object-Oriented Programming)
- 객체와 그 객체들 간의 상호작용으로 문제를 해결하는 프로그래밍 방법입니다.
- 데이터와 처리를 하나의 객체로 묶어 관리하며, 객체 간의 상호작용을 통해 문제를 해결합니다.
- 코드의 재사용성과 유지보수성이 높으며, 프로그램의 확장성과 대규모 프로젝트에서 효율적입니다.
- 함수형 프로그래밍 (Functional Programming)
- 함수를 이용하여 문제를 해결하는 프로그래밍 방법입니다.
- 상태 변화를 줄이고 부작용을 최소화하여 오류를 줄입니다.
- 병렬 처리가 용이하며, 코드의 재사용성과 유지보수성이 높습니다.
각각의 프로그래밍 방법은 데이터와 처리를 다루는 방식이 다르며, 장단점이 있습니다. 절차지향 프로그래밍은 순차적인 처리에 강점이 있고, 객체지향 프로그래밍은 유연한 코드 작성과 재사용성, 유지보수성에 강점이 있습니다. 함수형 프로그래밍은 코드의 안정성과 병렬 처리에 강점이 있습니다.
- 알고리즘에서 ‘시간복잡도‘와 ‘공간복잡도’란 무엇인가? 그리고 이것들은 왜 중요한가?
시간복잡도는 특정 알고리즘이 어떤 문제를 해결하는데 걸리는 시간 분석을 뜻하며, 공간복잡도는 특정 알고리즘이 어떤 문제를 해결하는데 사용하는 메모리의 사용량의 분석을 뜻합니다.
시간복잡도와 공간복잡도는 반비레적인 특성이 있으며, 최근 컴퓨터 성능의 향상으로 공간복잡도보다 시간복잡도가 우선시되며 알고리즘 역시 시간복잡도가 중심이 됩니다.
하지만 시간 복잡도가 낮다고 해서 언제나 더 빠르게 동작하는 것은 아니며, 입력의 크기가 작을 때는 시간 복잡도가 높은 알고리즘이 더 빠르게 동작할 수도 있습니다.
시간복잡도와 공간복잡도는 알고리즘의 성능을 분석하고 비교하는 데에 중요한 지표입니다. 시간복잡도가 낮은 알고리즘은 처리 시간이 짧기 때문에 더 빠르게 결과를 얻을 수 있으며, 공간복잡도가 낮은 알고리즘은 메모리 사용량을 줄일 수 있기 때문에 대용량 데이터 처리에 유리합니다.
'발표' 카테고리의 다른 글
면접 스터디(병렬 프로그래밍) (0) | 2023.03.03 |
---|---|
면접 스터디(오버로딩, 오버라이딩, RDB, NoSQL) (0) | 2023.03.02 |
면접 스터디(웹서버, WAS, Stack, Queue, Array, Linked List) (0) | 2023.02.28 |
면접 스터디(트랜잭션, TCP와 UDP) (0) | 2023.02.27 |
면접 스터디(Parameter, Argument, 프로세스, 스레드) (0) | 2023.02.24 |