멀티패러다임 프로그래밍 언어의 시대: 객체지향과 함수형을 섞어야할 때!

신석진( Seokjin Shin)·2024년 8월 4일
0

함수형, 객체 지향, 절차지향 패러다임을 효율적으로 섞어서 사용할 필요성에 대한 지각

라이브코딩!? 오호
Tagged Tamplets를 Typescript로 만든다라…?

Tagged Tamplate literals를 만든다는건가?

멀티패러다임과의 관계를 잘 짚어야할 필요가 있어보이넹

키워드: 리스트 프로세싱
이런 언어 패러다임이 있다고??

어쨌든 함수형 + 리스트 프로세싱으로 뭔가를 해보려한다.

@fxTs/core? 여기에 zip이라는 유틸을 가져다 썼는데 이거 토스랑 굉장히 비슷한 일을 하고 있는 것 같당

무슨 작업을 하려는 것인지 몰겠지만 일단 html 뒤에 태그드 탬플릿 리털럴즈를 쓰면서 내가 했던 것과 굉장히 비슷한 시도를 하고 있다.

메모리와 지연평가 등등 굉장히 개념적이고 키워드적인 말들이 많이 나오고 있다.

지연평가는 이터레이터를 사용하는 것을 의미하는 것 같다.
괴장히 큰 원시값(내가 떠올릴 수 있는건 굉장히 긴 문자열 밖에 없긴 하지만) 그 값은 복사가 일어났을 때 굉장히 비용이 비싸질 수 있다. 이럴 때 이터러블 객체들을 순회하면서 함수에 전달하며 연산을 진행하면 이러한 문제를 해결할 수 있다.

HTML 익스케이프를 시켜서 XSS 공격을 막을 수 있다. 근데 어떨때는 이걸 또 안되게 해야한다. 이 문제를 패러다임을 적용하여 풀 수 있을까?

태그드 탬플릿 리터럴 html 전에 클래스에 받은 값들을 넘겨주는 것도 평가지연이라고 부르네? 뭐지?
넘겨받은 객체를 재귀적으로 검사하면서 해당 클래스를 통해서 선언된 값만 익스케이프를 하지 않도록 분기

정리

결과적으론 크게 2가지의 키워드로 정의할 수 있을 것 같다.
함수형과 평가지연
다음부턴 라이브코딩은 나도 같이 쳐보면 좋을 것 같다.

QnA

  • 외부에서 오는 공격이 html 태그드 탬플릿 함수를 탈 일이 있나? 서버사이드에서 랜더링할 때 사용자 요청을 받는다면 모를까…?? 아 약간 그거구나 위지윅 텍스터 에디터에서는 유효하겠다.
  • html 안에서 map을 돌때 reduce를 썼는데 이거 없이도 가능한가?

0개의 댓글