C++ 스네이크 게임 만들기 - 1

AI에게 C++로 할 수 있는 간단한 프로젝트를 소개해 달라고 했는데 그중 재밌어 보이는 것이 있어서 포스팅하게 되었습니다. 터미널 환경(CLI)에서 키보드만 사용해서 할 수 있는 고전 게임 “스네이크"입니다. 구성 1 2 3 4 5 6 7 8 . ├── .git ├── src/ │ └── main.cpp ├── .gitattributes ├── .gitignore ├── CMakeLists.txt └── README.md 핵심 내용 터미널 특정 좌표에 출력할 수 있어야 함 뱀이 움직일 수 있는 프레임이 있고 그 밖을 벗어나면 종료 먹이를 먹으면 꼬리가 길어지고 뱀 몸통을 가로지를 수 없음 터미널 제어 라이브러리 ncurses 터미널에서 글자와 기호로 화면을 구성하는 프로그램을 만들 때 쓰는 라이브러리 커서 이동, 색상 표시, 키보드 입력 처리, 화면 갱신 같은 기능을 제공 여러 창·메뉴·입력 폼을 터미널 안에 만들 수 있음 텍스트 편집기나 설정 화면처럼 그래픽 없이 작동하는 TUI(텍스트 사용자 인터페이스)​를 구현할 때 유용함 C 프로그램에서 자주 사용하며, ncurses....

2026년 11월 07일 · 3 min · 613 words · JongBin

C++ 이미지를 문자로 표현해보기 img2ascii

오늘의 만들어볼 간단한 프로젝트는 바로 이미지를 아스키코드로 변환해 주는 img2ascii입니다. 🌳 구성 1 2 3 4 5 6 7 8 9 . ├── .git/ ├── .gitattributes ├── third_party/ │ └── stb/ │ └── stb_image.h ├── src/ │ └── main.cpp └── CMakeLists.txt 작은 프로젝트지만 git과 cmake를 활용했고 이미지 파일을 로드하기 위해 nothings/stb 라이브러리를 사용했습니다. 👍 🚀 핵심 내용 💡 Info 전체 코드는 이곳에서 보실 수 있습니다. 2차원(가로, 세로)으로 이루어진 사진은 컴퓨터에서 1차원 배열로 이루어져 있습니다....

2026년 11월 04일 · 3 min · 565 words · JongBin

C++ 소켓 크로스 플랫폼 개발 - 3

지난 글에서 운영체제별 비동기IO 처리 메커니즘에 대해 알아봤습니다. 이제 본격적으로 클라이언트 연결을 수립하고 통신을 하는 Server 객체를 만들어 보도록 하겠습니다. 😎 ⚠️ Warning 아래 코드는 오래된 코드일 수 있습니다. 이곳에서 최신 코드를 확인할 수 있습니다. 🌳 구조 1 2 3 4 5 6 7 8 9 10 11 12 13 14 . ├── include/ │ └── yami/ │ └── comm/ │ ├── server.hpp │ └── socket.hpp └── src/ └── comm/ ├── server....

2026년 11월 02일 · 9 min · 1823 words · JongBin

C++ 소켓 크로스 플랫폼 개발 - 2

지난 글에서 리눅스와 윈도우에서 동시에 같이 사용할 수 있는 소켓 클래스를 만들어 봤습니다. 이번 글에서는 소켓에 데이터가 들어오는 것을 감지하고 처리할 수 있는 EventLoop 객체를 만들어 보겠습니다. 👍 EventLoop 객체에 사용되는 비동기 IO 처리 역시 운영체제별로 다르므로 각 운영체제에 맞게 구현해야 하며 사용되는 메커니즘은 아래와 같습니다. 🤖 I/O 이벤트 처리 방식 구분 Linux Windows 모델 epoll IOCP 방식 I/O 준비가 되면 알림 비동기 작업이 완료되면 알림 의미 읽기/쓰기를 진행할 수 있음 제출한 읽기/쓰기 작업이 끝남 처리 직접 recv()/send() 등을 호출하여 처리 시작 완료된 결과를 확인한 후 후속 작업 처리 API epoll_create1(), epoll_ctl(), epoll_wait() CreateIoCompletionPort(), GetQueuedCompletionStatus() 간단하게 리눅스에서는 알림이 오면 소켓 버퍼에서 직접 데이터를 가져오면 되고 윈도우에서는 미리 “데이터를 이 버퍼에 받아주세요....

2026년 10월 30일 · 8 min · 1599 words · JongBin

C++ 소켓 크로스 플랫폼 개발 - 1

지난 글에서 크로스 플랫폼으로 빌드를 하려면 어떻게 해야 하는지 알아봤습니다. 이번 글에서는 리눅스와 윈도우에서 하나의 코드로 작동할 수 있는 소켓을 만들어 보도록 하겠습니다. 😄 🌳 구성 1 2 3 4 5 6 7 8 9 10 . ├── include/ │ └── yami/ │ └── comm/ │ └── socket.hpp # 헤더 (interface) └── src/ └── comm/ ├── socket.cpp # 리눅스, 윈도우 공통 구현 ├── socket_linux.cpp # 리눅스 구현부 └── socket_windows.cpp # 윈도우 구현부 ⚠️ Warning...

2026년 10월 28일 · 7 min · 1439 words · JongBin