잡담

문과 비전공자의 부트캠프 경험담

haema_ 2024. 1. 27. 19:38
728x90

나는 문과 비전공자였고, 부트캠프 과정을 통해 개발자 세계로 첫 발을 딛었다.

 

캠프에서는 JAVA 기초와 SQL 기초를 짧게 학습했고,

프론트엔드, 백엔드, 디자이너가 각각의 역할을 수행하며 협업을 통해 하나의 웹 애플리케이션을 제작하는 프로젝트를 경험했다.

 

그 뒤로 몇 개월이 지나고, 취업을 하게 되면서 느낀 점들을 정리하려 한다.

 

Q1. 프로젝트 경험(캠프 경험)이 도움이 되었는가?

 결론적으로 말하자면 도움이 되었지만, 생각해볼 점이 있는 것 같다.

 

 내가 참여한 캠프의 최종 프로젝트에서는 비즈니스 로직 구현 이외에도 서비스 목표 설정부터 역할 분담 등 기획부터 설계, 관리 등 서비스 초기 단계에서 발생할 수 있는 모든 의사 결정을 전부 주체적으로 결정해야했다.

 

당연히 장기적으로 봤을 때 이런 경험은 도움이 된다고 생각한다. 시야를 넓힐 수 있는 기회이기 때문이다.

 

하지만 아무런 경력 없이 부트캠프만 수료한 채로 시장에 나오는 신입 개발자가 취업을 한다고 했을 때, 프로젝트의 기획이나 설계같은 부분을 고려할 일이 얼마나 있을지에 대해선 조금 의문점이 생기는 것 같다.

 

한정된 시간 동안에, 각자의 주특기를 갈고 닦기에 앞서 아이디어 회의와 의사 결정에 많은 시간을 쏟는 것은 경우에 따라서 과감하게 생략할 필요도 있지 않은가 싶은 생각이 들었다.

 

같은 시간이라면, 미리 정해진 주제와 설계를 기반으로 조금 더 치밀하게 구현해내는 방법을 고민하는 데에 시간을 더 투자하는 것이 신입 개발자에게 요구되는 역량을 조금이라도 더 키울 수 있는 방향이 아닐까 싶다.

 

물론 극 초기 스타트업이거나, 서비스 규모가 큰 곳에서 MSA 구조로 소규모 팀 단위 자체 프로젝트를 개발하게 된다면 이야기가 다를지도 모르겠다.

 

뭐가 됐든 팀 단위로 각자의 역할을 수행하며 하나의 웹 애플리케이션을 만드는 경험은 그 자체로 유익했고,

결국 해당 프로젝트의 산출물을 기반으로 이력서를 작성했으니 취업에 충분한 도움이 됐다.

 

Q2. 구직 활동 시 느낀 점

먼저, 나는 백엔드를 주특기로 선택했고 프로젝트에서는 SpringBoot 환경에서 Gradle을 통한 의존성 관리를 했다. Redis와 Socket.IO, WebRTC 등의 라이브러리를 활용해 비즈니스 로직을 구현했고, Spring JPA를 사용하였다. AWS EC2와, RDS, S3등을 활용해 클라우드 환경에서 배포까지 경험했다.

 

개인적으로 구직 활동을 하는 동안 느낀 점은

 

각종 부트캠프와 국비 수료자들이 쏟아져 나오는 상황과 현재 시장 상황이 맞물리면서

무경력 비전공자가 그런 나이스한 업무 환경(?)을 마냥 기다려가면서 취업할 수 있는 상황은 절대 아닌 것 같다.

 

그렇게 눈을 낮추다보면 xml로 의존성을 관리해가며 개발해야 하거나 mybatis, 심지어는 JSP를 사용해야 하는 상황이 발생할 수도 있다.

눈을 낮춘다는 표현이 적절한지는 모르겠지만, 신입 개발자로서 취업을 하게 됐을 때 내가 여태껏 경험한 것과는 조금 다른 환경이 펼쳐지는 것은 너무나도 당연한 일이다.

 

프로젝트를 진행하며 정말 많이 배운 것은 사실이지만,

IntelliJ의 고도화된 기능들과 SpringBoot에서의 편리한 Gradle 의존성 관리 환경을 바탕으로, 높은 수준으로 추상화된 특정 라이브러리를 활용해서 구현한 웹 애플리케이션 하나 뚝딱 만들었다고 해서 그런 환경에 빠르게 적응할 수 있을 것 같지는 않다.

 

일례로, 나는 캠프에서 코딩을 처음 접했고 캠프에서 학습용 기간제 Ultimate 라이센스를 제공해주어서 항상 IntelliJ만 사용해왔다.

캠프가 끝나고 한창 구직 활동을 하던 중에, 어떤 중소규모의 회사로 생애 첫 코딩테스트를 보러 갔다.

눈앞에는 Eclipse가 켜져 있었는데, 그 투박한 화면이 너무 낯설어서 많이 당황했었던 기억이 있다.

Eclipse가 나쁜 건 아니지만, 적어도 초보 개발자인 내가 보기에는 IntelliJ에 비해 꽤나 불친절하고 불편해보였다.

무엇보다 사용해본 적이 없으니 당장 Class를 만드는 것 부터 테스트를 위해 run하는 것 등 모든 게 난관이었다.

 

물론 편한 방법들을 선택하는 것은 짧은 시간 내에 산출물을 낼 수 있다는 점에서 매우 합리적이다. 실제로 그런 환경에서 개발을 하는 곳에 들어갈 수 있으면 더할 나위 없이 좋은 경험이기도 하다.

 

하지만 그렇지 않은 환경에 놓이게 됐을 때, 아마 적응하는 데에 상당한 어려움을 겪을 것이다.

 

좋은 환경인 곳을 골라서 가면 되지 않느냐기엔 현재 상황이 녹록치 않은 것은 사실인 것 같다. 실제로 내가 구직하는 동안 보았던 많은 신입 개발자 공고에서는 내가 프로젝트에서 경험했던 환경보다는 확실히 조금 더 옛날 방식의 개발 환경을 가진 곳들이 대부분이었다.

 

또 편의성을 중점으로 한 개발 환경(..)을 프로젝트에서 손쉽게 적용할 만한 상황인 회사라면 js기반으로 개발 환경을 구축하는 경우가 더 많아보였다. Java 기반에 비해 초기 개발 단계에서 더 유리한 점이 많기 때문인 것 같다.

혹은 이미 어느 정도 규모를 가지고 있어서 MSA구조가 완성된 회사이거나.

 

 

정답이 있는 이야기는 아닌 것 같지만, 취업을 위해 공고를 보다 보니 느낀 점이 그렇다.

전공자들을 비롯해 수많은 캠프, 학원에서 배출되는 신입 개발자들 사이에서 두각을 드러낼 만한 무언가를 갖지 못한다면 Java진영에서 편의성을 바탕으로 한 개발 환경을 찾기는 많이 힘들 것 같다.

그 편의성이란 것도 결국 내가 경험해 보았기 때문에 편하다고 느끼는거지, 기존의 방식으로 문제 없이 작업하던 사람에게는 더 불편한 방식이기 때문이다.

 

그렇다고 해서 교육 커리큘럼 자체를 Legacy부터 배우는 곳으로 찾아다닐 필요는 없을 것 같다.

말했듯이 한정된 시간동안 배워야 하니까.

 

근데 적어도 그렇지 않은 환경도 있다는 걸 알고는 있어야, 취업을 빠르게 해야 하는 상황일 경우 스스로 대비책을 마련할 수라도 있을 것이다.

 

뭔지는 제대로 몰라도 그런게 있다는 것. 내가 경험한 것과 어떤 차이가 있는지 대충이라도 아는 것과, 그런게 있다는 것 조차 모르는 건 엄청난 차이인 것 같다.

 

 

물론 어느 정도 여유가 있다면 당연히 좀 더 치밀하게 준비하면서 원하는 개발 환경을 가진 회사를 컨택하는 게 최선이겠지만..

반응형