티스토리 뷰
22년 한 해가 벌써 지나갔다. 되돌아보면 21년도는 개발 영역에 입문하여 백엔드 개발자로 진로의 방향을 결정하는 한 해였다면, 22년도는 백엔드 개발자로서 가장 많이 학습하고 성장했던 지난 1년이 아니었나 싶다.
1월~3월 (3학년 겨울방학)
- 스프링 부트 이론 학습
- 코테이토 1기 동아리 활동 - 알고리즘 스터디 팀장
- 파이썬 알고리즘 공부
22년도 1월~3월은 스프링 부트 이론 학습과 파이썬 알고리즘 공부를 위주로 진행했다. 프로젝트 경험은 아직 없어서 코테이토 동아리에서도 알고리즘 스터디 팀장을 맡아서 진행했었다.
이때 프로그래머스 lv.2 백준 골드4를 달성할 만큼 알고리즘 문제를 풀었었다.
스프링 부트는 MVC의 기본적인 기능 (인터셉터, 예외 처리, 유효성 검증)을 학습하고 간단한 타임리프 문법과 로그인/로그아웃 처리를 이론적으로 학습했다. 인프런의 김영한 강사님의 강의를 거의 모두 수강했다.
3월~6월 (4학년 1학기)
- (비대면 학기) 데이터베이스(B+), 블록체인(A0), 시스템클라우드보안(A0), 캡스톤디자인 1(B+), 컴퓨터아키텍처(A0), 팀프로젝트 2(A+)
이론적으로 학습했던 스프링 부트를, 처음으로 프로젝트에 적용해본 시기였다.
# 캡스톤디자인 1
캡스톤디자인 1은 우리 학교 졸업작품 과목이다. 첫 프로젝트 수업인데 바로 4학년 졸작 수업을 들어버렸다. 사실 들을 생각이 없었는데, 수강신청 실패해서 어쩔 수 없이 수강신청한 과목이었다. 졸작 수업이라 엄청난 부담감을 느끼고 있었지만, 막상 팀을 결성하고나니 내가 제일 많이 할 줄 아는 게 많은, 아이러니한 상황이었다. 팀원은 나 포함 총 4명으로 우리는 한 학기 동안 공공 오픈 API를 활용한 내 주변 문화정보 종합 제공 모바일 앱 서비스(안드로이드)를 제작했다.
다른 팀원들은 다룰 줄 아는 메인 기술이 없어서, 내가 백엔드를 거의 혼자 맡고 프론트까지 같이 작업했다. 팀원들이 자바 밖에 사용경험이 없어서 프론트 백 모두 자바로 진행했다. 초기 실력들에 비해 엄청난 열정과 학습을 통해 나름 만족할 만한 작품을 완성했지만, 다른 팀들에게 밀려서(대부분의 다른 팀들은 딥러닝 기술까지 활용했다. 우리 팀은 기본적인 CRUD 기능밖에 없어서 경쟁력이 없었다.) 아쉽게도 B+을 받았다.
https://github.com/mopil/wise-culture-server
https://github.com/mopil/wise-culture-client
# 팀 프로젝트 2
캡스톤디자인 1과 함께 진행한 첫 팀 프로젝트 과목이다. 캡스톤과 비슷하게, 팀을 구성하여 한 학기 동안 자유롭게 프로그램을 만드는 과목인데, 우리는 3명으로 팀원을 구인하는 플랫폼 모바일 앱 서비스를 제작했다.
처음으로 백엔드 개발이 가능한 팀원을 만났고, 여기서는 코틀린으로 프론트를 구성했다. 코틀린을 처음으로 사용해 보았다.
팀원들과 합도 잘 맞아서 이 과목은 A+을 맞았다. 그리고 그 합이 지금까지 유지되어, 앞으로의 다른 프로젝트에서도 같이 진행하곤 했었다. 팀 단위로 스프링 부트를 사용해서 CRUD를 제작하는 방법을 몸소 익힐 수 있었던 시간이었다.
팀원들과 프로젝트 기한을 맞추기 위해 합숙하고 밤새면서 개발하곤 했었는데, 너무 즐겁고 재밌었던 것 같다.
https://github.com/mopil/team-one-server
https://github.com/mopil/team-one-client
나머지 과목들은 이론 과목이라 CS 지식 위주로 많이 학습했던 것 같다. 해킹에 관련된 칼리 리눅스, 블록체인 이론 등 흥미로운 주제를 많이 학습할 수 있었다.
6월~9월 (4학년 여름 방학)
- Flooming
- EK 하나버스관광 홈페이지 리뉴얼
- 에이치엔테크 홈페이지 제작
외주 프로젝트를 2개나 받아서 수행하고 토이 프로젝트도 하나 했었던, 재학 방학중 가장 알차게 보냈던 여름방학이었다.
어찌어찌 지인을 통해서 관광버스 홈페이지 리뉴얼 프로젝트와, 소방설비 회사 홈페이지 제작 프로젝트를 진행하게 되었다.
직전 학기에서 익혔던 협업 스킬과 개발 스킬을 진짜 현업스럽게 발휘하고 적용해 볼 수 있는 아주 의미있는 경험을 했다.
에이치엔테크에서는 코틀린 + 스프링 부트를 처음으로 도입하여 제작하였고, 코틀린의 엄청난 생산성 증진에 매료되어버려서 코틀린 전도사가 되어버렸다.
학습용으로만 제작하던 프로젝트를 실제로 페이를 받아가며 실 서비스를 만들어본 경험은 22년도 최고 아웃풋 이라고 생각한다. 고객사와 소통하면서 커뮤니케이션 방법도 익힐 수 있었다.
Flooming (딥러닝 기반 꽃 분류, 그림 그려주는 모바일 앱 서비스)은 친구들끼리 진행한 토이 프로젝트로 스프링을 사용하지 않고 FastAPI를 사용하였다. 딥러닝 모델 서빙 백엔드가 필요해서 처음으로 파이썬 진영 프레임워크를 사용해 보았고, iOS, Android 모두 제작하여 출시까지 하는 경험을 해보았다.
https://github.com/project-flooming
https://github.com/ek-tour-renewal
https://github.com/hn-tech-homepage
9월~12월 (4학년 2학기)
- (대면 수업) 데이터베이스설계(B+), 알고리즘(B+), 컴퓨터공학특론 2(A+), 시스템프로그래밍(A0), 팀프로젝트 1(A+), 프로그래밍언어(A0)
- DDD 개발 동아리 8기 합격 및 활동
- PLUB 팀 합류
정말 오랜만에 대면 수업을 한 학기였다. 학기 초중반까지 (10월 중순)는 에이치엔테크 프로젝트를 마무리 지었고, 후반에는 학기 수업에 집중했었다.
개발 동아리 합격, 네이버 인턴 서류 합격 등 기존까지 쌓아온 나의 노력이 결과물로써, 내 스스로 인정할 수 있는 시간이었다.
# 팀 프로젝트1
학사 커리큘럼 대로라면, 팀프 1 -> 팀프2 -> 캡스톤 순으로 수강을 해야하지만, 나는 완전 반대로 수강했다. 그래서 2학년 과목을 4학년 2학기때 들어버렸다. 팀프1 과목에서는 2가지 주제의 프로젝트를 한 학기 동안 수행해야 해서 굉장히 힘든 과목이었다. 2학년 과목이라 다들 기술적인 경험이 부족해서 두 팀 모두 내가 팀장을 맡아서 리드했었다.
주제 1은 카카오톡 대화 분석 웹 서비스이고, 주제 2는 치킨 정보를 종합 제공하는 웹 서비스다. 주제1은 타임리프로, 주제2는 리액트로 프론트를 구성했고 둘 다 통합 배포를 진행했다.
https://github.com/mopil/talkmoa-server
https://github.com/mopil/chichelin-server
https://github.com/mopil/chichelin-client
이때부터 나는 새로운 스프링 부트 프로젝트는 무조건 코틀린을 사용하게 된다.
외주 프로젝트때는 통합 배포, 수동 배포를 진행했었는데 (고객사의 비용 문제 때문에) 이 때문에 CI/CD의 중요성과 필요성을 뼈져리게 느낄 수 있었다.
이번 학기에는 Github Actions를 활용한 CI/CD 파이프라인 구축 방법을 익혀서 앞으로 진행하는 모든 프로젝트에 배포 자동화를 구축하는 옵션을 필수로 가져가게 되었다.
# 컴퓨터공학특론 2
4학년 2학기 과목 중 가장 알차고 많이 남았던 과목이었다. 전직 넥슨 서버 개발자였던 신임 교수님의 신규 강의로, 우리 학교 최초 백엔드 강의였다. 아주 기초적인 것부터 시작하여 (TCP/IP 소켓 연결, 멀티스레딩, I/O 멀티플렉싱 등) 백엔드 전반을 아우르는 기술들 (인프라, 프레임워크, CI/CD, 도커 등등)을 맛보기로 배울 수 있는 과목이었다.
기말 프로젝트가 하나 있었는데, 배운 지식을 토대로 간단한 MUD 게임 서버/클라이언트를 만드는 과제였다. TCP 소켓만 사용하여 백엔드 프레임워크 도움 없이 프레임워크가 하는 일을 구현하는 게 핵심이었다.
원래 C++이었는데, 학생들이 어려워하자 나중에 자바로도 구현가능하게 변경되었다.
나는 자바로 구현했는데, 소켓과 멀티스레드를 직접 사용해 보면서 백엔드 프레임워크 내부적으로 동작하는 방식에 대해 좀 더 깊이 있게 이해할 수 있는 아주 귀중한 경험을 할 수 있었다.
# DDD 동아리 8기 합격
졸업 전 대외 활동 하나라도 해보고 싶다는 생각에 DDD 동아리 8기에 지원했다.
10월쯤 DDD 개발 동아리 8기에 합격해서 활동을 시작하게 되었다.
면접을 보던 중 같은 학교 동문을 만났고, 운 좋게도 둘 다 합격해서 참 신기한 경험을 했다.
웹 백엔드 팀으로 배정되어 방탈출 관련 서비스를 제작하는 프로젝트를 진행 중이다.
# PLUB 팀 합류
9월에는 PLUB이라는 (취미 생활 앱) 대학생들끼리 만드는 (무려 14명) 대규모 프로젝트 팀에 합류하였다. 팀프 2에서 같이 작업했던 형의 추천으로 들어가게 되었다. 사실 여름방학 때 부터 합류했었는데, 기획과 디자인이 조금 완성이 덜 된 상태여서 개발은 들어가지 않았고, 9월부터 본격적으로 개발에 착수했다.
학기 중에는 학업에 집중하느라 속도를 못 내어서 소셜 로그인 기반의 회원 로직만 구현했다.
23년 3월 론칭을 목표로 열심히 개발 중이다.
# 네이버 파이낸셜 인턴 서류 합격
네이버파이낸셜 인턴십 모집 공고가 있어서 경험삼아 지원했는데, 덜컥 서류에 합격했다.
네이버는 서류합은 잘 시켜준다는 소문이 있었지만, 그래도 내가 잘 해오고 있었다는 생각에 나름 뿌듯했다.
아쉽게도 코테에서 떨어졌지만 내 부족한 부분을 실감할 수 있는 기회여서 좋았다.
기존까지 파이썬으로 코테를 준비했었는데, 이번 네이버 인턴에서는 언어를 자바/코틀린으로 제한해서 코테 언어를 자바로 변경하는 계기가 되었다.
23년에는?
23년에는 최종적으로 원하는 회사에 취직하는 게 목표다. 마지막 학기가 남았는데, 우선 2월까지는 진행 중인 프로젝트 (DDD, PLUB)을 마무리하고 3월부터 채용연계형 인턴이나 정규직 채용이 되어서 취업계를 내고 회사를 다니고 싶다.
남은 방학기간 동안 코테공부와 CS, 면접 준비를 병행하면서 프로젝트를 잘 마무리 지어야겠다.