올 한 해, 소마(소프트웨어 마에스트로) 16기 연수 과정을 마치며 지난 시간 동안 경험하고 느낀 점들에 대한 회고를 작성하려 한다.
팀 구성
사실 팀 구성을 하는 것이 제일 어렵지 않았나 싶다. 많은 사람이 모인 만큼 목표도 달랐고, 무엇보다 참가자 대부분이 백엔드 경험이 있다 보니 백엔드 포지션은 팀 빌딩 과정에서 다소 비선호되는 경향이 있었다.
당시에는 포지션 자체가 문제가 되지 않는다고 생각했지만, 대부분 팀원을 구할 때 자신만의 기준이 확고해 팀을 구하기 힘들었다.
또한 각자의 목표가 맞는 팀원을 찾기도 어려웠다. 생각보다 많은 대화가 필요했고, 짧은 시간 내에 팀을 결성하기에는 충분하지 못한 시간이었던 것 같다.
운이 좋게도 나는 간택을 당해서 연수 생활을 시작하게 되었다. 중간에 그만두는 팀원도 있었지만, 그럼에도 여러 좋은 경험과 다양한 인사이트를 얻게 해준 소중한 팀이었다.
멘토 구성
우리 팀은 나를 제외하고는 전부 개발 경험 없이 알고리즘 문제 풀이를 좋아한 팀원들이라, 특정 기술 스택을 전문으로 하는 멘토님을 찾기보다는 팀을 잘 이끌어주실 멘토님을 찾는 데 더 신경을 썼다.
여러 멘토님과 이야기를 나누어 보았고, 구성 결과 기술 스택 면에서는 썩 조화롭지 않다고 생각할 수도 있었으나, 우리 팀을 위해 열정적으로 멘토링 해주실 분들로 구성되어 좋은 마무리를 할 수 있었다.
프로젝트 특성 자체가 고도화된 엔지니어링을 요구하지 않았고, 대 AI 시대인 만큼 기술적인 고민보다 기획이나 방향성에 대한 고민이 많았기에 이에 대해 많은 도움을 받았다. 또한 프로젝트에 대한 애정이 있으셔서 서비스에 대해 더 깊은 이야기를 나눠볼 수 있었다.
팀 프로젝트
사실상 거의 처음 해보는 팀 프로젝트였다. 프로젝트를 하면서 느낀 것은, 사실 개발 실력 자체는 팀 프로젝트에서 큰 문제가 되지 않는다는 것이다. 프로젝트 관리와 어떻게 하면 팀원과 소통을 잘할 수 있는지가 훨씬 중요했다. 팀 목표는 같지만, 프로젝트를 같이 하는 팀원 개개인이 과정에서 얻고 싶어 하는 목표는 서로 다른 경우가 많기에 이를 잘 조정하는 것이 중요함을 느꼈다.
아마 이것은 내가 어느 조직을 가도 똑같이 느낄 것 같다. 현재 팀을 다음 회사나 다른 조직으로 이동하기 위한 발판으로 삼으려는 사람, 금전적인 보상 때문에 하는 사람 등 다양하겠지만, 목표가 다르다고 비난할 수는 없다. 팀과 개인의 목표를 어떻게 잘 조율하느냐가 중요하다고 생각한다.
Remote vs On-site
일을 하는 데 있어 원격이나 대면이나 큰 상관이 없을 것이라 생각했다. 하지만 대면의 힘은 중요했다. 메신저를 통한 소통은 어쩔 수 없이 상대가 확인할 때까지 지연이 발생하여, 의사소통에 있어서는 대면이 훨씬 효율적이었다. 또한 대면일 때 나오는 에너지가 있다. 인강과 현강의 차이라 해야 할지, 같은 공간에 있음에서 오는 에너지가 있는 것 같다. 같이 있다 보면 흘려듣기 쉬운 것도 조금이라도 더 듣게 되기 때문에 대면으로 일할 때가 좋았다.
그래서 나는 평일에는 센터에서 먹고 자거나 고시원 생활을 했다. 조금 불편하더라도 대면일 때 얻을 수 있었던 게 더 많았기 때문이다.
기술적 성장
소마를 하면서 처음으로 TS 스택의 NestJS, React를 사용한 풀스택 개발과 LangGraph를 사용한 LLM 서비스를 만들어 보았다. 그 과정에서 각 프레임워크나 라이브러리, 언어에 대한 깊은 이해가 있었냐고 한다면 그렇지는 않았다. 하지만 AI를 활용한 빠른 서비스 개발을 경험했다. 단순히 ‘해줘’ 식으로 만드는 것이 아니라 스펙 구성, Plan 등 AI를 ‘잘’ 활용한 개발을 할 수 있었다. 그 결과 손으로 직접 작성한 코드는 많지 않았지만, 대신 검수와 서비스 설계에 대해 더 깊게 생각할 수 있었다.
이 경험을 좋아하지 않는 사람도 많겠지만, 나는 AI가 제2의 인터넷이라 생각한다. 인터넷이 처음 나왔을 때 ‘책을 보고 공부해야 한다’라는 의견이 많았고 실제로 내가 어렸을 때도 책을 보는 것을 중요시했다. 하지만 유명하고 똑똑하며 가치를 만들어낸 많은 사람은 책뿐만 아니라 인터넷에서 많은 정보를 얻었다고 한다. 고등학교, 대학교 때 스택오버플로우나 티스토리 글을 참고하는 것에 대해 큰 반감이 없었던 것처럼 말이다. (물론 그렇다고 그들이 책을 안 본다는 것은 아니다.)
하고 싶은 말은, 이제는 인터넷 검색을 잘해야 하는 세상이 되었듯이 AI 활용 능력도 중요해질 것이라는 점이다. AI 사용을 자제하라는 의견도 있지만, 인터넷 시대가 그랬듯 AI로 빠르게 공부하고 가치를 만들어 내는 쪽으로 사람들의 인식이 변할 것이고, 이미 많이 변한 것 같다.
Tool의 사용
프로젝트 관리와 소통을 위해 Slack, Linear, Notion을 사용했다. 이외에도 다른 팀은 Jira, Confluence를 사용하는 경우도 있었다. 과연 이것이 필수적이었는가? 돌아보면 필수일 수도 있지만, 안 한다고 해서 프로젝트가 망하지는 않는다고 생각한다. 물론 사용하면 좋지만, 당장 프로젝트 완성이 시급한 상황이라면 러닝 커브와 Best Practice를 고민하기보다 빠르게 프로젝트를 진행하는 것이 더 중요하다.
나도 처음에 Tool 사용법을 공부하고 어떤 게 좋은 방식인지 찾는 삽질을 했다. 물론 나중에 경험으로 남긴 했지만 적지 않은 시간이 소요되었다. 나중에 Tool을 도입할 때는 그 시점이 적절한지 고민하고 잘 판단해야 한다. 아니면 평소에 미리 구해두거나(아마 이걸 다들 원하겠지만).
내가 보는 향후 소프트웨어 엔지니어
올해가 AI의 발전이 가장 크고, 그에 따른 체감도 어느 해보다 크다고 생각한다. 특히 개발자에게 큰 생산성을 가져다준 도구이지만, 과연 단순히 도구로서 끝일까 하는 생각이 든다. 올해는 개발을 하면서 예전만큼 큰 재미는 없었다. 어차피 AI가 해주고 나는 명령과 설계를 잘하면 되니, 넓은 범위에서 엔지니어링을 한 것인가 싶기도 하다.
현재 기획자나 디자이너들이 AI로 프로덕트를 찍어낸다. 심지어 개발자보다 잘하는 부분도 있다. 특히 클라이언트에서는 디자이너와 기획자가 서로 소통할 필요 없이 그냥 PM, PO, 디자이너 중 한 명이 만들어서 바로 PoC를 진행하면 된다.
이런 상황에서 소프트웨어 엔지니어는 본인이 만든 소프트웨어로 돈을 벌지 못하면, 즉 가치를 만들어내지 못하면 크게 인정받기 쉽지 않을 것 같다.
그리고 개발자는 점점 AI가 만든 코드를 검수하는 일을 하게 될 것 같다. 판단하는 일 자체는 쉽다. 보통 AI 학습에서도 낮은 수준의 모델이 AI 출력을 판단하는 경우도 있으니까. 다만 CS(Computer Science)의 기초는 무조건 필수적이다. 인터넷 검색을 한다고 해서 책을 못 읽는 사람은 없듯이.
아마 점점 조직의 크기는 줄어들고, 그 줄어든 만큼 AI 활용을 늘리게 될 것이다. 예전에 본인 분야의 일을 엄청 잘하던 사람이 인정받았다면, 지금은 보통 수준의 실력이라도 AI를 잘 활용해서 n인분의 일을 하여 n배 더 많은 가치를 내는 사람을 조직에서 원할 것이다.
마무리하며
생각이 많아지고 많이 배운 한 해였다. 특히 소마에서 능력 있는 멘토님들의 가르침을 받고, 세상과 조금 더 동기화된 듯한 느낌을 받았다. 소마를 하기 전과 하고 난 후의 차이를 명확한 숫자로 말할 수는 없지만 많은 성장을 이루었다고 생각한다.
내년에도 이와 같은 성장과 경험을 할 수 있기를 바란다.