개발자

백엔드 지망 학부생은 다양하게 VS 깊게 공부해야하나요?

2023년 09월 26일조회 5,812

안녕하세요. 현재 컴퓨터공학과 3학년 학부생입니다. 제가 백엔드에 관심이 많아서 여러가지 관련 프레임워크들을 접해보고 있습니다. Springboot부터 시작해서 Go, Node.js의 Express.js나 nest.js, FastAPI까지 다양하게 배우고, 또 이를 토대로 크고 작은 프로젝트들도 하고 있습니다. 다만, 당장 내년이 4학년이고 이제 취업까지 얼마 남지 않은 상황에서 그냥 이렇게 다양하게 접하는 것이 좋은지 고민입니다. 공고만 봐도 어느 한 언어나 프레임워크에 대한 깊은 지식을 요구하고 있고, 면접 질문도 보니 깊이가 상당하더군요… 그렇다고 해서 제가 막 찍먹식으로 배우는 건 아니고, 나름 세세하게 공부하고 있습니다만, 현실적으로 취업까지 1년반 정도 남는 상황에서 모든 프레임워크에 대한 깊은 지식을 갖기에는 시간이 그리 많지는 않습니다. 지금이라도 어느 하나를 정해서 깊게 파야 할까요?

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.

답변 3

인기 답변

joseph님의 프로필 사진

질문자 분 본인께서도 이미 어느 정도 답을 짐작하고 계신 듯 합니다. 각 프레임워크 모두 깊이가 얕지 않은데, 모두 다 보고 계신다면 동작하는 코드를 작성하고 이해하는 정도로 준비하신게 아닌가 우려가 되네요. 만약 각 프레임워크, 혹은 토대가 되는 언어나 플랫폼이 해결하고자 하는 문제가 뭔지, 또 그 특징과 한계가 뭔지를 코드레벨까지 이해하고 설명할 수 있다면 대단한 장점이 될 것 같습니다. 하나의 프레임워크를 정해서 개념상 가장 바깥쪽의 숲부터 차례로 들어가면서 개념과 프레임워크의 연결고리를 찾아보시는게 어떨까요? 예를 들면, 1) 비즈니스의 문제를 전산화를 통해 해결한다는 전제로 2) 사용자와 정보를 주고 받고 기록하는 방식 중에서 3) 가장 대표적인 웹 기술을 활용하려고 하는데 3-1) 이 기술은 비교군과 어떻게 다르고... socket 등 4) 웹 기술은 어떻게, 어떤 데이터를 주고 받고 4-1) 네트워크 및 운영체제 CS - 특히 네트워크 트래픽을 OS가 처리할 때 내부 I/O 4-2) 브라우저의 역할 4-3) 웹서버와 was의 역할 4-4) 요청 payload, 응답, 헤더, 쿠키, 세션, http status 등등.. 4-5) 웹 기술을 RESTful API 로 추상화 한 목적, 개념 hateoas 등.. ... 5) 서버에서 수신한 데이터를 영속화 하기 위한 전략에는 어떤 것이 있으며... 6) 단일 computing power의 한계를 극복하기 위한 전략은 어떤 것이 있고... ... 이런식으로 꼬리를 물고 파고드는 유명한 질문들을 선택하신 프레임워크가 어떤 방식으로 해결하고 있는지를 이해하시면 좋을 것 같습니다. 더불어 한 가지 첨언하자면, 10년 이상 면접을 본 경험상 이런 정도의 이해를 가지고 계신 신입 케이스는 드물었고, 그보다 훨씬 기본적인 책임과 의존성 분리나 테스트 코드 등의 구현조차 고민이 부족한 경우가 많았습니다. 마찬가지로 해시나 바이너리 트리는 알아도, 이를 활용해야 하는 현실문제가 주어지면 어려워하는 경우가 많았습니다. 신입이라면 멋드러진 설명과 식견보다 고민이 가득한 테스트 코드에 한 표를 주고 싶습니다.

안지완님의 프로필 사진

안지완

작성자

중앙대학교 소프트웨어학부2023년 09월 26일

그동안 제가 가고 있는 길에 대한 의문이 가득했는데 실마리 하나를 잡은 느낌입니다! 감사합니다!

주원님의 프로필 사진

주원

우아한형제들 백엔드 개발자2023년 12월 30일

신입이라면 멋드러진 설명과 식견보다 고민이 가득한 테스트코드에 한 표를 주고 싶습니다. 완전 동감합니다 👍

인기 답변

손우진님의 프로필 사진

지금까지 프로젝트를 많이 하셨다니 멋있어요! 하나의 프레임워크라도 깊게 파고 마찬가지로 전공지식도 깊게 파는 걸 추천해요. 프레임워크는 도구일 뿐이라 생각하는 게 편한 것 같아요. 제 경험을 말씀 드리자면 백엔드는 스프링을 쓰는데 프론트엔드는 제가 써본적도 없는 Vue.js 를 사용 할 일이 생겼었죠. 하지만 리액트를 많이 경험해보고 나서 Vue를 다뤄보니 금방 적응해서 일은 쳐낼 수 있더라고요. 다양한 프레임워크를 전부 다룰 수 있으면 좋겠지만, 현실적으로 그건 1년 반 만에 해결되진 않겠죠. 하나라도 제대로 해보되, 여러 케이스를 만들어서 트러블 슈팅을 해보는 게 도움이 많이 되요. 예를 들면 대용량 트래픽이 발생했을 때 (JMeter 로 발생시켜 볼 수 있겠죠?) 어떻게 대응해야 할 지가 되겠죠. 메시지큐도 달아보고 커넥션 풀도 늘려보며 결과를 모니터링 해 보는 경험이 나중에 많은 인사이트를 가져다 줍니다. 요약하면, 은탄환이라는 게 존재하진 않지만 하나의 탄환이라도 제대로 써 보며 다양한 경험들을 해보는게 좋단 얘기에요. 아무래도 전공지식도 그때부턴 왜 이걸 배웠고 어떻게 쓰이는지 알게 되겠죠.

안지완님의 프로필 사진

안지완

작성자

중앙대학교 소프트웨어학부2023년 10월 13일

최근 들어 프레임워크는 정말 도구 그 이상 그 이하도 아니라는 생각이 강하게 들었는데 다시 개발의 본질에 대해 생각해야 할 것 같습니다! 좋은 답변 감사드립니다!

해줘님의 프로필 사진

저는 딱 하나 공부 제대로 해보라고 말씀 드리고 싶네요 HTTP에 대해서 프레임워크 공부, 언어 공부 다 좋은데 지금 하시는 방향이 웹 서버 백엔드 개발자를 지망하시는 걸로 생각이 들어요. 그렇다면 정말 기본적으로 웹에 대한 이해가 필수 이실거고 HTML과 HTTP(HTTPS) 이게 통신을 하려면 어떻게 되어야 하고, 코드로는 어떻게 구현이 될까?(고민) 학부때 고민할 수 있는거라면 오히려 이 부분들을 고민해 볼 수 있을 것 같아요. HTTP는 백엔드 개발자라면 기본적 이해하고 있다고 생각하지만, 제대로 이해하는 주니어 개발자도 그리 많지 않다고 생각해요. 화이팅!

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

목록으로

지금 가입하면 모든 질문의 답변을 볼 수 있어요!