• [파이썬 코딩의 기술] Collaboration - docstring, package, root exception, circular dependency

    Effective Python - Brett Slatkin을 읽으면서 공부 및 정리를 하며 글을 쓰고 있습니다. Item 49: 모든 함수, 클래스, 모듈에 Docstring 작성하기 Python이 다이나믹하기 때문에 documentation하는 것이 매우 중요하다. Python에서는 프로그램 소스 코드의 documentation을 프로그램 실행시키면서 접근할 수 있다는 것에서 다른 언어와 다르다. Python은 docstring이라는 것을 제공해서 __doc__로 접근할 수 있게...


  • [파이썬 코딩의 기술] Built-in 모듈 - datetime, algorithm, decimal

    Effective Python - Brett Slatkin을 읽으면서 공부 및 정리를 하며 글을 쓰고 있습니다. Item 45: 지역시간은 time 대신에 datetime으로 표현하기 Python은 time을 2가지 방법으로 나타낸다. 오래된 방법은 time built-in 모듈을 사용하는 것인데, 에러가 매우 많다… datetime은 새로운 방법으로 커뮤니티에서 만든 pytz패키지와 같이 사용하면 매우 유용하다. datetime예시를 살펴보기 전에 왜 time모듈은...


  • [파이썬 코딩의 기술] Built-in 모듈 - wraps, with, copyreg

    Effective Python - Brett Slatkin을 읽으면서 공부 및 정리를 하며 글을 쓰고 있습니다. Item 42: functools.wraps로 함수 decorator 정의하기 Python은 감싸고 있는 함수 이전 혹은 그 이후에 특정한 코드를 실행시킬 수 있는 decorator라는 특별한 문법을 가지고 있다. 이 문법으로 입력 argument나 리턴 값을 수정할 수 있다, 디버깅할 때 유용하게 사용될...


  • [파이썬 코딩의 기술] Concurrency and Parallelism(병행성과 병렬성) - lock, coroutines, concurrent.futures

    Effective Python - Brett Slatkin을 읽으면서 공부 및 정리를 하며 글을 쓰고 있습니다. Item 38: Thread에서 Lock을 사용해서 Data Races 막기 Item 37에서 GIL이 상호 배타적이라는 것을 봤다. 하지만, 모든 상황에서 lock처럼 작동하는 것이 아니다, multiple thread로 같은 object에 접근을 하면 interruption일 발생해 문제가 생길 수 있다. 여러 숫자들을 parallel로...


  • [파이썬 코딩의 기술] Concurrency and Parallelism(병행성과 병렬성) - subprocess, multithread

    Effective Python - Brett Slatkin을 읽으면서 공부 및 정리를 하며 글을 쓰고 있습니다. Concurrency와 parallelism의 차이가 무엇인지 살펴보려고 한다. 해당 내용은 stackoverflow-what-is-difference-between-concurrency-and-parallelism 에서 가지고 왔다. Concurrency는 2개 혹은 그 이상의 작업들이 시작, 실행, 끝나기까지 서로 겹치는 시간대에 이뤄질 수 있음을 의미한다. 꼭, 여러 작업이 동시에 시작하는 것을 의미한다. 예를 들어,...