제주에서 3주일의 코딩캠프

자연에서 만난 뜻밖의 배움들

코딩캠프의 기원

코딩캠프는 빠띠의 페어 프로그래밍(짝 프로그래밍 이라고도 번역할 수 있는데, 컴퓨터 한 대를 두고 같이 토론하면서 문제를 해결하는 방법)에 쉽사리 진입하지 못하고 있던 초록머리, 새로운 팀원인 켄타, 그리고 달리 세명의 합을 맞추는 방법을 고민하다가 나온 결론이었다. 그렇게 나는 제주도의 오른쪽 아래 표선면 어딘가에 3주 동안 머물면서 2주 동안은 달리와의 집중 페어 시간을, 나머지 1주 동안은 팀 페어 세션을 진행하기로 결정되었다.

차례로 성산일출봉에서 내려다본 제주, 표선 근처 올레길에서, 올레길 입구에서

서울에서 일하는 것과 제주도에서 일하는 것

내가 제주로 향한 것은 7월 28일 밤. 서울이 39도를 기록하고 있던 때였다. 제주공항에 딱 내리자마자 아주 더운 날씨를 예상했던 나는 뜻밖에 엄청나게 시원한 공기를 맞이했다. 열-돔 현상으로 서울이 제주보다 훨씬 더웠다! 아주 기분이 좋아진 나는 게스트하우스로 향했다. 3주 지내지만, 컴퓨터와 옷, 책 말고 별다른 것을 챙겨오지 않았다. 제주에는 정말 아무것도 없으니(친구도 없음;;) 업무에 정말 집중이 잘 되었다. 거꾸로 생각하면 서울엔 사람도 많고 물건도 많아서 항상 집중력이 분산되고 있었구나! 라는 것을 깨달았다.

제주공항에서 표선으로 향하는 버스를 탔는데, 버스 광고에서 와이파이가 된다는 것이 아니겠는가? 알고 봤더니 제주도 대부분 지역에서 걸으면서 와이파이가 잡히고 버스에서도 와이파이가 되는 어메이징 리모트 시티였다. 하지만 표선에서 지낸 지 2주 만에 엄청나게 속도가 느린 곳이라는 것도 깨달았다. 길고 긴 버스의 배차 간격, 많지 않은 상점들, 사람보다 자연이 더 많은 풍경. 눈만 살짝 돌려도 아파트가 가득한 서울에서 오랜 시간을 보낸 나로서는 정말 익숙하지 않은 시간이었다. 그래도 서울(대도시) 밖에서 좀 자주 살아봐야겠다는 생각이 진지하게 들었다.

제주에 빠질 수 없는 것은 바로 바다. 어느 곳에 있어도 어렵지 않게 바다를 찾을 수 있다. 일하다가 스트레스 받으면 바다를 보니까 기분이 좋아지는데 안 좋은 점은 바다를 보면 자꾸 뛰어들고 싶어진다. 끝으로 갈수록 점점 더 바다에 뛰어들고 싶어서 참느라 힘들었다.ㅋㅋ

카페 커피가게쉬고가게, 묵었던 게스트하우스

리모트로 일을 하다가 만나서 일을 하는 것

집에서 리모트를 하면 보통 혼밥(혼자 밥먹는 것)을 할 때가 많았다. 제주에 와서도 한동안은 그랬는데 켄타가 합류한 마지막 주에는 같이 밥만 같이 먹어도 힘이 났다. 사람마다 외로움을 느끼는 정도가 다르겠지만 나는 리모트 근무에서 어느 정도 외로움을 느끼는 타입이라는 것을 깨달았다.

그리고 확실히 오프라인으로 의사소통하는 것이 속도가 2배 정도 빠른 느낌이다. 느린 인터넷 속도가 재빠른 소통을 가로막고 있기는 하다는 것을 깨달았다. 비언어적 의사소통도 정말 중요하구나 싶었다. 오랜 시간 오프라인으로 일하면서 멤버들과 훨씬 더 친해진 기분이 들었다. 집중업무 기간을 자주 만들어도 괜찮을 것 같다는 상상을 했다.

다른 조직의 사람과 캠프를 진행하는 것

캠프 마지막 주에는 슬로워크 성진님과 함께 개발 인프라에 대해서 생각하는 세션이 있었다. 빠띠의 인프라는 이런데 슬로워크는 어떻게 되어 있는지 나눌 수 있는 시간이었다. 이런 인프라의 구조가 조직문화와 관련이 있지 않을까? 살짝 생각해 봤다. 업무의 조그만 부분에서 우리는 이렇게 하고 저기는 이렇게 하고 차이를 관찰할 수 있었다. 그리고 빠띠가 우리의 자원 이외의 새로운 자원이 있다는 것을 깨달았다. 물론 우리 조직 내부에서 해낼 수 있는 일이면 좋지만 가까운 사이에 있는 다른 조직과도 얼마든지 콜라보(협업)할 수 있구나! 라는 상상력을 키울 수 있었다.

코딩캠프를 하면서 느낀 것

이번 캠프에서는 개발할 때 보폭을 좁게 가져가는 연습을 했다. 내 개발 습관을 돌아봤을 때, 항상 복잡한 일을 잘 구분하지 않고 접근해서 쉽게 좌절하는 패턴이 있었다. 내가 해낼 수 있는 일감으로 좁히고 차근차근 가장 쉬운 것부터 해내는 연습을 했다. 캠프 2주 차가 되자 잠깐 익숙해졌다고 페어 코딩 중에 보폭을 크게 (잘 코딩하고 있는지 확인하지 않고 막 코딩하기) 나가다가 에러가 파파바박 나서 길을 잃고 다시 보폭을 좁게 가기를 반복했다.

모델-뷰-컨트롤러…?????

예를 들어서 첫 주에는 뷰-컨트롤러 사이의 상호작용, 그러니까 뷰에 찍히는 에러에 집중했다면 두번 째 주는 컨트롤러-모델을 이어주는 콘솔과 친해지는 시간을 가졌다. 내가 당장 코딩하지 못하는 부분은 한글로라도 바로 써 놓아서 페어 코딩하는 상대방과 구현 의도 공유하기. 모델을 가공해서 가져와야 하는 부분은 ‘매직 넘버’로 그러니까 더미(예제) 데이터를 채워 넣기. 연습을 했다.

다음으로 내가 구현하고자 하는 기능까지 계단을 한 단 한 단 깔아서 올라가는 연습을 했다. 페어 프로그래밍할 때 말하기 방식에 관해서도 이야기를 나눴다. 요즘은 내가 주로 드라이버 역할을 맡는데 운전의 방향을 바꿀 때, 어떤 의도로 바꿨는지 말을 하지 않으면 네비게이터는 알 수 없다. (페어 프로그래밍에서는 운전하는 것처럼 키보드를 잡은 사람을 드라이버 아닌 사람을 네비게이터라고 부른다) 또한 오프라인에서는 얼굴을 보고 짐작할 수 있지만, 리모트 페어 프로그래밍 중에는 말하지 않으면 상대방의 의사를 알 수 없다. 표현을 적극적으로 해줘야 한다!!

표선 해비치, 카페 희상, 카페 달보드레

그 외…

코딩 캠프 중간에 갑자기 생각해 보니까 ‘앞-바다, 옆-고양이, 위-에어컨’의 거의 천국에 다름없는 업무 환경에서 일하고 있었다. 정말 감사한 시간이었다. 제주도의 자연환경은 그 자체만으로 치유가 되는 기분이었다. 아무리 눈을 돌려도 아파트는 찾을 수 없고 넓은 하늘과 나무와 돌밖에 없었다. 제주도에는 바람이 항상 많이 부는데, 그 덕분에 구름이 항상 정말 빠르게 움직인다. 구름 보면서 넋 놓기에 참 좋았다.

주말에 남는 시간에 수영하러 바다로 향했다. 수영을 잘한다고 생각했는데 역시 과한 자신감이었다. 수영장에서 하는 자유형과 배영을 할 수 있을 지 몰라도 키를 넘는 바다와 예측할 수 없는 파도에는 그닥 쓸모있는 기술이 아니었다. 둥둥 떠 있는 생존 수영을 시도했는데 오래 버티기 힘들었다. 무서웠다.

재미있는 건 다들 두려움을 느끼는 다이빙은 곧잘 해냈다. 아마 다이빙은 혼자 하는 게 아니고 사람들이 다같이 보고 있으니까 힘이 나서 잘 해내는 것 같다. 또 올바른 자세로 다이빙을 하기보다 보다 새로운 동작으로 뛰어내리는 데 심혈을 기울이고 있는 나를 보면서 이게 나구나 싶었다. 바다에 떠 있는 것 처럼 꾸준히 헤엄쳐서 나를 보여주기보다는 멋지게 점프하는 모습을 보여주는 방식으로 살아왔구나 싶었다. 보통 살아가는 일은 멋지게 다이빙하는 일보다는 계속 팔다리를 움직여서 떠있는 일이 아닐까 한다. 코딩캠프는 말 그대로 가라앉지 않고 잘 떠 있으려고 노력하는 시간이었다.



글과 사진. 초록머리(조이성화)
편집. 찐찐쩐