본문 바로가기

Python6

Python 개발하며 실수할 수 있는 것 몇가지 https://yozm.wishket.com/magazine/detail/1605/ 파이썬 초보자가 저지르는 10가지 실수 | 요즘IT 파이썬을 처음 배울 때, 우리는 자신도 모르게 몇 개의 나쁜 코딩 습관들을 갖게 됩니다. 처음에는 문제없이 작동했지만, 나중에 정상적으로 작동하지 않거나 뒤늦게 문제를 더 쉽게 해결할 수 yozm.wishket.com except: 전체를 예외처리하지 말고 지정해야합니다. mutable value를 디폴트 매개변수로 사용하지 않습니다. 수학계산에 numpy를 사용합니다. 세가지는 현재도 의식하지 않고 실수 할때가 있었는데, 특히 10가지 중에 numpy로 변환하거나 except 등은 현재 프로젝트에도 적용할 수 있는 부분일 것 같습니다. 그 중 numpy는 특히 고려하지.. 2022. 7. 27.
파이썬으로 클린 아키텍쳐 적용하기 https://velog.io/@jahoy/Python%EC%9C%BC%EB%A1%9C-Clean-Architecture-%EC%A0%81%EC%9A%A9%ED%95%98%EA%B8%B0 Python으로 클린 아키텍처 적용하기 Implementing the Clean Architecture in Python 을 읽고 정리한 글입니다. 저자가 실제 도메인 주도 설계(DDD), CQRS, Event Sourcing 등을 적용해보면서 겪은 경험을 풀어낸 책으로 실무에 적용 가능한 패턴을 소개 velog.io fastapi를 통한 구조 개선에 대해 찾던 중 layered architecture에 관한 얘기가 나왔고 적용을 위해 찾아보게 되었습니다. list 등 타입힌트가 최근 3.9부터 build-in 으로 권.. 2022. 7. 26.
python 리스트를 딕셔너리로 한줄에 바꾸는 방법. 기본적으로 여러 줄을 사용하면 많은 방법이 있지만, 자주 사용하는 방법인데 자꾸 까먹기도 하고 기본적인 사항이기 때문에 기록을 확실히 해두기로 결정했습니다. 기존에 hours = { "00":0, "01":0, ...... "23":0} 과 같은 선언이 있는데 black을 적용했을때 줄이 너무 길어지기도 하고, 이런 식으로 정형화 된 것이 아닌 변형이 있을때 한번에 적용할 수 있는 방식으로 적용하기 위해 hours = { str(i).zfill(2): 0 for i in range(24)} 와 같은 방식으로 구성했습니다. 단순히 key : value 와 for 문을 한줄로 쓰는 방식을 혼합한 것인데요, zerofill는 이름처럼 길이를 parameter에 해당하는 값에 0을 채워줘서 맞춰주는 함수입니다... 2021. 12. 28.
python 메모리 관리( 레퍼런스 카운트, 가비지 콜렉터) python의 메모리 관리에 궁금증이 생겨 어떤 방식으로 진행하는지 알아보았습니다. 기본적으로 레퍼런스 카운트를 통한 참조 객체의 개수 체크와 가비지 콜렉터의 종합을 통해 관리한다고 보았는데, 순환참조라는 문제점으로 인해 메모리 누수가 발생할 수 있고 이를 확인하기 위해 가비지 콜렉터를 사용한다고 합니다. 예를 들어, a = C() b = C() a.x = b b.x = a 인 상황에서 del(a) del(b) 를 하게 되면 a는 b가 삭제된 후에 삭제됩니다. (b 삭제이후 garbage collector가 호출될때) 가비지 콜렉터는 자바와 유사한 방식으로 구성되어 있는데 generation(세대)과 threshol (임계값)을 통해 가비지 콜렉션 주기와 객체를 관리합니다. 세대는 0,1,2로 구성되어 .. 2021. 6. 20.