음악으로 배우는 페어 프로그래밍
음악으로 배우는 페어 프로그래밍
음악 하나 듣고 갑시다
tomo fujita - just funky
위 영상은 실용 음악과를 지망하는 학생들과 수많은 기타 키드들이 funk 장르에 입문하며 필수적으로 카피하는 ‘just funky’라는 곡이다. 예전엔 너도나도 입시곡으로 이걸 선택하는 바람에 ‘입시 금지곡’으로 선정될 정도로 많은 사랑을 받았다. 프로그래밍으로 치면 TODO APP과 비슷한 위치라고나 할까.
깔끔하고 군더더기 없는 연주와 완벽한 호흡이 압권인데, 그도 그럴 것이 영상에 나오는 후줄근한 아저씨들은 모두 버클리 음대 교수님들(!)이기 때문이다. 잠깐 음악을 즐기며 교수님들의 완벽한 앙상블을 감상해보자.
좋은 연주자, 좋은 페어 프로그래머
곡이 마음에 들었는가? 영상은 정해진 코드 진행을 유지한 채 서로 즉흥 연주를 주고받으며 곡이 완성되는 과정을 보여준다. 이 과정은 마치 서로 의견을 주고받으며 프로그램을 완성해나가는 페어 프로그래밍과 유사하다.
그동안 몇 번의 페어 프로그래밍을 진행하며 내가 잘하고 있는 것인지 의문이 들 때가 많았고, 무엇이 옳은 방법인지 확신할 수 없었다. 검색으로 찾은 모범 답안은 좀처럼 와닿지 않았고, 나만의 방식으로 페어 프로그래밍을 이해하고 실천할 수 있는 방법이 필요했다.
고민 끝에 찾은 나만의 해답은 ‘좋은 연주자처럼 페어 프로그래밍하자’라는 답이었다. 즉흥 연주와 페어 프로그래밍은 정해진 최소한의 가이드라인만이 있을 뿐, 정해진 악보와 설계 없이 시작한다는 점에서 공통점을 가진다. 더불어 앞으로의 진행 과정을 예측할 수 없고, 작품을 완성하는 데 있어 오로지 믿을 것은 나와 파트너와의 호흡이라는 사실은 즉흥 연주와 페어 프로그래밍의 본질이 같음을 말해준다.
내가 생각하는 좋은 연주자, 그리고 그에 비춰본 좋은 페어 프로그래머의 모습은 무엇인지 곰곰이 생각해봤다.
거수기는 필요없다 : 좋은 자극을 주자
좋은 자극을 주는 연주자
즉흥 연주에서 솔로 연주자를 제외한 다른 악기들은 볼륨을 낮추고 솔로 연주의 빈자리를 메워주는 반주를 하게 된다. 이것을 컴핑이라 하는데, 좋은 컴핑은 단순히 배경음의 역할에서 그치는 것이 아니라 음악에 활기를 불어넣고 솔로를 돋보이게 하는 역할까지 수행한다. 솔로 연주자의 훌륭한 에너지 공급원인 셈이다. (위 음악도 의식하면서 들어보면 교수님들의 역동적인 컴핑을 들을 수 있다)
좋은 컴핑은 단순히 정확한 박자에 코드를 연주하는 것이 아니라 다양하게 변주해서 연주자에게 자극을 줘야 한다. 단순히 맞춰주는 역할에서 벗어나 연주가 소심해질 때는 솔로 연주와 대립하고 싸우며 절정까지 그들을 이끌어야 하고, 과열되었을 때는 잠깐 쉬거나 템포를 조절하며 연주의 조화를 끌어내야 한다. 이것이 내가 생각하는 가장 이상적인 컴핑이자, 함께 하고 싶은 연주자이다.
좋은 자극을 주는 페어 프로그래머
페어 프로그래밍의 경우 직접 프로그래밍을 수행하는 드라이버가 솔로 연주자라고 한다면, 실시간으로 코드 리뷰를 하고 방향을 제시해주는 네비게이터가 컴핑을 담당하는 역할이라고 볼 수 있다. 훌륭한 네비게이터는 훌륭한 컴핑처럼 드라이버의 의욕을 고취하고 앞으로 치고 나갈 수 있도록 적절한 자극을 줘야 한다.
단순히 ‘틀렸다, 맞다’의 거수기 역할에서 벗어나 지금 드라이버의 프로그래밍 방향이 맞는지 지속적으로 커뮤니케이션하며 자극해야 하고, 그 과정에서 좀 더 나은 방향과 새로운 방법으로 프로그래밍을 이끌어야 한다. 드라이버가 생각할 시간이 필요하다면 조금 기다려주는 완급 조절 또한 필요하다.
더불어 드라이버의 역할을 맡는다면 네비게이터의 조언에 귀 기울여야 한다. 지금 연주가 어디까지 와 있는지 네비게이터의 조언을 들으며 점검할 필요가 있고, 더 나은 방법은 없는지 마음을 열고 함께 방법을 모색해야 한다.
컴핑을 이끄는 연주자의 마음으로 페어 프로그래밍하기. 쉽지 않은 과제지만 ‘난 좋은 컴핑을 하고 있는가?’를 고민한다면 올바른 답을 찾을 수 있다고 생각한다.
솔직하게 말하자 : 커뮤니케이션 비용 줄이기
솔직한 연주자가 최고의 퍼포먼스를 보인다
함께 연주하는 사람들의 실력이 모두 같을 수는 없다. 지금 잘하는 사람과 ‘앞으로 잘하게 될 사람’들이 필연적으로 공존하게 되는데, 즐겁고 좋은 연주 경험을 위해서 자신의 실력과 어려움을 솔직하게 말하는 것이 굉장히 중요하다.
처음 보는 앰프라 조작하는 것이 미숙하다면 솔직하게 조작법이 미숙하다고, 자신이 마이너 펜타토닉 스케일만 익숙하다면 그에 맞춰달라고, 빠른 템포가 버거우면 느린 템포에 좀 더 자신 있게 연주할 수 있다고 말하자.
자신의 현재 실력, 그리고 자신이 현재 겪고 있는 어려움을 솔직하게 말한다면 커뮤니케이션 비용을 극적으로 낮출 수 있다. 당신이 솔직하게 말만 한다면 함께 하는 연주자는 당신에게 앰프 조작법을 가르쳐주고, 당신이 익숙한 스케일을 칠 수 있도록 단순하게 컴핑을 해주고, 당신에게 맞춰 느린 템포로 연주를 이끌어 줄 것이다.
솔직한 프로그래머가 되자
페어 프로그래밍을 하기 전 자신이 앞으로 겪게 될 어려움과 미숙한 부분을 솔직하게 털어놓자. 당신보다 뛰어난 숙련자가 파트너라면(그리고 운이 좋다면) 프로그래밍을 하는 동안 파트너의 실력에 맞춰 방향을 제시해주고, 학습 가이드를 제공해 줄 것이다. 꼭 이렇게 이상적인 상황이 아니더라도 네비게이터는 적어도 미숙한 드라이버에게 무리한 요구를 하지 않게 되고, 드라이버는 심리적 부담감에서 벗어날 수 있다.
의외로 내가 못한다는 사실을 용기 있게 말하기는 쉽지 않다. 그러나 솔직하게 말하는 것이 커뮤니케이션 비용을 줄여주고, 나아가 숙련자와 초보자 모두에게 좀 더 나은 페어 프로그래밍 경험을 줄 수 있다.
실력은 바꿀 수 없다 : 호흡을 맞추자
내가 숙련자라면
내가 상대적으로 숙련된 연주자라면 상대방이 가장 잘할 수 있는 연주를 펼칠 수 있도록 배려해줘야 한다. 지나치게 복잡한 코드 진행이나 빠른 템포의 컴핑은 초보 연주자의 기를 죽이고, 제대로 연주를 펼칠 수 없게 한다. 예를 들어 초보 연주자가 가장 기초적인 펜타토닉 스케일만 고수하는 스타일이라면, 그에 맞춰서 단순하게 컴핑을 해야 한다. 초보 연주자는 더욱 집중해서 자신이 할 수 있는 최대한의 연주와 영감을 보여줄 것이다.
페어 프로그래밍에 비춘다면, 최대한 직관적이고 명료하게 방향을 제시해주자. 중요한 것은 ‘상대방이 다 안다’는 가정을 하지 않는 것이다. 설명이 필요하다면 충분히 설명하고, 파트너가 발전할 수 있도록 방향을 제시해주자. 바쁘게 돌아가는 업무 상황 속에서 적절한 조언은 아닐 수도 있지만, 나도 한 때 초보자였음을 잊지 말자.
상대방이 숙련자라면
내가 숙련되지 않은 연주자라도 절대로 소심하게 솔로 연주를 하거나 조급해서 허둥대지 말자. 앞서 말한 것처럼 솔직하게 자신의 현재 상황과 실력을 말하는 것이 자신의 발전에 훨씬 도움이 된다. 평소에 못 하던 게 지금 갑자기 잘될 리는 없다. 절대로 잘하는 척 하지 말자. 상대방은 금방 알아채고, 신뢰를 금방 잃게 된다. 오히려 자신이 잘하는 것에 집중해서 쓸데없는 감정 낭비를 하지 않는 것이 즉흥 연주의 몰입에 훨씬 도움이 된다.
페어 프로그래밍도 마찬가지다. 상대방을 옆에 두고 프로그래밍하는 것은 긴장되는 환경일 수밖에 없다. 이럴 때일수록 내려놓고 열린 마음으로 파트너에게 어려운 부분을 솔직하게 털어놓고, 자신이 평소 자신있게 하던 작업은 자신있게 해내자. 페어 프로그래밍의 결과는 흔들리지 않는 멘탈이 해낸다. 자신감을 잃지 말자.
마무리하며
위와 같이 생각했던 것들은 모두 ‘자신이 프로그래밍의 모든 분야를 굉장히 잘한다면’ 필요 없는 말일 수도 있다. 하지만 이렇게 넓은 프로그래밍 세상에서 자신이 모든 분야에 숙달할 수 없고, 상황에 따라 자신이 전문가가 될 수도 완전한 초보가 될 수도 있다.
좋은 연주자는 파트너가 초보 연주자라도 그만의 연주 방법과 개성을 읽고, 그것을 발전시켜주기 위해 함께 노력한다. 우리 모두 노력해서 언젠가 좋은 프로그래머가 된다면, 자신의 발전과 함께 파트너의 발전까지 생각할 수 있는 넓은 그릇을 가지자.
많은 말을 했지만, just funky 영상 처음에 베이스를 메고 있는 젊은(…) 교수님의 말이 정답이다.
“Remember that playing music is not a competition. Just have fun with it.”
즉흥 연주든 페어 프로그래밍이든 경쟁 대신 JUST HAVE FUN 하길!
APPENDIX
정말 좋아하는 음악이 하나 있어 소개하면서 끝내려고 한다! 이렇게나 많은 음악적인 개성들이 하나의 훌륭한 음악으로 빚어진다는 것은 정말 기적 같은 일이다.
Stevie wonder - spain