tjdans1114 / pitt Goto Github PK
View Code? Open in Web Editor NEWProtocol Interface for Transmitting hyperText
Protocol Interface for Transmitting hyperText
최종발표는 중간 발표 때 공지했던대로 12월 17일 (월) 에 있을 예정입니다.
최종발표 장소는 중간발표와 동일한 302동 308호로 예정되어 있습니다.
시간은 오전 10시 부터 ~ (끝나는 시간은 모든 조의 평가가 끝날 때 까지입니다.)
일정이 있으신 분들은 일정을 소화하고 다시 발표장으로 오시면 됩니다.
이번에는 시간별로 발표하는 세션을 두도록 하겠습니다. 자세한 사항은 추후에 공지하도록 하겠습니다.
최종 발표가 예정된 일정보다 미뤄졌지만 기존의 최종발표일인 14일 까지 프로젝트를 완료하시어 회사 담당자 분과 공유를 하셔야합니다.
회사 담당자 분께 회사 평가를 12월 19일 까지 받을 예정이기 때문에 반드시 프로젝트의 최종 성과를 회사 담당자 분과 최종발표 이전에 공유하도록 하시기 바랍니다.
최종발표 전 교수님과 면담을 원하는 조는 12월 7일 (금) 에 면담 일정을 잡으시면 됩니다. 면담이 필요하신 조들은 제게 메일을 주셔서 면담 일정을 잡으시기 바랍니다.
there are much more
Please leave comments for new references!
Task의 결과가 새로운 event로 공급되어 event loop내에서 처리되도록 구현 (양방향 통신)
를 FINISHED를 enqueue해서 구현했는데, server에 적당히 log를 찍는 것 만으로 충분한지.Last-Modified: , :: GMT
Last-Modified: Wed, 21 Oct 2015 07:28:00 GMT
Connection: keep-alive
Connection: close
Keep-Alive: parameters
HTTP/1.1 200 OK
Connection: Keep-Alive
Content-Encoding: gzip
Content-Type: text/html; charset=utf-8
Date: Thu, 11 Aug 2016 15:23:13 GMT
Keep-Alive: timeout=5, max=1000
Last-Modified: Mon, 25 Jul 2016 04:32:39 GMT
Server: Apache
Markdown | Less | Pretty |
---|---|---|
Still | renders |
nicely |
1 | 2 | 3 |
event loop의 구현 | Remote client (Web Browser)로 부터의 연결을 받아서 기본적인 Network Event를 처리할 수 있는 로직의 구현 | Remote client의 연결을 받아들이고 거기에 읽거나 쓰기 위한 기본적인 구현이 되어있다. | 15 |
---|---|---|---|
Remote client의 연결을 받아들이고 거기에 읽거나 쓰기 위한 구현이 되어있으나, event loop에 적절치 않은 방식으로 되어있다. | 7 | ||
Remote client의 연결을 받아들이지 못하거나 읽기/쓰기에 관한 구현이 되어있지 않다. | 0 | ||
다수의 client로부터의 연결을 동시에 처리하기 위해 필요한 selector와 event loop의 구조 이해 및 구현 | selector를 사용한 multiplexing, non-blocking i/o, buffering 대해서 이해하고 이들이 모두 event loop에 구현되어있다. | 15 | |
selector를 사용한 multiplexing 및 non-blocking i/o가 구현되어있다. | 10 | ||
selector를 사용한 multiplexing 및 i/o가 구현되어있으나 non-blocking 방식을 사용하지 않았다. | 5 | ||
비정상적인 client가 web-server의 동작에 악영향을 미치지 않게 하기 위해 필요한 기법들에 대한 이해 및 구현 | 비정상적인 client가 event loop에 미치는 영향에 대해서 이해하고 이것으로 인해 전체의 performance에 영향이 가지 않도록 하기 위한 몇가지 기법들에 대해 이해하고 구현한다. (read buffer 확장, request timeout) | 2 + 구현 항목당 4점 (총 10점) | |
비정상적인 client가 event loop에 미치는 영향에 대해서 이해하고 설명할 수 있다. | 2 | ||
http 파싱 | Web Browser가 보낸 http request를 해석 | Web Browser가 보낸 http request header를 파싱하고 Method, URI, Protocol에 대한 정보를 추출하였으며 'Connection' header에 대한 동작을 구현하였다. 또한 http request header의 크기가 사실상 무한히 커질 수 있음을 이해하고 이를 적절히 제한하여 Memory 관련 문제를 회피하기 위한 구현을 하였다. | 15 |
Web Browser가 보낸 http request header를 파싱하고 Method, URI, Protocol에 대한 정보를 추출하였으며 'Connection' header에 대한 동작을 구현하였다. | 12 | ||
Web Browser가 보낸 http request header를 파싱하고 가장 기본적인 요소인 Method, URI, Protocol에 대한 정보를 추출하도록 구현하였다. | 9 | ||
Web Browser가 해석할 수 있는 http response를 구성 | 해석을 마친 http request에 대해서 올바른 http response의 형태가 무엇인지 이해하고 예외 상황들을 고려하여 Web Browser가 해석할 수 있는 응답을 내보낼 수 있다. 200 OK, 302 Not modified, 400 Bad request, 404 Not found, 500 Service unavailable 의 다섯가지 응답 형태를 올바로 구현했다. | 구현 항목당 3점 (총 15점) | |
event loop와 thread pool간의 통신 | event loop와 thread pool의 역할을 구분하고 필요한 경우에 양자간에 통신을 하는 방법에 대해서 이해하고 구현 | event loop내에서 처리하기에 적절하지 않은 Task에 대해서 이해하고 이를 Thread pool에 맡겨서 처리하였고 Task의 결과가 새로운 event로 공급되어 event loop내에서 처리되도록 구현했다. (양방향 통신) | 20 |
event loop내에서 처리하기에 적절하지 않은 Task에 대해서 이해하고 이를 Thread pool에 맡겨서 처리할 수 있는 부분을 구현하였으나 Task의 완료가 event loop에 통지되지 않았다. (단방향 통신) | 12 | ||
event loop내에서 처리하기에 적절하지 않은 Task들에 대해서 이해하고 설명할 수 있으나 이를 구현은 하지 못했다. | 4 | ||
cache의 구현 | Web Browser가 요청한 File에 대해서 매번 디스크에서 이를 읽지 않고 Memory상에 가지고 있다가 바로 응답할 수 있는 cache를 구현 | 한정된 Memory 공간만을 효율적으로 사용하는 File cache를 구현했다. | 5 |
File cache를 구현했으나 Memory의 사용에 대한 제한을 두지 않았다. | 3 | ||
event loop를 사용하는 기존 서비스와의 비교 | event loop를 사용하는 대표적인 서비스인 node.js와의 비교 텍스트 형태의 html 페이지를 jmeter를 통하여 반복 호출하는 테스트를 수행하여 node.js와 성능을 비교 | node.js보다 더 우수하거나 80% 이상의 성능을 낸다. | 5 |
40~80% 사이의 성능을 낸다. | 3 | ||
1~40% 사이의 성능을 낸다. | 1 |
평가항목 | 세부평가항목 | 평가기준 | 배점 / 채점 | 평가 |
---|---|---|---|---|
event loop의 구현 | Remote client (Web Browser)로 부터의 연결을 받아서 기본적인 Network Event를 처리할 수 있는 로직의 구현 | Remote client의 연결을 받아들이고 거기에 읽거나 쓰기 위한 기본적인 구현이 되어있다. | 15 | |
Remote client의 연결을 받아들이고 거기에 읽거나 쓰기 위한 구현이 되어있으나, event loop에 적절치 않은 방식으로 되어있다. | 7 | |||
Remote client의 연결을 받아들이지 못하거나 읽기/쓰기에 관한 구현이 되어있지 않다. | 0 | |||
다수의 client로부터의 연결을 동시에 처리하기 위해 필요한 selector와 event loop의 구조 이해 및 구현 | selector를 사용한 multiplexing, non-blocking i/o, buffering 대해서 이해하고 이들이 모두 event loop에 구현되어있다. | 15 | ||
selector를 사용한 multiplexing 및 non-blocking i/o가 구현되어있다. | 10 | |||
selector를 사용한 multiplexing 및 i/o가 구현되어있으나 non-blocking 방식을 사용하지 않았다. | 5 | |||
비정상적인 client가 web-server의 동작에 악영향을 미치지 않게 하기 위해 필요한 기법들에 대한 이해 및 구현 | 비정상적인 client가 event loop에 미치는 영향에 대해서 이해하고 이것으로 인해 전체의 performance에 영향이 가지 않도록 하기 위한 몇가지 기법들에 대해 이해하고 구현한다. (read buffer 확장, request timeout) | 2 + 구현 항목당 4점 (총 10점) | ||
비정상적인 client가 event loop에 미치는 영향에 대해서 이해하고 설명할 수 있다. | 2 | |||
http 파싱 | Web Browser가 보낸 http request를 해석 | Web Browser가 보낸 http request header를 파싱하고 Method, URI, Protocol에 대한 정보를 추출하였으며 'Connection' header에 대한 동작을 구현하였다. 또한 http request header의 크기가 사실상 무한히 커질 수 있음을 이해하고 이를 적절히 제한하여 Memory 관련 문제를 회피하기 위한 구현을 하였다. | 15 | |
Web Browser가 보낸 http request header를 파싱하고 Method, URI, Protocol에 대한 정보를 추출하였으며 'Connection' header에 대한 동작을 구현하였다. | 12 | |||
Web Browser가 보낸 http request header를 파싱하고 가장 기본적인 요소인 Method, URI, Protocol에 대한 정보를 추출하도록 구현하였다. | 9 | |||
Web Browser가 해석할 수 있는 http response를 구성 | 해석을 마친 http request에 대해서 올바른 http response의 형태가 무엇인지 이해하고 예외 상황들을 고려하여 Web Browser가 해석할 수 있는 응답을 내보낼 수 있다. 200 OK, 302 Not modified, 400 Bad request, 404 Not found, 500 Service unavailable 의 다섯가지 응답 형태를 올바로 구현했다. | 구현 항목당 3점 (총 15점) | ||
event loop와 thread pool간의 통신 | event loop와 thread pool의 역할을 구분하고 필요한 경우에 양자간에 통신을 하는 방법에 대해서 이해하고 구현 | event loop내에서 처리하기에 적절하지 않은 Task에 대해서 이해하고 이를 Thread pool에 맡겨서 처리하였고 Task의 결과가 새로운 event로 공급되어 event loop내에서 처리되도록 구현했다. (양방향 통신) | 20 | |
event loop내에서 처리하기에 적절하지 않은 Task에 대해서 이해하고 이를 Thread pool에 맡겨서 처리할 수 있는 부분을 구현하였으나 Task의 완료가 event loop에 통지되지 않았다. (단방향 통신) | 12 | |||
event loop내에서 처리하기에 적절하지 않은 Task들에 대해서 이해하고 설명할 수 있으나 이를 구현은 하지 못했다. | 4 | |||
cache의 구현 | Web Browser가 요청한 File에 대해서 매번 디스크에서 이를 읽지 않고 Memory상에 가지고 있다가 바로 응답할 수 있는 cache를 구현 | 한정된 Memory 공간만을 효율적으로 사용하는 File cache를 구현했다. | 5 | |
File cache를 구현했으나 Memory의 사용에 대한 제한을 두지 않았다. | 3 | |||
event loop를 사용하는 기존 서비스와의 비교 | event loop를 사용하는 대표적인 서비스인 node.js와의 비교 텍스트 형태의 html 페이지를 jmeter를 통하여 반복 호출하는 테스트를 수행하여 node.js와 성능을 비교 | node.js보다 더 우수하거나 80% 이상의 성능을 낸다. | 5 | |
40~80% 사이의 성능을 낸다. | 3 | |||
1~40% 사이의 성능을 낸다. | 1 | |||
총합 | 0 |
평가항목 | 세부평가항목 | 평가기준 | 배점 / 채점 | 평가 |
---|---|---|---|---|
event loop의 구현 | Remote client (Web Browser)로 부터의 연결을 받아서 기본적인 Network Event를 처리할 수 있는 로직의 구현 | Remote client의 연결을 받아들이고 거기에 읽거나 쓰기 위한 기본적인 구현이 되어있다. | 15 | |
Remote client의 연결을 받아들이고 거기에 읽거나 쓰기 위한 구현이 되어있으나, event loop에 적절치 않은 방식으로 되어있다. | 7 | |||
Remote client의 연결을 받아들이지 못하거나 읽기/쓰기에 관한 구현이 되어있지 않다. | 0 | |||
다수의 client로부터의 연결을 동시에 처리하기 위해 필요한 selector와 event loop의 구조 이해 및 구현 | selector를 사용한 multiplexing, non-blocking i/o, buffering 대해서 이해하고 이들이 모두 event loop에 구현되어있다. | 15 | ||
selector를 사용한 multiplexing 및 non-blocking i/o가 구현되어있다. | 10 | |||
selector를 사용한 multiplexing 및 i/o가 구현되어있으나 non-blocking 방식을 사용하지 않았다. | 5 | |||
비정상적인 client가 web-server의 동작에 악영향을 미치지 않게 하기 위해 필요한 기법들에 대한 이해 및 구현 | 비정상적인 client가 event loop에 미치는 영향에 대해서 이해하고 이것으로 인해 전체의 performance에 영향이 가지 않도록 하기 위한 몇가지 기법들에 대해 이해하고 구현한다. (read buffer 확장, request timeout) | 2 + 구현 항목당 4점 (총 10점) | ||
비정상적인 client가 event loop에 미치는 영향에 대해서 이해하고 설명할 수 있다. | 2 | |||
http 파싱 | Web Browser가 보낸 http request를 해석 | Web Browser가 보낸 http request header를 파싱하고 Method, URI, Protocol에 대한 정보를 추출하였으며 'Connection' header에 대한 동작을 구현하였다. 또한 http request header의 크기가 사실상 무한히 커질 수 있음을 이해하고 이를 적절히 제한하여 Memory 관련 문제를 회피하기 위한 구현을 하였다. | 15 | |
Web Browser가 보낸 http request header를 파싱하고 Method, URI, Protocol에 대한 정보를 추출하였으며 'Connection' header에 대한 동작을 구현하였다. | 12 | |||
Web Browser가 보낸 http request header를 파싱하고 가장 기본적인 요소인 Method, URI, Protocol에 대한 정보를 추출하도록 구현하였다. | 9 | |||
Web Browser가 해석할 수 있는 http response를 구성 | 해석을 마친 http request에 대해서 올바른 http response의 형태가 무엇인지 이해하고 예외 상황들을 고려하여 Web Browser가 해석할 수 있는 응답을 내보낼 수 있다. 200 OK, 302 Not modified, 400 Bad request, 404 Not found, 500 Service unavailable 의 다섯가지 응답 형태를 올바로 구현했다. | 구현 항목당 3점 (총 15점) | ||
event loop와 thread pool간의 통신 | event loop와 thread pool의 역할을 구분하고 필요한 경우에 양자간에 통신을 하는 방법에 대해서 이해하고 구현 | event loop내에서 처리하기에 적절하지 않은 Task에 대해서 이해하고 이를 Thread pool에 맡겨서 처리하였고 Task의 결과가 새로운 event로 공급되어 event loop내에서 처리되도록 구현했다. (양방향 통신) | 20 | |
event loop내에서 처리하기에 적절하지 않은 Task에 대해서 이해하고 이를 Thread pool에 맡겨서 처리할 수 있는 부분을 구현하였으나 Task의 완료가 event loop에 통지되지 않았다. (단방향 통신) | 12 | |||
event loop내에서 처리하기에 적절하지 않은 Task들에 대해서 이해하고 설명할 수 있으나 이를 구현은 하지 못했다. | 4 | |||
cache의 구현 | Web Browser가 요청한 File에 대해서 매번 디스크에서 이를 읽지 않고 Memory상에 가지고 있다가 바로 응답할 수 있는 cache를 구현 | 한정된 Memory 공간만을 효율적으로 사용하는 File cache를 구현했다. | 5 | |
File cache를 구현했으나 Memory의 사용에 대한 제한을 두지 않았다. | 3 | |||
event loop를 사용하는 기존 서비스와의 비교 | event loop를 사용하는 대표적인 서비스인 node.js와의 비교 텍스트 형태의 html 페이지를 jmeter를 통하여 반복 호출하는 테스트를 수행하여 node.js와 성능을 비교 | node.js보다 더 우수하거나 80% 이상의 성능을 낸다. | 5 | |
40~80% 사이의 성능을 낸다. | 3 | |||
1~40% 사이의 성능을 낸다. | 1 | |||
총합 | 0 |
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.