소프티어 부트캠프를 수료하고 한 달이라는 시간이 지났습니다. 조금이라도 기억이 생생할 때 부트캠프 회고를 마저 해보려 합니다. 소프티어 부트캠프 BE 직무는 크게 3가지 프로젝트로 진행됐습니다. 이 글에서는 BE WAS 프로젝트를 다룹니다.
- 워밍업 프로젝트(2주, 기획 + 디자인 + FE/Android + BE)
- BE WAS 프로젝트(2주, BE)
- 최종 프로젝트(4주, BE + FE/Android)
WAS 프로젝트
BE WAS 프로젝트는 plain Java로 WAS를 구현하는 프로젝트입니다. 워밍업 프로젝트 회고에서 말씀 드렸듯 저는 Java로 알고리즘 문제만 풀어봤지 Spring 프레임워크를 사용해 본적도, 어떤 프로그램을 제작해 본 경험도 없습니다. 따라서 BE WAS를 진행하며 Spring 프레임워크의 구조와 under the hood 동작 방식을 공부하고 프로젝트에 적용해 단순히 기능을 충족하는 WAS가 아닌 추상화를 통해 확장성있고 유연한 프레임워크 제작하는 것을 목표로 삼았습니다.
프로젝트를 진행하며 공부한 내용과 고민한 내용은 깃허브 레포지토리 리드미와 커밋에 정리했습니다.
회고
저는 Java는 경험이 많지 않지만 노드로 백엔드를 공부하며 vanilla JS로 WAS를 구현한 경험이 있습니다. vanilla JS에서 Express.js, Express.js에서 Nest.js로 점차 추상화가 높은 프레임워크를 사용한 경험이 이번 프로젝트에서 구조를 잡고 프레임워크에서 제공하는 기능을 구현할 때 크게 도움 됐던 것 같습니다. 처음부터 스프링과 같은 추상화 레벨이 높은 프레임워크로 백엔드 공부를 시작하지 않은 것이 저에게는 큰 행운이었다고 생각했습니다. 처음부터 답을 공부하는 것보다는 답을 찾아가는 과정이 더 즐겁고 기억에 많이 남는 것 같습니다.
프로젝트를 진행하며 Java의 Cuncurrent 패키지와 스레드, HTTP 프로토콜, 어노테이션과 리플렉션, 스프링 MVC와 Tomcat의 구조 등을 공부할 수 있었습니다. 각자 공부한 것을 공유하는 과정도 좋은 경험이었지만 저는 특히 코드리뷰가 가장 기억에 남습니다. 프로젝트 중간중간 서로의 WAS 프로젝트를 설명하고 코드 리뷰하는 시간을 가졌습니다. 이 과정에서 다른 사람의 코드를 읽고 이해하며 좋은 아이디어는 제 프로젝트에 반영하고 함께 개선점을 고민했습니다. 비전공자로 혼자 공부하다가 함께 공부하는 환경에 놓여지니 정말 시간가는줄 모르게 재밌었던것 같습니다. 최대한 많은 사람들의 코드를 읽고자 같은 조로 매칭되지 않은 분들에게도 쉬는 시간에 프로젝트를 설명해달라고 부탁하고 다녔습니다. 귀찮았을 수도 있었을탠데 다들 친절히 설명해 주신 덕분에 거의 모든 BE 직무 사람들과 이야기했고 많이 친해진 것 같습니다.
'소프티어 부트캠프' 카테고리의 다른 글
[최종 프로젝트] 예약 시스템 데이터베이스 설계하기 (0) | 2024.03.14 |
---|---|
[소프티어 부트캠프 3기] 공통 교육 및 워밍업 프로젝트 회고(12/28 ~ 1/12) (0) | 2024.01.13 |