ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • NodeJS(노드 JS) 볼까요
    카테고리 없음 2020. 2. 19. 11:02

    웹 개발은 크게 두 가지로 나뉜다. 프론트엔드(Front-end)와 백엔드(Back-end) 기술입니다. 프론트엔드는 웹페이지 디자인이 자신의 버튼 기능처럼 사용자가 바로 볼 수 있는 부분입니다. 백엔드는 사용자가 눈으로 볼 수 없는 후단 기술입니다. 백엔드는 서버단기술이라고도 불립니다. HTML, CSS 등이 대표적인 프론트엔드 기술이며 DB 자신의 서버를 다루는 부분이 백엔드 기술입니다.자바스크립트는 프론트엔드 분야에서 주로 활용되었다. 그런데 노드JS(NodeJS)가 등장하면서 그 용도가 완전히 바뀌었다. 노드JS라는 플레입니다.워크 덕분에 자바스크립트로 서버단 기술까지 컨트롤 할 수 있게 되었습니다. 2009년 혜성처럼 등장한 노드 JS는 웹 개발자들에게 많은 관심을 받았으며, 최근 재단까지 설립되면서 기술 개발이 활발하다.


    >


    노드JS 로고 <출처: nodejs.org> 조이엔트에서 시작한 오픈소스 기술


    >


    노드 JS 예제 <출처: About Node.js> 노드 JS는, 자바스크립트 엔진 "V8"위에서 동작하는 이벤트 처리 I/O프레임 다우워몹 매우 높다. 서버 환경에서 자바스크립트로 어린이 애플리케이션을 만들 수 있도록 지원한다. 노드JS의 장점은 비동기 프로그래밍입니다. 동기 프로그래밍이란 무엇인가를 요청하면 결과를 바로 받는 것을 의미한다. 비동기는 이벤트를 요청하고 즉시 결과를 받지 않아도 된다. 그러므로 결과값을 기다리지 않고 보다 다양한 요청을 처리할 수 있다. 웹 분야에서는 비동기 프로그래밍을 쓰는 경우는 드물었지만 노드JS에서 비동기 프로그래밍을 비교적 쉽게 할 수 있게 됐다. 프론트엔드와 백엔드를 자바스크립트라는 같은 언어로 관리할 수 있는 것도 노드JS의 큰 장점입니다. 덕분에 웹 개발자들은 새로운 언어를 배우지 않고 기존 언어를 활용해 서버 기술을 빠르게 응용할 수 있게 됐다. 확장성도 노드JS의 장점입니다. 링크드인(Linked-in)이 과인페이팔(PayPal)도 노드JS를 도입했으며 최근에는 대기업용 노드JS 기술도 별도로 과인화하고 있다. 다만 기술의 역사가 짧기 때문에 관련 예제과의 모듈 완성도 등이 다른 언어에 비해 부족하다는 점이 단점으로 지적되고 있다.노드JS는 라이언 달(Ryan Dahl)이라는 개발자가 만든 기술입니다. 라이언 달은 2006년 플리커 서비스를 보고, 노드 JS의 아이 디어를 떠올렸다. 당시 플리커는 사진을 올리면 현재까지 파하나가 몇 % 업로드됐는지 알려주는 기능이 있었다. 그 과정에서 서버에 데이터 요청을 보내고 기다려야 했는데 라이언 달은 이 상황을 개선하는 기술을 상정해 노드JS를 만들었다고 할 것이다.라이언 달은 2009년 하나하나 달 유럽에서 열린 자바 스크립트 콘퍼런스에서 노드 JS을 최초로 흘러나왔습니다. 라이언 달은 노드 JS를 개발할 당시 조엔트(Joyent)에서 근무하고 있었다. 조이앤트는 클라우드, 컨테이너 서비스 등도 개발하고 있지만 노드JS 공식 후원사인 대기업으로 라이언들이 노드JS 기술 개발에만 집중할 수 있도록 지원했습니다.조이앤트와 커뮤니티 간의 혼란


    노드JS는 아내의 소리에 조이앤트로부터 지원했지만 상용기술이 아닌 오픈소스 기술로 공개됐다. 이 과정에서 조이엔트는 '자비로운 종신 독재자'(BDFL, Benevolent Dictator for Life)가 이끄는 오픈소스 문화를 선택했다. BDFL은 소스코드를 수정할 최종 권한을 갖고 자신의 전체적인 개발 방향을 정하는 소수의 오픈소스 프로젝트 개발 리더를 말한다. 주로 해당 오픈소스 기술을 처가를 만든 창시자가 BDFL을 맡는다. BDFL 문화를 채택하는 대표적인 곳이 리눅스 커뮤니티다. 프로그래밍 언어 'Python'을 만든 귀도 반 로섬(Guidovan Rossum)도 BDFL의 역할을 맡아 전체적인 커뮤니티를 관리해 나가겠습니다.일반적으로 BDFL은 한 번 결정해 지역 계속 유지되는데 반해, 노드 JS 커뮤니티에서는 BDFL이 계속 변화한다. 조이엔트는 여기서 BDFL을 지정할 권리를 갖는다. 노드JS의 창시자인 라이언 달이 그대로 노드JS 커뮤니티의 화대 BDFL이었다. 더서리더는 어린이작 슈레터(IssacZ). Schlueter), 3번째 BDFL은 TJ폰 테인(TJ Fontaine)이 담당했다. 3명 모두 당시 조이엔 도 소속의 개발자인 노드 JS기술만 다라고 주장하고 관리했다. 동시에 이들은 오픈소스 커뮤니티와 활발하게 소통하며 기술을 개발했다. 아이의 작품 슈레터가 BDFL이었을 때만 해도 노드JS 커뮤니티는 순조로웠다. 그러나 20개 4년 TJ폰테의 이 노드 JS커뮤니티장에 세워진 앞으로도 분쟁이 발생했다.


    >


    조엔트로고 <출처: 조엔트 홈페이지> 노드JS 기술은 최초 유출 이후 꾸준히 업데이트되었다. 20하나 3년 3월 버전 0. 하나 0.0이 발매되어 조이, 엔테로바이러스가 유출된 기술 개발 예정에 따르면 그 이후 중요한 버전은 0. 하나 2였다. 그런데 0. 하나 2버전은 20하나 5년 2월이 되고 유출됐다. 1년 이상도 가끔 작은 업데이트 정도밖에 없어 핵심 기술 개발은 거의 이뤄지지 않았다. 중소기업이 직접 후원하고 조엔트 이외에 다양한 참여자가 있는 커뮤니티에서는 다소 이해할 수 없는 상황이었다. 조이엔트는 왜 개발 속도가 느려지는지에 대해 구체적인 이유는 특별히 밝히지 않았다.결국 조이 엔트에 속하지 않은 노드 JS개발자들은 20개 4년 하반기'노드 포워드(Node Forward)'이라는 기술 위원회를 독자적으로 결성했습니다. 자바스크립트의 생태계를 개선하기 위한 커뮤니티였다. 독특한 것은 여기에 2대 리더였던 어린 아이작 슐레 터도 포함되어 있다는 사실이었다 노드 포워드의 주요 멤버였던 미키 로저스(Mikeal Rogers)는 강연회에서 "당시 왜 이렇게 새로운 발매가 없는지 알아보느라 고민하기보다는 노드 JS 생태계를 잘 구축하고 싶었다"고 말했습니다. 이 때문에 '노드스쿨', '노드콘 원샷' 같은 노드 개발자들이 모일 수 있는 비법을 많이 논의했습니다. 노드포워드는 회의 과정을 곧바로 행아웃(Hangout)으로 녹화해 유출했고, SNS에 내부 정보를 올려 다른 개발자들과 거의 매일 소통했다. 조이앤트가 주도했을 때보다 훨씬 개방적이고 투명한 오픈소스 문화가 만들어졌다.


    >


    노드포워드 홈페이지 <출처: nodeforward.org> 노드포워드에 미치는 영향 때문일까. 조엔트는 오픈 거버넌스 모델을 지향하는 자문위원회(어드바이저리 Board)를 구성하겠다고 밝혔다. 오픈 거버넌스 모델은 BDFL 운영 방침과는 반대로, 관용적인 사람은 누구나 나쁘지 않고, 최종 기술에 기여할 수 있는 구조이다.그 가운데 20최초 4년 첫 2월 노드 포워드는 독자적인 기술인'io.js'를 발표했다. io.js는 노드JS 기술을 기반으로 했다. 노드JS는 오픈소스기술로 복사가 가능했기 때문입니다. io.js는 오픈 거버넌스 모델을 추구했다. 미 킬 로저스는<인포 월드>와의 인터뷰에서 "20최초 4년 7월부터 조이 엔트와 함께 문제를 해결하는 방법을 일으킨 "과 "바람 피곤해서 io.js을 공개했다"이라고 설명했다. 또 그는 공개적으로 조이앤트가 감정대로 노드JS리더를 정하는 것을 반대했다.노드JS재단 출범


    >


    노드JS재단 출범 소개글 <출처:조엔트 홈페이지> io.js의 영향 때문일까. 조이, 엔테로바이러스는 2015년 2월'노드 JS재단'을 출범시켰다. 동시에 노드JS가 리눅스재단과 같은 방식으로 운영되며 중립적인 성격을 가졌음을 강조했습니다. 재단 출범 소식을 전해41전에야 급히 노드 JS의 0.12버전 기술도 나왔습니다. 스콧 해먼드 조엔트 CEO는 직접 io.js팀에 노드JS프로젝트로 합류할 것을 제안했습니다. 결국 2015년 5월 io.js팀은 노드 JS에 합류하기로 했다고 밝혔습니다. 노드 JS의 3대 리더의 TJ폰 테인은 BDFL의 역할을 그만두고 조이, 엔테로바이러스도 마찬가지다.2015년 9월에는 약 1년 만에 새로운 버전의 노드 JS 4.0이 발매되었습니다. 노드 JS 4.0차 버전은 io.js와 하프쵸탄소 최근 V8이 도입되면서 ES6의 기능을 더 많이 쓸 수 있게 되었습니다. 최근 노드JS 기술은 리눅스, OS X, 윈도, ARM 프로세서 등 다양한 테스트 환경이 구축돼 매우 안정적으로 기술을 배포할 수 있는 상태다.중견기업용 기술로 도약하는 노드JS 생태계


    >


    노드 JS 재단에 속하는 중소기업. 현재 노드JS 생태계를 이끌고 있다. <출처:노드 JS재단>노드 JS가 트렌드를 빼면 노드 JS에서 기술을 개발하는 중소 기업도 1개도 변함 없이 두 사람이 등장했습니다. 대표적으로 2대 BDFL 연 아이작 슐레부터는 npm라는 자바 스크립트 관련 패키지를 공유·관리하고 주는 서비스를 오픈 소스 프로젝트로서 스타트했습니다. 20개 4년에는 npm전문 스타트 업을 세우고 패키지를 보다 체계적으로 관리하고 있다. 아내 sound에는 노드JS 중심의 기술이 많았으나 지금은 프론트엔드 관련 패키지가 모두 모여 있다. 현재 등록된 패키지의 수는 20만개인 사용자 수는 하나 5만명을 넘어섰다.노드JS를 중소기업용 서비스로 확장하려는 움직임도 많다. 노드 소스란 스타트 업은 20개 4년에 설립된 후'엔 솔리도우','엥시프' 같은 중소 기업용 노드 JS서비스를 제공하고 있다. 20하나 5년에는 300만달러 우리 김약 35억원의 투자를 받기도 했습니다. 고객은 넷플릭스, 페이팔, 우버, 야후 등이 있다.스트롱 루프도 노드 JS업계에서 주목되는 스타트 업했지만 IBM이 20하나 5년 인수했습니다. 노드JS와 합병한 io.js 프로젝트를 개발한 핵심 코미터(프로젝트 개발 공헌자)들도 스트론그룹에 소속돼 있었다. IBM은 최근 주력하고 있는 플랫폼 서비스(PaaS: Platform as a Service)인 '블루믹스'에 노드JS 기술을 확대하고 있다.이 밖에도 MS 인텔 레드햇 같은 중소기업들이 노드JS재단을 지원해 노드JS에 대한 투자를 늘리고 있다.[네이버 지식백과] 노드JS - 자바스크립트로 서버단을 관리한다 (용어로 보는 IT, 이지현)


    댓글

Designed by Tistory.