본문 바로가기

코딩25

[Python] 특정 페이지에 새 글이 올라오면 알림을 보내는 코드 - 특정 사이트에 새 글이 올라오면 텔레그램 봇을 통해 알림을 보내주는 코드를 작성했다. - 정적 사이트의 경우 BS4를 통해 파싱하는 것이 효율적이고 가볍지만, 내가 목표로 하는 사이트의 경우 동적 페이지다(글 로딩을 위해 JS 실행 필요). 따라서 셀레니움을 사용한다. - 아래 사항들을 알게 되었다. * 셀레니움 실행을 위해서는 chromedriver를 각 PC의 크롬 버전과 호환되도록 하는 것이 중요하여 시행착오를 겪었으며, 아래 코드를 통해 자동으로 최신 chromedriver를 사용할 수 있다. browser = webdriver.Chrome(service=Service(ChromeDriverManager().install()),options=options) * 셀레니움의 By 기능을 통해 fi.. 2022. 9. 14.
[Python] Pandas 컬럼의 문자열 위치 기준 슬라이싱 - 파이썬 Pandas 사용 중 문자열을 슬라이싱하는 경우가 있다. - 아래의 Seperator는 종목코드와 보고서 종류(분기, 반기 or 온기)를 표시하는데, 이를 종목코드와 보고서종류로 나누는 작업이 필요하다/. - DataFrame['열_이름'].str.slice(start=시작 위치, stop=끝 위치) - 시작 위치는 포함, 끝 위치는 미포함 - 문자 8개가 필요하고, 0번째 위치부터 7째 위치까지 사용하므로 아래와 같이 설정한다. - 보고서 종류는 문자열 시작 위치만 지정해 주고 끝은 설정하지 않는다. dart_data_BS_2['종목코드'] = dart_data_BS_2['seperator'].str.slice(start=0,stop=8) dart_data_BS_2['보고서종류'] = dar.. 2022. 9. 13.
[Python] 오늘 기준 직전 영업일 확인 - 주가 정보는 매일 업데이트된다. 다만 영업일이 아니면 조회가 안되므로 직전영업일 기준 자료를 가져오기 위해 판다스 패키지 내에 있는 Bday 기능을 사용한다. - datetime.today() 결과는 초단위까지 나오므로 strftime()기능을 통해 연-월-일 형식으로 바꿔준다. #날짜 설정(직전영업일) import pandas as pd from pandas.tseries.offsets import BDay from datetime import datetime, timedelta today = datetime.today().strftime("%Y%m%d") yesterday = (datetime.today()-BDay(1)).strftime("%Y%m%d") print(today, yesterday.. 2022. 7. 17.
[Flutter] Extends, Override, build, BuildContext에 대해 알아보기 VS Code에서 stateless widget을 생성하고, 클래스 이름을 App1이라고 지으면 아래와 같은 모습이 된다. 지금까지는 생각 없이 생성해 왔지만 이것을 이해해 보자. class App1 extends StatelessWidget { const App1({ Key? key }) : super(key: key); @override Widget build(BuildContext context) { return Container(); } } 1. Line1의 extends class App1 extends StatelessWidget { extends 키워드는 부모 클래스로부터 상속을 받을 때 사용한다. 플러터 내의 모든 위젯은 Stateless Widget과 Stateful Widget을 상속받.. 2022. 4. 28.
[Flutter] final 변수와 const 변수 공식문서 https://dart.dev/guides/language/language-tour#final-and-const A tour of the Dart language A tour of all the major Dart language features. dart.dev 만약 한 번 설정한 변수를 다시 바꾸지 않을 것이라면 final 또는 const 타입으로 설정한다. 한 번 설정하면 바꿀 수 없는데, 차이점은 코드 final의 경우 코드 실행의 결과로 인해 결정되는 상수라는 점이고 const는 코드 실행 이전부터 결정되는 상수라는 점이다. class _SearchScreenState extends State { //TextEditingController 를 선언함. 이는 검색 위젯을 컨트롤하는 위젯 .. 2022. 4. 27.
[Flutter] 상태관리란 무엇인가 내용 출처: (1) 블로그 https://dev-yakuza.posstree.com/ko/flutter/provider/#provider란 [Flutter] Provider 이번 블로그 포스트에서는 Flutter에서 전역 상태 또는 위젯끼리 상태를 공유하기 위해 Provider를 사용하는 방법에 대해서 알아보겠습니다. dev-yakuza.posstree.com (2) 유튜브 코딩쉐프 플러터 조금 매운맛 강좌 1 플러터를 공부하다보면, '상태관리'라는 말을 자주 듣게 된다. 무슨 뜻일까? 1. Flutter의 상태 관리란, 데이터의 상태라고 생각하면 된다. 현재의 데이터에 맞게 화면을 변경해주고, 반응에 대응해 주기 위해 필요하다고 한다. 2. 만약 다른 위젯에서 동일한 상태(Data)가 필요하다면 어떻게.. 2022. 4. 27.
[Flutter] Stateless Widget과 Stateful Widget의 차이 플러터에서 위젯을 만들 때는 크게 두 가지 종류로 만들수 있다. Stateless Widget과 Stateful Widget이다. Stateful Widget은 한 위젯 안에서 상태(데이터)를 가지고 해당 상태의 변화에 따라 화면에 표시되는 UI를 변경시킨다. 반대로 Stateless Widget은 화면이 로드될 때 한번만 그려지는 State가 없는 위젯이고, 변경이 필요한 Data가 없으며 이벤트나 사용자 상호작용에 의해서 동작하지 않는다. Stateless Widget에 비해 Stateful Widget이 성능이 떨어진다는 단점이 있다. 메뉴화면처럼 사용자와 상호작용이 필요없는 화면이라면 Stateless Widget, 검색창처럼 상호작용이 필요한 화면이라면. Stateful Widget 으로 구성해.. 2022. 4. 26.
[Flutter] 변수명 앞에 붙은 underbar(언더스코어, 밑줄)의 의미 변수명 앞에 언더바(_)를 붙이면 private 변수다(11행). public 변수는 class 외부에서 접근할 수 있지만 private 변수는 class 외부에서 접근할 수 없다. 그리고 8번째 줄 보면 클래스도 언더바가 붙은 것을 볼 수 있는데, 이는 Stateful Widget 생성시 자동으로 만들어지는 클래스다. 만약 외부에서 접근이 가능하게 만들려면 언더바를 지워야 한다 class SearchScreen extends StatefulWidget { const SearchScreen({Key? key}) : super(key: key); @override State createState() => _SearchScreenState(); } class _SearchScreenState extends .. 2022. 4. 26.
(2021.10.26) 일 단위 수준의 주가 데이터, 배당 정보는 API나 별도의 사이트를 이용할 것 없이 pandas-datareader 패키지를 사용하면 얻을 수 있다. pandas_datareader 패키지의 data 모듈을 이용하면 특정 웹 사이트 내의 정보들을 가져올 수 있다. 여러 사이트들이 있는데, 네이버 파이낸스와 구글 파이낸스도 포함되어 있어서 국내 및 해외 주식 정보에 접근할 수 있다. DataReader라는 함수를 사용한다. pandas_datareader.data.DataReader('GE', 'yahoo', start='2019-09-10', end='2019-10-09') DataReader 함수의 첫 번째 인자로는 조회할 종목에 대한 정보, 두 번째 인자로는 데이터를 가져올 소스(야후)에 대한 정보, 세 번째와 네 번째 인자에는 조회 기간의 시작일과 종료일을 입력한다. 두 번째 인자로 들어갈 수 있는 것들은 다음과 같다. * yahoo - retr.. 2021. 10. 26.
근로소득 구간별 세금 부담 비율 지난번에 살펴보았던 2019년 근로소득 백분위 자료를 바탕으로, 각 소득의 분포와 세부담률을 확인할 수 있었다. 2021.09.07 - [코딩] - 내 연봉, 근로소득자 중 상위 몇 퍼센트일까?(+ 세금은 얼마나 내고 있을까?) 국세청 rawdata는 아래에 첨부한다. 이 자료를 바탕으로 각 근로소득 분위별 세후 근로소득과 세부담율을 확인해 보았다. 세전 근로소득에서 주황색 부분이 세금으로 납부하는 금액이고, 세후 금액은 파란색 부분이다. 누진세 구조상 우리나라 근로소득세의 부담이 상위 10%에 집중되어 있고, 근로소득분위 50% 이하(연봉 약 2,800만원 가량이다)에서는 실제로 납부하는 세액은 거의 없다는 것이 확인된다. 2021. 9. 29.
내 연봉, 근로소득자 중 상위 몇 퍼센트일까?(+ 세금은 얼마나 내고 있을까?) See the Pen 근로소득 백분위 계산하기(상위 1% 세분화) by YYYSYYY (@SayYoung) on CodePen. 공공데이터 포탈에 2019년 국세청 근로소득 백분위(천분위) 자료가 있다. 이를 가공하여 아래와 같은 결과 하에서, 근로소득자 중 백분위와 결정세액, 실효세율을 계산하는 코드를 작성했다. '근로자'로서 월급 받는 사람들 대상이다. "근로소득"이 아니라 "사업소득"을 얻는 자영업자나 프리랜서, 사업자 등은 해당사항 없다. 아래 표에서 총수입금액(총급여)열 부터 결정세액 열 까지는 단위가 억원이다. 2021. 9. 7.
연말정산 계산기 만들어보기(1) 계산기를 만들어 본 경험을 토대로, 연말정산 계산기를 만들어 보려 한다. 아직 미완성이다. 작동시켜 보려면 아래 result 부분에서 총급여를 입력하고 세액 계산 버튼을 눌러 보면 된다 연말정산 모의계산 서비스는 이미 국세청에서 제공하고 있으므로, 정확한 계산이 필요하다면 아래 사이트 이용하면 된다. (https://www.hometax.go.kr/websquare/websquare.wq?w2xPath=/ui/pp/index_pp.xml) See the Pen TaxCalculator by YYYSYYY (@SayYoung) on CodePen. 1. 계산 로직 확인 근로소득자의 세액 계산 구조를 살펴보면 아래와 같다. 계산과정이 많다. 아마 작년에 세금 얼마 냈는지 모르는 사람도 많을거 같다(나도 잘 .. 2021. 8. 29.