acrojuno / MaskEraser

MIT License
0 stars 0 forks source link

2022/3/26 조사 내용 - 민준호 #7

Open acrojuno opened 2 years ago

acrojuno commented 2 years ago

1.

플러터 클라이언트에서 장고 백엔드로 연결을 하려는데 자꾸

'SocketException: OS Error: Connection refused, errno = 111'

라는 오류가 떠서 원인을 찾아봤다.

https://stackoverflow.com/questions/55785581/socketexception-os-error-connection-refused-errno-111-in-flutter-using-djan

위 링크를 보면 서버를 로컬에서 돌림과 동시에 클라이언트는 안드로이드 에뮬레이터로 테스트를 진행한다면

서버 주소(localhost 또는 127.0.0.1)을 10.0.2.2로 바꿔줘야 한다.

acrojuno commented 2 years ago

2.

클라이언트에서 서버 주소를 10.0.2.2로 바꿔줘도 서버 연결을 시도하면 클라이언트에서는

Http status error [400]

에러를 띄우고

장고 백엔드 측에서는

Invalid HTTP_HOST header: '10.0.2.2:8000'. You may need to add '10.0.2.2' to ALLOWED_HOSTS. Bad Request: /PostContent/ [26/Mar/2022 19:03:05] "POST /PostContent/ HTTP/1.1" 400 68735

라고 뜬다.

'You may need to add '10.0.2.2' to ALLOWED_HOSTS.'라길래 이에 대해 찾아봤다

https://docs.djangoproject.com/ko/4.0/ref/settings/

http://vezi95.blogspot.com/2016/06/django-debug-false-allowedhosts.html

위 두 링크를 보면 settings.py 내에 있는 'DEBUG'와 'ALLOWED_HOST' 값을 10.0.2.2로 바꿔줘야 하는 것 같다

위 방식대로 바꾼 이후 정상적으로 클라이언트에서 서버로 이미지를 업로드하는 것에 성공했다

acrojuno commented 2 years ago

3.

플러터(다트)에서 함수의 매개변수를 정의할 때 대괄호([ ])를 넣으면

그 매개변수가 선택적인(optional) 매개변수가 되고

매개변수를 선언하지 않았을 때의 기본값을 정해줄 수 있다.

http://daplus.net/dart-dart%EC%97%90%EC%84%9C-%EB%AA%85%EB%AA%85-%EB%90%9C-%EB%A7%A4%EA%B0%9C-%EB%B3%80%EC%88%98%EC%99%80-%EC%9C%84%EC%B9%98-%EB%A7%A4%EA%B0%9C-%EB%B3%80%EC%88%98%EC%9D%98-%EC%B0%A8%EC%9D%B4%EC%A0%90/

acrojuno commented 2 years ago

4.

장고에서 요청이 들어올 때(request)와 클라이언트로 응답을 할 때(response)

return 값으로 쓰일 수 있는 객체(기능?)에 관해 알아 봤다.

https://velog.io/@jcinsh/Django-request-response

어제 만들었던 마스크를 지우는 함수는 return 값을 리스트 두개로 내어주게 되어 있었는데

위 글을 보니 리스트 값이 아닌 JSON 값으로 넘겨줘야할 것 같다.

클라이언트에서 서버로 이미지를 JSON으로 만들어서 보내는 방법은 알겠는데

반대로 서버에서 클라이언트로 이미지를 JSON에 담아 보내는 것은 아직 모르겠어서 더 찾아봐야 할 것 같다.