반응형 개발 이야기131 Docker compose로 Nginx + Flask + uwsgi 배포 Docker compose로 Nginx + Flask(uwsgi로 실행) 환경을 배포하는 방법을 정리합니다. 전체소스 : https://github.com/kjcaway/nginx_flask_test kjcaway/nginx_flask_test nginx + flask docker compose test. Contribute to kjcaway/nginx_flask_test development by creating an account on GitHub. github.com 먼저 패키지 구조는 아래와 같습니다. ├── docker-compose.yml ├── flask │ ├── Dockerfile │ ├── src │ │ ├── run.py │ │ └── webapp │ │ ├── __init__.py.. 2019. 10. 19. React로 ProgressBar 구현하기 요즘 몇몇 웹사이트 들어가보면 브라우저 상단에 ProgressBar가 동작하는 것을 확인 할 수 있습니다. 유투브, 구글애드센스 등 브라우저에서 요청을 하면 ProgressBar를 표시해서 사용자에게 나름(?) 사용성을 향상 시켜줍니다. 해당 글에서는 React 프로젝트에서 상단 ProgressBar를 구현하는 방법을 정리합니다. 아래의 주요 라이브러리를 사용했습니다. CRA(Create React App) Axios(비동기 요청 라이브러리) Material-UI(React UI 라이브러리) 01. 관련 라이브러리 설치 1 2 npm install --save axios npm install --save @material-ui/core cs material-ui의 progressbar 컴포넌트를 사용할 .. 2019. 10. 4. 간단 fixedHeader 테이블 만들기 table 요소 표시할때 header를 고정 시키는 방법을 정리하려합니다. 사실 여러 UI 라이브러리들이 고정된 header로 표시하는 기능을 옵션 형태로 제공 하기도 합니다. 여기서는 css 속성 중 아래 속성을 이용해서 해당 기능을 구현하고자 합니다. overflow: auto position: sticky 먼저 아래와 같은 형태로 테이블을 만들어 봅시다. No. Name Dept Email Expired 1 강팔자 웹개발팀 8888@naver.com Y 2 강호식 기획팀 2222@naver.com Y (...중략) css는 아래와 같이 해줍니다. table { width: 100%; background-color: #f1f1f2; } table > thead > tr > th { font-weigh.. 2019. 9. 29. 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. 이전 1 ··· 4 5 6 7 8 9 10 11 다음 반응형