예전에 포스팅한 내용에 대한 부연 포스팅을 하려고 한다
zip 파일은 이전에 소개한 Java 버전의 Preprocess 프로그램의 수정 버전과 샘플 클래스이다
이전 포스팅에서 mcpp.exe 를 마지막으로 preprocess 조사를 마무리했었는데 결국 그마저도 실패하고 말았다
일부 소스코드를 변환하면 내용이 깨져버리는 버그가 발견되었던 것이다
하지만 정확한 원인은 찾을 수 없었고 예상되는 지점은 한글 부분이었던 것 같은데...
mcpp.exe 가 바이너리 인지라 내부를 까볼수도 없기에 그냥 그대로 포기하고 결국 Java 버전의 Preprocess를 수정하는 것으로 방향을 바꾸었다
원래 Java 버전의 Preprocess 는 define 명령시 앞단에 주석처리를 하게끔 되어 있었다
아마도 Java 클래스를 컴파일할때 define 명령에 의한 컴파일 오류가 발생하지 않게 하기 위함인 것 같은데,
하지만 define 명령을 사용하였다는 것은 클래스의 소스코드가 Preprocess 되기 전까지는 제대로 동작할 수 없음을 의미하기에 컴파일 오류 방지를 위한 주석처리는 필요가 없다고 생각되었다
그래서 원래의 프로그램을 조금(?) 수정하여 현재 업무에 사용중이다
아직까지는 큰 문제는 없어보이지만 언젠가는 예상치 못한 패턴에 의해 파싱 오류가 발생하지 않을까 생각된다
원 프로그램이 파싱에 대한 오류를 콘솔에 출력하게 되어 있어서 급한대로 살짝 피해갈 수 있으니 빌드나 배포시 적용해도 큰 무리가 없을 것 같다
참고로 GUI 를 통한 preprocess 테스트는 하지 않았다
메인 클래스인 JavaPC 를 사용하거나 Ant 를 통한 프로그램 실행은 현재 업무에 적용되어 있다
사용법은 매뉴얼 참조
'정보 > IT' 카테고리의 다른 글
VisualSVN 서버로 Subversion 서버 구동하기 (0) | 2013.04.09 |
---|---|
ActiveX 와 보안 (0) | 2012.07.14 |
[javascript/HexToDec]unsigned 와 음수 (0) | 2012.05.31 |
제7회 공감세미나 동영상 (0) | 2012.05.07 |
Script Bot (Bejeweled Blitz) (2) | 2012.05.02 |