슬랙봇으로 개발 생산성 높이기 with Slack RTM API 개발을 하면서 때때로 간단한 프로퍼티를 조회하기 위해 매번 번거로운 DB 접근 절차를 거치게 되는데요. 개발 생산성을 높이기 위해 프로퍼티를 조회하는 절차를 효율적으로 개선해 보자는 생각을 시작으로 공통 코드 조회 슬랙봇(WhatIsThisCode)이 만들어지게 되었고, 이번 글에서는 그 생성 과정을 공유해 드리고자 합니다. 들어가기 슬랙봇을 만드는 방법은 정말 다양했습니다. 그중에서도 저에게는 아래와 같은 조건을 만족하는 방법이 필요했습니다. API를 외부(Slack)에 오픈하지 않고 슬랙봇을 동작시킬 수 있는가? 구현 환경에서 방화벽 이슈가 발생하지 않는가? 슬랙봇이 실시간으로 이벤트를 수신하고 메시지를 보낼 수 있는가? 다행히도 슬랙은..
Slack Bot - Real Time Messaging API 슬랙의 Real Time Messaging API 를 활용해서 슬랙봇을 만들어 보자. . Real Time Messaging 은 줄여서 RTM 으로 불리기도 하고, 이름처럼 실시간으로 이벤트를 수신하고 메시지를 보낼 수 있는 WebSocket 기반 API 이다. 그 밖에도 Events API, Web API API 를 제공해 주고 있다. . 사내에서는 방화벽 문제로 Real Time Messaging API 를 활용하려고 한다. Real Time Messaging API 의 간략한 설명을 보면 해당 API 를 더 이상 지원을 하고 있지는 않다. 다만, Events API, Web API 활용에 있어 방화벽 제한이 있을 경우 사용할 것으로 안..
Json 구조의 로그 파일 분석 Json 구조의 로그 파일을 분석하는 코드를 작성해보자. 간단한 설명은 주석을 참고해보자. Log file Example Line-by-line json type. 라인 단위로 Json 형태의 로그가 저장되어있는 파일이다. {"success":"true", "fileType":"pdf", "summary":[{"page_count":"3", "sentence_count":"20", "char_count":"80"}]} {"success":"true", "fileType":"docx", "summary":[{"page_count":"6", "sentence_count":"50", "char_count":"140"}]} Code import json import os file..
특정 문자열 사이 문자열 추출하기 (HTML tag 사이 문자열 추출) Wikipedia dump data 추출을 하면서 특정 문자열 사이에 있는 문자열을 추출해야 하는 상황이 생겼다. 정규식이 익숙지 않았던 터라 여러 sample 들을 짜깁기 한 결과 드디어 성공을 했다...u_u regexr.com에서 열심히 짜깁기 해보자. 별거 아니긴 하지만 특정 문자 사이 문자 추출은 자주 사용하게 될 것 같아서 기록해 두고자 한다. 예를 들어, HTML tag 사이 문자열을 추출할 수도 있을 것 같다. Wikipedia dump data 문자열 추출 후 HTML tag 사이 문자열도 추출해보자. TEXT 문자열 추출 text 지미 카터0530712206307022392021-11-17T05:16:11Z211.2..
NAVER 금융 ETF 종목 엑셀 추출 매번 ETF 종목 현재가 검색하는 귀차니즘이 발동하여... NAVER 금융 ETF 페이지 Scraping 을 해보려고 한다. 항상 Scraping 전에 robots.txt 확인이 필요한다. https://finance.naver.com/robots.txt를 확인해보면 Allow: /sise/ 라고 automated scraping 허용이 되는 것을 확인할 수 있다. Get Chrome Debug Mode Driver chrome 을 자동화 모드가 아닌 Debug 모드로 실행 def get_driver(url): subprocess.Popen( r'C:\Program Files (x86)\Google\Chrome\Application\chrome.exe --r..
Scrape Linkedin People Search Results with Python 먼저 scraping 하고자 하는 링크는 https://www.linkedin.com/search/results/people/?keywords.. 이고 https://www.linkedin.com/robots.txt 에 접속해서 automated scraping 허용 여부를 확인해보자. Disallow 목록에 포함되지 않는다면 시작 !! Run Chrome Debug mode chrome 을 자동화 모드가 아닌 Debug 모드로 실행 subprocess.Popen( r'C:\Program Files\Google\Chrome\Application\chrome.exe --remote-debugging-port=9..
Python MS-SQL 연동 (pymssql) Documentation pymssql 설치 pip install pymssql MS SQL 연동 Auto commit 을 사용할 경우 conn.autocommit(True) 을 설정해주면 된다. conn = pymssql.connect(server, username, password, database) # MSSQL 접속 cursor = conn.cursor() # 쿼리 생성과 결과 조회를 위해 사용 SELECT 한글 깨짐을 해결하기 위해 .encode('ISO-8859-1').decode('euc-kr') 방법을 많은 분들이 사용하는 듯 하다. cursor.execute('SELECT * FROM POST;')..
CLOVA Speech API 음성을 텍스트로 추출하기 위한 API 중 NAVER CLOVA Speech API 를 활용해보자. 사실 API Documentation 을 보면 엄청나게 친절하게 설명이 되어 있다. (해당 포스팅은 링크 참고용으로 느껴질 만큼....) 참고로 API 요청 후 응답까지 10초 정도 소요되었다. Ready 결제수단등록 https://www.ncloud.com/mypage/billing/payment CLOVA Speech 이용 신청 https://www.ncloud.com/product/aiService/clovaSpeech Documentation Object Storage 이용 신청 및 버킷 생성 https://www.ncloud.com/product/storage/obje..