C 프로그래밍 프로젝트 모음
초보자를 위한 다양한 프로그래밍 개념 학습 및 연습을 위한 C 프로그래밍 프로젝트 모음입니다. 각 프로젝트는 독립적으로 구성되어 있으며 자체 문서와 빌드 시스템을 포함하고 있습니다.
프로젝트 개요
1. SHA-512 구현
암호화 해시 함수 구현 예제:- 비트 조작
- 복잡한 알고리즘
- 메모리 관리
- 파일 I/O 작업
2. HTTP 서버
기본 HTTP 서버 구현 예제:- 소켓 프로그래밍
- HTTP 프로토콜 기초
- 파일 제공
- 네트워크 통신
3. UDP 서버-클라이언트
간단한 UDP 기반 통신 시스템 예제:- UDP 소켓 프로그래밍
- 클라이언트-서버 아키텍처
- 네트워크 프로토콜
- 메시지 교환
4. 포트 스캐너
네트워크 진단 도구 예제:- TCP 소켓 프로그래밍
- 네트워크 스캐닝 기법
- 오류 처리
- 커맨드라인 인자 파싱
5. Ping 구현
사용자 정의 ping 유틸리티 예제:- ICMP 프로토콜
- Raw 소켓 프로그래밍
- 네트워크 진단
- 시간 측정
6. 틱택토
고전 게임 구현 예제:- 멀티플레이어 게임 서버
- 게임 로직
- 사용자 입력 처리
7. 채팅 시스템
실시간 채팅 애플리케이션 예제:- TCP 소켓 프로그래밍
- 멀티스레딩
- 실시간 통신
- 클라이언트-서버 아키텍처
8. 어휘 분석기
간단한 컴파일러 프론트엔드 컴포넌트 예제:- 소스 코드 토큰화
- 파싱 기법
- 컴파일러 설계 원칙
- 문자열 조작
9. 산술 컴파일러
산술 표현식을 입력받아 어셈블리 유사 코드를 생성하는 간단한 컴파일러:- 어휘 분석(토큰화)
- 표현식 파싱 및 평가
- 어셈블리 코드 생성
- 컴파일러 구성 기본
10. Asteroid Game
사용자가 우주선을 조종하여 떨어지는 소행성을 피하는 터미널 기반 게임:- 게임 상태 관리
- 사용자 입력 처리
- 터미널 기반 그래픽
- 실시간 게임플레이 메커니즘
- 간단한 충돌 감지
시작하기
이 저장소의 각 프로젝트는 독립적으로 구성되어 있으며 다음을 포함합니다:
- 소스 코드
- Makefile 또는 CMake 구성
- 빌드 및 사용법이 포함된 README
- 구현 세부사항
- 프로젝트 디렉터리로 이동
- 해당 프로젝트의 README.md 읽기
- 빌드 지침 따르기
- 안내된 대로 프로그램 실행
사전 요구사항
- GCC 컴파일러(C 프로젝트용)
- G++ 컴파일러(C++ 프로젝트용)
- Make 유틸리티
- CMake (C/C++ 프로젝트용)
- C/C++ 프로그래밍에 대한 기본 이해
- 네트워크 프로젝트의 경우: 기본 네트워킹 개념의 이해
추천 도서
C 프로그래밍을 시작하려면 이 포괄적인 책을 추천합니다: The C Programming Language - C 프로그래밍의 기초와 모범 사례를 배우는 데 필수적인 자료입니다.
학습 경로
이 프로젝트들은 점진적으로 난이도가 높아지도록 배열되어 있습니다:
- 기본 프로그래밍 개념을 위해 틱택토부터 시작
- 알고리즘 구현을 위해 SHA-512로 이동
- 기본 네트워킹을 위해 UDP 서버-클라이언트 시도
- 보다 복잡한 네트워킹을 위해 HTTP 서버와 채팅 시스템 진행
- 마지막으로 고급 네트워킹 개념을 위해 포트 스캐너와 핑 탐색
기여 안내
다음과 같은 활동을 자유롭게 하세요:
- 버그 신고
- 개선 사항 제안
- 새로운 기능 추가
- 새로운 프로젝트 생성
- 문서 개선
라이선스
이 프로젝트는 오픈 소스이며 학습 목적으로 제공됩니다.
참고
일부 네트워크 관련 프로젝트(포트 스캐너, 핑)는 raw 소켓 사용으로 인해 루트/관리자 권한이 필요할 수 있습니다. 항상 이러한 도구를 책임감 있게 사용하고, 테스트 허가를 받은 네트워크에서만 사용하세요.
--- Tranlated By Open Ai Tx | Last indexed: 2025-07-22 ---
