멘토지원
파트너스
현직자 클래스
멘토 찾기
Best 질문답변
IT 개발, 코딩이 산으로 갈 때, 현직자는 어떻게 할까?
카카오 · SW Engineer
약 1년 전
💬 멘티의 질문


저번에 질문드렸던 비전공자 멘티입니다. 저번에는 전반적인 공부 방향에 대한 질문을 드렸었다면 오늘은 프로젝트를 하다가 궁금한 점이 생겨 방향이라도 조언을 받을 수 있을까 해서 질문드립니다.


 ©James Harrison


1. 프로젝트 중 문제 해결 방법을 찾다가 산으로 가고 있다는 느낌이 들거나 막힌 느낌이 들었을 때 어떻게 하시나요?

 

현재 상황을 간략하게 요약해 보자면 이렇습니다.


-Notification API + Spring SseEmitter의 조합으로 푸시 알림 기능을 구현

-Webpack을 설치 후 다시 함수 호출을 시도해 봤지만 실패. Webpack을 사용하기 위해서는 프론트엔드 서버와 백엔드 서버를 분리해야 한다는 사실을 알게 됨 (현재 제 어플리케이션은 Spring 기반이고 완전히 SSR 방식입니다)

 

저는 단순히 어떤 js파일에서 다른 js파일에 있는 함수를 다시 호출하고 싶었을 뿐인데 갑자기 공부해야 할 양이 많아지고 일이 산으로 가는 것 같습니다. 

 

지금까지 단순하게 spring boot가 제공해 주는 서버 하나만 써 왔는데 프론트엔드와 백엔드 서버를 분리한다는 개념도 와닿지가 않고요. 이렇게 갑자기 어떤 문제를 해결하기 위해 지금까지 접하지 않은 새로운 영역을 공부해야 한다고 느껴질 때 어떻게 하시나요?

 

2. 혼자서 프로젝트를 하다 보니 백엔드 개발을 지망하면서도 문제 해결 경험이 많이 생기는 로직은 자바스크립트를 사용한 프론트엔드 쪽 로직이 되어버렸습니다. 아무래도 기능 구현을 하다 보면 즉각적으로 만나는 부분이 프론트엔드 쪽이 많고, 자바와 스프링과 다르게 미리 공부를 하고 프로젝트를 하고 있는 게 아니라 그런 거 같기도 합니다. 

 

백엔드 지망인데 이래도 되나 하는 생각이 드는데 최대한 백엔드 쪽으로 문제 해결 경험을 쌓을 수 있도록 프로젝트의 방향을 다시 설정하는 편이 좋을까요?


멘토님의 솔직한 의견이 궁금합니다. 

💬 이상헌 멘토의 답변


안녕하세요. 다시 만나게 되어 반갑습니다.

 

단순하게 보는 것도 도움이 됩니다

프로젝트 중 문제 해결 방법을 찾다가 산으로 가고 있다는 느낌이 들거나 막힌 느낌이 들었을 때 어떻게 하냐고 질문 주셨습니다. 이런 경우는 저도 종종 있었어요. 그럴 때면 단순하게 다시 생각을 해보는 게 꽤나 도움이 됩니다. 그리고 이런 고민들이 결국 내가 성장하는 데 도움을 주는 중요한 고민이라고 생각해요.

 

예를 들어 Notification API + Spring SseEmitter의 조합으로 푸시 알림 기능을 구현하셨다고 했는데, 이게 진짜 꼭 필요한 건지? 이 방식을 제외하고는 알림 기능을 구현할 방법이 없는 건지? 고민해 보면 좋을 것 같습니다. 만약 충분한 고민 끝에도 이 방식으로 구현하는 게 맞고 딱히 대안이 없다고 판단되더라도 근본적인 요구사항을 다시 생각해 보는 건 꽤나 중요합니다.

 

그리고 프론트엔드와 백엔드 서버를 분리하는 개념이 지금은 좀 어색하게 느껴지실 수 있지만 (SSR만 하셨다면) 현업에서는 거의 모든 프로젝트가 프론트엔드 따로, 백엔드 따로 띄워서 개발된다고 보시면 됩니다. 따라서 제가 보기에 아주 산으로 가고 있는 것 같지는 않아요. 저도 React기반의 프론트엔드와 Spring boot기반 백엔드를 모두 개발하고 있습니다. 


 ©Annie Spratt


영역의 한계를 두기 보단 열어 놓고 학습해 보세요

정확히 어떤 로직들이 자바스크립트로 처리되고 있는 건지는 모르겠지만, 백엔드에 비즈니스 로직이 많을수록 좋거나 프론트엔드에서 많을수록 나쁘다거나 하는 건 없습니다.

 

내가 필요한 로직을 구상해내고 그 로직들을 재사용 가능하게 하거나 하나의 기능에 온전하게 역할이 할당되게 하는 것이 중요합니다. 그게 자바로 짠 백엔드 코드에 있든 자바스크립트로 짠 프론트엔드에 있든 그건 크게 중요하지 않습니다. 하지만 공부하며 프로젝트를 하고 계신 상태기 때문에 가급적 백엔드에서 테스트 코드를 짜보거나 기존 프론트엔드 로직을 백엔드로 옮겨보는 건 괜찮다고 생각합니다.

 

다만, 보통 일반적인 백엔드 개발자들은 어느 수준의 프론트엔드 능력을 보유하고 있기 때문에 지금 하고 계신 프로젝트의 방향성까지 바꿔가며 할 필요는 없다고 생각됩니다.

 

제가 도움이 될만한 이야기를 적은 건지 모르겠지만, 전체적으로 크게 잘못된 방향으로 프로젝트를 진행하고 계시다는 생각이 들지는 않습니다. 자연스럽게 확장되어가고 있는 것 같고 실제로 백엔드 개발자는 알아야 할게 너무나 많습니다. 이번 기회에 몰랐던 것들을 발견하고 학습해 보는 것도 좋을 것 같아요!



말씀해 주신 대로 푸시 알림을 다른 방식으로 구현할 수 있는지도 확인해 보고, 그래도 안 될 경우 서버를 분리하는 방법을 공부해 보겠습니다. 프로젝트 내용이라 질문을 망설였는데 살펴봐 주시고 알맞은 방향을 알려 주셔서 감사합니다! 끝이 안 보이는 개발 공부에 큰 힘이 되고 있습니다.


이상헌 멘토
카카오 · SW Engineer
IT개발/데이터
안녕하세요. :)
SW Engineer로 재직 중인 이상헌 입니다.
저는 Spring Framework 기반의 웹서비스 개발을 진행하고 있고
Back-End, Front-End 모두 담당하고 있습니다.
학창시절 결코 개발을 잘하는 학생이 아니었고, 어려서부터 코딩에 관심을 갖고 꾸준히 공부해온 학생도 아니었습니다.
하지만 항상 지금보다 더 잘하고 싶었고, 사회에서 개발자로 인정받고 싶은 욕심은 컸습니다.
그렇기에 학업 뿐만 아니라 신입 개발자에게 필요한 마인드, 현직에서 기대하는 신입 개발자의 모습에 대해 오랫동안 고민해봤고 그런 부분들을 멘토링에 자연스럽게 녹일 수 있을 것 같습니다.
편입, 공모전 참여, 팀프로젝트 진행, 인턴 등 제가 경험한 이야기가 누군가에게 도움이 되길 바랍니다.
같은 직무를 다룬 글
IT개발/데이터
약 5년 전
인기 있는 글
연구/설계
약 5년 전
잇다의 멤버가 되어주세요 🚀
직무, 취업 콘텐츠를 담은   뉴스레터를 받아볼 수 있어요.
멘토에게 직접   질문할 수 있어요.
현직자 클래스를 무료로 수강할 수 있어요.