본문 바로가기

전체 글

(39)
[VBA] DART 재무제표 크롤러 구현 사례 왜 만들었는가 지인의 부탁으로 만들게 되었다. 의뢰인은 상장사 여러 곳의 재무제표를 가져올 일이 있는데, 매번 사이트에 가서 재무제표 가져오기를 클릭하는 것이 무척 번거로워 이를 효율적으로 할 수 있는 방법이 없는지 문의해주셨다. 처음에는 VBA 말고 파이썬의 OpenDartReader 라이브러리를 사용해 보려고 했다. 하지만 실제로 사용을 해보니 재무제표를 가져오는 작업이 매우 매우 느리다. 도저히 속도가 답답해서 직접 코드를 작성해 보았다. 프로젝트 개요 유저가 업체명,연도,유형 등 필요한 사항을 기입한다. 코드는 이를 input 변수로 인식하고, 우선 DART OPEN API를 이용해서 해당 사업보고서의 문서정보를 가져온다. DART OPEN API의 응답 형태는 JSON이기 떄문에 문서..
[VBA] HTML Table 크롤링 (HTML Object Library, XML) 코드 'html table 뽑아내는 vba 코드 ​ Sub Get_table() Dim ws As Worksheet, results(), i As Long, s As Long Dim TK As String Dim LastRow As Long Dim html As MSHTML.HTMLDocument Dim data, trow, td As Object ​ Dim split1() As String, split2() As String, split3() As String, split4() As String 'LastRow = Worksheets("kmtc").Cells(Rows.Count, 3).End(xlUp).Row Dim URL1, URL2, URL3, FINAL As String ​ Set html = N..
[VBA] 파파고 API를 활용한 워드 번역기 구현사례 왜 만들었는가 종합상사에 왔더니 생가보다 번역할 일이 많이 생긴다. 특히 거래선이 일본 업체이고, 동경 거래소에 상장된 상장기업이다 보니 일본어로 된 자료가 정말 많다. 기업공시 내역, 실적자료, 사업보고서 등 상장기업의 자료는 쏟아지는데, 계속해서 현황을 업데이트하기 위해서는 자료를 번역하고 요약해서 부서 내부적으로 공유를 해주는 작업이 필요하다. 일본어를 구사할 수 있다는 이유만으로 번역 업무를 자주 맡게 되는데, 처음에는 직접 다 번역을 해보았다. 하지만 하면 할 수록 이걸 직접 번역하는건 너무 비효율적이라는 생각이 들었다. 읽어야 하는 자료는 너무 많은데, 시간과 인력은 부족하니 번역기에 의존할 수 밖에 없었고 파파고 번역기와 구글 번역기를 모두 써보았다. 파파고의 일 -> 한 번역은 놀..
[텔레그램 봇] 하나은행 환율 매매기준율 알리미 구현 사례 Why? 왜 이걸 만들었는가 회사 동기가 '이런 기능을 해주는 프로그램이 있었으면 좋겠다' 고 해서 만들어 보았다. 본인은 환율을 유심히 들여다 보는 경우가 아니지만, 환율에 민감한 분들은 당일 하나은행의 1회,2회, 그리고 가장 마지막으로 업데이트된 매매기준율을 참고한다고 한다. '그냥 최신 매매기준율만 참고하면 되는데 왜 1,2회를 참고하는지 물어보니, 실제 당일의 매매기준율 추이를 결정하는 매우 중요한 Factor가 1,2회 매매기준율이라고 한다. (역시 모든 심리는 첫 거래에 다 반영이 되나 보다) 프로젝트 개요 언어 : Python 주요 패키지(Framework) : Python-Telegram-Bot - 대화형 로직을 쉽고 빠르게 짤 수 있는 툴이다 (Telegram API가 애초에..
외국어 공부와 프로그래밍 언어의 공통점 외국어 공부와 프로그래밍 언어, 둘 사이에 묘한 공통점이 있다. 1. 유행하는 언어가 있고, 유행하는 언어는 시대에 따라 다르다. 요즘 프로그래밍 언어라고 하면 파이썬과 자바스크립트가 대세다. 가장 핫하고, 초심자들이 가장 많이 배우는 언어라고 할 수 있다. 외국어도 얼마전까지만 해도 중국어가 대세였다. 왕초보를 위한 중국어 교재들이 서점에 정말 정말 널려 있었다. 요즘은 외국어 공부에 신경을 안써서 어떤 외국어가 핫한지는 모르겠다. 파이썬 전에는 어플 개발로 인해 자바가 한창 핫했다는데, 요즘도 '스프링' 프레임워크로 인해서 자바를 많이 배운다고 들었다. 2. 초심자를 위한 컨텐츠가 정말 많다. 반면 중수 ~ 고수를 위한 컨텐츠는 부족하다. 처음배우는 파이썬, 파이썬 30일 등등 서점에 가면 왕초보가 ..
중부원점(EPSG:2097) 위도·경도(WGS84)로 변환 (연산 속도 높이기) 공공데이터로 받은 자료가 위치 정보를 가지고 있지만, 데이터가 위도 경도가 아닌 중부원점 좌표로 되어 있다. 현재 위치 기준으로 거리 계산, 지도에 표시 등의 작업을 위해서는 WGS84 좌표계로 변환하는 작업이 필요하다. 이 작업은 pyproj 라이브러리를 이용해서 아래와 같이 비교적 간단히 수행할 수 있다. # 라이브러리 가져오기 import from pyproj import Proj, transform import pandas as pd # Projection 정의 # 중부원점(Bessel): 서울 등 중부지역 EPSG:2097 proj_1 = Proj(init='epsg:2097') # WGS84 경위도: GPS가 사용하는 좌표계 EPSG:4326 proj_2 = Proj(init='epsg:432..
첫 글 개발에 대해서 조금 더 자세한 이야기를 풀어가고자 티스토리 블로그를 오픈했다. 이 공간에서 '의미 있는 개발'을 향한 나의 여정을 기록해 둘 것이다.