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 -l :사용 중인 크론탭 확인 crontab -e :크론탭 수정하기 crontab -r : 크론탭 전부 삭제하기 service cron start : 크론탭 실행하기 service cron status :상태 확인하기 service cron stop: 크론탭 중지하기 service cron restart: 크론탭 재시작하기
* * * * * 매일 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..
GA4에서 매개변수를 설정했는데 실시간(Realtime)에서만 보이고 매개변수를 볼 수 없을 때 아래와 같이 진행하면 보고서에서도 볼 수 있다. 1. GA4에서 구성으로 들어가기 2. 맞춤정의 > 측정기준 만들기 3. 매개변수를 선택하여 이벤트 생성하기 이렇게 설정을 완료하고 24시간 후에 보고서에서 볼 수 있다.
UTC를 KST로 변경하여 쿼리를 바로 날리고 싶을 때 아래와 같이 쿼리하면 된다. convert_tz(`datetime`, '+00:00','+09:00')
토큰 만료기간을 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..
사실상 업무용 DB를 구글 스프레드 시트에 백업하고 쓰는 구조를 갖다보니 sheet api의 제약사항에 굉장히 민감해질 수 밖에 없다. athena에 쿼리해서 데이터를 불러오고 다시 구글 시트의 내용을 불러오고 밀어넣는 과정에서 api limit에 걸리면서 오류가 나는 경우가 많다. 특히 최근에는 여러 데이터를 하나의 시트에 동시다발적으로 밀어넣어서 더 그랬던 것 같다. 다른 시트는 row가 하나인 것에 비해 특정 시트는 하루에 여러개의 데이터가 여러 row로 들어가서 문제가 자주 발생했는데 하나의 라인을 업데이트 하는 방식이 아닌 append_rows에 여러개의 line 리스트를 넣었다. report_line = [dateFormula, 1, 2, 3, 4, 5] 기존에 이런 report_line을 f..
나는 주기적으로 단백질 보충제와 L-아르기닌을 사먹는다. 아무래도 매일매일 먹다보니 2~3개월에 한번은 구매를 하게 되는데 어느날 보니 가격이 급등하고 급락하기를 반복해서 내가 이전에 비싸게 샀던건 아닐까 하고 보니 평소보다 2만원이나 더 주고 산 적도 있었다. 안그래도 와이프도 자주 사는 물건들 최저가 찾고 고민하는 것 때문에 나도 덩달아 고민하고 있었는데 이렇게 된 거 그냥 인터넷 최저가를 매일 불러와서 저장하게끔 자동화 해보자 싶었다. 결과적으로 만들긴 했는데 백엔드 서버 배포 등은 너무 복잡스럽고 잘 못하는 영역이라 아래와 같은 프로세스를 갖게끔 했다. 깃헙 액션 > 파이썬 스크립트 실행 > 구글 시트 상품 링크 불러오기 > 상품 링크에서 최저가 가져오기 > 구글 시트 가격 시트에 순서대로 넣기 ..
이제 귀차니즘이 끝을 향해 달리나보다..코드가 길어지는게 너무 부담스럽달까.. pandas에서 제공하는 건 공휴일 제외할 때에 BMS를 쓸 수 있어서 좋긴 한데 역시나 데이터 분석할 때는 딱히 많이 쓰이질 않는다. 역시 쉽게쉽게 바꿔버리는게 더 간단하다 first_day = {날짜}.replace(day=1).strftime("%Y.%m.%d")
데이터 분석을 하다보면 날짜별로 데이터를 다시 추출해야 하는 경우가 있다. 업무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)