미니쉘 프로젝트 깃허브 바로가기 개요 miniShell은 42Seoul에 들어와서 처음으로 C를 이용해서 진행한 큰 프로젝트였다. miniShell은 bash의 기능을 그대로 구현을 해보는 프로젝트이다. shell을 특징과 구현 방법에 대해서 이야기 해보자. (오랜 시간 뒤의 회고라서 디테일이 떨어질 수 있습니다 ㅜㅜ) 구조 및 동작 순서 동작 순서를 간단하게 시각화해보았다. 먼저 shell에 명령어가 입력으로 들어오면 토큰화를 해준다. 토큰은 트리 형태로 파싱을 해주었다. 파이프만 사용하는 shell이라면 linked list 형태로 만들어도 괜찮지만, 보너스 파트인 &&, || 의 기능도 있는 shell이다보니 &&, ||을 처리하기 위해서는 트리 형태로 데이터를 저장하는 것이 정신 건강에 좋다. 토..
42seoul
GitHub - 42webserv/42webserv Contribute to 42webserv/42webserv development by creating an account on GitHub. github.com 개요 먼저 우리가 만든 wev server의 요구 사항을 정리해보자. 구현한 디테일한 기능과 에러처리도 있지만 큰 기능을 위주로 설명을 하려고 한다. - Kqueue 를 이용한 비동기, 논블로킹 소켓 프로그래밍 - HTTP1.1 프로토콜을 이용한 통신 - CGI를 이용한 동적 웹 사이트 제공 - config file을 이용한 웹서버 설정 간단하게 다시 정리해서 말하자면 nginx를 직접 만들어보는 프로젝트이다. 구조 설계 및 동작 순서 구조를 다이어그램으로 간단히 표현을 한다면 아래 그림과 같..