Community

개발자 99% 커뮤니티에서 수다 떨어요!

← Go back
<Mission2 문제4
#pragmatic
2년 전
645

실용주의 프로그래머 연습문제2

객체 지향언어와 함수형 언어의 직교성은 어떻게 다를까? 이런 차이가 언어 자체에 내재된 것일까 아니면 사람들이 언어를 사용하는 방법이 다른 것일까? 

객체지향언어와 함수형언어는 프로그래밍 패러다임의 두 가지 다른 방법이라고 할 수 있다. 객체지향언어는 객체를 중심으로 데이터와 행위를 정의하여 프로그래밍을 하는 방식이고, 함수형언어는 함수를 중심으로 프로그래밍이 이뤄진다. 

객체지향언어에서 직교성은 단일책임원칙의 설계하에 응집도가 높은 코드를 구현한다면 결합도를 줄일 수 있다. 그러나 객체 지향언어의 주요한 기법인, 상속이나 예외처리, 다른 객체의 참조 등은 하나의 코드가 아닌 다른 코드를 참조하고 하나의 코드가 변경이 되면 참조하고 있는 코드에 영향을 끼친다는 점에서 결합도가 높아질 수 있다. 

함수형언어는 함수 중심의 프로그래밍으로, 입력값을 가지고 출력값을 산출하기에, 외부 영향없이 출력을 계산하지만, 만약 함수의 결과값을 입력으로 받는 함수의 경우, 함수의 입력값이나 출력값의 자료형이나, 반환형이 바뀌게 된다면 영향을 받을 수 밖에 없다.  

프로그래밍 언어는 각 패러다임에 맞게 발전되고 있기 때문에 각 언어 자체에 내재되어 있다기 보다는, 각 패러다임에 더 편리하게 발전한 언어를 선택하고, 기법이 공유되면서 차이가 생긴 것이라고 생각한다. 

 

 


 

참고자료 출처

 실용주의 프로그래머  p55, 60

(https://ko.wikipedia.org/wiki/%ED%95%A8%EC%88%98%ED%98%95_%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D)

https://ko.wikipedia.org/wiki/%EA%B0%9D%EC%B2%B4_%EC%A7%80%ED%96%A5_%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D?tableofcontents=1