collections - Container datatypes 에서 딕셔너리 서브클래스 3개를 살펴보겠습니다. 일반적인 딕셔너리랑 다르게 조금 특별한 점이 있습니다. [1] defaultdict 딕셔너리에서 존재하지 않는 키를 조회할 경우 KeyError exception이 납니다. 하지만 defaultdict은 존재하지 않는 키를 조회하면 에러가 나는 것이 아니라 설정한 디폴트 값을 기준으로 해당 키에 대한 아이템을 딕셔너리에 추가해줍니다. defaultdict의 first argument로 default_factory 를 제공해주면 됩니다. 디폴트값을 10이라고 해줄게요! '라이언' 이라는 키값이 존재하지 않지만 KeyError도 안나고 디폴트 값을 기준으로 아이템을 딕셔너리에 추가해주는 것을 볼 수 ..
파이썬은 string formatting을 다양한 방식으로 지원해왔습니다. 1) %-formatting name = 'Fred' age = 50 introduce = 'My name is %s, my age next year is %s' % (name, age+1) print(introduce) // 결과 My name is Fred, my age next year is 51 2) str.format name = 'Fred' age = 50 introduce = 'My name is {}, my age next year is {}'.format(name, age+1) print(introduce) // 결과 My name is Fred, my age next year is 51 3) string.Temp..
[1] List Comprehension PEP 202 - List Comprehensions PEP 202 -- List Comprehensions The official home of the Python Programming Language www.python.org List Comprehension은 기존 리스트를 기반으로 새로운 리스트를 만들어내는 구문입니다. 예를들어 leading and trailing whitespaces를 지워주는 strip을 리스트의 모든 아이템에 적용하고 싶다면 이렇게 리스트 컴프리헨션을 이용할 수 있습니다. list = ["죠르디 ", " 라이언 "] new_list = [item.strip() for item in list] print(new_list) // 결과 [..
장고의 Making queries 문서를 정리합니다 ✏️ [Django] 쿼리문 (create, update, delete) 에서 이어지는 글 입니다! [ Retrieve 원리 ] 장고는 Manager라는 객체를 모든 Model class에 디폴트로 추가합니다. objects 라는 이름으로 추가되는데, 원한다면 objects 대신 다른 이름을 쓰도록 바꿀 수 있습니다. (하지만 바꾸는 사례를 본 적이 없습니다,,,,) 모델 클래스에 있는 이 Manager를 통해 QuerySet을 얻어오는 방식으로 database에서 objects를 retrieve 합니다. [ QuerySet ] QuerySet 은 database에 있는 objects의 모음(collection)을 말합니다. 예를들어 어떻게 생겼는 지(..
장고의 Making queries 문서를 정리합니다 ✏️ 우선 여기서 말하는 쿼리문은 SQL 쿼리문이 아닙니다. Model 을 만들면 장고는 자동으로 database-abstraction API를 제공합니다. 이 API를 통해서 create, retrieve, update, delete 쿼리문을 작성할 것입니다. retrieve는 다음 글에 작성하고 이 글에서는 create, retrieve, update 만 살펴보겠습니다. 우선 장고의 DB 컨셉을 간단히 다시 보면 (참고: [Django] 튜토리얼 part 2 (1) - 모델, 데이터베이스) model class는 database table, model class의 instance는 database table의 각각의 record를 의미합니다. 그럼 ..
[ 인트로 ] 오늘 오후 3시쯤 애플 쪽으로 개발자님 메일주소를 공유받았다면서 비밀번호 초기화를 하고 싶다는 메일을 받았다. (비밀번호를 잊으셔서 다시 로그인을 못하는 상황이셨다) 개인 앱이지만 앱에 문의할 수 있는 이메일도 안남겨놓고 계정이 있는 앱이라면 필수인 아이디 찾기, 비밀번호 재설정, 탈퇴하기도 안붙인 내 자신이 너무 부끄럽고 죄송스러웠다,,, 양파가족을 너무너무 잘쓰고 있고 얼른 다시 재개하고 싶다는 메일을 보고 저녁약속 전 무조건 대응해드리고 간다 🔥🔥 라고 생각하고 가장 빠른 방법으로 대응해드렸고 기록을 남긴다. (이렇게 주절주절 쓰는 이유는 Django의 기본 기능이 너무 잘되어있고 간편해서 이런 급한 상황에서도 빨리 적용할 수 있다는 것을 강조하고 싶어서이다,,,) (사실 처음부터 이..
[ 목표 ] 새로운 프로젝트를 시작하고 (로컬 프로젝트를 만들고) 깃헙에 올릴 때, 1. gitignore 파일을 만들기 2. Adding an existing project to GitHub using the command line 문서따라 명령어 입력하기 하는데 좀 귀찮아서 스크립트를 만들어봅니다. 스크립트는 깃헙 연동할 프로젝트가 있는 디렉토리로 이동 후 & remote_url과 gitignore_url를 설정해주고 & 이걸가지고 gitignore파일을 만들고 깃헙관련 명령어들을 실행해주는 순서입니다. [1] move_to_local_project import os def move_to_local_project(): directory = input('프로젝트 디렉토리를 입력해주세요\n') os.ch..
[1] 장고의 기본 DB 설정 아래 명령어로 장고 프로젝트를 만들면 django-admin startproject sample_api 이렇게 파일이 구성됩니다. settings.py에 들어가보면 장고는 기본 DB로 sqlite를 쓰는 것을 알 수 있습니다. SQLite는 주로 소규모 프로젝트에서 사용되는 파일기반의 가벼운 데이터베이스 입니다. 보통 초기 개발 단계에서 SQLite를 사용하여 빠르게 개발하고 서비스로 제공할 때 운영환경에 어울리는 데이터베이스로 바꾼다고 합니다. 대규모 서비스에는 오라클 / 소규모 서비스는 PostgreSQL, MySQL 등의 데이터베이스를 많이 사용합니다. 그리고 데이터베이스를 여러 개 사용할 때 default에 지정한 데이터베이스 외에도 추가로 등록해서 사용할 수 있다고..
[1] 개념 - 지오코딩 (Geocoding) 주소 (ex. '1600 Amphitheatre Parkway, Mountain View, CA') 를 지리적 좌표 (위도 37.423021, 경도 -122.083739) 로 변환하는 것을 말합니다. - 역지오코딩 (Reverse geocoding) 지리적 좌표 (위도 37.423021, 경도 -122.083739) 를 사람이 읽을 수 있는 주소 (ex. '1600 Amphitheatre Parkway, Mountain View, CA') 로 변환하는 것을 말합니다. 저는 reverse geocoding을 테스트해보고 싶어서 구글맵 api를 사용해보겠습니다. [2] 문서보기 깃헙에 들어가서 사용법을 봐줍니다. github.com/googlemaps/googl..
파이썬 3.5부터 함수 파라미터, 반환값에 대한 타입을 표시할 수 있는 Type Hints가 들어갔습니다. (참고: PEP 484 ) def get(name: str) -> str: return name print(get("jinny")) // 출력 jinny 그리고 파이썬 3.6에는 변수에 대해서도 타입을 표시할 수 있게 되었습니다. (참고: PEP 526 ) name: str = "jinny" print(name) // 출력 jinny 하지만 주의할 점은 Type Hint는 말그래도 타입 힌트이지 타입 강제가 아닙니다. 그래서 string타입에 int값을 넣어도 에러가 안나고 잘 실행이 되는 것을 볼 수 있습니다. def get(name: str) -> str: return name print(get..
- Total
- Today
- Yesterday
- github actions
- cocoapod
- flutter build mode
- ribs
- Dart Factory
- drf custom error
- Django Heroku Scheduler
- 장고 Custom Management Command
- Django FCM
- 장고 URL querystring
- METAL
- 플러터 얼럿
- Flutter getter setter
- Django Firebase Cloud Messaging
- PencilKit
- flutter 앱 출시
- SerializerMethodField
- Flutter Spacer
- 구글 Geocoding API
- flutter deep link
- Sketch 누끼
- Watch App for iOS App vs Watch App
- Flutter Clipboard
- ipad multitasking
- 플러터 싱글톤
- Flutter 로딩
- Flutter Text Gradient
- Python Type Hint
- DRF APIException
- flutter dynamic link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |