지금 하고 있는 공부 중 하나인 '함수형 프로그래밍'에 대한 강좌를 듣고 난 생각에 대한 정리이다.
.
.
.
글을 작성하기 앞서 내가 이해하고 있는 개념에 대해 간단히 정리한다.
함수형 프로그래밍이란
평가, 일급, 고차 함수로 구성되어있고 상황에 맞는 유형의 함수를 사용하여 프로그래밍을 한다.
객체지향 프로그래밍이란
클래스 혹은 메소드 단위로 나눠서 (상속, 추상, 캡슐, 다형성)을 사용하여 프로그래밍을 한다.
함수형에 대한 배움
함수형 프로그래밍에 대한 강의를 듣고 난 이후로, 내가 여태까지 노드로 구현했던 코드가 부끄러워졌다.
스크립트로 만들어진 런타임의 장점을 전 - 혀 사용하지 못했다.
나의 경우 강의를 듣기 전 '함수형 프로그래밍을 한다' 라고 하면
1. 화살표 함수
const func = () => {return 'a'};
2. 변수에 함수 할당
const func = func();
함수형? 위의 2가지 방법으로 그냥 잘 선언하고 사용하면 되는 거 아님? ⬅ 이 정도로만 이해하고 사용해 왔다.
물론 위 예시로 사용하는것도 맞지만,
* 함수를 결과값으로 return 한다던가
* 함수의 인자값으로 함수를 넘겨준다던가
* ... 을 사용한 전개 연산자를 사용한다던가
* 변수 선언시 [e, ...a]와 같은 구조 분해를 사용한다던가
하는 것이 함수형 프로그래밍 이라는 것을 알게 되었다.
배움, 그리고..
변수에 담을 값을 정수나 실수, 문자형 (혹은 그 외 등등)
으로만 사용했었던 기존 방식과는 다른 방식에 쇼킹을 받았다.
(자바를 사용해서 개발을 해온 개발자라면 함수형 프로그래밍은 굉장히 신선할 것이다...)
그리고 이러한 "함수형 프로그래밍의 방식"을 사용함으로 인해
프로그램의 구조를 견고하게 만들 수 있고,
5줄 10줄씩 썼던 코드를 단숨에 2줄, 3줄로 줄일 수가 있다. (코드가 간단해진다! but 자세히 들여다봐야 알 수 있음)
객체지향과 사용한다면?
나는 함수형도 알고 있고, 객체지향도 알고 있다.
그렇다면, 이 두가지를 같이 사용한다면 어떨까?
물론 언어마다 갖고 있는 장점과 특징을 살려 방법을 선택하는 것이 맞다.
하지만 단점을 서로의 방법으로 보완해줄 수 있다면
적절하게 조합해서 사용하는 것도 좋지 않을까 하는 생각이 든다.
그래서 앞으로
나는 좀 더 함수형과 객체지향에 대해 공부를 하고
이 두가지를 적절히 조합하는 시도를 해보려고 한다.
아직 경력2년에 부족한 점이 많고,
내 방법이 잘못된것일 수도 있지만
그래도 시도해 보려고 한다.
그러니 앞으로 함수형과 객체지향에 대한 고찰을 꾸준히 올려보도록 하겠다.
'일일일 > 끄적끄적✍' 카테고리의 다른 글
개발자의 정리방법 2 (0) | 2022.01.22 |
---|---|
개발자의 정리방법 1 (0) | 2022.01.22 |
인프런 기술과제 결과.. (0) | 2022.01.04 |
21년을 돌아보며... (2) | 2021.12.31 |
serverless DB, 플래닛 스케일 (0) | 2021.12.26 |
댓글