짱짱 개발자의 길

2022-11-27
Cover Image for 짱짱 개발자의 길

뱅크샐러드에서 서버 엔지니어로 일을 하고 있는 남광우라고 합니다.

어떻게 처음 개발을 하게 되었나요?

컴퓨터공학과를 전공했지만, 전공 외에는 아무것도 몰랐고 개발을 처음 접한 건 일을 하면서예요. 일을 하면서 Git을 처음 써봤는데, 제가 컴퓨터공학과에 다닐 당시에 컴퓨터 학과에서는 Git을 사용하지 않았거든요. 과제를 제출할 때도 그냥 소스 코드를 압축파일로 메일로 보내거나 했어요. 일을 시작하기 전까지도 사실은 제가 개발자를 하게 될지 몰랐었어요.

그럼에도 컴퓨터공학과를 전공한 이유

고등학생 때 좋아하는 과목이 수학과 과학이었는데, 제가 이론적으로 수학이나 과학을 파고드는 걸 좋아하는 사람은 아닌 것 같은 거예요. 그것보다는 문제를 해결하는 것 자체를 좋아한다고 생각했어요. 그런 측면에서 컴퓨터 언어가 문제를 풀고 퍼즐을 맞추는 것 같은 느낌이 들어서 선택하게 됐어요. 진학 후에 그렇게 열심히 하지는 않았어요. 대학교 2학년 때 전자전기와 컴퓨터 공학과 중 선택할 수 있었는데, 저는 컴퓨터 공학 가는 걸 선택했었죠. 그런데 그 당시에는 컴퓨터 공학에 비해서 전자 전기가 엄청 인기가 있어서 저는 공부를 안 해도 컴퓨터공학은 갈 수 있구나 생각하고 게임과 동아리 활동만 했어요.

컴퓨터공학과 수업은 잘 맞았나요?

전공 기초는 그래도 열심히 했었어요. 데이터베이스, 운영 체제, 알고리즘, 자료 구조 수업까지는 열심히 들었던 것 같아요. 그런 수업들이 프로그래밍적인 사고를 가능하게 만드는 역할을 나중에 했다고 생각해요. 전공 심화까지 열심히 했으면 더 유능한 개발자가 됐을 것 같아요. 예를 들면 이제 멀티 프로세싱이나 멀티 프로세스, 컴파일러, 네트워크, 보안과 관련된 수업이 전공 심화에 해당하는 수업이었거든요. 그런데 여기서부터 게임을 하느라 제가 공부와 담을 쌓아요. 일을 하면서 돌아보니 들었던 수업들이 일하는 데 많이 도움이 돼서 전공 심화까지 잘했으면 더 도움이 됐겠다는 생각이 들어요.

어떻게 개발자로 처음 일하게 되었나요?

첫 직장인 뱅크샐러드에 어떻게 오게 됐는지부터 얘기를 해야 하는데, 저는 2018년 뱅크샐러드에 지인이 있어서 왔어요. 정규 서버 엔지니어로 뽑은 것도 아니고, DB 샘플링 같은 단순 업무를 할 수 있는 사람이 필요하다고 해서 일을 시작하게 됐어요. 전공 공부할 때 CS 공부나 프로그래밍이 재미없지는 않았으니까 해보면 재밌겠다는 생각이 들어서 했죠.

저는 뱅크샐러드에 와서 처음으로 개발했다고 생각해요. 실제로 사용자가 사용하는 제품을 개발하는 것과 학부 시절에 하던 프로그래밍 언어 과제는 다르더라고요. 그런데 막상 해보니 무언가를 만들고 결과물을 보는 일이 너무 재밌더라고요. 학교에서 저는 열심히 하지는 않았거든요. 오히려 게임이 더 재밌어서 게임에 인생을 바치던 중이었는데, 우연한 기회로 일하게 됐고 그때부터 개발에 흥미를 느끼게 됐죠. 그러면서 이제 본격적으로 계속해서 개발자를 하게 됐어요.

어떤 일들을 했나요?

처음에 들어왔을 때는 SQL을 사용해서 데이터를 추출해서 엑셀로 지표를 정리하는 일들을 했어요. 그 이후에는 서버 엔지니어가 부족했기도 하고, 제가 파이썬을 다룰 수 있기도 해서 이후에는 서버 엔지니어로 일을 시작하게 되었어요. 그래서 처음 했던 일이 자동차, 부동산과 같은 자산들을 연동하는 일이었어요. 데이터 내보내기 작업도 했고, 카카오 뱅크 연동하는 작업으로 처음 Go를 사용하기 시작했고, 또 하나의 큰 모놀리식 서비스를 MSA로 쪼개는 작업도 했어요. 마이데이터 라이선스를 따기 위한 망 분리 작업을 했고 지금은 이제 서비스 플랫폼이라는 조직에서 이것저것 잡다한 일들을 하고 있네요.

재밌었던 경험

온전히 몰입해서 일할 수 있을 때가 가장 재밌는 것 같아요. 뭐든지 기능 개발을 할 때도 그렇고 버그를 수정할 때도 그렇고 머리를 써서 온전히 고민해서 이런 문제를 이렇게 풀면 되겠다 싶을 때? 고민했던 문제가 창의적이거나 좋은 방법으로 풀리면서 성취감을 느꼈을 때 재밌죠. 그런 과정 자체도 재밌고 결과물로 성취감도 얻는 것도 재밌어요. 몰입하는 경험이 주는 즐거움이라고 생각해요.

기억에 남는 경험

제가 입사하고 그 주 일요일 아침에 뱅크샐러드 데이터베이스를 실수로 지워버렸어요. 데이터를 추출하는 작업을 하면서 스크립트를 작성하다가 잘못 작성해서 다시 해야겠다고 생각하고 로컬에 설치되어있는 DB를 날리려다가 원격 DB를 날려버린 거죠. 그 당시에는 권한 분리가 잘 되어있지 않았거든요. 제가 DB를 날렸다는 사실을 알고 잠시 도망칠까 생각했어요. 몇 분간은 아무런 생각이 안 들더라고요. 그 당시에 저는 정규직도 아니고 인턴도 아닌 알바였어서 회사 메신저에 접근할 수 있는 채널이 몇 개 없었어요. 그래서 회사에 다니고 있던 지인분에게 전화를 드렸는데 이미 회사는 난리가 난 거예요. 그래서 우선 서비스 점검을 걸고, 다행히 계속 스냅샷을 찍고 있어서 롤백을 했죠.

제가 DB를 날려버린 이 이야기를 주변 사람들에게 할 수 있으면 하려고 하는데, 크리티컬한 장애에 대해서 심각성을 얘기할 수도 있고 드랍 데이터베이스를 하고 난 후 회사에서 저에게 보여준 태도가 정말 좋았어요. 우선은 장애잖아요. 일요일 아침에 장애를 수습하고 다음 날 월요일 돼서 전체 회의 시간이었는데, 저는 구석에서 벌벌 떨고 있었어요. 그런데 대표님이 우선은 이 장애에 대해서 전적인 책임은 나한테 있다고 말씀하시더라고요. 그 말을 듣고 비난하는 회사는 아니구나 라는 생각이 첫 번째로 들었고, 두 번째는 이제 사후 부검을 하는데 그 회의에 있던 개발 구성원들이 보여줬던 태도가 인상적이었어요. 지금 회사가 가지고 있는 사후부검 문화와 비슷하게 사람을 탓하는 게 아니라, 어떤 문제와 어떤 원인 때문에 발생했는지에 대해서 이야기 하더라고요. 문제를 해결하기 위해 어떤 시스템이 필요한지에 대해 논의하는 모습을 보고 놀랐어요. 그러면서 이 회사에서 일 하는 게 재밌기도 하고, 회사가 보여준 태도가 좋아서 인턴 생활을 시작하게 됐어요. 그렇게 6개월 동안 인턴 생활을 더 하고, 정규직으로 입사하게 됐죠.

휴직

그렇게 계속해서 일해오다가 작년 4월 정도에 휴직을 한달 반 정도 했어요. 그 당시에는 육체적으로 지쳐있던 상태였어요. 당시에 진행하고 있던 프로젝트를 개발적으로 이끌어갈 사람이 필요한 상황이었고, 회사에서 제안이 왔을 때 해보겠다고 했지만 부담감과 스트레스와 막막함이 섞여 오면서 어디서부터 어떻게 해야 할지 모르겠더라고요. 이런 것들 때문에 스트레스를 받아서 쉬게 됐어요.

다녀와서 어느 정도 일시적으로는 회복이 됐었는데, 일하는 강도나 방식이 휴직하기 전과 동일하면 금방 다시 되돌아가겠다라는 생각이 들더라고요. 실제로도 그랬고요. 복직하고 나서 어느 정도 괜찮아진 상태로 일을 하다가 이전이랑 똑같이 일하니까 다시 되돌아가면서 힘들어지더라고요. 이러면 안 되겠다 싶어서 그때부터 일을 많이 놓기 시작했어요. 예를 들면 기획과 관련되어서 논의할 것들이 있을 때 서버와 직접적으로 관련이 없는 내용이면 참여를 덜하기 시작했어요. 서버 개발을 어떻게 해야 할지는 다른 분들이 해줄 수는 없으니까 그 부분에만 집중하고, 그 외의 것들은 다른 분들한테 의지했어요. 서버 개발 자체는 지금까지 계속해왔던 게 있고 어느 정도 익숙하다 보니 조금씩 나아지더라고요.

일을 놓는다는 것

일을 어느 정도는 놓아야지 조금 더 오래 갈 수 있는 것 같아요. 컨디션이 좋으면 새롭게 고민해야 할 일들을 더 가져와서 할 수 있는데, 힘들어지면 그런 일들을 놓을 줄도 알아야 지속해서 계속 일을 할 수 있더라고요. 스스로 욕심도 있고, 회사에 일도 많고, 하면 잘 할 수 있을 것 같다는 생각들이 파멸의 길로 갈 수 있는 거죠. 책임감이 강하신 분 중에 이렇게 못 놓는 분들이 많은 것 같아요. 책임감으로 힘들지만 참으면서 해오다가 폭발하시는 분들이 생기게 되는 거죠. 계속 성장을 하되 지속해서 일할 수 있는 방법을 스스로 연구해서 찾아야 한다고 생각해요.

제가 찾은 방법은 일을 안 한다. 놓는 거죠. 일을 놓는다는 게 사실 일을 안 한다고 했지만 생략된 말이기는 해요. 정말 고민해서 난이도가 높은 일을 안한다예요. 단순 반복적인 작업도 분명히 많거든요. 사실 그런 단순 반복적인 작업에서 스트레스는 거의 받지 않을 거잖아요.

난이도가 높은 작업을 해야 성장한다는 느낌을 받을 수는 있는데, 그 작업을 위한 에너지를 비축하는 것도 필요해요. 난이도가 높은 작업에 대한 고민을 할 수 있는 에너지가 필요하니까요. 반면에 단순 반복적인 일들은 에너지가 없을 때도 큰 고민 없이 할 수 있단 말이죠. 평소에 어느 정도 고민을 해둔 것들이나 백로그 같은 것들이 있을 텐데 그런 것들을 조금씩 하면 휴직을 해야 하는 상황까지 오지 않을 수 있어요. 한마디로 워크&워크 밸런스를 맞출 수 있죠. 난이도 높은 일과 난이도 낮은 일의 밸런스.

협업하기 좋은 동료란

서로가 신뢰를 바탕으로 같은 목적을 바라보고 있는가가 가장 중요한 것 같아요. 이 상태가 가장 협업하기 좋은 동료인 것 같아요. 예를 들면 회사의 미션에 공감하는 사람들이 많으면 많을수록 같은 목적을 가지고 얘기를 할 수 있잖아요. 작게 보면 팀의 목표, 이번 분기 목표 이런 것들도 있을 텐데 그런 것들이 같이 동기화가 잘 돼 있다면 미스 커뮤니케이션도 적고 협업하기 좋지 않을까 싶어요.

회사에서 잘 성장하는 방법

아무래도 성장을 위해서 가장 중요한 건 동료가 아닐까 싶어요. 주변에 있는 사람들에게 롤모델 삼을 수 있는 부분이 있어야 하는 것 같아요. 주변 동료들이 각자 어떤 장점을 가졌는지 보려고 많이 노력하고 있어요. 그런데 경력이 없는 신입 입장에서는 절대적인 시간을 투자하는 게 가장 성장이 빠르죠. 그 시기에는 어떤 사소한 작업이라고 해도 모든 게 새롭고 배울 만한 것들이거든요. 하기만 하면 배우는 것들이 많은 거죠. 그래서 시간 대비 바로 성장을 할 수가 있어요. 어느 정도가 지나면 그게 정체되는 시기가 오는데, 그때는 이제 주변의 동료들을 보고 성장할 수 있다고 생각해요. 그들이 어떻게 일하는지 살펴보고 어떤 공부를 더 할 수 있을지에 대한 정보를 넓혀놔야 자신에게 맞는 방향을 찾아서 성장을 할 수 있는 것 같아요. 다른 사람의 장점이나 인사이트나 어떤 개발의 트렌드나 이런 것들을 접하지 않으면 공부하더라도 그 공부 자체가 막연한 공부가 될 수밖에 없거든요. 알고리즘 문제를 푸는 것도 좋지만 사실 그것만으로는 성장에 한계가 있잖아요. 주변에 좋은 사람들하고 얘기를 많이 하는 게 중요하다고 생각해요.

요즘 관심 있는 것

이 질문을 들으니까 진짜 하는 게 없네요… 재미없는 사람인가 봐요. 주말에는 잠만 자요. 일이 취미이자 직업인 것 같아요.

광우님에게 개발이란…

개발은 게임과 다를 바 없다. 몰입해서 뭔가를 이루어내는 과정이 게임하고 굉장히 비슷하다. 거기에서 느끼는 성취감이 정말 짜릿하고 계속할 수 있겠다는 생각이 들어요. 예전에 회사 대표님이 창업하고 회사를 만들어가는 게 게임과 비슷한 면이 있다고 얘기한 적이 있는데 그 이야기에 공감을 많이 했어요. 창업해서 성공하는 게 게임에서 이기는 방법과 비슷하다는 차원에서 말씀하신 거죠. 그래서 저는 똑같이 컴퓨터 앞에 앉아있지만 그게 게임 중독에서 일 중독으로 바뀌었다고 생각해요.

집중이 안 될 때 어떻게 하나요?

습관이 있는데, 막 돌아다녀요. 앉아 있을 때 약간 집중이 안 되면 엉덩이가 들썩거리고 안절부절못하는 상태가 돼서 돌아다니면서 고민해요. 가만히 앉아서는 고민이 잘 안되더라고요. 그런데 돌아다니면서 하면 훨씬 잘 돼요. 그런데 또 돌아다니면서 다른 분들 눈을 마주치면 부담스러울 수 있으니까 이제 땅을 보고 걸어요. 그래서 가끔 왜 이렇게 땅을 보고 돌아다니시냐고 질문하시더라고요. 눈이 마주치면 사람이 인식되면서 온전히 고민을 못 하는 이유도 있어요. 그래서 그냥 땅을 보고 돌아다니면서 고민하고 있습니다.

앞으로 광우님은…

짱짱 개발자가 되고 싶어요. 어딜 내놔도 어느 정도 잘하는 그런 개발자. 하나만 잘하는 스페셜리스트보다도 두 세 가지 정도를 아울러서 어느 정도는 할 수 있는 개발자가 되고 싶어요. 백엔드가 결국 비즈니스 로직을 구현하는 거잖아요. 그러면 반대로 기획 쪽으로 기여를 해볼 수도 있는 거죠. 특히나 회사의 규모가 커지면 커질수록 두 가지 이상의 일을 어느 정도 할 수 있는 역량이 필요하다고 생각해요. 회사가 크면 클수록 커뮤니케이션 비용도 커지거든요. 그런데 두 가지 이상의 일에 역량이 있다면 커뮤니케이션 비용을 엄청나게 줄일 수 있어요. 지속해서 운영 리소스를 소모하면서 처리하고 있는 일들을 시스템화하면 편해질 걸 알지만, 커뮤니케이션 비용을 쓸 만큼은 아니라 우선순위가 낮은 일들이 많거든요.

개인적으로는 천억 부자가 되고 싶어요. 천억 부자가 되어서 뭘 하고 싶은 건 없고 그냥 많았으면 좋겠어요. 돈이 없으면 이제 해야 하는 걱정들이 있을 거잖아요. 갑작스럽게 어떤 큰일이 생길 수도 있고 돈이 필요한 일이 생길 수도 있고 사기를 당할 수도 있고 갑자기 내가 몸이 아플 수도 있고 병원비가 필요할 수도 있고. 그런 걱정이 여유가 생기면 생길수록 마음가짐에도 여유가 생기니까요. 결론은 마음의 부자가 되고 싶다. 그런데 마음의 부자가 되려면 실제로 부자가 되면 된다. 돈이 없다고 해서 마음의 부자가 안 되는 건 아니지만 없는 것보다는 많은 게 좋지 않겠어요.

작업하실 때 선호하는 장소

어두운 곳을 좋아해서, 집 근처에 정말 어두운 카페가 있는데 그 카페에서 작업하는 걸 제일 좋아해요. 맥북 열면 눈부실 정도의 어두움이 좋아요. 그래서 집도 어둡게 하고 있고, 회사 1인실에서 스탠드 조명만 켜두고 하는 것도 좋아해요. 하지만 대부분의 시간에 회사의 제자리에서 작업하기는 합니다.

취미

자주 안 하지만 그나마 게임

쉬는 시간에는

유튜브 영상 보기. 자주 보는 채널은 침착맨과 안될과학.

요즘 가장 중요하게 생각하는 것

어떻게 하면 일을 더 많이 할 수 있을까? 어떻게 하면 더 퍼포먼스를 더 잘 낼 수 있을까? 이런 고민을 하고 있어요. 주어진 시간 내에 어떻게 잘해야 되는지를 고민해 보니까 더 난이도가 많이 높아진 것 같아요.

시간과 돈에 구애받지 않고 직업 한 가지를 더 가질 수 있다면

실력도 상관없다면 인터넷 방송이요. 유튜버나 트위치 스트리머나. 잔잔하게 약간 소심한 관종 느낌으로 그냥 일상적인 내용이나 수다 방송이라든지 해보고 싶어요. 아니면 중간중간 게임도 할 수도 있고요. 하고 싶은 마음은 있는데 워낙 성격이 소심해서 제가 어버버할 게 보여서 무섭기도 해요.

개발자가 되고 싶은 사람들 또는 이제 막 개발을 시작한 사람들을 위해서 해주고 싶은 말이 있다면

개발을 왜 하려고 하는가? 에 대한 고민을 하는 게 좋을 것 같아요. 거기서부터 시작을 해서 내가 개발이 적성에 맞고 재밌어서 하는 건지 아니면 트렌드에 따라서 개발 공부를 한 건지를 고민해보는 거죠. 그러면서 나한테 맞는 개발의 길을 찾아야 해요. 개발의 길은 정말 다양하고 영역 넓거든요. 개발자가 성장하기 위해서는 어느 정도 흥미와 적성이 있어야 하는데, 개발 영역은 다양하기 때문에 그중에 하나는 맞을 것이다. 결국 본인이 잘 할 수 있는 걸 찾아야 해요. 단순 반복적인 작업만 하면 어느 정도 비슷하게는 할 수 있겠지만, 개발자로서 퍼포먼스를 잘 내기 이런 위해서는 이런 과정이 필요하다고 생각해요.