728x90

전체 글 236

파이썬에서 f-string에서 줄바꿈 시 앞 공백 제거 방법

f-string을 이용하면 두 줄 이상의 문자열을 처리할 때 매우 편합니다. 이때 발생할 수 있는 문제가 한가지가 있습니다. 아래와 같이 indent를 맞추면 화면에 출력 시 알파벳 앞의 공백이 함께 인식이 되버립니다. def func(): str = f""" abc def """ 이럴 땐 조금 불편하지만 아래와 같은 방법을 사용하면 됩니다. def func(): str = ( f'abc' f'def' )

파이썬(Python) 2022.11.07

airflow에서 SqlToSlackOperator로 메시지 보낼 때 데이터프레임 양식 변경

sql을 실행한 결과인 데이터프레임을 slack으로 발송하면 보기가 좋지 않습니다. 이때 할 수 있는 방법은 두가지가 있습니다. 첫 번째 방법은 tabulate를 사용하는 방법입니다. slack_message="message: {{ ds }}, ```{{ results_df | tabulate(tablefmt='fancy_grid', headers='keys', showindex=False) }}```" 아래와 같이 메시지를 보내면 깔끔한 표 형식으로 결과를 볼 수 있습니다. 하지만 한글 데이터 때문에 표가 밀려서 보입니다. 두 번째 방법은 아래와 같이 데이터 프레임의 각 값을 선택할 수 있습니다. slack_message="""기준일자: {{ ds }} ``` 신규소셜 : {{ results_df.il..

아하 모먼트의 의미에 대한 생각

아하 모먼트는 새로운 사용자가 서비스의 작동 방식을 이해하고 처음으로 서비스의 가치를 느끼는 순간을 의미합니다. 아하 모먼트가 중요한 이유는 아하 모먼트를 경험한 고객이 경험하지 못한 고객보다 서비스를 지속적으로 사용할 가능성이 높기 때문입니다. 사례를 들어보면 페이스북은 가입 후 10일 이내 7명의 친구와 연결되는 것, 슬랙은 팀 내에서 2,000개의 메시지가 등록됐을 때, 드롭박스는 1개의 디바이스에서 1개의 파일이 등록 됐을 때가 아하 모먼트라고 합니다. 아하 모먼트를 정의하고 찾는 방법에 대해서는 이미 많은 글들이 있기 때문에 아래 참고로 올려놓은 링크를 확인하시면 됩니다. 이 글에서 전달하고 싶은 메시지는 아하 모먼트의 진정한 의미를 다시 한번 생객해보자 입니다. 아하 모먼트를 다른 말로는 고객..

mysql에서 json 형식의 데이터 파싱하기

json 타입으로 된 문자열 데이터에서 특정 키에 대한 값을 추출하고 싶은 경우가 있습니다. 이 때 문제가 될 수 있는 것은 제대로된 json 타입이 아닐 경우 쿼리를 실행할 경우 오류가 발생할 수 있습니다. json 타입을 체크하고 문제가 없을 경우 원하는 키에 값을 리턴 받는 방법은 아래와 같습니다. JSON 문자열 { "이름" : "홍길동", "나이" : "20" } 위와 같은 문자열이 정보라는 테이블의 txt라는 컬럼에 있다고 하겠습니다. 아래와 같이 json_extract 함수와 json_valid 함수를 사용하면 됩니다. select json_extract(txt, '$[0].이름') from 정보 where json_valid(txt) = 1 json_extract 함수를 사용하면 json ..

airflow UI에서 session timeout 설정하기

airflow.cfg 파일에서 아래 내용을 추가하면 됩니다. session_lifetime_minutes = 세션 분 session_lifetime_minutes New in version 1.10.13. The UI cookie lifetime in minutes. User will be logged out from UI after session_lifetime_minutes of non-activity Type integer Default 43200 Environment Variable AIRFLOW__WEBSERVER__SESSION_LIFETIME_MINUTES 더 많은 옵션은 아래 페이지를 확인하세요 https://airflow.apache.org/docs/apache-airflow/stable..

ML로 해결할 수 있을 것 같은 문제들 1편

제가 일하는 도메인에 ML을 이용해서 해결할 수 있는 문제가 무엇이 있을지 생각해봤습니다. ML을 이용하는 이유는 다음과 같습니다. 1. 자동화 사람의 손이 필요한 일을 자동화할 수 있습니다. 가장 흔한 예를 들면 이미지 분류, 번역등이 있습니다. 2. 문제 해결 방법이 복잡하거나 모르는 경우 일반적으로 프로그래밍을 통해서 문제를 해결하기 위해서는 사람이 문제 해결을 위한 로직을 프로그램으로 구현을 해야합니다. 예를 들어 2와 3을 입력 값으로 넣었을 때 6, 4와 4를 입력 값으로 넣었을 때 16이라는 값이 나오기 위해서 y = a * b라는 계산식을 프로그램을 통해서 만들어야 합니다. ML을 사용한다면, 2와 3을 넣으면 6, 4와 4를 넣으면 16이 나온다는 입력값과 결과값을 알려주면 y = a *..

AutoML을 사용하는 이유

현재 가지고 비즈니스 문제를 AutoML을 이용해서 해결하려고 합니다. 일반적으로 온프레미스 환경에서 ML로 문제를 해결할 때에는 scikit-learn,Tensorflow, Pytorch, Spark ML 등을 이용하는 경우가 많은데 AutoML을 선택한 이유를 생각해봤습니다. AutoML이란? 먼제 AutoML이 무엇인지 정의해보겠습니다. MS 사이트에 정리된 내용을 발췌했습니다. 자동화된 Machine Learning(자동화된 ML 또는 AutoML이라고도 함)은 시간 소모적이고 반복적인 기계 학습 모델 개발 작업을 자동화하는 프로세스입니다. 데이터 과학자, 분석가 및 개발자는 모델 품질을 유지하면서 확장성, 효율성 및 생산성이 높은 ML 모델을 빌드할 수 있습니다. Azure Machine Lea..

airflow UI에 사용자 비밀번호 검증 기능 추가하기 1편

airflow 2.x가 되면서 사용자 계정과 권한 기능이 추가됐습니다. 그래서 사용자 그룹에 따라서 특정 DAG에 대한 접근 권한을 할당할 수 있습니다. 한가지 아쉬운 점은 사용자 비밀번호에 대한 추가 정책을 관리할 수가 없습니다 예를들어 사용자 비밀번호 등록 시 최소 조건을 지정하거나, 90일이 지나면 비밀번호를 강제 변경하도록 만드는 것이 있습니다. 일반적으로는 이러한 기능이 없어도 큰 문제는 없지만 isms 심사를 위해서는 이러한 기능들이 필요합니다. 이에 따라서 비밀번호 등록 규칙을 지정하고 비밀번호 사용 만료 기간을 할당하는 방법을 작성해 보려고 합니다. 먼저 비밀번호 등록 규칙에 대해서 설명하겠습니다. 요구사항은 아래와 같습니다. 비밀번호는 8자 이상이여야 하고, 대문자, 소문자, 숫자, 특수..

airflow UI에 SSL 인증서를 적용하여 http를 https로 변경하기 2편

airflow UI에 SSL 인증서를 적용하여 http를 https로 변경하기 1편 오랜만에 데이터 엔지니어링 관련(?) 글을 쓰게 됐습니다. ISMS 심사를 위해서 airflow에 3가지 사항을 적용해야 합니다. SSL 인증서 적용 비밀번호 설정 검증 로직 적용(영문,숫자,특수문자 포함 및 8 leebaro.tistory.com 위의 지난 편에 이어서 airflow에서 https를 적용하는 방법에 대해서 적어보겠습니다. 순서는 아래와 같다고 했었습니다. SSL 인증서 확보 인증서를 airflow 서버로 복사 airflow ui 접속을 위한 도메인 지정 DNS에서 도메인 등록 docker-compose.yml 파일 수정 airflow 컨테이너 재생성 airflow UI 접속 테스트 SSL 인증서 확보 이..

728x90