본문 바로가기
728x90

개발 업무(코딩)-개발자였을때 썼던..79

MYSQL TRIGGER(트리거) 테이블에 변화가 올때마다 기록을 남기는게 필요했다. TC5002MT는 원본테이블 TC5002TG는 트리거용 테이블(기록용) 두 테이블의 차이는 TC5002TG에 seq라는 AUTO_INCREMENT가 있다는 점과 함수명을 남기기위한 FUNC가 있다는 점이 차이다. (PK차이) ​ 데이터내용을 전부 추가하고 싶으면 INSERT에 다 넣어주면된다. 샘플 코드만 있으니 자세한건 다른 블로그 참고바람 ​ BEFORE 와 AFTER, OLD와 NEW, UPDATE INSERT DELETE 따로 해줘야한다는 점. ​ 짜증나는건 트리거 잘못만들면 기존에 작동했던 기능들이 안될수도 있다.(기능이 안된다는 것은 기존의 테이블에 연관된 select이나 insert등의 기능이다.) DELIMITER $$ CREATE TRI.. 2023. 1. 9.
C언어 HMAC SHA256 샘플코드(openssl) 참고한 사이트 를 보면 1번에선 여러가지 언어로 샘플코드들이 존재했다. 그러나 C로 짜여진 소스는 없었다. shell로 openssl을 불러서 하는 것일 이용해 popen을 사용해서 만들었다. 동시에 popen을 했을 때 괜찮을까에 대한 문제로 소스를 짜기 시작했다. echo -n $MESSAGE | openssl dgst -sha256 -hmac $SECRET -binary | base64 에서 -binary와 base64를 지웠을 때 데이터가 일정부분 일치한 것을 확인하고 구현할 수 있겠다는 생각이 들었다. 순서는 hmac-sha256 -> hex -> binary -> base64 이다.(ver1) ​ ver2는 hmac-sha256 -> base64 이다. for구문의 행위가 bin -> hex였.. 2023. 1. 9.
c-json 라이브러리에 대한 고찰과 소수점 짜르는 소스 c-json을 사용하면서 문제가 꽤 있었다.(json_object을 이용한 라이브러리) ​ 1. 동적할당이라는 점 쓰는건 자유지만 free는 자유가 아니지...제일 짜증나는 상황이 발생한다. ​ 2. 뒤에 tab이 들어가고 공백이 생긴다 ​ 3. 내가 원하는 대로 소수점 짜르기가 안된다. 난 소수점 2자리까지만 표시하고 싶은데 안되더라...내가 못찾아서 인가? ​ 4. 익숙하지 않아서 인지 순서대로 무언가의 데이터 넣기가 생각보단...사람차이.. ​ 5. yum install 을 해야한다는 점이다. 하면되지 라고 생각할 수 있지만 신경써야할 부분이 하나 더 생긴다. ​ 2번과 3번의 이유로 2가지 종류의 소스를 짰고 그중 하나는 이미 게시물을 올렸고 소수점짜르는 소스는 이 글에 같이 첨부한다. -----.. 2023. 1. 9.
C언어 HMAC SHA256 샘플코드(openssl dgst popen) 수많은 HMAC SHA256 예제가 있었지만 C언어로 짜여진 소스를 찾긴 어려웠다. openssl을 사용한 소스 ​ hmac sha256 using c language ..example /*******************************************************************/ /* HMAC_SHA256 FUNCTION */ /* phskey : 해쉬키, pmessage : 암호화할 데이터, psecret : 암호화키 */ /*******************************************************************/ int HMAC_SHA256(char* phskey, char* pmessage, char* secret) { FILE *fp;.. 2023. 1. 9.
C-JSON EXAMPLE 예제 2 - ARRAY json에서 array를 만들기위해서 짠 샘플 소스이다. memory leak이 있는 지 확인 하기 위해서 while문을 돌렸다. #include #include #include #include int main() { while(1) { json_object *myobj, *dataobj, *headerobj; // 메모리 할당 myobj = json_object_new_object(); dataobj = json_object_new_object(); headerobj = json_object_new_object(); char ztemp[1024]; memset(ztemp, 0x00, sizeof(ztemp)); memcpy(ztemp, "test", sizeof(ztemp)); // create a j.. 2023. 1. 9.
C-JSON EXAMPLE 예제 #include<json/json.h> https://stockdragon.tistory.com/90 설치는 여기를 참고 윗부분은 json형식을 만드는 법이고 밑은 json형식을 파싱하는 법이다. json_object_object_get은 deprecated되서 사용불가이다. 대신에 json_object_object_get_ex를 사용 #include #include #include #include int main() { char data[1024] = "{\n \"dataHeader\" : {\n \"udId\" : \"UDID\",\n \"subChannel\" : \"subChannel\",\n \"deviceModel\" : \"Android\",\n \"deviceOs\" : \"Android\",\n \"carrier\" : \"K.. 2023. 1. 9.
json 불필요한 공백,탭,개행 제거 HMAC SHA256을 접했다. json형태의 데이터와 특정한 키를 가지고 HASHKEY를 만들어주는데 json형태의 데이터가 스페이스 한번이라도 들어가면 다른 hashkey를 내뱉는다. 값이 일정치 않아서 만들었다. 만들고 나니 사용할 일이 별로 없네.. 0x20 : space 0x0A : LF(개행) 0x09 : tab int main() { char *databody = "{\n \"dataHeader\" : {\n \"udId\" : \"UDID\",\n }\n}"; char* shift_data = malloc(sizeof(char) * strlen(databody)); shift_json(shift_data, databody); printf("[%s]\n", shift_data); free(s.. 2023. 1. 9.
embedded python with C pModule이 Null이 나온다면 import부터 체크해보자 탭으로 구분되어있나 띄어쓰기로 되어있나 제대로 def main이 되어있나 --------------------------------------------------------- 20200805 추가 하위디렉토리로 만약에 파이썬파일이 import 되어있다면 ... 가정 1. 하위디렉토리 명은 abc이다. 가정 2. c에서 콜할 메인에서 import abc 를 하고 있다 가정 3. ./abc/in.py라는 파일안에 클래스가 선언되어있다. 가정 4. in.py 안에 import abc.utils 등으로 import 되어있다. ---> 수정하는 방법 c파일인 main.c에서 path를 한번더 추가시켜줘야한다. PyList_Append(pPath, P.. 2023. 1. 9.
개발 업무..확장가능한 키움 open api(조회성) Kiwoom.py에 추가할 화면 tr을 넣는다. KOA studio로 화면 목록 체크. Kiwoom.py에 접속정보, 주고받는 함수 등이 담겨있다. https://wikidocs.net/ 참고사이트 10001 화면은 종목코드와 종목명만 받아오지만 확장가능하다. ################################################################################################# Kiwoom.py import sys from PyQt5.QtWidgets import * from PyQt5.QAxContainer import * from PyQt5.QtCore import * import time import pandas as pd TR_REQ_TIME.. 2023. 1. 8.
KIWOOM API를 이용한 주식 일자별 시세 수집(python) https://wikidocs.net/5757 참고한 사이트이다. 추가한 부분은 거래대금 부분과 파일로 떨구는 것 두가지다. import sys from PyQt5.QtWidgets import * from PyQt5.QAxContainer import * from PyQt5.QtCore import * import time import pandas as pd TR_REQ_TIME_INTERVAL = 0.2 class Kiwoom(QAxWidget): def __init__(self): super().__init__() self._create_kiwoom_instance() self._set_signal_slots() def _create_kiwoom_instance(self): self.setContr.. 2023. 1. 8.
728x90