회고

나의 두번째 APP-JAM을 마치며

snowe 2021. 7. 27. 22:19

작년 회고에 이어 지금도 여전히 팬데믹 상황이다. 하지만 2021년은 벌써 반환점을 돌아 8월을 향해 가고 있다.
이 8개월이라는 시간 동안 나는 솝트를 하며 지난 학기와 다르게 졸업 작품과, 취업 준비도 병행 해야 했기 때문에 여느 때보다 더 정신없이 살아온 것 같다. 그래도 무사히 두 번째 APP-JAM을 마칠 수 있었다. 그리고 그간 많은 일이 있었다.

BE SOPT(28기) OB 지원

SOPT를 하면서 경험하고 얻은 것들이 많았기 때문에 27기 종료 후 28기에도 지원하기로 마음을 먹었었다. 하지만 이번엔 iOS가 아니라 서버파트로…! 지원하였다. 그 이유에는 뭐 여러 가지가 있었지만 가장 큰 이유는 "경험해 보고 싶어서", 구체적으로는 "클라이언트로 개발을 하다 보니 서버 개발이 궁금해져서" 였다. iOS 개발을 하면서 서버 개발자들과 협업할 때, 27기 중간 행사에 강연 와주신 백엔드 개발자분들 이야기를 들었을 때 서버 개발에 대한 호기심과 흥미가 생겼었다. 지금 봐도 너무 단순한 계기이다. 내가 지원 당시 고민했던 고민거리와는 너무 동떨어지게도….

"이번엔 서버파트!!" 라는 마음을 먹게 된 계기는 나름 단순했지만, 아무래도 28기의 시작 시점이 졸업까지 1년을 남겨 둔 시점이었기에 지금 iOS, 서버 등 여러 경험을 수평적으로 쌓기보다는 조금이라도 더 빨리 한 분야를 깊게 파야 취업 시장에서 승산이 있지 않을까? 라는 고민이 매우 컸다. 그래서 주변 지인들을 통해 많은 조언을 구하여 방향을 정했고, 우연히 유튜브 서칭 중 보게 된 전수열님의 인터뷰 영상을 통해 그 방향이 틀린 방향이 아님을 확신하였다.

Team CA:PIN

iOS 개발 꿈나무의 서버 개발 경험담

그렇게 지원한 서버 파트에서 운 좋게 합격했고 8주간의 세미나 과정을 마치고 CA:PIN이라는 서비스 제공자가 엄선한 카페들을 볼 수 있는 카페맵 서비스에 서버 개발자로 참여하였다.

28기 앱잼 포스터

3주 앱잼의 흐름은 지난 Cherish때와 비슷했다. 조금은 더 열악한 상황이었다고 해야 하려나? 지난번과 마찬가지로 코로나19가 지속되고 있었지만, 조금은 나아질 거라는 예상을 비웃기라도 하듯 앱잼 중간에 5인 이상 집합 금지가 3인 이상 집합 금지로 바뀌었다. 그래도 다행히 팀 내에 앱잼을 경험 해 본 OB들이 많이 있어서 이러한 예상치 못한 전개에도 크게 흔들리지 않았던 것 같다.

팀원들 모두가 너무 털털하고 둥글둥글한 성격의 소유자들이다 보니 크게 문제가 됐던 순간이나 힘들었던 순간이 있지 않았다. 지난번과 마찬가지로 슬랙, 노션, 디스코드 등의 협업 도구를 활용하였고 사용법이 익숙해져 있었기 때문에 별도의 적응 기간도 필요 없이 개발에만 신경 쓸 수 있었다.

CA:PIN


아 물론 한 가지 개인적인(?) 고민이 있긴 했는데..서버 개발을 처음 한다는 것에서 온 막연한 두려움이 마음 한편에 자리 잡고 있었다. 팀에 서버 개발자는 나를 포함해 2명이었고, 그 친구 또한 지난 기수 iOS를 하고 이번 기수에 처음 서버 개발을 하는, 나와 정말 비슷한 상황에 놓여 있던 친구였다. 보통은 해당 분야의 개발 경험이 있는 OB를 중심으로 파트별 팀이 꾸려지기 때문에 이러한 상황이 익숙하지 않았다.

전화위복이란 말을 이럴때 써도 되려나, 막상 개발에 들어가고 나서부터는 오히려 둘이 같은 상황에 놓여 있어서 같은 개발 방향성을 가질 수 있었다. 둘 다 경험이 없었기 때문에 예상치 못한 상황을 대비하기 위해서 좀 더 빨리 끝내고자 노력했고(실제로 모든 팀 중에 가장 진행도가 빨랐던 것 같다), 서로의 코드 리뷰도 해주면서 최대한 신속, 정확하게 개발을 할 수 있었다. (밤새우지 않기로 한 룰은 못 지켰지만..)

내가 개발을 하면서 가장 신경썼던 부분은 아래 3가지였다.

1. 견고한 DB설계 및 코드의 효율성
아무래도 클라이언트로 개발을 할 때 보다 서버 개발을 하면서 내가 짠 코드의 효율성을 더 신경쓰게 됐던 것 같다. 직접적으로 데이터가 전달되기까지의 시간을 최소한으로 줄여주어야 사용자가 앱에서 요청한 화면이 즉각적으로 나올 수 있다는 것을 알고 있었기 때문에 그랬던 것 같다. 그냥 개인적인 욕심도 한 몫 했지만..ㅎㅎ

2. 확장성 및 유지보수의 용이성
이건 iOS개발자로서 확장성과 유지보수의 용이성이 얼마나 중요한지 깨달았었기 때문에 더 신경쓴 부분이었다. 현재 하고 있는 개발이 변동사항 없이 끝나면 좋겠지만 오늘 먹고싶은 음식이 내일은 먹기 싫어질 수 있는 것처럼 현재의 기획과 기능 또한 언제든 변화할 수 있다. 이 때 변화에 유연하게 대처하기 위해서 서로 얽혀있는 코드를 작성하기보다 각 코드의 역할을 직관적으로 분리 해놓는것이 확장과 유지보수에 용이하다. 그래서 첫 서버 개발이지만 비즈니스 로직을 분리(Services - Controllers)하여 개발했었다.

3. 클라이언트와 서버가 모두 win-win할 수 있는 API 개발
아무래도 iOS개발을 하다 서버개발을 한 것이기 때문에 좀 더 클라이언트(iOS/AOS) 친화적인 API를 만들어보고 싶었다. 물론, 서버 개발자로서의 개발 효율성도 챙기면서 말이다.
이 부분에서 iOS경험이 있는 것이 큰 장점으로 작용했다. 같은 데이터를 주더라도 주는 방식에 따라 클라측에서 작성할 코드가 늘어나기도, 줄어들기도 한다. 그래서 나는 최대한 클라가 편한 데이터 형식으로 주려고 노력하였고, 서버측이 처리할 수 있는 것들은 최대한 서버 내에서 처리해주었으며 변수명도 헷갈리지 않도록 신경썼던 것 같다.

GitHub - teamCA-PIN/CA-PIN_Server: 🏄🏻‍♂️ 우린 앱잼때 다 하고 릴리즈때 놀자

🏄🏻‍♂️ 우린 앱잼때 다 하고 릴리즈때 놀자. Contribute to teamCA-PIN/CA-PIN_Server development by creating an account on GitHub.

github.com


서로 노력하며 나아가다 보니 이것 저것 많은 것을 경험했다. 좀 더 편리하고 좋은 코드를 짜고 싶다는 마음에 비즈니스 로직도 분리해보았고 여러 레퍼런스들을 찾아가며 불필요한 수고를 덜 수 있는 유용한 모듈들 또한 최선을 다해 도입해보았다. 로그 모니터링도 해보았고, 토큰 통신도 구현하면서 토큰을 왜 사용하는지, 어떻게 처리가 이루어지는지도 알게 되었으며, API 효율 개선을 위해 코드 리팩토링도 해보았다.

비록 끝날때가 되었을 때 우리가 개발하며 놓쳤던 부분, 서두르다보니 좀 더 완벽하게 구현하지 못했던 부분들이 눈에 보이긴 했지만 처음부터 허점없이 완벽하게 해내는 것이 더 이상하다고 생각한다. 일부러 알면서도 모른척 지나간 것이 아니었고, 우리의 시간과 능력을 최대한 쏟아 부었기 때문에 결과적으로는 성공적이었다고 볼 수 있을 것 같다. 새로운 분야를 경험하면서 시야를 넓힐 수 있었고, iOS 개발에도 도움이 될 수 있는 고민과 생각을 하였으며, 무엇보다 기존 서버 개발을 하던 사람들에게 개발 잘했다는 칭찬도 몇 번 받아서 뿌듯했다.

처음 예상한 API의 갯수는 15개였으나..어림도 없지 데모데이 당일에 세어보니 25개가 되어있었다

마치며

둘 다 경험해 본 바, 나는 서버 개발보다 iOS 개발이 더 매력적이었기에 iOS 개발자로서의 공부를 이어나가기로 하였다. 하지만 28기 종무식만을 남겨 둔 지금 나는 서버 파트로 수료한다는 것을 후회하지 않는다. "개발자는 협업을 하는 사람들이고, 개발자로서 자신이랑 같이 일하는 사람들이 어떤 생각과 고민을 하는지 아는 것은 큰 도움이 된다고 생각한다." 서두에서 밝힌 전수열님의 인터뷰 영상에서 나오는 말이다. 내가 했던 고민과 생각의 깊이가 현업 서버개발자 분들의 것과는 비교 불가이겠지만, 최소한 고민과 생각의 시작점은 같을거라고 생각한다. 나는 이러한 부분들을 터득했다는 것 만으로도 만족한다.

21년 3월부터 지금까지 약 5달 동안 SOPT 28기, 솝텀, 4-1학기, 졸업 작품, Cherish 릴리즈, 취준 시작 후 기술 면접 첫 경험 등…. 모두 후루룩 우당탕 지나갔다. 정신도 없었고 힘들고 지친 순간도 있었지만 잘 이겨냈고, 잘 하고 있다고, 앞으로도 잘 할 수 있다고 믿고있다.

아 그리고 Cherish가 7월 3일 드디어 릴리즈를 했다!! 앱스토어에 검색하면 나오는데 Cherish도 정말 많은 일들이 있었다..좋은 쪽으로! 그만큼 책임감도 커졌으니 디버깅 열심히 리팩토링 열심히 해야지. Cherish 관련된 이야기는 나중에 또 다른 글로 다뤄야겠다.

세상에 무의미한 경험과 도전은 없다. 하반기도 화이팅 :)

2021.07.31) 28기 종무식도 무사히 끝!