[python] 블로그 자동 포스팅 프로그램 with 쿠팡 파트너스 - 마무리 GUI만들기 및 exe 파일로 만들기(QT designer)

    기존에 구상하였던 기능들은 완성이 되었다. 이제는 사용하기 편하도록 GUI환경을 구축하고 구축한 GUI와 코드를 연결하여 exe 파일로 만들고 다른 로컬 환경에서 잘 돌아가는 것 까지 완성하고 프로젝트를 마무리 하려고 한다.

     

    QT designer를 사용하면 드래그앤 드롭으로 간단하게 UI를 구성할 수 있고 함수를 UI컴포넌트들과 연결시켜 간단하게 GUI프로그램을 완성할 수 있다고 하여 처음으로 사용해보게 되었다.

    os.system("shutdown /s /t 0") 코드를 통해 프로그램 완료시에 종료하기가 체크되어있다면 컴퓨터를 자동으로 종료할 수 있는 기능도 유용할 것 같아 간단히 구현해보았다.

    GUI 구성은 간단하고 사용하기 쉽도록 정보들을 넣고 오른쪽에 텍스트브라우저에서 진행상황을 표시할 수 있도록 만들었다.

     

    def main(Coupang_id, Coupang_pw, Blog_id, Blog_pw, Blog_write_page, Search_word, Post_num, Api_key):
        window.log("프로그램 시작")
        driver = chrome_setting()
        info_setting(Coupang_id, Coupang_pw, Blog_id, Blog_pw, Blog_write_page, Search_word, Post_num, Api_key)
        login(driver)
        search(driver)
        links = get_link(driver, int(Post_num)) #가져올 상위 상품 개수
        img_srcs, best_reviews, titles = get_img_review_title(driver, links)
        save_xl(links, img_srcs, best_reviews, titles)
        make_content()
        write_blog(driver)
        window.log("프로그램 종료")
     
    프로그램의 전 과정을 main 함수로 묶어 글 생성 시작 버튼과 main함수를 연결했다.

     

    def log(self, message):
            """텍스트 브라우저에 로그 출력하는 함수"""
            self.textBrowser.append(message)
     
    그리고 log 함수를 만들어 진행과정에서 텍스트 브라우저에 진행상황을 남기도록 하였다.
     
     
     

    문제발생!

    프로그램이 동작하긴 했으나 GUI프로그램이 응답없음으로 표시되고 텍스트브라우저에 로그도 표시되지 않았다.
    문제 발생의 원인은 쓰레드에 있었다. 쓰레드를 따로 나누지 않아 멀티태스킹이 되지 않는 것이었다.
     
    def run_main(coupang_id, coupang_pw, blog_id, blog_pw, blog_write_page, search_word, post_num, api_key):
        thread = Thread(target=main, args=(coupang_id, coupang_pw, blog_id, blog_pw, blog_write_page, search_word, post_num, api_key))
        thread.start()
     
    앞서 모든 과정을 묶었던 main함수를 쓰레드안에 집어넣고 실행시키는 간단한 방법으로 문제를 해결하였고 멀티태스킹 백그라운드 실행도 문제 없이 되는 모습을 볼 수 있다.
     

     

    아이디 비밀번호 API키 등은 개인정보 보호를 위해 가렸다. "● ● ● ●" 처럼 보이지 않게 할 수도 있지만 개인 로컬에서 사용하는 것을 고려해 보이게 하는 것이 UX적으로 맞다고 판단했다.

    그렇게 GUI프로그램을  exe실행파일로 만들고 다른 컴퓨터에서도 잘 동작하는 것을 확인하였다! 그리고 이렇게 프로젝트를 마무리 하려고 한다.

     

    이번 프로젝트를 진행하며 파이썬이라는 언어와 RPA라는 분야에 큰 매력을 느끼게 된 것 같다. 지금까지 해온 웹 프로젝트들은 사용하는 유저도 없고 목적도 없이 그저 포트폴리오와 공부를 위해서만 했었다. 하지만 이번 프로젝트는 돈 한번 벌어보자! 라는 목적을 가지고 시작하니 프로젝트를 진행하는 열정과 재미가 이전과는 비교할 수 없었고 파이썬의 방대한 라이브러리를 활용하여 1~100까지 내가 구상한 것을 쓸만한 수준으로 만들어내다보니 자신감도 많이 생겼다. 이후에 생활 속에서 파이썬을 이용해 자잘한 자동화들을 많이 할 것 같다는 생각도 든다.

    지금은 취업을 앞두고있기 때문에 프로젝트를 이쯤에서 접어두고 다음 프로젝트로 넘어가겠지만 이후에 키워드 추출, 백링크 자동화등과 UX개선 (추출 모두 마치고 글 생성 모두 마치고 글을 몰아쓰는 방식은 유저 입장에서 답답하게 느껴지기도 하고 프로그램이 중간에 중단 되었을 때 이어서 실행하는 것도 더 어렵기에 상품 하나 추출 할 때마다 글 생성하고 글 쓰는 방식으로 변경하려고 한다.) 까지 해볼 계획이다. 이상!

    댓글