MultiThread를 이용한 Linux HTTP Webserver구현.
VEDA과정의 40%가 되어가는 중이다. A반에선 한분이 취업으로 VEDA 중도포기를 했다고 들었다. 좋은 일로 빠졌다고 하니 다행이다. 동기들도 취업에 대한 고민으로 불안하고 예민해지는듯 보인다. 걱정은 전염성이 강하고 함께있는 사람도 불안하게 만든다. 다른 동기들이 조금이라도 편해지길 기도한다.
이번주는 날마다 미니프로젝트 발표를 진행했다. 방어적 프로그래밍, make를 이용한 빌드자동화, googleTest, cin객체의 fail함수 등 다른 동기들의 발표에서 다양한 기술들을 배우며 부족함을 느낀다. 서로 도와가며 발전하는 모습에 동기애가 생겼다.
미금역에서 국민 취업지원 제도 1차 상담을 듣고 왔다.
학원(VEDA) 다니는걸 취업활동으로 인정해 주기 때문에 동시에 지원을 받을 수 있다.
지원을 받기까지 신청부터 한달정도의 기간이 소요되기 때문에
국비지원 학원을 계획중이라면 수업시작 전부터 신청하는게 좋은듯 하다.
이번주는 Network Programming에 대해 배웠다. 수업은 RaspberryPi에 올린 LinuxOS에서 c언어로 소켓통신 프로그램을 작성하고 gcc로 컴파일을 하는 방식으로 진행된다. 앞서 배운 Kernel단의 SystemCall/ Multi processing & IPC/ Socket등의 개념을 기반으로 Server와 Client 프로그램을 작성하면서 부족한 개념과 응용버전을 배운다.
강사님을 따라 교재(사물인터넷을 위한 리눅스 프로그래밍)에 있는 예문을 변형시켜 보는게 큰 도움이 된다. 예제는 규모가 작으니 C++로 객체지향으로 변환하는 걸 생각하며 예문을 만들어본다.
배우는게 많아지면서 점차 늘어나는 책갈피... 모든 내용은 책에있다!
알고리즘 풀이: 구간합, DP, 최적화 문제를 풀며 어려움을 느낀다. 아이디어가 중요한 문제를 풀면서 조금씩 발전하는 중인지 생각해본다. IM 단계를 50% 완료했다. 이번주에는 끝낼수 있을까...
Network Programming: HTTP프로토콜과 개념들을 배우고 Socket으로 WebServer프로그램을 만들어 본다. 지난주에 배운 pThread를 좀더 배워 c++11 std Thread를 이용해 멀티 스레드로 바꿔보며 네트워크 프로그래밍의 기초를 익힌다.
RTSP, RTP: HTTP를 배우면서 멀티미디어에서 사용하는 RTSP 프로토콜 또한 분석해 본다. RTSP는 실시간 미디어 제어를 위해 RTP와 RTCP를 결합한 프로토콜로 HTTP와 비슷한 형식으로 503port를 통해 전송된다. 각종 요청들과 세션유지 기술 등 차이점을 알아보고 발표를준비해 보자.
멀티플렉싱. select & epoll: 하나의 서버에서 각종 파일(file Descriptor)을 관리하기 위해 Signal 방식의 System call을 이용할 수 있다. select함수를 통해 signal의 변경 상태를 찾아낼 수 있고 해당하는 처리를 해주면 된다. 추가로 Nonblock방식의 file descriptor를 이용해 대기하지 않고 계속 실행하는 방법과 epoll API를 통해 빠르게 최적화하는 방법도 배우자.
멀티프로세싱. pThread & Thread: 지난주 배운 Thread개념을 조금더 깊게 배운다. C++11 std로 들어온 Thread를 사용해 보고, webServer에 적용시키며 멀티스레드 프로그램을 제작해 본다.