반응형 분류 전체보기136 [MySQL] null vs 0 group by avg 차이 | LIM mysql에서 group by 를 통해 평균을 구해야할 일이 생겼다. 문제는 원하지 않은 값, 즉 0 이 들어와서 평균을 깎아먹고 있었던 것이다. 예를들어서 테이블을 통해 살펴보자 이 테이블에서 height 즉 키는 다 있으므로 6명의 평균을 다 구하고 싶었고, weight는 있는 사람들 것에 대한 평균만 내고 싶었다. 하지만 이렇게 weight를 적지 않은 사람들의 몸무게를 0으로 두고 평균을 냈을 때 다음과 같은 결과가 나온다. 즉 평균 키는 구해졌지만 평균 몸무게가 0으로 적은 사람들 때문에 원하지 않는 평균 무게가 나왔다. 이를 방지하기 위해서는 몸무게를 적지 않은 사람들의 몸무게를 0 이 아닌 null 로 변경해주면 된다. 이렇게 null로 두고 평균을 구하면 키는 6명의 평균키, 몸무게는 4명.. 2022. 7. 12. [Python] 비동기 프로그래밍 | LIM 파이썬에서 비동기 프로그래밍을 하기 위해서는 이벤트 루프와 코루틴 을 알고 있어야 한다. 📌 이벤트 루프(Event Loop) 이벤트 루프는 작업들을 루프를 돌면서 하나씩 실행시키는 역할을 한다. Callback Event Queue에서 하나씩 꺼내서 동작시키는 Loop를 말한다. 즉 이 이벤트 루프를 이용해서 비동기 방식으로 동시성을 지원하는 것이다. 만약, 실행된 작업이 특정한 데이터를 요청하고 응답을 기다려야 한다면, 이 작업은 다시 이벤트 루프에 통제권을 넘겨준다. 통제권을 받은 이벤트 루프는 다음 작업을 실행하게 된다. 그리고 응답을 받은 순서대로 멈췄던 부분분터 다시 통제권을 가지고 작업을 마무리 한다. 📌 코루틴(Cooperative Routine) 위에 이러한 작업이 파이썬에서는 코루틴으로.. 2022. 7. 9. [Python] functools 의 partial | LIM 🧐 functools 모듈이란? functools 모듈을 몇 가지 고위 함수를 통합한다. 그 중 가장 널리 알려진 함수가 reduce() 함수이다. functools에서 제공하는 나머지 함수 중 partial() 및 이의 변형인 partialmethod() 함수가 매우 유용하다고 한다. ✔️ run_in_executor 에 이용한 functools.partial functools.partial()은 함수를 부분적으로 실행할 수 있게 해주는 고위함수이다. 어떤 함수가 있을 때 partial()을 적용하면 원래 함수의 일부 인수를 고정한 콜러블을 생성한다. 이 기법은 하나 이상의 인수를 받는 함수를 그보다 적은 인수를 받는 콜백 함수를 사용하는 API에 사용하고자 할 때 유용하다. 예를 들어 비동기 처리할 .. 2022. 7. 9. [GCP Composer] Broken DAG ModuleNotFoundError 발생.. | LIM 이 글이 누군가에게 도움이 되길 바라며... 갑자기 composer에서 잘만 사용하던 모듈이 ModeulNotFoundError 가 떠서 두시간동안 삽질했다.. 간단하게 테스트하려고 cloud storage 업데이트 하는 gcloud 명령어인 gcloud composer environments storage dags import 를 너무 많이 날려서 그런가 composer와 gcs간 sync 가 안맞았었나보다.. 문제 해결은 생성한 개인 모듈 이름을 바꾸는 거였다..기존 만들어놓은 모듈 폴더를 cloud storage에서 삭제하고 새로운 이름으로 변경해서 폴더와 파일 업데이트하니 다시 잘됐다.. 밑에 사이트 참고했다 https://groups.google.com/g/cloud-composer-discus.. 2022. 7. 4. [Python] Flask와 FastAPI로 Python 동시성 테스트 | LIM 📌 파이썬의 동시성 파이썬에서는 쓰레드를 사용하는 threading 모듈, 태스크를 사용하는 asyncio 모듈, 그리고 프로세스를 사용하는 multiprocessing 모듈이 있는데 여기서 병렬적으로 작업을 처리하는 것은 실제로 multiprocessing 뿐이다. threading 과 asyncio 모듈은 모두 하나의 프로세서를 사용하기 때문에 한 번에 하나씩 실행할 수밖에 없다. 서로 context switching 되면서 동시에 실행되는 것처럼 보이게 되는 것이다. 이렇게 해서 작업 시간을 줄인다. 📌 threading과 asyncio 차이(concurrency) 파이썬에서 동시적인 작업을 할 때 사용하는 threading과 asyncio의 차이점은 threading은 모듈에서 실행되고 있는 각 .. 2022. 7. 3. [mac m1] jupyterlab 설치 및 실행 오류 | LIM mac m1에서 brew를 이용해 jupyterlab 설치 후 jupyter lab 이라고 치자 창이 열리면서 이런 에러가 떴다. 어디서 찾았는 지 기억은 안나는데 검색하다가 발견했고 다음과 같이 실행하니 정상적으로 실행 되었다. >> jupyter lab --core-mode 2022. 6. 24. 이전 1 ··· 14 15 16 17 18 19 20 ··· 23 다음 반응형