서비스의 주춧돌, 인프런 백엔드팀 인터뷰
간단한 자기소개와 함께 인프런에 오게 된 이유를 알려주세요.
후리 : 백엔드 개발하는 후리입니다. 인프런을 소개받았던 때가 결혼하고 난 직후였는데요. 당시에는 크게 고민하거나 걱정하기보다 ‘일단 가서 한번 해보자’ 하는 마음이 컸어요.
인프런의 1호 개발자로 바닥부터 기반을 세워나가는 걸 경험할 수 있겠다는 생각이 컸죠. 그래서 한번 해보고 싶었어요.
조슈아 : 저는 인프런에서 백엔드 개발과 데브옵스 업무를 맡고 있는 조슈아입니다. 저는 대학원 때 취업 준비를 하다가 인프런 채용공고를 봤어요. 인프런은 예전부터 사용하던 서비스라 좋은 인상이 있었고, 특히 제가 논문 주제로 다뤘던 부분과 겹치는 부분이 많았어요. 웹기반 프로그래밍 교육 환경에 대한 논문을 2편 정도 썼었는데요. 대표님께서 논문 주제도 관심있게 보셨던 것 같아요.
대표님이 되게 좋았어요. 같이 이야기하면서 좋은 인상을 심어주셨고요. 저는 왠지 작은 규모의 팀을 선호하게 되더라고요. 그래서 여기로 왔죠.
지금까지 진행했던 프로젝트 중 가장 기억에 남는 게 있나요?
후리 : 워드프레스 + mySQL 로 구성되어있던 서비스를 Node.js + postgreSQL 로 리뉴얼한 서비스를 오픈했을 때의 긴장감, 그런 게 기억에 남고요. 아마도 개발자로서의 경험 중 가장 기억에 남을 프로젝트가 될 것 같아요.
이전의 DB가 어떻게 구성되어 있는지, 플러그인으로 구현되었던 기능들이 어떻게 동작하는지 하나하나 들여다보면서 파악했어요. 버릴 건 버리고 옮겨야 할 데이터를 추려서 데이터 마이그레이션 코드를 작성했는데요.
과정도 어려웠고, 유실된 데이터가 있거나 잘못 만들어진 게 있으면 어쩌나 걱정이 많았어요. 만드는 데는 문제가 없었지만 서비스를 오픈하고 문제가 발견되는 경우도 있잖아요. 그래서 오픈 후의 긴장감과 스트레스가 엄청 컸어요.
인프런에서뿐만 아니라 앞으로도 손에 꼽히는 일들 중 하나가 아닐까 생각해요.
조슈아 : 저는 비메오에서 자체 스트리밍 서비스로 이전했을 때가 기억에 남아요. 상당히 대규모였고, 기존의 영상들을 어떻게 하면 문제없이 이전할 수 있을까, 하는 이슈들이 있었어요.
비용이나 기능, 성능적인 측면에서도 고민해야 할 지점들이 많았고, AWS의 다양한 서비스를 조합해서 최적화된 시스템을 구축하기 위해 다양한 시도를 할 수 있어서 좋았어요. 배운 점도 많고, 여러모로 기억에 남는 프로젝트에요. 지금도 뼈대만 있는 셈이고 살을 붙이는 중이에요. 아직 갈 길이 멀어요. (웃음)
요즘 백엔드 개발팀의 핫이슈는 무엇인가요?
후리 : 다 뜨거워가지고. (웃음) 이 질문 어렵네요.
조슈아 : 저는 개발문화라고 봐요. 협업문화가 정립이 안 되어있을 때는 커뮤니케이션상에서 로스가 발생하는데요. 팀이 많아질수록 협업 문화가 잘 정립되어있지 않으면 장기적으로 볼 때 커뮤니케이션 로스나 삐그덕대는 경우가 발생할 거예요.
자기가 알고 있는 걸 공유하는 게 되게 중요한 것 같아요. 사람이 많아지면 말로 안 되는 게 생길 거고 문서화 작업도 필요할 텐데, 사람이 적을 때부터 준비해야 사람이 늘어났을 때도 당황하지 않고 유연하게 대처할 수 있다고 생각해요.
누군가가 무얼 개발하거나 수정했는데 공유하지 않고 자기만 알고 있다가, 문제가 터진 다음에 “아, 그거 내가 수정했는데” 하고 얘기하면 늦는 거잖아요. 수정 사항이나 서비스에 임팩트를 끼칠 수 있는 변경에 대해 사전에 고지하는 게 중요하다고 생각해요. 작은 것들이 큰 것들을 만들어내니까요.
후리 : 저도 공감해요. 사실 백엔드의 많은 부분을 프레임워크 없이 혼자 작업하다 보니 초기에는 코드 패턴이나 규칙 같은 게 전혀 없었어요. 지금도 만드는 와중에 규칙이 생기기도 하고 바뀌기도 해요. 그런 걸 조금씩 다듬고 규칙을 만드는 과정을 작년 말~올해 초부터 시작했는데요. 그래서 한 단계 나아졌다고 생각했어요. 올해 하반기에 인원이 충원되고 계속해서 개발 팀이 늘어날 걸 생각하면 이 부분이 보강돼야겠다는 생각이 많이 들어서 요즘 가장 고민하고 있어요.
이전 회사와 비교했을 때 인프런 팀이 일하는 방식에서 가장 큰 차이점은?
후리 : 이전에 있던 회사들은 대부분 시스템이나 개발스택이 갖춰져 있거나 정해진 상태에서 투입되었다면 인프런에 와서는 밑바탕부터 세워나가면서 했기 때문에 그런 걸 결정할 수 있다는 점이 가장 큰 차이점이고 장점인 것 같아요.
대신 결정권이 있으면 그에 대한 책임도 따르는 거니까 부담도 되죠. 또 하나 가장 큰 차이는 함수형 프로그래밍으로 작업하고, 다른 프레임워크를 쓰지 않고 로우레벨부터 쌓아올리기 위한 노력을 많이 한다는 점이 있고, 서버사이드 렌더링을 한다는 점이에요.
인프런 개발팀 만의 문화가 있다면요?
조슈아 : 이전 팀은 기술적인 것에는 관심이 별로 없었어요. 개선이 많이 없고 쓰던 거만 쓰려고 했었죠. ‘우리가 시스템을 개선해보자’ 이런 게 아니라 해왔던 대로만. 인프랩에서는 항상 새롭게 할 수 있는 게 없나 고민하고 기존 코드를 리팩토링하고, 새로운 기술 스택을 도입해서 더 쉽게 코딩할 수 있는 환경을 만드는 고민을 하는 점이 가장 좋았어요.
일하면서 보람을 느꼈던 순간은 언제인가요?
후리 : 저는 리뉴얼 오픈이요. 가장 기억에 남는 프로젝트와 겹치는 거 같아요. 가장 힘들었고 보람을 느꼈고 기억에 남아요.
조슈아 : 저도 리뉴얼이 가장 보람있었어요. 처음 투입된 프로젝트였고 리뉴얼 서비스가 올라가는 새벽에는 피를 말리는 듯한 느낌이었어요. ‘이게 진짜 올라갈까? 될까?’ 확신을 가져야 되는데 라이브 배포가 처음이다보니 확신이 많이 없었어요. 그래서 최대한 보수적으로 배포했었죠. 그때가 커리어의 시작인데, 시작부터 가장 센 거 한 방 맞았으니까 어떻게 보면 예방주사 맞았다고 생각했죠. 이제 웬만한 건 할 수 있어, 그런 느낌이요. (웃음)
일할 때 동기부여가 되는 부분이 있다면 소개해 주세요
조슈아 : 다른 개발자들이랑 ‘요런 거 만들면 어떨까’ 이야기할 때 동기부여가 돼요. 그걸 만들려면 공부도 해야 하고 배워야 하니까요. 그래서 최대한 개발 프로젝트에 대한 이야기랑 미래지향적인 이야기를 많이 하려고 해요.
자연스럽게 다른 사람들 생각도 들어볼 수 있고 서비스가 어떻게 하면 좋아질 수 있는지 팀 안에 담론이 형성되니까, 계속 그런 이야기를 하면서 같이 ‘으쌰으쌰’ 하는 자가발전 같은 거요. 나는 저 사람에게 힘을 얻고, 저 사람은 나로부터 힘을 얻는 그런 걸 많이 느끼고 있어요. 남이 잘 만들어 놓은 서비스를 볼 때도 느끼고요. 잘 만들어진 오픈소스 레포를 볼때도 느껴요.
AWS를 보면 제품이 200개 정도 있어요. 그럼 이걸 우리 서비스에 적용할 수 있을까 종종 훑어봐요. 가령 Amazon Personalize라는 개인화 추천 시스템이 있는데, 이걸 우리 서비스에 적용해볼 수는 없을까? 이런 식의 고민을 통해 서비스의 가치와 개발 생산성을 끌어 올릴 수 있는 AWS 제품을 하나씩 인프런 서비스에 녹이고 있어요. 그리고 좋은 도큐멘테이션이나 오픈소스, 툴들을 보면서 동기부여를 얻어요.
후리 : 저에게는 개발할 때 동기부여가 되는 요소가 뭐냐는 질문이 의미가 없어요. 왜냐면 개발이라는게 제 삶의 동기부여이기 때문이에요. (웃음) 저는 코딩하는 게 너무 좋아요. 괜한 말이 아니라 개발하기 이전과 이후의 제 모습이 정말 많이 다르다는 걸 저희 부모님을 비롯해 주변 사람들이 느끼고 저 스스로도 그렇게 생각해요. 그래서 이런 질문이 저한테는 어색한 질문이에요. 그러니까 너무 당연한 거? 그렇기 때문에 저는 개발자로서 가져야 하는 덕목 중에 하나가 개발하는 것에 대한 애정, 개발에서 기쁨을 얻는 그런 요소가 굉장히 중요하다고 생각해요.
조슈아 : 이분은 찐이에요 찐. 개발을 위해 태어난 사람. (웃음)
가장 좋아하는 인프런 팀 문화 혹은 복지는 무엇인가요?
후리 : 좀 이상할 수도 있는데 코딩을 할 수 있는 환경이 있다는 거요. 오늘 인터뷰 이상한 방향으로 가고 있는 거 같아요. 저에게 가장 좋은 건 코딩을 마음껏 할 수 있다는 점입니다.
조슈아 : (웃음) 저는 대체로 다 좋아요. 월요일에 12시 출근이 임팩트가 있죠. 일요일 밤엔 아쉬우니까요. 월요일 12시 출근이면 부담이 덜해요.
앞으로 인프런에서 이루고 싶은 건 무엇이죠?
후리 : 인프런에서 강의를 만들고 싶어요. 지금 만들어진 서비스에 대해서, 인프런은 이렇게 만들어졌다 이런 기술이 사용되었다는 걸 소개하고 공유하고 알려주는 강의요.
조슈아 : 저는 데브옵스 쪽의 역량을 많이 쌓고 싶고요. 그걸 배워가면서 저희 서비스를 완벽하게 만들어나가고 싶어요.
탄탄한 지지 기반을 생각하지 않고 서비스를 만들면, 외부의 충격이 없을 때는 안정적인 것처럼 보여요. 근데 그렇게 쌓아올린 서비스는 젠가를 할 때처럼 밑에 걸 빼다가 어느 순간 콧바람에도 넘어질 수도 있는 거죠. 그런 상황이 올 수 있어요. 아무 일도 없을 땐 괜찮다가도 외부의 요인으로 인해 한순간에 서비스가 다운될 수 있거든요.
어떤 상황이 와도 서비스가 잘 버틸 수 있도록 튼튼하게 만들어 놓고 싶어요. 모든 상황에 대한 대비가 되어 있도록 만들어 놓는 거요. 인프런 서비스를 그렇게 만들고 싶은 욕심이 있어요.
함께 일하고 싶은 팀원은 어떤 분일까요?
조슈아 : 후리는 아마 자신의 클론이 3명 정도 더 있으면 좋겠다고 생각할 거 같아요…
후리 : 아, 딱 그 생각하고 있었는데. (웃음) 시간이 모자라다는 생각이 드니까 가끔 그런 생각을 해요. 저는 코딩을 재밌어하고, 더 좋은 로직을 구현하고 생각해냈을 때 거기서 기쁨을 느끼고, 적당한 지점을 찾아서 만족스러워하는 게 아니라 끊임없이 더 좋은 코드를 고민하는 분과 일하고 싶어요. 또, 예외 처리에 대한 여러가지 케이스들을 잘 생각할 수 있는 사람이면 좋겠어요.
조슈아 : 개발을 좋아하고 새로운 걸 고안하고 만들어내는 걸 즐겨하고 새로운 기술을 긍정적으로 받아들이는 분이 좋아요. 그리고 같이 웃으며 으쌰으쌰 할 수 있는 팀원이요. 같이 있을 때 힘이 되고 도움이 되는 분을 기다리고 있습니다.
배움과 성장의 토대를 만드는 사람들,
인프런의 백엔드 개발자가 되어주세요