신사(SinSa)
구글 앱 스크립트 트리거 정확한 시간에 작동시키기
코드와 오류 기록 2022. 7. 7. 15:11

Google Apps Script를 사용하다보면 트리거(Trigger)기능을 이용해 특정 시간에 스크립트를 작동시키게 된다. 특히 무언갈 자동화할 때 굉장히 유용하게 사용되는데, 시간 기반으로 트리거를 돌리려면 30분 단위로 쪼갤 수 밖에 없다. 이럴 때 트리거를 코드에서 걸어주면 더 정밀하게 조정할 수 있다. 예를 들어 10시 59분에 정확하게 작동하게 하고 싶다면 9시~10시에 아래의 set_trigger를 트리거해두면 된다. function set_trigger(){ const time = new Date(); time.setHours(10); time.setMinutes(59); ScriptApp.newTrigger('functionName').timeBased().at(time).create()..

crontab 명령어 모음
코드와 오류 기록 2022. 5. 27. 19:50

crontab -l :사용 중인 크론탭 확인 crontab -e :크론탭 수정하기 crontab -r : 크론탭 전부 삭제하기 service cron start : 크론탭 실행하기 service cron status :상태 확인하기 service cron stop: 크론탭 중지하기 service cron restart: 크론탭 재시작하기

Crontab Examples
코드와 오류 기록 2022. 5. 27. 19:47

* * * * * 매일 1분마다 실행 5 * * * * 매일 매시간 05분에 실행 (1시간 간격으로 실행) */5 * * * * 매일 5분마다 실행 */10 * * * * 매일 10분마다 실행 0,10,20,30,40,50 * * * * 매일 10분마다 실행 0 18 * * * 매일 18시 00분에 실행 45 22 * * * 매일 22시 45분에 실행 28 03 * * * 매일 03시 28분에 실행 * 1 * * * 매일 01시 00분 ~ 01시 59분 사이에 1분 간격으로 실행 0 */1 * * * 매일 1시간 간격으로 실행 (매시간 00분) 0 */12 * * * 매일 12시간마다 실행 0 6,12 * * * 매일 06시, 12시에 실행 10 2-5 * * * 매일 02시 ~ 05시 사이 매시간 10..

article thumbnail
GA4에서 매개변수 보고서에서 보기
코드와 오류 기록 2022. 3. 28. 18:27

GA4에서 매개변수를 설정했는데 실시간(Realtime)에서만 보이고 매개변수를 볼 수 없을 때 아래와 같이 진행하면 보고서에서도 볼 수 있다. 1. GA4에서 구성으로 들어가기 2. 맞춤정의 > 측정기준 만들기 3. 매개변수를 선택하여 이벤트 생성하기 이렇게 설정을 완료하고 24시간 후에 보고서에서 볼 수 있다.

SQL timezone 변경하기
코드와 오류 기록 2021. 10. 19. 09:56

UTC를 KST로 변경하여 쿼리를 바로 날리고 싶을 때 아래와 같이 쿼리하면 된다. convert_tz(`datetime`, '+00:00','+09:00')

github 토큰 만료 후 재인증 안되는 문제 해결
코드와 오류 기록 2021. 9. 23. 13:13

토큰 만료기간을 30일로 해놓고 추석을 보내고 왔더니 만료되어버렸다. 바보같이 어떤게 만료됐다는 건지 메일을 보고도 인지하지 못했던 것이다.. 그래서 일단 다시 personal access token을 아래와 같이 발급 받았고 https://puture.tistory.com/465 remote: Support for password authentication was removed on August 13, 2021. Please use a personal access token instead.remote: P 주말에 매일 자주 사는 상품 가격 불러오는 부분 수정할 것이 생겨서 수정해서 github에 push 하려고 하니 이런 오류와 마주했다. remote: Support for password authen..

sheet api read/write limit 문제해결
코드와 오류 기록 2021. 9. 13. 21:11

사실상 업무용 DB를 구글 스프레드 시트에 백업하고 쓰는 구조를 갖다보니 sheet api의 제약사항에 굉장히 민감해질 수 밖에 없다. athena에 쿼리해서 데이터를 불러오고 다시 구글 시트의 내용을 불러오고 밀어넣는 과정에서 api limit에 걸리면서 오류가 나는 경우가 많다. 특히 최근에는 여러 데이터를 하나의 시트에 동시다발적으로 밀어넣어서 더 그랬던 것 같다. 다른 시트는 row가 하나인 것에 비해 특정 시트는 하루에 여러개의 데이터가 여러 row로 들어가서 문제가 자주 발생했는데 하나의 라인을 업데이트 하는 방식이 아닌 append_rows에 여러개의 line 리스트를 넣었다. report_line = [dateFormula, 1, 2, 3, 4, 5] 기존에 이런 report_line을 f..

article thumbnail
자주 사는 물건 매일 가격보기
코드와 오류 기록 2021. 9. 9. 19:23

나는 주기적으로 단백질 보충제와 L-아르기닌을 사먹는다. 아무래도 매일매일 먹다보니 2~3개월에 한번은 구매를 하게 되는데 어느날 보니 가격이 급등하고 급락하기를 반복해서 내가 이전에 비싸게 샀던건 아닐까 하고 보니 평소보다 2만원이나 더 주고 산 적도 있었다. 안그래도 와이프도 자주 사는 물건들 최저가 찾고 고민하는 것 때문에 나도 덩달아 고민하고 있었는데 이렇게 된 거 그냥 인터넷 최저가를 매일 불러와서 저장하게끔 자동화 해보자 싶었다. 결과적으로 만들긴 했는데 백엔드 서버 배포 등은 너무 복잡스럽고 잘 못하는 영역이라 아래와 같은 프로세스를 갖게끔 했다. 깃헙 액션 > 파이썬 스크립트 실행 > 구글 시트 상품 링크 불러오기 > 상품 링크에서 최저가 가져오기 > 구글 시트 가격 시트에 순서대로 넣기 ..

파이썬 매월 시작일(공휴일 무시) 간단하게 만들기
코드와 오류 기록 2021. 8. 25. 12:11

이제 귀차니즘이 끝을 향해 달리나보다..코드가 길어지는게 너무 부담스럽달까.. pandas에서 제공하는 건 공휴일 제외할 때에 BMS를 쓸 수 있어서 좋긴 한데 역시나 데이터 분석할 때는 딱히 많이 쓰이질 않는다. 역시 쉽게쉽게 바꿔버리는게 더 간단하다 first_day = {날짜}.replace(day=1).strftime("%Y.%m.%d")

파이썬 특정 기간의 날짜 for문 돌리기
코드와 오류 기록 2021. 8. 25. 10:43

데이터 분석을 하다보면 날짜별로 데이터를 다시 추출해야 하는 경우가 있다. 업무DB에 충분히 로그가 쌓여있다면 괜찮은데, 사실 DB에 있는 데이터가 분석에 용이하게 되어 있지는 않은 경우가 많다. pandas의 date_range 함수를 이용해서 특정 기간을 설정해 매일 날짜를 불러오고 리스트에 담아서 for문을 돌리면 편리하다. import pandas as pd index = pd.date_range(start='20200101', end='20201231') list = dt_index.strftime("%Y.%m.%d").tolist() for i in dt_list: print(i)