본문 바로가기

전체 글156

Foreign Key에도 index가 걸릴까? (2020-07-08에 작성한 글입니다.) RDS를 쓰면 일대다 관계를 정의해서 사용하는 경우가 잦을 것이다. 테이블 간 일대다 관계를 정의하면 테이블 상으로는 PK, FK를 통해 서로 관계를 매핑시킬 것인데 그러면 FK에는 index가 걸려있을까? 아래와 같이 단순한 유저, 게시물의 경우를 생각해보자. users id (PK) username nickname 1 devson seoul dev 2 chris Chris Brown boards id (PK) user_id (FK) title ... 1 1 DB tuning ... 2 2 What should I do?? ... 테이블에서 확인할 수 있는 것과 같이 유저(users)와 게시물(boards)는 1:N 관계이고 users.id와 boards.us.. 2021. 1. 2.
My Motto of 2021 이전 회사들은 회사 규모가 작았고 서버 개발자가 5명 이하였다. 당시에는 Waterfall 방식으로 프로젝트를 진행하였는데도 인원이 적다 보니 업무를 할 때 의사소통이나 업무상황 공유 등이 어느 정도 잘 되었다. 그러다 보니 당시에는 어떻게 일하면 좋을지에 대해 깊게 생각해본 적이 없었고, DDD를 통해 Event Storming은 알고 있었으나 실제 프로젝트에서 경험한 적은 없었다. 하지만 지금 회사는 100인이 넘는 스타트업인데 금융이라는 도메인이라 개발자뿐만 아니라 금융, 법률 등 실무진들의 비중도 큰 회사이다. 2020년 4분기에 온라인 투자 관련 금융제도가 바뀌어서 서비스를 전체적으로 뒤집는 큰 프로젝트에 참여하였는데 이때 프로젝트 방식이 전형적인 Waterfall이었다. 기획, PM이 어떻게 .. 2021. 1. 2.
Github - Slack 연동 (w/ user mentioning) 업무 효율화를 위해 Slack 알림을 적극적으로 활용할 수 있다. 코드 리뷰가 활발한 개발 조직이라면 PR이나 review comment를 남길 때 Slack 알림을 활용하면 PR을 남겼다고 굳이 얘기를 하지 않아도 알 수 있고, 내 PR에 리뷰가 달렸는지 매번 PR을 확인하지 않아도 된다. (특히 remote 환경에서 매우 편리하다) 이번 포스팅에서는 Github - Slack 연동을 하기 위해 어떻게 구성을 했고 어떤 식으로 동작하는지에 대해 정리해보도록 하겠다. 사실 이미 Github Slack integration이 존재한다. 연동도 매우 간편하고 CLI와 비슷하게 channel에서 command를 통해 설정도 할 수 있다. 하지만 딱 하나 아쉬운 점은 Slack mentioning이 안된다는 것.. 2020. 12. 31.
Firebase Cloud Funtions 사용 시 EAI_AGAIN 오류 (2019-08-31에 작성된 글입니다) Firebase의 Cloud Functions를 사용하여 개발을 하는데, EAI_AGAIN 오류가 발생한 것에 대해 원인을 찾아보고 관련해서 정리한다. 로컬에서 함수를 실행하여 테스트할 때 node-fetch로 정상적으로 호출되던 것이 Firebase 서버로 배포를 하고나면 EAI_AGAIN 오류가 나는 것이었다. 아래는 해당 에러 로그이다. FetchError: request to https://foo.com/bar failed, reason: getaddrinfo EAI_AGAIN foo.com:443 at ClientRequest. (/srv/node_modules/node-fetch/lib/index.js:1455:11) at emitOne (events... 2020. 12. 30.
쉽게 따라하는 Firebase Cloud Functions - 2. 함수 배포 (2019-08-30에 작성된 글입니다) 저번 글에서는 어떻게 프로젝트를 생성하는지를 알아보았고, 이번 글에서는 함수를 작성하고 배포하는 방법을 알아보도록 하겠다. 저번 글에서 CLI로 생성한 프로젝트 디렉토리를 보면 functions/index.js가 기본적으로 생성되어 있는데, index.js를 보면 함수 기본 템플릿이 주석 처리되어있다. // functions/index.js const functions = require('firebase-functions'); // // Create and Deploy Your First Cloud Functions // // https://firebase.google.com/docs/functions/write-firebase-functions // // exp.. 2020. 12. 30.
쉽게 따라하는 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.