뒤로
김하린
김하린 ·

개발자가 새로움을 만났을 때 어떻게 했을까? - Aha 프로젝트 개발 과정

글을 시작하기 전에, 간단하게 Aha에 대한 소개를 드리겠습니다.

주변에 물어볼 사람도 없고, 인터넷에 물어봐도 답변을 제대로 받지 못해서 답답함을 느끼는 사람을 위한 코딩 멘토링 플랫폼 서비스, Aha!


Aha는 Techeer 부트캠프에서 진행한 프로젝트입니다. 총 4명의 테커의 인원과 만들었고, 저는 Backend와 DevOps를 담당해 개발했습니다.

궁금한 것에 대한 답변이 필요한 멘티와, 이를 가르쳐 줄 수 있는 멘토가 매칭될 수 있도록 채팅 서비스를 처음 개발했어야 했는데, 처음 접하는 기술을 어떻게 다가가고, 적용했었는지 과정을 공유하려고 합니다 😎


알아가는 과정

평소 개발하던 백엔드 서버 개발과는 다르게, 채팅은 처음 만나는 친구였습니다. HTTP 기반의 REST API를 개발해왔는데, 채팅은 HTTP가 아닌 WebSocket 방식이라니 막막하게 다가왔습니다.



위는 배포하기 전에 녹화한 저희 서비스의 채팅 화면입니다 :)


글? 영상?

일단 싸우려면 적에 대해 알고 있어야 하니, 채팅 개발이란 어떤 것인지 낱낱이 파헤치기 시작했습니다.

“채팅 서버 개발”, “pub/sub”, “메시지 브로커”, “stomp”, “SockJS”…. 구글링을 하면 할수록 쉴새없이 쏟아지는 용어들을 파고 들어갔습니다. 순식간에 많은 정보가 쏟아지다 보니, 그떄 당시에는 제 즐겨찾기 폴더에 ‘채팅 관련’ 폴더를 생성해 많은 링크를 추가해놨었습니다. 그래도, 정보가 분산되어 있어 글을 읽다가 ‘이건 뭐였지?’ 하며 다른 글을 찾게 되는 비효율적인 학습이 이루어졌었습니다.

그래서 제가 찾은 방법은 유튜브를 활용이었습니다. 물론 글은 필요한 정보만 빠르게 읽고, 그만큼 여러 컨텐츠를 읽을 수 있다는 장점이 있습니다. 하지만, 내가 모르는 것, 아는 것이 명확하게 구분되지 않고 감도 잡히지 않은 상태에서 글에서 정보를 얻으려 한다면 오히려 더 많은 시간이 소모됩니다.

영상은 헷갈리는 개념 또는 하나의 주제를 잡고 전체적인 개념을 처음부터 끝까지 설명해주는 경우가 많고, 이해하기 쉽도록 편집이 들어가 있어, 처음 개념을 잡기 에는 유튜브만한 게 없다고 생각합니다 😆




널 어디까지 알아야 할까

또 새로운 기술을 배울 땐, 목표를 명확히 해야한다는 것을 깨닫게 되었습니다. 일단 이번 프로젝트 같은 경우에는 채팅 기능 개발을 위한 공부였기 때문에, 목표는 ‘채팅 기능 개발’이라고 생각하실 수 있겠지만, 좀 더 자세한 목표를 잡아야 했습니다.

배움에는 끝이 없기 떄문에 어느정도 깊이까지 알고, 개발할 지 정해놓아야 프로젝트 마감에 적절한 속도를 맞출 수 있다고 생각했습니다. 따라서 1차적으로는 POC 단계 개발에 필요한 지식만 알게 될 때까지 공부하고, 2차적으로는 외부 메시지 브로커를 왜 사용하고, 어떻게 적용시키는 지에 대해 공부하자고 스스로 정해놓고 공부를 진행했습니다.

프로젝트 개발에는 아무래도 마감 기한이 있다보니, 여기에 사용할 수 있는 시간이 한정되어 있어 이 방법을 사용하니, 무작정 배우려고 하는 것보다는 프로젝트 스케줄 관리 또한 수월했습니다.

쉽지 않은 적용


개발자 - 협업 = 시체

저는 팀원을 최대한 활용(?)하려고 노력했었고, 결과적으로 프로젝트 성공 요인은 개발 실력이 아닌, 협업 시너지에서 나온다는 것을 다시 한 번 깨닫게 되었습니다. 일단, 채팅 기능 개발을 위한 공부를 진행할 당시에 다른 사람의 생각이 궁금하거나 모르는 것은 즉시 서로 질문하고, 이야기하며 학습의 속도를 올렸습니다. 또한 개발을 진행할 때도 문제해결을 위해 같이 여러 방향으로 토론했으며 그 결과는 ‘백지장도 맞들면 낫다’ 였습니다 👍

‘Aha’의 백엔드 개발자가 저 포함 두 명이라 오히려 즉각적이고, 잦은 커뮤니케이션이 가능했었습니다. 이는 둘 다 처음 써보는 기술, 또한 우리의 프로젝트에 대한 이해도를 맞춰나갈 수 있었고, 따라서 발생한 관련 문제에 대해 항상 같이 고민하고, 빠르게 해결할 수 있었습니다.


개발자를 괴롭게 만드는 것 = 에러, 기쁘게 만드는 것 = 에러 해결

역시 처음 개발해보는 기능이다 보니, 정말 많고 다양한 에러를 접했었습니다. 아무래도 익숙한 기술을 사용하다 발생한 에러라면, 짐작가는 원인이 있을테지만, 새로 접하는 기술이다보니 에러가 나는 이유조차 추측을 하기 어려웠고 이에 따라 구글링도 난항이었습니다.

이때 저는 항상 이런 말을 계속 되뇌이며, 흔들리는 멘탈을 붙잡았습니다. “이 세상에는 많은 개발자가 있고, 내가 겪고 있는 에러는 이미 누군가 한 명 쯤은 겪었을 것이다. 그러니 해결 방법은 무조건 있다!” 라는 말이었습니다. 별 거 아니잖아? 라고 생각하실 수도 있지만, 큰 도움이 되었습니다. 덕분에 같은 오류를 며칠씩 붙잡고 있어도 끈기 있게 해결해 낼 수 있었습니다.


잘 마쳤습니다!

이로써 새로운 경험을 또 하나 쌓을 수 있었습니다. 이 경험을 통해 배울 수 있었던 점은 일단 개발 실력도 증요하지만 협업 능력도 중요하다는 것을 배웠습니다. 개발은 절대 혼자 하는 것이 아닌, 같이 하는 작업임을 깨달았고, 협업의 이점을 최대한으로 끌어올리는 개발자가 성공적으로 프로젝트를 마칠 수 있는 것 같습니다.


사실 개발자는 나날이 발전하는 기술에 맞춰 새로 배워야 할 것도 계속해서 생기기 마련입니다. 따라서, ‘처음’ 이라는 것에 초점을 두는 것보다는 원래 하던 개발에서 도구만 바뀐다고 생각하는 것이 중요한 것 같습니다.

예를 들면, 테니스, 배드민턴, 탁구는 도구는 다르지만, 공을 코트 너머로 보내야 한다는 것은 똑같아서 그 중 하나의 종목에만 감을 잡아도, 다른 종목은 좀 더 쉽게 할 수 있습니다. 자신감은 안되던 것도 되게 하는 원동력이라고 생각합니다. 개발도 새롭게 접하는 기술이 있다면, 하는 방법은 같고 도구만 바뀌는 거라 쉽게 개발할 수 있다 생각하며 자신감을 가지면 좋을 것 같습니다.


‘Aha’라는 프로젝트를 진행하며, 기술을 새롭게 배워서 사용해야 했었고, 하필 적용하는 부분이 메인 기능이었기 때문에 부담감이 컸던 것 같습니다. 하지만 이번 경험을 통해 극복해보니 새로움에 대한 두려움이 없어지는 계기가 되었던 것 같습니다 :)

아하

실시간 코드 공유 에디터를 제공하는 코딩 멘토링 플랫폼

15

댓글

로그인 후 댓글을 남길 수 있습니다.

아직 댓글이 없습니다.