Arduino LCD와 LLM을 활용한 무조건 공감해주는 상담봇. Ollama를 통해 여러 LLM 모델을 테스트하고 최적 모델을 선정하여, 사용자 입력을 분석해 감정을 LCD에 표시하고 공감 메시지를 제공합니다. Few-shot learning, 대화 기록 관리, 파라미터 최적화를 통해 응답 품질을 개선했습니다.
TensorFlow/Keras를 사용하여 몸무게와 나이 데이터로 혈중지방을 예측하는 선형 회귀 모델 구현. Sequential API를 활용한 간단한 신경망 모델 훈련 및 3D 시각화
PIMA 인디언 당뇨병 데이터셋으로 Logistic Regression 모델 학습. 데이터 전처리, 상관관계 분석, 계수값 시각화를 통한 특성 중요도 분석.
와인 데이터셋으로 Logistic Regression과 Decision Tree 모델 학습. ROC AUC 곡선을 이용한 모델 성능 비교.
엔코더 Position 데이터로부터 속도 계산. 미분을 통한 각속도 계산과 Low-pass filter를 적용한 노이즈 제거 방법 설명.
레드와인과 화이트와인을 구별하고, 와인의 품질을 예측하는 머신러닝 프로젝트. MinMaxScaler와 StandardScaler가 결정나무 모델에 영향을 미치는지를 알아보기
타이타닉 데이터셋을 활용한 생존자 예측 머신러닝 프로젝트. 데이터 탐색적 분석(EDA)을 통해 성별, 객실 등급, 나이 등이 생존에 미치는 영향을 분석하고, 의사결정나무 분류기를 사용하여 생존 여부를 예측해보기. 이름에서 호칭을 추출하는 특성 공학 기법과 결측값 처리 방법을 배워보기
붓꽃 데이터셋을 활용한 KNN(K-Nearest Neighbors) 분류 모델 구현 및 성능 평가. 데이터 분할, 모델 학습, 정확도 측정, 혼동 행렬 및 분류 리포트를 통한 성능 분석을 수행하고, KNN 알고리즘의 특성과 한계를 학습합니다.
붓꽃 데이터셋을 활용한 Decision Tree 분류 모델 구현 및 결정 경계 시각화. 데이터 탐색, 모델 학습, 과적합 분석, 오분류 시각화를 포함한 머신러닝 파이프라인 실습
leaffliction은 ecole42의 컴퓨터 비전 프로젝트로, 딥러닝을 활용하여 사과와 포도의 잎 이미지에서 질병을 자동으로 분류하는 시스템. CNN(Convolutional Neural Network) 모델을 사용하여 다양한 잎 질병을 인식하고 분류하며, 데이터 증강, 이미지 전처리, 모델 학습 및 평가 파이프라인을 구현한다. PyTorch를 사용하여 CNN 모델을 학습하고 TensorBoard로 학습 과정을 시각화한다
multilayer-perceptron은 ecole42의 머신러닝 프로젝트로, 위스콘신 유방암 진단 데이터셋을 사용하여 암이 악성(malignant)인지 양성(benign)인지를 예측하기 위해 다층 퍼셉트론을 직접 구현하는 프로젝트. 순전파(feedforward), 역전파(backpropagation), 경사 하강법을 포함한 신경망의 핵심 알고리즘을 외부 라이브러리 없이 순수 Python으로 구현하며, ReLU, Sigmoid, Softmax 활성화 함수와 조기 종료 기능을 포함한다
dslr은 ecole42의 머신러닝 프로젝트로, 학생 데이터셋을 사용하여 해리포터 기숙사를 할당하는 AI를 만들어야 한다. 데이터 전처리, 히스토그램과 산점도를 통한 데이터 시각화, 특성 선택, 로지스틱 회귀 모델 직접 구현을 통해 분류 문제를 해결한다. Batch, Mini-Batch, Stochastic 세 가지 경사 하강법 알고리즘을 지원하며, 외부 머신러닝 라이브러리 없이 순수 Python으로 구현한다
ft_linear_regression은 ecole42의 머신러닝 프로젝트로, 경사 하강법(gradient descent)을 사용하여 선형 회귀 모델을 구현하고 자동차 가격을 예측하는 프로그램. JavaScript(Node.js)로 경사 하강법 알고리즘을 구현하고, React를 사용하여 학습 과정을 시각화한다. 주행거리(마일리지)와 가격 데이터를 학습하여 선형 함수를 도출하고, 학습률 조정을 통한 최적화 과정을 관찰할 수 있다
python-for-data-science는 ecole42의 Python 데이터 사이언스 학습 프로젝트로, 기본 Python 문법부터 NumPy, Pandas를 활용한 데이터 처리, 객체지향 프로그래밍까지 단계별로 학습한다. 4개 모듈을 통해 Python 기초, NumPy 배열 처리 및 이미지 처리, Pandas 데이터 분석 및 시각화, 객체지향 프로그래밍(추상 클래스, 다중 상속, 연산자 오버로딩), 함수형 프로그래밍(클로저, 데코레이터) 등을 실습한다
matrix는 ecole42의 선형대수학 프로젝트로, TypeScript로 구현된 선형대수학 라이브러리. 벡터와 행렬 연산을 지원하며 실수와 복소수 타입을 모두 지원한다. 벡터 연산(덧셈, 뺄셈, 내적, 노름), 행렬 연산(곱셈, 전치, 행렬식, 역행렬, 랭크), 유틸리티 함수(선형결합, 선형보간, 외적, 투영 행렬) 등을 구현하여 선형대수학의 핵심 개념과 수학적 알고리즘을 학습한다
ready-set-bool은 ecole42의 불 대수 학습 프로젝트로, TypeScript를 사용하여 불 대수와 비트 연산을 다루는 12개의 연습 문제를 구현한다. 비트 연산을 통한 덧셈/곱셈, 그레이 코드, 불 공식 평가, 진리표 출력, NNF/CNF 변환, SAT 문제, 멱집합, 집합 연산, 숫자 매핑 등을 통해 불 대수와 논리 회로의 핵심 개념을 학습한다
inception-of-things는 ecole42의 Kubernetes 학습 프로젝트로, k3s, k3d, ArgoCD를 활용하여 Kubernetes 클러스터 구축 및 애플리케이션 배포를 실습한다. 세 가지 주요 실습(P1: k3s 클러스터 구축, P2: Kubernetes Ingress를 활용한 멀티 애플리케이션 배포, P3: GitOps 기반 CI/CD 파이프라인)을 통해 Kubernetes의 핵심 개념과 실무 기술을 학습한다
cloud-1은 ecole42의 DevOps 프로젝트로, Ansible과 Docker를 사용하여 WordPress 웹사이트를 클라우드 서비스에 배포하는 프로젝트. MariaDB, WordPress 인스턴스 2개, Nginx 로드 밸런서, phpMyAdmin을 Docker 컨테이너로 구성하며, Ansible Playbook을 통해 자동화된 배포와 관리를 구현한다. Let's Encrypt를 통한 SSL 인증서 발급, 로드 밸런싱, 데이터베이스 관리 등을 통해 인프라 자동화와 클라우드 배포 기술을 학습한다
computorv1은 ecole42의 프로젝트로, 다항식 방정식 해결기를 구현한 프로그램. TypeScript로 작성되었으며, 최대 2차 방정식까지 해를 구할 수 있다. 방정식을 파싱하고 표준형으로 축약한 후 0차, 1차, 2차 방정식의 해를 계산하며, 복소수 해도 지원한다. 함수형 프로그래밍 패러다임을 활용하여 방정식 처리 로직을 구현하였다
ft_turing은 ecole42의 OCaml 프로젝트로, JSON 형식으로 정의된 튜링 머신을 읽어 실행하고 실행 과정을 단계별로 시각화하며 시간 복잡도를 분석하는 도구. OCaml의 함수형 프로그래밍 특성을 활용하여 튜링 머신의 상태 전이, 테이프 조작, 무한 루프 감지 등을 구현하며, 계산 이론과 알고리즘 복잡도 분석을 학습한다
ocaml-piscine은 ecole42의 OCaml 교육 과정으로, 9개 모듈을 통해 OCaml 언어의 기초부터 고급 개념까지 체계적으로 학습하는 프로젝트. 재귀, 고차 함수, 타입 시스템, 변형체, 모듈, 객체 지향 프로그래밍, 모노이드, 모나드 등 함수형 프로그래밍의 핵심 개념을 실습 문제를 통해 익힌다. 각 모듈은 독립적으로 빌드하고 실행할 수 있으며, Vagrant를 통한 개발 환경 설정을 제공한다
tokenizeArt는 ecole42의 프로젝트로, Solidity와 Hardhat을 사용하여 ERC721 NFT를 구현한 블록체인 프로젝트. OpenZeppelin의 검증된 컨트랙트를 활용하여 ERC721URIStorage와 Ownable을 확장한 Art42 스마트 컨트랙트를 개발하며, IPFS를 통한 탈중앙화 메타데이터 저장, 순차적 토큰 ID 관리, 소유자 전용 민팅 기능 등을 구현한다. 이더리움 네트워크의 NFT 생성을 통해 블록체인과 스마트 컨트랙트 개발을 학습한다
hypertube는 ecole42의 웹 프로젝트로, 토렌트 프로토콜을 사용하여 비디오를 다운로드하면서 동시에 스트리밍할 수 있는 웹 애플리케이션을 만들어야한다. 해당 프로젝트는 NestJS와 Nuxt 3를 사용한 풀스택 애플리케이션으로, OAuth2 인증(42, Google, GitHub), 토렌트 기반 스트리밍, TMDB/YTS API 통합, 자막 지원, 댓글 시스템 등을 구현하였다. Docker를 통한 컨테이너화와 Cron job 을 통한 자동화 기능을 포함한다
red_tetris는 ecole42의 프로젝트로, 풀스택 JavaScript로 구현된 멀티플레이어 테트리스 게임. 클라이언트는 함수형 프로그래밍 스타일(React), 서버는 객체지향 프로그래밍 스타일(Node.js, Express)로 구현해야하는 제한조건이 있다. Socket.IO를 활용한 실시간 멀티플레이어 게임, 페널티 시스템, 실시간 채팅, 방 시스템 등을 구현하며, 테스트 커버리지는 70% 이상을 달성해야한다
matcha는 ecole42의 웹 프로젝트로, Tinder 같은 데이팅 웹사이트를 만드는 것이 목표다. Nuxt.js와 Express.js를 사용하여 SSR 기반 풀스택 웹 애플리케이션을 구축하며, JWT 인증, 실시간 채팅(Socket.IO), 위치 기반 매칭, 지능형 추천 시스템 등 다양한 기능을 제공한다. ORM과 외부 validator 사용이 금지되어 있기에 순수 SQL 쿼리와 직접 구현한 검증 로직을 사용하여 데이터베이스와 백엔드 로직을 완전히 이해하여야 한다
darkly는 ecole42의 웹 보안 프로젝트로, 14개의 웹 보안 취약점 챌린지를 통해 웹사이트의 취약점을 발견하고 수정하는 방법을 학습한다. SQL Injection, XSS, Path Traversal, Brute Force 등 다양한 웹 보안 취약점을 실습하며, OWASP 가이드라인을 기반으로 웹 애플리케이션 보안 테스팅 기법을 익힌다. 이를 통해 웹 보안의 중요성과 프레임워크가 제공하는 보안 기능의 필요성을 이해한다
ft_transcendence는 ecole42의 마지막 공통 코어 프로젝트로, Ruby on Rails와 Backbone.js를 사용하여 실시간 온라인 Pong 게임 웹사이트를 구현한 프로젝트. WebSocket을 통한 실시간 멀티플레이어 게임, 채팅 시스템, 길드 전쟁, 토너먼트, 랭킹 시스템 등 다양한 기능을 제공하며, OAuth 인증과 2FA를 통한 보안 기능을 포함한다. 한 번도 사용해보지 않은 언어와 프레임워크로 새로운 것을 만드는 것이 이 프로젝트의 진짜 목적이다
C++을 사용하여 HTTP/1.1 표준을 준수하는 웹서버를 처음부터 구현한 프로젝트. select()를 활용한 멀티플렉싱으로 여러 클라이언트를 동시에 처리하며, Nginx 스타일의 설정 파일 파싱, 7가지 HTTP 메서드 지원, CGI 실행, 파일 업로드 등 웹서버의 핵심 기능을 구현한다. 이를 통해 소켓 프로그래밍, 네트워크 프로그래밍, HTTP 프로토콜, 서버 아키텍처 등 시스템 프로그래밍의 고급 개념을 학습한다
ft_services는 ecole42의 프로젝트로, Kubernetes를 사용하여 Nginx, MySQL, WordPress, phpMyAdmin, FTPS, InfluxDB, Grafana, Telegraf 등 8개의 서비스를 통합한 마이크로서비스 환경을 구축하는 프로젝트. Minikube를 활용한 로컬 Kubernetes 클러스터에서 모든 서비스를 Pod로 배포하며, PersistentVolume을 통한 데이터 영속성, Kustomize를 통한 리소스 관리, 모니터링 스택 구축 등 Kubernetes와 DevOps의 핵심 개념을 학습한다
ft_container는 ecole42의 프로젝트로, C++ 표준 템플릿 라이브러리(STL)의 컨테이너들을 ft 네임스페이스에서 재구현한 프로젝트. vector, list, map, set 등 9개의 컨테이너를 표준 라이브러리와 동일한 인터페이스로 구현하며, 메모리 관리, 반복자, 템플릿 프로그래밍, RAII 원칙 등 고급 C++ 개념을 학습한다
CPP Piscine은 ecole42의 C++ 교육 과정으로, C++ 프로그래밍의 기초부터 고급 개념까지 8개의 모듈을 통해 단계적으로 학습하는 프로젝트. 메모리 관리, 객체지향 프로그래밍, 템플릿, STL 등 C++의 핵심 개념을 실습을 통해 이해하고, 각 모듈별 exercise를 통해 실전 프로그래밍 능력을 향상시킨다
ft_server는 ecole42의 프로젝트로, Docker를 사용하여 Nginx, PHP, MariaDB, WordPress, phpMyAdmin을 포함한 완전한 웹 서버 환경을 구축하는 프로젝트. SSL 인증서를 통한 HTTPS 지원과 자동 디렉토리 리스팅 기능을 제공하며, 단일 Docker 컨테이너에서 모든 서비스를 통합 관리한다. 이를 통해 Docker 컨테이너화, 웹서버 설정, 데이터베이스 관리, SSL/TLS 인증서 등 DevOps의 핵심 개념을 학습한다
libasm은 ecole42의 프로젝트로, NASM 어셈블러를 사용하여 macOS 환경에서 동작하는 기본적인 문자열 및 파일 I/O 함수들을 어셈블리 언어로 구현한 라이브러리. x86-64 어셈블리 언어를 직접 작성하여 저수준 프로그래밍을 이해하고, 시스템 콜, 레지스터 관리, 메모리 조작 등 컴퓨터 아키텍처의 핵심 개념을 학습한다
cub3d는 ecole42의 프로젝트로, DDA(Digital Differential Analyzer) 알고리즘을 사용한 Raycasting 엔진으로 2D 맵을 3D로 렌더링하는 프로젝트. MLX 라이브러리를 활용하여 텍스처가 적용된 벽과 스프라이트를 렌더링하고, 플레이어가 1인칭 시점으로 맵을 탐험할 수 있는 게임 엔진을 구현한다. 이를 통해 그래픽 프로그래밍, 수학적 알고리즘, 게임 엔진 구조 등 컴퓨터 그래픽스의 핵심 개념을 학습한다
philosophers는 ecole42의 프로젝트로, 식사하는 철학자 문제를 세 가지 다른 동기화 메커니즘(mutex, semaphore, process)으로 해결하는 프로젝트. 동시성 프로그래밍에서 자원 공유와 데드락 방지를 다루는 고전적인 문제를 통해 스레드, 프로세스, 동기화 기법 등 시스템 프로그래밍의 핵심 개념을 학습한다
minishell은 ecole42의 프로젝트로, 명령어 실행, 파이핑, 리다이렉션, 환경 변수 관리, 시그널 처리 등 핵심 셸 기능을 제공하는 간소화된 셸 구현체. 셸이 저수준에서 어떻게 동작하는지 이해하기 위한 교육용 프로젝트로, 프로세스 관리, 파일 디스크립터 조작, 메모리 관리 등 시스템 프로그래밍 기술을 학습한다
ft_printf는 ecole42의 프로젝트로, C언어의 printf 함수를 직접 구현하는 프로젝트. 가변 인자를 처리하고 다양한 서식 지정자와 플래그를 지원하여 표준 printf와 동일한 기능을 제공한다. 이를 통해 서식 지정 문자열 파싱, 타입 변환, 메모리 관리 등 저수준 프로그래밍 기술을 학습한다.
get_next_line은 파일 디스크립터에서 한 줄씩 읽어오는 함수를 구현하는 프로젝트. 정적 변수를 활용하여 여러 파일을 동시에 처리할 수 있으며, 버퍼를 효율적으로 사용하여 파일을 읽는다
libft는 ecole42의 첫 번째 프로젝트로, C언어의 표준 라이브러리 함수들을 직접 구현해서 자신만의 라이브러리를 만드는 프로젝트. 이 프로젝트를 통해 기본 함수들의 동작 원리를 깊이 이해하고, 향후 프로젝트에서 활용할 수 있는 개인 라이브러리를 구축한다.