상황우리 졸프는 프론트에서 사진을 보내주면, 스프링에서 데이터 베이스에 저장한 후 프론트에게서 받은 사진을 분석하기 위해 파이썬 서버 (FAST API) 로 보낸다.파이썬 서버는 순차적으로 이미지 -> 오픈포즈 -> smplifyx -> smplify to json 을 거치며 이 과정은, 네이버 클라우드 High CPU (코어 두개) 서버로 돌렸을 때 대략적으로 2분 30초가 걸린다.(정말 달달달 돌아간다....돈 이슈로 싼걸 사용하고 있지만, 9월에는 제대로된 지원을 받을 것이다.)우리 졸프는 프록시 서버로 Cloud Flare을 사용하고 있고, 이 친구는 프론트에서 보낸 요청이 수행 돼 백엔드에서 응답을 보낼 때 100초 제한이 생겨 524 에러 를 리턴한다.100초 제한을 늘릴 수 없으며, 다른 방..
Cors 란?CORS란 Cross-Origin Resource Sharing 의 줄임말로, 교차 출처 리소스 공유라는 뜻이다. 기본적으로 브라우저는 사이트가 로드된 도메인 이외의 도메인으로 오는 요청을 허용하지 않지만, 우리가 백엔드와 프론트의 통신할 때는 필요하기 때문에 이를 꼭 허용해줘야 한다! Cors 매커니즘Cors 매커니즘은 HTTP 헤더를 기반으로 동작한다.Cors 헤더 종류Acceses-Control-Allow-Origin: 도메인의 리소스에 접근할 수 있는 외부 도메인(원본)Acceses-Control-Allow-Methods: 다른 도메인에 대해 접근을 허용하지만, 특정 HTTP 방식만 허용하고 싶을 때 지정한다.Acceses-Control-Allow-Headers: 특정 요청에 이용할 ..
https://github.com/DavidBoja/SMPL-Anthropometry GitHub - DavidBoja/SMPL-Anthropometry: Measure the SMPL body modelMeasure the SMPL body model. Contribute to DavidBoja/SMPL-Anthropometry development by creating an account on GitHub.github.comobj 파일의 길이를 측정해주는 착한 코드. 비교적 쉽게 설치했다. conda create -n smpla python=3.9 conda activaterequirements.py 에 있는 모듈들 모두 pip install 하여 설치.원래 간편하게 pip install -r req..
이거 때문에 두 달은 날린 것 같다.사실 좀 더 내가 똑똑했거나...파이썬을 잘 알았다면 정말 쉽게 끝났을 텐데...수많은 스택 오버 플로우와 깃 이슈를 살펴봤다.1. anaconda 환경 세팅🍎 m2 환경에서 무작정 아나콘다로 하지 마시고 miniforge를 설치 해야 된다는걸 수많은 구글링으로 알았습니다.저처럼 하시면 채널 오류랑 라이브러리가 충돌나서 3일동안 고생을 하고 아나콘다 환경을 다 날리고 재설치 하게 됩니다.1-1. 일단 openpose 환경을 세팅한다.이유: smplify랑 numpy 버전이 차이나기 때문이다. 이거때문에 trimesh 설치를 하지 못하는 오류를 겪었다.아나콘다 환경을 만들었다는 가정 하에 실행한다.conda create -n openposeconda activate o..
서버 흐름도전체 데이터 흐름 요약프론트엔드: 사용자가 회원가입 또는 로그인 후 이미지를 업로드.백엔드: 이미지를 받아서 Colab 서버로 전송.Colab 서버: 이미지를 처리하여 obj 파일을 생성하고 경로를 반환.백엔드: obj 파일 경로를 체형 측정 서버로 전송.체형 측정 파이썬 서버: obj 파일을 분석하여 결과를 JSON 형식으로 반환.백엔드: 결과를 받아서 프론트엔드로 전달.코랩 코드 → 주피터 노트북 → EC2🔗 코랩 코드 Google Colab코랩에 있는 코드를 주피터 노트북으로 옮겨온다..ipynb 형식으로 다운받는다.ec2 인스턴스를 만든다.AMI 선택: 적절한 Amazon Machine Image(AMI)를 선택.일반적으로 Deep Learning AMI 또는 Ubuntu AMI를 사..
버그"detail": "method 'get' is not supported." @PostMapping("/logout")public BaseResponse logout()를 진행하는데 Post요청으로 logout을 분명히..? 보냈는데..? 갑자기 get 요청이 안된다는거임... 당연하지 post니까.내가 잘못한건 아닌데..? 포스트맨이 이상한건가? 하고 서치를 해보니까 스프링 시큐리티는 기본적으로 GET 으로 /logout 을 지원한다. 따라서 /logout 요청에 내 post 요청이 아닌 get으로 갔던 것...해결 /logout이 아닌 /auth/logout으로 API url 바꿈 참고: https://velog.io/@oayenn/Spring-Request-method-GET-is-not-..