[지난 이야기]



거대한 콜백 똥이 발생했다


청소 의뢰가 들어왔지만 그냥 런했다 


그날 저녁은 유난히 더웠다 장어가 먹고싶다


-----------------


오늘은 똥만치우고 아무고토 안하고 놀았다


그래도 똥은 치웠다 개굳




콜백이 깊은 코드는 자연스럽게 가장 깊은 곳에 핵심 로직이 위치하고, 외부에 있는 코드는 로직에 필요한 값에 대한 클로저를 만드는 모양이 된다


때문에 이 클로저만 드러내서 핵심 로직을 하나의 함수로 분리할 수 있다, 캡쳐링이 되는 언어에서는 밥먹듯이 하는 짓거리다



위 처럼 코드를 두갈래로 찢어 발긴다


하지만 위의 코드는 콜백문제 자체를 해결하고 있지는 못하다




위 코드 자체는 지금은 큰 문제가 되진 않지만 앞으로 빠르게 기능을 추가할 부분이라 개선이 필요하다


기능이 하나 추가될 때 마다 적절한 위치에 콜백을 위치시켜야 한다는 말도안되는 상황이 발생하기 때문이다


이 언어같은 똥은 소괄호 중괄호 꺾세를 다쓰기 때문에 스까지면 골때린다





아무튼 기능이 확장될 때 마다 콜백을 만들어야 한다는점이 가까운 미래에 큰 좆됨을 보장한다


최대한 콜백의 중첩을 방지해야한다


그래서 다음과 같이 동작하면 어떨까 생각했다



존나 좋은것 같다 이대로 가면 될것같다




구현을 어케할지 잠깐 생각해보자 컴포넌트를 이용해서 컴포넌트를 생성하니까 HOC에 해당된다


그러니까 그냥 적당히 함수 합성하면 끝나는 문제다


contextA가 가장 바깥쪽에, contextC가 로직에 가까운 구조로 컴포넌트를 감싸면 될것같다



그럼 젖절한 운영과 컨트롤로 함수를 작성할 수 이따


어차피 똥치우는 코드니까 나도 똥쌀꺼다


타입스크립트지만 자바스크립트처럼 사용해보자 타입은 호출하는 쪽에서 알아서 하셈 ㅅㄱ





이 아이디어는 사실 새로운것도 아니다 백앤드에서 미들웨어를 처리하는 방법을 생각해보자


express 미들웨어를 합성하는 방식과 render의 호출과 상당히 유사하다 expres를 몰라도 redux좀 만져본 게이들은 먼지 알거다


결국 코드는 남이쓴거 줒어먹기만 해도 평타는 친다는 것이다 땔감 존나좋아




존나 이런느낌으로 코드 뿌려놓고



적당히 줒어서 뭉쳐준다 그럼 나머진 다른 땔감들이 해주실 것이다


덕분에 나는 더 많은 시간을 CSS와 보낼 수 있게 된다







한줄요약) 콜백 똥문제를 해결했다



코딩이야기) 일본인 여자아이