This week I Learned 10

주영택·2020년 3월 9일
1

This Week What I Learned

목록 보기
8/50

데이터베이스 테이블 추가 vs 필드 추가

상품 목록을 뽑는데 출시 알림 옵션을 넣고 싶은 경우 어떻게 할까?

이런 요구사항이 있을 때 게다가 자동화로 해결하지 못할 경우에는 필드를 추가하여 필터링 하거나 출시알림에 해당하는 바구니에 남아서 사용하는 출시알림 목록을 조회하는 방법이 있을 것이다.

도메인 설계 또는 적어도 데이터베이스 설계를 자주 하지 않으면 어떤 경우에 필드를 추가해서 해결해야 할지, 어떤 경우에 테이블을 엮어서 해결해야 할지 갈팡질팡할 때가 있다.

간략하게 정리하면...

필드 추가

  • 해당 정보가 배타적이고
  • 해당 테이블에 고유하게 종속될 때

테이블 결합

  • 해당 정보가 필터의 역할을 할 때
  • 배타적이지 않고
  • 그룹핑 되거나
  • Featured 의 성격을 가질 때

이 정도 기준을 가지고 해당 정보를 필드에 추가해 처리할지 말지 결정할 수 있다.

필드 추가는 해당 필드가 인덱스 될 수 있는가 여부가 매우 중요하다.

리눅스 서버 로케일 세팅

라즈베리 파이에 라즈비안 라이트 올리고 소소하게 모니터 용도로 사용하기 위한 세팅을 마치고 로케일 세팅에 부족한 부분이 있어서 나오는 경고를 해결하기 위해 기본 로케일에 부족한 부분을 추가함.

$ vi /etc/default/locale

LC_CTYPE="en_US.UTF-8"
LC_ALL="en_US.UTF-8"
LANG="en_US.UTF-8"

하이퍼포먼스 프록시 미들웨어 엔보이 프록시

클라우드 시대를 맞이하여 클라우드 네이티브 프록시를 표방하는 엔보이 프록시를 소개 받음. HaProxy 와 같은 역할을 함.

웹서버는 아파치 시절을 지나 애플리케이션 서버 시대를 지나
경량 프록시 시대에 도달.
이제 웹 서버는 스테틱 서빙과 프록시 서버로 나뉘어짐.
웹 앱이 대세가 되고 html 을 서빙하는 웹 서버는 점차 줄어듬.
사실 nginx 도 웹 서버의 기능은 별로 사용하고 있지 않음.
더불어 로드밸런서 기능을 탑제하는 요구가 늘어남.

엔보이가 있기 전 Zuul 이라는 자바진영의 L7 application gateway 가 대세였는데
Lift 에서 C++ 기반 클라우드 전용의 미들웨어를 내놓고 메이저 밴더들이 채택함.

구글 클라우드에도 사용되고 있음. 구글 클라우드의 로드밸런서를 사용하면 이 프록시 서버의 ID 를 헤더에서 확인할 수 있다고 함.

GraphQL 어디에 사용해야 적절한가

퍼블릭 도메인에 어울린다. 자유도가 높은 편.

클라이언트

대표적인 클라이언트 라이브러리는

  • 리액트를 지원하는 Relay
  • 리액트, 뷰, 앵귤러 등의 프레임워크를 지원하는 Apollo

Vim 키 바인딩

콘트롤 키 조합과 쉬프트 키 조합이 가능하다. 다만 둘을 함께 쓰진 못한다.

  • ctrl+a 와 ctrl+shift+a 는 구분하지 못함.
  • ctrl+a 와 shift+a 는 구분함

대충 정리된 Vim 세팅

링크

profile
NodeJS 백엔드 웹 개발자입니다.

0개의 댓글