안녕하세요, 강사님. 강의 잘 듣고 있습니다. 강사님의 목소리가 어디선가 들었던 것 같아 더 반가웠습니다.
저는 SW 학부를 졸업했지만, 공부를 할수록 점점 어려워지고 흥미가 떨어져 결국 포기하려 했습니다. 그러던 중 교수님 추천으로 지금의 회사에 입사하게 되어 IT 부서에서 비개발 업무를 맡아 일하고 있습니다. 그동안 회사를 다니면서 개발자가 되기로 결심하게 되었고, 그런 면에서 제게 좋은 기회였다고 생각합니다. 그래서 본격적으로 개발 공부를 시작했습니다만, 직장을 다니며 평일, 주말에 공부하는 게 쉽지는 않더군요.
백엔드 공부를 처음 시작할 때는 Java와 Spring MVC부터 시작했습니다. 그런데 점차 공부하다 보니 배워야 할 기술들이 가지처럼 뻗어나가더군요. 그만큼 기술 하나하나를 따라가며 공부하다 보니 어느덧 1년이 넘었습니다. 그래도 꾸준히 이어올 수 있었던 이유는 저 나름의 목표가 있었고, 새로운 것을 배우는 재미도 있었기 때문인 것 같습니다. 아마 취업 후에도 평생 공부가 필요하겠지만, 그래서 지금 미리 습관을 들이는 게 오히려 좋은 일이라 생각합니다.
여기까지는 그냥 TMI네요. 😊 결론적으로 저는 완벽주의적인 성향 때문에 여러 기술을 충분히 알아야 한다는 생각이 강박으로 작용해 시간 소요가 커지고 있습니다. 이번 강의를 들으면서 새로운 기술을 익히는 것도 좋지만, 어디서 멈춰야 할지 타이밍을 놓칠 것 같아 고민입니다. 현재 진행 중인 프로젝트를 바탕으로 도메인 모델링을 잘 활용해 포트폴리오로 정리하고 싶습니다.
신입 백엔드 포트폴리오는 어느 정도 수준이 적합한지, 기준에 대한 조언을 듣고 싶습니다. 단순히 이직이 아니라 개발을 제 업으로 삼는 것이 목표입니다. 현재 직장에서의 연봉은 약 4천만 원 정도지만, 연봉보다도 개발자가 되는 것이 저에겐 더 큰 행복일 것 같습니다. 내향적인 성격이라 이런 글을 적는 것도 처음이지만, 강의에서 많은 영감을 받아 제 고민을 나누게 되었습니다. 감사합니다.
안녕하세요 hoonseung님~
남겨주신 고민점 여러번 읽고, 많은 고민을 거듭한 끝에 답변 남깁니다 🙏
직장을 다니시면서 평일, 주말간 개발자 전직을 위해 공부를 꾸준히 하신 점 정말 멋집니다. 병행하기가 정말 쉽지 않은데 꾸준히 잘하고 계셨네요! 👍🏼
일단 질문 주신 “신입 백엔드 포트폴리오 수준”에 대해서 먼저 저의 의견을 남깁니다. 이 “수준”이라는것이 상황에 따라 다를거같아요. 하지만 hoonseung님께서 개발자가 되고 싶은 열망이 누구보다 간절하게 느껴진것을 비추어보았을때, 특정 기술들을 추천드리는것은 크게 도움이 되지 않을 수 있습니다. 개발자는 다양한 문제를 해결하는 직업이기 때문에 기술보다는 문제에 먼저 집중해보셨으면 합니다. 예를 들어, 현재 내가 사용하고 있는 서비스의 특정 부분이 불편해서 특정 부분만을 개선하는 방식으로 프로젝트를 해 볼 수 있습니다. 혹은 내가 독자적인 아이디어를 가지고있다면 더욱 좋구요. 프로젝트를 하시면서 염두해두셔야 할 부분은 어떻게 하면 좋은 코드를 만들것인가(읽기좋게, 유지보수하기 좋게 등)에 대한 고민, 그리고 기능들에 대한 철저한 테스트코드들이면 충분하지 않을까 싶습니다. 그리고 같은 문제지만 더 많은 사람들의 문제를 해결한다고 가정하여 확장성까지 고려한다면, 제가 강의에서 다루었던 고가용성을 위한 설계같은 부분을 추가로 다뤄보면 좋을것같구요.
단순히 대중적인 주제에 대해서 개발을 해보는것도 공부차원에서는 의미는 있겠지만, 경쟁력있는 포트폴리오로써 작용하기는 힘들다고 생각합니다. 누구나 다 하기 때문이죠. 많은 지원자가 비슷한 프로젝트를 가지고 지원하게 되면 시장에 이러한 프로젝트를 가진 지원자가 넘쳐나게됩니다. 공급과잉인거죠. 수요측면에서 살펴보면 기업은 지원자마다 특별한 역량이나 문제해결능력을 기대하게되는데요, 기업입장에서 차별화된 역량을 확인하기가 어려워져 이런 프로젝트에 대한 수요는 자연스럽게 낮아질 수 밖에 없습니다. 물론 특정 기업에서 요구하는 기술스택이 있습니다. 하지만 그런 기술스택을 다루는 사람은 이미 시장에 많습니다. 그러면 그런분들은 다 합격해야하지 않을까요? 정말 중요한건 문제해결능력이고 기술은 이것을 해결하는 수단일 뿐입니다. 물론 개발자가 기술을 잘 다뤄야하는건 맞습니다. 다만 상황에 맞는 적절한 기술을 선택하고, 그것이 처음 사용하게될 기술이라도, 빠르게 학습하고 적용할 수 있는 능력이 중요합니다. 이러한 능력은 본인 포트폴리오에서 해결하고자 했던 문제와 사고방식에서 얼추 드러나게되어있습니다.
hoonseung님께서 Java와 Spring MVC부터 시작했다고 하셨는데요, 대중적인 언어와 프레임워크에 대한 공부를 하신거라 저는 괜찮다고 생각합니다. 아무래도 수요가 많은 기술이기 때문에 취업측면에서 갈 수 있는 회사들이 많은건 부정할 수 없습니다. 다른 계열의 언어를 공부하시는것보다 이미 공부하신 언어와 프레임워크를 통해 포트폴리오를 만들어보시는것을 추천드립니다. 그리고 공부하다보니 배워야할 기술들이 가지처럼 뻗어나간다고 하셨는데요, 저 또한 처음에 공부할때 너무나 막막했고, 사실 지금도 새로운것을 배울때 막막함이 드는건 사실입니다. 저도 hoonseung님처럼 완벽주의적 성향이 있어서 준비를 다 마치고 시작하려는 시도를 많이 했었습니다. 하지만 그럴수록 시작이 너무나 힘들었고 혹은 시작을 못하는 경우도 있었습니다. 오히려 준비과정에서 지쳐서 포기하는 경우도 있었습니다. 내가 너무 부족해보이고 이걸로 시작을 못할것같다라는 생각에 압도되곤 했습니다. 하지만 지나고보니 완벽한 준비라는건 존재하지 않는다는것을 알게되었습니다. 준비라는건 끝도 없더라고요. 어느정도 했으면 바로 부딪혀보는게 나의 문제점을 좀 더 빠르게 알 수 있었고, 방향성이 잘못되었더라도 빨리 알아채게 되었습니다. 부딪혀보지않고 준비만 했을때는 절대 알 수 없었던 것들인거죠. 이런걸 최대한 빨리 아는게 효율적이더라고요. 열심히 길게 준비해서 한방에 바로 성공하는게 쉽지 않습니다. 빠르게 실패하고, 방향성 수정하고, 도전하고, 또 실패하고 수정하고.. 오히려 이런방식이 내가 원하는 것에 도달하는 가장 빠른 길일 수 있습니다.
그래서 어느정도 준비를 하라는거지? 라는 생각이 드실 수 있어요. 정답은 없지만 그래도 1년간 웹프레임워크 하나는 하셨으니 데이터베이스 한가지정도 다루실줄알면 로컬에서 프로젝트 구현하시기에 충분할거구요. 그리고 배포라든지, 애플리케이션이 확장되면 메세지큐라든지 정형화된 패턴과 기술들이 있어요. 이런것들 한가지정도 활용할 줄 알면 충분할것같습니다. 포트폴리오를 만드실때 강의에서 사용한 프레임워크를 동일하게 사용하신다고하면, 제가 강의에서 언급드린 내용들은 적용을 하지 않더라도 개념 숙지를 하시는걸 추천드립니다. 해당 개념의 구현체가 여러종류가 있지만 개념자체는 서버개발에서 대중적인 개념이기 때문입니다. 특정기술에 대한 딥다이브도 중요합니다. 하지만 우리에겐 시간이 한정되어있어요. 한정된 시간안에 공부와 구현을 해야하기때문에 포기할부분은 과감히 포기하셔야 합니다. 완벽주의 성격때문에 걱정이 많은 부분들 저도 잘 알고있습니다. 면접때 내가 모르는거 물어보면 어떡하지? 당당히 모른다고 하면됩니다. 이정도 배짱은 있어야죠. 조금은 내려놓고 편하게 생각해보아요. 우리는 모든걸 다 알 수 없습니다.
흥미가 떨어지지않도록, 그리고 너무 자신을 옭아매지 않도록 하면서 준비해 나가시길바랍니다. 기회는 언제든지 있고 진지하게 개발자의 진로를 준비하고계시니 꾸준히 하시다보면 좋은 결과 있을거에요. 🙏어려운점 있으시면 언제든 다시 말씀주시구요!
답글
hoonseung
2024.10.29늦은 시간에도 제 고민에 답변을 주셔서 감사합니다. 주신 조언을 몇 번이고 되새기며 깊이 새기겠습니다. 오늘 마지막 강의까지 들었는데, 덕분에 또 느낀 점이 많았습니다. 이번 답변을 통해 문제 개선을 중점으로 한 포트폴리오 작성을 목표로 삼으려 합니다.몇 개월 전에 클라우드 네이티브 애플리케이션에 대해 학습한 적이 있는데, 이번 강의에서 서킷 브레이커와 토큰 버킷 키워드를 듣고 나니 다시 떠올랐습니다. 그래서 책을 다시 펴보며, 문제 해결을 위한 기술 적용과 복원력, 확장성등을 포트폴리오에 적용 시킬 수 있도록 노력해보겠습니다.. 😊
그리고.. 아직 실제 협업 경험이 없다보니 개발 커뮤니티에서 사람들과 프로젝트를 한번 진행하는 것도 도움이 많이 될까요? 이력서에 프로젝트 경험 이런 것들이 필요할 거 같아서요.
J Tech
2024.10.29넵 팀프로젝트 해보시는것도 정말 추천드려요! 어느 커뮤니티에서 모집하시는지는 모르겠지만 불특정 다수에서 모집할때 중간에 흐지부지되거나 잠수하는 분들도 생길 수 있으니 팀빌딩 잘해보시길 바랍니다! 혹은 it동아리에 지원해서 들어가는것도 좋을 수 있어요. 디자이너와 클라이언트쪽분들(모바일 혹은 웹)이 붙기때문에 아예 서비스출시해서 운영할 수 있는 기회도 생길 수 있거든요.