자바스크립트 협업시 궁금한 점이 있습니다!

조회 155

profile picture

익명

2월 21일

자바스크립트로 프론트 1명과 백엔드 1명이 협업으로 토이프로젝트를 한다고 가정했을때요, (포폴용 협업 플젝 느낌..) nodejs랑 express로 port 설정해서 app.use() 같은 작업은 백엔드가 하는건가요..? 혼자 프로젝트를 하면서 프론트부터 nodejs 까지 다 만지다보니.. 뭔가 좀 구분하는게 어렵습니다.. 예를들어, router.js 파일에는 app.route("/board").get(function).post(function2); 이런 코드가 있고 controller.js 파일에는 const renderBoard = () => { return res.render("board"); }; 이렇게 board를 render 해주는 코드가 있다고 치면요.. renderBoard 함수는 말 그대로 board라는 템플릿을 화면에 뿌려주는거니까 프론트 개발자가 작업하고 app.route ~ 코드는 서버와 통신하는거니까 백엔드가 작성하는건가요?? 그래서 협업할 땐, 프론트 왈: "야 /board get 할때 함수 이름 function이고, post 할땐 function2다" 아니면 반대로, 백엔드 왈: "야 /board get함수 이름 function 이고 post는 function2 니까 헷갈리지 말고 짜라!" 라고 말하는건가요... 죄송합니다.. 말로 설명하면 깔끔할 것 같은데 글로 쓰니까 좀 이상하네요... restful api가 결국엔 서버와 통신을 하기 위한건데.. 만약, route하는 코드부터 get, post할 때 작동할 function 까지 전부 백엔드가 작업하는거라면, 프론트는 html, css + 동적웹을 위한 js를 해주면 되는건가요? 제가 배운거로는.. pug같은거 사용해서 템플릿 뿌려준다거나, scss를 적용한다거나.. 물론 이때 필요한 npm 사용법이나, package.json 설정법 등은 프론트가 해야겠죠!! 아직 협업 경험이 없다보니.. 실제로 협업을 하게되면 어떻게 업무를 나누는지 궁금합니다. 글이 좀 두서없네요. 아으.. 근데 이 뭔가 가려운 부분을 긁어주고싶습니다ㅜㅜ 선배님들 조언 부탁드립니다.. 답변 미리 감사드립니다!!!

구체적이고 정성스러운 질문에 Up 투표를 눌러주세요.

설명이 부족한 질문에 Down 투표를 눌러주세요. 커리어리가 질문자에게 수정을 요청할게요.

답변 1

손정현님의 프로필 사진

안녕하세요! 개인적인 의견은 두분이서 정하기 나름이지 않을까 생각됩니다. express에서 템플릿 엔진으로 html을 내려주는 형태라면, 서버에서 html을 만들어서 브라우저로 보내주는 형태라고 생각됩니다. 프로젝트가 크지 않다면 해당 express 서버에서 백엔드 기능과 템플릿을 같이 구현하기도 하지만, 현업에서는 다양한 이유로 백엔드와 프론트엔드가 분리되어 있는 구조를 가질 수 있습니다. express+pug가 같이 있는 구조의 서버를 백엔드, 프론트엔드 나눠서 작업한다면, 프론트엔드 개발자는 템플릿을 짜주고 클라이언트에서 사용자가 상호작용하게 되면 수행할 로직들을 구현해줍니다. ex) 버튼 클릭 이벤트 등. 보통 이건 템플릿 안에 JS 스크립트를 추가하거나 render 함수에 템플릿에 넘겨줄 데이터와 함께 JS 함수들을 넘겨주는 방식이 될 것 같습니다. 백엔드 개발자는 HTTP 요청에 맞는 endpoint들을 구현해주고 데이터를 관리해주면 되겠죠. 즉, 본문에 controller.js에 해당하는 영역은 백엔드 개발자가 많이 작업하게 되시지 않을까 생각됩니다. 해당 서버의 npm 패키지 관리 같은거는 의견을 조율해서 작업하면 되지 않을까 싶습니다. 현업에서는 express+pug (프론트엔드) <-> express (백엔드)와 같은 구조도 충분히 있을 수 있습니다. 프론트엔드 개발자가 express+pug 서버를 전체 다 구현하지만 일반적으로 여기에 있는 express 서버는 깡통인 경우가 많고 중요한 로직은 백엔드 개발자가 관리하는 별개의 express 서버에 구현되어 있는 구조입니다. 요즘 많은 분들이 쓰시는 next.js도 react+server가 함께있는 구조며, 이 next.js 와 통신하는 개별 서버가 보통 따로 있습니다. next.js 프로젝트에 대한 작업은 프론트엔드 작업자 분들이 많이 하시고 개별 서버는 백엔드 작업자 분들이 많이 하시죠. 하지만 정답은 없어서, 서로 의견을 잘 조율하셔서 작업하시면 될 것 같습니다 :)

profile picture

익명

작성자

2월 21일

늦은 밤 진짜 정성스러운 답변 너무 감사합니다... 축복 받으시고 천운이 항상 함께하시길 바랍니다ㅜㅜ 진짜 너무너무너무 한방에 이해했습니다!! 너무 속 시원해요..!!!!

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

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

또는

이미 회원이신가요?

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

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