본문 바로가기
카테고리 없음

광고 없는 캡처툴, 직접 만들어보는 여정

by 세상을읽는눈 2025. 3. 31.
반응형

 

Visual Studio로 C++ 시작하기

광고 없이 빠르고, 내가 자주 쓸 수 있는 진짜 실용적인 캡처툴.
단순한 기능 몇 가지지만, 이걸 만족시키는 프로그램은 생각보다 드물더라고요.

그래서 이번 시리즈에서는 **“직접 만드는 설치형 캡처 프로그램”**을 다뤄보려 합니다.
캡처 → 저장 → 편집 → 변환 → 배포까지 전 과정을 하나씩 기록해보는 실전 제작기예요.


이 시리즈, 이런 흐름으로 진행됩니다

  • 📌 0편: 왜 나는 캡처툴을 직접 만들기로 했는가
  • 🔧 1편: Visual Studio로 C++ 프로젝트 만들기 (← 지금 읽고 있는 글)
  • 🖼 2편: BitBlt로 화면 캡처 + WebP로 저장하기
  • 🧩 3편: 드래그 영역 선택 캡처 기능 구현하기
  • 🎨 4편: 캡처 이미지 미리보기 + 간단한 편집툴 만들기
  • 📂 5편: 여러 이미지 WebP 일괄 변환기 연결하기
  • 📦 6편: 설치형 프로그램으로 배포해보기

Electron, 처음엔 괜찮았지만…

사실 전에도 비슷한 걸 만들긴 했어요.
설치형 이미지 변환기 시리즈를 보면 알겠지만,
그땐 Electron + Sharp 조합으로 빠르게 UI를 만들고 공유했었죠

그게 제대로 안된건데도 불구하고 여기서 아무리 지피티라도 한계가 있음을 느꼈습니다

작동은 했지만, 화면 캡처까지 넣어보려 하니 한계가 분명했습니다.

실행은 느리고,
전체화면 캡처할 땐 버벅이고,
드래그 캡처 영역도 자연스럽게 만들기 어려웠어요.

결국엔 이런 결론이 나왔습니다.

“내가 정말 쓰고 싶은 도구는 따로 있구나.”


내가 원한 캡처툴, 사실 별거 없는데

제가 원한 기능은 생각보다 단순했어요.

  • 전체 화면과 드래그 영역 지정 캡처
  • WebP 형식으로 저장
  • 가볍고 빠른 설치형 구조

이런 기능은 사실 알캡처에서도 거의 다 지원됩니다.
사용하기도 쉽고, 기본 캡처 성능도 좋죠.

다만 몇 가지 아쉬운 점이 있었어요.

  • 광고가 뜬다는 것,
  • 여러 이미지를 동시에 WebP로 변환하는 기능이 없다는 것.

특히 블로그에 이미지를 자주 올리는 제 입장에선
일괄 변환 기능 부재가 꽤 불편했어요.

그래서 결심했죠.

"내가 진짜 자주 쓸 수 있는 툴은, 결국 내가 직접 만들어야겠다."


그래서 이번엔 C++로 갑니다!!

Electron은 빠르게 시작하긴 좋지만,
네이티브 성능이 필요한 작업엔 한계가 명확했어요.

그래서 이번엔 제대로 가보려 합니다.

  • 기술 스택: C++ + WinAPI + libwebp
  • 개발 환경: Visual Studio
  • 목표: 알캡처 클론을 만들고 → 내가 원하는 기능을 붙여나가기

처음 보는 분들에겐 좀 부담스럽게 느껴질 수도 있지만,
천천히 따라가면 누구든 가능합니다.


Visual Studio 설치부터 시작해보자

먼저 개발 환경을 세팅해볼게요.

설치 방법 요약

  1. Visual Studio 공식 사이트에서 설치 프로그램 다운로드
  2. 설치 시 “C++를 사용한 데스크톱 개발” 워크로드만 체크



  3. 설치가 완료되면, 새 프로젝트를 만들어주세요

한 번만 세팅해두면 이후엔 훨씬 수월합니다.


첫 프로젝트 실행 – Hello Capture

Visual Studio를 실행하고, 아래 단계를 따라보세요.

  • 새 프로젝트 → 빈 Win32 프로젝트 선택
  • 프로젝트 이름은 MyCaptureTool
  • main.cpp 파일을 생성한 뒤, 아래 코드 작성:
#include <windows.h>

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
                   LPSTR lpCmdLine, int nCmdShow) {
    MessageBox(NULL, L"Hello Capture!", L"MyCaptureTool", MB_OK);
    return 0;
}
  • Ctrl + F5를 눌러 실행 → 메시지 박스가 뜨면 성공입니다!

이제 이 창을 바탕으로 기능을 하나씩 붙여나갈 거예요.


앞으로 만들 기능 정리

지금은 단순한 메시지 박스 하나뿐이지만,
이 프로젝트는 앞으로 아래와 같은 기능으로 점점 확장될 예정이에요.

  • 화면 전체 캡처 / 드래그 영역 지정 캡처
  • 캡처 이미지를 WebP로 저장
  • 간단한 편집 및 미리보기 기능
  • 여러 이미지를 한 번에 WebP로 변환하는 기능
  • 설치형 프로그램으로 패키징해서 배포까지

여기서 중요한 건,
제가 직접 코드를 공부해서 만드는 게 아니라는 점이에요.

사실 저도 전문 개발자는 아니고,
이전 시리즈를 진행하면서 느꼈던 건 단 하나였어요.

 

“GPT와 함께라면, 누구나 도전할 수 있다.”


처음엔 "내가 이걸 할 수 있을까?"란 생각이 들었지만,
질문하고, 시도하고, 반복하는 과정 속에서
실제로 작동하는 도구가 하나씩 만들어졌습니다.

프로그래밍을 잘 모른다 해도 괜찮아요.
저도 그랬고, 지금도 GPT 없이는 진행이 어렵거든요.

하지만 확실한 건,
필요한 걸 만들고 싶은 ‘의지’만 있다면
GPT는 그걸 현실로 바꿔줄 아주 든든한 파트너라는 거예요.

그래서 이 시리즈는
GPT와 함께 만드는 도구,
그리고 도전하면 누구나 가능한 과정을 담으려 합니다.


기능 하나하나 구현해가면서
"진짜 내가 필요해서 만든 도구"가 되어가는 과정을 함께해보자구요.


마무리하며

처음엔 "그냥 캡처만 되면 되지" 싶었어요.
하지만 매일 쓰는 도구일수록,
내 입맛에 맞게 만들고 싶은 욕심이 생기더라고요.

이번 시리즈는 단순한 코드 튜토리얼이 아닙니다.
진짜 필요한 기능을, 실전으로 만들어가는 기록이에요.

블로그 운영자이든, 도구가 필요한 일반 사용자이든
이 과정을 함께 나누면 정말 재밌을 거예요.


다음 편 예고

BitBlt를 활용한 전체 화면 캡처 + WebP 저장 기능
드디어 본격적인 기능 구현에 들어갑니다!

 

반응형