처음부터 긴 시리즈로 적겠다고 마음먹었기 때문에, 다음 이야기는 어느정도 정해져 있었다. 다만, 또 너무 예전의 이야기라, 지루할까 걱정되고 적는 내가 재미가 없었다. 그래서 시간도 벌 겸, 새로운 것들도 좀 할 겸 시간을 보내다, 가벼운 주제가 보여서 적는다.
최근에 OBS Studio를 만질 일이 있었다. 다니는 교회의 예배를 YouTube를 통해 중계하는데 방송 중에 자꾸 끊기는 일이 생겨서다. 현장에 설치된 공유기부터 각 방송용 장비, 컴퓨터 그리고 각종 소프트웨어를 이리저리 만지며 설정하다 보니 내가 왜 이런 걸 알고 만지고 있나 싶다. 방송용 프로그램을 개발할 일이 있었던 것도 아닌데 말이다.
OBS를 처음 만지게 된 건, 회사에 조금씩 체계가 잡혀가던 시점이었다. 틀이 조금씩 잡히면서 새로이 시작되는 일들은 전보다 더 안정적으로 진행되었지만, 오랜 기간 동안 부재했던 기록과 소통은 거대한 수렁과 지뢰가 되어 팀의 발목을 잡고 또 터지고 있었다. 장기적으로는 문서화가 필요했지만, 여력이 없었다. 대신 정보 공유를 위해 세미나를 진행하기로 했는데 여기에도 몇 가지 챙겨야 할 포인트가 있었다.
- 현장에 오지 못하는 원격근무자가 있음. (Feat. Covid19)
- 세미나에 참여할 시간적 여력이 없으나 꼭 들어야 하는 개발자가 있음.
- 신규 채용이 활발하게 진행 중. 그래서, 라이브 중계 및 녹화가 필요했다.
이런 경우 일반적인 방법은 스마트폰의 카메라를 쓰거나 랩탑의 웹캠을 이용하는 것이다. 한 번쯤 경험해 보았다면 알겠지만, 이렇게 진행되는 경우 우선 하나의 카메라로 여러 상황을 담아야 한다는 문제와, 낮은 화질이나, 처리 용량에 따른 버퍼링 등등의 문제가 발생한다. 우리는 더 나은 기록이 필요했다. 그래서 OBS도 설치하고 익히면서, hdmi 캡처보드를 이용해서 전자칠판을 캡처하고 스마트폰은 삼각대에 잘 고정해서 연결하고, 사내에 설치된 방송시스템의 믹서에서 목소리를 받아 녹화하고 방송하는 텍스트로 적어두니 복잡해 보이지만 실제로는 추가 비용은 없이 가지고 있던 장비들을 엮어서 간단한 하지만 필요한 만큼의 정보를 기록하고 공유할 수 있는 방송시스템을 구축했던 것이다.
역할상 내가 굳이 직접 할 필요는 없었다. 그러나 이를 마땅히 맡길 사람도 없었다. 이런 작업이 왜 필요한지, 어떤 것들이 꼭 들어가야 하는지, 특히 보안을 고려한 사내의 네트워크 환경을 어떻게 고려해야 하는지 등등 세부사항을 정리하고 챙길 여유는 없었다. 아마 누군가에게 맡겼다면, 결국 필요한 만큼 구성하지 못하고 웹캠으로 중계를 했을 터이다.
컴퓨터공학과는 컴퓨터 고치는 법을 배우는 곳이 아니라는 이야기가 있다. 사용하는 기기에 문제가 생겨 컴공과 학생 혹은 출신에게 물어보면 흔히 듣는 말이다. 일반적인 시선에서 컴퓨터를 잘 다룬다는 것은 하드웨어를 잘 조립한다거나, 문제가 생긴 하드웨어를 찾아내거나, 새로운 하드웨어나 소프트웨어를 잘 활용하는 것을 의미한다. 그러니 소프트웨어를 만드는 것이 주 업무인 소프트웨어 엔지니어가 컴퓨터를 잘 다룰 수 있어야 할 이유는 없다. 심지어 컴퓨터 없이도 소프트웨어는 만들 수 있다.
소프트웨어를 만드는 동안 생기는 많은 문제는 코드 밖에서 일어난다. 코드 밖의 문제를 이해하고 해결하기 위해 소프트웨어 엔지니어에게 가장 익히기 쉽고 접근성이 좋은 도구는 컴퓨터다. 기본적으로 구성요소와 동작 원리를 이해하고 있기 때문이다. 심지어 엔지니어들에겐 소프트웨어의 완성도가 떨어지는 부분을 우회하는 것도 더 쉽다. 그러니, 문제 해결에 도움이 된다면, 디버거 같은 개발도구뿐 아니라, 예를 들면 방송용 소프트웨어 혹은 하드웨어라고 할지라도 이상한 일도 아니고 불필요한 일도 아니다.
그래서 컴퓨터를 다루는 일에 대해서 소프트웨어 엔지니어가 그건 제 일이 아닙니다라고 말하거나, 어려워서 못하겠다 라고 할 때, 많은 생각을 한다. 결과물에 미적인 감각이나 언어적 유려함을 요구한 것이 아니라면 컴퓨터의 동작 원리를 이해하고 있는데, 소프트웨어 엔지니어에게 어떻게 컴퓨터가 어려울 수 있겠는가. 그리고, 나는 소프트웨어를 만드는데 혹은 완성도를 높이는 데 있어서 필요한 일이라면 컴퓨터를 다루는 일이라면 어떤 일이라도 소프트웨어 엔지니어의 일이 될 수 있다고 생각한다. 그러니 저러한 말을 들었다는 것은 숨겨진 상황이 있음을 내포한다.
다만, 나 역시 그건 잘 모른다고 할 때가 있는데, 이는 상대가 애매한 지식에 기반해서 이야기할 때이다. 그런 경우는, 상대가 이해하고 있는 부분과 잘 못 이해하고 있는 부분, 그리고 이를 수정할 방법과 그에 따른 상대의 감정적인 대응등을 모두 고려해서 대화하고 행동하고 해결해야 한다. 종종 행동보다 외면이 서로에게 좋다.
교회의 방송문제는 몇 주에 걸쳐 결국 해결했다. 사용 중인 ISP의 QoS정책이 문제였다. 방송이 특정 시점이 되면 끊기는 것을 보며 가장 우선적으로 ISP 쪽 문제일 것이라고는 예상은 했지만. 그게 QoS인지 아니면 그 시간대 그 지역의 upbound traffic이 넘쳐서인지는 알기 어려웠다. 몇 번의 실험과 혼신을 다해 조합한 키워드를 이용한 구글링으로, 해당 ISP의 서비스의 역사와 특히 합병의 역사와 그에 따른 네트워크 특성과 함께, UDP에 대해서 아마도 P2P를 막기 위해서 설정한 듯 한 단순 처리 방식의 구식 QoS 정책이 일부 지역에 방치되어 있을 수도 있다는 무슨 판타지 속 전설 같은 이야기를 찾을 수 있었다. 방송 전송 프로토콜을 TCP기반으로 바꾸는 것으로 해결했다. 물론 “설정 좀 바꿨더니 되더라고요.”라고 다른 사람에게는 말했지만.
음, 결론을 크게 생각하지 않고 적어서 이런저런 이야기가 적혔다. 굳이 결론을 내리자면 뭐든 알면 쓸모가 있다는 거다.
p.s. 대부분 팀 내부 커뮤니케이션을 위해서 OBS와 촬영시스템을 사용하였지만, 한 번은 다른 용도로 사용한 적이 있다. 전사 타운홀이었다. 형식상으로는 자리를 비울 수 없거나, 근무시간이 맞지 않는 사우들을 위한 방송 및 기록이었다.
모든 일에 기록과 공유가 부족했던 조직이었다. 형식은 있지만, 매사에 기록에 기반하지 않는 그래서 허상보고 허상을 이야기하다 현실에 끌려가던 조직에 스냅샷을 남겨두었다.