반응형 분류 전체보기144 Redux-Saga 로 비동기 요청 예제 redux-saga는 애플리케이션의 "부작용"들(데이터 요청(fetch) 등의 비동기 작업, 브라우저 캐시 같은 순수하지 않은 것들)을 쉽게 관리하고 효과적으로 실행하고 간단한 테스트와 쉬운 실패 처리를 목적으로 한다. redux-saga는 애플리케이션에서 필요한 사이드 이펙트를 별도의 스레드로 분리해서 관리할 수 있고, 리덕스의 미들웨어로 리덕스의 액션은 스레드를 시작, 중지, 취소시킬 수 있다고 한다. (redux-saga github에서 발췌) redux-saga를 이용해서 어떻게 애플리케이션을 작성하는지 나름 정리를 해볼까합니다. 검색요청을 하는 기능을 만든다고 가정합시다. 동작은 간단합니다. input box에 검색어 입력 검색 버튼 클릭 서버로 비동기 요청 수행 요청에 대한 성공 또는 실패를 .. 2019. 8. 18. Selenium 네이버 로그인 + Beautifulsoup 나의 메일 리스트 Python의 브라우저 자동화 라이브러리인 Selenium으로 네이버 로그인과 Html 문서 파싱에 쓰이는 Beautifulsoup를 사용한 메일리스트를 가져오는 작업을 해보겠습니다. 테스트 환경은 python 3.7.2입니다. 01. 관련 패키지 설치 1 2 3 4 5 6 7 $$ pip install selenium $$ pip install beautifulsoup4 $$ pip freeze beautifulsoup4==4.8.0 selenium==3.141.0 soupsieve==1.9.2 urllib3==1.25.3 cs 02. 로그인 창 띄우기 네이버(https://naver.com)에서 메일을 클릭해봅시다. URL을 확인 해보니 아래와 같습니다. https://nid.naver.com/nid.. 2019. 8. 4. Docker 명령어 정리 Docker(18.09.8) 기준 명령어 정리 # 도커 버전 확인 1 2 docker version Colored by Color Scripter cs # 도커 이미지 확인 1 docker images cs # 도커 이미지 삭제 && 도커 사용하지 않는 이미지 일괄 삭제 1 2 3 4 5 ## 도커 이미지 삭제 docker rmi nginx:latest ## nginx(이미지명):latest(태그명) ## 사용하지 않는 도커 이미지 일괄 삭제 docker rmi $(docker images -f "dangling=true" -q) cs # 도커 이미지 빌드 1 2 3 4 5 6 docker build -t portfolio:1.0.0 . ## -t, --tag : 이미지명 태그명 설정 ## portfol.. 2019. 7. 27. Docker 빌드 시 소스파일 git으로 얻어오기 toy 프로젝트를 docker image로 만들어서 배포하고자 배포 시나리오를 생각던 중 docker build 시 소스파일을 git으로 가져오는 방법을 정리합니다. 테스트 환경 : VirtualBox 6.0사용 Host : Windows 10 Guest : Ubuntu 16.04 01. Docker 설치 https://basketdeveloper.tistory.com/26?category=798107 를 참고하시면 됩니다. 설치를 확인 하기 위해서는 아래 명령어로 docker version 확인 가능합니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 jckang@jckang:~$ docker version Client: Version: 18.09.8.. 2019. 7. 21. Ubuntu 16.04 VBox 부팅 시 failed to start. Setting guest IRQ filter mask 해결법 Virtualbox로 ubutu 16.04를 사용하다보면 어느순간 갑자기 부팅시 마다 아래와 같은 alert 메시지가 뜬다. VBoxClient (seamless): failed to start. Stage: Setting guest IRQ filter mas Error: VERR_INTERNAL_ERROR 메시지를 보아하니 Virtualbox 관련 에러인듯하네요.(정확히는 잘모르겠네요) 그럴땐 아래와 같이 Virtualbox 게스트과 관련된 몇몇 패키지를 재설치 해주면 된다. 1 2 3 4 sudo apt-get install build-essential sudo apt-get install virtualbox-guest-utils sudo apt-get install virtualbox-guest-x.. 2019. 7. 21. Python으로 웹 크롤링(Crawling ) 요즘 업무를 자동화 하는것에 꽂혀있어서 그런지.. 웹 크롤링(Web Crawling)에 관심이 생겼습니다. 웹 크롤링(Crawling)이란 다른말로 웹 스크랩핑(Scraping)이라고도 합니다. 말그대로 웹사이트를 스크랩(?)하는 작업으로.. 특정 웹사이트에서 특정정보를 잘라와 모으는 것입니다. 어릴적에 숙제로 신문 스크랩하던게 떠오르네요. 크롤링이라고 검색해보면 많은 예제들이 있습니다. 다루는데 있어서 편리한 언어인 Python으로 웹크롤링을 한번 해보도록하겠습니다. 네이버 검색어 Top10을 가져와 보는 예제입니다. 사용할 라이브러리는 아래와 같습니다. - requests : http요청을 간편하게 다룰수 있게 도와주는 라이브러리입니다. - BeautifulSoup : 웹문서를 쉽게 파싱하고 원하는 .. 2019. 7. 19. Python Script 작성시 argument 여러개 받기 회사 업무 효율을 위해서 이런저런 스크립트를 짜곤합니다. 그중 파이썬을 애용하는데요. 작성하기 편하고, 모듈도 잘 만들어 져있어서 잘만 쓰면 너무 좋은 언어인듯합니다. 파이썬으로 스크립트 작성 시 argument에 대한 처리 할 때 아래와 같이 하곤 합니다. # Python 3.7 # file : script.py # author : blabla import sys if __name__ == '__main__': argument = sys.argv del argument[0]# 첫번째 인자는 script.py 즉 실행시킨 파일명이 되기 때문에 지운다 print('Argument : {}'.format(argument)) 위 스크립트를 실행 해보면 아래와 같은 실행결과를 얻을 수 있습니다. PS C:\my.. 2019. 7. 16. Javascript로 key 이벤트 발생 시키기(Pure Javascript) jquery로 특정 이벤트를 일으킬려면 $.trigger를 사용 하면 됩니다. 하지만 jquery없이 순수 자바스크립트로 keydown이벤트를 발생 시킬려면 아래와 같이 하면 됩니다. (function(){ document.addEventListener('keydown', function(e){ const keyCode = e.keyCode; console.log('pushed key ' + e.key); if(keyCode == 13){ // Enter key document.dispatchEvent(new KeyboardEvent('keydown', {key: 'e'})); // document.dispatchEvent(new KeyboardEvent('keyup', {key: 'e'})); } el.. 2019. 7. 15. React 이미지 파일 업로드 하기 React로 파일을 업로드 방법을 정리하려고합니다. 간단한 방법은 아래와 같습니다. 클라이언트 앱(react) view 페이지에서 input[type=file] 요소를 적절한 위치에 추가. state 추가( state를 이용해서 파일을 업로드하려고합니다.) input[type=file] 이벤트 처리 추가 전송 버튼 클릭 시 axios 호출 코드 추가 서버 앱(express) multer 설치(aws s3에 업로드하려면 multer-s3 설치) fileupload 모듈 작성 route에서 upload 코드 추가 먼저 클라이언트앱을 작성해봅시다. 01. view 페이지에 input[type=file] 추가 ./src/App.js import React, { Component } from 'react' cla.. 2019. 6. 24. 리눅스 자주 쓰는 명령어2 * 자주 사용하는 명령어 2 dpkg --list : 설치된 패키지 리스트 apt-get --purge remove [삭제할 패키지] : 패키지 완전 삭제 apt-cache search [정규식] : 패키지 서칭 scp [파일명] [계정]@[IP주소]:[경로] : 파일 ssh로 전송 ex) scp -r /home/util user@111.222.333.444: chown [계정명]:[그룹명] text.txt : 파일 소유자 변경 cat /etc/issue : 리눅스 OS정보 확인 tput reset : clear랑 비슷 env : 환경변수 확인 lsof -i tcp:8080 : 8080번 포트 상태 확인 * 아래는 firewall 관련 명령어 firewall-cmd --state : 방화벽 실행 여부를 .. 2019. 6. 24. 초간단 Express + Mysql 환경 셋팅 Nodejs로 Mysql 연동 방법을 알아봅니다. Express 프레임워크를 사용해서 간단한 API 서버를 만들려고합니다. mysql이라는 라이브러리를 설치해 사용하면 됩니다. 01. mysql 라이브러리 설치 npm install --save mysql 02. config.js 파일 작성 ./config.js const config = { host : '***************.rds.amazonaws.com', user : 'username', password : 'password', port : 3306, database : 'dbname', connectionLimit : 10 }; module.exports = config; 위와 같이 config정보를 따로 파일로 관리하였습니다. (미리 구.. 2019. 5. 14. React와 Express 서버 연동 시키기 React로 토이 플젝을 진행 중인데 서버 코드가 필요하고 Express 서버를 사용할까 합니다. 간단하게 Express로 서버를 만들고 React와 연동 시켜보겠습니다. 연동 방법은 create-react-app v2에서 새롭게 추가된 기능 중 하나인 proxy 설정 커스터 마이징을 이용하는 것이고 npm-run-all 모듈을 이용해서 명령어 하나로 client와 server를 동시에 띄워볼려고 합니다. create-react-app로 플젝이 생성 완료 됬다고 가정하고 진행하겠습니다. 01. server 작성 먼저 src와 같은 level에 server라는 폴더를 만들었습니다. 그리고 app.js를 아래와 같이 작성하였습니다. const express = require('express'); const .. 2019. 4. 28. 이전 1 ··· 5 6 7 8 9 10 11 12 다음 반응형