1월 21일부터 7월 21일까지 6개월간의 긴 여정동안 나름대로 성실하게 임하면서 잘 마무리할 수 있었던 것 같다.
초기에 마음먹었던대로 갓생(?)을 살지는 못하였지만,
6개월이라는 긴 시간동안 휴가도 한번쓰지 않고 결석이나 지각 없이 잘 마무리한 것만으로도 자신을 칭찬해주고 싶다.
짧지 않은 시간이었던만큼 나름대로 여러가지 면에서 성장할 수 있었다.
[커리큘럼]
- 기반기술
- Git, 소프트웨어공학, DB, Linux
- 백엔드
- Java
- 알고리즘
- SpringBoot
- Spring Cloud(Eureka Service Discovery, Api Gateway, Config Server...)
- 프론트엔드
- html, css, javascript 기초 + Vue.js
- 데브옵스
- Message Broker & Logging & Monitoring 정말 가볍게
- Docker
- Kubernetes
- CI/CD(Jenkins)
가장 시간을 많이 들여가며 배웠던 파트는 DB와 SpringBoot 부분이었다.
DB에서 학부시절에는 배우지 않았었던 Stored Procedure & Function과 같은 기능을 접해볼 수 있는 기회가 되었고,
이에 추가적으로 스터디를 진행하며 SQLD 자격증도 취득하였다.
Java의 경우 맘먹지 않으면 제대로 공부하기 힘든 Lambda와 그 기반이 되는 함수형 인터페이스에 대해 배우기도 했었고,
Stream의 정말 다양한 문법에 대해 그래도 한번 정리하는 시간도 가질 수 있어서 좋았다.
SpringBoot는 뭐 당연하게도 제일 핵심이 되는 백엔드 기술이니만큼 대부분 다룰만한 전반적인 내용들을 다뤘다.
특히 JDBC와 Servlet과 같은 상대적으로 추상화가 덜된 계층에 대해서도 학습하기도 했으며,
AOP나 Reflection와 같은 살짝 어려운 부분도 건드리고 JPA, MyBatis, Spring Security 등에 대해 배웠다.
MyBatis를 써볼 기회는 잘 없었는데, 확실히 필요에 따라서는 JPA보다 편리한 부분이 많아서 앞으로도 같이 혼용하지 않을까 생각중이다.
[팀 프로젝트]
위에 서술한 커리큘럼에 파이널 프로젝트까지 더해져서 총 5번의 프로젝트를 진행했다
첫번째 기반기술 프로젝트는
실제로 코딩에 가까운 작업은 이루어지지 않고, 기획 + 프로젝트 산출물과 DB(DDL + SQL문)에 집중했던 프로젝트였다.
그나마 특색있었던 부분은 Linux 기반 Ubuntu에서 MariaDB를 Master-Slave 구조로 직접 Replication 구축하는 부분이 있었다.
두번째는 백엔드 프로젝트로
막 배운 기본적인 SpringBoot를 통해 REST API를 구축하는 것에 집중하는 것에 더해
Spring Security나 Spring Cloud와 같은 디테일들을 챙겨가며 나름대로 서버간 통신하는 마이크로서비스 형태로 완성시키는 것에 의의를 두었다.
세번째는 프론트엔드 프로젝트였는데, 바로 이전에 진행했던 백엔드 프로젝트에 연동될 수 있는 페이지를 만들었다.
개인적으로는 이때가 좀 어려웠다.
처음 배우는 html, css, javascript, vue.js를 기반으로
css 디자인을 어떻게 잡고 또 어떻게 Vue.js를 통해 컴포넌트 해야할지에 대해서도 조금이나마 맨땅에 헤딩하며 감을 잡아가는 시간이었다.
추가적으로 Refresh Token을 위한 HttpOnly cookie나 local storage등의 개념, axios interceptor에 대해서도 가볍게 다루고 넘어가는게 도움이 된 것 같다.
네번째로는 데브옵스 프로젝트였고,
컨테이너 기반 가상화 기술인 Docker -> Docker compose -> Kubernetes의 흐름으로 넘어가며 배웠던 개념들을 하나하나 적용하고, 거기에 ElasticSearch, LogStash, Kibana 스택까지 추가로 얹는 느낌으로 진행했다.
실제로 배포까지는 이어지지 않았고 로컬 기반의 서버와 클라이언트 코드를 서로 실행시켜서 동작시키는 수준으로 마무리했다.
마지막으로 파이널 프로젝트는 여태까지 배웠던 모든 내용들에 얹어 각자 자신들의 기획에 맞는 추가적인 기술 적용을 하였으며,
입사 이후 이탈자를 방지할 수 있는 HR 사내 시스템을 구축했다.
결재, 근태, 알림, 공지, 평가, 근속 지원, 사원 관리, 챗봇 등 개발해야할 기능이 정말 많았고
나는 이중에서 공지, 알림, 챗봇에 더해 전반적인 배포를 전담했다.
이 과정에서 Message Broker(Kafka, Redis Pub/Sub), SSE, CloudFront SignedUrl + S3 PresignedUrl, LLM + RAG, AWS EKS등 정말 다양한 시도를 하였고 많은 것을 얻어갈 수 있었다.
기간이 길게 주어진 만큼 고민도 많이했고, 얻어가는 것도 가장 많았던 프로젝트였다.
추가적으로 한화시스템과 연계하여 진행되는 부트캠프인만큼 관련 현직 멘토분께서도 기획적인 부분을 많이 도와주셨고,
마지막에 평가는 실제로 차장급 2분이 와서 발표를 듣고 이루어졌다.
솔직하게 기술적인 부분에 대해서는 제대로 평가하기가 힘든 구석이 있는 것 같고(시간적으로 발표시간이 23분 정도로 촉박)
따라서 결국 기획의 참신함 + 유용함 + 전체적인 구현의 일관성 및 완성도로 당락이 결정되는 것 같다.
우리 조는 5명으로 1명 적은 인원이었음에도 불구하고, 정말 성실하고 열정적인 분들과 함께하여 좋은 결과물을 완성할 수 있었고 5개의 조 중에서 1위를 차지할 수 있었다.
[마무리하며]
6개월 동안 9 to 6로 동작의 캠퍼스에 매일 출석하여 강의를 듣고 프로젝트를 하는식으로 진행되다보니 정말 피곤한 경우도 많았다.
나는 그나마 집이 여의도로 가까운 편이라서 괜찮았지만, 통학시간이 1시간 30분 정도 걸리는 분들도 꽤 있었어서
그런분들은 보면서 조금 안쓰러울 정도였다.
그래도 같은 목표를 향해 걸어나가는 열정있는 수강생분들과 함께였기 때문에 놓지 않고 끝까지 버틸 수 있었다.
특히나 이번 기수는 강사님께서 말씀하시길 실력이 좋은 분들이 많은 편이라서, 서로 더 좋은 자극을 주고받으며 성장할 수 있었던 것 같다.
이제부터 본격적으로 취업 준비에 들어갈 듯 한데, 나 뿐만 아니라 함께했던 분들 모두 좋은 결과가 있기를 바라면서 마친다.


