Post

요즘 개발자들은 풀스택 한다던데

요즘 주니어 개발자들은 풀스택 한다며?

#1) 한 3주 전 쯤, 친구들과 밥을 먹으면서 친구의 지인의 외주 웹 스타트업 기업에서의 삶을 들었습니다.

간단하게 요약하자면, “요즘은 FE (Front-End), BE(Back-End) 개발자를 따로 나누지 않는다. 개발자들의 필수 문화인 소통은 중요하지만, 간단한 기능마저 협업을 통해 만들다 보니, 의사소통에 시간이 꽤나 소요된다. 따라서, BE 개발자들도, FE를 배우려 하고, FE 개발자들도 BE를 배우려 한다.” 정도의 이야기를 들은 적이 있네요.

#2) 교수님과의 이야기

엄밀하게 말해서 정교수님은 아니고, 강사님과 커피 한 잔을 하면서 미래 이야기를 좀 해봤습니다. 또 간단히 요약하자면, “BE project를 하면서도, 구현한 project를 사람들에게 보여주려면 FE가 필요하다. 그 과정에서도 HTML, CSS, javascript등이 필요할 것이다.” 이러한 상담을 받은 적이 있습니다.

#3) 며칠 전, velog에서 주니어 개발자들에게 풀스택 개발자가 되어 보는 것은 어떤지 권장하는 글을 본 적이 있습니다.

지나가다 본 것이라, 글의 링크는 따로 없네요. 글의 내용을 요약해보자면, “여러가지 경험을 통해서 성장할 수 있다” 정도로 볼 수 있을 듯 합니다.

사실 당연한 이야기입니다.

아무래도 독립적으로 되는 것이 아닌, 다 연결된 유기적 결과물이기에, 한 쪽만 알고서 구현은 할 수 있겠지만, 더 좋게 구현하긴 힘들 듯 합니다. 때마침, 학교에서 ‘웹응용프로그래밍’이라는 FE + BE 수업도 듣고 있으니, (중간고사는 그냥 FE 내용을 했는데, 너무 대충 공부했습니다.. ) 이번 기회에 “한 번 열심히 다 해보자!” 라는 마음을 먹었습니다.

Nods.js

그래서 선택을 한 것이 Node.js입니다. 수업에서 할 뿐더러, Node.js는 javascript기반의 실행 환경입니다. 따라서, FE에서 필수적으로 사용되는 javascript와 친숙해짐과 동시에, BE쪽이 어떻게 돌아가는가 학습을 하는데 적합한 요소라고 생각했습니다. 또 V8엔진 + 비동기식(Asynchronous) 이벤트 loop을 사용한 환경이, 기존의 동기(Synchronous)식 환경과 다르다는 것도 한 몫 했습니다.

V8엔진과 Node.js의 간략한 설명을 보려면 클릭하세요.

Google사가 만든 크롬에서 사용되는 검색 엔진인데, 이를 브라우저에서만 사용하지 말고, 적절히 잘 고쳐서 브라우저가 아닌 다른 플랫폼에서도 사용을 해보자! 라는 것이 Node.js의 간략한 역사입니다. 그렇다면 왜 브라우저에서 사용하는 V8 runtime(실행 환경)을 다른 플랫폼에서도 사용을 하자는 생각을 했을까요? 정답은 엄청 빨라서입니다. 기존의 동기식 실행을 선택하지 않고, 비동기식 event loop을 활용해서 V8을 만들었기 때문이지요.

Node.js 많이 사용해?

많은 대기업에선, Spring이 주로 BE에 사용됩니다. Spring은 워낙 강력하기 때문이지요. 하지만 요즘 스타트업 기업들은 node.js를 많이 사용한다고 합니다. 왤까요? 답은 가볍고 빠르기 때문입니다. 그렇다면 장점만 있는가라고 물으면 그것은 또 답은 아닙니다. 왜냐하면 javascript 자체가 type을 신경쓰지 않는다는 장점이자 엄청난 단점을 가지고 있기 때문입니다. 이는 runtime error가 나기 아주 좋은 환경을 조성합니다. 딴 길로 잠시 새보면, javascript는 초창기 브라우저 “모자이크”에서 사용하기 위해, “브랜든 아이크”라는 개발자님이 단, 열흘만에 만든 언어기 때문입니다. (엄청나네요..) typescript가 나오고 걱정은 줄었지만, 아무래도 걱정은 여전히 남아있긴 합니다.
그래도 가볍고 빠르다는 장점은 분명히 강점이긴 합니다. “머리글에 대한 대답은 적당히 꽤 사용한다!” 라고 볼 수 있겠네요.

마무리하며

아무래도 하나의 언어를 알기 위해선 그 언어에 대한 역사를 알면 좀 더 흥미롭게 학습이 가능하다고 전 생각합니다. 따라서 이번 글에선 간략하게 Node.js의 역사에 대한 이야기를 해보았고, 다음 글에선, 본격적으로 Node.js에 대한 이야기를 해보겠습니다. 긴 글 읽어주셔서 감사합니다.

This post is licensed under CC BY 4.0 by the author.