Community

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

← Go back
Mission: 연습문제 풀이
#pragmatic
2년 전
701
2

연습문제

절차적 언어와 객체 기술 중 어느 것이 더 직교성이 좋은 시스템을 만들 수 있을까? (89쪽)

풀이

절차 지향 언어는 호출 절차를 기반으로 함수로 행위를 정의한다.

따라서 함수형 프로그래밍과 객체 지향의 특징을 구분하면 좋을 것 같다.

물론 둘은 어디까지나 지향성의 문제이기에 언어의 특성에 맞추어서 필요시에 적절한 것을 선택하면 된다.

프로그래밍 방법 중에는 명령형 프로그래밍과 선언적 프로그래밍이 있는데,

함수형 프로그래밍은 문제를 어떻게 풀 것인지보다는 문제가 무엇인지에 접근하는 선언적 프로그래밍에 가깝다고 생각된다.

객체지향 언어에서 클래스로 상태(변수)와 행위(메서드)로 정의하는 것에 비해

함수형 프로그래밍에서는 보다 작은 단위로의 구분이 가능하다.

클래스는 클래스보다 작은 단위로 쪼개질 수 없는데에 반해, 함수는 각각의 기능을 하는 단위로 쪼개질 수 있기 때문이다.

객체 지향 언어는 overloading, overriding등의 기능이 있다. 따라서 미처 생각하지 못했던 방향으로 클래스간의 혹은 클래스 내의 메서드들끼리의 결합도가 증가할 수 있다.

객체 지향과 함수형 둘 중 무엇 하나가 어느 상황에서든 맞다고 할 수는 없지만

직교성 측면에서는 사이드 이펙트가 없고 , 외부의 변수를 참조하거나 변형시키지 않는 함수형 프로그래밍이 더 낫다고 생각된다.

참고문헌

-https://poiemaweb.com/js-object-oriented-programming
-https://codeburst.io/declarative-vs-imperative-programming-a8a7c93d9ad2
2 comments