스퀘어랩 기술블로그 로고
Interview

3,446km 밖에서 개발을 하다

마케팅팀|Apr 6, 2020

스퀘어랩 사무실이 위치한 을지로와 치앙마이 간의 거리는 3,446km로 서울에서 제주도를 4번 가까이 왕복해야 비슷해질 수 있는 거리입니다. 갑작스러운 치앙마이 얘기에 뜬금없다고 생각하시는 분들이 있을 텐데요, 오늘은 이렇게 먼 치앙마이에서 스퀘어랩 플랫폼을 더욱 단단하고 풍성하게 만들기 위해 여념이 없는 개발자 한 분을 소개하고자 합니다. 스퀘어랩 서버 개발자 ‘영재’님을 만나보겠습니다.



간단한 자기소개 부탁 드립니다.

안녕하세요, 현재 스퀘어랩에서 서버 개발을 맡은 권영재입니다. 스퀘어랩에 입사한 지는 1년 6개월 정도 되었네요. 저는 조인하게 된 이유가 좀 독특한데, 스퀘어랩이 만든 ‘카이트’ 앱을 일반 사용자로 사용하다 서비스가 마음에 들어서 개발자를 찾아봤더니 마침 제 후배가 있는 회사에서 만든 거였습니다. 그 일이 계기가 되어 몇 번 사무실에 놀러 가게 되었는데 자연스럽게 발목이 잡혔습니다. (웃음)


영재님은 입사 때부터 장기 리모트로 일하신다고 들었는데, 지금까지 진행하셨던 장소를 소개해주실 수 있을까요?

네, 사실 원래 다니던 회사를 그만두고 아내와 같이 여기저기 여행하면서 개인 개발을 하려던 계획이 잡힌 상태에서 스퀘어랩에 조인을 하게 되었습니다. 그래서 입사할 때 부터 장기 리모트와 관련해서 충분한 논의를 진행했고 그 결과 지금까지 장기 리모트를 진행하고 있습니다. 작년 6월부터 미국 서부, 그랜드 캐니언 - 샌프란시스코 다녀왔고 9월엔 제주도에서 3개월, 12월 말에는 치앙마이로 옮겨서 올해 2월 초까지 있었습니다.


인터뷰 권영재 1


흔히, 원격 근무에 대한 ‘생산성 감소’라는 우려의 목소리도 존재하는데, 직접 경험자로서 어떻게 생각하시는지 궁금합니다.

사람마다 다를 것 같습니다. 저는 편한 옷 입고 편한 환경에서 일해야 업무 효율이나 퍼포먼스가 더 나는 사람이다 보니, 원격근무가 더 잘 맞습니다. 일단 출퇴근으로 인한 체력소모가 최소화 되기 때문에 좀 더 여유가 생기고, 개인적으로는 사무실보다도 조용한 집에서 코딩에 집중 할 수 있는 것 같습니다. 물론, 오프라인에서 만나 빠르게 얘기하고 결정해야 하는 이슈들도 있기 때문에 이런 부분은 사무실에 출근해서 일하는 것 보다는 효율이 좀 떨어지지만, 최대한 Jira나, Confluence 등의 협업 도구를 활용해 원활하게 의사소통이 이뤄지도록 더 노력하고 있습니다. 이런 협업 도구들은 대부분을 ‘글’이 매개체이다보니, 결국 원격 근무를 하면서도 커뮤니케이션에 문제가 없으려면 평소에 ‘글’ 을 통해서 사람들과 빠르고 정확하게 의사소통 할 수 있는 능력이 필수적이라고 생각합니다.


장기 리모트를 하면 업무 환경이 계속 달랐을 것 같은데, 집중력이나 업무 효율을 높이기 위해 가장 중요하게 생각했던 아이템은 무엇일까요?

무조건 호텔이나 숙소를 잡을 때, 책상과 의자가 있는 곳으로 잡았습니다. 아무리 가격이 비싸더라도요. 또, 장비도 중요해서 22인치 모니터나 키보드도 항상 차에 싣고 다니며 어디서든 업무를 할 수 있게 노력을 많이 기울였습니다. 심지어 제주도에 갈 때는 제가 가장 좋아하는 의자를 분해해서 차 뒷좌석에 실어 갔습니다.


인터뷰 권영재 2 인터뷰 권영재 3


이제 업무에 관련한 부분을 좀 더 알아보고 싶은데요. 지금 가장 몰두하고 있는 Task는 무엇인가요?

현재 ‘카이트’에 차이(CHAI)라는 결제 시스템을 붙이는 업무를 하고 있습니다. 기존 항공권 결제 방식은 결제 정보를 항공사에 넘겨서 항공사가 결제를 진행하는 방식인데요, 이 방식은 저희 입장에서 수수료 부담은 적지만 다양한 결제방식을 지원하지 못하는 단점이 있습니다. 이 부분을 개선하고자 차이 또는 카카오페이와 같은 간편 결제 방식으로도 항공권 결제가 가능하도록 카이트 시스템을 개선중입니다.


종종 회사의 조직 문화가 중요하다는 얘기를 듣는데 개발자들 사이에도 개발 문화가 존재한다는 얘길 들은 적이 있습니다. 스퀘어랩에도 개발 문화가 존재하는지 궁금합니다.

네, 확실히 존재하고요. 스퀘어랩의 개발 문화를 가장 잘 느낄 수 있는 부분이 바로 ‘코드 리뷰’라고 생각합니다. 스퀘어랩 개발자들은 일상적으로 자유롭게 서로의 코드를 리뷰하고 피드백을 전달하는데요. 이런 과정을 통해 서로의 업무 퀄리티가 높아짐은 물론 다른 팀원의 업무를 더욱 잘 파악하고 인지할 수 있습니다. 누군가 부재하더라도 신속하고 정확하게 해당 업무를 대신할 힘도 여기서부터 시작되죠. 코드 리뷰는 단순 누군가의 것을 봐준다, 체크한다에 그치는 것이 아니라 더 유연하고 효과적이면서 함께 성장하는 개발 조직을 만드는 원동력이 된다고 생각합니다.



영재님은 인터뷰 내내 조직을 유연하게 만들고 업무 효율을 높이는 코드 리뷰 문화를 강조하였습니다.

코드 리뷰는 업무에 가장 필요한 의사소통 역량을 습득하는데도 도움이 많이 됩니다. 스퀘어랩에서는 코드 리뷰 시, 지켜야 하는 가이드라인이 있는데요. 어떤 형식으로 어떻게 진행되어야 하는지부터 시작해서 어떤 어투로 진행해야 하는지에 대한 상세 부분까지 모두 정해져 있습니다. 실제 서로의 코드에 대해 리뷰할 때 상대방의 기분을 상하지 않게 하면서, 리뷰의 양도 조절하고 당사자가 이해할 수 있게 하려 노력합니다. 이런 노력은 전체적으로 불필요한 의사소통 공수를 줄이고 업무 외 복잡한 일들을 만들지 않아 더욱 건강한 조직 문화를 만드는데 도움이 되고 있습니다.


두 가지 질문을 함께 드리려고 합니다. 처음에 스퀘어랩을 선택한 이유가 무엇이었는지, 그리고 스퀘어랩에 조인하고 나서 처음에 선택한 이유가 그대로 유지 되었는지 궁금합니다.

앞서 말했듯 ‘카이트’라는 서비스가 아주 마음에 들었고 이런 서비스를 만드는데 동참하고 싶어서 조인하게 되었습니다. 제가 조인했을 땐 스퀘어랩이 작고 빠른 조직이었는데 점차 규모가 커짐에 따라 현재는 맡은 프로덕트도 늘고 회사 직원분들도 40여 분 정도로 많아졌는데요. 이렇게 더 다양하고 많은 사람과 만나고 업무를 하다 보니 스스로도 계속 성장하는 느낌이 듭니다. 다른 분들에게 자극받기도 하고 스스로 더 깨우치는 일도 있고. 끊임없이 성장하고 배울 수 있는 환경으로 변모해가는 점이 참 좋다고 생각합니다.


스퀘어랩에서 현재 사용하는 기술스택은 어떻게 되는지?

서버쪽에서는 Node.js, Java, Kotlin, gRPC, vert.x, Elasticsearch, Docker, Kubernetes, MySQL, Redis, AWS 등을 사용하고 있고 클라이언트 쪽에서는 Typescript, React, React native, Swift, Kotlin 등을 사용하고 있습니다. 특히 서버는 모든 서비스가 처음부터 MSA(Micro Service Architecture)로 구성되었기 때문에 상황에 따라서 개발자들 간의 논의를 거쳐서 원하는 언어나 기술 등을 이용해 유연하게 개발할 수 있는 기반을 갖추고 있습니다.


인터뷰 권영재 4 인터뷰 권영재 5


영재님은 업무 외에도 코로나19 관련 실시간 상황을 알려주는 웹사이트(https://coronaboard.kr/)를 개발하여 많은 이들이 코로나19 확산 상황을 신속하고 정확히 파악할 수 있게 많은 도움을 주고 있습니다.

인터뷰 권영재 6


코로나19 관련하여 직접 개발하신 상황판 웹사이트가 굉장히 화제가 되었습니다. 이 정도로 많은 분이 사용할 거라 예상하셨나요?

예상 못 했습니다. 아내와 제가 둘 다 개발자이다 보니 정확하지 않은, 정제되지 않은 데이터가 돌아다니는 것을 그대로 보지 못합니다. 게다가 모든 사람이 알아야 할 중요한 정보이기 때문에 저희가 정제해서 더 편리하고 간편하게 보여주자는 아쉬운 마음에 시작하게 되었습니다.


상황판을 만들면서 가장 중요하게 생각하거나 신경 쓰신 부분은 무엇인가요?

아까 언급했지만, 이 프로젝트의 시작도 데이터 검수였고, 지금도 데이터 검수가 가장 중요하다고 생각합니다. 워낙 많은 정보가 생겨나고, 그 안에서 검증되지 않은 정보까지 전달될 수 있어 확인하고 또 확인합니다. 그렇기 때문에 업데이트가 느려지기도 해 비난 문의를 종종 받기도 합니다. 하지만 전 세계적으로 피해가 심각하고, 예민하게 받아들여야 하는 상황이니 저나 아내도 정확하고, 신속하게 데이터를 검수하고 전달하려고 합니다.


데이터가 실시간으로 바뀌고 워낙 수집해야 하는 정보의 양 자체가 많아 업무를 병행하며 웹사이트를 관리하기가 굉장히 힘들 것 같은데, 어떻게 시간을 할애하고 계시나요?

초반에 프로젝트 셋업이나 서버 구성을 제가 진행하고 아내가 프론트엔드 작업과 데이터 검증하는 업무를 진행했는데요. 철저하게 업무를 나눠 진행하다 보니 효율이 조금씩 더 오르더라고요. 그리고 참 고맙게도 매일 데이터 업데이트는 대부분 아내가 진행하고 있어서 저는 상대적으로 손쉽게 진행할 수 있었습니다.


평상시에도 업무 외에 다른 영역에 대한 아이디어가 많으신 편인가요? 코로나19 상황판 외에 다른 작업을 해보신 경험이 있다면 소개 부탁합니다.

공익적인 프로젝트는 저도 처음이었는데, 이번 일을 진행하다 보니 공공데이터나 이런 것들이 정리 되지 않은 채 흩뿌려져 있는 경우가 많아서 안타까웠습니다. 앞으로 공공데이터를 재가공해서 사람들이 조금 더 손쉽게 쓸 수 있도록 도움이 되면 좋겠다라는 생각은 가지고 있습니다.



한편, 스퀘어랩은 역량 있는 개발자 채용을 꾸준히 진행하고 있는데 매니저로서 모든 면접에 참여하고 있는 영재님을 통해 스퀘어랩의 채용 방식과 원하는 팀원에 대한 이야기를 들어 볼 수도 있었습니다.


모든 개발자 채용 면접에 참석하시는데, 영재님이 생각하는 함께 일하고 싶은 동료는 어떤 분인지?

일단 기본적인 개발 실력은 당연히 갖춰야 합니다. 여기서 조금 더 나아가 저희가 서비스를 만드는 회사이기 때문에 커뮤니케이션 능력을 상당히 중요하게 생각합니다. 서비스 개발이라는 것이 개발자 혼자서 개발을 잘한다고 성공할 수가 없습니다. 팀원들과 함께 사용자가 원하는 방향이 어떤 방향인지 끊임없이 논의하고 시행착오를 거쳐 가면서 만들어야 합니다. 그러기 위해서는 러프한 기획 사항이 있을 때 먼저 개발자가 기획 의도를 잘 파악하고 문제 정의를 명확히 해줘야 합니다. 기획에서 빠진 부분이나 기술적으로 미리 고려되어야 할 부분이 있다면 피드백을 빠르게 요청해서 개선되도록 의사소통 해야 하는데 실제로 이렇게 문제를 정의하고 더 좋은 방향으로 개선하려고 노력하는 개발자분을 찾기가 쉽지는 않더라고요.


스퀘어랩 개발자 채용은 어떻게 진행되는지요?

우선 제출한 핸드아웃을 기반으로 30분 정도 이야기를 나눕니다. 해당 개발을 하면서 어떤 고민을 했는지부터 기술 전반에 관한 질문 답변을 진행하고 이후에 30분 정도 코딩 면접을 진행합니다. 앞서 말했듯 서비스를 만드는 회사다 보니 수학적인 알고리즘같이 고난도 문제보다는 일반적인 실무에서 쓰는 개발 역량 위주로 평가가 이뤄집니다. 면접자분이 코드 초안을 작성해주시면 해당 내용을 기반으로 이런저런 이야기를 나눕니다. 왜 이렇게 작성했는지, 이런 방식은 고민해보았는지 등을요. 이 과정이 스퀘어랩에서 실제로 진행하고있는 코드 리뷰 과정과 동일하다고 보시면 됩니다. 처음엔 실수했더라도 여러 사람의 피드백을 통해 개선점을 스스로 찾아가는 분들이 계시는데 대체로 이런 분들이 채용되는 것 같습니다. (웃음) 이렇게 1차 면접을 마치고 대표님과 2차 면접을 진행하시면 최종 결과를 받아볼 수 있습니다.



영재님은 채용 관련한 인터뷰를 진행하며 스퀘어랩에서 함께 일하게 된다면 이런 부분은 보장한다며 역량 있는 개발자분을 모시기 위한 셀프 PR을 진행하셨습니다.

앞서 말했듯 스퀘어랩은 코드 리뷰 문화가 정착되어있습니다. 다른 분들이 지금까지 개발하면서 쌓아왔던 지식을 시간을 내서 누군가에게 공유한다는 게 사실 말처럼 쉬운 일은 아닙니다. 하지만 코드 리뷰를 통해서 틈틈히 그런 지식들을 서로에게 공유 하고 논의해 볼 수 있게 됩니다. 이 과정에서 시니어 개발자는 주니어 개발자들에게 다양한 조언을 줄 수 있고, 주니어 개발자들은 그 나름대로 새로운 관점이나 방식을 제시할 수 있다보니 반대로 시니어 입장에서 새로운 것들을 깨닫게 되는 경우도 많이 있습니다. 그렇기 때문에 개발자로서의 의지와 노력만 있다면 스퀘어랩에서 다른 회사보다 2배는 더 빠르게 성장할 수 있다고 확실하게 말할 수 있습니다.


이제 스퀘어랩 인터뷰 공식 질문을 드리려고 합니다. 영재님에게 500 에러란?

아. 빨리 컴퓨터 앞에 앉아서 고쳐야죠. (웃음) 500 에러는 자주 나진 않는데 그래도 종종 나는 편인 것 같습니다. 500에러나 500 에러에 준하는 에러는 제가 아니더라도 누군가는 빨리 확인해서 빨리 문제를 파악해야 합니다. 저희는 서로의 업무를 명확히 파악하고 있기 때문에 누구 한 명을 담당자로 지정하지 않고 문제를 발견한 사람이 먼저 처리하려고 노력하고 있습니다.


영재님에게 여행이란?

여행은 새로운 경험을 하고, 새로운 걸 배울 수 있는 자극제라고 생각합니다. 저와 아내는 언어 배우는 것 역시 좋아하는데요. 되도록 그 나라에 방문하면 현지어 메뉴로 음식을 주문할 수 있도록 항상 공부하고 시도하는 즐거움이 있습니다. 이처럼 여행이라는 행위는 저를 계속 성장시키는 동력이 될 뿐만 아니라 인생을 더욱 새롭고 의미 있게 만드는 자극제입니다.


맺음말

스퀘어랩 서비스뿐만 아니라 공익을 위해서도 자신의 능력을 가감 없이 발휘하며, 뜨겁고 치열하게 몰두하는 스퀘어랩 서버 개발자 영재님을 만나보았습니다. 영재님 덕분에 앞으로 더 단단하고 알차게 변화될 스퀘어랩 서비스에 거는 기대가 점점 커지는 것 같습니다. 스퀘어랩 멤버 인터뷰는 앞으로도 계속됩니다. 그다음 주인공은 누구일지 많은 기대 부탁드리면서 다음에 더 알찬 인터뷰로 찾아오겠습니다.