분류 전체보기

    네이버 오픈API 활용 - 뉴스 검색 API

    1. 애플리케이션 등록 네이버 오픈API를 사용하려면 먼저 네이버 개발자 센터에서 애플리케이션을 등록하고 클라이언트 아이디와 클라이언트 시크릿을 발급받아야 한다. 2. 뉴스 제목 검색 API 코드 문서를 보고 오픈 API의 요청 방식, 응답 방식 등을 확인하고 나의 서비스에 맞게 가공한다. from flask import request from flask_restful import Resource import requests from config import Config class NaverSearchResource(Resource): def get(self): keyword = request.args.get('keyword') limit = request.args.get('limit') ## 네이버 A..

    API서버 - 클라이언트에게 받은 이미지와 텍스트를 DB에 저장하는 API

    클라이언트가 이미지와 텍스트를 보내면 받아서 내 DB에 저장하는 포스팅 API를 만들어보자. DB에 이미지를 저장할 때는 이미지 URL로 저장하기 때문에, 먼저 받은 이미지를 자동으로 내 AWS S3에 업로드 해야 한다. S3에 파일 업로드 참고: https://donghyeok90.tistory.com/201 AWS S3 - 파이썬 boto3로 이미지 파일 업로드 Flask를 사용하여 클라이언트로부터 이미지 파일을 받으면 AWS S3에 저장하는 API를 만들고자 한다. 먼저 boto3 라이브러리가 필요하다. 1. boto3 AWS에서 제공하는 Python용 AWS SDK Boto3를 사용하면 Python 애 donghyeok90.tistory.com 1. DB에 저장할 테이블을 만든다. 2. 개발한 포..

    API서버 - AWS Rekognition을 사용한 Object Detection API

    1. Rekognition AWS에서 제공하는 딥 러닝 기반 시각 분석 서비스 기계 학습을 통해 이미지 및 비디오 분석 자동화 기계 학습 모델 및 인프라를 구축하지 않고도 사전 훈련되었거나 사용자 지정 가능한 API 제공 예) 레이블 탐지, 얼굴 비교 및 검색, 얼굴 탐지 및 분석, 텍스트 탐지 등등 문서: https://aws.amazon.com/ko/rekognition/ 2. IAM 사용자 권한 수정 rekogniton을 사용할 수 있게 IAM 사용자 권한을 추가한다. 3. 객체 탐지 API 코드 from flask import request from flask_restful import Resource from datetime import datetime import boto3 from confi..

    AWS Lambda - Github Actions를 이용한 Serverless CI/CD

    1. Github Actions를 이용한 Serverless CI/CD Serverless 프레임워크를 사용해 내 AWS Lambda를 배포하였다. Github Actions를 사용해 수정 사항을 push 할 경우 Serverless가 자동으로 배포하도록 만들어보자. Severless Github Action 사용법 참고: https://github.com/serverless/github-action GitHub - serverless/github-action: A Github Action for deploying with the Serverless Framework :zap::octocat: A Github Action for deploying with the Serverless Framework - ..

    AWS Lambda - 사용자 지정 Layer 생성, 추가하기 (2)

    AWS Lambda - 사용자 지정 Layer 생성, 설정하기(1) 1. AWS Lambda Layer serverless를 이용하여 배포시 requirements.txt 파일에 패키지를 적어주면 자동으로 AWS에서 설치한다. 참고: https://donghyeok90.tistory.com/197 하지만 람다에는 할당량이 있어서 함수의 용량은 donghyeok90.tistory.com 위 포스트에서 Layer로 등록할 zip 파일의 생성까지 완료했다. 이어서 Layer를 생성하고 Lambda에 추가하는 방법을 알아보자. 1) Lambda Layer 생성을 위해서, AWS 콘솔에 로그인한다. 2) 앞서 만든 zip파일을 업로드 하기 위해, 먼저 AWS S3로 가서 버킷을 만든다. 레이어에 추가할 zip파일..

    AWS S3 - 파이썬 boto3로 파일 업로드

    Flask를 사용하여 클라이언트로부터 파일을 받으면 AWS S3에 저장하는 API를 만들고자 한다. 먼저 boto3 라이브러리가 필요하다. 1. boto3 AWS에서 제공하는 Python용 AWS SDK Boto3를 사용하면 Python 애플리케이션, 라이브러리 또는 스크립트를 Amazon S3, Amazon EC2, Amazon DynamoDB 등 AWS 서비스와 쉽게 통합할 수 있다. 공식문서: https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html 설치방법 pip install boto3 2. config.py 파일 Secure coding하기 위해 민감한 정보를 관리하는 파일 class Config : # AWS ..

    AWS S3 - 버킷(스토리지) 만들기

    1. AWS S3 확장성, 데이터 가용성, 보안 및 성능을 제공하는 객체 스토리지 서비스 요구 사항에 맞게 데이터에 대한 액세스를 최적화, 구조화 및 구성 할 수 있는 관리 기능을 제공 2. S3 버킷 만들기 버킷 이름은 세계적으로 고유해야 하기 때문에 자신의 ID를 붙여 이름을 짓는 것이 일반적이다. 객체소유권은 버킷 용도에 맞게 설정한다. 퍼블릭 액세스도 마찬가지로 용도에 맞게 설정한다. 버킷만들기 클릭 버킷 생성 확인

    AWS Lambda - 사용자 지정 Layer 생성, 추가하기 (1)

    1. AWS Lambda Layer serverless를 이용하여 배포시 requirements.txt 파일에 패키지를 적어주면 자동으로 AWS에서 설치한다. 참고: https://donghyeok90.tistory.com/197 하지만 람다에는 할당량이 있어서 함수의 용량은 50MB를 초과할 수 없다. 이런 제약을 해소하기 위해 계층(Layer)을 이용한다. Layer에 패키지들을 미리 설치해놓으면 aws는 람다가 실행될 때 Layer를 붙여준다. Layer를 이용하면, 공통된 패키지를 사용하는 다른 애플리케이션을 배포할 때도 유용하게 사용할 수 있다. Lambda의 할당량 참고: https://docs.aws.amazon.com/ko_kr/lambda/latest/dg/gettingstarted-li..