애증의 Python
어그로 ㅈㅅ 합니다.
이전에 파이썬으로 만들었던 에이전트 앱을 다시 고쳐야 돼서 머리가 아파 이 글을 씁니다. C#으로 포팅한게 있는데 이전 버전 레거시가 좀 있어서 고칠일이 있는데 새버전을 놔두고 레거시를 또 손대기가 싫네요.
파이썬이 처음에 PoC 할 때는 좋은데 조금만 깊이 들어가면 예를들면 인증이라던지 DB트랜잭션 처리 라던지
OOP라던지 OOP라던지 OOP라던지 들어가면 언어를 믿고 개발을 들어가주기가 힘든 순간이 옵니다.
GIL (Global Interpreter Lock) 때문에 연산시 스레드도 단일스레드구요. 멀티스레드 new Thread() 이런 구문 Java나 C#쓸 때는 크게 고민 안하거든요. 루프 안에 new들어가면 개수 제한 정도랄까요? 근데 파이썬으로 하면 이게 언제 뻗을지, 느려질지도 고민을 해야 해서 손이 멈추는데 형님들은 이런 경험 있으신가요?
장점은 문법이 좀 편해 보이고 대충 짜도 돌아간다는 것이 파이썬 장점 입니다.
하지만 이것이 앱이 복잡해지면 단점이 되죠. 타입을 강제하지 않는 것도 초기에는 장점이지만 후반에는 단점이구요.
그래서 파이썬으로 시작했던 유니콘들이 Java나 다른 언어로 전환들을 많이 했지요.
저도 한때는 파이썬이 쉽고 코드 진도가 잘 나가는 것 같아서 좋아했었는데요 데이터 하나 흘리면 안되거나 의존에 의존을 쓰도록 정교하게 들어가야 할 때는 파이썬을 선택한 것을 후회하게 되더라구요.