좋은 에러메세지 작성 방법
2023. 1. 25. 23:52
Programming
이 글은 구글에서 작성된 Writing Helpful Error Messages 을 정리한 내용입니다. 에러 메세지는 왜 중요한가? 여러 상황에서 오류 메세지는 사용자의 잘못된 입력 또는 의도하지 않은 활용에 대한 경고와 예외처리 또는 제품의 결함 등으로 발생하기 때문에 사용자가 직접 해결할 수 있도록 돕는 역할을 한다. 때문에 에러 메세지는 예상하지 못한 작동 상황에서 사용자로 하여금 문제를 해결할 수 있는 가장 첫번째 이정표이자 개발자와의 상호작용 역할을 수행한다고 볼 수 있다. 좋은 오류메세지는 다음과 같은 특징을 갖는다. 긍정적인 사용자 경험 제공 쉽게 접근하여 실제로 실행 가능하다 문제 해결을 위한 지원 작업을 줄이고 사용자가 직접 해결할 수 있도록 함 공통 오류 처리 규칙 실패 상황을 넘어가선..
Airflow 사용 시 AssertionError: daemonic processes are not allowed to have children 의 해결
2022. 10. 10. 23:37
Data/Data Engineering
현상 파악 Airflow 2.0 버전 대에서 concurrent.futures.ProcessPoolExecutor 사용 시 AssertionError: daemonic processes are not allowed to have children 에러를 경험하였다. (local , celery, kubernates 모두 같은 현상을 재현할 수 있었음 ) 리서치 결과 정확히는 multiprocessing 패키지에서 발생하는 문제라는 것을 알 수 있었다. concurrent.futures python 작업 시 multiprocessing이나 multithread 작업을 위해 자주 사용하는 패키지로 사진의 에러를 발생시킨 것은 ProcessPoolExecutor 사용 시 경험했다. 이 ProcessPoolExe..
[Bigquery/Python] 빅쿼리 지리정보를 시각화하는 3가지 방법
2021. 2. 28. 17:59
Data/Data Analysis
3 Ways Of Bigquery Geodata Visualization 지난 포스트에 Python으로 하는 H3 공간 분석 를 포스팅한 적이 있습니다. 지리정보는 표현하고자 하는 지리 범위와 차원 깊이, 축에 따라 데이터양이 기하급수적으로 늘어납니다. 이러한 데이터를 csv나 parquet으로 저장해 두고 매번 사용하는 것은 굉장히 까다롭고, 수정/추가 작업에도 문제가 발생합니다. 오늘은 이러한 문제를 극복하기 위해 공식문서 에 소개된 bigquery지리정보를 H3 형태로 시각화하는 3가지 방법을 공유합니다. I. Bigquery Geo Viz Google 지도 API를 사용하여 BigQuery에서 지리정보 데이터를 시각화하기 위한 웹 도구로 SQL 쿼리를 실행하고 대화형 지도에 결과를 표시할 수 있습..
[Git]Git hooks 를 활용한 자동 black 포매팅
2020. 10. 24. 15:48
Programming/Git
Git hook Hook은 특정 이벤트, 함수가 호출되기 전/후에 실행되는 스크립트/명령을 말합니다. Git은 다른 버전 관리 시스템처럼 어떤 이벤트가 발생할 때 자동으로 특정 스크립트를 실행하도록 할 수 있습니다. 이 훅은 클라이언트 훅(commit or merge 시 발생)과 서버 훅(push 시 발생) 두가지가 있습니다. I. 자주 사용되는 hooks 1. 클라이언트 훅 pre-commit 커밋할 때 가장 먼저 호출되는 훅으로 커밋 메시지를 작성하기 전에 호출됩니다. 즉 git commit "something" 시 즉시 발생하는 hook 입니다. 보통 commit 하기 전에 파일의 코드 스타일 체크, 파일 검사 등을 위해 사용하는 경우가 많습니다. git commit --no-verify 를 이용해..
[시계열/python]Python을 이용한 Dynamic Time Wraping(DTW)
2020. 8. 6. 15:32
Data/ML
DTW Dynamic time wraping(동적 시간 워핑)은 다른 속도, 움직임을 가진 서로 다른 신호의 시간축에 대한 파장의 유사성을 측정하는 알고리즘 그래픽, 비디오, 오디오 분야에서 자주 사용되며 의료분야에서 보행 유사성, 생체신호 분석 등에 자주 사용되기도 한다. 특히 자동 음성 인식기술 분야에서 가장 두각을 나타내는 알고리즘 I. DTW 의 특징과 개념 1. 일반적인 시계열 신호의 비교 일반적으로 시계열 신호간 유사성을 따질 때 유클리드 거리(Euclidean distance)를 이용 (각각 시간별 신호 간 MSE를 이용) 장점 계산이 용이 연산속도가 뛰어남 단점 신호의 떨림과 움직임이 심해질수록 결과가 어긋나는 현상 발생 길이가 다른 시계열 분석 불가 2. DTW를 이용한 시계열 신호 비교..
[python]itertools를 사용해서 고난이도 코딩테스트도 쉽게 풀자!
2020. 7. 18. 18:17
Programming/Python
Itertools APL, Haskell, SML에 영감을 받아 파이썬에 최적화되어 동작하도록 구성된 반복 연산자 패키지로 자체 또는 조합되어 효율적이고 빠르게 동작하며 operator 모듈과 효과적으로 동작함 코딩 테스트 풀이 시 굉장히 유용하게 사용되는 패키지 중 하나 generator와 같이 사용할 수 있다. (generator가 궁금하시다면 => "링크") * operator 모듈 : 파이썬의 내장 연산자에 해당하는 __add__ 등을 제공하는 패키지로 add, lt, ne 등 객체 비교, 논리 연산, 수학 연산, 시퀀스 등을 수행하는데, __func__ 가 아니라 단일 이름으로 제공되는 차이가 있음 I. 무한 반복 반복 연산자를 무한히 수행하기 때문에 while, try/except 구문 등과 ..
[python]데코레이터(Decorator)
2020. 7. 11. 21:31
Programming/Python
1. 데코레이터 클로저인데 인수가 함수인 부분이 차이가 있으며, 다양한 상황에서 동일한 기능을 수행하는 함수가 필요할 때 데코레이터를 만들어 사용하면 유리합니다. 일반적으로 로그를 남겨 redirecting 등 부차적 스테이지로 넘기거나, 함수의 실행시간, 메모리 점유시간 등을 확인하기 위한 용도로 많이 사용됩니다. 1.장점 공통 함수 작성(로깅, 프레임워크, 유효성 체크 등 )을 통한 간결한 코드라인과 중복 제거 조합 사용이 편리 2.단점 가독성 좋지 못하고 디버깅이 이렵다. 특정 기능에 한정된 함수는 단일 함수로 작성하는게 좋다 1) 사용법 def decorator_func(func): def wrap_func(): return func() return wrap_func() def target(): ..