제목은 그린랩스 1년 후기로 하겠습니다. 근데 이제 클로저를 곁들인

Gravatar for mccha0407@gmail.com
차민철신선하이 백엔드 개발자
2022. 07. 21.

안녕하세요. 신선하이 백엔드 개발자 차민철입니다. 그린랩스에 입사한지 이제 막 1년이 지나 그간의 경험을 공유해보려고 합니다.

입사 전

입사 전부터 함수형 프로그래밍에 관심이 많았었는데요. 이 글을 읽고 계실 여러분처럼 실제로 현업에서 함수형 언어를 어떻게 사용하고 있는지도 궁금했고, 또 한 번 쯤은 함수형 언어로 개발해보고 싶은 마음에 지원했습니다. 지난 3년간 자바스크립트를 사용하여 웹 어플리케이션 개발을 했었고, 그린랩스에 합류하면서 클로저란 언어를 처음 접하고 사용하게 되었습니다.

국내에서 클로저라는 언어를 사용하는 기업은 그린랩스가 거의 유일하다고 볼 수 있어 커리어에 대한 걱정도 조금 있었습니다. 하지만 회사에서 사용하는 언어를 클로저로 선택하는 것은 분명 쉽지 않았을 테고, 사용하기로 결정했다면, 이 언어만의 확실한 장점이 있으리라 생각했습니다. 그리고 이런 결정을 할 수 있는 회사라면 실무자들의 의사결정을 존중하는 문화를 가졌을 거라는 믿음이 있었습니다.

능서불택필 - 글씨를 잘 쓰는 이는 붓을 가리지 않는다. 즉 일에 능한 사람은 도구를 탓하지 않는다

개발자의 성장에는 어떤 언어를 쓰느냐보다 누구와 함께 일하는지가 더 중요하다고 생각합니다. 그린랩스에 이미 합류하신, 그리고 앞으로 합류하실 분들 모두 변화를 두려워하지 않고 도전하는 멋진 분들이라고 확신할 수 있었습니다. 한편으로는, 도구를 가리지 않는 장인들의 모임일 수도 있겠다고 생각했습니다. 1년이 지난 지금 돌이켜보면, 제 인생에서 잘한 선택 중 하나라고 생각합니다.😀

((클로저))의 첫 인상

클로저(Clojure) 뿐 아니라 리습(Lisp) 계열의 언어를 처음 접해보는 터라 걱정이 많았습니다.

처음에는 괄호가 너무 많아서 (특히, 맨 끝의 괄호모음... ))))) 당황하기도 했고 코드를 읽는게 어렵게 느껴졌습니다. 이런 문법 에러를 만나기도 하구요.

Unmatched delimiter: )

하지만, 퍼레딧(paredit)과 퍼린퍼(parinfer) 같은 리습용 편집 도구를 사용하면 이런 괄호를 쉽게 다룰 수 있습니다. 괄호가 익숙해지면서는 오히려 평가 순서가 명확하게 보이고 필요한 부분만 한 눈에 볼 수 있어 가독성이 훨씬 좋아진 것을 느꼈습니다.

클로저를 사용하는 유저들의 경력이 많아서인지 입문자를 위한 문서화, 튜토리얼 등이 다른 언어에 비해 부족하다고 느껴지기도 했고, 종종 라이브러리 코드를 직접 살펴봐야 하는 경우도 있었습니다. 하지만 지금 돌이켜보면 이런 부분 덕분에 다양한 것들을 학습할 수 있었습니다.

그린랩스에 입사하면 3주간 클로저를 학습하는 부트캠프 과정을 진행합니다. 부트캠프의 커리큘럼이 잘 짜여있고 좋은 리뷰어와 함께하는 과정이라 **클로저의 사고방식(The Clojure Way)**으로 전환하는데 크게 어렵지 않았습니다. 부트캠프 과정과 후기가 궁금하시다면 "그린랩스에서 클로저 시작하기"라는 글을 추천합니다.

그린랩스에서 만난 동료들 🤟

👋 그린랩스에서 함께 일하는 멋진 동료들 소개합니다.

1) 개발 생산성을 높이기 위해 도구를 만들어 쓰는 동료

그림
하수라(Hasura)에 영감을 받은 개발자들이 그래프QL API를 만들 때 반복적으로 작성해야하는 부분들을 자동화 해주는 도구 고수라(Gosura)를 직접 만들어서 사용하고, 공개도 하고 있습니다.

프론트엔드에서 사용하는 리스크립트도 비슷한데요. 라이브러리의 부족한 부분을 보완해서 사용하고, 여기서 그치지 않고 외부의 다른 개발자들도 도움을 받을 수 있도록 공개하고 있습니다.

클로저와 리스크립트 생태계에 기여하는 동료들을 보고 2022년이 다 가기 전에 저도 클로저 생태계에 한 가지라도 기여해야겠다는 목표를 세울 수 있었습니다. 두 오픈소스에 대한 내용들은 컨트리뷰터들이 기술 블로그나 밋업에서 더 자세히 설명해주실 날이 있을 것 같습니다.🙂

2) 꼼꼼한 배포 계획으로 인해 침대에 누운 것처럼 편안한 배포를 가능케 한 동료

배포 시나리오를 미리 작성하고 배포 전에 함께 스쿼드 구성원들이 함께 리뷰한 내용의 일부입니다.

온라인에 다 같이 모여서 배포를 진행한 모습입니다.

캡쳐를 통해 어떤 히스토리로 배포 되었는지도 스레드에 남깁니다.

운영 배포는 경험이 많아도 떨리는 작업 중 하나 입니다. 🤯  하지만 이렇게 시나리오를 꼼꼼하게 작성해두고 작업을 하니 실수 없이 안정적인 배포를 할 수 있었습니다. 배포 과정에 이슈가 생겼을 때도 당황하지 않고 대응을 할 수 있었고 이슈 추적을 할 때도 배포 기록이 꼼꼼하게 남아있어 도움이 많이 되었습니다.

그린랩스 제품개발본부가 이렇게 일할 수 있는 것은 형식에 매몰되지 않고 ‘진짜 필요한 것이 무엇인지' 고민해 주는 리더와 개발자가 지속적으로 성장하고 성취할 수 있게 지지해 주는 동료, 그리고 제품 품질과 일정을 모두 지키려는 열정으로 꾸준히 공부하고 성장하는 동료들이 주변에 많기 때문입니다.

마무리

그린랩스는 저를 한층 더 성장할 수 있게 만들어준 소중한 곳입니다. 훌륭한 동료들과 함께 일하며 많은 것을 배우고 있고, 다른 곳에서 쉽게 할 수 없는 클로저로만으로 개발하는 경험을 하고 있습니다. 그리고, 클로저를 사용하면서 REPL, 불변, 데이터 중심적 사고, 순수 함수, 고차 함수의 소중함 뿐만 아니라 개발의 즐거움까지 느끼고 있습니다.

Thanks to Rich Hickey~ and Greenlabs

그림

클로저의 우아함을 맛보고 그린랩스의 훌륭한 동료분들과 일할 기회를 놓치지 마세요!


추천 콘텐츠