전체 글 175

server - aws lambda layer 추가

lambda에 너무 많은 패키지를 설치하도록 하면 작동이 정상적으로 되지 않습니다. 따라서 레이어 에 따로 설치를 하도록 하겠습니다. 1. 먼저 설치할 패키지를 내 lambda와 동일한 환경을 찾습니다. - 패키지 다운로드는 pypi 에서 가능하며 반드시 여러분의 환경에 맞도록 합니다. https://pypi.org/ ( aws lambda 는 아마존 리눅스 이기 때문에 같은 환경인 ec2 에서 진행, manylinux_x86으로 다운받습니다. ) 2. ec2 에서 python폴더를 생성하고 wget으로 파일을 다운로드합니다. - 폴더 생성은 mkdir python - 리눅스이기때문에 주소를 복사하셔서 wget [주소] 로 다운받습니다. 3. 다운받은 파일을 전부 압축을 해제하고 마지막에 다운로드 받았던..

개발/백엔드 2023.01.11

server - AWS lambda 배포 지역 변경하기. (credentials 에러)

lambda에 아무런 변경없이 업로드를 하게 되면 기본값으로 설정되는 지역이 있습니다. 이를 우리가 사용하는 서울 지역으로 바꿔 봅시다. serverless.yml 을 수정합니다. 맨위쪽 org,app 부분을 먼저 지워주세요. 그 다음 provider 부분에 다음과 같이 추가합니다. ap-northeast-2 는 aws에서 서울 지역을 의미하는 코드입니다. 그리고 다시 배포를 하시면 됩니다. * 여기서 배포오류가 발생할 수 있습니다. credentials 에러가 발생할 수 있는데 이 경우는 credentials 셋팅이 로컬에서 안되어 있기 때문입니다. https://www.serverless.com/framework/docs/providers/aws/guide/credentials/ Serverless ..

개발/백엔드 2023.01.11

server - 설정한 lambda 에 내가 만든 앱 배포하기 ( 모듈 에러 해결법)

지난번에는 비어있는 템플릿을 배포하였습니다. 이번에는 내가 그동안 만든 앱을 배포해보겠습니다. 1. 배포용 서버리스 앱을 하나 다시 만듭니다. - 저같은 경우 aws-recipe-flask-app 으로 만들겠습니다. 2. 비쥬얼 코드로 비어있는 이 템플릿을 열어서 내가 만든 앱의 파일들을 복사합니다. 3. .gitignore 파일에 다음과 같이 추가합니다. 4. 복사한 코드를 로컬에서 테스트합니다. 5. 정상적으로 확인이 되었다면 배포합니다. 6. 배포된 주소를 확인하고 테스트를 진행합니다. * 테스트를 하면서 분명 에러가 발생할 것 입니다. 7. 에러 확인을 위해 aws cloudwatch 로 갑니다. 반드시 lambda 로 적힌 앱으로 들어가야 합니다. 지금 같은 경우 저는 aws-recipe-fla..

개발/백엔드 2023.01.11

server - lambda(serverless) 수동배포 설정하기

지금까지 로컬에서 작업을 진행하였습니다. 이 진행을 AWS 에 배포를 통해 로컬이 아닌 누구나 접속이 가능하도록 만들어보겠습니다. 배포는 AWS lambda 을 이용하겠습니다. - lambda 는 AWS 에서 제공하는 serverless 플랫폼으로 서버의 관리를 하지 않아도 되는 서버 이다. 1. AWS IAM 설정하기 - IAM 은 aws의 접근을 관리하기 위한 기능입니다. - 유저가 접근할 수 있도록 권한을 설정합니다. 사용자 추가를 누릅니다. 사용자 이름을 입력하시고 엑세스키를 선택합니다. 다음을 눌러 권한설정에 오시면 기존정책 직접연결에서 다음과 같이 선택하여 주세요. 태그 추가 ( 선택 사항)은 무시하여 넘어가주세요. 사용자 만들기를 하면 csv 파일로 credentials.csv 파일을 다운로..

개발/백엔드 2023.01.10

server - jwt token 없이 접근을 허락하는 방법

api 설계를 하다보면 같은 데이터를 비로그인용,로그인용으로 보여지게끔 작업이 필요한 경우도 있습니다. 클래스 파일을 다시 만들지 않고 @jwt_required() 에 opitional 의 파라미터를 true 값을 통해 비로그인 용과 로그인 용으로 나눌 수 있게 됩니다. optional = true로 값을 주게되면 토큰이 없는 사람의 경우 None 값으로 들어오게 됩니다. 따라서 토큰이 none 인지 아닌지로 로그인 비로그인 유저를 구분 할 수 있게 됩니다. @jwt_required(optional=True) def get(self) : user_id = get_jwt_identity() print('유저 ID') print(user_id) # 비로그인 유저 None if user_id is None :..

개발/백엔드 2023.01.10

server - login을 위한 token 설정 및 logout 을 위한 token 방지

이전 포스팅에서 회원가입을 진행을 하였습니다. 이제 login/logout을 작성하고 내가 발급받은 토큰으로 내 데이터만 수정 / 삭제 가능하도록 작성해봅시다. 먼저 로그인 입니다. # 클라이언트 가 보내줄데이터 { "email":"abc12345@naver.com", "password":"12345" } def post(self) : data = request.get_json() # DB 로부터 해당 유저의 데이터를 가져온다. try : connection = get_connection() query = '''select * from user where email = %s;''' record = (data['email'],) cursor = connection.cursor(dictionary=True)..

개발/백엔드 2023.01.05

server - 회원가입( 비밀번호 암호화(psycopg2) 와 jwt 토큰 설치, email 확인을 위한 email-validator )

서버에서 user 테이블을 생성하고 username , email , password 로 만들겠습니다. create table user( id int primary key not null unsiged auto_increment, username varchar(80) not null unique, email varchar(200) not null unique, password varchar(256) ) 클라이언트에서 POST 방식으로 회원가입을 진행하기 위해 데이터를 보내왔습니다. { "name": "홍길동", "email":"abc@naver.com", "password":"1234" } 이를 처리하는 코드를 작성합니다. 0. 필요한 라이브러리 임포트 import datetime from flask i..

개발/백엔드 2023.01.05

server - postman 을 이용하여 api서버 테스트하는 방법

postman 은 API 를 테스트하기 위한 프로그램으로 이 프로그램을 이용하여 클라이언트 측의 요구를 우리가 테스트 할 수 있도록 합니다. 설치방법 - https://www.postman.com/downloads/ Download Postman | Get Started for Free Try Postman for free! Join 20 million developers who rely on Postman, the collaboration platform for API development. Create better APIs—faster. www.postman.com 다운받아 설치를 진행하시고 회원가입까지 진행합니다. 실행하시면 위와 같은 화면이 나오게 됩니다. workspaces 를 눌러 목적에 맞게..

개발/백엔드 2023.01.04

Server - 서버 테스트 환경 만들기, Http Method (get,post,put,delete)

서버를 만들고 테스트하기 위한 환경을 만들어봅시다. 1. mysql 에서 서버를 하나 만듭니다. CREATE SCHEMA '서버명' ; 2. 이 서버에 접속할 유저를 생성합니다. use mysql; create user '유저명'@'%'identified by '비밀번호'; # 접속 허락을 위한 dcl grant all on 서버명.* to '유저명'@'%' 3. 테이블을 만듭니다. CREATE TABLE `db명`.`table명` ( 데이터 설정 ) 4. 파이썬에 mysql 라이브러리를 설치한다 pip install mysql-connector-python 5. vc 에서 소스 작성한다. # app.py from flask import Flask from flask_restful import Api f..

개발/백엔드 2023.01.04

API - Restful API 란? , 파이썬 기본 설정

먼저 API 란 ? - 응용 프로그램에서 사용할 수 있도록 운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스 입니다. - 사용자는 request (요청) 를 통해 API 서버에 전송하고 API 서버는 이 요구를 맞게 데이터베이스에서 가져와 가공하여 사용자에게 response(응답) 해준다. RestFul API - API의 일종으로 모든자원에 URI 를 부여해 활용하는 방법 입니다. Resource - 우리가 흔히 보는 인터넷 주소 형식입니다. - protocol : http , https - host(domain) : www.naver.com,www.google.com 등등의 주소 - port : 3303 , 8501 등등 - path : 리눅스의 / 마냥 서버의 경로 - q..

개발/백엔드 2023.01.03