[1] heroku의 Add On 헤로쿠에서는 앱에서 사용하고 싶은 추가 기능을 add-on 할 수 있습니다. Add-on elements (elements.heroku.com/addons) 에서 검색해서 원하는 기능을 추가하면 됩니다. 나의 앱 > Resources > Add-ons 에 들어가서 추가하면 됩니다. [2] Add On에서 Scheduler 검색 저는 특정 작업을 매일마다 반복해주는 기능이 필요해서 Scheduler라고 검색을 했어요 저는 이중에 꾸준히 무료로 쓸 수 있는 Heroku Scheduler를 선택해줬습니다. (다른 것은 유료거나 trial만 무료더라구요..) 하지만 무료여도 Install 누르면 크레딧 카드를 등록해야한다고 나옵니다. dashboard.heroku.com/acc..
이 문서를 보고 Custom Management Command를 만들어보도록 하겠습니다. [1] Custom Management Command란 우선 Management Command란 우리가 자주하는 기본 명령어들을 말합니다. (python manage.py로 시작하는) python manage.py runserver python manage.py migrate 그럼 Custom Management Command란 아래와 같은 명령어를 의미하는 거겠네요-! ptyhon manage.py 나의 커스텀 액션 [2] 문서보기 장고의 앱들은 각각의 액션을 manage.py에 등록할 수 있습니다. 예를들어 polls앱에서는 closepoll이라는 custom command를 만들어서 돌리고 싶을 수 있겠습니다...
[Flutter] Firebase Cloud Messaging 연동 + 파베 콘솔에서 푸쉬보내기 에서 푸쉬를 받는 클라이언트(iOS, 안드로이드) 쪽 설정을 해줬는데요 이제 푸쉬를 보내는 서버쪽 작업을 해주겠습니다. 문서 중 서버환경 쪽 보면 됩니다. [1] Firebase 클라우드 메시징의 서버 구성요소 우선 Firebase 클라우드 메시징의 서버 측 구성요소는 2가지입니다. Google에서 제공하는 FCM 백엔드 서버 로직이 실행되는 앱 서버 저의 앱 서버가 FCM 백엔드에 메시지 요청을 보내면 FCM 백엔드는 사용자 기기에서 실행되는 클라이언트 앱에 메시지를 보내는 플로우입니다. [2] 나의 서버가 FCM 서버랑 상호작용하는 방법 FCM 서버랑 상호작용하는 방법은 여러가지가 있는데요, 저는 문서에서..
localhost:8000/question/1 이렇게 생긴 URL을 만들고 싶다면 urlpattern을 아래처럼 추가하고 (참고로 앱이름 question입니다) APIView를 아래와 같이 작성하면 된다. 만약 쿼리스트링을 받고 싶다면 어떻게 해야할까?!?! 그러니까 이런 url을 제공하고 싶은 것이다!! localhost:8000/family_question/answer?question_id=1 url패턴은 기존처럼 유지하고 (참고로 스샷의 앱이름 family_question입니다) APIView에서 request.GET[''키값'] 으로 쿼리스트링의 value를 꺼내오면 된다. 잘됨 ☺️ [추가] 그리고 저는 특정 쿼리스트링이 있는지를 명시적으로 확인하고 없으면 더 이상 진행안하고 에러보내주도록 처리..
API 만들때 에러 메세지 정책을 어떻게 해주는 게 좋을까?! 를 많이 고민했습니다. (장고로 API 개발 + 플러터로 클라이언트 개발을 동시에 하고 있어가지구 이 정책에 따라 클라도 같이 바꿔해서,,,😶) 그래서 고민한 것들을 기록해두려고 합니다. 우선 크게보면 사용자가 얼럿으로 만나게 되는 에러메세지를 서버에서 결정할 것인지, 클라이언트에서 결정할 것인지 정해야하는 문제인데요 더 구체적으로 생각해보면 후보1) 서버: api에서 status code만 내려준다. 클라: api에서 내려주는 status code를 보고 클라이언트에서 에러메시지를 매핑한다. 후보 2) 서버: api에서 status code 뿐만아니라 개발자가 이해할 수 있는 에러메세지를 내려준다. (예를들어, header값이 올바르지 않습..
[1] Custom Exception Handling 이란 Custom exception handling 이란 API의 에러 응답(error response) 스타일을 내맘대로 핸들링할 수 있는 것을 말합니다. 현재 장고는 아래와 같은 스타일의 에러응답을 내려주도록 되어있는데요 { "detail": 장고의 에러메세지 } 에러 응답에 status_code 필드를 추가하는 등 에러 응답 스타일을 커스터마이징하고 싶은 니즈가 있을 수 있습니다-!! 이럴때 취할 수 있는 방법이 custom exception handler 만들기 입니다-!! [2] Custom Exception Handler 만들기 우선 저는 플젝에 utils라는 파일을 하나 만들었구요 문서에 있는 코드를 복붙해서 넣었습니다. from rest..
[DRF] 모델과 ModelSerializer 만들기 에서 모델을 JSON으로 쉽게 바꿀 수 있도록 해주는 ModelSerializer를 알아봤는데요, 만약- 모델에 없는 필드인데 JSON에 특정 필드를 추가해서 내려주고 싶거나 - 모델에 있는 값을 변경해서 JSON으로 내려주고 싶거나 (예를 들어 모델에는 fullName 필드가 있는데 JSON은 firtsName으로 내려주고 싶다던가) 할때는 어떻게 해야할까요?! SerializerMethodField 를 사용하면 됩니다. 이 필드에는 method_name을 지정해줄 수 있는데요, 안지정해주면 get_필드네임 메소드를 부른다라고 적혀있네요 예를들어 이렇게 생긴 Profile 모델이 있다고 할때 JSON으로 nickname 필드를 내려주고 test라는 ..
rest_framework에 있는 기본 exception과 APIException에 대해서 알아보겠습니다. [1] Exception 처리해야하는 이유 저의 SignupView는 이렇게 되어있는데요 아무 exception도 처리안해준 상태입니다. class SignupView(APIView): def post(self, request): unique_string = get_random_string(length=10) temporary_family_code = models.TemporaryFamilyCode(code=unique_string) user = User.objects.create_user(username=request.data['id'], password=request.data['password'..
[1] DRF가 지원해주는 Authentication 종류 Django Rest Framework - Authentication 을 보면 이렇게 네가지의 Authentication을 지원해주고 있습니다. Basic은 username이랑 password로 인증하는데 테스트에서만 적절하다라고 나와있고 Token은 token으로 인증하는데, 클라이언트 - 서버 setup에 적절하다고 하고 (저는 이거 쓰겠습니다..!) Session은 AJAX client(뭔지모름ㅠㅠ)에게 적절하다고 하고 Remote는 무슨 말인지 모르겠어요ㅠㅠ [2] TokenAuthentication 설치하기 이미 rest_framework 패키지를 설치했으니까 settigs.py에 가서 앱만 추가해주면 됩니다. 그리고 아래 명령어를 해줍..
[1] Heroku에 필요한 패키지 설치 해당 프로젝트에 들어가서 필요한 패키지들을 설치해줍니다. pip install dj-database-url psycopg2-binary gunicorn whitenoise dj-database-url과 psycopg2-binary은 헤로쿠에서 사용하는 DB인 postgresql을 위한 패키지, gunicorn은 배포하기위해 필요한 패키지, whitenoise는 정적파일의 사용을 돕는 미들웨어 라고 합니다. [2] requirements 파일 만들기 설치가 끝나면 아래 명령어로 requirements 파일을 만들어줍니다. (플젝에서 쓰는 패키지 리스트가 담긴 파일이에요-!) pip freeze > requirements.txt 프로젝트에 보면 해당 파일이 생겨있답니..
- Total
- Today
- Yesterday
- Flutter 로딩
- Dart Factory
- cocoapod
- PencilKit
- Django Heroku Scheduler
- METAL
- Watch App for iOS App vs Watch App
- DRF APIException
- flutter dynamic link
- Flutter getter setter
- Flutter Text Gradient
- Python Type Hint
- 장고 URL querystring
- 장고 Custom Management Command
- flutter deep link
- ipad multitasking
- flutter 앱 출시
- Flutter Spacer
- 플러터 얼럿
- 플러터 싱글톤
- Django FCM
- 구글 Geocoding API
- github actions
- ribs
- Flutter Clipboard
- Django Firebase Cloud Messaging
- drf custom error
- SerializerMethodField
- Sketch 누끼
- flutter build mode
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |