[AI + MFC] ChatGPT로 오래된 MFC 코드 분석해보기
오래된 MFC 프로젝트를 유지보수하다 보면 예전에 작성한 코드에서 문제점을 발견하는 경우가 있다. 이번에는 ChatGPT를 이용해 메모리 관리와 예외처리가 부족한 MFC 코드 를 분석하고 개선해 보자. 1. 기존 MFC 코드의 문제점 파일을 읽어 메모리에 저장하는 간단한 예제다. CFile file(strPath, CFile::modeRead); UINT nSize = (UINT)file.GetLength(); BYTE* pBuffer = new BYTE[nSize]; UINT nRead = file.Read(pBuffer, nSize); if (nRead == 0) return; delete[] pBuffer; 코드가 간단하지만 문제가 있다. return 발생 시 메모리 누수 가능 파일 처리 중 예외 발생 가능 큰 파일의 크기 변환 문제 실제 읽은 크기에 대한 검증 부족 2. ChatGPT로 코드 분석하기 ChatGPT에 다음과 같이 요청했다는 가정으로 진행한다. MFC/C++ 코드를 분석해 줘. 조건: 1. 기존 구조 유지 2. 최소한의 코드 수정 3. 메모리 누수 방지 4. 예외처리 추가 5. 문제점과 수정 이유 설명 중요한 것은 기존 구조 유지와 최소 변경 조건을 명확하게 전달하는 것이다. 3. AI 분석을 반영한 개선 코드 메모리를 직접 관리하는 대신 std::vector 를 사용하고 예외처리를 추가했다. #include <vector> #include <new> void ReadFile(CString strPath) { try { CFile file( strPath, CFile::modeRead | CFile::shareDenyNone ); ULONGLONG nSize = file.GetLength(); if (nSize == 0 || nSize > 8ULL * 1024 * ...