반응형
2023. 11. 15. 개발일기
hwpx 모듈 개발에 착수한지 일주일쯤 되었는데,
예상하지 못한 몇 가지 문제를 우연히 발견하게 되었다.
Hwp라는 클래스를 만들면서, 생성자(__init__) 안에서
win32로 한/글 오토메이션 오브젝트를 생성하고
인스턴스가 실행하는 모든 메서드는 내부의 hwp 오브젝트와 연결되게끔 매핑을 해두었는데,
오토메이션 프로퍼티 중 HeadCtrl과 LastCtrl 두 개가 말썽이었다.
Hwp인스턴스.HeadCtrl이 클래스 내부에 생성되어 있는 hwp오브젝트.HeadCtrl과
같지 않다는 것을 발견했다.
새 문서를 Hwp로 열었는데, 표를 몇 개 추가한 후
여전히 인스턴스.LastCtrl이 "단 정의"라는 충격적인 결과를 보는 와중에도,
hwp.LastCtrl.Next.UserDesc가 "번호넣기"라는 말도 안 되는 리턴을 보는 와중에도,
내 클래스 정의가 잘못되었다는 생각을 추호도 하지 못하고
아래아한글 버그일 거라고만 한동안 믿고 있었다..ㅜ
짧은 고민 후에
HeadCtrl과 LastCtrl를 @property 메서드로 변경해버렸다.
당장 문제는 해결되었다.
10년 가까운 파이썬 개발경험 중에
property 데코레이터가 참 유용하다고 생각한,
최초의 순간이었다.
아직 발견하지 못한
잠재된 버그들이 무수히 많을 것이다.
아이고, 무슨 부귀영화를 누리자고 이 고생을 하고 있나?
나 혼자 쓸 때는 오토메이션API면 충분한데,
그나마 다른 사람들이 유용하게 써줄
초긍정의 미래를 상상하며, 스스로를 위로하며
꾸역꾸역 메서드를 매핑하고 있다.
마냥 즐겁지만은 않은 작업이다.
그냥 한다.
반응형
'아래아한글 자동화' 카테고리의 다른 글
기본메서드 매핑 완료 (0) | 2023.11.16 |
---|---|
아래아한글 업무자동화를 위한 파이썬 모듈, pyhwpx (0) | 2023.11.07 |
[오프라인 원데이클래스 공지] 동대구 신암동 파스쿠치에서 주말에 만나요^^ (0) | 2023.06.17 |
댓글