42cursus는 42네트워크에서 제공하는 교육 과정(cursus)에서 진행한 프로젝트들을 모아둔 저장소입니다. 이 저장소는 학습 과정에서 수행한 다양한 프로젝트와 코드들을 공유하며, 학습 과정에서 얻은 지식을 정리하는 공간입니다.
42cursus는 42경산의 커리큘럼에서 제공하는 프로젝트들로 구성되어 있으며, 주로 C 언어, 알고리즘, 시스템 프로그래밍, 네트워크, 보안, 그리고 DevOps 등의 주제를 다룹니다. 본 저장소에서는 해당 과정에서 수행한 프로젝트를 정리하고, 학습한 개념과 경험을 공유합니다.
- libft - C 표준 라이브러리의 함수들을 직접 구현하며 C언어의 기본을 다지는 첫 프로젝트
- ft_printf - printf 함수를 가변 인자를 다루는 방식으로 직접 구현
- get_next_line - 파일 디스크립터로부터 데이터를 읽어, 파일의 내용을 한 줄씩 반환하는 함수를 구현
- born2beroot - 가상 머신에 Debian 리눅스를 설치하고, 시스템 관리 및 네트워크 기초 설정을 진행하는 프로젝트. LVM, SSH, UFW 방화벽 설정 등 기본적인 서버 관리 기술을 익힌다.
- push_swap - 두 개의 스택(Stack A, Stack B)만을 사용하여 최소한의 명령어로 정렬하는 알고리즘을 구현
- pipex - 쉘(Shell)의 파이프(|)와 리다이렉션(<, >) 기능을 pipe()와 fork() 시스템 콜을 이용해 구현
- fdf - 3D 좌표가 담긴 맵 파일을 읽어 아이소메트릭(isometric) 투영 방식으로 와이어프레임(wireframe) 모델을 시각화하는 프로젝트. 그래픽 라이브러리(MinilibX)를 사용한다.
- minishell - bash와 유사한 간단한 쉘(Shell)을 구현한다.
- philosophers - Mutex, Semaphore를 이용한 철학자 문제 해결
- cub3D - 레이캐스팅(ray casting) 기법을 활용해 3D 1인칭 미로 게임 구현
- NetPractice - IP 주소, 서브넷 마스크, 라우팅 등 네트워크 기초 개념을 실제 환경처럼 설정하고 문제를 해결하는 프로젝트
- CPP_Module_00 - C++ 클래스, 멤버 함수, 멤버 변수 등의 기초 문법 학습
- CPP_Module_01 - 생성자, 소멸자, 참조, 포인터 등 객체 지향 프로그래밍의 기초 개념 학습
- CPP_Module_02 - 연산자 오버로딩, 정적 변수, 고정 배열 등의 개념 학습
- CPP_Module_03 - 상속, 다형성, 가상 함수의 기초 이해
- CPP_Module_04 - 추상 클래스, 인터페이스, 동적 메모리 관리 학습
- Inception - Docker Compose를 사용하여 Nginx, MariaDB, WordPress 등 여러 서비스를 컨테이너화하고 하나의 네트워크로 구성하는 DevOps 프로젝트
- WebServ - Nginx와 유사한 비동기 이벤트 기반의 HTTP 웹 서버를 C++로 직접 구현
- CPP_Modules_05 - 예외 처리(try, catch, throw)학습
- CPP_Modules_06 - 타입 캐스팅(static, dynamic, const, reinterpret_cast) 학습
- CPP_Modules_07 - 템플릿(Template)의 개념과 활용 학습
- CPP_Modules_08 - STL 컨테이너(vector, map, list 등)와 이터레이터 학습
- CPP_Modules_09 - STL 알고리즘과 추가 컨테이너 활용 학습
- ft_transcendence - 웹 프레임워크(NestJS, Django 등)를 사용하여 실시간 멀티플레이어 온라인 게임(퐁 게임) 웹사이트를 구축하는 종합 프로젝트
본 프로젝트는 학습 목적으로만 사용되며, 상업적 사용은 제한됩니다.
42경산의 커리큘럼을 통해 배운 내용을 정리하고 공유하는 목적의 저장소입니다. 많은 도움이 되기를 바랍니다! 🚀