데이터를 받아서 화면에 뿌려주는 놈을 만들고 있음.

데이터를 받는 소스가 여러 곳이라서

한 소스에서 데이터를 받는 동안 ui가 얼어버리면 안됨

그래서 스레드 열어서 동시처리하려고 했는데

내가 gui라고 할만한 걸 해본건 html+JS밖에 없어서

걍 당연히 이벤트 열고 콜백 바인딩해서 처리하면 될거라 생각했음

근데 아무리 해도 tkinter 이벤트 객체에 데이터를 담아 넘길 방법이 없음

그래서 핸들러 함수에 바깥 스코프 변수 캡처하게 하고 그 상태로 바인딩해서 썼음

알다시피 스코프 넘나들어서 변수 가져다 쓰는 건 부입력-부작용이라고 전나게 유명한 안티패턴임..

일단 그렇게 코드 개판인 상태로 마무리 하고 나니까 내가봐도 코드가 너무 더러운거임

처음에는 tkinter이 똥이라고 욕했다 병신들이 지랄해놓은 건 쓰는 게 아닌데 이러면서

며칠 있다가 오늘 좀 찾아봤는데 그 설계는 '의도된 것'이라고 함

tkinter로 동시성 처리할땐 무조건 메시지 큐를 사용해야 된다고 함.

파이썬 왈, 이벤트 콜백 바인딩? 조까라 이거야..

지금 좆됬음

코드 다 꼬이고 이미 콜백 다 갖다 박았는데

이거 다 풀고 메시지큐로 싹 갈아야 할 판


결론: 잘 모르면 들어내기 쉽게 코딩하자