이벤트머신, 트위스티드 같이 다른 언어도 이벤트 루프 구현체가 있지만, 블로킹과 논블로킹이 혼재되어 있어서 프로그래머들이 제대로된 성능을 못 끌어 올림
익명(175.212)2016-01-24 21:39
자바스크립트는 표준 I/O 라이브러리가 없없기 때문에 이런게 가능했던거지
익명(175.212)2016-01-24 21:40
완전 이벤트기반이면... 웹을 더 동적으로 사용할수있는 장점???
티나ㆍ스프라우트(tinaptec)2016-01-24 21:49
코딩을 하면 1라인에서 2라인 순서대로 읽잖아. 1라인을 실행하고 그다음 2라인을 실행하고, 1라인이 실행되기전에는 2라인이 실행 안되지 이게 블로킹임
익명(weaz86)2016-01-24 21:58
옛날에는 단일 프로세스라서 이런 전통적인 방식이 문제가 없었지
익명(weaz86)2016-01-24 22:01
(경청중)
티나ㆍ스프라우트(tinaptec)2016-01-24 22:01
뭐 쓰레드-세이프 이런 이슈때문에??
티나ㆍ스프라우트(tinaptec)2016-01-24 22:04
그런데 네트워킹, 인터넷이 확장되면서 문제가 많이 들어나게됨. 예를 들어서 데이터베이스에게 쿼리를 보낸다고 해봐. 데이터베이스가 쿼리를 마칠때까지 다음라인이 진행이 불가능하지잖아.
익명(weaz86)2016-01-24 22:06
스트리밍 시대임. 클라이언트와 서버 간격이 더 줄어들고 잇는 시점에서 js의 클라이언트와 사용자입력 사이에서 유기성을 이제는 서버와 클라로 옮겨와지는것 같고 그거에 적합한게 기존의 그런 역할을 했던 js라고 보여짐..
asdf(121.166)2016-01-24 22:07
그래서 나온게 이벤트기반 프로그래밍임(혹은 비동기 프로그래밍) 데이터베이스에 일단 쿼리를 요청하고 나는 나대로 일처리를 하는 거지. 그리고 데이터베이스에서 쿼리를 마치면 거기에 따른 작업을 하는거지. 기존의 방식은 블로킹으로 일을 직렬로 처리한다면, 이벤트기반의 방식은 일을 병렬로 처리하는거지.
익명(weaz86)2016-01-24 22:09
그 콜백 도배한 그런 구조를 사용한다면, 단순히 쿼리날리기(1라인) 받아서사용(2라인)같은 직렬적 구조가 아니라 쿼리를날린다(콜백으로받아서사용) 이런 구조를 사용할수있다?
티나ㆍ스프라우트(tinaptec)2016-01-24 22:10
물론 그것을 목적으로 태생된것 같지 않은것 같음. 태어나고 보니 그렇게 된것같음. 이런 일련의 과정을 촉발시킨건 비약적 성능의 v8엔진의 등장이고... 개인적으로 그래서 드는 생각은 지금 소프트웨어 개발자들 경우 신택스적인 것, 코드 구조성에 쉽게 정신팔리고 누가 우위니 어떤언어는 노답이니 하지만 사실 대세는 엔진,성능과 같은 물리적인것에 발발한다는 느낌이 듬.
asdf(121.166)2016-01-24 22:14
노드에 관심있다면 자바스크립트갤로.... 물어보시면 내가 모르더라도 검색해서 답해줍니다. ㅠㅜ
익명(weaz86)2016-01-24 22:19
결론 : js는 클라에서만 건전하게 사용하자^^
티나ㆍ스프라우트(tinaptec)2016-01-24 22:20
클라사이드js는 대체재가 없으니 쓰다보면 이벤트기반에 대해 촉이 오지 않을까 하는...
티나ㆍ스프라우트(tinaptec)2016-01-24 22:21
왜 결론이 그렇게 남?
익명(weaz86)2016-01-24 22:23
불법 호객행위 근절!!
티나ㆍ스프라우트(tinaptec)2016-01-24 22:24
앞으로 미래는 이벤트기반프로그래밍 시대가 될꺼고, 거기의 선두주자인 노드가 대세가 될 시대가 온다는거야.. 아니 이미 대세인가? 어쨌든 배워서 손해는 아님
노드가 완전체 이벤트기반 플렛폼이라서 쓰는 거임
이벤트머신, 트위스티드 같이 다른 언어도 이벤트 루프 구현체가 있지만, 블로킹과 논블로킹이 혼재되어 있어서 프로그래머들이 제대로된 성능을 못 끌어 올림
자바스크립트는 표준 I/O 라이브러리가 없없기 때문에 이런게 가능했던거지
완전 이벤트기반이면... 웹을 더 동적으로 사용할수있는 장점???
코딩을 하면 1라인에서 2라인 순서대로 읽잖아. 1라인을 실행하고 그다음 2라인을 실행하고, 1라인이 실행되기전에는 2라인이 실행 안되지 이게 블로킹임
옛날에는 단일 프로세스라서 이런 전통적인 방식이 문제가 없었지
(경청중)
뭐 쓰레드-세이프 이런 이슈때문에??
그런데 네트워킹, 인터넷이 확장되면서 문제가 많이 들어나게됨. 예를 들어서 데이터베이스에게 쿼리를 보낸다고 해봐. 데이터베이스가 쿼리를 마칠때까지 다음라인이 진행이 불가능하지잖아.
스트리밍 시대임. 클라이언트와 서버 간격이 더 줄어들고 잇는 시점에서 js의 클라이언트와 사용자입력 사이에서 유기성을 이제는 서버와 클라로 옮겨와지는것 같고 그거에 적합한게 기존의 그런 역할을 했던 js라고 보여짐..
그래서 나온게 이벤트기반 프로그래밍임(혹은 비동기 프로그래밍) 데이터베이스에 일단 쿼리를 요청하고 나는 나대로 일처리를 하는 거지. 그리고 데이터베이스에서 쿼리를 마치면 거기에 따른 작업을 하는거지. 기존의 방식은 블로킹으로 일을 직렬로 처리한다면, 이벤트기반의 방식은 일을 병렬로 처리하는거지.
그 콜백 도배한 그런 구조를 사용한다면, 단순히 쿼리날리기(1라인) 받아서사용(2라인)같은 직렬적 구조가 아니라 쿼리를날린다(콜백으로받아서사용) 이런 구조를 사용할수있다?
물론 그것을 목적으로 태생된것 같지 않은것 같음. 태어나고 보니 그렇게 된것같음. 이런 일련의 과정을 촉발시킨건 비약적 성능의 v8엔진의 등장이고... 개인적으로 그래서 드는 생각은 지금 소프트웨어 개발자들 경우 신택스적인 것, 코드 구조성에 쉽게 정신팔리고 누가 우위니 어떤언어는 노답이니 하지만 사실 대세는 엔진,성능과 같은 물리적인것에 발발한다는 느낌이 듬.
노드에 관심있다면 자바스크립트갤로.... 물어보시면 내가 모르더라도 검색해서 답해줍니다. ㅠㅜ
결론 : js는 클라에서만 건전하게 사용하자^^
클라사이드js는 대체재가 없으니 쓰다보면 이벤트기반에 대해 촉이 오지 않을까 하는...
왜 결론이 그렇게 남?
불법 호객행위 근절!!
앞으로 미래는 이벤트기반프로그래밍 시대가 될꺼고, 거기의 선두주자인 노드가 대세가 될 시대가 온다는거야.. 아니 이미 대세인가? 어쨌든 배워서 손해는 아님
넵 ㅇvㅇ님 친절한설명 감사합니다!!!