본문 바로가기

[Day90] Product Serving 3-1 FastAPI : FastAPI Path Parameter 0.0.0.0/users/402 GET 방식 : 정보를 READ 서버에 402라는 값을 전달하고 변수로 사용 경로에 존재하는 내용이 없으면 404 Error resource를 식별해야 하는 경우 좀 더 적합 Query Parameter = Query String 0.0.0.0/users?id=402 GET 방식 API 뒤에 입력 데이터를 함께 제공하는 방식 key-value 쌍으로 이루어짐 ?로 시작하고 &로 연결해서 여러 데이터를 넘길 수 있다. 데이터가 없는 경우 빈 리스트가 나옴 -> 추가적인 error handling이 필요 정렬, 필터링을 해야하는 경우 좀 더 적합 Optional Parameter 특정 파라미터를 선택적으로 하고 싶은 경우 typing 모듈의 Opti..
[Day90] Product Serving 3-1 FastAPI : 백엔드 프로그래밍 Monolithic Architecture : 모놀리식 아키텍처 하나의 서버에 서비스와 머신러닝 서비스가 한 번에 담겨있을 수도 있고, Microservice Architecture : MSA: 마이크로서비스 아키텍처 서비스 서버와 머신러닝 서버가 따로 존재할 수도 있다 각각 개별 서버로 구성 fast api는 MSA를 만들 때 좋은 framework이다. Rest API : Representational State Transfer : 정보를 주고받을 때 널리 사용되는 형식 : Rest 형식의 API 요청의 모습을 보고 어떤 일을 하는지 알 수 있음 예를 들어 www.site.com/1 이면 1이 무엇을 의미하는지 알기 힘들다. CRUD(Create Read Update Delete) 가능 클라이언트가 ..
[GCP] compute engine 예기치 않은 오류로 인해 VM 인스턴스에 연결할 수 없습니다 전에만들어 두었던 vm 인스턴스가 ssh 브라우저로 열리지 않는 문제가 갑자기 발생했다. [부스트캠프 AI Tech 3기/프로젝트 : P-stage] - [Day86] Product Serving 2-4 Cloud 이 글에서 vm 인스턴스 만드는 방법을 볼 수 있다. 연결 문제 해결을 눌러도 계속 돌아가기만 하고 문제를 보여주지 않았다. 알아보니 저장 공간이 충분하지 않으면 오류가 뜰 수 있다고 해서 디스크 크기를 10GB에서 30GB로 늘려보기로 했다. 디스크-원하는 인스턴스 이름 클릭-수정 늘렸는데도 해결되지 않아서 인스턴스를 결국 삭제했다..
[Day90] Product Serving 2-5 CI/CD CI/CD 개발환경 Local dev staging production 각자의 컴퓨터 local에서 개발한 기능 테스트 production 환경에 배포하기 전에 성능, 보안 측정을 위해서 실제 서비스를 운영하는 환경 환경을 통일하기 위해 docker 사용 =Test 서버 =staging 서버 = 운영서버 실제 운영중인 서비스에는 장애가 발생하지 않도록 함 dev=staging=production환경인 경우 → 소스코드를 저장하면 바로 반영됨 feature branch → dev branch → staging branch → main branch로 점점 넓혀나감 서버를 코드를 보내기 dev에서 test하고 괜찮으면 FTP로 파일을 보내고 확인 등 번거롭다 CI : Continuous Integration ..
[GCP] bucket의 객체 삭제,서비스 계정 키 발급 & 환경변수 설정 Python Client for Google Cloud Storage — google-cloud-storage documentation As of January 1, 2020 this library no longer supports Python 2 on the latest released version. Library versions released prior to that date will continue to be available. For more information please visit Python 2 support on Google Cloud. Python Client for googleapis.dev Python 개발 환경 설정 | Google Cloud 의견 보내기 Python 개발 환경..
[Day86] Product Serving 2-4 Cloud Cloud Cloud 서비스를 사용하는 이유 localhost로 서비스를 할 수는 있지만 내 컴퓨터가 종료되면 서비스도 종료된다. 그래서 서버실을 만들어서 운영했었다. 갑자기 트래픽이 몰리면 갑자기 컴퓨터를 설치할 수 없기 떄문에 터졌다. cloud를 사용하면 scale in out이 쉬워진다. 또한 기본 설정이 개발자가 하지 않아도 자동으로 빠르게 설정할 수 있다. SAAS : service 어느정도 많이 쉽게 쓸 수 있다. 아예 솔루션을 사용하는 것 ex) 구글 독스를 사용하는 것 자체 PAAS : software IAAS : infra 직접 다 한다 Cloud 서비스의 다양한 제품 Computing service(server) = 가상컴퓨터= 서버 = VM(Virtual Machine) = inst..
[Day82] Product Serving 2-2 프로토타이핑 - 웹 서비스 형태(Streamlit) Streamlit voila는 레이아웃을 잡기는 어렵다. 자바스크립트, react를 사용해서 프로토타입을 만드는 것은 시간적으로 효율성이 없다. 다른 조직 프론트나 PM의 도움 없이 빠르게 웹 서비스를 만드는 것이 streamlit이다. streamlit의 대안 voila : notebook을 바로 시각화, ux나 layout 잡기가 어려움 dash : 문서를 읽고 코드를 고쳐야함 flask+fastAPI : 백엔드와 프론트를 직접 구성해야 함 streamlit의 장점 백엔드 개발이 필요 없다 파이썬을 조금만 수정하면 된다 UI를 구성할 수 있다. 배포까지 할 수 있게 되어 있다. pip install streamlit 를 CLI에 쳐서 설치한다. 나머지 것들은 GitHub - zzsza/Boostcam..
[Day82] Product Serving 2-1 프로토타이핑 - Notebook 베이스(Voila) Voila 내가 만든 코드를 다른 사람들이 구현하려면 라이브러리 설치, 버전 등 신경써야할 것이 많고, 개발을 잘 모르는 사람이라면 이 부분에서 어려울 수 있다. 모델을 개발한 후 프로토타입을 만들어서 가능성을 테스트할 수 있다. 웹서비스를 만드는 것은 시간이 많이 소요되기 때문에 노트북으로 프로그램으로 만들면 시간을 많이 아낄 수 있다. 그 역할을 voila가 한다. 사용자가 값을 바꿀 수 있는 대시보드를 구축할 수도 있다. 1차 프로토타입을 웹형태로 단시간에 띄울 수 있다. Voilà Gallery gpx-viewer GPX Viewer web app built with ipywidgets, ipyleaflet, bqplot and voila voila-gallery.org R의 shiny, 파이썬의..