누누히 말하지만, Python이 OOP 프로그래밍에 그다지 적합한 언어는 아니다. 덕분에, OOP 프로그래밍을 지원하기 위해 마련된 장치들이 충돌을 일으키는 경우가 종종 있다. 오늘 겪은 문제는 다중상속시 metaclass 충돌 문제다. 먼저 간단하게 말하면, Python이 다중상속을 지원하지만 metaclass를 다중상속 받을 수는 없다는 얘기다. 우회하는 방법이 있는걸로 보이지만, 굳이 이렇게 까지 해야 하나싶고. 문제의 근원인 인터페이스에 대해 먼저 말해보자….
[글쓴이:] batmask
Unity: C# 문법에서 익숙하지 않은 부분만 모아보기
C#을 한 번 훑어보면서 익숙하지 않거나 다른언어와 헷갈릴만한 부분만 추려봤다. 이런게 있다고 언급하는 선이기 때문에, 모든 정보를 얻으려 하지말고 관련 키워드를 이용해 검색해보기 바란다. foreach 대부분 다 C/C++하고 같은데, 다른 언어에서 익숙한 foreach문이 추가로 있다. 추가로 있다고 하기에 좀 민망하긴 한데, C++ 11에도 추가되어 지원하고 있는 문법이다. https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/foreach-in 참조. format string Kotlin, Python에서 자주쓰던 format…
Design Pattern: OOP Design에 대한 단상
C++을 처음 접할 때가 생각난다. 캡슐화, 상속, 다형성만 알면 OOP에 대해 될거 같았다. 아니었다. 이것들을 이용해서 어떻게 ‘잘’ 디자인할지를 훈련해야 했는데 못했다. 오랜기간 회사에서 개발자로 지냈지만, 그 때 못한 훈련이 계속 내 발목을 잡았고, 후회가 되었다. 그래서 뒤늦게 나마 디자인 패턴을 공부중이다. 나이를 먹어서인지, 경험적인 내용들은 머리에 들어오는데, 이론적인 얘기들은 휘리릭 빠져나간다. 그래서 경험적인 야매…
Python: sqlite3.connect()에 대해
Python을 쓰면서 가장 불만인점이 애매한 문서화 부분이다. Dynamic type언어다 보니, 리턴값이 무엇인지 알기가 힘들고, 예제들엔 실패시 리턴값이나 예외처리에 대해 언급이 없는경우를 자주 접한다. 학습하는 수준에서는 별 문제가 없는데, 실무 수준의 완성도에선 실패나 예외처리를 명확하게 하지 않는건 말이 안되거든. 고작 sqlite3에 connect() 하는 단계에서 여러가지를 겪어서 기록해본다. 일단, 제대로된 문서가 아니면 try-except를 쓰는 코드가 잘 안보인다….
Python: Enable unittest on VS Code
VS Code는 쓸수록 맘에 드는 코드 편집기다. 가볍고, 플러그인으로 확장성도 좋고, 문서화도 잘되어 있다. python 사용시, 기본적으로 unittest가 활성화 되어 있지 않은데, 공식문서를 참조 하여 설정하였다. Nose, 나 PyTest도 있는데, 나는 기본 unittest 모듈을 쓰므로 별다른 추가작업없이 설정변경으로 가능하다. Ctrl+Shift+P로 커맨드 팔레트를 띄우고 settings 실행 Python 확장이 설치되어 있다는 가정하에, Python.Testing 항목 검색 “Unittest enabled”…