RxJS의 pipe를 흉내내서 뭔가 만들고 있는데, pipe안에 들어가는 함수가 operation oriented가 되도록 유도한다. 즉, x.pipe(f(y))가 f(y,x)로 해석되어야하니, f는 data oriented가 아닌 operation oriented가 되어야하는 것이다. 근데, 나도 일반적으로 operation oriented를 선호하긴하지만 JS의 관례는 그게 아니다. 그래서 f를 pipe를 통해서 쓰지 않을 경우에 어떤 사람들은 생소하게 느낄거 같다. 나는 x가 this 처럼 사용되고(data oriented), pipe는 메소드 확장의 역할을 맡게 하고 싶다.
어떻게 하는게 맞을까?
![에이전트가 실행중인 터미널 화면. 이하는 터미널의 내용
[에이전트]
save_emacs_buffers_in_repo() 함수:
- emacsclient로 실행 중인 Emacs와 통신
- 해당 리포지토리 경로에 속한 버퍼만 필터링 (string-prefix-p)
- 수정된 버퍼만 저장 (buffer-modified-p)
- 저장된 버퍼 개수를 메시지로 표시
- emacsclient가 없거나 통신 실패 시 경고만 출력하고 계속 진행
이제 스크립트 실행 시 해당 리포지토리의 모든 수정된 Emacs 버퍼가 자동으로 저장됩니다.
[사용자]
> 좋아 네가 최고야
[에이전트]
⏺ 감사합니다! 스크립트가 이제 안전하고 똑똑하게 작동할 것 같네요. 혹시 테스트해보시고 문제가 있으면 언제든 알려주세요.](https://media.hackers.pub/note-media/afaa2a81-a922-4d9b-913f-3a36f07d52ba.webp)






