본문 바로가기

TIL/개인공부

(26)
[Slack] Incoming Webhook 슬랙봇 메세지 만들기 회사 Data Engineer팀에서 제공하는 슬랙봇은 기능이 너무 제한적이라서, 직접 만들어보면 어떨까해서 주말동안 작업해보았다. 시간이 굉장히 오래걸릴줄알았는데, 생각보다 slack api가 굉장히 개발을 쉽게할수있게끔 만들어져서 금방만든것같다. 먼저 개발은 Python으로 작업했고. 나는 간단하게 특정채널에 메세지만 보내기만 하면되는거라서, webhook slack bot을 사용했다. 다음과 같이 코드를 작성하면된다. 제일먼저 Slack에 들어가 'Your App'을 눌러서 'Create New App'을 눌러준다. 그다음 앱에 이름 기타요소를 기입해주면된다. 이후페이지를 보면 위와같이 뜰텐데(Add features and functionallity를 눌러주면 펼쳐진다), 이중 Incoming Web..
[TIL] array_sort, array_contains pysparkSQL함수 *주의 pysparkSQL에서 작동합니다. 다른 SQL언어에서 작동할지는 확인을 못했습니다 array_sort 만일 특정 array변수 타입이 들어있는 column을 정렬하고 싶을때, array_sort를 사용하면 됨 temp라는 table이 있다면 SET ['B', 'A', 'C'] ['B', 'C', 'A', 'D'] SET에 들어있는 배열의 순서를 보장하고싶을때 select *, array_sort(SET) as SORT_SET from temp SET SORT_SET ['B', 'A', 'C'] ['A', 'B', 'C'] ['B', 'C', 'A', 'D'] ['A', 'B', 'C', 'D'] array_contains where 구문에서 어떤 Array형식에 특정값이 포함되어있는지 유무를 보..
[Pytorch] numpy에서 torch, torch에서 numpy torch에서 numpy a = torch.randn(1,3) print(a) # tensor([[0.5519, 0.1323, 0.1297]]) b = a.numpy() print(b) # [[0.55190253 0.13231923 0.12974031]] numpy에서 torch a = np.ones(3) print(a) # [1. 1. 1.] b = torch.from_numpy(a) print(b) # tensor([1., 1., 1.], dtype=torch.float64)
[2018 데이터챌린지] 악성코드 탐지 후기 2편 학습시작! # 2018-11-13 수정 우리는 이번 챌린지에서 총 두가지 모델을 활용하여 학습을 진행했다. 1. LightGBM2. DNN(pytorch) 이번대회에서 그래도 작년과는 달리 딥러닝 모델을 내가 직접짜서 대회에 참여했다는 것이 보람찼다.간단한 DNN모델이지만 학습 데이터 형식을 맞추는게 제일 힘들었던거 같다. 해당 DNN 모델 파일은 다음 링크에서 볼수가 있다.https://github.com/jaeyung1001/Malware-Detection 사실 예선이 시작되기전에 위의 두개 모델에서 정확도가 약 90%~95%까지 측정이 되어서 이번 대회도 본선까지는 무리는 없겠지 라는 생각을 하였으나... 예선에서는 정확도가 80%대 밖에 안나왔다...(여기서 멘붕) 파트너와 얘기하면서 꼽은 문제점..
[2018 데이터챌린지] 악성코드 탐지 후기 1편 # 수정 2018-11-13 코드 추가 이번에 정보보호학회에서 열리는 "정보보호 R&D 데이터 챌린지"에 참여하게 되었다. 종목은 총 4가지가 있었다1. 악성코드 탐지2. 악성 안드로이드 앱 탐지3. 차량 도난 탐지4. 자동 취약점 탐지 이중에 1번을 참여하게되었고. 11월10일 토요일에 판교에 가서 예선전을 참여했다.작년에 악성 안드로이드 앱을 참여하고 우승했던 나여서 이번에 욕심이나서 악성코드도 우승해보고 싶었다. 판교에 도착했을때 많은 팀들이 보였고 충남지역 호남지역에도 많은 팀들이 참여를했다. 10시에 정확하게 시합이 시작됐고. 관계자분들이 USB를 이용하여 테스트셋을 나눠줬다. 테스트셋을 받고 압축해제를 하는데 7zip이 안깔려있어서 Ubuntu에 p7zip을 설치했다 하지만 virtualbox..
[IOCP] 클라이언트 코딩 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788#include "stdafx.h"#include #pragma comment(lib, "Ws2_32.lib") #define MAX_BUFFER 1024#define SERVER_IP "127.0.0.1"#define SERVER_PORT 3500 struct SOCKETINFO { WSAOVERLAPPED overlapped; WSABUF dataBuffer; int receiveBytes; int send..
[IOCP] 서버 코딩 연습 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816..
공부2 1. 빅 엔디언 머신 & 리틀 엔디언 머신 구별하는방법, 코드 작성 ex. A45C를 저장할때 빅 엔디언 머신에서는 A4를 첫 번째 바이트로, 5C를 두 번째 바이트로리틀 엔디언 머신에서는 5C를 첫 번째 바이트로, A4를 두번째 바이트로 저장 즉 2바이트 중에서 첫 번째 바이트가 큰거면-> 리틀, 작은거면-> 빅 /*return 한 값이 1이면 리틀0이면 빅*/ bool isLittleEndian(){int testNum;char *ptr; testNum = 1; //0x0001 or 0x0100ptr = (char*) &testNum;return (*ptr);} 2. 비트에서 1의 갯수를 세는 방법 예로 00001011이라고 할 때: 오른쪽 끝이 1 이면 count ++, 비트에 더하기 1 ==> 비..