보너스 파트

Bonus는 3가지 영역으로 나누어 각 영역 5점으로 채점됩니다.

1. 멀티쓰레드

멀티쓰레드 서버를 구현해야 합니다. 프로그램이 시작될 때 쓰레드들을 미리 만들고, 필요할 때마다 작업을 할당하여 처리하도록 합니다. 쓰레드는 프로그램이 종료될 때까지 종료되지 않습니다. 필요할 때마다 쓰레드를 만들고 지우는 방식이 아니라, 쓰레드풀을 만들어 계속해서 돌아가는 쓰레드에게 작업을 할당하는 방식으로 구현하여야 합니다. 세마포어는 쓸 수 없고 뮤텍스는 가능합니다.

2. 플러그인

플러그인을 구현해야 합니다. 1개 구현할 때마다 1점(최대 5점)입니다. 아래의 Nginx module들을 참고하면 유용합니다.

3. Configuration

  • Execve 함수를 실행하지 않은 상태에서 내부 모듈만으로 CGI 프로그램을 실행할 수 있어야 합니다. 가령 파이썬으로 작성된 CGI 프로그램이 있다고 하면, 파이썬 함수들을 C++ 프로그램 안에서 사용할 수 있는 라이브러리를 인클루드하여 c++ 코드 안에서 처리 과정을 작성해야 하는 것입니다. 언어 1개를 처리할 때마다 1점입니다.

  • 멀티쓰레드를 구현할 때 워커 수를 설정 파일로 조정할 수 있다면 1점입니다. 저희는 서버 블록에서 워커 수를 설정하도록 했습니다.

  • 설정 파일에서 플러그인들을 ON/OFF할 수 있다면 1점입니다.

  • 로케이션의 URI 패턴을 정규식으로 처리할 수 있다면 1점입니다.

  • 프록시 서버를 구현하고 설정 파일을 통해 컨트롤할 수 있다면 1점입니다.

Last updated