처음으로 작성하는 세미나 후기다. 열심히 달려보자고 다짐했던 올해 초봄 이후로는 사실 스프링캠프 2017가 첫 세미나였지만, 깃헙의 TIL 저장소에 올려둔 당시의 기록은 포스팅으로 남기기에 너무나 파편적인 글이라; 다녀온대로 바로 포스팅으로 남기지도 못해 모처럼 주말에, 자비로 참석했던 스프링캠프의 기억은 결국 대부분이 휘발성으로 사라지고 말았다. 사내의 다소 경직된 개발 문화와 함께 스프링에 대해 약간 반감이 가지고 있던 터라 건방지게도 다름 아닌 스프링캠프였기 때문에 별다른 기대를 하지 않고 참석했는데, 의외로 즐겁게 세션을 들었던 기억 - 이일민 님의 Java 1.8 비동기 프로그래밍 세션, 이건희 님의 비동기 어플리케이션 모니터링 세션 - 이 남아있다.

재미있게도 유인동 님의 이번 세미나도 당시 스프링캠프에 참석 할 때와 비슷한 정도의 기대로 참석했다. 적어도 세미나가 시작하고 오프닝이 진행되는 그 순간까지도 그랬던 것 같다. 개인 프로젝트에 시간을 쏟으며 자바스크립트 코드를 나름의 고민과 함께 열심히 쏟아내고 있기도 하고 filter, reduce 등의 배열 기반 함수도 한창 쓰며 (아주 엄청나게 약간) 으스대고 있었던 것이 근거없는 자신감의 이유였던 것 같다. *부끄* 실제로 유인동 님도 for문으로 작성되는 매우 일반적인 코드를 쳐보는 걸로 강연을 시작하셨으니까. 그 순간까지만 해도 건방지게도 ‘역시 배열 메서드에 대한 소개 정도일려나?’ 라고만 생각하고 있었다.

하지만 ‘함수형 프로그래밍을 해야하는 이유’에 대한 짤막한 설명 후 본격적으로 시작된 라이브 코딩부터 빠르게 이런 생각을 접어야했다. filter, reduce 등이 함수형 프로그래밍 기반이 아니라고 생각하는 이유처럼 원래 인사이트를 얻고자 기대했던 오롯이 개념적인 부분도 물론 인상적이었지만, 앞서 거론한 배열 기반 함수를 함수형 프로그래밍 스타일로 하나하나 만드는 과정도 상당히 인상 깊었으며 유인동 님의 설명 자체도 함수형 프로그래밍 자체에 대한 깊은 고찰과 애정이 묻어나는 것 같아 정말 좋았다. 밥 먹듯이 컬렉션 기반 함수들을 쓰는 입장에서 자바스크립트 스펙에서, 그것도 꽤 오래 전부터 이들이 지원되는데도 Underscore.js 같은 라이브러리들이 인기있는 이유가 무엇인지 한 번도 고민해보지 않았던 내가 부끄러워지는 시간이기도 했다.

사실 강연이 시작되고 얼마까지는 (코드를 포함한) 강연의 내용을 힘 닿는데까지 기록하고 정리까지 포함해서 포스팅을 하려고 했지만, 컬렉션 중심 프로그래밍 섹션부터는 코드와 함께 개념적인 부분을 강연자 분과 같은 속도로 따라갈 수가 없어 포기했다. 상세한 강연의 내용은 사고의 흐름 수준의 기록 정도만 남겨놓는 걸로 만족하려고 한다. 내용에 대해서는 출간 예정인 유인동 님의 함수와 JS - 함수형 자바스크립트 프로그래밍을 참고하는게 좋을 것 같다. 앞으로의 강연이나 세미나 후기도 이렇게 내용과 느낌의 기록을 분리하는게 맞는 것 같고.

스프링캠프 때도 비슷하게 느꼈지만, 기술적인 노하우나 트렌드에 더해서 개인적으로 이런 모임에서 가장 크게 얻어가는 부분은 열정에 대한 자극이라는 생각을 한다. 인사도 나누지 않는 일면부지의 사람들이지만, 함께 모여 공통된 관심사에 집중하는 이 순간 만큼은 평소 얻을 수 없었던 긴장감을 가득 재충전 받는 느낌이다. 지난 3개월 간 나름대로 열심히 했고 그 이전의 1년 동안 배운 것보다 더 많은걸 배웠다고 생각하지만 여전히 갈 길이 멀다고 생각하며 바로 지난 주에 class 기반으로 리팩토링했던 EventNotifier 코드 함수형으로 다시 리팩토링하러 갑니다! ヽ( ・∀・)ノ

참고링크