Community

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

← Go back
[Assignment 9] Mission(2) 연습문제 풀이
#pragmatic
2년 전
683

<2022-03-27>

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

✅ 풀이 과정

  • 언어의 직교성이란?

컴퓨터 과학에서 직교성이란 일종의 독립성이나, 결합도 줄이기를 의미한다. 하나를 바꿔도 나머지에 어떤 영향을 주지 않으면 서로 직교한다고 한다. (p55)

  • 함수형 언어가 뭐지?

    프로그램이 상태의 변화 없이 데이터 처리를 수학적 함수 계산으로 취급하고자 하는 프로그래밍 이다.

    함수를 일급 객체로 다루는, 값이나 상태의 변화보다는 함수 자체의 응용을 중요하게 여기는 언어이다.

  • 객체지향 언어에서의 직교성

객체지향 언어에서의 직교성을 위해, 결합도를 줄이기 위해 다형성을 이용한다. 다형성이란, 하나의 객체에 여러가지 타입을 대입 할 수 있다는것을 의미한다. 다형성을 이용하기 위해선 인터페이스(구현, 메서드 재정의, 형 변환)을 이용해야한다.

  • 함수형 언어에서의 직교성

함수형 언어에서는 최소한의 기능 단위들로만 함수를 구현 한 후 , 사용할 때 잘 조합해서 사용하면 직교성을 높일 수 있을 것 같다.(사실 이건 내 추측)

✅ 내 생각

자바 언어를 사용한다 해도, 객체지향을 제대로 이해하지 못하고 코딩한다면 절차 지향으로 코딩을 할 수가 있다. 내가 그랬었다.. 언어가 어떤 패러다임을 지향 한다는 것은, 언어 자체에 내재된 것이 아니라 개발자가 어떤식으로 언어를 사용하느냐에 따라 다른것 같다.

✅ 참고 링크

  • 함수형 프로그래밍이란?

https://www.youtube.com/watch?v=7aEQLvvnQIY

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://borabong.tistory.com/5



💡 책에 있는 해답 요약

객체 지향 언어에서 지원하는 기능들을 잘 이용한다면, 응집성을 높이고 결합도는 낮출 수가 있지만, 클래스가 관심사에 잘 집중하지 않으면 인터페이스가 엉망이 될 수 있다.

함수형 언어는 여러분이 작고 독립된 함수를 많이 만든 다음, 이를 여러가지로 조합하여 문제를 해결하도록 유도한다. 그러나 여기서도 문제가 생길 수 있다. 이러한 함수는 데이터를 변환하는데 한 함수의 결과가 다른함수의 입력이 되는 식이다.