일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Entity
- BFS
- python
- Unity
- Mac
- Operator
- Reference Type
- Polymolphism
- literal
- Physical Scheme
- X.org
- 자바
- selenium
- X윈도우
- systemd
- Class
- Java
- Binary Search
- preprocessing
- 셀레니움
- Entity Set
- OOP
- spring
- 리눅스
- descriptive statistics
- 리눅스 마스터 1급
- dbms
- External Scheme
- Inheritance
- 백준
- Today
- Total
목록BackEnd (33)
Byeol Lo
이전에서 우리가 네트워크 다이어그램에서 위치해 있는 곳은 end system 이라는 네트워크 엔티티로 있는 것을 보았다. 엔드 시스템은 호스트와 같은데, 이 호스트는 서버, 클라이언트 두 종류로 나뉠 수 있다. 일반적으로 클라이언트는 데스크톱, 스마트폰 등등이 있다. 서버는 대부분 웹 사이트, 데이터베이스 서버 등등 서비스를 제공하는 더 성능이 높은 엔드시스템이다. 1.2.1 Access NetworksHome Access: DSL, Cable, FTTH, Dial-Up, and Satellite 네트워크의 가장자리에 위치한 이 엔드시스템이 네트워크에 접속하기 위해서 다른 엔드 시스템으로 향하는 방법을 알아야 한다. 보통 디지털 가입자 회선(DSL, Digital Subscriber Line)과 케이블이..
인터넷이 무엇인지 알려면 다음을 해내야 한다.인터넷을 구성하는 기본 하드웨어와 소프트웨어 구성 요소에 대한 설명분산 어플리케이션에 서비스를 제공하는 네트워킹 인프라 측면에서의 인터넷에 대한 설명 위의 그림을 보자. 파란색 영역은 하나의 네트워크를 나타내는 그림이다. 최종적으로 통신 자체는 communication links, packet switches가 서로 연결됨을 볼 수 있다. 여기서 communicaiton links는 연결된 선으로 보면 되고, 이 선이 transmission rate를 결정하게 된다. 보통 이 transmission rate의 단위로는 bps = bits / seconds 이며, 송신(sending) end system(host, 호스트, 컴퓨터) 들은 segments를 보내는..
서비스를 다 만들어 놓고 사용자에게 제공하지 못하면 아무 소용이 없다. 서버 컴퓨터에 자신이 만든 애플리케이션을 올려주어야 하며, 사전에 서버 컴퓨터를 구비해놔야 한다. Build and Install 우리의 프로젝트를 배포하기 위해 휠파일을 이제 만들어야 한다. wheel 파일을 쉽게 만들어줄 수 있는 build 모듈을 설치하여 dist 디렉터리에 wheel 파일을 자동으로 저장해 준다. 생성된 파일은 {project name}-{version}-{python tag} -{abi tag}-{platform tag} 의 포맷을 가진다. pip install build # build 모듈 설치 python -m build --wheel # wheel 파일 생성 이제 생성된 wheel 파일을 서버 컴퓨터에 ..
이제 프로젝트를 서버에 설치 가능하도록 하려면 외부 환경에 해당 프로젝트를 간편하게 설치할 수 있게 도움을 주는 휠 파일(wheel file)을 생성 해야한다. 이는 Flask와 같이 프로젝트 내에서 설치한 것과 같은 방식으로 배포를 단순화한다. 또한, 프로젝트를 설치하는 것은 다음과 같은 추가적인 이점을 제공한다. 어디든지 프로젝트를 실행시킬 수 있다 의존성을 패키지처럼 관리할 수 있게 되고, pip install yourproject.whl 명령만 간단하게 실행시켜 모든 의존성을 한 번에 다운 가능하다. 테스트 도구는 개발 환경과 분리된 별도의 환경을 생성할 수 있다. Describe the Project 프로젝트 pyproject.toml 파일은 프로젝트와 프로젝트 파일들이 어떻게 빌드되는지 서술한..
이제 배웠던 것을 토대로 blog의 blueprint를 구현하자. The Blueprint # flaskr/blog.py from flask import ( Blueprint ) bp = Blueprint('blog', __name__) 어플리케이션을 시작할때 __init__()에서 청사진을 등록하자. # flaskr/__init__.py def create_app(): app = .. # omitted from . import blog app.register_blueprint(blog.bp) app.add_url_rule('/', endpoint='index') return app app_url_rule이 생소할 수 있는데 /로 들어온 것은 index의 endpoint로 여기겠다는 의미이다. Index..
이전에 login, logout, register의 view를 만들었다. 하지만 이는 브라우저에서 작동을 하지 않는데 그 이유는 render_template()을 통해 html을 보내줘야 하는데, 해당 template이 없기 때문이다. 따라서 이번엔 template을 만들어서 직접 브라우저에 띄울 것이다. 이런 정적 template은 보통 templates 디렉터리에 저장되어지고, 이 템플릿들은 수신 받은 데이터를 통해 렌더링 될 최종 문서를 생성한다. Flask의 Jinja 템플릿 라이브러리를 사용하여 생성할 수 있다. Jinja는 첫 intro에서도 말했다시피 HTML 템플릿으로 렌더링 되는 모든 데이터를 "자동 이스케이프" 하도록 구성된다. 이는 사용자 입력이 안전한지 자동으로 체크해준다는 것이다...
view 함수들은 전부 어플리케이션에 대한. 요청에 응답하기 위한 코드인데, Flask는 패턴을 사용해 들어오는 요청 URL을 처리해야하는 뷰와 일치시킨다. Create a Blueprint 블루프린트는 뷰 또는 관련된 코드 그룹을 구성하는 방법인데, 뷰와 그런 코드들을 애플리케이션에 직접 등록하는 대신 블루프린트에 등록한다. 그런 다음 팩토리 기능에서 사용할 수 있게 되면 청사진이 애플리케이션에 등록되게 된다. 여기에는 두 개의 청사진이 있는데, 하나는 인증 기능용이고 다른 하나는 블로그 게시물 기능용이다. 각 청사진의 코드는 별도의 모듈에 들어가게 된다. # flaskr/auth.py from flask import ( Blueprint, flash, g, redirect, render_templat..
flask 어플리케이션은 SQLite 데이터베이스를 사용하고, user의 정보나 posts들을 저장할 수 있도록 할 수 있다. 기본적으로 python에선 sqlite3 모듈에 SQLite 데이터베이스에 대한 유용한 함수들이 내장되어 있기 때문에 그것을 사용하면 된다. 또한 SQLite의 장점으로는 편리하다는 것이다. database 서버를 따로 분리시키지 않고, 세팅도 따로 해줄 필요가 없기 때문이다. 하지만 동시적인 request를 받았을때 write되는 과정에서 sequential하게 쓰기 때문에 느리다는 것이다. 하지만 이는 사용자가 많을 때의 얘기이며, 자기가 구현하고자 하는 상황에 맞게 구현시키면 된다. 하지만 유저가 많을 경우에는 다른 데이터베이스 서버를 사용하여 구분하는 것이 좋다. Conn..
지금까지 파일 방식으로 서버 어플리케이션을 실행했다면 이번엔 directory를 통해 실행시켜보자. 이를 통해 얻을 수 있는 장점은 다음과 같다. 모듈 분리 - 각각의 모듈이 하는 일이 뚜렷해짐. 이렇게 하면 Flask application instance를 실행시키는 모듈을 따로 만든 샘이 되기 때문 프로젝트 확장성 - 위와 비슷한 맥락이지만, 모듈화하여 관리하면 확장성이 좋아짐. 관리가 쉬우니까. import os from flask import Flask def create_app(test_config=None): app = Flask(__name__, instance_relative_config=True) app.config.from_mapping( SECRET_KEY='dev', DATABASE..
간단한 블로그를 만드는 실습을 한다. 나는 github에 올리고, 로컬 환경인 pycharm으로 실습을 했다. https://github.com/seonghun120614/flask-tutorial GitHub - seonghun120614/flask-tutorial: Flask Tutorial Flask Tutorial. Contribute to seonghun120614/flask-tutorial development by creating an account on GitHub. github.com 과정은 위를 참고하길 바란다. 아래와 같이 flask-tutorial의 프로젝트를 생성했다. 다음으로 프로젝트 간의 패키지들, 버전들이 충돌되지 않도록 가상환경에서 실행하도록 한다. python3 -m ve..