[Flow.Txt] 파이썬 데이터 크롤링 원데이 클래스 수강(2020.05.21)[Flow.Txt] 파이썬 데이터 크롤링 원데이 클래스 수강(2020.05.21)
Posted at 2020. 5. 21. 16:58 | Posted in Flow.Txt웹 크롤링을 통한 데이터 수집 및 통계화는 일정수준 이상 올랐다고 생각하지만...
① 뭐랄까 혼자 독학으로 익힌 크롤링 내가 하는 방향과 다른 사람들이 쓰는 방향이 어떤지?
② ( 나는 Node.js를 쓰는데 ) 파이썬과 판다스를 바탕으로 크롤링과 데이터 분석이 요즘 왜 각광받고 있는지?
③ 이런 데이터 크롤링 강습은 어떻게 진행을 하는지?
④ 주로 이런 강습을 어떤 분들이 찾아와 들으시는지?
대충 이정도 이유가 궁금해서 탈잉 원데이 클래스로 이루어지는 파이썬 크롤링 수업을 듣고왔다.
퇴근을하고 간단히 저녁을 먹은뒤
강습이 이루어지는 스터디 공간을 찾아가고.
강의에 앞서 강사님이 간단히 자기소개를 하시는데...
프로그래머가 아니라 자신을 마케터라고 이야기 하셨다.
잉???
난 당연히 프로그래머 일거라 생각했는데...
그치만 강의를 진행하고 단지, 마케팅일을 하는것 뿐 프로그램에 대해 설명하는건 분명 크롤링을 개발하는 사람이구나 라는 생각이 들더라...
강의내용은 솔직히말해 내가 들을 수준은 아니였지만
강의를 듣는 분들을 보며 새삼 생각에 잠길 수 밖에 없었다.
강사님이야 그렇다 쳐도, 강습에 개발자는 나 하나 뿐이었고.
다들 마케터셨던건...
( 우리회사 마케터 분들 뭐하고 계시나요??? )
솔직히 말해 강의 자체는 어떻게 따라간다고 해도.
정규표현식같은걸 사용해야 하는 난관을 극복할 수 있을까??
이 강습을 듣고 실무에 적용할 수 있나? 라는 부분에서, 한계는 명확하기에...
나보다 어리다고 생각되는 분은 한분정도 뿐이고, 다른분들은 적어도 나보다 5 ~ 10 연배로 보이시는 분들...
그것도 개발쪽 파트가 아니신 분들이 최소한의 프로그래밍에 도전하신다는것에...
뭔가 생각에 잠기게 된다.
그외 강의를 듣고 느끼는것
① 파이썬 + 판다스 ( 되었다 난이미 Node.js에 고여가고 있다... 파이썬은 또 이렇게 좀 나중으로 )
② 구글 코랩 → 앞으로 글을 쓴다는것은 MarkDown 방식에 반드시 익숙해 져야 한다.
③ 내 주변 마케터들은 뭐하고 있는가... 아니 제발 국어공부라도 좀 해줘... ㅠ.ㅠ
'Flow.Txt' 카테고리의 다른 글
[Flow.Txt] 언젠간 내 기술이 시대 흐름에 뒤쳐질지 모른다.(2020.05.29) (0) | 2020.05.29 |
---|---|
[Flow.Txt] 新 직장인 꼰대 체크 리스트(2020.05.24) (0) | 2020.05.24 |
[Flow.Txt] 블로그 조회수가 반토막이 나버렸다.(2020.05.18) (0) | 2020.05.19 |
[Flow.Txt] 하루 방문자수 2천명을 돌파하였습니다.(2020.04.24) (0) | 2020.04.24 |
[Flow.Txt] 흔한 공돌이가 시대가 바뀜을 느끼는 순간(2020.04.06) (0) | 2020.04.06 |
[Node.js] HTTPS 서버 구현하기[Node.js] HTTPS 서버 구현하기
Posted at 2020. 5. 20. 18:22 | Posted in Node.js※ 해당 포스팅은 AWS EC2 서버에서 node.js v14.3.0 버전으로 테스트한 내용입니다.
참고 : https://nodejs.org/api/https.html
참고 : https://mylko72.gitbooks.io/node-js/content/chapter7/chapter7_5.html
참고 : https://lahuman.github.io/cet_key_to_pem
node.js의 socket.io를 이용한 통신을 해야하는 경우가 생겼다.
문제는 https 서버에서 socket통신을 이용하는 경우 "혼합된 컨텐츠 차단", "크로스 도메인 이슈" 에러가 발생하여
해결을 위해 이 경우 HTTPS 서버를 구현하여 해결하였다.
■ HTTPS란?
하이퍼텍스트 전송 프로토콜 보안( HTTPS, Hypertext Transfer Protocol Secure )은 HTTPS 클라이언트와 서버간에 안전한 통신을 제공하는 통신 프로토콜이다.
HTTPS는 보안 기능을 확보하기 위해 전송층 보안( TLS, Transport Layer Security ) / 보안 소켓층( SSL, Secure Sockets Layer ) 프로토콜 위해 HTTP를 구현한 것이다.
HTTPS는 두 가지 방식으로 보안 기능을 제공한다.
첫번째로 단기간에 사용되는 세션 키 교환을 위해 장기간 사용되는 공개 키와 비밀 키를 사용해 클라이언트와 서버간 데이터 암호화를 진행한다.
또한 인증 기능을 통해 접속하련느 웹 서버가 의도한 서버가 맞는지 확인해 중간자 공격을 방지할 수 있다.
■ HTTPS 서버와 HTTPS 클라이언트를 구현
#01. https 모듈 설치
먼저 https 모듈을 설치해야 한다.
$ npm install https |
#02. crt, key 파일을 pem 파일로 변환하기
※ 해당 cert, key 파일은 AWS EC2에서 제공되는 cert, key 파일을 사용하였다.
( 참고 : )
HTTPS 인증서를 node.js에서 바로 사용하기 위해서는 pem 파일 형식으로 변환하는 작업이 꼭 필요하기에
아래와 같이 작업을 진행해 보도록 하자.
01) KEY 파일 변경하기
$ openssl rsa -in custom.key -text > agent-key.pem |
02) CRT 파일 변경
$ openssl x509 -inform PEM -in custom.crt > agent-cert.pem |
#03. HTTPS 서버 실행
# 소스코드
https.server.app.js |
|
const https = require( "https" ); const fs = require( "fs" ); // HTTPS 클라이언트 생성 const options = { hostname : "wickedmiso.com" , port : 443 , path : "/" , method : "GET" , key : fs.readFileSync( "/etc/pki/tls/private/agent-key.pem", "utf8" ) , cert : fs.readFileSync( "/etc/pki/tls/certs/agent-cert.pem", "utf8" ) , agent : true }; options.agent = new https.Agent( options ); // HTTPS 서버 생성 https.createServer( options, ( req, res ) => { res.writeHead( 200 ); res.end( "HTTPS, Hypertext Transfer Protocol Secure\n" ); }).listen( 52273, function() { console.log( "Server Running at https://localhost:52273" ); }); |
// 도메인 주소 // https 기본 포트 443 // key 옵션은 SSL을 위한 개인키를 지정한다. // cert값은 사용할 x509 공개키를 지정한다. // 크로스 브라우저 처리를 위한 userAgent 프로퍼티 // 맞춤형 Agent 객체를 생성한다. // agent : false인경우 주석처리하여 비활성화 한다. |
# 출력결과
'Node.js' 카테고리의 다른 글
[Node.js] 디렉토리내의 파일 정보 가져오기 (0) | 2020.09.07 |
---|---|
[Node.js] exceljs를 이용하여 Excel 파일 읽기 (0) | 2020.08.20 |
[Node.js] socket 통신으로 파일 업로드 하기 (0) | 2020.05.14 |
[Noe.js] 실행시 값 입력하기 (0) | 2020.05.04 |
[Node.js] Email 발송하기 (0) | 2020.05.01 |
[Flow.Txt] 블로그 조회수가 반토막이 나버렸다.(2020.05.18)[Flow.Txt] 블로그 조회수가 반토막이 나버렸다.(2020.05.18)
Posted at 2020. 5. 19. 01:14 | Posted in Flow.Txt일평균 2,000대를 찍던 블로그의 조회수가 폭락했다.
지난 석가탄신일부터 어린이날 까지의 연휴기간에 조회수가 반토막이 나버렸다.
주말이면 500좀 넘는 만큼 줄어드는 블로그니까.
당연히 연휴기간이 끝나면 다시 원상 복구를 하겠지 라고 생각했다.
하지만 현실은...
연휴기간이 끝나고, 영 회복을 못하고 있다...
무슨일일려나?
간간히 블로그를 통해 아르바이트라는 부수익은 그렇다 쳐도...
이제 3,000을 준비하며 좀 체계화된 강습 컨텐츠를 준비하고 있었는데... 쯥...
내 블로그는 개발과 컴퓨터 설정을 정리해두는 블로그다.
당연히 업무가 많은 평일 일과시과 오후 저녘( 개발자들은 저녘에 일하니까... )의 유입률이 가장 높다.
막연하게 블로그를 기반으로( 가끔 떨어지는 알바받는거말고. )
이것저것 시작해 봐야지라는 막연한 생각이 조금 씩 끝나가고 시작하려는 때에...
기운이 빠지는 건 아니지만 좀 씁쓸 하네...
블로그 조회수가 반토막난게 꼭 코로나19가 아니라.
그냥 구글의 검색조건이 뭔가 변했고 거기서 내 블로그가 검열( ? )되었을 가능성도 크다고 생각하지만.
인생의 다음 막으로 넘어가기 위한 준비 시작하고 있다.
'Flow.Txt' 카테고리의 다른 글
[Flow.Txt] 新 직장인 꼰대 체크 리스트(2020.05.24) (0) | 2020.05.24 |
---|---|
[Flow.Txt] 파이썬 데이터 크롤링 원데이 클래스 수강(2020.05.21) (0) | 2020.05.21 |
[Flow.Txt] 하루 방문자수 2천명을 돌파하였습니다.(2020.04.24) (0) | 2020.04.24 |
[Flow.Txt] 흔한 공돌이가 시대가 바뀜을 느끼는 순간(2020.04.06) (0) | 2020.04.06 |
[Flow.Txt] 마인크래프트 안에 살해당한 기자들의 기사가 모여있다.(2020.03.31) (0) | 2020.03.31 |
참고 : https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/SSL-on-amazon-linux-2.html
참고 : https://docs.aws.amazon.com/ko_kr/opsworks/latest/userguide/workingsecurity-ssl.html
참고 : https://www.comodossl.co.kr/certificate/ssl-installation-guides/Apache-csr-crt.aspx
CA가 서명한 인증서 가져오기
$ cd /etc/pki/tls/private/
$ sudo openssl genrsa -out custom.key
----------------------------------------------------------------------------
$ sudo openssl genrsa -out /etc/pki/tls/private/custom.key
----------------------------------------------------------------------------
$ sudo chown root:root custom.key
$ sudo chmod 600 custom.key
$ ls -al custom.key
원하는 키를 사용하여 CSR을 생성한다. 다음예에는 위에서 생성한 custom.key가 사용된다.
$ sudo openssl req -new -key custom.key -out csr.pem
이름 |
설명 |
예 |
|
해당 국가의 두 자리 ISO 약자 ( 국가코드 ). |
KR(=대한민국) |
|
위치한 지역의 이름 |
Seoul |
| 위치한 지역의 시 / 군 / 구 |
Gangnam-gu |
|
해당 조직의 이름, 부서명 ( 약칭 사용 금지 ) |
Developer Team |
해당 조직에 대한 추가정보 ( 선택사항 ) | ||
|
서비스 도메인명 이 값은 사용자가 브라우저에 입력해야 하는 웹 주소와 정확히 일치해야 한다. 일반적으로 이는 www.example.com의 형식으로, 호스트 이름 또는 별칭이 앞에 붙는 도메인 이름을 뜻한다. 자체 서명된 인증서로 DNS 확인 없이 테스트 하는 경우, 일반 이름은 호스트 이름만으로 구성될 수 있다. CA는 *.example.com과 같이 와일드 카드 이름을 허용하는 인증서도 제공한다. |
|
서버관리자의 이메일 주소 | ||
패스워드 ( 선택사항 ) | ||
이메일 ( 선택사항 ) |
Step04. 인증기관에 CSR 제출
프로덕션용으로 CSR을 인증 기관( CA )에 제출하여 서버 인증서를 얻으려면 다른 자격 증명이나 ID 증명이 필요할 수 있다.
신청이 성공하면 CA에서 디지털 서명된 자격 증명 인증서와 가능한 경우 체인 인증서 파일을 보내준다.
이용 가능한 일부 CA 목록을 보려면 Wikipedia에서 인증기관 공급자를 참고한다.
테스트 용도로만 사용할 수 있는 자체 서명된 인증서를 하나 생성해 보자.
다음 명령줄을 사용하여 자체 서명된 인증서를 생성한다.
$ sudo openssl x509 -req -days 365 -in csr.pem -signkey custom.key -out custom.crt |
[ec2-user@ip-172-31-20-171 /]$ sudo openssl x509 -req -days 365 -in csr.pem -signkey custom.key -out custom.crt Signature ok subject=/C=KR/ST=Seoul/L=Gangnam/O=wickedmiso/OU=wickedmiso/CN=*.wickedmiso.com/emailAddress=saak@wickedmiso.com Getting Private key [ec2-user@ip-172-31-20-171 /]$ ls -al total 28 dr-xr-xr-x 18 root root 308 May 20 17:16 . dr-xr-xr-x 18 root root 308 May 20 17:16 .. -rw-r--r-- 1 root root 0 Jul 5 2019 .autorelabel lrwxrwxrwx 1 root root 7 Jun 19 2019 bin -> usr/bin dr-xr-xr-x 4 root root 4096 May 15 10:47 boot -rw-r--r-- 1 root root 1151 May 20 16:37 csr.pem -rw-r--r-- 1 root root 1338 May 20 17:16 custom.crt -rw------- 1 root root 1675 May 20 16:34 custom.key drwxr-xr-x 15 root root 2820 May 15 22:35 dev drwxr-xr-x 95 root root 8192 May 17 17:55 etc drwxr-xr-x 3 root root 22 Oct 4 2019 home lrwxrwxrwx 1 root root 7 Jun 19 2019 lib -> usr/lib lrwxrwxrwx 1 root root 9 Jun 19 2019 lib64 -> usr/lib64 drwxr-xr-x 2 root root 6 Jun 19 2019 local drwxr-xr-x 2 root root 6 Apr 10 2019 media drwxr-xr-x 2 root root 6 Apr 10 2019 mnt drwxr-xr-x 5 root root 41 Oct 5 2019 opt dr-xr-xr-x 106 root root 0 May 15 22:35 proc dr-xr-x--- 4 root root 167 May 20 16:56 root drwxr-xr-x 31 root root 1040 May 20 04:25 run lrwxrwxrwx 1 root root 8 Jun 19 2019 sbin -> usr/sbin drwxr-xr-x 2 root root 6 Apr 10 2019 srv dr-xr-xr-x 13 root root 0 May 19 23:06 sys drwxrwxrwt 10 root root 330 May 20 16:34 tmp drwxr-xr-x 13 root root 155 Jun 19 2019 usr drwxr-xr-x 20 root root 280 Jul 22 2019 var |
CA는 다양한 목적을 위해 마련된 여러 형식의 파일을 보낼 수 있다.
AWS 자습서에서의 설명은 PEM 형식의 인증서 파일만 사용해야 하는데,
이는 보통 .pem 또는 .crt 파일 확장명으로 표시되지만 항상 그런것은 아니다.
어떤 파일을 사용할지 확실하지 않은 경우 텍스트 편집기로 파일을 열고
---- BEGIN CERTIFICATE ---- ~~~~~~~ 인증서 암호화 TEXT ~~~~~~~ ---- END CERTIFICATE ---- |
위와 같은 형태로 시작하고 끝나는지 확인해 보자.
또한 아래와 같이 파을 실행함으로서 테스트 해볼 수 도 있다.