Deprecated/42

MiniShell(42 미니쉘)을 정리하는 이유

susong 2022. 11. 7. 19:56
728x90

42서울의 첫 고비 MiniShell

더 이상은 정리를 하지 않고 넘어갈 수 없다.

 

이전까지 진행한 Libft ~ Pipex까지 간단한 운영체제 혹은 컴퓨터의 개념들을 이용하여 하는 과제들이었다.

 

기존 과제들

구분 과제명 알아야되는 개념
0서클 Libft(Library Function) - 기본적인 C 언어 그 이상 할줄 아는가?
1서클 ft_printf - stdarg를 비롯한 파라미터들의 의미를 이해하는가?
- 해당 개념들을 코드단에서 다룰 수 있는가?
1서클 Get_next_line - static 변수의 의미를 알고 다룰줄 아는가?
- 메모리 관리라는 것에대해 고민해보았는가?(동적, 정적)
1서클 Born2beRoot - 가상머신에 대해 기본적으로 알고 다룰 수 있는가?
- 교육생은 리눅스와 얼마나 친하고 또 조작할 수 있는가?
2서클 push_swap - 기본적인 알고리즘 지식들을 아는가?
   (Greedy 개념,  Quick과 같은 정렬 알고리즘 일체)
- 해당 개념들을 코드에서 구현해낼 수 있는가?
- BigO 개념을 알고 이를 바탕으로 코드의 코스트를 예상할 수 있는가?
- 최적화 할줄 아는가?
2서클 so_long - 그래픽이 어떻게 작동하는지 알고 있는가?
- 유저 라이브러리를 설치 그리고 배울 능력이 있는가?
- 실제로 일상에서 쓸법한 프로그램도 이런식으로 만든다는 것을 알아라
2서클 pipex - 프로세스 개념을 정확하게 알고있는가?
- PIPE등 프로세스 간 소통 방식에 대해 이해하는가?
- 당신은 Shell 을 만들 준비가 되었는가?

 

이전 까지 과제에서 요구하는 것들은 간단했고, 그렇기 때문에 따로 정리해서 올릴 만큼의 자료가 나오지 않았다.

 

과제를 진행함에 있어서 어려움이 없던 것은 아니지만 충분히 할만한 과정들이었고,

정교하게 제작된 코스는 하나를 밟으면 다음 것을 충분히 밟을 수 있도록 구성되어있었다.

 

하지만, 이제는 조금 다르다.

 

42 교육과정의 첫번째 고비 MiniShell은 이제 그렇게 간단하게 넘어갈 수 없다.

 

이번에 허용된 함수들만 무려 50개,

필요한 개념 또한 간단하게 살펴봐도 한두 개가 아니다.

쉘을 만들기 위해서는 PIPE는 기본이오 거기에 멀티 프로세스 개념들을 알아야 한다.

 

당연히 SIGNAL과 같은 개념들은 말할 것도 없고, 수많은 에러 처리와 파싱 능력 또한 구비되어야 한다.

 

그렇기 때문에 이제는 더 이상 얼렁뚱땅 넘어갈 수 없다.

 

팀원과 함께 이 고비를 Divide & Conquer 하기 위해 이번에는 하나하나 처음부터 쪼개서 들어가려고 한다.

 

일단 가장 먼저 허용 함수들을 어떻게 쓰는지부터 알아보자

 

다음 글에서 계속

728x90

'Deprecated > 42' 카테고리의 다른 글

MiniShell 기본함수 정리(readline.h)  (0) 2022.11.08