Skip to content
Horoscape
Go back

소마 10월 회고: 코스모를 만들며 배운 것들

Updated:
Edit page

소마에서 연합우주 SNS인 코스모를 만들고 있다. 4월과 5월의 예비 과정을 지나 6월부터 본 과정을 시작했고, 지금은 10월 12일이다. 11월까지 이어지는 과정이 아직 끝나지는 않았지만, 남은 기간을 어떻게 보낼지 생각하려면 지금까지의 경험부터 돌아볼 필요가 있다고 느꼈다.

많이 배웠고, 즐거운 순간도 많았다. 동시에 정신적으로나 신체적으로 부담이 컸고, 지금도 그 부담에서 완전히 벗어난 것은 아니다. 처음 하고 싶었던 일을 충분히 했는지, 이 경험이 앞으로의 커리어에 어떤 의미로 남을지는 아직 확신하기 어렵다. 경험 자체의 가치는 분명하지만, 그것이 처음 기대했던 방향의 성장으로 이어졌는지는 조금 다른 질문이었다.

1. 일찍 모여 함께 방향을 정하기

우리 팀은 예비 과정에서 비교적 일찍 팀 빌딩을 마쳤다. 이미 연합우주를 알고 있고 SNS를 많이 사용하는 사람들이 모였기 때문에, 도메인을 처음부터 설명하거나 프로젝트의 필요성을 설득하는 데 드는 시간이 적었다. 각자 만들고 싶은 기능도 구체적이어서 프로젝트를 빠르게 시작할 수 있었다.

모두 SNS 헤비유저였지만 주로 사용해온 서비스가 달랐고, 그만큼 익숙한 기능과 사용 방식도 다양했다. 각자가 중요하게 생각하는 기능의 필요성을 이야기하고, 같은 기능이라도 어떤 형태로 제공할지 함께 검토했다. 도메인에 대한 공통된 관심을 실제 제품의 방향으로 구체화하는 데는 별도의 대화가 필요했다.

SNS는 다뤄야 할 영역이 넓고, 만들고 싶은 기능도 많았다. 소마 기간 안에 무엇을 우선할지 여러 번 조율하면서 필요한 기능과 이번 과정에서 감당할 수 있는 범위를 구분하는 일이 중요하다는 것을 배웠다.

일찍 시작한 덕분에 함께 시도하고 배울 시간이 많았다. 협업하며 서로를 알아가는 시간도 필요했다. 이후 소마에 참여하는 사람이라면, 빠르게 팀을 만드는 것의 장점과 함께 서로의 기대와 일하는 방식을 충분히 알아갈 시간도 생각해보면 좋겠다.

2. 프로젝트를 진행하며 달라진 내 역할

소마에 들어올 때는 보안과 백엔드를 함께 다룰 수 있는 개발자를 목표로 삼았다. 보안을 전공해온 배경을 개발 역량과 연결하고 싶었고, 팀을 구성할 때도 백엔드를 하고 싶다는 의사를 이야기했다.

프로젝트 초반에는 개발을 위한 기반과 제품의 모습을 함께 준비했다. 팀장님은 인프라와 프로젝트의 기본 구조를 만드는 코딩을 많이 담당했고, 나는 Figma로 화면과 디자인을 구체화했다. 이때 디자인을 다루며 쌓은 맥락은 이후 프론트엔드를 구현할 때도 이어졌다. 화면에서 무엇을 보여주고 어떤 동작을 제공할지 고민했던 부분을 실제 제품에 반영하는 일이 많아졌다.

개발이 진행되면서 각자가 계속 살펴보고 익숙해진 영역도 생겼다. 팀장님은 프론트엔드와 백엔드를 함께 다루고, 인프라 작업을 많이 하던 다른 팀원은 백엔드에, 나는 프론트엔드에 더 많은 시간을 쓰게 됐다. 기능과 코드가 늘어날수록 모든 영역의 세부 맥락을 동시에 따라가기는 어려웠고, 각자 이해하고 있는 부분을 이어서 맡는 경우가 많았다. 처음부터 역할을 고정했다기보다, 함께 작업하는 동안 집중하는 영역이 점차 구체화된 과정이었다.

나도 일부 백엔드 작업에 참여하면서 프론트엔드와 연결되는 부분을 살펴봤다. 최근에는 마케팅을 준비하며 인쇄물과 판촉물 디자인도 하고 있다. 제품의 화면을 만드는 일에서 제품을 알리는 디자인까지 작업의 범위가 넓어졌다.

일정 관리 역시 자주 맡았다. 나도 지각이 잦고 일정 관리를 어려워하는 편이라, 놓치면 안 되는 일정을 챙기면서 내 일정도 함께 관리하는 것이 쉽지 않았다. 익숙하지 않은 일을 계속 수행하는 데 필요한 에너지와 내 여력을 생각해보게 됐다.

처음 계획과는 다른 역할이었지만 실제로 재미를 느낀 일도 많았다. 각 작업을 해보면서 내가 관심을 느끼는 지점도 조금씩 알게 됐다.

3. 코드 리뷰로 이해한 제품의 동작

리뷰는 백엔드 로직을 계속 살펴볼 수 있는 기회였다. 처음에는 팀장님이 담당했지만, 프론트엔드의 디자인과 동작을 함께 확인하면서 나도 리뷰에 참여하게 됐다. 이후 CODEOWNERS 설정에 따라 백엔드 리뷰에도 참여하는 경우가 많았다.

직접 작성하지 않은 코드를 읽고 그 동작이 적절한지 고민하면서, 화면과 데이터가 연결되는 과정을 더 구체적으로 이해할 수 있었다. 프로필 태그 기능을 리뷰할 때는 저장이 성공하는지만 확인할 수 없었다. 잘못된 입력에 대해 API가 어떤 오류를 반환하는지, 프론트엔드가 그 오류를 입력 필드에 연결할 수 있는지, 실패한 요청에서도 기존 데이터가 보존되는지까지 살펴야 했다. 백엔드가 반환하는 표시 이름과 프론트엔드 명세가 요구하는 표시 방식이 일치하는지도 확인했다.

이런 과정을 통해 내가 직접 구현하는 영역을 넘어 시스템 전반을 이해할 수 있었다. 문제가 발생했을 때 어디부터 살펴야 할지 짐작할 수 있다는 것만으로도 리뷰에는 큰 가치가 있다고 느꼈다.

함께 리뷰하며 코드의 품질을 어떤 기준으로 살펴야 하는지도 배울 수 있었다. 이 과정을 충분히 거치려면 구현뿐 아니라 검토와 수정에도 시간이 필요했다. 다뤄야 할 기능이 많았던 만큼, 처음부터 그 시간까지 고려해 범위와 일정을 계획했으면 좋았겠다는 생각이 든다.

4. 제품과 개발 방식을 다듬어본 경험

프론트엔드를 맡으면서 사용자 경험을 계속 고민하게 됐다. 사용자가 현재 상태를 이해할 수 있는지, 오류가 발생했을 때 어떻게 다시 시도할 수 있는지, 설정을 바꿀 때 별도의 저장 버튼이 필요한지 같은 판단이 반복해서 필요했다. 단순히 화면을 구현하는 것보다 사용자가 실제로 어떤 과정을 거치는지 살펴보는 일이 많았다.

접근성도 비슷했다. 화면에 표시되는 것과 키보드나 스크린 리더로 사용할 수 있는 것은 달랐고, Web과 Native에서도 확인해야 할 동작이 달랐다. 복잡하고 어려운 부분이 많았지만, 더 많은 사람이 제품을 편하게 사용할 수 있도록 만드는 일이라는 점에서 충분히 고민할 가치가 있었다.

나는 스스로 예민한 편이라고 생각한다. 평소에는 피로하게 느끼는 성향이지만, 이런 작업에서는 작은 차이나 불편함을 세심하게 살피는 데 도움이 되기도 했다. 단점으로 여겼던 성향이 어떤 일에서는 강점으로 이어질 수 있다는 가능성을 발견한 셈이다. 사용자 경험을 다루는 일에서 느낀 재미는 앞으로의 방향을 생각하는 계기가 됐다.

소마가 제공한 환경 역시 도움이 됐다. 하나의 큰 코드베이스를 이렇게 오랫동안 다뤄본 것은 처음이었다. 기능을 추가하는 것으로 끝나지 않고, 이미 작성한 코드를 다시 읽고 수정하며 다른 기능과 연결하는 경험을 계속했다. 팀에서 초반에 사용한 SvelteKit이나 오류 수집을 위한 Sentry, 제품 분석을 위한 OpenPanel 등 여러 기술과 도구도 접했다. 인프라를 직접 많이 담당하지는 않았지만, 제품을 만들고 운영하는 데 필요한 영역을 가까이서 볼 수 있었다.

지원받은 예산으로 유료 도구를 활용하고 마케팅을 준비할 수 있었던 것도 도움이 됐다. 월 200달러인 ChatGPT 플랜을 사용하며 개발하는 일도 그중 하나였다.

도구를 사용하는 것뿐 아니라 프로젝트에 맞는 작업 방식을 만드는 경험도 했다. 코스모의 작업 절차와 코드 리뷰, 커밋·PR 규칙을 스킬로 정리하고, 별마루의 Codex 플러그인에 추가했다. 이후에는 조사·구현·독립 검토 역할을 나누고, 각 역할에 전달할 맥락과 사용할 모델을 조정하면서 워크플로우를 보완했다. 리뷰가 코드뿐 아니라 요구사항과 결정 근거도 참고할 수 있도록 Linear 이슈의 본문과 댓글을 전달하는 흐름도 추가했다.

스킬을 한 번 작성하는 것으로 끝나는 작업은 아니었다. 실제 작업에서 드러난 문제를 바탕으로 지침과 실행 코드를 수정하고, 의도한 역할과 절차가 유지되는지 테스트로 확인했다. 어떤 일을 AI에 맡길지, 판단에 필요한 맥락을 어떻게 전달할지, 결과를 어디에서 검토할지까지 고민했다.

제품과 함께 개발 방식까지 다듬어본 것은 대학 안에서만 프로젝트를 했다면 얻기 어려웠을 경험이라고 생각한다. 인턴으로 일하더라도 개발 절차와 도구를 직접 구성하고, 실제 협업에 적용하며 수정할 기회를 얻기는 쉽지 않을 것 같다. 내게는 현업에서 맡을 법한 일을 미리 경험하면서, 내가 정한 방식이 팀의 작업에 어떻게 연결되는지 살펴볼 수 있었다는 점에서 의미가 컸다.

멘토님들과 진행 상황을 나누고 다른 팀의 작업을 보는 과정에서는 내 프로젝트를 다른 관점에서 살펴볼 수 있었다. 특히 팀장님과 함께 구현과 리뷰를 하며, 현업에서 어떤 기준으로 코드를 살피고 판단하는지 배운 것이 많았다.

다른 참가자들과 프로젝트 이야기를 나누면서 나를 과소평가했던 시선도 조금 달라졌다. 이전에는 내가 해온 소규모 개인 프로젝트를 볼품없게 여기기도 했다. 서로 시도한 일과 고민을 이야기하다 보니, 내 경험에도 설명하고 나눌 만한 것이 있다는 자신감을 얻었다.

5. AI가 만든 코드를 이해하고 설명하기

AI는 어느 정도 지식이 있는 영역에서 부족한 부분을 보완하는 데 도움이 됐다. 그 도움을 받아 작업하면서도, 내가 결과를 어디까지 이해하고 판단하고 있는지는 별도로 살펴야 했다.

AI가 구현한 코드를 이해하고 검증하는 책임까지 맡길 수는 없었다. 다른 사람이 구현 이유를 물었을 때, AI가 그렇게 작성했다는 말만으로는 충분하지 않다. 어떤 의도로 지시했고, 결과를 어떻게 확인했으며, 왜 그 구현을 선택했는지 내 말로 설명할 수 있어야 한다.

리뷰에서 구현 의도를 설명하고 서로 확인하면서 이런 검증을 반복해서 경험했다. 결과물을 만드는 것과 그 결과를 이해하고 책임지는 것은 함께 가야 한다는 생각을 하게 됐다.

6. 내게 맞는 작업 속도에 대한 고민

팀장님이 작업하는 모습을 보며 나도 그만큼 해내고 싶은 마음이 컸다. 한 주에 머지하는 PR 수나 처리한 이슈의 에스티메이트를 보며 스스로 목표를 잡기도 했다. 작업의 종류와 경험이 다른데도 눈에 보이는 처리량을 내 속도의 기준으로 삼았던 것 같다.

목표를 세우고 노력했던 것 자체는 긍정적으로 생각한다. 다만 그 목표를 따라가는 동안 내 페이스와 몸 상태를 충분히 살피지 못했다.

대략 67월부터는 낮 12시쯤 일어나 오후 2시에 센터로 가고, 밤 11시쯤 귀가했다. 씻고 다시 개발을 시작하면 새벽 34시가 되었고, 작업이 길어지면 56시까지 이어졌다. 아침 67시에 잠드는 생활이 반복됐다. 당시에는 무리하고 있다는 생각보다, 이 정도는 해야 한다는 생각이 더 컸다.

사실 6월 회고에도 생활 패턴을 관리하고 재미있다고 무리하지 말아야 한다고 적었다. 문제를 전혀 모르고 있었던 것은 아니다. 다만 필요성을 아는 것과 실제로 작업을 멈추는 것은 달랐다. 몰입할수록 주변뿐 아니라 내 상태도 놓치는 성향이 있었고, 할 일이 계속 남아 있다는 사실은 쉬는 결정을 어렵게 만들었다.

지금은 몸이 더 이상 같은 생활을 버티기 어렵다고 느낀다. 소마 밖의 친한 친구도 일을 줄여야 한다고 걱정해준다. 돌아보면 내가 감당할 수 있는 속도를 확인하기보다, 무리하는 상태를 일상의 기준으로 받아들였던 것 같다.

얻고 싶은 것이 많았고, 그만큼 노력했다. 하지만 그 결과로 건강이 나빠졌다면 목표를 추구하는 방식은 조정할 필요가 있다. 지금까지 유지한 속도를 장기적으로 이어갈 수 없다는 점은 분명하게 느끼고 있다.

7. 함께 일하고 쉬는 시간

나는 혼자 있는 것을 더 편하게 느끼고, 사람들과 오래 어울리는 일을 피곤해하는 편이다. 사람 사이의 관계를 어떻게 다뤄야 할지도 의식적으로 많이 배워왔다. 소마에서는 여러 사람과 장기간 함께하면서, 내가 배워온 소통 방식을 실제 협업에서 적용해보게 됐다.

팀원이나 다른 참가자들과 이야기할 때 상대의 상황을 살피고, 내 생각을 어떻게 전달할지 고민하는 데도 에너지가 필요했다. 과정이 끝난 뒤에도 좋은 관계로 이어졌으면 하는 마음이 있었다. 다만 내게는 이런 소통이 자연스럽거나 편한 일만은 아니어서, 노력하는 동안 스트레스도 많이 느꼈다.

함께 저녁을 먹거나 다른 팀과 어울리는 시간은 즐거웠다. 최근에는 다른 팀 사람과 성수나 한강공원에 함께 놀러 가자는 이야기를 나눴다. 그러면서 이전에도 이런 시간을 더 자주 가지며, 조금 더 쉬고 즐겁게 과정에 참여했으면 좋았겠다는 생각이 들었다. 할 일이 많아 계속 달려왔지만, 함께 어울리고 쉬는 시간도 소마에서 얻을 수 있는 경험이었다.

많이 노력한 만큼 평가 결과에 대한 기대와 걱정도 있다. 결과가 어떻게 나오든 함께한 시간과 배운 것의 가치를 기억하고, 이후에도 좋은 관계를 이어가고 싶다.

이 과정에서 커뮤니케이션은 계속 투자할 가치가 있는 영역이라고 느꼈다. AI를 많이 활용하게 될수록 사람끼리 의도를 맞추고 서로의 상황을 이해하는 일은 더 중요해질 수도 있다고 생각한다. 다만 관계를 위해 노력하는 것과 내 여력을 모두 사용하는 것 사이의 균형은 아직 찾아가는 중이다.

8. 남은 과정과 그 이후에 대한 생각

지금까지의 경험은 내가 관심을 가지고 계속할 수 있는 일의 범위를 넓혀줬다. 이제는 그 경험 중 무엇을 더 깊게 쌓아갈지 생각하고 있다.

처음 기대했던 전문성까지 충분히 얻었는지에는 아직 의문이 남는다. 백엔드는 직접 구현하기보다 리뷰를 통해 이해한 부분이 많았다. 코드를 읽고 판단하는 경험에서 배운 것이 있지만, 직접 설계하고 구현하는 경험도 더 쌓고 싶다. 처음 기대했던 모습과 지금의 모습이 달라졌다는 아쉬움은 여기에 남아 있다.

여러 영역을 연결해 판단하는 경험은 앞으로도 도움이 될 것이라고 생각한다. 사용자 경험과 구현, API의 동작을 함께 살펴보면서 넓어진 시야를, 특정 영역을 자신 있게 맡을 수 있는 역량으로 어떻게 이어갈지가 다음 과제다. 경험의 가치는 인정하면서도 그다음 단계를 아직 정하지 못했다는 점에서 마음은 여전히 복잡하다.

앞으로의 목표는 그 경험을 바탕으로 조금 달라졌다. 보안 점검은 자발적으로 계속했지만, 보안을 깊게 경험할 기회가 많지는 않았다. 지금은 보안을 직업의 중심에 두기보다는 CTF에 참가하는 등의 취미로 이어가고 싶은 마음이 더 크다. 보안에 대한 관심을 유지하면서도, 개발자로서 어떤 일을 오래 하고 싶은지는 따로 생각해보게 됐다.

개발에서는 프론트엔드 경험을 바탕으로 백엔드까지 제대로 다룰 수 있는 풀스택 개발자가 되고 싶다. 사용자 경험과 접근성을 고민하는 일이 재미있었고, 내가 가진 섬세함을 활용할 수 있는 영역이라는 점도 알게 됐다. 이 경험을 이어가면서 화면에서 시작한 사용자의 행동이 API와 데이터 처리까지 어떻게 연결되는지 더 깊이 이해하고, 필요한 부분을 직접 구현할 수 있는 역량을 쌓고 싶다. 처음의 목표가 그대로 유지된 것은 아니지만, 실제로 해본 일에서 관심과 다음 목표를 찾았다는 점에는 의미가 있다.

복학한 뒤에는 지금까지 경험한 것들을 어떻게 내 역량으로 정리할지 고민하고 있다. 프로젝트에서 접한 기술과 코드를 이해하고 설명하는 데서 더 나아가, 스스로 판단하고 구현할 수 있는 영역을 넓히려면 무엇을 공부해야 할까. 프론트엔드에서 배운 것을 더 깊게 다지는 일과 백엔드 경험을 보완하는 일 사이에서 어디에 시간을 쓸지도 아직 정하지 못했다. 당장 모든 영역을 잘하겠다는 목표보다는, 이번 과정에서 얻은 경험과 더 배우고 싶은 부분을 구체적으로 살펴보는 데서 시작하고 싶다.

그 목표만큼 오래 일할 수 있는 생활을 만드는 것도 중요하다. 나는 하나에 몰입하면 주변과 내 상태를 놓치는 편이다. 어디까지가 감당할 수 있는 노력이고 어디부터가 무리인지, 지금도 그 기준을 명확하게 정하지 못했다. 한계를 자각했지만 균형을 잡는 방법까지 찾은 것은 아니다.

이후 소마에 참여하는 사람들에게는 얻고 싶은 것이 많을수록 자신의 상태도 함께 살폈으면 좋겠다고 이야기하고 싶다. 몰입하는 시간뿐 아니라 쉬고 사람들과 어울리는 시간도 과정의 일부로 생각하면 좋겠다.

과정이 끝나기까지 아직 시간이 남아 있고, 해야 할 일도 많다. 남은 기간에는 얼마나 더 해냈는지뿐 아니라 어떤 상태로 일하고 있는지도 함께 돌아보고 싶다. 소마가 끝난 뒤 무엇이 남을지에 대한 답은 아직 완성되지 않았지만, 그 답을 만들기 위해 내 상태를 계속 뒤로 미루지는 않아야 할 것 같다.


Edit page
Share this post:

Next Post
취약점 경고가 뜨면 무엇부터 확인할까