'분류 전체보기' 카테고리의 글 목록 (3 Page) :: Hello Data

Python Flask 라이브러리 기반으로 가장 기본적인 웹 서버를 구축해본다.

 

Python 설치 후 Flask 라이브러리를 설치한다. 

 

Flask 라이브러리를 설치할 때는 가능한 가상환경을 먼저 구성하고 가상환경 내에 라이브러리를 설치하도록한다.

 

2020/03/14 - [Python] - [Python] VirtualEnv로 파이썬 가상환경 구성하기

 

Flask 라이브러리 설치

pip3 install flask

 

Flask 웹 서버 코드

import socket
from flask import Flask
from flask import jsonify

app = Flask(__name__)

@app.route("/")
def print_hello():
    return "Hello World - Flask"
    
@app.route("/info", methods=["POST"])
def info():
    info_dict = dict()
    info_dict["IP_ADDRESS"] = socket.gethostbyname(socket.gethostname())
    info_dict["HOST_NAME"] = socket.gethostname()
    return info_dict

if __name__ == "__main__":
    app.run(debug=True, host="0.0.0.0", port=5000)

웹 서버 기능으로 심플한 기능 두 가지를 구성했다. /으로 요청하면 "Hello World - Flask"라는 문구를 출력하도록 하는 것과 /info로 요청하면 IP주소와 Host명을 응답하도록 했다. 어떤 호스트에서도 접근이 가능하도록 app.run에 host를 0.0.0.0으로 설정했고 port는 5000으로 지정했다. debug=True는 debug 모드를 킨 것으로 코드가 수정되면 flask 서버가 다시 시작된다.

 

Flask 웹 서버 구동

python3 app.py

위에 작성된 코드를 app.py 이름으로 저장하고 Python 명령어로 실행한다. 

 

Flask 웹 서버 테스트

위에 구성된 기능으로 서버가 잘 동작하는지 테스트를 해야하는데 테스트를 할 때는 여러 방법이 있다.

  • curl 명령어를 이용
  • Postman, Insomnia 툴을 이용
  • Python, C# 등 필요한 언어에서 직접 RESTFul 호출

본 가이드에서는 Postman을 이용한 호출로 테스트를 한다.

/ 기능 테스트

/info 기능 테스트

 

정상 동작!

 

끝!

설치 환경

  • PC
    • OS : Windows 10 Pro, 64 비트 운영체제
    • Mem : 64GB
  • Mobile
    • 갤럭시 노트8 SM-N950N
    • 안드로이드 버전 : 9

설정 > '휴대전화 정보' 실행

'소프트웨어 정보' 실행

'빌드 번호'를 연속으로 클릭

최초 설정 화면으로 돌아가보면 '휴대전화 정보' 밑에 '개발자 옵션'이 생성되어 있다.

 

안드로이드 개발 시 'USB 디버깅' 모드를 이용하기 위해서는 하단에 기능을 켜준다.

 

끝!

설치 환경

  • OS : Windows 10 Pro, 64 비트 운영체제
  • Mem : 64GB

설치 순서

  • JDK 설치
  • Android Studio 설치

 

JDK 설치

2020/03/20 - [Java] - [Java] JDK(Java SE Development Kit) 1.8 설치

 

Android Studio 다운로드

Android Studio 다운로드 (https://developer.android.com/studio/) URL로 이동하여 프로그램을 다운로드한다.

 

Android Studio 설치

 

Android Studio 설정

처음 설치한 것이기 때문에 'Do not import settings'으로 선택합니다.

저는 보통 개발 환경 구성할 때 어두운 톤으로 테마를 변경하기 때문에 Darcula로 변경했습니다.

Emulator 사용에 대한 RAM 설정인데 Recommended로 해도 되고 필요에 따라 그 이상 올려도 된다.

설치가 완료되었는데 오류가 발생했다. Window 기능 켜기/끄기에 Hyper-V 기능 꺼져있어서 생기는 문제이다. 

사실 가상 Emulator보다는 모바일 연결해놓고 코드 빌드 시 App 올려서 테스트하는걸 선호하기 때문에 향후 필요하면 조치하도록 할 예정이다.

 

설치 완료.

설치 환경

  • OS : Windows 10 Pro, 64 비트 운영체제
  • Mem : 64GB

JDK 버전 확인 (설치 전)

Version 확인을 했을 때 아래와 같이 아무것도 나오지 않는다면 JDK가 설치되지 않았을 수 있다. Program Files 하위에 Java 디렉토리가 존재하고 jdk와 jre 같은 디렉토리가 보인다면 환경 변수가 올바르게 잡혔는지 확인해볼 필요도 있다.

 

JDK Download URL

Oracle JDK 다운로드 (https://www.oracle.com/java/technologies/javase-jdk8-downloads.html)에서 OS에 맞는 설치 프로그램 다운로드 후 아래 과정에 따라 설치한다. 설치 프로그램 다운로드 시 Oracle 계정 로그인을 필요로 한다.

 

JDK 설치

 

JDK 환경 변수 설정

제어판 > 환경 변수 검색 > 시스템 환경 변수 편집

 

Java 버전 확인 (설치 후)

Docker 활용을 위한 기본 명령어 정리 

 

  • Docker Image
    • Hub에서 이미지 검색 
    • 명령어로 이미지 검색
    • 내려받기
    • 리스트 보기
    • 삭제

 

Hub에서 Image 검색

Docker Hub(새창 바로가기)는 Docker에서 공식적으로 제공하는 Image 저장소인데, 필요한 Docker Image의 정보를 얻을 수 있다. 각 관련 기관에서 Push한 Official Image를 받을 수 있고 사용자가 빌드해서 Push한 Image도 필요하면 받을 수 있다. Docker Image를 만들고 Docker Hub에 업로드하는 과정은 추후에 알아보고 본 과정에서는 필요한 Image를 내려받는 것을 알아본다. Docker Hub에서 검색하면 Official로 표시된 Image가 있는데 Docker Hub의 공식(Official) Image를 의미한다.

 

명령어로 Image 검색

docker search ubuntu

docker search [KEYWORD] 형태로 치면 해당하는 이미지의 검색 결과를 보여준다. Name과 Description, Official 여부 등을 보여주며 automated는 자동으로 빌드된 것을 의미한다. 

 

Docker Image 내려받기

Docker Image를 다운받을 때는 Docker Hub에서 이미지를 선택하고 오른쪽 검은색 부분에 쓰여진 docker pull 명령어를 입력하면 된다. 

docker pull ubuntu

Image명 뒤에 태그(Tag)를 붙여 특정 버전의 Image를 내려받을 수 있다. 형태는 [IMAGE명]:[TAG명] 이다. 태그를 입력하지 않을 경우 latest 버전으로 다운로드가 된다. 

 

Docker Image 리스트 보기

docker images

images 명령어를 치면 다운받은 Docker Image 목록을 볼 수 있다. Ubuntu 18.04 버전을 받았기 때문에 REPOSITORY로 ubuntu, TAG가 18.04인 Image가 다운받아져있다.

 

Docker Image 삭제

docker rmi ubuntu:18.04

docker rmi 명령어를 하면 다운받은 Image가 삭제되는데 다운받을 때와 마찬가지로 [IMAGE명]:[TAG명] 형태로 입력한다.

Python 개발할 때 보통 Jupyter Notebook을 많이 이용하곤 하는데

 

Notebook 보다 더 편리한 기능을 제공하여 개발 생산성을 높여주는 도구로 Juptyer Lab이 있다.

 

Notebook에서 생성된 코드라도 Lab에서 열리고 서로 호환이 가능하니 한번 사용해보도록 하자!

 

Jupyter Lab 설치 방법

pip install jupyterlab

 

Jupyter Lab 구동 방법

jupyter lab

 

Jupyter Lab 구동 화면

왼쪽은 파일 리스트를 볼 수 있는 Explorer 영역이고 오른쪽은 코드를 개발할 수 있는 Editor 영역이다. Explorer에서 파일을 클릭한채 드래그하면 전/후 디렉토리로 위치를 옮길 수 있다. 기본적인 구성은 Notebook과 유사해서 Notebook을 오래 사용한 사람이라면 기능을 파악하는데 오래 걸리지 않을 듯하다.

 

Jupyter Lab 화면 분할

Editor 영역은 탭을 클릭하고 드래그하면 아래와 같이 화면 분할이 가능하며 Notebook 뿐만 아니라 일반 스크립트 편집, Terminal도 분할 창에 열 수 있어서 코드를 개발하고 테스트하는데 편리하다.

 

Jupyter Notebook과 Lab 비교화면

Notebook과 Lab의 화면을 비교하면 Notebook의 경우 ipynb 파일 리스트가 메인 화면에 출력되고 File, Running, Clusters 등의 메뉴가 상단에 있다. Lab의 경우에 해당 기능은 모두 왼쪽 탭 메뉴로 구성되어있고 실행 시 Python이나 Console, Terminal 등을 구동할 수 있는 Launcher 화면이 바로 나온다.

Docker 설치 후 유저 권한 추가 했고 docker ps를 해보니 다음과 같이 permission denied 에러가 났다.

 

에러 화면

 

해결 방법

sudo chmod 666 /var/run/docker.sock

위 명령어로 /var/run/docker.sock 파일 권한을 변경해야한다. 

 

명령어 수행 후 docker ps를 해보니 정상 구동되는 것을 볼 수 있다.

Jupyter notebook은 Python 개발할 때 유용한 툴로 개발하면서 결과를 즉시 볼 수 있다.

 

특히나 데이터를 다룰 때 데이터를 보면서 전처리하고 시각화하는데 유용하다.

 

조각 코드를 짜면서 코드에 대한 설명도 작성할 수 있고

 

전체 수행이나 조각 코드별 수행에 대한 기능 등 많은 기능을 지원한다.

 

Jupyter Notebook 설치

pip install jupyter

Jupyter Notebook 구동

jupyter notebook

jupyter notebook을 실행하는데 많은 옵션이 있는데, jupyter notebook을 입력해서 구동하면 기본으로 설정된 Internet 프로그램을 기반으로 웹 브라우저가 실행된다.

 

Jupyter Notebook 구동화면

 

Notebook 생성

오른쪽 상단의 New > Python3에서 새로운 Notebook을 생성한다.

Notebook 이름 변경

상단의 Untitled를 누르면 Notebook의 이름을 변경할 수 있다.

Notebook 사용하기

위와 같이 노트북 내에서 변수에 값을 대입하고 변수명을 실행해보면 값이 바로 보인다. Cell 앞에 출력된 [1], [5] 등의 숫자는 Cell의 실행 순서이다. 빨간색 부분의 [5]는 Notebook에서 다섯번째 실행된 Cell을 의미한다. Cell 단위 코드가 많아지면 앞에 순서를 통해서 실행된 순서를 참고하면 된다. 

 

Jupyter Notebook 단축키

참고 자료 (새창 열기) : https://towardsdatascience.com/jypyter-notebook-shortcuts-bf0101a98330

Python 환경에서 개발하면 필요한 패키지를 추가로 설치해서 진행하는데 

 

Python의 버전과 추가로 설치할 패키지들의 각 버전이 호환될 때가 있고 안될 때가 있다.

 

이를 위해서는 업무 단위 또는 프로젝트 레벨로 독립된 가상의 환경을 만든다.

 

Python을 위한 가상 환경을 만드는 방법은 여러가지가 있는데

 

보통 대표적으로 VirtualEnv를 이용하는 방법과 Anaconda 설치를 통한 Conda 환경을 구성하는 방법이 있다.

 

본 가이드에서는 VirtualEnv를 이용하는 방법을 알아본다.

 

VirtualEnv 설치

pip install virtualenv

virtualenv가 이미 설치가 된 PC 환경이라 위와 같이 나온다.

 

가상환경 생성

virtualenv myenv

myenv라는 이름의 가상환경을 구성한다. 

구성이 완료되면 디렉토리에 가상환경이름으로 폴더가 생성된다. myenv로 생성했기 때문에 myenv로 생성되어 있다.

 

가상환경 구동

가상환경을 구동할 때는 가상환경 디렉토리 하위에 Scripts/activate.bat를 실행하면 되는데 Linux와 Window는 조금 다르게 구동합니다.

 

Window 환경

./myenv/Scripts/activate.bat

Linux 환경

source ./myenv/Scripts/activate

가상 환경 구동이 완료되면 Command 앞에 가상환경 이름이 출력된다.

 

가상환경 해제

deactivate

가상 환경을 해제하고 빠져나오면 Command 앞에 가상환경 이름이 사라지고 원래대로 돌아온다.

 

가상환경 삭제

myenv 디렉토리를 그냥 지우면 가상환경이 삭제된다.

 

다양한 DB를 연결해서 사용할 수 있는 통합 SQL Editor 툴인 DBeaver!

 

DB Scripts를 쓰다보면 대문자로 작성해도 소문자로 자꾸 변경되는 때가 있는데 

 

DB 관련 Scripts를 모두 대문자로만 쓰는 습관이 있는 나에게는 불편함인지라 꼭 설정을 해주곤 한다.

 

대문자로 자동 변경

상단 '윈도우' 메뉴 > 필터 텍스트에 'SQL 포맷' > Keyword case를 Default에서 Upper로 변경

폰트 변경

상단 '윈도우' 메뉴 > 필터 텍스트에 '글꼴' > 텍스트 글꼴 선택 후 편집에서 글꼴 및 사이즈 변경

 

줄 번호

상단 '윈도우' 메뉴 > 필터 텍스트에 '문서 편집기' > '행 번호 표시' 체크

끝!

+ Recent posts