SlideShare una empresa de Scribd logo
1 de 23
Descargar para leer sin conexión
Ubuntu에서
Flask개발 맛보기 - 1
신부설
latest:2015.04.13
2015.04.11
2015.02.13
ubuntu(개발 환경, 서버 운용)
python(앱 로직 개발 언어)
pip(파이썬 패키지 관리자)
virtualenv(독립된 파이썬 환경 구축자)
sublime text(코드 편집기)
flask(앱 로직을 위한 프레임워크)
Server side 준비물
mysql(데이터 DB)
sqlalchemy(
웹서버 로직과 DB를 연결하는 ORM)
Nginx(웹 서버, 앱서버의 실행환경)
uWSGI(앱 서버)
Client side 준비물
크롬 브라우저의 앱 postman RESTclient
(클라이언트 시뮬레이터)
1. 우분투 환경에 파이썬 개발 환경을 구축할 수 있습니다.
2. Flask 프레임워크를 사용해 앱 로직을 개발할 수 있습니다.
3. Flask와 MySQL을 연동시켜 데이터를 관리할 수 있습니다.
4. Nginx&uWSGI 웹서버를 우분투에 올려 동작시킬 수 있습니다.
5. Flask로 만든 웹앱을 Nginx&uWSGI 웹서버에 배포할 수 있습니다.
이 학습을 통해 배울 수 있는 것
Python이란? (앱 로직 개발 언어)
파이썬은 무료 프로그래밍 언어입니다.
파이썬은 교육용으로 개발되어서 문법이 쉽고 간결합니다.
파이썬의 철학은 "최선의 방법 한 가지를 사용하자"입니다.
파이썬은 다루기 쉽고 필요한 대부분의 기능이 좋은 라이브러리로 제공되
기 때문에 파이썬을 사용하면 생산성이 높아집니다.
Python 설치
파이썬은 우분투에 처음부터 설치되어 있습니다.
PIP란? (파이썬 패키지 관리자)
PIP(Pip installs packages)는 파이썬 패키지 관리자 중 하나입니다.
PIP는 어떤 파이썬 패키지를 설치할 때
설치할 패키지가 의존하는 다른 패키지들도 함께 설치해줍니다.
PIP는 easy_install의 향상된 버전입니다.
앞으로 easy_install은 폐기될 예정이라고 합니다.
따라서 이왕에 PIP를 사용합니다.
PIP 설치
-설치-
$sudo apt-get install python-setuptools
$sudo easy_install pip
-주의-
다음 명령 $sudo apt-get install python-pip으로 한 번 더 설치하면 중복되
어 설치되므로 굳이 이 명령으로 설치하지 않습니다.
virtualenv란? (독립된 파이썬 환경 구축자)
virtualenv는 하나의 컴퓨터에서 여러 개의 독립된 파이썬 환경을
가상으로 구축할 수 있도록 도와주는 도구입니다.
virtualenv 설치
-설치-
$sudo pip install virtualenv
-주의-
다음 명령 $sudo apt-get install python-virtualenv으로 한 번 더 설치하면
중복되어 설치되므로 굳이 이 명령으로 설치하지 않습니다.
-가상으로 환경 구축-
$sudo mkdir /home/bssin #bssin은 유저디렉토리
$sudo cd /home/bssin
$sudo virtualenv venv
$sudo . /home/bssin/venv/bin/activate #가상환경 실행
가상환경 종료는 deactivate
독립된 파이썬 환경을 가상으로 구축
SublimeText란? (코드 편집기)
SublimeText(이하 ST)는 가볍고 빠른 에디터입니다.
코드 힌트, 린트 관련 플러그인을 설치하여 사용할 수 있고,
빌드툴 연동 등의 다양한 기능을 가지고 있어서
파이썬 개발에 유용합니다.
SublimeText 설치
http://www.sublimetext.com/3
SublimeText 설치
내려받은 .deb파일을 실행해서 설치합니다.
개발언어를 python으로 설정
빌드시스템을 독립된 파이썬 환경으로 설정
ST에서 독립된 파이썬 환경을 통해 빌드하려면
새 빌드시스템을 만들어야 합니다.
Tools - Build System - New Build System
열린 파일에서 아래 이미지와 같이 입력하고 파일을 저장합니다.
플러그인 Package Manager 설치
ST의 플러그인 중 하나인 패키지 매니저는
쉽게 패키지 또는 플러그인을 찾고 설치하는 기능을 제공합니다.
플러그인 Package Manager 설치
https://packagecontrol.io/installation#st3
아래 이미지에서 빨간박스 안에
있는 내용을 복사합니다.
서브라임텍스트에서 단축키 Ctrl + ` 를
누르면 콘솔창이 나타납니다.
콘솔창에 복사했던 내용을 붙여넣고 엔
터를 칩니다.
곧바로 패키지 매니저가 설치됩니다.
플러그인 SublimeREPL 설치
SublimeREPL은 인터프리터 언어들에게
대화형 모드를 지원하도록 도와주는 플러그인입니다.
단축키 Ctrl+Shift+P를 누르면 검색창이 나타납니다.
pci를 타이핑하면 Install Package가 찾아집니다.
선택하고 엔터를 치면 새로운 검색창이 나타납니다.
repl을 타이핑하면 SublimeTextREPL이 찾아집니다.
선택하고 엔터를 치면 곧바로 설치됩니다.
플러그인 SublimeREPL 설치
ST에서 독립된 파이썬 환경을 통해 인터프리터를 실행하려면
SublimeREPL의 설정파일을 수정해야 합니다.
Preferences - Package Settings - SublimeTextREPL - Default
열린 파일에서 python_virtualenv_paths속성에
"/home/bssin/venv"를 추가합니다.
Flask란? (앱 로직을 위한 프레임워크)
앱 로직을 파이썬으로 쉽고 편하게 작성할 수 있도록 돕는
파이썬 기반의 마이크로 웹 프레임워크입니다.
마이크로라는 뜻에는 최소한의 기본 기능만 담고 있으면서
추가로 필요한 기능은 라이브러리를 선택해 도입하도록 하겠다는
철학이 담겨있습니다.
Flask 설치
-독립된 파이썬 환경에 설치-
$sudo . /home/bssin/venv/bin/activate #먼저 독립된 가상환경을 실행
(venv)$sudo pip install flask
이 환경에는 Flask와 함께, Flask가 의존하는
벡자이크 WSGI 툴킷 라이브러리와 Jinja2 템플릿 엔진 라이브러리가
함께 설치됩니다.
2에서 계속
참고 서적: 파이썬 웹 프로그래밍
플라스크를 이용한 쉽고 바른 웹개발
주성식, 홍성민. (2014). 위키북스
신부설 c9coco@gmail.com

Más contenido relacionado

La actualidad más candente

도구를 활용한 더 나은 웹 개발: Yeoman
도구를 활용한 더 나은 웹 개발: Yeoman도구를 활용한 더 나은 웹 개발: Yeoman
도구를 활용한 더 나은 웹 개발: YeomanJae Sung Park
 
Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드
Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드
Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드수정 김
 
개발자를 위한, WINDOWS 10으로 시작하는 UBUNTU LINUX
개발자를 위한,  WINDOWS 10으로 시작하는 UBUNTU LINUX개발자를 위한,  WINDOWS 10으로 시작하는 UBUNTU LINUX
개발자를 위한, WINDOWS 10으로 시작하는 UBUNTU LINUXUbuntu Korea Community
 
Startup JavaScript 7 - Node.JS 기초
Startup JavaScript 7 - Node.JS 기초Startup JavaScript 7 - Node.JS 기초
Startup JavaScript 7 - Node.JS 기초Circulus
 
게임 개발에 도움을 주는 CruiseControl.NET과 Windows Terminal
게임 개발에 도움을 주는 CruiseControl.NET과 Windows Terminal게임 개발에 도움을 주는 CruiseControl.NET과 Windows Terminal
게임 개발에 도움을 주는 CruiseControl.NET과 Windows TerminalOnGameServer
 
빠른 프로토타이핑을 위한 웹앱 자동화 툴 - YEOMAN
빠른 프로토타이핑을 위한 웹앱 자동화 툴 - YEOMAN빠른 프로토타이핑을 위한 웹앱 자동화 툴 - YEOMAN
빠른 프로토타이핑을 위한 웹앱 자동화 툴 - YEOMAN정호 전
 
[2015:1] phpdocumentor 설치와 사용법
[2015:1] phpdocumentor 설치와 사용법[2015:1] phpdocumentor 설치와 사용법
[2015:1] phpdocumentor 설치와 사용법Amy Kim
 
Vim for php
Vim for phpVim for php
Vim for phpSol Kim
 
Envoy 를 이용한 코드 배포 자동화
Envoy 를 이용한 코드 배포 자동화Envoy 를 이용한 코드 배포 자동화
Envoy 를 이용한 코드 배포 자동화Juwon Kim
 
[PHPFest 2013] PHP 성능 향상 방법
[PHPFest 2013] PHP 성능 향상 방법[PHPFest 2013] PHP 성능 향상 방법
[PHPFest 2013] PHP 성능 향상 방법phpkorea
 
Laravel 로 배우는 서버사이드 #1
Laravel 로 배우는 서버사이드 #1Laravel 로 배우는 서버사이드 #1
Laravel 로 배우는 서버사이드 #1성일 한
 
Python server-101
Python server-101Python server-101
Python server-101Huey Park
 
문돌이가 가르치는 서버사이드 PHP
문돌이가 가르치는 서버사이드 PHP문돌이가 가르치는 서버사이드 PHP
문돌이가 가르치는 서버사이드 PHP동현 조
 
[설치의 정석] EC2에서 워드프레스 설치하기
[설치의 정석] EC2에서 워드프레스 설치하기[설치의 정석] EC2에서 워드프레스 설치하기
[설치의 정석] EC2에서 워드프레스 설치하기Jay Park
 
Front-end Development Process - 어디까지 개선할 수 있나
Front-end Development Process - 어디까지 개선할 수 있나Front-end Development Process - 어디까지 개선할 수 있나
Front-end Development Process - 어디까지 개선할 수 있나JeongHun Byeon
 
[설치의 정석] EC2에서 Java-Apache-Tomcat 설치하기
[설치의 정석] EC2에서 Java-Apache-Tomcat 설치하기[설치의 정석] EC2에서 Java-Apache-Tomcat 설치하기
[설치의 정석] EC2에서 Java-Apache-Tomcat 설치하기Jay Park
 

La actualidad más candente (20)

Django beginning
Django beginningDjango beginning
Django beginning
 
도구를 활용한 더 나은 웹 개발: Yeoman
도구를 활용한 더 나은 웹 개발: Yeoman도구를 활용한 더 나은 웹 개발: Yeoman
도구를 활용한 더 나은 웹 개발: Yeoman
 
Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드
Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드
Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드
 
개발자를 위한, WINDOWS 10으로 시작하는 UBUNTU LINUX
개발자를 위한,  WINDOWS 10으로 시작하는 UBUNTU LINUX개발자를 위한,  WINDOWS 10으로 시작하는 UBUNTU LINUX
개발자를 위한, WINDOWS 10으로 시작하는 UBUNTU LINUX
 
Startup JavaScript 7 - Node.JS 기초
Startup JavaScript 7 - Node.JS 기초Startup JavaScript 7 - Node.JS 기초
Startup JavaScript 7 - Node.JS 기초
 
게임 개발에 도움을 주는 CruiseControl.NET과 Windows Terminal
게임 개발에 도움을 주는 CruiseControl.NET과 Windows Terminal게임 개발에 도움을 주는 CruiseControl.NET과 Windows Terminal
게임 개발에 도움을 주는 CruiseControl.NET과 Windows Terminal
 
빠른 프로토타이핑을 위한 웹앱 자동화 툴 - YEOMAN
빠른 프로토타이핑을 위한 웹앱 자동화 툴 - YEOMAN빠른 프로토타이핑을 위한 웹앱 자동화 툴 - YEOMAN
빠른 프로토타이핑을 위한 웹앱 자동화 툴 - YEOMAN
 
[2015:1] phpdocumentor 설치와 사용법
[2015:1] phpdocumentor 설치와 사용법[2015:1] phpdocumentor 설치와 사용법
[2015:1] phpdocumentor 설치와 사용법
 
Vim for php
Vim for phpVim for php
Vim for php
 
Envoy 를 이용한 코드 배포 자동화
Envoy 를 이용한 코드 배포 자동화Envoy 를 이용한 코드 배포 자동화
Envoy 를 이용한 코드 배포 자동화
 
Docker설치
Docker설치Docker설치
Docker설치
 
[PHPFest 2013] PHP 성능 향상 방법
[PHPFest 2013] PHP 성능 향상 방법[PHPFest 2013] PHP 성능 향상 방법
[PHPFest 2013] PHP 성능 향상 방법
 
Laravel 로 배우는 서버사이드 #1
Laravel 로 배우는 서버사이드 #1Laravel 로 배우는 서버사이드 #1
Laravel 로 배우는 서버사이드 #1
 
Node.js 첫걸음
Node.js 첫걸음Node.js 첫걸음
Node.js 첫걸음
 
Python server-101
Python server-101Python server-101
Python server-101
 
문돌이가 가르치는 서버사이드 PHP
문돌이가 가르치는 서버사이드 PHP문돌이가 가르치는 서버사이드 PHP
문돌이가 가르치는 서버사이드 PHP
 
[설치의 정석] EC2에서 워드프레스 설치하기
[설치의 정석] EC2에서 워드프레스 설치하기[설치의 정석] EC2에서 워드프레스 설치하기
[설치의 정석] EC2에서 워드프레스 설치하기
 
Front-end Development Process - 어디까지 개선할 수 있나
Front-end Development Process - 어디까지 개선할 수 있나Front-end Development Process - 어디까지 개선할 수 있나
Front-end Development Process - 어디까지 개선할 수 있나
 
Gulp 입문
Gulp 입문 Gulp 입문
Gulp 입문
 
[설치의 정석] EC2에서 Java-Apache-Tomcat 설치하기
[설치의 정석] EC2에서 Java-Apache-Tomcat 설치하기[설치의 정석] EC2에서 Java-Apache-Tomcat 설치하기
[설치의 정석] EC2에서 Java-Apache-Tomcat 설치하기
 

Destacado

캡셔네이터 사용자 가이드
캡셔네이터 사용자 가이드캡셔네이터 사용자 가이드
캡셔네이터 사용자 가이드Booseol Shin
 
03.GitHub으로 웹페이지
03.GitHub으로 웹페이지03.GitHub으로 웹페이지
03.GitHub으로 웹페이지Booseol Shin
 
파이썬 플라스크로 배우는 웹프로그래밍 #3 (ABCD)
파이썬 플라스크로 배우는 웹프로그래밍 #3 (ABCD)파이썬 플라스크로 배우는 웹프로그래밍 #3 (ABCD)
파이썬 플라스크로 배우는 웹프로그래밍 #3 (ABCD)성일 한
 
Python과 flask 입문(1)
Python과 flask 입문(1)Python과 flask 입문(1)
Python과 flask 입문(1)성천 이
 
파이썬 플라스크로 배우는 웹프로그래밍 #4 (ABCD)
파이썬 플라스크로 배우는 웹프로그래밍 #4 (ABCD)파이썬 플라스크로 배우는 웹프로그래밍 #4 (ABCD)
파이썬 플라스크로 배우는 웹프로그래밍 #4 (ABCD)성일 한
 
파이썬 플라스크로 배우는 웹프로그래밍 #2 (ABCD)
파이썬 플라스크로 배우는 웹프로그래밍 #2 (ABCD)파이썬 플라스크로 배우는 웹프로그래밍 #2 (ABCD)
파이썬 플라스크로 배우는 웹프로그래밍 #2 (ABCD)성일 한
 

Destacado (6)

캡셔네이터 사용자 가이드
캡셔네이터 사용자 가이드캡셔네이터 사용자 가이드
캡셔네이터 사용자 가이드
 
03.GitHub으로 웹페이지
03.GitHub으로 웹페이지03.GitHub으로 웹페이지
03.GitHub으로 웹페이지
 
파이썬 플라스크로 배우는 웹프로그래밍 #3 (ABCD)
파이썬 플라스크로 배우는 웹프로그래밍 #3 (ABCD)파이썬 플라스크로 배우는 웹프로그래밍 #3 (ABCD)
파이썬 플라스크로 배우는 웹프로그래밍 #3 (ABCD)
 
Python과 flask 입문(1)
Python과 flask 입문(1)Python과 flask 입문(1)
Python과 flask 입문(1)
 
파이썬 플라스크로 배우는 웹프로그래밍 #4 (ABCD)
파이썬 플라스크로 배우는 웹프로그래밍 #4 (ABCD)파이썬 플라스크로 배우는 웹프로그래밍 #4 (ABCD)
파이썬 플라스크로 배우는 웹프로그래밍 #4 (ABCD)
 
파이썬 플라스크로 배우는 웹프로그래밍 #2 (ABCD)
파이썬 플라스크로 배우는 웹프로그래밍 #2 (ABCD)파이썬 플라스크로 배우는 웹프로그래밍 #2 (ABCD)
파이썬 플라스크로 배우는 웹프로그래밍 #2 (ABCD)
 

Similar a Ubuntu에서 Flask개발 맛보기 - 1

Python study 1강 (오픈소스컨설팅 내부 강의)
Python study 1강 (오픈소스컨설팅 내부 강의)Python study 1강 (오픈소스컨설팅 내부 강의)
Python study 1강 (오픈소스컨설팅 내부 강의)정명훈 Jerry Jeong
 
[231]나는서버를썰터이니너는개발만하여라 양지욱
[231]나는서버를썰터이니너는개발만하여라 양지욱[231]나는서버를썰터이니너는개발만하여라 양지욱
[231]나는서버를썰터이니너는개발만하여라 양지욱NAVER D2
 
Internship backend
Internship backendInternship backend
Internship backendYein Sim
 
Big Data platform을 위한 Sencha Ext JS 사례.
Big Data platform을 위한 Sencha Ext JS 사례.Big Data platform을 위한 Sencha Ext JS 사례.
Big Data platform을 위한 Sencha Ext JS 사례.효근 박
 
빌드툴과 소켓 통신(TCP/UDP + IO/NIO)에 대한 이해
빌드툴과 소켓 통신(TCP/UDP + IO/NIO)에 대한 이해빌드툴과 소켓 통신(TCP/UDP + IO/NIO)에 대한 이해
빌드툴과 소켓 통신(TCP/UDP + IO/NIO)에 대한 이해Koreatech
 
[개방형 클라우드 플랫폼 오픈세미나 오픈클라우드 Pub] 3.open shift 분석
[개방형 클라우드 플랫폼 오픈세미나 오픈클라우드 Pub] 3.open shift 분석[개방형 클라우드 플랫폼 오픈세미나 오픈클라우드 Pub] 3.open shift 분석
[개방형 클라우드 플랫폼 오픈세미나 오픈클라우드 Pub] 3.open shift 분석Tommy Lee
 
[NDC18] 만들고 붓고 부수고 - 〈야생의 땅: 듀랑고〉 서버 관리 배포 이야기
[NDC18] 만들고 붓고 부수고 - 〈야생의 땅: 듀랑고〉 서버 관리 배포 이야기[NDC18] 만들고 붓고 부수고 - 〈야생의 땅: 듀랑고〉 서버 관리 배포 이야기
[NDC18] 만들고 붓고 부수고 - 〈야생의 땅: 듀랑고〉 서버 관리 배포 이야기Chanwoong Kim
 
Nutch Homepage Search Engine
Nutch Homepage Search EngineNutch Homepage Search Engine
Nutch Homepage Search EngineKay Kim
 
Python packaging
Python packagingPython packaging
Python packagingJi Hun Kim
 
강분도 - 공개SW개발과 우분투 (2010Y10M05D)
강분도 - 공개SW개발과 우분투 (2010Y10M05D)강분도 - 공개SW개발과 우분투 (2010Y10M05D)
강분도 - 공개SW개발과 우분투 (2010Y10M05D)Ubuntu Korea Community
 
Zinst 패키지 기반의-리눅스_중앙관리시스템_20140415
Zinst 패키지 기반의-리눅스_중앙관리시스템_20140415Zinst 패키지 기반의-리눅스_중앙관리시스템_20140415
Zinst 패키지 기반의-리눅스_중앙관리시스템_20140415sprdd
 
개발 방식을 바꾸는 15가지 기술
개발 방식을 바꾸는 15가지 기술개발 방식을 바꾸는 15가지 기술
개발 방식을 바꾸는 15가지 기술중선 곽
 
맨땅에서 AI학습플랫폼을 만들기까지
맨땅에서 AI학습플랫폼을 만들기까지맨땅에서 AI학습플랫폼을 만들기까지
맨땅에서 AI학습플랫폼을 만들기까지Sunwoo Park
 
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발Jinuk Kim
 
보안프로젝트 세미나 Viper-v1.2
보안프로젝트 세미나 Viper-v1.2보안프로젝트 세미나 Viper-v1.2
보안프로젝트 세미나 Viper-v1.2Jason Choi
 
WeAreDevelopers_micro_frontend_framework.pdf
WeAreDevelopers_micro_frontend_framework.pdfWeAreDevelopers_micro_frontend_framework.pdf
WeAreDevelopers_micro_frontend_framework.pdfjaneSim13
 
생산성을 높여주는 iOS 개발 방법들.pdf
생산성을 높여주는 iOS 개발 방법들.pdf생산성을 높여주는 iOS 개발 방법들.pdf
생산성을 높여주는 iOS 개발 방법들.pdfssuserb942d2
 
01.개발환경 교육교재
01.개발환경 교육교재01.개발환경 교육교재
01.개발환경 교육교재Hankyo
 

Similar a Ubuntu에서 Flask개발 맛보기 - 1 (20)

Python study 1강 (오픈소스컨설팅 내부 강의)
Python study 1강 (오픈소스컨설팅 내부 강의)Python study 1강 (오픈소스컨설팅 내부 강의)
Python study 1강 (오픈소스컨설팅 내부 강의)
 
[231]나는서버를썰터이니너는개발만하여라 양지욱
[231]나는서버를썰터이니너는개발만하여라 양지욱[231]나는서버를썰터이니너는개발만하여라 양지욱
[231]나는서버를썰터이니너는개발만하여라 양지욱
 
Internship backend
Internship backendInternship backend
Internship backend
 
2015.07.01
2015.07.012015.07.01
2015.07.01
 
(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기
(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기
(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기
 
Big Data platform을 위한 Sencha Ext JS 사례.
Big Data platform을 위한 Sencha Ext JS 사례.Big Data platform을 위한 Sencha Ext JS 사례.
Big Data platform을 위한 Sencha Ext JS 사례.
 
빌드툴과 소켓 통신(TCP/UDP + IO/NIO)에 대한 이해
빌드툴과 소켓 통신(TCP/UDP + IO/NIO)에 대한 이해빌드툴과 소켓 통신(TCP/UDP + IO/NIO)에 대한 이해
빌드툴과 소켓 통신(TCP/UDP + IO/NIO)에 대한 이해
 
[개방형 클라우드 플랫폼 오픈세미나 오픈클라우드 Pub] 3.open shift 분석
[개방형 클라우드 플랫폼 오픈세미나 오픈클라우드 Pub] 3.open shift 분석[개방형 클라우드 플랫폼 오픈세미나 오픈클라우드 Pub] 3.open shift 분석
[개방형 클라우드 플랫폼 오픈세미나 오픈클라우드 Pub] 3.open shift 분석
 
[NDC18] 만들고 붓고 부수고 - 〈야생의 땅: 듀랑고〉 서버 관리 배포 이야기
[NDC18] 만들고 붓고 부수고 - 〈야생의 땅: 듀랑고〉 서버 관리 배포 이야기[NDC18] 만들고 붓고 부수고 - 〈야생의 땅: 듀랑고〉 서버 관리 배포 이야기
[NDC18] 만들고 붓고 부수고 - 〈야생의 땅: 듀랑고〉 서버 관리 배포 이야기
 
Nutch Homepage Search Engine
Nutch Homepage Search EngineNutch Homepage Search Engine
Nutch Homepage Search Engine
 
Python packaging
Python packagingPython packaging
Python packaging
 
강분도 - 공개SW개발과 우분투 (2010Y10M05D)
강분도 - 공개SW개발과 우분투 (2010Y10M05D)강분도 - 공개SW개발과 우분투 (2010Y10M05D)
강분도 - 공개SW개발과 우분투 (2010Y10M05D)
 
Zinst 패키지 기반의-리눅스_중앙관리시스템_20140415
Zinst 패키지 기반의-리눅스_중앙관리시스템_20140415Zinst 패키지 기반의-리눅스_중앙관리시스템_20140415
Zinst 패키지 기반의-리눅스_중앙관리시스템_20140415
 
개발 방식을 바꾸는 15가지 기술
개발 방식을 바꾸는 15가지 기술개발 방식을 바꾸는 15가지 기술
개발 방식을 바꾸는 15가지 기술
 
맨땅에서 AI학습플랫폼을 만들기까지
맨땅에서 AI학습플랫폼을 만들기까지맨땅에서 AI학습플랫폼을 만들기까지
맨땅에서 AI학습플랫폼을 만들기까지
 
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발
 
보안프로젝트 세미나 Viper-v1.2
보안프로젝트 세미나 Viper-v1.2보안프로젝트 세미나 Viper-v1.2
보안프로젝트 세미나 Viper-v1.2
 
WeAreDevelopers_micro_frontend_framework.pdf
WeAreDevelopers_micro_frontend_framework.pdfWeAreDevelopers_micro_frontend_framework.pdf
WeAreDevelopers_micro_frontend_framework.pdf
 
생산성을 높여주는 iOS 개발 방법들.pdf
생산성을 높여주는 iOS 개발 방법들.pdf생산성을 높여주는 iOS 개발 방법들.pdf
생산성을 높여주는 iOS 개발 방법들.pdf
 
01.개발환경 교육교재
01.개발환경 교육교재01.개발환경 교육교재
01.개발환경 교육교재
 

Más de Booseol Shin

2017-07-10 브릿지 패턴
2017-07-10 브릿지 패턴2017-07-10 브릿지 패턴
2017-07-10 브릿지 패턴Booseol Shin
 
파이썬2.7 기초 공부한 것 정리
파이썬2.7 기초 공부한 것 정리파이썬2.7 기초 공부한 것 정리
파이썬2.7 기초 공부한 것 정리Booseol Shin
 
HTML&CSS 태그, 속성, 셀렉터
HTML&CSS 태그, 속성, 셀렉터HTML&CSS 태그, 속성, 셀렉터
HTML&CSS 태그, 속성, 셀렉터Booseol Shin
 
안드로이드 머터리얼 디자인 기반의 앱 레이아웃 가이드 (2)
안드로이드 머터리얼 디자인 기반의 앱 레이아웃 가이드 (2)안드로이드 머터리얼 디자인 기반의 앱 레이아웃 가이드 (2)
안드로이드 머터리얼 디자인 기반의 앱 레이아웃 가이드 (2)Booseol Shin
 
안드로이드 머터리얼 디자인 기반의 앱 레이아웃 가이드 (1)
안드로이드 머터리얼 디자인 기반의 앱 레이아웃 가이드 (1)안드로이드 머터리얼 디자인 기반의 앱 레이아웃 가이드 (1)
안드로이드 머터리얼 디자인 기반의 앱 레이아웃 가이드 (1)Booseol Shin
 
초보 블로그 쇼핑몰 만들기
초보 블로그 쇼핑몰 만들기초보 블로그 쇼핑몰 만들기
초보 블로그 쇼핑몰 만들기Booseol Shin
 
머터리얼 디자인 문서 개인적인 번역
머터리얼 디자인 문서 개인적인 번역머터리얼 디자인 문서 개인적인 번역
머터리얼 디자인 문서 개인적인 번역Booseol Shin
 
안드로이드에서 플러리를 쉽게 사용하기
안드로이드에서 플러리를 쉽게 사용하기안드로이드에서 플러리를 쉽게 사용하기
안드로이드에서 플러리를 쉽게 사용하기Booseol Shin
 

Más de Booseol Shin (8)

2017-07-10 브릿지 패턴
2017-07-10 브릿지 패턴2017-07-10 브릿지 패턴
2017-07-10 브릿지 패턴
 
파이썬2.7 기초 공부한 것 정리
파이썬2.7 기초 공부한 것 정리파이썬2.7 기초 공부한 것 정리
파이썬2.7 기초 공부한 것 정리
 
HTML&CSS 태그, 속성, 셀렉터
HTML&CSS 태그, 속성, 셀렉터HTML&CSS 태그, 속성, 셀렉터
HTML&CSS 태그, 속성, 셀렉터
 
안드로이드 머터리얼 디자인 기반의 앱 레이아웃 가이드 (2)
안드로이드 머터리얼 디자인 기반의 앱 레이아웃 가이드 (2)안드로이드 머터리얼 디자인 기반의 앱 레이아웃 가이드 (2)
안드로이드 머터리얼 디자인 기반의 앱 레이아웃 가이드 (2)
 
안드로이드 머터리얼 디자인 기반의 앱 레이아웃 가이드 (1)
안드로이드 머터리얼 디자인 기반의 앱 레이아웃 가이드 (1)안드로이드 머터리얼 디자인 기반의 앱 레이아웃 가이드 (1)
안드로이드 머터리얼 디자인 기반의 앱 레이아웃 가이드 (1)
 
초보 블로그 쇼핑몰 만들기
초보 블로그 쇼핑몰 만들기초보 블로그 쇼핑몰 만들기
초보 블로그 쇼핑몰 만들기
 
머터리얼 디자인 문서 개인적인 번역
머터리얼 디자인 문서 개인적인 번역머터리얼 디자인 문서 개인적인 번역
머터리얼 디자인 문서 개인적인 번역
 
안드로이드에서 플러리를 쉽게 사용하기
안드로이드에서 플러리를 쉽게 사용하기안드로이드에서 플러리를 쉽게 사용하기
안드로이드에서 플러리를 쉽게 사용하기
 

Ubuntu에서 Flask개발 맛보기 - 1

  • 1. Ubuntu에서 Flask개발 맛보기 - 1 신부설 latest:2015.04.13 2015.04.11 2015.02.13
  • 2. ubuntu(개발 환경, 서버 운용) python(앱 로직 개발 언어) pip(파이썬 패키지 관리자) virtualenv(독립된 파이썬 환경 구축자) sublime text(코드 편집기) flask(앱 로직을 위한 프레임워크) Server side 준비물 mysql(데이터 DB) sqlalchemy( 웹서버 로직과 DB를 연결하는 ORM) Nginx(웹 서버, 앱서버의 실행환경) uWSGI(앱 서버)
  • 3. Client side 준비물 크롬 브라우저의 앱 postman RESTclient (클라이언트 시뮬레이터)
  • 4. 1. 우분투 환경에 파이썬 개발 환경을 구축할 수 있습니다. 2. Flask 프레임워크를 사용해 앱 로직을 개발할 수 있습니다. 3. Flask와 MySQL을 연동시켜 데이터를 관리할 수 있습니다. 4. Nginx&uWSGI 웹서버를 우분투에 올려 동작시킬 수 있습니다. 5. Flask로 만든 웹앱을 Nginx&uWSGI 웹서버에 배포할 수 있습니다. 이 학습을 통해 배울 수 있는 것
  • 5. Python이란? (앱 로직 개발 언어) 파이썬은 무료 프로그래밍 언어입니다. 파이썬은 교육용으로 개발되어서 문법이 쉽고 간결합니다. 파이썬의 철학은 "최선의 방법 한 가지를 사용하자"입니다. 파이썬은 다루기 쉽고 필요한 대부분의 기능이 좋은 라이브러리로 제공되 기 때문에 파이썬을 사용하면 생산성이 높아집니다.
  • 6. Python 설치 파이썬은 우분투에 처음부터 설치되어 있습니다.
  • 7. PIP란? (파이썬 패키지 관리자) PIP(Pip installs packages)는 파이썬 패키지 관리자 중 하나입니다. PIP는 어떤 파이썬 패키지를 설치할 때 설치할 패키지가 의존하는 다른 패키지들도 함께 설치해줍니다. PIP는 easy_install의 향상된 버전입니다. 앞으로 easy_install은 폐기될 예정이라고 합니다. 따라서 이왕에 PIP를 사용합니다.
  • 8. PIP 설치 -설치- $sudo apt-get install python-setuptools $sudo easy_install pip -주의- 다음 명령 $sudo apt-get install python-pip으로 한 번 더 설치하면 중복되 어 설치되므로 굳이 이 명령으로 설치하지 않습니다.
  • 9. virtualenv란? (독립된 파이썬 환경 구축자) virtualenv는 하나의 컴퓨터에서 여러 개의 독립된 파이썬 환경을 가상으로 구축할 수 있도록 도와주는 도구입니다.
  • 10. virtualenv 설치 -설치- $sudo pip install virtualenv -주의- 다음 명령 $sudo apt-get install python-virtualenv으로 한 번 더 설치하면 중복되어 설치되므로 굳이 이 명령으로 설치하지 않습니다.
  • 11. -가상으로 환경 구축- $sudo mkdir /home/bssin #bssin은 유저디렉토리 $sudo cd /home/bssin $sudo virtualenv venv $sudo . /home/bssin/venv/bin/activate #가상환경 실행 가상환경 종료는 deactivate 독립된 파이썬 환경을 가상으로 구축
  • 12. SublimeText란? (코드 편집기) SublimeText(이하 ST)는 가볍고 빠른 에디터입니다. 코드 힌트, 린트 관련 플러그인을 설치하여 사용할 수 있고, 빌드툴 연동 등의 다양한 기능을 가지고 있어서 파이썬 개발에 유용합니다.
  • 14. SublimeText 설치 내려받은 .deb파일을 실행해서 설치합니다.
  • 16. 빌드시스템을 독립된 파이썬 환경으로 설정 ST에서 독립된 파이썬 환경을 통해 빌드하려면 새 빌드시스템을 만들어야 합니다. Tools - Build System - New Build System 열린 파일에서 아래 이미지와 같이 입력하고 파일을 저장합니다.
  • 17. 플러그인 Package Manager 설치 ST의 플러그인 중 하나인 패키지 매니저는 쉽게 패키지 또는 플러그인을 찾고 설치하는 기능을 제공합니다.
  • 18. 플러그인 Package Manager 설치 https://packagecontrol.io/installation#st3 아래 이미지에서 빨간박스 안에 있는 내용을 복사합니다. 서브라임텍스트에서 단축키 Ctrl + ` 를 누르면 콘솔창이 나타납니다. 콘솔창에 복사했던 내용을 붙여넣고 엔 터를 칩니다. 곧바로 패키지 매니저가 설치됩니다.
  • 19. 플러그인 SublimeREPL 설치 SublimeREPL은 인터프리터 언어들에게 대화형 모드를 지원하도록 도와주는 플러그인입니다. 단축키 Ctrl+Shift+P를 누르면 검색창이 나타납니다. pci를 타이핑하면 Install Package가 찾아집니다. 선택하고 엔터를 치면 새로운 검색창이 나타납니다. repl을 타이핑하면 SublimeTextREPL이 찾아집니다. 선택하고 엔터를 치면 곧바로 설치됩니다.
  • 20. 플러그인 SublimeREPL 설치 ST에서 독립된 파이썬 환경을 통해 인터프리터를 실행하려면 SublimeREPL의 설정파일을 수정해야 합니다. Preferences - Package Settings - SublimeTextREPL - Default 열린 파일에서 python_virtualenv_paths속성에 "/home/bssin/venv"를 추가합니다.
  • 21. Flask란? (앱 로직을 위한 프레임워크) 앱 로직을 파이썬으로 쉽고 편하게 작성할 수 있도록 돕는 파이썬 기반의 마이크로 웹 프레임워크입니다. 마이크로라는 뜻에는 최소한의 기본 기능만 담고 있으면서 추가로 필요한 기능은 라이브러리를 선택해 도입하도록 하겠다는 철학이 담겨있습니다.
  • 22. Flask 설치 -독립된 파이썬 환경에 설치- $sudo . /home/bssin/venv/bin/activate #먼저 독립된 가상환경을 실행 (venv)$sudo pip install flask 이 환경에는 Flask와 함께, Flask가 의존하는 벡자이크 WSGI 툴킷 라이브러리와 Jinja2 템플릿 엔진 라이브러리가 함께 설치됩니다.
  • 23. 2에서 계속 참고 서적: 파이썬 웹 프로그래밍 플라스크를 이용한 쉽고 바른 웹개발 주성식, 홍성민. (2014). 위키북스 신부설 c9coco@gmail.com