본문 바로가기

분류 전체보기127

쉽게 따라하는 Firebase Cloud Functions - 1. 프로젝트 생성 (2019-08-27에 작성된 글입니다) AWS나 Azure와 같은 클라우드 플랫폼이 제공하는 Serverless 플랫폼을 사용하면 개발자가 웹 애플리케이션을 만들고, 이를 VM 인스턴스에 올리고, CI/CD를 구성하는 등... 여러가지 신경쓸 것이 많은 백엔드 작업들을 비지니스 로직 코드만 작성하여 Firebase에 배포하면, 해당 Serverless 플랫폼이 스케일링이나 DB 접근 등을 알아서 전부 관리해줘 애플리케이션 개발 중 백엔드 개발 시간을 단축할 수 있다. (하지만 편리한 만큼 단점도 있기 때문에 잘 선택해서 써야한다.) 또 이번에 알아볼 Firebase Cloud Functions의 경우, Firebase의 Realtime DB, Authentication 등에 쉽게 접근하여 여러 백엔드 .. 2020. 12. 30.
Make practicable daily routine 나는 스스로를 잘 제어하지 못하는 사람이다. 그걸 알기에 나는 나를 움직이지 않으면 안될 상황을 만들어 나를 억지로라도 움직이게 만들었다. 예전에는 나를 억지로라도 움직이기 위해서 회사 근처 영어 학원에서 오전반을 다녔고 재밌어서 스터디 리더도 했었다. 주말에는 스터디를 했었고 휴일에 너무 늘어져있으면 근처 카페라도 가서 일단 차 한잔 시켜놓고 차 값이 아까워 적어도 한 시간은 공부를 하든 독서를 하든 뭔갈 하곤했었다. 그런데 지금은 집 외에 실내를 들어가질 못하고 집 안에 쳐박혀 있어야하니 나를 움직이게 만드는 것들이 아예 사라졌다. 스스로 규칙이 없다보니 그때그때 주어진대로 생각하게 되고 할 것을 그냥 잡히는데로 정하게되더라. 몇 개월의 바보같은 시행착오 끝에 스스로 지켜야할 루틴의 필요성을 느꼈다... 2020. 12. 28.
validation => insert V.S. insert => catch (2020-01-19에 작성된 글입니다.) 최근 다른 팀원이 기능을 구현한 코드를 보면서 기존에 내가 하던 방식과 차이가 있어, 팀원들과 이에 대해 같이 얘기를 나누면서 알아본 것들과 나의 생각을 정리해본다. 상황 다음과 같은 사용자 Entity가 있고 사용자의 화면에 보이는 이름(displayName)과 계좌(account)는 다른 사용자와 중복되지 않는 unique한 값이어야한다 라는 도메인 규칙이 있다고 하자. 그러면 TypeORM을 사용할 경우 아래와 같이 User Entity를 만들 수 있을 것이다. @Entity() export class User extends BaseEntity { @PrimaryGeneratedColumn() private id: number; @Column({ uniqu.. 2020. 12. 28.
Model Bakery 사용 시 주의점 Django application 테스트 시 Django Model에 대한 Test fixture를 일일이 만들기 번거로울 때 주로 Model Bakery를 사용하여 model fixture를 만든다. 이 포스팅은 Model Bakery를 사용하면서 부딪힌 겪은 문제를 통해 알게 된 것들을 정리한 것이다. (포스팅에 나오는 코드는 여기에서 확인 가능하다.) 다음과 같은 단순한 형태의 Board, Reply Django model을 기반으로 진행하도록 하겠다. from django.db import models as m class Board(m.Model): content = m.CharField(null=False, max_length=100) class Reply(m.Model): board = m.F.. 2020. 12. 28.
== 와 is 비교 값이 같은지를 확인할 때 == 를 주로 사용한다. 그리고 값이 None 인지를 확인할 때는 is 를 사용한다. 그럼 == 와 is 의 차이는 무엇일까? == : value equality, 값이 같은지를 확인한다. is : reference equality, 참조가 같은지를 확인한다. l1 = [] l2 = [] print(l1 == l2) # True print(l1 is l2) # False 위 결과 l1 == l2 는 True이고 l1 is l2 는 False이다. 리스트를 선언하여 변수에 할당할 때, 새로운 list object가 생성되어 변수에 할당되기 때문에 l1과 l2는 서로 다른 list object를 참조하게된다. 그렇기 때문에 l1, l2 모두 빈 list이기 때문에 값은 같지만 (==.. 2020. 12. 28.
function의 default parameter 사용 시 주의점 파이썬은 함수를 정의할 때 default parameter(기본값)을 같이 정의할 수 있다. 편리한 기능이지만 아래와 같이 list나 dictionary와 같은 object를 사용할 경우 버그가 날 확률이 높다. (물론 의도적이라면 예외이다.) def list_func(li=[]): li.append('test') print('li:', li) print('#############') list_func() # li: ['test'] list_func() # li: ['test', 'test'] list_func() # li: ['test', 'test', 'test'] list_func() # li: ['test', 'test', 'test', 'test'] 아무 parameter도 전달하지 않았을 경우.. 2020. 12. 28.