2023년은 작년보다 조금 더 바쁘게 지내며 크고 작은 결실을 맺은 해였다.
요약하자면, 스프링 백엔드 개발자가 되기 위해 노력한 해이다.
스프링 전향, 공부 시작
올해 1월부터는 자바 스프링 백엔드 개발이 유망하다고 생각해 스프링으로 전향하게 되었다.
김영한님 강의를 들으며 공부했다.
아무래도 이전에 django, node.js 프로젝트를 했어서인지 전반적인 흐름을 빠르게 파악할 수 있었다.
가장 어려웠던건 IoC, DI 등 객체지향 언어의 프레임워크로써 갖는 스프링의 특징들이었다.
솔직히 OOP도 감으로만 익힌 상태였어서, 이것들이 왜 필요하고 어떻게 동작하는지 바로 이해하기 힘들었던 것 같다.
이때 크게 느낀게, 나는 이론만 공부하는 것보다는 구현하면서 부딪혀보면서 빠르게 배우는 타입이라는 점.
올해 프로젝트를 여러개 진행하면서 정말 빠르게 배울 수 있었다.
CS 스터디
1월 중, CS 스터디를 열게 되었다.
학교 에브리타임에서 사람들을 모았는데, 생각보다 관심을 많이 가져주셨고 총 4명의 스터디원으로 시작하게 됐다.
모두들 호기심이 많고 협조적이어서 스터디가 원활하고 재밌게 흘러갔다.
아쉬웠던 점은 전체 범위가 너무 넓게 잡아서 팀원당 대주제 2~4개 정도밖에 다루지 못했다는 점이다. 나는 자료구조, DB 정도만 모두 다룰 수 있었다. (나의 경우 운영체제, 네트워크는 거의 다루지 못해 아쉬웠다)
그래도 7개월이라는 긴 시간동안 진행하면서, 팀원들 모두 이론을 많이 배웠고 설명하는 스킬이 올라가서 많이 뿌듯했다.
레포지토리는 스타도 꽤 많이 받았다. (19개면 내 기준에선 많다)
졸업 프로젝트, 복쟉복쟉
3월 말, 학교에서 듣는 졸업 프로젝트 강의에서 자연스럽게 팀 빌딩을 하게 됐고 프로젝트를 시작하기로 했다.
프로젝트 기획을 갖고 있던 팀원이 아이디어를 제시하면서 팀장이 되었고 따르게 되었다.
프로젝트 경험이 많았던 팀장님 덕분에 개발이 수월하게 진행될 수 있었다.
우리 팀은 Must, Should, Could, Won't 4가지의 우선순위로 태스크들을 나눠서 진행했다.
이 덕분에 태스크 진행을 체계적으로 할 수 있었고 일정 관리도 원활했다.
개발하다가 어떤 태스크부터 해야 하지..? 라는 고민을 하게 될 때가 있었는데, 그럴 때 MoSCoW의 도움을 받았다.
그리고 개발 전에 API 명세를 미리 진행해서 프론트엔드 개발자분들과 미스 커뮤니케이션을 방지하고자 노력했다.
나중엔 휴먼 에러 때문에 스웨거로 명세 방법을 대체하기는 했다.
그래도 손수 명세를 하면서 자연스럽게 기능들에 대한 감을 잡을 수 있었고, DB 모델링도 수월하게 할 수 있었다.
여름 방학의 가용 시간은 대부분 이 프로젝트에 썼다.
이 프로젝트를 하면서 스프링을 정말 많이 배울 수 있었다.
장소별로 실시간 인구 혼잡도를 보여주는 API를 개발해야 했는데, 엄청 느리던 쿼리 속도를 크게 개선했던게 기억에 남는다.
팀원들 모두 열심히 했고 결과가 아주 잘 나와서 정말 애착이 가는 프로젝트다.
대학교 다니면서 뭐했지..? 라는 생각이 들 때마다 이 프로젝트가 떠오르고 앞으로도 떠오를 것 같다.
https://github.com/Akatsuki-USW/Buzzzzing-Server
사이드 졸업 프로젝트, 부끄북극
8월 중, 아시던 학우분께서 백엔드 개발자를 필요로 하셔서 다른 팀의 졸업 프로젝트에 조인하게 됐다.
맡은 기능이 그리 어렵지 않아 보여서 쉽게 오케이했었는데, 서비스의 배경지식(도메인 지식?)을 파악하는 것부터 구현까지 생각보다 어려운 일들이 많았다.
백엔드 팀원분께서 PR 리뷰를 정말 상세하게 해주셔서 참 감사했다.
평소에 코드 퀄리티를 크게 신경쓰지 않았는데, 이 분 덕분에 같은 코드를 짜더라도 한 번 더 생각하는 습관을 가질 수 있게 되었다. 객체 지향적인 코드란 무엇일까를 항상 생각하시는 분이다.
하나 문제가 발생했는데, 졸업 전시회 때 버그가 생긴 것이다.
쿼리문에서 발생한 버그인데, 딱 한 줄 한 메서드 때문에 발생했다.
조금 더 신경썼으면 예방할 수 있는 문제였기 때문에 참 부끄러웠다.
팀원분들께 정말 죄송하고 앞으로 그런 비슷한 실수는 절대 안 하기 위해 노력할 예정이다.
테스트의 중요성을 알게 된 계기이기도 하다.
연합 동아리 탈락
솝트, 얍, 디프만에 연달아 탈락하게 된다.
솝트는 서류에서 탈락했고 얍과 디프만은 면접 후에 탈락했다.
평균 3~4일씩 열심히 준비했었는데 정말 아쉽다.
동아리 지원서를 쓰는게 정말 어려운 일이라는걸 알게 됐다. (자기소개서란 참.. 쉽지 않다. 나 자신을 표현하는건 정말 어렵다.)
이 실패들을 통해 내가 글과 말로 표현하는 것이 약점이라는 걸 알게 됐다.
이론 공부에 소홀했던게 문제였기도 하다.
나를 객관적으로 돌아보게 되는 시간이었다.
결과적으로 내 약점을 알게 되어서 다행이라는 생각이 든다.
수위키 시간표 API 개발과 유지보수
수원대학교에서 유명한 서비스인 수위키의 개발에 조인하게 됐다.
평소에 정말 원하던 '실사용 서비스'였다. 12월 말 기준 2040명의 사용자를 보유하고 있다.
항상 실제 사용되는 앱의 개발자들을 동경해왔기 때문에 냉큼 팀에 합류했다.
내가 맡게 된 파트는 새로운 API 개발이다.
기존의 앱에서는 클라이언트에 시간표 정보를 저장했는데, 사용자가 앱 데이터를 지우거나 앱을 삭제하면 시간표도 함께 사라지는 식이다.
해당 앱에서 꽤 중요한 파트라고 생각해서, 열심히 임하고 있다.
이전 백엔드 분들께서 1~2년전에 개발하셨었는데, 다들 첫번째 프로젝트였어서 레거시 코드들이 있다.
그래서 자연스럽게 유지보수도 하고 있다.
이런 부분들도 개발자로서 일하다보면 반드시 겪는 일일 것이기 때문에 긍정적으로 바라보고 성장할 기회로 여길 생각이다.
유지보수를 직접 해봐야 유지보수성이란 단어를 제대로 이해할 수 있지 않을까?
정리
나름 뭔가 많이 했다고 볼 수도 있지만, 나태하게 보낸 시간들이 너무 많아 아쉽다.
특히 연합 동아리 지원이나 우테코 프리코스은 왜 그렇게 안일하게 생각했는지 모르겠다.
올해는 조금 아쉽게 지나갔지만, 2024년은 다르길 기대해본다.
요즘은 오브젝트(조영호 저) 스터디, 스프링 면접식 스터디를 시작하려고 하고 있다.
특히 면접이 약해서 면접 스터디를 열심히 해볼 예정이다.
'회고 및 성찰' 카테고리의 다른 글
[성찰] 너 코드를 알라 (1) | 2024.01.08 |
---|---|
[회고] 스터디를 처음 운영해보면서 생긴 시행착오와 배운 점들 (0) | 2023.09.27 |
대학생이 리눅스 우분투를 2년간 써보면서 (Ubuntu 22.04) (0) | 2023.03.24 |
[회고] 2022년을 돌아보며 (0) | 2023.03.03 |