[1] Custom Exception Handling 이란 Custom exception handling 이란 API의 에러 응답(error response) 스타일을 내맘대로 핸들링할 수 있는 것을 말합니다. 현재 장고는 아래와 같은 스타일의 에러응답을 내려주도록 되어있는데요 { "detail": 장고의 에러메세지 } 에러 응답에 status_code 필드를 추가하는 등 에러 응답 스타일을 커스터마이징하고 싶은 니즈가 있을 수 있습니다-!! 이럴때 취할 수 있는 방법이 custom exception handler 만들기 입니다-!! [2] Custom Exception Handler 만들기 우선 저는 플젝에 utils라는 파일을 하나 만들었구요 문서에 있는 코드를 복붙해서 넣었습니다. from rest..
[문제] 무료 이미지 사이트에서 다운받은 이미지의 Background color가 화이트 입니다. 근데 이렇게 배경이 흰색으로 나오면 안되고 clear하게 나오면 좋겠습니다. 우선 디자이너 언니가 누끼따는 일(백그라운드 버리고 양파 캐릭터만 따오는 일)은 포토샵에서 엄청 쉽다고 합니다. 저는 포토샵이 없고 스케치만 있어서 스케치에서 하는 법을 전수받았습니다 🙇♀️ [해결] 1) 스케치에 이미지 파일을 끌어옵니다. 2) 이미지를 클릭하고 Edit을 눌러줍니다. 3) 요술봉을 클릭해줍니다. 4) 이미지의 하얀 배경을 눌러줍니다. 5) 키보드에서 Delete 키를 눌러줍니다. 하얀배경을 지워주겠다는 뜻-!! 6) Finish Editing을 눌러줍니다. 7) 마지막으로 Export해서 잘되었는지 확인해봅니다..
[DRF] 모델과 ModelSerializer 만들기 에서 모델을 JSON으로 쉽게 바꿀 수 있도록 해주는 ModelSerializer를 알아봤는데요, 만약- 모델에 없는 필드인데 JSON에 특정 필드를 추가해서 내려주고 싶거나 - 모델에 있는 값을 변경해서 JSON으로 내려주고 싶거나 (예를 들어 모델에는 fullName 필드가 있는데 JSON은 firtsName으로 내려주고 싶다던가) 할때는 어떻게 해야할까요?! SerializerMethodField 를 사용하면 됩니다. 이 필드에는 method_name을 지정해줄 수 있는데요, 안지정해주면 get_필드네임 메소드를 부른다라고 적혀있네요 예를들어 이렇게 생긴 Profile 모델이 있다고 할때 JSON으로 nickname 필드를 내려주고 test라는 ..
CupertinoAlertDialog 플러터에서 iOS 스타일의 얼럿을 만드려면 CupertinoAlertDialog 를 쓰면 됩니다. 생성자는 이렇게 생겼습니다. 예를 들어 이렇게 만들면 됩니다. CupertinoAlertDialog( title: Text("Alert"), content: Text("My alert message"), actions: [CupertinoDialogAction(isDefaultAction: true, child: Text("Close")), onPressed: null] ) showCupertinoDialog 그럼 얼럿을 만드는 법을 알았으니 어떻게 띄울수있는지 알아보겠습니다. showCupertinoDialog function을 사용하면 됩니다. 이렇게 생겼고 iOS-..
현재 내 컴퓨터에서 돌리고 있는 로컬 서버에 접속하려면 어떻게 해야할까요?! (저는 장고로 API 개발중이여서 장고 서버를 기준으로 한 글입니다.) 우선 시뮬레이터(iOS), 에뮬레이터(안드로이드)도 하나의 OS이기 때문에 여기서 localHost를 부르면 자기자신이 됩니다. (내 컴퓨터가 아니라) 그래서 앱에서 api 콜을 해봐도 서버에 연결이 안된답니다,, Android Emulator 네트워킹 설정 을 보면 10.0.0.2.2라는 특수주소로 접근할 수 있다고합니다. iOS Simulater는 또 다르게 해줘야하는데 (찾아본 여러 방법 다 안되서 적지 않을게요,,) 귀찮으니까 여기를 보고 장고 서버가 다른 컴퓨터에서도 접속할 수 있게 해보겠습니다. [1] 터미널에서 아래의 ..
플러터에서 화면전환을 하고 싶다면 Navigator와 CupertinoPageRoute를 보면 됩니다. CupertinoPageRoute 전체 화면을 iOS 전환으로 대체하는 모달 경로 (modal route) 라고 합니다. 생성자는 이렇게 생겼어요 이런식으로 이동하고자 하는 위젯을 builder에 넣어주면 됩니다. CupertinoPageRoute(builder: (context) => SignupWidget()) 그리고 fullScreenDialog 디폴트값이 false인데요, false이면 push처럼 동작하고 (오른쪽에서 왼쪽으로 새로운 페이지가 나타남) The page slides in from the right and exits in reverse. The page also shifts to ..
Dart에는 팩토리 생성자 가 있습니다. facory 키워드를 사용해서 생성자를 구현하면 해당클래스의 인스턴스를 항상 새로 만들지 않게 된다고 합니다. 예를 들어 볼게요-! AuthManager를 이렇게 factory생성자로 만들어서 싱글톤으로 쓸 수 있습니다. class AuthManager { static final AuthManager _manager = new AuthManager._internal(); factory AuthManager() { return _manager; } AuthManager._internal() { // 초기화 코드 } } factory생성자를 안쓴 다른 클래스(LoginViewModel)과 비교해본 코드입니다..! var manager1 = AuthManager(); ..
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'..
아래 움짤처럼 여러 화면에서 상태를 공유해야할때 어떻게 해야하는지 State management 문서를 살펴보겠습니다. 1) 선언적으로 생각하기 우선 선언적으로 생각하라고 합니다. SwiftUI 처럼 state가 바뀌면 뷰를 아예 다시 그리는 컨셉 🆗👌 2) 임시상태 vs 앱상태 (Ephemeral state vs app state) 그 다음에 임시 상태와 앱상태를 구분하라고 합니다. (Ephemeral state vs app state) 임시상태는 말그대로 단일 위젯에만 딱 포함되는 상태입니다. (다른 위젯들이 이 위젯의 상태에 대해 몰라도됨) 그리고 사용자가 앱을 닫았다가 다시 시작하면 초기값으로 재설정되도 되는 상태입니다. 이런 경우 setState()를 써서 상태관리를 해주면 됩니다. 앱상태는 앱..
textField.text로 값을 가져올 수 있으면 좋겠지만,,,,! (이렇게 못함) Retrieve the value of a text field 문서에서는 TextField의 text를 얻기위해서 TextEditingController를 사용하라고 합니다. CupertinoTextField 생성자를 보면 TextEditingController를 넣어줄 수 있게 되어있네요 현재 이 화면을 만드는 LoginForm 코드는 이렇게 되어있는데요, 텍스트 필드에서 값을 가져올 수 있도록 바꿔보겠습니다,,!! 1) TextEditingController 만들기 우선 TextEditController를 만들어주세요 그리고 dispose함수를 오버라이딩하여서 위젯이 disposed될때 controller도 disp..
- Total
- Today
- Yesterday
- 구글 Geocoding API
- SerializerMethodField
- Django FCM
- ipad multitasking
- Flutter Spacer
- flutter deep link
- Flutter 로딩
- 장고 Custom Management Command
- DRF APIException
- METAL
- 장고 URL querystring
- Flutter getter setter
- Python Type Hint
- flutter 앱 출시
- cocoapod
- github actions
- drf custom error
- ribs
- Flutter Clipboard
- 플러터 얼럿
- flutter dynamic link
- Watch App for iOS App vs Watch App
- Dart Factory
- Django Heroku Scheduler
- flutter build mode
- Flutter Text Gradient
- Sketch 누끼
- 플러터 싱글톤
- Django Firebase Cloud Messaging
- PencilKit
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |