백엔드18 [API] 포스트맨으로 API명세서 만들기 Postman으로 API명세서를 만들어보자 먼저 해당 컬렉션의 더보기 버튼을 눌러 View documentation을 선택한다. 그 후 우측 상단의 publish 버튼을 눌러 명세서 발행을 시작한다. 명세서 설정을 확인한 후 publish 를 눌러 발행한다. 그러면 API 명세서의 URL 주소를 받을수있다. API 명세서가 잘 발행된것을 확인할수있다. 2022. 8. 31. [API] Open API를 XML 형식으로 불러와서 JSON으로 변환 (API 결과값에 따라 형태가 달라질 때) Open API는 공연 정보를 받아오는 Kopis의 공연 조회 API를 사용했다. 참고: https://kopis.or.kr/por/cs/openapi/openApiList.do?menuId=MNU_00074&tabId=tab1_1 공연예술통합전산망 예술경영지원센터 운영, 공연 예매 정보 집계 및 DB, 예매상황판, 공연통계 등 제공. kopis.or.kr:443 OpenAPI 이용하려면 requests 라이브러리 이용한다. 또, xml을 변환 하려면 xmltodict를 사용한다. pip install requests pip install xmltodict 먼저 API키를 발급받아 포스트맨에서 나오는 결과값을 확인하자 PF196211 제13회 금호주니어콘서트, 조혜선 호른 독주회 2022.08.11 20.. 2022. 8. 25. [Lambda] serverless 한국서버로 적용하기 serverless에서 지역의 기본값은 us-east-1으로 설정되어있다. 한국지역인 ap-northeast-2로 설정해보자. 서버리스를 만들때 생성된 serverless.yml에서 맨 위의 org와 app를 지우고 그 자리에 console : true를 입력한다. 그리고 provider 밑에 region: ap-northeast-2 를 입력하여 한국지역으로 설정한다. console : true service: aws-perform-flask-api frameworkVersion: '3' custom: wsgi: app: app.app provider: name: aws runtime: python3.8 region: ap-northeast-2 # 계층을 생성했었다면 계층과 S3모두 한국서버에서 새로 만.. 2022. 8. 18. [API] 서비스 배포 전 SQL문 Index 작업 서비스를 배포하기 전에 빠른 처리속도를 위해 SQL에서 where문에 속한 테이블과 컬럼에 Index 처리해야한다. 먼저 select, update, delete를 모두 검색해서 where가 포함된 query를 찾는다. 검색기능을 사용하여 API를 작성한 파일이 들어있는 폴더에서 select 부터 delete까지 순서대로 검색하여 확인한다. select 를 사용한 쿼리에서 where를 사용한 테이블을 찾고 그 컬럼에 인덱스 처리한다. query = '''select p.*, u.email, u.name, count(l.postingId) as likes from posting p join user u on p.userId = u.id left join likes l on p.id = l.postingId.. 2022. 6. 30. [Lambda] Lambda의 Layer(레이어, 계층) Lambda는 50MB의 작은 용량을 가지고있다. 작은 용량의 한계를 해결하기 위해 AWS는 Layer (계층)를 제공한다. # 라이브러리를 layer로 만들고 라이브러리를 실행시킬때 layer를 추가하는 방식을 사용한다. # 이는 레이어를 활용하여 라이브러리를 재사용하기 용이하다는 것이다. 넘파이와 판다스 라이브러리가 들어있는 레이어를 만들어보자. 먼저 AWS EC2 인스턴스를 확인하고 없으면 생성한다. 참고: https://startcod.tistory.com/68 [Linux] EC2를 활용한 AWS 배포, 리눅스에 파이썬 다운로드, 깃 클론 이때까지는 로컬과 깃에서 스트림릿을 푸시하고 풀해줬다면 이것을 AWS의 EC2를 활용해서 배포해야 한다. 깃에서 AWS로 Streamlit을 배포하려면: 소스.. 2022. 6. 29. [Lambda] serverless app을 github에 연동 깃허브에 연동하기위래 깃허브에서 새 레파지토리를 생성한다. # readme와 gitignore은 serverless 만들때 이미 만들어졌기때문에 생성하지 않는다. 그럼 빈 레파지토리가 만들어진다. # 이 화면 그대로 놔둔다. 위의 화면이 나오면 비쥬얼 코드 터미널로 가서 깃을 시작한다. git init gitignore 맨 아래에 vscode와 node_modules를 추가한다. .vscode/ node_modules/ 이제 깃에 add한다. git add . # 한칸 뛰고 온점 ' . '을 찍는것에 유의한다. 깃허브 사이트에서 받은 주소를 사용해서 코드와 깃을 연결한다. git remote add origin https://github.com/eyoo95/aws-memo-server.git # 깃주소 .. 2022. 6. 29. [Lambda] serverless에 app 적용, Service Unavailable 에러 전에 만들었던 레시피 프로젝트의 app.py, util.py, config.py, mysql_connection.py, .gitignore 파일과 resources 폴더를 복사하여 붙여넣는다. 그 후 레시피 프로젝트에서 사용했던 라이브러리를 requirements.txt에 입력한다. mysql-connector-python flask-restful psycopg2-binary passlib email-validator Flask-JWT-Extended requests 이제 deploy 한다. sls deploy 포스트맨으로 endpoint를 활용해서 API를 작동시키자. # 잘 작동된다. 디버깅할때는 cloud watch에서 로그의 로그그룹으로 들어가서 /aws/lambda 로 시작하는 로그를 찾는다. .. 2022. 6. 28. [Lambda] AWS 배포를 위한 serverless 프레임워크, Lambda 페이스북이나 인스타그램처럼 폭발적으로 증가하는 데이터를 저장하고 처리하기 위해 NoSQL을 사용한다. NoSQL은 관계형 데이터베이스(RDBMS)에 비해 안정성은 떨어지나 높은 확장성을 보여준다. # Shard기법으로 확장한다. # 대표적인 NoSQL으로는 Dynamo, MongoDB, Casandra등이 있다. 대부분의 기업은 중요한 정보들을 처리할땐 RDBMS을 사용하고 댓글과 포스팅같은 데이터에는 NoSQL를 사용한다. 또한 프로필 수정과 같은 기능은 빠른 응답을 위해 Cache 서버를 사용하며, 사진을 업로드 하고 사진에 대한 부가적인 작업을 하기위해 Message queue를 사용한다. 이에 많은 회사들은 각기 다른 많은 서버와 자원들을 관리하기 위해 serverless를 활용한다. # serv.. 2022. 6. 28. 이전 1 2 3 다음