분류 전체보기 (221) 썸네일형 리스트형 [Python] Flask 변수와 컨버터 변수와 컨버터 Flask의 라우팅 시스템은 '변수' 기능을 제공한다. 구문을 이용하여 변수를 사용할 수 있다. 이 표기법은 거의 표준처럼 사용되고 있으며, 이렇게하여 엔드포인트를 동적으로 표현할 수 있다. 예를 들어 고유한 사용자 ID를 N으로 표현한다고 할 때 ./person/N에 대한 요청을 처리하는 함수를 만들려면 route에 /person/를 인수로 넘겨주면 된다. Flask가 데코레이트 함수를 호출할 때 URL에서 위치의 값을 person_id 인수로 변환해준다. 예시 코드는 다음과 같다. from flask import Flask, jsonify app = Flask(__name__) @app.route('/api/person/') def person(person_id): resp = json.. [Docker] Docker Compose build docker-compose.yml 작성 시 이미지의 작성을 Dockerfile에 기술하고 그것을 자동으로 빌드하여 베이스 이미지로 지정할때는 build를 지정합니다. build에는 Dockerfile의 파일 경로를 지정합니다. 예시 다음과 같이 sample 디렉토리 안에 docker-compose.yml과 Dockerfile을 배치합니다. sample ├── Dockerfile └── docker-compose.yml docker-compose.yml의 build에는 현재 디렉토리의 Dockerfile의 위치를 지정합니다. # docker-compose.yml services: webserver: build: . # 현재 디렉토리 Dockerfile은 다음과 같이 작성합니다. FROM ubuntu 다음 .. [Docker] docker-compose.yml의 개요 docker-compose.yml의 개요 Docker Compose는 'docker-compose.yml'이라는 Compose 정의 파일에 시스템 안에서 가동하는 여러 서버들의 구성을 모아서 정의합니다. 이 정의 파일은 YAML 형식으로 기술합니다. YAML YAML은 구조화된 데이터를 표현하기 위한 데이터 포맷으로 Python과 동일하게 들여쓰기로 데이터의 계층 구조를 나타냄. 들여쓰기는 탭이 아니라 스페이스를 사용함. 읽기가 쉬워 설정 파일 등에 많이 이용됨 YAML에서는 데이터의 맨 앞에 '-'를 붙이면 배열을 나타냄. '-' Compose 정의 파일에는 여러 컨테이너의 설정 내용을 모아서 하나의 파일에 기술합니다. 이 Compose 정의 파일에는 관리하고 싶은 컨테이너의 서비스(services:).. [Docker] Docker Compose를 이용한 웹 애플리케이션 생성 Compose 구성 파일 1. 애플리케이션 구조 샘플 애플리케이션의 구조는 다음과 같습니다. . ├── app.py ├── docker-compose.yml ├── Dockerfile ├── requirements.txt ├── static │ ├── css │ │ └── bootstrap.css │ └── images │ ├── docker-machine-01.jpg │ ├── docker-machine-02.jpg │ ├── docker-machine-03.jpg │ ├── docker-machine-04.jpg │ └── docker-machine-05.jpg └── templates └── index.html 2. Compose 정의 파일 확인 docker-compose.yml 파일은 다음과 같이.. 웹 3계층 시스템 아키텍쳐 다음 도서를 참고하여 작성하였습니다. https://www.aladin.co.kr/shop/wproduct.aspx?ItemId=166082298 완벽한 IT 인프라 구축을 위한 Docker 컨테이너 기술을 사용한 애플리케이션 실행 환경 플랫폼인 ‘Docker’를 사용하여 인프라를 구축하기 위한 입문서. 제2판에서는 Docker의 새로운 기능 및 명령과 더불어, 멀티호스트 환경에서 실행 www.aladin.co.kr 애플리케이션을 가동시키려면 여러 개의 서버에 기능과 역할을 분할하여 인프라의 전체 구성을 정합니다. 대규모 웹 시스템의 경우 몇 개의 서브 시스템/기능으로 나누어 시스템을 개발하는 경우가 많기 때문에 애플리케이션 개발 기술 및 플랫폼 기술에 정통한 IT 아키텍트를 중심으로 인프라의 처리 방식.. [AWS] Code Series를 이용한 CI/CD CI/CD란? (Continuous Integration/Continuous Delivery) CI/CD는 빌드 및 테스트를 자동화하여 보다 짧은 주기로 고객에게 어플리케이션을 제공하는 방법 또한 개발자가 변경하는 새로운 코드들의 병합으로 인해 생기는 여러가지 문제를 해결하기 위한 솔루션 특히 소프트웨어 릴리즈 프로세스 중 빌드 또는 통합 단계를 주로 가리키며, 어플리케이션 라이프 사이클 전체의 자동화와 모니터링을 제공 CI는 (Continuous Integration)는 개발자들의 변경사항이 버그 테스트를 거쳐 Repository에 자동으로 업로드 되는 것을 뜻함 CD는 (Continuous Deployment)는 개발자들의 변경사항이 모든 테스트를 거쳐 고객이 사용가능한 프로덕션 환경까지 자동으로 릴.. [Linux] rsync로 아카이브 동기화(Linux 백업 동기화) 정기적으로 백업해야하는 경우 아주 큰 아카이브를 매일매일 전송하면 네트워크에 상당한 부담을 주는 문제가 생긴다. 파일 시스템을 통째로 전송하는 대신 마지막으로 백업한 후 생성되거나 업데이트된 파일만 전송하면 편리한데 , 이럴 때 rsync를 사용한다. 파일로 가득 찬 디렉터리를 원격 호스트에 복사한 후 로컬 파일이 변경되어도 정확한 사본을 만드는 실습을 진행해 보겠습니다. 먼저 디렉토리를 하나 만들고 다음과 같이 열 개의 빈파일을 생성합니다. $ mkdir mynewdir && cd mynewdir $ touch file {1..10} 그 다음 ssh로 파일 사본을 전송할 원격 서버에 디렉터리를 생성하고, -av 인자와 함께 rsync 명령어를 실행합니다. -v 인자는 명령이 수행하는 작업을 상세히 출력.. [Python] boto3를 이용한 Flask-S3 연동 (파일 업로드 및 다운로드) boto3 설치 pip install boto3 s3 config file 정의 # m_config.py AWS_ACCESS_KEY = "SDKNFLWKEFNWEFKEFJA" AWS_SECRET_ACCESS_KEY = "fWEKLFWKLENWK" AWS_S3_BUCKET_REGION = "ap-northeast-2" AWS_S3_BUCKET_NAME = "file-storage" s3 connect 함수 및 파일 업로드/다운로드 함수 정의 # import module import boto3 from .m_config import AWS_ACCESS_KEY, AWS_SECRET_ACCESS_KEY from .m_config import AWS_S3_BUCKET_NAME, AWS_S3_BUCKET_REGIO.. [Python] 사각형 중복(겹침) 검사(OpenCV) 사각형 표현 방법 : (x1, y1, x2, y2) def overlap(rect1, rect2): ''' 두 개의 사각형이 겹쳐지는지 확인하는 함수 :param rect1: 첫번째 사각형 :param rect2: 두번째 사각형 :return: overlap이 되면 True, 아니면 False ''' return not (rect1[2] rect2[2] or rect1[1] > rect2[3] or rect1[3] < rect2[1]) [Python] 함수 실행 시간 측정 (Python decorator 활용) decorator 함수 정의 def logging_time(original_fn): import time from functools import wraps @wraps(original_fn) def wrapper(*args, **kwargs): start_time = time.time() result = original_fn(*args, **kwargs) end_time = time.time() print("WorkingTime[{}]: {} sec".format(original_fn.__name__, end_time - start_time)) return result return wrapper logging_time() 함수 사용 @logging_time def func(): ... 함수 내용 ... .. 이전 1 ··· 13 14 15 16 17 18 19 ··· 23 다음