매번 사이트에서 도움만 받다가 저도 기여를 해보고 싶은 욕심이 생겨서 원래 동아리 내부에서만 사용할려고 작성한 프로그램이지만 UI조금 손보고 범용적으로 쓸 수 있도록 만들어서 공개합니다.

 

이름처럼 XE가 설치된 DB의 회원정보를 보기좋게 긁어서 엑셀로 만들어주는 프로그램입니다.

처음에는 회원정보를 관리하는 모듈같은걸 만들려고 했었는데, 높으신분들이 영 웹에서 작업하는걸 못마땅해 하셔서 "그럼 이걸 높으신분들에게 익숙한 엑셀파일로 넘겨드리면 어떨까?"하는 아이디어에서 나온 물건입니다.

 

DB 클라이언트로 접속해보시면 아시겠지만 XE의 멤버 테이블은 특히 확장변수 부분이 참 난감하게 저장이 되어있는데, 크롤러에 언시리얼라이저를 같이 포함시키면 편하겠다는 생각도 있었구요. ㅎㅎ

 

exe파일 다운로드

소스코드

 

 

---사용법 ---

 

1.jpg

처음 실행시킨 모습입니다.

기본적인 DB연결을 위한 정보를 입력하고, 연결을 테스트 합니다.

본인의 서버환경에서 SSH터널이 필요한지는 관리자에게 문의해보세요.

"DB연결 테스트"와 "SSH연결 테스트" 버튼을 이용해서 연결이 제대로 되는지 확인할 수 있습니다.

 

 

2.jpg3.jpg

주의하셔야 할점은 이곳의 DB 연결 테스트에서는 접두어가 올바른지 확인하지는 못합니다.

여기서 DB연결 테스트 결과가 성공이라도 접두어가 틀리면 크롤링이 안될 수 있습니다.

 

 

4.jpg5.jpg

기본변수는 XE에 기본적으로 존재하는 항목들을 의미하고

확장변수는 사용자가 추가한 항목들(extra_vars)을 의미합니다.

기본변수에서 확장변수를 체크하면 확장변수 탭이 활성화 되는데

여기서 출력하지 않을 확장변수를 필터링 할 수 있습니다.

출력할 확장변수의 이름이 아님에 주의하세요.

필터링은 한글이름과 영문이름 전부 사용가능합니다.

 

 

6.jpg7.jpg

내보내기 탭에서 파일이름을 결정하고 ".xlsx파일로 내보내기"버튼을 클릭하면 엑셀파일로 내보내집니다.

 

 

8.jpg

출력된 엑셀파일을 보면 기본변수 뿐 아니라 확장변수도 언시리얼라이즈되어 출력되고

워크시트에 그룹별로 정리되서 출력되는것을 볼 수 있습니다.

 

 

 

---기타 참고사항---

 

작성언어가 파이썬이다 보니 exe파일로 컴파일을 했는데도 조금 느린감이 있습니다.

특히 최초실행이 오래걸리는 편이니 참고하시기 바랍니다.

 

데이터베이스는 mysql기반의 DB에만 접속가능합니다.(위의 스샷 환경은 MariaDB입니다)

큐브리드쪽은 연구가 더 필요할것 같습니다. (무엇보다 제가 큐브리드가 깔린 테스트 서버가 없어서...)

 

DB상에서 모든 NULL은 빈문자열로 치환했습니다. 엑셀에 NULL문자 들어가면 뻥뻥 터지더라구요.

 

동아리 내부적으로 사용하는 CLI버전에는 이미 "날짜, 시간, 전화번호"를 정규표현식으로 예쁘게 만들어주는 기능과 주소(kr-zip)를 상세주소와 분리해주는 기능이 존재합니다.

인터페이스를 고려해서 공개용 GUI버전에도 추후에 추가하도록 하겠습니다.

 

xlsx외에 어떤 포맷을 추가할지는 좀더 고민해봐야할 문제인것 같습니다.

흔히 대안으로 알려진 csv포맷은 ","를 함부로 못쓰는데다가 유니코드와 만나면 아주 애로사항이 꽃을 피웁니다.

(지금 알아보고 있는 포맷은 docx, rtf, html 정도가 있네요.)

 

----------바이러스 오진에 대하여----------

 

https://stackoverflow.com/questions/43777106/program-made-with-pyinstaller-now-seen-as-a-trojan-horse-by-avg

https://stackoverflow.com/questions/36876676/pyinstaller-creates-trojan-virus-when-converting-files

https://groups.google.com/forum/?hl=en&fromgroups=#!topic/pyinstaller/Y-PsWjys6GA

https://github.com/pyinstaller/pyinstaller/issues/656

https://github.com/pyinstaller/pyinstaller/issues/603

https://github.com/pyinstaller/pyinstaller/issues/680

 

바이러스토탈 검사결과

 

웹하드나 브라우저 차원에서 Trojan.Generic으로 오진하는 경우가 종종있는데, 조사해보니 이건 특별히 프로그램에 문제가 있어서가 아니라 PyInstaller를 사용해서 컴파일한 실행파일에서 꽤나 흔하게 나타나는 오진증상이었습니다.(심지어는 버전에 따라서 Hello World만 컴파일해도 오진되는 경우도 있네요. hello.exe 오진)

 

아예 오진에서 비교적 자유로운 C++이나 .NET쪽 언어로 새로 짜는 방법도 있겠습니다만, 오진문제 피하자고 멀쩡한 프로그램을 다른언어로 갈아엎는것도 좀 웃기는 일이지요? ㅎㅎ;; 해서 일단은 원래의 실행파일을 다시 업로드 했습니다.
 

다만 그래도 찝찝하신 분들은 파이썬 소스코드를 직접 받아서 mainwindow.py를 실행해주세요.

이렇게 실행할 때에는 파이썬3가 미리 설치되있어야 합니다.

  • ?
    바이러스 감지되네요;
  • ? ?
    직접 컴파일한게 바이러스가 나올거라 생각도 못했었는데;;;ㅋㅋ
    일단 확인해보고 다시 올릴게요~
  • profile

    바..바이러스 ㅇㅋㅋ

  • profile

    Virustotal 스캔 결과

    exe 파일을 올리실 땐 virustotal 스캔 결과까지 같이 올리시는것을 권장드립니다.

  • profile ?
    요런게 있었네요!
    좋은정보 감사합니다!
  • ? ?
    이젠 다운로드 할수 없나요? 링크가 안열리던데...
  • ? ?
    http://file.xth.kr/s/0z6kyCMkPifSAfa

    오랜만에 들어왔는데 계정이 삭제되있네요;; 급하게 다시 회원가입했습니다. (꾸벅)