brunch

You can make anything
by writing

C.S.Lewis

by Chaewon Kong Aug 10. 2023

개발자가 예술가는 아니지만

이따금 찾아오는 중압감과 내가 짜는 코드에 대한 자괴감 견디기

어쩌다 보니, 개발을 한다. 지금은 백엔드 엔지니어로 근무하고 있다. 코드를 짜다보면 어느새 서비스를 만들어 가게 되는 그 느낌을 사랑해서 지금도 개발을 업으로 삼고 있다.


문과 전공이지만, 생각해 보면 늘 무에서 유를 창조해 내는 ‘만듦’이라는 행위를 동경했던 것 같다. 그래서 잠깐 디자이너도 꿈꿨다. 디자인을 하려면 스케치부터 할 줄 알아야 할 것 같아서 미술학원도 잠시 다녔었다. 금세 나에겐 재능이 없다는 생각으로 접어버렸지만.


어쩌다 보니 개발을 하게 되었고, 어쩌다 보니 지금도 엔지니어로 일하고 있다. 코드를 짠다는 것을 좋아하고, 무언가를 만들어가는 과정을 좋아한다. 코드 안에 작지만 심오한 논리를 담아내는 것도 좋아한다. 하지만 취미와는 달리, 직업으로서의 개발자는 그리 녹록지 않은 것 같다.


서비스의 실패가 나에게 달려있다는 중압감

개발을 하다 보면, 의도치 않게 장애를 발생시키기도 한다. 내가 짠 로직에 오류가 있어 서비스의 일부가 동작하지 않는 치명적인 상황이 되는 것을 ‘장애’라고 한다. 장애는 사소할 수도 있지만, 심각한 문제를 가져올 수도 있다. 예를 들어, 결제 서비스를 개발하다가 장애가 발생하면, 장애를 해결하기까지 결제가 안될 수 있다. 즉, 장애는 매출에 직결되기도 한다.


개발을 하다 보면, 특히 백엔드 엔지니어로 일하다 보면 장애 한둘쯤은 경험하게 되는 것 같다. 나 역시 매출에 직결되는 장애를 경험했다. 정확히 말하자면, 나의 실수로 인해 장애가 발생했고, 매출 손실로 이어졌다. 이런 경험을 한 번씩 하게 되면, 스스로가 산산이 파괴되는 과정을 겪게 된다.


장애를 겪고 난 후, 나는 테스트 중독이 되었다. 혹시 있을지 모르는 버그나 장애를 차단하기 위해 부단히 테스트 코드를 짠다. 각 기능 단위로 테스트하는 코드를 짜고, 그것으로도 부족해서 실제 시나리오를 기반으로 통합적인 테스트도 코드로 작성한다. 코드 변경시마다 수시로 테스트를 돌려보며 체크하고 또 검증한다.


변변치 못한 코드를 짜고 있을 때의 자괴감

개발자는 코드를 짜는 사람이라는 인식이 있지만, 나는 가끔 코드를 읽는 시간이 코드를 작성하는 시간보다 길다는 생각을 한다. 많은 경우, 개발은  혼자서 하는 것이 아니며, 여러 사람이 작성한 코드에 나의 코드를 조금씩 추가해 나가는 과정에 가깝다. 그렇기 때문에 남이 짠 코드를 읽어야 한다. 즉, 코드를 짤 때는, 마치 글을 쓸 때처럼 읽는 사람을 배려해 짜야한다.


개발 세계에는 무수히 많은 코드 잘 짜는 법이 있다. 많은 이들이 이를 연구한다. 각자 “좋은 코드”에 대한 정의가 있다. 나의 경우엔 “테스트하기 좋은 코드”와 “타인이 이해하기 쉬운 코드”가 좋은 코드라고 믿고 있다. 둘 다 쉽지만은 않은 목표다.


아직 나는 배움이 부족해서 내가 짜는 코드는 테스트하기 복잡한 경우가 많고, 읽기 쉬운 코드가 아닌 경우는 더더욱 많다. 개발자들은 ‘코드 스멜’ 혹은 ‘스파게티 코드’ 같은 표현을 쓰곤 한다. 좋지 않은 코드는 마치 상한 음식처럼 쓱 보기만 해도 냄새가 난다고 해서 ‘코드 스멜’이라는 표현이 있다. 지저분한 코드는 스파게티 면처럼 얽히고설켜 있다고 해서 ‘스파게티 코드’라고도 한다. 내가 짜는 코드는 종종 냄새가 나고 스파게티가 된다.


내가 짠 코드가 스파게티처럼 얽힌 걸 보면 자괴감이 든다. 내가 원하는 레벨에 맞지 않는 코드를 볼 때마다 벽을 느끼고, 한계를 느낀다. 스스로가 더 똑똑하지 못해 더 깔끔하고 더 나은 코드를 짜지 못하는 것이기에 더욱 그렇다. 보통 경험 많고 똑똑한 사람들은 훨씬 유려한 코드를 짠다.

많은 개발자가 우아하고 이상적인 코드를 꿈 꾸지만, 도달하기 힘든 벽 앞에서 좌절하고 스스로의 한계를 경험한다.


중압감과 자괴감에 익숙해지도록

우연히 내가 좋아하는 피아니스트 조성진의 인터뷰를 읽었다. 쇼팽 콩쿠르에서 우승한 정상급 연주자지만, ‘100번 연주하면 3번 만족’한다고 말하는 것이 충격적이었다. 반도네온 연주자 고상지도 연주할 때마다 괴롭다고 했다. 하고 싶은 것을 하는 게 예술이고, 예술을 하면 행복할 줄 알았는데, 마음에 들지 않는 연주로 고통받는 것은 프로 예술가들도 마찬가지였다.


타인의 고난이 우리 스스로의 행복이 되어서는 안 되겠지만, 자신이 만들어내는 산출물 앞에서 괴로움을 느끼는 것은 개발자만이 아니라는 생각에 조금은 위안이 되었다. 이상을 추구하는 사람은 상처받기 마련이다. 이런 류의 완벽주의는 스스로를 성장시키는 힘이기도 하지만, 자존심을 상처 입히는 힘이기도 하다.


그러니, 너무 자조적이지는 말자. 중압감과 자괴감을 느끼는 것은 우리만이 아니다. 어쩌면 “프로”가 된다는 것은 이런 것일지도 모른다. 무엇인가를 ‘일’로써 한다는 것. ‘전문가’가 된다는 것. 결과에 ‘책임’을 진다는 것은 그만큼 어깨가 무거워지는 일일 것이다. 중요한 것은 이 중압감에 잡아먹히지 않는 것이다. 중압감을 통해 성장하고, 자괴감을 통해 발전하되 그것들에 잡아먹히지 않는 것.


그렇다. 개발도 역시, 중요한 것은 꺾이지 않는 마음이다.

작가의 이전글 3일만에 서비스 개발해 사용자 2천명 확보하기
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari