13년 차 개발자, '진짜 개발자'가 되다. | 수료생 강연호님
F-Lab : 상위 1% 개발자들의 멘토링
<span class="jh ji hj jd b be jj jk l jl jm" style="border:0px solid var(--chakra-colors-gray-200);box-sizing:border-box;overflow-wrap:break-word;" id="eb4b" data-selectable-paragraph=""><strong class="jd hk" style="border:0px solid var(--chakra-colors-gray-200);box-sizing:border-box;overflow-wrap:break-word;">📌 Editor's comment</strong></span><br><br>연호님은 13년째 개발 외길 인생을 걷고 계신데요. 인터뷰를 하면서 '배움과 성장에는 끝이 없다'라는 생각이 들었어요. 시니어 개발자로서 멘토링에 찾아오기까지의 여정과 멘토링을 하면서 어떤 성장 과정을 거치셨는지 모두 담아봤습니다! 💪🏻
안녕하세요 연호님! 간단한 자기소개 부탁드립니다.
안녕하세요. 저는 컴퓨터 공학과를 졸업한 시니어 개발자 강연호입니다. 13년째 지방에서 자바 백엔드 및 다양한 업무를 수행하고 있어요. 2011년부터 개발 업무를 해왔고, 1년차 때에는 where 절도 모르는 개발자였지만 다양한 프로젝트를 리딩하며 많은 경험을 쌓았습니다. 현재는 회사에서 운영 유지보수 공통팀 리더를 맡고 있습니다.
멘토링 하기 전에는 어떤 일을 하셨는지 궁금해요.
개발자로 사회생활을 시작해서 현재까지 쭉 개발 일을 하고 있는데요. 9년 동안 한 회사에서 SM과 SI 프로젝트를 번갈아가며 화면 개발, 분석, 설계, 제안서 작성, 고객과의 업무 협의, PL 등 다양한 경험을 쌓았어요.
그런데 오랫동안 같은 회사에서 일하면서 기관의 개발 및 유지보수 업무를 맡아서 이력과 경력은 가득 차게 되었지만 '내가 개발자인가?' 라는 의문이 항상 들더라고요. 그래서 9년차에 자타의적으로 회사를 나와 프리랜서 개발 일을 해보기도 했는데 환경만 변했을 뿐 제 자신은 변하지 않았죠. 발전하기 위해 어떻게 해야 할지 고민하다가 부트캠프를 알게 되었고 그 중에서 멘토와 멘티가 매칭되어 진행하는 F-lab을 알게 되었어요. 멘토님들의 화려한 이력에 신뢰가 많이 생겼고, 요즘 대기업 및 서비스 기업들에서는 어떤 기술 스택을 사용하고 어떤 문화를 가지고 개발을 하는지에 대한 경험을 해보고 배우고 싶어서 F-lab 멘토링을 시작하게 되었어요.
13년동안 연호님은 어떤 개발자였나요?
멘토링을 하기 전에는 개발자가 아닌 코더에 가까웠어요. 기본적인 프레임워크가 구축되어 있으면 기능만 붙이고 사용자 입장에서 생각하거나 이 코드에 어떠한 문제점이 있을지 고민하기보다는 당장에 화면을 찍어내는 수동적인 개발자였던 것 같아요. 스스로 발전할 생각은 하지 않고 항상 환경 및 프로젝트에 쫓겨 결과물을 내야 했거든요.
그렇게 반복된 생활을 하다 보니 어느새 9년차가 넘는 개발자가 되면서 다른 회사나 서비스를 운영했을 때의 문제점과 사용하는 언어에 대한 이해가 있는지 고민하게 되었어요.
13년 차 개발자로서 특별히 힘들거나 어려운 점이 있었다면요?
아무래도 지방에서 개발자로 지내는 것은 자체 서비스를 경영하는 회사 및 서울기업과는 많은 차이가 있어요. 비슷한 부분도 있겠지만 오래된 서비스들의 노후된 프레임워크, 개발자가 아닌 PL 등 현실적인 부분 및 주변 환경 자체가 능동적이거나 개발자로서의 프로의식을 갖기 어려웠어요. 물론 모든 지방 프로젝트가 그런 건 아니에요. (웃음)
현재 커리어에 얼마나 만족하고 계신가요?
개발자라는 직종은 평생을 공부해야 한다는 말이 있을 정도로 항상 끊임없이 공부를 해야하지만 어떻게 무엇을 왜 해야 하는지 인터넷 검색으로는 한계를 느껴서 막막한 상태였기 때문에 이를 해결할 수 있는 두 가지 목표를 가지고 멘토링을 시작했는데요.
첫 번째는 개발자로서 방향성을 잡는 것이었고 두 번째는 서비스 기업 이직이었어요. 결론적으로 멘토링을 수료하고 두 번째 목표는 이루지 못했지만, 첫 번째 목표는 이뤘다고 생각하고 있어요. 깊이 있는 공부라는 것이 어떤 것인지 몸소 느낄 수 있었거든요. 두 번째 목표는 지금도 계속 이뤄가는 중이지만 멘토링을 통해 한 단계 이상 성장한 개발자가 되었고 어느 정도 혼자서도 원하는 기술에 대해 공부하는 방향을 자연스럽게 잘 잡을 수 있게 되었어요.
Ch.1
13년 차 개발자, 성장의 시작
멘토링 참여를 결심한 계기가 궁금해요.
성장의 정체를 느낀 뒤, 반 년 정도 고민하면서 개발자로서 부트캠프를 했을 때의 장단점을 찾아보았고 여러 플랫폼을 통해 인터넷 강의와 부트캠프의 장단점을 비교했는데요. 결국 F-Lab을 선택한 가장 큰 이유는 대규모 서비스를 운영해보신 멘토님들의 경력이었어요. 타 플랫폼과 다르게 2:1 멘토링이라는 점도 마음에 들었습니다.
많은 생각을 한 결과 아무것도 하지 않으면 아무것도 일어나지 않을 뿐만 아니라 나도 변화하지 않을 것이라는 것을 깨달았고 멘토링 참여를 결심하게 되었던 것 같아요. 현재는 1:1로 바뀌었다고 들었는데, 기회가 된다면 다시 한 번 해보고 싶은 생각도 듭니다.
이야기를 듣다 보니, 멘토링을 신청하기 전 우려했던 점도 있으셨을 것 같아요.
다른 분들의 인터뷰를 보면 금액적인 부분에 부담을 느끼시는 분들이 많았는데 사실 저는 조금 다른 결의 걱정이 있었어요. 컴퓨터 공학과를 졸업했지만 오랜 시간 동안 이론 공부를 하지 않아 멘토님과 호흡을 맞추며 커리큘럼을 잘 따라갈 수 있을 지에 대한 부분이 많이 우려되었던 것 같아요.
역시 멘토님의 수업은 생각보다 수준이 많이 높았고 제 연차에 비해 실력이 따라주지 않고 회사에서의 업무량이 많아서 이론과 프로젝트를 병행하며 준비하다 보니 따라가기가 많이 벅찼어요. 시간은 한정적이고 학습해야 할 양은 많아서 회사 개발 업무보다 멘토링에 대한 부담감이 더 컸던 것 같아요.
첫 멘토링 시간에 어떤 느낌을 받으셨어요?
멘토링 첫 수업은 생각보다 긴장이 더 많이 되더라고요. 그래도 멘토님이 긴장을 풀어주시려고 많이 애써주셔서 조금 지나니 편해졌어요. 간단히 페어 멘티님과 자기소개를 진행한 후 앞으로 멘토링이 어떻게 진행될 거고, 어떤 방향성을 가져야 하는지 간단히 소개해주셨던 기억이 있습니다.
멘토링을 진행하면서 가장 기억에 남는 에피소드가 있으신가요?
제 멘토님은 Bright님이셨는데, 가장 기억에 남는 에피소드라고 할 게 없이 모든 멘토링 자체가 기억에 많이 남아요. 멘토님이 기술 질문을 하실 때 생각해보는 시간, 페어 멘티님과 의견 공유, 그리고 긴장감 등이 저를 발전시켰던 것 같아요. 사실 연차가 높은 시니어 개발자로서 누군가에게 배우거나 의견을 공유할 일이 정말 적거든요.
한번은 페어멘티님과 함께 진행한 모의 면접 멘토링 시간이 있었는데 면접자 입장에서만 생각하다가 면접관 관점으로 정반대의 시각에서 보니 어떠한 태도를 가지고 면접을 봤을 때 면접관에게 더 잘 어필할 수 있는지 감이 잡히더라고요.
Ch.2
간절함이 만든 시간
멘토님 이야기를 해주셨는데, 멘토님과는 어떻게 지내셨어요?
멘토링 시간 외에도 멘토님과 꾸준히 기술 질문을 주고 받았어요. 이 외에도 개발에 도움이 되는 유튜브, 개발 블로그 등을 수시로 보내주셔서 한 번씩 읽어보며 개발자로서 깊이 있는 공부에 대해 항상 인지하고 되새길 수 있었어요. 사실 요즘은 많은 언어와 프레임워크가 있어서 모든 것에 대해 깊이 있는 공부를 하는 것이 어려웠는데 멘토님께서는 자기 분야에 맞는 깊이까지만 공부할 수 있게 도와주셨어요. 이런 디테일 코칭을 통해서 현재 어떤 부분을 더 공부하고 집중해야 하는지 정확히 알 수 있어서 좋았어요.
아쉬웠던 부분도 있었나요?
아쉬웠던 부분이기 보다는 제가 연차에 비해 수준이 너무 낮았다는 점이 힘들었던 것 같아요. 기술 질문을 하고 싶어도 이것이 맞는지 틀린지에 대해 고민을 많이 하게 되더라고요. 멘토님을 귀찮게 해야 얻어가는 것이 많다는 것을 머리로는 알아도 실제로 내가 연차에 비해 너무 못해 보이지 않을까 이런 쓸데없는 걱정을 많이 했던 것 같아요. 나중에는 어차피 내돈내산이라는 생각 그리고 신입으로 차근차근 배워가는 중이라는 마인드셋을 가지고 많은 질문을 했습니다.
본업과 멘토링을 병행하는 건 어떠셨어요?
이 부분은 생각보다 굉장히 어려웠어요. 저는 가정이 있어서 가족과 시간을 보내면서 멘토링을 진행하고 업무도 처리해야 했는데요. 그러다 보니 하루에 공부할 수 있는 시간이 많이 부족했어요.
그럼에도 불구하고 너무 간절했기에 하루에 2~3시간씩은 꼭 시간을 내서 공부했어요. 시간이 턱없이 부족했지만 점심시간 또는 업무 중 비는 시간이 있다면 멘토링 준비를 했습니다. 본인이 간절하면 어떻게든 시간을 내야 한다고 생각해서 부족한 부분이 있으면 가족에게도 양해를 구해 공부를 했어요.
그런데 본인이 준비가 되어 있다고 하더라도 항상 예외적인 일은 발생하기 마련이잖아요. 저 또한 프로젝트 기능 변경으로 인한 야근, 회식 등 모든 일정을 조율할 수는 없었지만 최대한 시간을 마련하려고 노력했어요.
또, 일과 병행하며 힘든 부분도 있었지만 좋은 점도 있었는데요. 꼭 커리큘럼에 의한 학습 뿐만 아니라 현재 진행하고 있는 업무에 대한 개발 방향 및 운영적인 부분을 멘토님에게 공유하면 여러 가지 방향에 대한 피드백을 받을 수 있다는 점이 가장 큰 장점이었어요. 이런 부분으로 인해 실력 향상은 물론 실제 운영 업무에 많은 도움이 되었던 것 같아요.
Ch.3
스타벅스 프로젝트
진행하신 프로젝트에 대해 소개 부탁드립니다.
스타벅스를 주제로 백엔드 프로젝트를 진행했는데 많은 사용자 및 동시 주문 사용자의 입장에서 주문 그리고 관리자의 입장에서는 점포 관리 등 다양한 기능을 고민하고 설계할 수 있어서 이 주제로 선택했어요.
프로젝트를 진행하면서 기술적으로 가장 어려웠던 부분은 무었이었어요?
아무래도 써보지 않은 기술들이 어려웠어요. 개념적인 DDD, 레이어드 아키텍처, Redis, 엘라스틱서치 등 구현 및 이론을 병행하니 헷갈리고 혼동이 많이 되더라고요. 멘토님께서 소스의 구현에 대해 아주 직접적인 도움을 주진 않으셨지만 항상 고민을 통해 답을 도출할 수 있게 질문을 해주시고 좋은 답변을 유도해 주셔서 이런 부분을 적용하면서 잘 극복할 수 있었던 것 같아요.
프로젝트를 진행하면서 가장 좋았던 포인트는 무엇이었나요?
난이도가 높았던 부분이 좋았어요. 프로젝트를 진행하면서 사용했던 기술들은 사실 실제 업무에서는 사용해보지 않았던 것들이었거든요. 새로운 기술을 사용하면서 현재 운영하고 있는 서비스에 적용도 해보고 익히면서 다양한 기술에 대한 갈증을 풀 수 있었어요.
프로젝트 진행 초반 시점과 후반 시점을 비교해 봤을 때, 성장했다고 느끼시나요?
프로젝트 진행 초반에는 아무래도 따라가기가 급급했지만, 후반에는 이 기술을 왜 이렇게 사용하는지 고민하는 제 모습을 발견할 수 있었어요. 구현 뿐만 아니라 기술을 사용하는 이유와 장단점 등 트레이드오프를 고려하며 개발을 하는 모습 자체가 성장한 증거라고 봐요. 그 전에는 상상도 할 수 없었던 모습이니까요.
멘토링이 종료된 이후에는 어떤 공부를 어떻게 하고 계신가요?
현재는 유데미와 인프런에서 강의를 보며 공부하고 있습니다. 개발자로서 최고의 공부법은 결국 만들어보는 것이라 생각되어 많은 강의를 들으며 모르는 부분을 그때그때 깊이 있게 찾아보려고 노력하고 있어요.
Ch.4
단단한 개발자
좋은 ‘개발자’를 한 문장으로 정의하자면?
다른 개발자들과 내가 가진 지식을 나눌 수 있는 개발자라고 생각해요. 이렇게 되기 위해서는 꾸준한 공부가 필요하겠죠. 개발자는 평생 공부해야 하는 직업이기 때문에 혼자서 공부하는 것도 한계가 있습니다. 그래서 공부한 것을 나누다 보면 서로에게 도움이 되는 조직이 될 것 같아요.
개발자로서 어떤 경력을 쌓아가고 싶으신가요?
현재 리드 개발자로 일하고 있는데요. 좋은 기업에 가면 좋은 문화가 있겠지만 모든 개발자가 좋은 기업에 다니는 것은 현실적으로 어렵잖아요. 가기 어렵다면 제가 있는 곳을 좋은 문화가 있는 팀으로 만들어 볼 수 있겠죠. 주어진 환경에서 최고의 퍼포먼스를 낼 수 있는 리드 개발자가 되고 싶습니다.
어떤 사람이 멘토링을 받으면 좋을까요?
현재 교육 플랫폼들이 넘쳐나고 있죠. 어떤 공부를 어떻게 해야 나에게 도움이 될지 방향성을 모르는 분들, 항상 반복되는 업무에 지쳐 내가 개발자가 맞나 하는 생각이 드는 분들께 추천드립니다. 제가 시니어 개발자라서 하는 말이 아니라 사실 기본이 되지 않은 개발자가 시장에 많다고 생각해요. 저도 물론 그렇고요. 좋은 개발자와 도태되는 개발자의 차이는 이런 부분을 캐치하고 노력하느냐와 안 하느냐의 차이에서 출발하는 것 같아요.
또, 저처럼 시니어이지만 한 번쯤은 이런 교육을 통해 본인의 수준을 점검하는 것도 좋을 것 같아요. 인정받는 멘토 분들과 교육 및 대화를 나누면 좀 더 나은 시니어, 리드 개발자가 되어 본인 팀에 많은 도움이 될 수 있다고 생각해요. 경력이 있는 분들도 꼭 한 번 기회가 된다면 진행해 보면 좋을 것 같습니다.
반대로 비추천하는 대상이 있으신가요?
일단 저처럼 가정이 있는 분들에게는 다시 한 번 생각해보라고 말씀드리고 싶어요. 물론 업무가 바쁜 분들도 마찬가지입니다. 하는 만큼 정말 많은 것을 가져갈 수 있지만 생각보다는 많은 시간과 노력이 필요해요.
마지막으로 멘토링을 망설이는 분들께 한 마디 부탁드립니다.
만약 고민이 되고 망설여진다면 꼭 해보라고 말씀드리고 싶습니다. 사실 저는 멘토링을 수료했음에도 후회했습니다. "조금 더 열심히 할 걸", "더 많이 물어봤으면"이라는 생각이 들었거든요. 고민하고 계신 경력, 신입 개발자분들이 계신다면 앞으로 내가 개발자로서 어떤 방향을 가야 할지, 내가 가보지 못한 회사에서는 어떤 문화를 가지고 개발을 하는지에 대한 간접적인 경험 및 이론적인 부분, 기술적인 부분도 많은 도움이 될 거라고 생각해요.
저도 멘토링을 진행하기 전에는 내가 과연 개발자인가?라는 의문이 들었지만 멘토링을 수료한 후에는 그래도 이제는 개발자라고 말할 수 있는 정도가 되었다는 생각이 들 정도로 개발자로서 많은 도움이 되었습니다.
이 컨텐츠는 F-Lab의 고유 자산으로 상업적인 목적의 복사 및 배포를 금합니다.