exe, dll, sys 파일의
파일명 / 아키텍처 / 버전 / 사이즈 / 서명여부 / 해시값 / 경로를
추출하는 MFC 프로그램
0. 개요

업무를 보던 중 불편하여 직접 제작하게 된 프로그램이다. 특정 모듈들의 속성 정보 (예 : 아키텍처, 버전 정보, 해시) 들을 확인할 일이 잦은데, 필요할 때 마다 일일이 PowerShell 명령어로 확인하기 너무 귀찮아서 제작하게 되었다.
본 포스팅은 개발에 대해서는 잘 모르는 사람도 AI 를 잘 활용한다면 이러한 윈도우 MFC 프로그램이 나올 수 있다는 것에 대해 안내하고, 프로그램을 간단하게 소개하기 위해 작성되었다.
1. 요구사항
Gemini 를 통하여 MFC 프로그램을 제작하기 위한 요구사항은 아래와 같다.
| 기능 | |
| 기본정보 | N-1. 프로그램명은 다음과 같아야 함 - ArchitectureChecker |
| 디자인 | D-1. 프로그램은 직관적이며 초보자도 사용하기 편해야 함 D-2. 테마 기능을 지원해야 함 - Windows 기본값, 라이트 모드, 다크 모드 D-3. 프로그램 내 글꼴을 변경할 수 있어야 함 |
| 기본기능 | F-1. 파일 분석시 아래의 항목을 분석할 수 있어야 함 - 파일명 - 아키텍처 (x86 / x64 구분) - 버전 - 사이즈 - 서명 (O / X) - 해시값 (MD5, SHA-1, SHA-256, SHA-512) - 경로 F-2. 파일을 드래그 앤 드롭하여 프로그램에 첨부할 수 있어야 함 - 단일 파일, 다중 파일 F-3. 그리드에 첨부된 파일을 단일 선택하여 삭제할 수 있어야 함 F-4. 그리드에 첨부된 파일을 단일/다중 선택하여 필요한 값만 복사할 수 있어야 함 F-5. 그리드에 분석된 내용은 엑셀 (.csv) 로 내려받을 수 있어야 함 F-6. 그리드 컬럼 순서를 변경할 수 있어야 함 |
| 부가기능 | A-1. 프로그램 설정을 레지스트리에 저장하여, 프로그램 종료 후 재실행하여도 이전 설정값을 유지할 수 있어야 함 A-2. 프로그램 설정된 값을 .dat 파일로 내보내어 백업할 수 있어야 함 A-3. 백업된 .dat 파일을 불러와 복원할 수 있어야 함 |
| 업무연동 | C-1. 업무에서 사용하는 특정 기능의 옵션 값 형식대로 보여질 수 있도록 버튼 클릭 1회로 그리드 컬럼 표시 및 순서를 변경할 수 있어야 하며, 특정 기능의 옵션 값 형식대로 추출할 수 있는 버튼이 ON/OFF 되어야 함 C-2. 업무에서 사용하는 특정 기능의 옵션 값 형식대로 추출할 수 있어야 하며, 버튼을 누르자마자 즉시 메모장이 출력되어야 함 |
위 기능들을 정리하여 Gemini 에게 MFC 프로그램 제작을 요청하였다.
※ 참고) 필자는 Gemini PRO 버전을 사용중이며, PRO 버전으로 제작을 요청함.
※ 프롬포트를 계속 수정하며 요청하였기 때문에 정형화된 프롬프트는 존재하지 않음.
2. 프로그램 LOGO 제작
Gemini 가 MFC 코드를 제작하느라 바쁘기 때문에, 프로그램 LOGO 는 ChatGPT 에게 제작을 요청하였다. LOGO 제작에 요청한 프롬포트는 아래와 같다.
| 프롬포트 | |
| LOGO 디자인 제작 프롬포트 |
ArchitectureChecker MFC 프로그램을 제작하였는데 이 프로그램에 어울리는 MFC 프로그램용 아이콘이 필요. 파일 아이콘 위에 돋보기가 올라가 있는 형태로 아이콘을 만들고, 2026년 최신 디자인 트렌드 컨셉에 맞게 아이콘 디자인 제작. MFC 프로그램에서 요구하는 파일 아이콘 사이즈로 제작해야 하며 뒷배경은 투명해야 함. |

3. 제작된 프로그램 QA 테스트 결과

UI 및 기능이 전부 완성된 모습이다. 요구사항 별 기능을 모두 충족하는지 살펴보도록 하자.
3.1 기본정보 QA 테스트 결과
| QA Report | |
| CASE NO. | N-1 |
| 요구사항 | 프로그램명은 다음과 같아야 함 - ArchitectureChecker |
| 테스트 결과 | 충족 |
| 증적 자료 | |
![]() |
|
3.2 디자인 QA 테스트 결과
| QA Report | |
| CASE NO. | D-1 |
| 요구사항 | 프로그램은 직관적이며 초보자도 사용하기 편해야 함 |
| 테스트 결과 | 충족 |
| 증적 자료 | |
![]() |
|
| QA Report | |
| CASE NO. | D-2 |
| 요구사항 | 테마 기능을 지원해야 함 - Windows 기본값, 라이트 모드, 다크 모드 |
| 테스트 결과 | 충족 |
| 증적 자료 | |
![]() ▲ Windows 기본값 (다크) 에 따라 다크모드로 자동 변경된 모습 ![]() ▲ Windows 기본값 (라이트) 에 따라 라이트모드로 자동 변경된 모습 ![]() ▲ Windows 기본값 (라이트) 에 구애받지 않고 다크모드로 설정 가능한 모습 ![]() ▲ Windows 기본값 (다크) 에 구애받지 않고 라이트모드로 설정 가능한 모습 |
|
| QA Report | |
| CASE NO. | D-3 |
| 요구사항 | 프로그램 내 글꼴을 변경할 수 있어야 함 |
| 테스트 결과 | 충족 |
| 증적 자료 | |
![]() ▲ 폰트 변경 화면 ![]() ▲ 폰트 변경 후 |
|
3.3 기본기능 테스트 결과
| QA Report | |
| CASE NO. | F-1 |
| 요구사항 | 파일 분석시 아래의 항목을 분석할 수 있어야 함 - 파일명 - 아키텍처 (x86 / x64 구분) - 버전 - 사이즈 - 서명 (O / X) - 해시값 (MD5, SHA-1, SHA-256, SHA-512) - 경로 |
| 테스트 결과 | 충족 |
| 증적 자료 | |
![]() |
|
| QA Report | |
| CASE NO. | F-2 |
| 요구사항 | 파일을 드래그 앤 드롭하여 프로그램에 첨부할 수 있어야 함 - 단일 파일 - 다중 파일 |
| 테스트 결과 | 충족 |
| 증적 자료 | |
![]() ▲ [단계 1-1] 단일 파일 드래그 앤 드롭 ![]() ▲ [단계 1-2] 단일 파일 드래그 앤 드롭하여 첨부 성공 ![]() ▲ [단계 2-1] 다중 파일 드래그 앤 드롭 ![]() ▲ [단계 2-2] 다중 파일 드래그 앤 드롭하여 첨부 성공 |
|
| QA Report | |
| CASE NO. | F-3 |
| 요구사항 | 그리드에 첨부된 파일을 단일 선택하여 삭제할 수 있어야 함 |
| 테스트 결과 | 충족 |
| 증적 자료 | |
![]() ▲ [단계 1-1] 단일 파일 선택 후 우측 마우스 클릭 ![]() ▲ [단계 1-2] 단일 파일 삭제 성공 |
|
| QA Report | |
| CASE NO. | F-4 |
| 요구사항 | 그리드에 첨부된 파일을 단일/다중 선택하여 필요한 값만 복사할 수 있어야 함 |
| 테스트 결과 | 충족 |
| 증적 자료 | |
![]() ▲ [단계 1-1] 단일 파일 선택 후 '파일명' 컬럼에서 우측 마우스 클릭 ![]() ▲ [단계 1-2] 필요한 값만 복사된 것을 확인 ![]() ▲ [단계 2-1] 다중 파일 선택 후 '파일명' 컬럼에서 우측 마우스 클릭 ![]() ▲ [단계 2-2] 필요한 값만 복사된 것을 확인 ※ 타 컬럼 전부 테스트 완료하였으나 본 Report 에서는 생략하도록 함. |
|
| QA Report | |
| CASE NO. | F-5 |
| 요구사항 | 그리드에 분석된 내용은 엑셀 (.csv) 로 내려받을 수 있어야 함 |
| 테스트 결과 | 충족 |
| 증적 자료 | |
![]() ▲ [CSV 저장] 버튼 클릭 ![]() ▲ 저장 알림 메세지 확인 ![]() ▲ 지정한 경로에 엑셀 (.csv) 파일 저장 확인 ![]() ▲ 데이터 값이 깨짐없이 정상인 것을 확인 |
|
| QA Report | |
| CASE NO. | F-6 |
| 요구사항 | 그리드 컬럼 순서를 변경할 수 있어야 함 |
| 테스트 결과 | 충족 |
| 증적 자료 | |
![]() ▲ [단계 1-1] [사이즈] 컬럼을 [파일명] 좌측으로 마우스 드래그 앤 드롭 ![]() ▲ [단계 1-2] [사이즈] 컬럼이 이동된 것을 확인 ![]() ▲ [단계 2-1] 설정 → [서명] 컬럼을 [사이즈] 좌측으로 마우스 드래그 앤 드롭 이동 후 저장 ![]() ▲ [단계 2-2] [서명] 컬럼이 이동된 것을 확인 |
|
3.4 부가기능 테스트 결과
| QA Report | |
| CASE NO. | A-1 |
| 요구사항 | 프로그램 설정을 레지스트리에 저장하여, 프로그램 종료 후 재실행하여도 이전 설정값을 유지할 수 있어야 함 |
| 테스트 결과 | 충족 |
| 증적 자료 | |
![]() ▲ [HKEY_CURRENT_USER\Software\ArchitectureChecker] 경로에 저장되고 있는 것을 확인 ![]() ▲ 폰트 및 그리드 등 설정을 순정과 다르게 설정 후 프로그램 종료 ![]() ▲ 재실행 하여도 프로그램 종료 전 설정값이 유지되고 있는 것을 확인 |
|
| QA Report | |
| CASE NO. | A-2 |
| 요구사항 | 프로그램 설정된 값을 .dat 파일로 내보내어 백업할 수 있어야 함 |
| 테스트 결과 | 충족 |
| 증적 자료 | |
![]() ▲ 프로그램 설정 임의 변경 후 [설정] → [설정 내보내기] → [저장] ![]() ▲ .dat 파일 저장된 것을 확인 |
|
| QA Report | |
| CASE NO. | A-3 |
| 요구사항 | 백업된 .dat 파일을 불러와 복원할 수 있어야 함 |
| 테스트 결과 | 충족 |
| 증적 자료 | |
![]() ▲ 초기 실행하는 PC에서 .dat 설정을 가져오기 실행 ![]() ▲ 설정값이 불러와 진 것을 확인 |
|
3.5 업무연동 테스트 결과
| QA Report | |
| CASE NO. | C-1 |
| 요구사항 | 업무에서 사용하는 특정 기능의 옵션 값 형식대로 보여질 수 있도록 버튼 클릭 1회로 그리드 컬럼 표시 및 순서를 변경할 수 있어야 하며, 특정 기능의 옵션 값 형식대로 추출할 수 있는 버튼이 ON/OFF 되어야 함 |
| 테스트 결과 | 충족 |
| 증적 자료 | |
![]() ▲ [설정] → [**형식으로 변경] 버튼 클릭시 관련 설정으로 변경되었다는 alert 출력을 확인 ![]() ▲ 업무에서 요구하는 형식대로 표시되는 그리드가 변경됨 ▲ 업무에서 요구하는 형식대로 [** 형식 저장] 버튼이 생긴 것을 확인 |
|
| QA Report | |
| CASE NO. | C-2 |
| 요구사항 | 업무에서 사용하는 특정 기능의 옵션 값 형식대로 추출할 수 있어야 하며, 버튼을 누르자마자 즉시 메모장이 출력되어야 함 |
| 테스트 결과 | 충족 |
| 증적 자료 | |
![]() ▲ 파일 드래그 앤 드롭 실시 ![]() ▲ [**형식 저장] 버튼 클릭 시 메모장이 즉시 OPEN 되며 업무에서 요구하는 형식대로 추출이 가능한 것을 확인 |
|
4. 에필로그
요즘은 업무에서 AI 를 활용하는 곳이 많은 수준이 아니라 필수가 되어버렸다. 당연히 AI 는 자동적으로 정보를 학습하기 때문에 정보유출 발생 가능성이 있으므로 조심히 사용하는 것이 중요하다.
사실 요구사항에 거창하게 '업무연동' 이라고 적어두긴 했는데, 그냥 File, Size, Hash, Version 만 Data 단위를 제외하고 추출하면 되는 것이라 민감정보가 아니기 때문에 가능했었던 것 같다. 업무에 직접적인 연관이 있었다면 만들지 못했겠지만... ^^;;
나 또한 업무에 필요한 부가적인 질문 (예. Linux, Database, Win SVR, bat, sh, shell 등) 들만 AI를 활용하지 실질적으로 Data 분석이나 업무 연관도가 높은 프로그램은 AI 를 통해 제작하긴 어렵다.
MFC 프로그램은 비교적 간단한 편이긴 하지만, AI 를 통하여 개발에 손을 놓은지 꽤 오래된 나도 프로그램을 손쉽게 만들 수 있다는 것에 다시 한 번 놀랐다. 서버 엔지니어인 나로서 앞으로의 밥벌이를 걱정해야 할지도 모르겠다.
본 프로그램은 개인적으로 사용하기 위해 제작된 프로그램으로 배포는 어렵다. AI 를 통해 이런 프로그램들도 만들 수 있다는 것을 소개하고자, 그리고 QA 레포트를 진행하고자 포스팅을 올렸다. 참고하면 좋을 듯 하다.





































