1. 객체란 기존의 방식인 변수 따로, 함수 따로와 같이 분산적이고 통일성 없는 추상화 과정을 통합하여 문제 해결 대상을 좀더 모듈화 하기 쉽게 도와주는 도구 에 불과하며, 객체지향 프로그래밍은 객체의 디자인을 한 뒤에 이들의 데이터 흐름을 짜고 진행 시나리오를 설계해나가는 방식의 개발 방법론이다. 그에 반해 절차지향 프로그래밍은 프로그램의 순서와 흐름을 먼저 세우고, 필요한 자료구조와 함수들을 설계하는 방식이다. 플로우 차트를 먼쩌 짜느냐 데이터 모델링을 먼저 하는냐가 가장 큰 차이점이라고 생각하면 된다.
2. 함수형 프로그래밍은 거의 모든 것을 순수함수로 나누어 문제를 해결하는 기법으로, 작은 문제를 해결하기 위한 함수를 작성하여 가독성을 높이고 유지보수를 용이하게 해준다. 유명한 이론으로는 클린코드가 있다. 대입문을 사용하지 않는 프로그래밍이며 작은 문제를 해결하기 위한 함수를 작성한다.
특징은 변수의 값이 변경되거나 자료구조를 제자리에서 수정하는 등의 부수효과를 제거한 순수함수들을 사용한다는 점이다. 함수의 실행이 외부에 영향을 끼치지 않기 때문에, 함수 자체가 독립적이도 쓰레드의 안전성을 보장받으며, 병렬처리를 동기화 없이 진행할 수 있다. 함수형 프로그래밍에서 함수는 1급객체로 취급받기 때문에 함수를 파라미터로 넘기거나 반환값으로 사용할 수 있는 등의 작업이 가능하다. 마지막으로 동일한 인자에 대해 항상 동일한 결과를 반환해야 하는 참조투명성을 특징으로 가지는데, 이를 통해 기존의 값은 변경되지 않고 유지된다.
'Sparta > 면접준비' 카테고리의 다른 글
MVC 패턴 (0) | 2024.04.30 |
---|---|
해시테이블과 이진 검색트리의 장단점 비교 (0) | 2024.04.24 |
동기 비동기 차이, Deadlock (0) | 2024.04.23 |
그래프와 트리의 차이점/ 이진트리, 힙, 이진검색트리 설명 (0) | 2024.04.19 |
정규화, 무결성에 대해 알아보자 (0) | 2024.04.18 |