☀️ [TIL]_22.05.20_금_머신러닝 팀 프로젝트 / 이미지 특정 API

김태인·2022년 5월 20일
0

📘[TO LEARN]


📚API 개발

  • 어떤 API?

업로드한 셀피(이미지)로 작업한 gif 결과물을 특정(확인)하기 위한 api

  • 전체 설계

  • 작업 순서 (의사 코드)

  1. 사용자가 입력한 이미지의 아이디를 recent_selfie_id 변수로 선언 (이때 오브젝트 ID값은 str로 스트링값으로 변환 해주어야함)

  2. 이후 api내에서 변수로 선언한 recent_selfie_id를 활용하기위해 글로벌 전역번수로 선언

  3. db.findone(조건)['필드'] 를 통해 gif 테이블의 selfie_id 값을 gif_selfi_id 변수로 선언 (100% 이해가 안되는 부분)_

  4. gif_selfi_id 와 recent_selfie_id가 같다면 gif테이블의 name_gif를 반환하여 리턴값에 저장

  5. 클라이언트가 없는 상황에서 백엔드를 먼저 개발했기에
    포스트맨을 활용하여 gif값이 찍히는지 확인

recent_selfie_id = str(db.selfie.find_one()['_id'])


@app.route('/loadimage', methods=['GET'])
def load_image():
    global recent_selfie_id
    
    gif_selfie_id = db.gif.find_one(
        {'selfie_id': recent_selfie_id})['selfie_id']

    if gif_selfie_id == recent_selfie_id:
        find_gif = db.gif.find_one()['name_gif']

        return find_gif
  • 포스트맨 결과

    gif name을 잘 특정하고있음

  • request, progress, response

  1. request (사용자 요청)
    모든 것은 서버에 저장되어있기에, 사용자에게 요청받을 값은 없다

  2. Progress (처리)
    이미지 참조

  3. Response (데이터 리턴)
    조회한 데이터의 gif 이름을 변수로 선언하여 돌려줌

✔️[TO Remember]

  • 오브젝트 ID는 오브젝트 값이기때문에 str로 변환하여 사용할 필요가있음

  • 밖에서 선언된 변수는 함수 내에서 사용하고 싶을 시 global 전역변수로 설정하여 사용해야함

  • 의사코드를 작성하며 코딩하는 습관을 들여야 함

  • 배운건 까먹지 않기위해 꼭 벨로그에 작성해두어야함

  • 디버깅 할때 번역기도 좋지만 구글에 직접 에러코드 넣어보기

💡[느낀점]

아프다... 몸에서 사리가 나올것같다
온몸에 독이 퍼지는 느낌;

완벽한 이해가 될랑 말랑 아리송한 느낌...

그래도 팀장님과 팀원분들이 물심양면 모든걸 다해 도와주시고 있으니
어떻게든 이악물고 이해하려 노력하자

profile
코딩이 취미가 되는 그날까지

0개의 댓글