- 73개의 프로그래밍 프로젝트 아이디어를 통해 개발자들이 학습과 창의적 도전을 동시에 경험할 수 있도록 구성
- 각 프로젝트는 네트워킹, 시스템, AI, 그래픽스, 보안, 데이터베이스 등 다양한 영역을 포괄
- 대부분의 아이디어가 핵심 기술 원리를 직접 구현하도록 설계되어, 이론과 실무를 함께 익힐 수 있음
- 각 항목에는 관련 논문, 공식 문서, 튜토리얼 링크가 포함되어 있어 학습 경로를 명확히 제시
- 프로그래밍을 단순한 코딩이 아닌 탐구와 창조의 예술로 인식하게 하는 계기 제공
개요
- 많은 개발자들이 무엇을 만들지 모르는 상태에서 사이드 프로젝트를 시작하고 싶어함
- 이 글은 학습 가치가 높고 재미있는 73개의 프로젝트를 제시
- 각 프로젝트는 특정 기술 개념을 직접 구현하며 배울 수 있도록 구성
네트워킹 및 시스템 프로젝트
-
BitTorrent 클라이언트: P2P 네트워킹의 작동 원리를 배우기 위한 파일 다운로드 클라이언트 구현
-
DNS 서버: 쿼리 수신, 패킷 파싱, 도메인 해석, 캐싱 기능을 포함한 서버 구축
-
컨테이너 런타임: Docker 없이 커널 네임스페이스, chroot, 프로세스 격리를 학습
-
TCP/IP 스택: 리눅스 사용자 공간에서 TCP/IP 프로토콜을 직접 구현
-
로드 밸런서: 백엔드 서버 간 요청 분산, 상태 점검, 세션 유지 기능 구현
데이터 및 분산 시스템
-
RAFT 프로토콜: 분산 합의와 장애 복구를 지원하는 시스템 구현
-
Redis 클론: 기본 명령, RDB 지속성, 복제, 트랜잭션을 포함한 인메모리 데이터베이스 구축
-
Kafka 브로커: 토픽 생성, 메시지 생산·소비 요청을 처리하는 분산 로그 시스템 구현
-
SQL 엔진 및 옵티마이저: SQLite 구조를 모방해 쿼리 실행과 최적화 과정을 학습
-
CI 시스템: Git 저장소 감시, 테스트 실행, 결과 보고를 자동화하는 통합 시스템 구축
인공지능 및 알고리듬
-
Wordle 솔버: 정보이론과 엔트로피 개념을 활용한 단어 추론 프로그램
-
딥페이크 생성기: Optimal Transport를 이용해 얼굴 변환 구현
-
랜덤 포레스트: 의사결정나무와 랜덤 포레스트를 직접 구현해 분류 문제 해결
-
신경망 프레임워크: 텐서, 오토그래드, 옵티마이저를 포함한 딥러닝 프레임워크 구축
-
진화적 설계: 유전 알고리듬을 이용해 기계 구조를 자동 진화시키는 시뮬레이션
그래픽스 및 게임 개발
-
Ray Tracer: 구, 평면, 조명으로 구성된 3D 장면을 렌더링
-
OpenGL 렌더러: 그래픽스 프로그래밍의 기본기를 익히는 미니 렌더러 구현
-
Dangerous Dave 리메이크: SDL을 이용한 고전 게임 재현
-
체스 엔진: UCI 엔진을 포함한 체스 게임 구현
-
Procedural Crossword: 제약 전파를 이용한 자동 크로스워드 생성
보안 및 암호화
-
인증 서버 (JWT/Sessions) : 암호화, 토큰 만료, 세션 관리 구현
-
익명 투표 시스템: 제로지식증명(ZKP)을 이용한 암호화 투표 설계
-
VPN: 중앙 서버 없이 트래픽을 중계하는 메쉬 VPN 구축
-
멀웨어 실험: 가상머신 환경에서 방화벽 대응 테스트
-
Zip 아카이버: 압축, 암호화, 번들링 기능을 직접 구현
웹 및 애플리케이션 개발
-
웹 서버: HTTP 요청 처리, 정적 파일 제공, 라우팅, 리버스 프록시 지원
-
협업 편집기: CRDT 기반의 분산 텍스트 편집기 구현
-
브라우저 엔진: HTML/CSS 파싱과 렌더링을 수행하는 간단한 엔진 구축
-
비디오 에디터: 브라우저 내에서 실행되는 클라이언트 사이드 편집기
-
브라우저 확장 프로그램: 비밀번호, 폼, 클립보드 상태를 저장하고 자동 입력
데이터 시각화 및 검색
-
Googlebot: 웹 크롤러를 만들어 검색 시스템의 기본 구조 학습
-
Wikipedia 검색 엔진: 인덱싱, 토큰화, 랭킹 알고리듬 구현
-
지식 그래프: 엔티티 간 관계를 시각화하고 웹에서 자동 업데이트
-
Google Maps 엔진: 도로, 지형, 장소 데이터를 인덱싱하는 지도 시스템
-
CDN 캐싱 시스템: 정적 자산의 중복 요청을 방지하는 캐시 구조 설계
하드웨어 및 임베디드
-
레이저 태그 시스템: IR 인코딩과 MQTT 통신을 활용한 실시간 감지 시스템
-
스마트 홈 앱: IR 기기 제어, 스케줄링, 자동화를 지원하는 IoT 프로젝트
-
Game Boy Advance 에뮬레이터: CPU, 메모리, 그래픽, 입력 구조를 재현
블록체인 및 금융
-
비트코인 노드: 블록 다운로드 및 검증 기능 구현
-
주식 거래 봇: 이벤트 기반 시스템으로 자동 매매 수행
-
익명 투표 및 스마트 계약: 블록체인 기반의 신뢰성 있는 투표 시스템
마무리
- 73개의 프로젝트는 핵심 기술을 직접 구현하며 학습하는 실험적 접근을 강조
- 각 아이디어는 공식 문서, 논문, 튜토리얼 링크로 이어져 실습 중심 학습을 유도
- 프로그래밍을 탐구와 창조의 예술로 재발견하게 하는 실천적 제안