SOLID한 코드를 작성하기 위한 다섯 가지 원칙
SOLID 원칙이란 ‘클린 코드’의 저자인 로버트 마틴이 명명한 객체 지향 프로그래밍의 다섯 가지 기본 원칙입니다. SOLID 디자인 원칙 SOLID는 각 기본 원칙의 앞글자 훨씬 단순하고, 이해하기 쉬우며, 유지보수에 용이하고, 확장성이 높은 코드를 작성하도록 도와줌 1. Single Responsibility Principle ...
SOLID 원칙이란 ‘클린 코드’의 저자인 로버트 마틴이 명명한 객체 지향 프로그래밍의 다섯 가지 기본 원칙입니다. SOLID 디자인 원칙 SOLID는 각 기본 원칙의 앞글자 훨씬 단순하고, 이해하기 쉬우며, 유지보수에 용이하고, 확장성이 높은 코드를 작성하도록 도와줌 1. Single Responsibility Principle ...
Timestamp를 Rolling Aggregation하는 방법은 생각보다 쉽습니다. 🌃 배경 데이터를 다루다보면 필연적으로 Group-by Operation을 자주 접하게 됩니다. 일반적인 Group-by Operation들은 단순합니다. 그룹마다 평균을 구한다거나 중앙값을 구하거나 최댓값, 최솟값을 구합니다. 하지만 타임스탬프가 존재하고 그...
ML 실험을 보다 빠르고 보기 좋게 관리해봅시다. 🏞 배경 ML은 기본적으로 많은 실험을 거쳐서 최적의 모델을 찾아 이를 배포하고 제품화합니다. 수많은 Feature, 알고리즘, Hyper-parameter의 구성을 다양하게 시도하여 모델을 튜닝하게 됩니다. 하지만 Feature가 많아지고 알고리즘이 복잡해질 수록 최적의 모델을 찾기란 쉽지 않...
Python으로 print()로 로깅하는 것보다 멋진 방법이 있습니다. 🧐 Logging? 파이썬 공식 문서에서 설명하는 로깅은 다음과 같습니다. 로깅은 어떤 소프트웨어가 실행될 때 발생하는 이벤트를 추적하는 수단입니다. 소프트웨어 개발자는 코드에 로깅 호출을 추가하여 특정 이벤트가 발생했음을 나타냅니다. 이벤트는 선택적으로 가변 데이터...
Ray를 이용한 Python 병렬 처리 방법을 알아보도록 하겠습니다. 😄 번거로운 멀티프로세싱 😫 우리는 제법 큰 데이터에 대한 작업을 자주 합니다. 그게 Cosine Similarity를 구하는 것이든, Correlation을 구하는 것이든 말이죠. 처음에 코드를 짜고 결과가 잘 나오기만 하면 우선은 다행입니다. 결과를 확인하여 문제가 없다면...