images

[Node.js] Application Stack

웹어플리케이션이란 무엇인가요?

– 사용자가 웹브라우저로 웹어플리케이션을 이용할수 있다.
– 사용자가 http://domain/start를 요청하면 파일 업로드 폼이 들어있는 웰컴페이지를 볼 수 있어야 한다.
– 업로드할 이미지 파일을 선택해서 폼으로 전송하면, 해당 이미지는 http://domain/upload로 업로드 되어야 하며, 업로드가 끝나면 해당 페이지에 표시된다.

위의 케이스를 만족시키기 위해서 구현해야하는 부분은 어떤걸까요?

– 우리는 웹페이지를 제공해야 한다. 따라서 HTTP 서버가 필요하다.
– 우리는 서버는 어떤 URL 요청(request)을 받았는지에 따라 다르게 응답해야 한다. 따라서, 요청과 요청을 처리할 핸들러들을 연결짓기 위한 라우터(router) 같은 것이 필요하다.
– 서버로 도착한 요청들, 그리고 라우터를 이용해서 라우팅된 요청들을 만족시키기 위해서 실제적인 요청 핸들러(request handlers)가 필요하다.
– 라우터는 아마도 들어오는 어떠한 POST 데이터들도 다룰 수 있어야 한다. 그리고 해당 데이터를 다루기 편한 형태로 만들어 request handler 들에게 넘겨야 한다. 따라서 요청 데이터 핸들링(request data handling)이 필요하다.
– URL에 대한 요청을 다루는 것뿐 아니라 URL이 요청되었을 때 내용을 표시할 필요도 있다. 이 말은 즉, request handler 들이 사용자 브라우저로 콘텐트를 보내기 위해 사용할 수 있는 뷰 로직(view logic)이 필요하다는 이야기다.
– 마지막이지만 중요한 것으로는, 사용자가 이미지들을 업로드 할 수 있어야 하니까, 세부 사항을 다루는 업로드 핸들링(upload handling)이 필요할 것이다.

“웹페이지를 제공하고 Http요청을 받을수 있어야한다”는 요구의 전체를 PHP만으로는 이룰수가 없습니다. PHP를 이용하여 이러한 요구사항을 만족시키기 위해서는 Apache Http서버를 설치해야합니다.

하지만 node의 경우는 어플리케이션뿐 아니라 Http서버를 통으로 구현할수 있습니다. 따지고보면 웹어플리케이션과 웹서버는 기본적으로 동일합니다. 그러면 이제 Http서버구현을 시작해봅시다!.