한라대학교 공지 알림 봇 제작기 (10) - 진짜 제대로된 클래스화

'한라대학교 공지 알림 봇 제작기' 시리즈한라대학교 공지 알림 봇 제작기 (10) - 진짜 제대로된 클래스화

mildsalmon

흔치않고, 진귀하다.

Sign in to view email

Intro

내가 클래스화를 너무 단순하게 생각했다.
디테일한 구조화 없이 그냥 클래스를 만들고 거기에 기존 코드를 다 때려박았다.
가독성은 개판이 되고,
쓸모없는 부분이 너무 많아졌다.
그래서 그냥 이번에는 A4에 전체적인 흐름을 그림으로 그려서 다시 클래스화를 진행하고자 한다.
최대한 비슷한 기능끼리 모듈을 만들었다.
코드는 초반에 Doc을 추가해서 모듈에 대한 간략한 설명을 추가할 예정이다.

이전글은 너무 쪽팔려서 지웠다.

모델링

위 사진을 보기 쉽게 표시해보면 아래와 같다.

(D)notice_alarm
        |--- (D)data_file
                    |--- (F)~.txt
        |--- (D)module
                    |--- (F)dankook.py
                    |--- (F)halla.py
                    |--- (F)notice_alarm.py
        |--- (D)security
                    |--- (F)chat.txt
                    |--- (F)token.txt
                    |--- (F)security_da
        |--- (D)telegram_bot
                    |--- (F)telegram_bot_control.py
        |--- (F)main.py
        |--- (F)run.py
  1. 같은 기능을 하는 함수, 클래스끼리 모듈로 묶었다.
  2. 공통점이 있는 모듈은 디렉터리별로 분류했다.

완벽한 코드인지는 잘 모르겠다.
사실, 단국대 크롤링 부분은 좀 더 개선을 해야하는 부분이다.
좀 더 데이터를 잘 가공할 수 있을꺼 같은데 오늘 이 공지 알림 봇에
할당한 시간이 부족해서 완벽히 끝마치지는 못했다.
내일 혹은 빠른 시일내에 보완을 해야겠다.

코드

코드가 꽤 길다?
솔직히 긴건 아니다.
길진 않지만, 모듈별로 나눠져 있어서 이 글에 붙여넣기 해봐야 가독성이 많이 떨어진다.심미성도...
그래서 그냥 github 주소를 게시하겠다.
관심이 있는 사람은 깃헙으로 이동해서 fork를 해서 마음대로 코드를 활용해보자.
Notice_Alarm/Test

그리고 이 변경된 코드는 일주일정도 테스트 서버에서 돌려보고 기존 서비스 코드와 변경할 예정이다.
현재 발견되지 않은 버그가 있을지도 모르고,
코드 변경이 급한 것도 아니기에.

마치며

주석을 달고 싶었지만.
나 혼자만 활용하는 코드여서 달지 않고 코딩했다.
다음 시간에 주석도 달고 _doc_도 달아야겠다.

토이 프로젝트로 만든 프로그램이다.
근데 해보고 싶은게 너무 많아서 조금 거대(?)해졌다

코드가 더러워서 클래스화를 진행했다.
클래스화를 진행하다보니 파일들이 모듈별로 나눠지게 되었다.
전국에 있는 모든 학교를 추가해도 부담이 없어졌다. (학교별로 모듈을 나눴기 때문에)

마지막으로 이 블로그의 주인장 Baealex님께 감사하다고 전하고 싶다.
이름 짓기로 고민할때 코딩 스타일도 봐주면서 많이 도움을 주셨다.
클래스화를 하면서 고통받았던게 변수 이름짓기였다.
변수 이름을 어떤걸로 지을까?가 아니라.
변수 이름을 어떤 방식으로 지어야 하는가?였다.
파이썬은 PEP8 스타일 가이드가 있다.
꼭 따를 필요는 없다고 생각할지 몰라도,
저 규칙대로 작성하니까 가독성이 많이 올라가고,
코딩할때도 편한 느낌이다.
그리고 가독성.
가독성을 높이기 위해서 시작한 클래스화는 아니지만.
하다보니 가독성을 놓치고 싶지 않았다.
이 코드들은 나중에 내가 재사용할꺼니까.
물론 이렇게 한번 진행하니까 팀프로젝트에서도 가독성을 많이 신경써야겠다고 생각했고, 다짐했다.

절대 시켜서 전국 대학교를 추가하려는게 아니다;

그리고 응용하면 대학교 뿐만 아니라 게시판이 있는 모든 홈페이지는 앵간해선 다 추가할 수 있다.

코드를 확인하고 좀 더 고쳐야한다면 마음껏 욕해도 된다.

그럼 끊임없이 쏟아내던 이 시리즈는 이제 그만 마쳐야겠다.
긴 시리즈 읽으시느라 고생하셨습니다.

다음에 해보고 싶은 프로젝트는
1.전국 대학교를 차근 차근 추가하면서 데이터 분석을 해보는 것과
2.텔레그램 봇을 만들어서 원하는 대학교로 채널링크를 알려주는 진짜 봇을 만들어볼 예정이다.

작성된 댓글이 없습니다!
로그인된 사용자만 댓글을 작성할 수 있습니다.