2024년
2024년은 나에게 개발자로서 뜻 깊은 한 해였다.
23년도 11월 즈음 백엔드 개발자가 되기로 마음을 먹고 24년 초부터 첫 걸음을 내딛고 지금까지 쭉 달려오고 있기 때문이다.
내가 객체지향 언어의 매력을 느끼고 있었을 때 백엔드 개발자가 되기로 마음먹었기 때문에 당연히 나는 자바 기반의 스프링 프레임워크를 가장 먼저 배웠다.
찾아보니 처음 스프링 관련 글을 올렸을 때가 24년 1월 11일이었다.
약 1년간 Spring, JPA, Spring Data JPA, QueryDSL, Dokcer, Github Actions, AWS, Redis 등 현업에서 사용하는 기술 스택에 익숙해지기 위해 많이 노력했었다.
학교 성적도 나름 준수하게 마무리했고, 진행했던 프로젝트 3개중 2개를 수상했으니 만족할 수 있는 결과도 얻었다.
1년간 제대로 배운건가?
라는 질문을 가끔씩 나에게 물어본다.
"겉핥기만 한거지 뭐" 라고 답변을 늘한다.
뭐랄까 각각의 기술 스택이 어떠한 경우에 사용되고 어떤 느낌이다(?) 정도만 경험한 것이라고 생각한다.
최대한 기억에 이해하고 각인시키려고 공부할 때마다 블로그에 글을 쓰지만 글쎄... 배운것들을 설명해보라고 한다면 제대로 설명할 자신감이 없다..
그리고 각 기술 스택이 CS와 밀접하게 연관되어있는 경우가 대부분이어서 CS를 공부하다보면 하루가 끝나가고...
그렇다고 CS를 기깔나게 공부한것도 아니라고 생각한다..
그렇지만 너무 재미있다.
"나 어떠한 개념은 정말 완벽하게 안다."라고 할 수 있는 것들은 별로 없지만 새로운 기술 스택을 배울 때 늘 흥미있게 공부하였다.
이 기술과 저 기술이 맞물려서 개발을 더 편리하게 하거나, 옛날부터 불편하다고 느꼈던 경험이 이런 기술이 해결해준다는 것을 알았을 때 도파민 분출이라고 해야하나 아무튼 내가 이걸 배웠으니 어떤것을 만들어볼까? 하면서 기분이 좋아진다.
예를 들어서
- "데이터베이스와 상호작용하기 위해선 SQL과 싸워야했지만 ORM기술을 이용하면 객체 다루듯이 DB에 접근할 수 있다."
- "스프링과 JPA를 이용해서 애플리케이션을 만들어도 버전이 업그레이드 될 때마다 배포하기가 까다롭지만 깃허브 액션 등을 통해서 배포를 쉽고 간편하게 해준다"
- "애플리케이션을 배포하기 위해서 운영체제마다 다르게 세팅해주어야 할 것들이 많았는데 Docker가 일관된 환경을 만들어준다."
이러한 개념을 배울 때마다 신기하고 가슴이 뛴다.
프로젝트 경험
이번년도에 총 3개의 프로젝트를 진행하였는데, 내가 공통으로 맡은 주요 역할은 백엔드였다.
첫 번째 프로젝트인 '영수증 인식을 통한 레시피 추천 애플리케이션(Receipt2Recipe)'에선 스프링, JPA와 도커를 이용하여 서버 사이드 렌더링으로 웹 애플리케이션을 만들고 AWS에 배포하였고 모바일 애플리케이션으로도 서비스하기 위해 API를 만들었다.
나도 그렇고 팀원들도 마찬가지로 프로젝트가 처음이라서 아는것도 많이 없어서 정상적으로 작동되고 겉보기엔 그럴싸하지만 내부는 엉망이었다.
그렇기 때문에 수상을 할거라는 기대도 안했기 때문에 시상식에도 참석하지 않았다.
하지만 캡스톤 디자인 경진대회에서 동상을 차지하며 마무리되었다.
두 번째 프로젝트인 '처방전 인식을 통한 자동 복약관리 서비스(Promise)'에선 이전에 사용했던 기술 스택에 추가로 RDS와 깃허브 액션을 이용한 CI/CI 파이프 라인을 구축하였다.
테스트 코드는 별도로 작성하지 않았으니 반쪽짜리 CI/CD 구축이었다.
이때 로그백을 이용하여 EC2 인스턴스에 로그파일을 남기고 일정 시간이 지나면 압축하는 기능을 알게된 것, 무엇보다도 만들면 끝이 아닌 실제 사용자가 있기 때문에 운영 및 유지 보수를 할 수 있는 경험이어서 재미를 많이 느꼈다.
프로젝트 특성상 대부분이 API를 만드는데 시간을 보냈고, 스마트 약통과의 연동도 있었기 때문에 꽤 흥미로운 프로젝트였다
이 프로젝트는 전자정보통신학부 학생들과 협업을 했고, 우리 학교 학생들과 경쟁하는 것이 아닌 강원도 전 지역의 대학생들과 경쟁하는 것이어서 특별한 경험이었다.
수상 결과는 아직 나오지 않았다. 현재 작성일 기준으로 딱 일주일 뒤에 결과가 나온다.
사진에 나온날 아이디어 발표를 진행하였고, 발표를 통해 선정된 14팀에 들게되어 본선으로 진출하였고, 본선 진출 대상 팀 대상으로 프로젝트 진행 및 비용 청구가 가능했다.
세 번째 프로젝트인 '강원대 학생들을 위한 팀 매칭 플랫폼(KTSP:KNU Talent Sharing Platform)'에선 스프링 시큐리티를 이용해서 민감한 정보는 암호화 하여 저장하고, STMP와 레디스를 이용하여 학교 메일 인증 기능을 만든 경험이 기억에 남는다.
프로젝트 경험을 키우고 싶어서 캡스톤디자인 경진대회를 한번 더 참여하였고, 팀으로만 지원이 가능해서 여러 친구들에게 "내가 알아서 다할 테니 머릿수만 채워줘" 라고 부탁을 하였고... 그래서 이 프로젝트에선 나를 포함하여 팀원이 5명이었지만 모든 과정을 95%를 나혼자 다했다.
사용한 기술스택은 이전 프로젝트와 비슷하지만 이전 경험을 바탕으로 보완해야겠다고 생각하던 것들을 적용하였다.
결과는 놀랍게도 금상을 차지하였다.
나는 장려상만 받아도 땡큐 마인드였는데, 감사하게도 금상을 주셨다.
https://www.veritas-a.com/news/articleView.html?idxno=536724
협업다운 협업을 한 것 같지가 않아...
첫 프로젝트에서 4명은 각각 프론트엔드, 백엔드, DBA, UI 이렇게 각 역할을 나누었다.
언뜻보기에 역할 분담을 잘했다고 볼 수 있다.
하지만 프론트엔드를 맡은 팀원은 코틀린이 처음이었고, 모바일 애플리케이션을 기간내에 완성시키지 못할것 같다는 강렬한 직감이 왔다.
그래서 기존 계획과는 다르게 SSR 방식으로 내가 웹 애플리케이션까지 만들겠다고 제안을하여 만들었다.
내 예상대로 프론트엔드 팀원은 모바일 애플리케이션을 만들지 못했고 결과적으로 FE, BE, UI 마저 내가 모두 하였다.
또한 DBA를 맡은 팀원도 결과적으로 데이터베이스 모델링만 했을 뿐 DB 구축등 administrator 역할은 내가하였다.
두 번째 프로젝트에서 팀원이 총 6명이었는데 5명은 전자정보통신공학부 학생들이었고 나 혼자만 다른 전공이었다.
여기서 내가 팀장을 맡게되었는데, 문제는 구조적으로 프로젝트에 크게 기여할 수 있는 인원은 나를 포함하여 6명중 2명이었다.
한 명은 개인적인 이유로 탈주하였고, 팀원 두 명은 개발을 전혀 못하는 팀원이었다.
프로젝트 기획을 내가하였고, 개발을 못하는 팀원이 PPT를 만들어주면 좋겠지만 프로젝트에 대한 이해도가 떨어져서 맡길 수가 없었다.
나는 모바일 애플리케이션 개발을 맡고, 다른 한 팀원은 하드웨어 개발(스마트 약통)을 맡아 진행한 것이었다.
백엔드 구축은 어느정도 내 스스로 했지만, 모바일 애플리케이션 개발은 처음이었고 공부해서 만들고 싶었지만 세 번째 프로젝트 개발 시기와 완벽히 겹쳤기 때문에 GPT의 도움을 매우 많이 받았다.
결과적으로 기획, PPT 제작, 발표, 애플리케이션 제작 모두 내가하였다.
세 번째 프로젝트는 이전에 말했다싶이 친구들에게 "내가 알아서 다할 테니 머릿수만 채워줘" 라고 부탁을 한 것이기 때문에 거의 모든 것을 나 혼자 해냈다.
아이러니하게도 첫 번째 프로젝트와 두 번째 프로젝트에서 협업을 원할히 하지 못한 이유가 "기술 스택 궁합이 잘 맞는 팀원을 만나기 힘들기 때문" 이라고 생각했고 이 문제점을 해소하고자 만든, 모든것을 혼자한 "팀 프로젝트"라는 점이다.
정말 너무너무 아쉬운 것은 팀 프로젝트을 3개를 진행했는데 협업을 하면서 역할을 체계적으로 나누어서 더 좋은 퀄리티의 서비스를 만들지 못했다는 점이다.
특히 두 번째 프로젝트와 세 번째 프로젝트 시기가 너무 겹쳐서 더욱 좋은 서비스를 만들지 못했을 뿐더러 경험을 통한 배움을 온전히 습득하지 못했다고 생각한다.
그래서 코테는 언제 준비하고, 취업은 어떻게 하지?
나에게 가장 취약한점을 묻는다면 코딩 테스트 준비이다.
무엇을 만드는 것은 힘들더라도 재미가 있기 때문에 힘내서 할 수 있지만, 코딩 테스트 준비 즉, 알고리즘 문제풀이는 재미가 없다....
그리고 다들 알겠지만 코로나 이후 개발자 채용 시장은 꽁꽁 얼었다.
이제 졸업도 했고 이력서도 넣어야 하지만... 나는 아직 더 배우고 싶고 재밌는 것을 만들고 싶다....
내가 지원을 하더라도 어떤 부서에 배정되고 무슨 일을 할지도 미지수라는게 너무 두렵다.
나는 힘들더라도 내가 재미있는 것을 하는 삶을 살기를 바란다.
마치며
24년 중반까지만 하더라도 취업 시장이 얼어붙은 것, 경력자만 뽑는 기업, 코딩 테스트 압박, 프로젝트 경험이 별로 없음 등등으로 너무 마음고생을 많이했다.
올해는 이상하게도 이런 두려움에 대해서 뭐하나 날카로운 돌파구가 없지만 마음이 편안해졌다.
어쨌든 나는 올해 많이 성장했다고 느꼈기 때문이다.
아직 수상자가 발표되지 않은 두 번째 프로젝트 결과를 지켜보고 이번달에 예정되어있는 해외여행을 갔다오면서 앞으로의 미래를 천천히 생각해야 할 것 같다.