hyo-choi / life-is-42

42 교육과정에서 학습한 내용을 소개합니다.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

🌠 Life is 42

🗒️ 42 소개

42 Seoul의 교육시스템은 가르치는 교수도, 정해진 교재도, 비싼 학비도 없습니다. 심지어 학위도 없습니다.

우리는 누군가를 가르치지 않습니다. 정해진 길을 따라가기보다는, 스스로 길을 찾고, 그 과정에서 동료와 협업하고 외부와 소통할 수 있는 사람. 이러한 경험을 통해서 지속해서 성장할 수 있는 바로 당신과 같은 사람을 위한 기회와 환경을 제공합니다. 42 Seoul은 배우는 법을 배웁니다.
42 Seoul 교육 안내

  • 전세계의 42 소속 기관에서 동일한 La Piscine 과정을 거쳐 본과정에 입과하며, 동일한 교육과정을 통해 학습합니다.
  • 교수도 교재도 없는 시스템에서 프로젝트 기반으로 학습을 진행합니다. 매 단계마다 주어지는 과제를 해결하기 위해 자기주도적으로 학습하고 더 깊게, 더 넓게 배우기 위해 동료들과 적극적으로 소통합니다. 과제를 완료하면 동료들에게 코드와 동작을 설명하며 평가받습니다.
  • 과제 통과에 실패하더라도 교육 기간 내에서라면 얼마든지 다시 도전할 수 있습니다. 다양한 시행착오를 겪으며 실패를 통해 배우고, 두려워하지 않고 끊임없이 도전하여 성공의 발판으로 삼습니다.

🤖 과제 소개

  • 과제 소개는 학습하는 입장에서 느낀 점을 주관적으로 작성한 것이므로 사람에 따라 견해가 다를 수 있습니다.
  • 점수나 만점이 100점을 초과한 경우 추가 구현을 통해 보너스 점수를 얻을 수 있는 과제입니다.
  • 후술한 내용은 과제가 개정됨에 따라 현재 교육과정과 차이가 있을 수 있습니다.
TITLE DESCRIPTION SCORE CATEGORIES
La Piscine
Team(4회)
42서울에 입학하기 위한 1개월간의 집중 교육과정입니다. 42 시스템을 직접 겪으며 자신이 학습에 얼마나 몰두할 수 있는지, 어떻게 동료들과 어울리는지, 시스템에 잘 어우러질 수 있는지 판단합니다. 통과 (level 11.27) C, Shell programming, UNIX
Libft C언어로 각종 라이브러리 함수들을 구현합니다. 이 과제에서 구현한 함수들은 추후 과제들에서 필요에 따라 사용합니다. (42 과정에서는 일부 허용된 함수와 라이브러리 외에는 사용할 수 없기 때문에 필요한 대부분의 기능을 직접 구현하여 사용합니다.) 115/115 C
get_next_line C언어로 getline과 유사한 함수를 구현합니다. file descriptor 처리, static 변수 등에 대해 공부하고 함수가 사용되는 맥락을 잘 고려하며 프로그램을 작성하게 됩니다. 115/115 C
ft_printf C언어로 printf 함수를 직접 구현합니다. 여러 가지 flag가 복합적으로 사용되며 발생하는 다양한 코너 케이스들을 고려하면서 복잡한 프로그램을 깔끔하게 작성하는 방법을 공부합니다. 109/115 C
netwhat OSI 7계층, TCP/IP, UDP 등의 네트워크 이론을 학습합니다. 제한시간 내에 제시되는 문제들을 풀어 만점인 경우에만 통과합니다. 100/100 Network
cub3D C언어로 DOOM-like 게임을 구현합니다. 주어진 그래픽 라이브러리와 레이캐스팅 방식을 활용해 픽셀 단위로 화면을 조작합니다. 프로그램 실행 시 제시되는 맵 파일으로 게임을 동적으로 구성하기 위해 파일 입출력 처리 및 유효성 검사를 할 수 있게 됩니다. 115/115 C, Graphics, File I/O
ft_server Docker를 이용해 서비스 환경을 구축합니다. 하나의 컨테이너에 서버, DB, 블로그 환경을 구성하여 항상 같은 환경에서 서비스가 실행될 수 있도록 하면서 가상화 기술에 대해 이해하고 Docker 사용 능력을 갖춥니다. 100/100 Docker, Virtualization
libasm 64비트 어셈블리어를 사용해 C언어의 read/write 함수, 몇 가지 string 라이브러리를 직접 구현합니다. low level에서 컴퓨터가 어떻게 동작하는지와 시스템 콜에 대해 이해합니다. 118/125 Assembly
minishell
Team
C언어로 bash를 구현합니다. pipe, redirection 등을 직접 구현하며 shell의 동작과 내부 구현 방식을 이해합니다. 복잡한 문자열을 파싱하고 처리하며 보다 다양한 코너 케이스를 고려한 일관적인 프로그램을 작성할 수 있게 됩니다. 104/115 C, Shell programming, File I/O
ft_services Kubernetes와 Docker를 이용해 서비스 환경을 구축합니다. 다양한 서비스 환경의 이미지를 작성하고 볼륨 관리, 무중단 배포 등을 통해 컨테이너 오케스트레이션을 이해하고 k8s 사용 능력을 갖춥니다. 100/100 k8s, Docker, Virtualization
Philosophers C언어로 식사하는 철학자 문제 상황을 직접 만들고 교착 상태를 해결합니다. mutex, semaphore 등을 사용하며 multi thread/process 상황에서 자원을 안전하게 관리하는 방법을 학습합니다. 100/100 C, multi thread/process
CPP Modules C++을 배우기 위한 과제 묶음입니다. 총 9개의 과제로 구성되어 있습니다. C언어와의 차이, OOP의 개념과 활용(클래스, 상속 등), 다양한 라이브러리, 템플릿 등을 학습합니다. 100/100 C++, OOP
ft_containers C++의 STL 라이브러리를 구현합니다. 템플릿을 이용해 Vector, List, Queue, Stack, Map, Set 등을 직접 구현하며 자료구조 및 성능 최적화에 대한 이해를 높이고 C++의 템플릿을 활용하는 능력을 기릅니다. 103/115 C++, Data structure
webserv
Team
C++으로 HTTP 1.1 표준을 준수하는 멀티플렉싱 웹서버를 구현합니다. RFC 문서를 참고하며 HTTP 프로토콜과 통신 방식, 서버에서 응답이 어떻게 처리되는지 등을 이해합니다. 100/100 C++, Network, HTTP, File I/O
ft_transcendence
Team
첫 웹 프로젝트이자 공통과정의 마지막 과제입니다. 제시된 기술 스택을 활용해 Pong 게임, 채팅(채널/DM), 친구 관리, 유저 차단 기능을 사용할 수 있는 풀스택 웹 어플리케이션을 개발합니다.
앞서 학습한 유효성 검사, 코너 케이스 처리, 성능 최적화, 가상화 기술, 자료구조, HTTP 통신 등의 이해도를 복합적으로 활용하며 공통과정 학습 내용을 총망라하고 새로운 분야로 나아갈 준비를 마칩니다.
100/100 Web, Typescript, React, NestJS, WebSocket, Docker

About

42 교육과정에서 학습한 내용을 소개합니다.