1. 근무 시작
작년 하반기, 인턴을 마치고 다시 취준을 했다. 사실 취준을 바로 시작한 건 아니고 인턴 6개월을 끝까지 마쳤다는 마음에 직후엔 조금 자유를 즐겼던 것 같기도. 하지만 미련하게도 내 성격 상 마음 편히 놀기만 하지는 못했다.
그리고 2월, 한 MSP 기업에 입사하게 되면서 상반기를 시작했다. 새로운 회사, 새로운 팀, 새로운 업무. 설레는 마음 반, 긴장되는 마음 반으로 첫 출근을 했던 게 엊그제 같은데 벌써 거의 반년이 되어간다!
2. 직무 전환
사실 나는 이 기업에 소프트웨어 개발자 중 프론트엔드 개발자로 지원했다. 이력서도, 포트폴리오도 전부 프론트엔드에 맞춰 준비했고 면접에서도 그쪽 이야기로 주로 어필했다. 그런데 막상 입사하니 나는 백엔드 개발자로 일하게 되었다. 예상하지 못한 전개였다. 회사 사정과 팀 배치라는 게 이럴 수도 있구나 싶으면서도, 이후 머릿속이 조금 복잡해졌던 게 사실이다.
3. 다행히 처음은 아니었다
돌이켜보면 백엔드가 완전히 낯선 영역은 아니었다. 대학교 2학년 때까지만 해도 나는 백엔드 개발자가 되겠다고 주변에 이야기하고 다녔고, 동아리 활동에서도 백엔드 포지션을 맡았었다. 하지만 그때 두 가지 부분에서 크게 어려움을 느꼈다.
하나는 에러의 원인을 찾는 과정이었다. 프론트엔드는 화면에 깨진 부분이 눈에 바로 보이지만, 백엔드는 그렇지 않았다. 로그를 하나하나 뜯어보고 흐름을 추적해야 원인을 찾을 수 있다는 게 나에게는 유독 힘들게 느껴졌다. 다른 하나는 인프라였다. 서버, 배포, 네트워크 같은 개념들을 잘 알아야 한다는 부담이 늘 마음 한구석에 있었다(하지만 돌이켜보면 당시에는 개발을 시작한지 얼마 안되었을 때니, 지레 겁먹은 것 같기도하다).
그래서 결국 프론트엔드로 방향을 틀었던 건데, 지나고 보니 그 백엔드 개발 경험이 결코 헛되지 않았다는 걸 이번에 다시 느끼고 있다. 백엔드를 경험해본 사람이 프론트엔드 입장에서 백엔드 개발자와 소통하는 건 생각보다 훨씬 큰 이점이다. 백엔드의 입장을 이해할 수 있고, 프로덕트가 실제로 어떻게 동작하는지 한 겹 더 들여다볼 수 있으며, API를 논의할 때도 더 많은 걸 이해하고 의견을 낼 수 있었다.
4. 자신있게 대답했지만
팀장님과의 첫 1 on 1 때 열심히 해보겠습니다-라고 자신감 있게 대답했다. 하지만 속으로는 걱정이 많았다. 인턴도 프론트엔드로 했었고, 뼛속까지 대문자 J(계획형)이고 확실한 걸 좋아하는 나에게 이 상황은 마치 내 커리어의 방향이 통째로 뒤집히는 것처럼 느껴졌다. 이전 인턴 경력이나 지금까지 쌓아온 포트폴리오는 이제 어떻게 되는 걸까. 모르는 게 너무 많으면 어떡하지. 그런 생각들이 머릿속을 떠나지 않았다.
그래서 개발자 친구들을 만날 때마다 이 얘기부터 꺼냈다. 그런데 친구들의 반응은 의외였다. 오히려 좋은 기회 아니냐며 응원해줬다. 그런 이야기를 자꾸 듣다 보니 내 생각도 조금씩 바뀌었다.
솔직히, 요즘 AI가 훌륭한 도구로 빠르게 성장하면서 프론트엔드 개발자라는 포지션에 대한 고민이 없었다면 거짓말이다. 나 역시 프론트엔드 개발자였지만, 웹 프론트엔드가 백엔드에 비해 상대적으로 진입장벽이 낮다는 점은 스스로도 어느 정도 공감하고 있었다. 동시에 앞서 말한 것처럼 백엔드에서 좋지 않은 인상을 받고 도망쳤던 것도 사실이고. 그래서 "AI가 UI적인 부분은 잘해주지만 그 외의 것들은 아직 사람이 할 게 많다"며 스스로를 안심시키고 있었던 것 같다.
5. 직접 겪어보니 알게 된 것
막상 백엔드 개발자로 일해보니, 그 걱정과 안심이 둘 다 반은 맞고 반은 틀렸다는 걸 알게 됐다. AI가 도구로서 귀찮고 반복적인 부분을 많이 덜어주는 건 백엔드도 마찬가지였다. 하지만 지금 직접 근무하면서 느낀 건, 백엔드가 다뤄야 할 범위가 더 넓고 프로덕트의 비즈니스 로직과 훨씬 밀접하게 연결되어 있다는 점이었다.
프론트엔드가 사용자가 무엇을 보고 무엇을 누를지를 생각하며 개발한다면, 백엔드는 그 버튼을 눌렀을 때 내부적으로 데이터가 어떻게 처리되는지에 더 집중한다. 그러다 보니 마주하는 문제의 결이 훨씬 다채로웠다. 하나의 요청 뒤에 숨어 있는 로직과 흐름을 따라가는 재미가 있었다.
6. 난 당근을 좋아한다
지금은 이 상황에 만족하고 있다. 가장 감사한 건 이런 환경에서 팀원분들이 많이 이해해주시고, 마음껏 부딪혀보고 배울 수 있는 분위기를 만들어주셨다는 점이다. 부족한 실력으로 코드 리뷰를 드려도 후하게 엄지를 치켜세워주시는 그런 환경. 좋은 사수님들을 만난 것 같아 정말 다행이라고 생각한다(전부터 느꼈지만 난 인복이 좋다).
근데 내 성향은, 고쳐야 할 부분이라고 생각하지만, 당근을 정말 좋아한다. 누군가 잘한다고 말해주면 더 잘하고 싶어지고 칭찬받고 싶어서 열심히 하게 된다. 친한 언니에게 이 얘기를 한 적이 있다. 내부에서 스스로 동기를 만들어야 하는데 자꾸 주변 사람들 눈에 비치는 내 모습에서 동기와 불꽃을 얻으려 한다고. 그랬더니 언니가 그게 꼭 나쁜 게 아니라고, 사람들 대부분이 그렇다고 말해줬다. 그 말이 은근히 위로가 됐다.
그래서 반대로 누군가 나에게 피드백을 주면 그게 너무 크게 와닿는다. 근데 그게 그런 말을 한 사람에 대해서 생각하는 건 아니다. 이불킥을 하면서 나 자신에게 실망하고, 샤워를 하면서도 계속 곱씹는다. 왜 그랬을까, 왜 그렇게밖에 못했을까 하면서. 이 부분은 상반기 동안 계속 느낀, 앞으로 고쳐나가야 할 지점이다.
7. 운을 향해 걸어가는 연습
예전에 어디선가 이런 글을 봤다. 운이 좋은 사람들은 그만큼 스스로를 많이 노출시키는 사람들이라고. 노출이 많아질수록 그만큼 기회가 올 확률도 높아지니까. 이 말이 오래 마음에 남았다.
나는 스스로를 어필하고 PR을 하려는 편이다(위에서 말한, 당근을 좋아한다는 이유 때문에). 그런데 늘 그 뒤에 따라오는 의심이 있다. 내가 보여주는 만큼 알맹이도 단단한 걸까, 겉으로만 잘 포장한 건 아닐까 하는 생각. 그런데 이 문장을 곱씹다 보니 조금 다르게 보이기 시작했다. PR을 하는 행위 자체를 운을 향해 능동적으로 걸어가는 과정이라고 생각하면, 그건 꽤 해볼 만한 일이라는 생각이 들었다. 알맹이는 계속 채워나가면 되는 거고, 동시에 나를 드러내는 것도 게을리하지 않아야겠다고 다짐했다.
8. AI와 함께 일한다는 것
요즘은 코드를 예전(1-2년전)만큼은 자세히 들여다보지 않는다.
처음에는 그러지 않았다. "나는 내가 직접 보지 않으면 마음이 안 놓여. AI는 하나도 못 믿겠어"라고 말하고 다녔던 시기도 있었다. 그러다 어느 순간, 오히려 내가 병목이 되고 있다는 생각이 들었다.
지금이 개발자들에게 가장 혼란스러운 시기라는 생각을 자주 한다. AI를 적극적으로 쓰자니 결국 AI에게 대체될 것 같고, 안 쓰자니 AI를 잘 활용해서 생산성을 몇 배로 끌어올리는 다른 개발자에게 대체될 것 같다. 둘 다 완전히 틀린 말은 아니다.
그래서 예전을 떠올려봤다. 손으로 한 땀 한 땀 코드를 치던 그 시절, 나는 정말 아무 도움 없이 머릿속 지식만으로 프로덕트를 만들었던가. 아니었다. 공식 문서를 찾아 읽고, 모르는 문법은 구글링하고, 비슷한 문제를 해결한 사례를 찾으려 스택오버플로우를 뒤지곤 했다. 결국 그렇게 직접 하던 일들을 지금은 AI가 대신해주고 있는 것뿐이다. 그리고 이 방식은 분명히 효율을 높여준다. 예전이라고 해서 내가 정말 "모든 걸 순수하게 혼자 다 했다"고 말할 수 있을까. 그건 아니라는 결론에 도달했다. 나는 코드를 한자한자 치는데에 희열을 느끼는 류의 개발자는 아니었다. 동작하게 만들고, 서비스를 만드는 것 자체가 재밌던 거지(그 과정에서 문제를 해결했을 때의 쾌감은 덤이었다).
면접 때 내가 책에서 인용했던 문장이 하나 있다. AI는 속도를 담당하고, 우리는 방향을 결정한다는 말. 이번에 새로운 직무를 맡으며 그 말을 몸으로 느꼈다. 확실히 아는 게 많고, 그 앎의 질이 좋아야 좋은 인풋이 나온다. 그리고 좋은 인풋이 있어야 좋은 아웃풋이 나온다.
요즘 드는 생각은, 자연어를 AI에 입력해서 개발하는 방식도 결국 개발 언어의 또 다른 추상화 단계가 아닐까 하는 것이다. 우리가 지금 쓰는 프로그래밍 언어들도 결국 특정 동작을 실행시키기 위해 만들어진 추상화된 개념이고, 우리는 그 개념을 우리 의도에 맞게 가져다 쓰고 있을 뿐이다. 이제 그 인터페이스가 자연어로 한 단계 더 올라간 것뿐이라고 생각한다. 결국 어떤 개발 언어든 입력과 출력이 있는 추상화 구조라는 점은 같은데, 왜 유독 머리로 문법을 외우고 손으로 직접 타이핑할 줄 알아야만 "진짜 개발자"라고 말하는 걸까 하는 의문이 든다.
프로그래밍 언어가 생기기 전, 개발자들이 어셈블리어나 기계어로 한 줄 한 줄 코드를 짜던 시절이 있었다. 그 시절의 개발자들이 지금 우리처럼 파이썬이나 자바스크립트 같은 고수준 언어로 개발하는 사람들을 본다면, 그것도 "진짜 개발이 아니다"라며 코웃음을 칠까. 아마 아닐 거라고 생각한다. 도구는 계속 바뀌어왔고, 그때마다 그 도구를 다루는 능력이 새로운 개발 역량으로 자리잡아왔으니까.
9. 요즘 내 관심
AI 얘기는 이쯤에서 접고, 요즘 내가 흥미를 느끼는 부분을 적어보려 한다. 이 회사에 입사하고 운이 좋게도 내가 관심 있어 할 만한 도메인을 맡게 됐다. 기존 서비스에 AI 기능을 도입하는 업무였다. 원래도 내 컴퓨터 환경에서 에이전트를 원하는 대로 커스텀하고 세팅하는 데 관심이 많았는데, 그런 결과 관련 업무를 직접 맡아 개발할 수 있어서 즐거웠다. LLM을 활용한 여러 기능을 만들면서 학부 시절 배웠던 개념들이 실무에 그대로 쓰이는 걸 보고 신기했다. 임베딩, KNN 검색 같은, 수업 시간엔 그저 그런가 보다 하고 흘려들었던 개념들이 실제 서비스 기능으로 구현되는 걸 보니 새삼 다르게 다가왔다.
그러다 보니 요즘은 AI 에이전트 개발 쪽에도 자연스럽게 관심이 간다. 팀장님이 해주신 말씀이 있다. 이런 시대에는 뭐든 잘할 수 있는 사람이 되어야 한다고. 그 말이 인상 깊게 남아서, 개발과 관련된 거라면 분야를 가리지 않고 관심을 가지려 하고 있다. 어떤 개발 도구를 손에 쥐어줘도 "이거 한번 해볼 수 있겠는데?"라는 생각이 드는 사람이 되고 싶다.
10. 밥 한번 먹어요를 실천하기
같은 곳(학교, 동아리, 대외활동)에 있던 사람들이 이제 각자 다른 회사로 흩어지면서, 문득 다른 회사에 있는 사람들은 어떤 생각을 하고 어떤 고민을 안고 지내는지 궁금해질 때가 많아졌다. 다행히 내향적인 성격에 비해 그동안 활동은 꽤 풍부하게 해온 덕분에, 이런 걸 편하게 물어볼 수 있는 좋은 개발자 지인들이 주변에 있다. 서로 바빠서 자주 연락하지는 못하겠지만, 가끔이라도 만나면서 인연을 꾸준히 이어가고 싶다. 스스로 내향적인 사람이라는 걸 알지만, 그게 주변 사람들에게 소홀해져도 된다는 뜻은 아니니까.
11. 조금씩 시작하자
솔직히 입사 후 첫 3~4개월은 일 외에는 아무것도 못한 것 같다. 일이 힘들고 많았던 것은 전혀 아니다. 그냥 이유없이 쉽게 지쳤다. 취준 때는 그렇게 열심히 다니던 수영도 다 잊고, 운동이라는 걸 완전히 손에서 놓고 지냈다. 그러다 얼마 전 인턴 동기를 만났는데, 이 분은 하루 일을 마치고 밤 12시에도 러닝을 하러 나간다고 했다. 그 얘기를 듣는데 불꽃이 옮겨붙는 것 같았다! 나도 조만간, 정말 조만간, 가벼운 운동부터 다시 시작해보기로 했다.
그 인턴 동기에게 들은 이야기 중에 또 하나 인상 깊었던 게 있다. 그 친구의 사수분이 팀원들에게 엄청난 신뢰를 받고 있다고, "이 사람에게 맡기면 든든하다"는 평을 듣는다는 이야기였다. 그 말을 듣는데 나도 언젠가 그런 평가를 받는 사람이 되고 싶다는 생각이 들었다. 예상치 못한 방향으로 시작한 상반기였지만, 하반기에는 그런 신뢰를 쌓아가는 개발자가 되어보려 한다.