개발을 잘 한다는 것은 무엇일까?
개발을 잘 한다는 것은 무엇일까요? 저는 생명정보학 연구원에서 생명정보학 엔지니어를 거쳐 마침내 IT 개발자로 직무를 전환했는데요. 개발자로 일을 시작하기 전에는 훌륭한 개발자에 대한 막연한 두려움이 있었습니다. 컴퓨터공학 전공자도 아니고 수학적인 두뇌도 뛰어나지 않은 제가 개발을 잘할 수 있을까?라는 생각이었어요. 그래서 지금 회사에서 개발자로서 일을 시작할 때, 새로운 기회에 대한 기대감도 컸지만 부담감 역시 많았습니다.
하지만 걱정과는 달리, 저는 새로운 직무에 잘 적응했고, 1년간 다양한 프로젝트에 참여하면서 아주 빠르게 성장했다는 것을 느꼈습니다. 그리고 이 과정에서, ‘개발을 잘 한다’는 말을 새로운 관점으로 바라보기 시작했어요. 이전까지 저는, 이 말이 단순히 ‘가독성이 높고 효율적인 코드를 짠다’와 동의어로 생각했습니다. 마치 코딩 테스트에서 주어지는 높은 난이도의 문제를 깔끔하게 잘 풀어내는 사람이, 곧 좋은 개발자라고 생각했죠. 조금 다르게 말해보자면 디테일에 강한 개발자 같아요. 지금도 이 말이 옳다고 생각합니다. 하지만 이제는, 또 다른 관점에서도 좋은 개발자를 정의하고 있어요. 그것은 바로 서비스에서 사용되는 데이터, 그리고 그 데이터를 처리하는 핵심 로직에 대한 이해도예요.

저는 Beusable에서 사용자의 웹사이트 이용 여정을 시각화해서 보여주는 ‘Journey Map’ 서비스를 담당하고 있어요. 사용자의 웹사이트 방문 로그를 알맞게 처리하는 데이터 파이프라인을 운영하고, 가공된 데이터가 클라이언트의 요청에 맞게 보여질 수 있도록, API 서버를 운영하고 있습니다.
1년이라는 짧은 기간 안에 데이터 파이프라인부터 API 서버까지 커버하기 위해서, 제가 가장 집중한 일은 ‘Joureny Map’에 사용되는 데이터 그리고 그 데이터를 처리하는 로직에 대한 이해였어요. 수집하고 있는 데이터의 특성과 해당 데이터가 서버에서 어떠한 방식으로 처리되고 있는지에 관한 이해였죠. 이 이해를 기반으로 저는, 데이터 가공 파이프라인을 Jenkins에서 Airflow로 변경하여 빠르게 확장 가능하면서 장애 발생에도 견고한 데이터 파이프라인을 구축하기도 했고요. API 서버의 데이터 처리 방식을 효율적으로 개선하여, 기존 성능 대비 3배 이상의 빠른 응답 속도를 내도록 API 서버를 최적화 시키기도 했어요. 그 과정에서 어떠한 도구들이 효과적이고 적합한지 고민도 정말 많이 했고, 주어진 서비스 목적을 달성하기 위해서 도구를 적절히 선택하고 조합하는 것이 바로 엔지니어링이라는 생각을 하게 되었어요.
업무 외 시간에 자격증 공부도 하고 공학 서적도 조금씩 읽고 있지만, 저는 여전히 컴퓨터 공학적 지식이 많이 부족해요. 그리고 번뜩이는 수학적 두뇌도 없습니다. 다만, 서비스를 움직이는 데이터와 핵심 로직에 대한 큰 그림을 파악하는 것, 그리고 그 그림 속에서 개선할 부분들을 찾고 적절한 도구를 사용하여 그림의 빈 부분을 메꾸고, 잇는 것이 제 강점일 수 있겠다는 생각이 듭니다. 앞으로도 제 강점은 살리고 단점은 보완하면서 더 좋은 개발자가 돼보려고 합니다 🙂
이 일이 내게 즐거운 이유
저는 중학교 1학년 때, 우연히 생물 수업을 듣다가 단순히 재밌어서 생물 공부에 깊게 빠져들었어요. 서점에서 고등학교 학생들이 보는 하이탑 교재를 샀고요. 고등학교 생물 1 그리고 2를 공부한 다음에, 생물올림피아드에 나가서 은상이라는 큰 성취도 이룬 경험이 있습니다. 누가 시키지도 않았는데 여름 방학 내내 하루 종일 독서실에서 올림피아드 준비를 하는 것을 보고 제 가장 친한 친구는 아직도 저를 치켜세워줘요 😁 그렇게 생물에 관심 많았던 저는, 대학교에 들어가서도 생명과학을 전공했고 훌륭한 연구원, 교수를 꿈꾸면서 학부 생활을 했어요. 그리고 졸업할 때, 전체 수석이라는 아주 좋은 성적도 거두었습니다.

그렇게 승승장구하면서 대학원에 진학했는데, 그때부터 저는 방황의 시기를 겪었던 것 같아요. 연구가 제게 맞는지에 관한 의문도 들었고, 출신 학교, 학부 때 성적과는 상관없이 저보다 더 열의 넘치고 잘하는 선배, 동기들을 보면서 열등감도 느끼고 주눅도 들었어요. 이때부터 저는 점점 생명과학이라는 분야에서 멀어지기 시작했던 것 같아요.
제가 이 이야기를 앞서 들려드린 이유는, 이 이야기가 제가 왜 연구원이 아닌 엔지니어의 길을 택했는지, 그리고 엔지니어로서 제 강점이 어떻게 발휘될 수 있었는지를 말해주기 때문인데요. 제가 생각하기에, 연구란 결과적으로 새로운 인사이트 혹은 방법론을 도출할 때 그 의미가 생기는 것 같아요. 근데, 엔지니어링은 좀 달라요. 연구의 성격도 들어가 있지만, 새롭지 않더라도 기존의 방식들을 잘 활용하고 조합하여 원하는 목적을 달성하면 되거든요.

두 분야를 모두 겪어보니, 저는 연구보다는 엔지니어링에 더 흥미를 느끼는 사람이구나 생각했어요. 저에게 주어진 도구가 무엇인지를 파악하고, 이미 만들어진 거대한 서비스 흐름과 그 속의 데이터를 파악해서 문제를 해결해 나가는 게 너무 즐거운 거죠. 앞서도 언급했지만, 여기서 ‘이미 만들어진 거대한 서비스 흐름과 그 속의 데이터를 파악하는 것’이 중요한 것 같아요. 우리는 이미 기반이 세워진 회사에 속하게 되는 경우가 많고요. 그렇지 않더라도 이미 어딘가에서 만들어진 시스템을 참조하거나 가져오는 경우가 많으니까요. 그리고 저는 이 훈련을 생명과학을 공부하면서 많이 겪어왔다고 생각을 해요. 저에게 생명과학을 공부하는 것은, 우주와도 비견되는 복잡한 생명 시스템을 공부하는 것이었어요. 그 복잡한 시스템을 하나하나 이해해 가는 건, 거대한 인체라는 생명 서비스 흐름 속에서 분자로 이루어진 데이터를 탐구하고 파악하는 일과 같았거든요. 그렇게 자연스럽게 학부 과정 내내 거친 훈련이, 지금의 제가 엔지니어링에 관심을 가지고 잘 해낼 수 있게 만들어주는 원동력이 아닌가 싶습니다.
글을 마치며
긴 글 읽어주셔서 감사합니다. 벌써 IT 개발자로 직무를 전환하고 1년이라는 시간이 흘렀네요. 좋은 회사와 좋은 기회 그리고 좋은 동료들과 함께 할 수 있음에 정말 감사한 1년이었어요. 아직 식견도 실력도 많이 부족하지만, 제가 큰 변화를 겪어 오면서 들었던 생각들을 정리해서 공유해 보고 싶었습니다. 개발자로 직무 전환을 고민하고 계시는 분들에게 조금이라도 도움이 되었으면 좋겠습니다. 🙂
Ando 멀리서 응원합니다 재밌고 즐거운 일들 많이 하시고 늘 화이팅이에요 🙌
Ken!!! 응원해 주셔서 정말 감사합니다 🙂 켄이 응원해 주시니 저한테 정말 큰 힘이 되네요🏃♂️ 저도 켄 항상 응원하겠습니다 감사합니다🙇♂️
멋집니다. 본인들의 상품이 무엇인지를 이해하는 것이 당연하지만 쉽지않은 일이라는 생각이 자주 드는 요즘입니다. 응원해요!
감사합니다!!!🙇♂️ 비슷한 생각을 공유하고 있는 것 같아 정말 반갑고 즐겁네요 🙂 저도 늘 응원할게요!!!💪🏻
함께 일한 시간이 길지 않았지만 함께 일하는 동안 반짝이는 눈빛으로 얼마나 개발에 대한 야망(?)을 품고 잇는지 볼수 있어 좋았어. 앞으로, 난 다른거 보다 본인이 가진 두뇌와 열정이 얼마나 갑진 재산인지 감사하고 즐거운 맘으로 귀한 하루하루를 만끽하며 살길 바랄께!!!
즐거운 인생 살쟈!!
감사합니다 이사님!!!🙇♂️ 저한테 정말 중요한 말인데 이렇게 콕 집어주셔서 말해주셨네요🥹 명심하고 감사히, 즐거운 맘으로 살아가겠습니다. 좋은 말씀 감사합니다 🙂