들어가며 전 회사에서 한 선배님이 질문을 했다. Blocking 과 Non-blocking, Sync 와 Async 의 차이를 설명할 수 있냐고. 어 음... 하는 사이 선배님이 다시 말을 했다. 그 둘을 설마 같은거라고 이해하고 계신건 아니죠? 음.. 그렇게 알고있는거 같은데요 라고 말했다. 그러자 나한테 그림 하나를 보여주었던 기억이 난다. 그로부터 수 개월 지난 후 부랴부랴 블로그에 정리를 해본다... 가장 대표적인 IBM developerWorks의 2:2 매트릭스 당연히 그림만 봐서는 절대 이해가 안간다. 하지만 한 가지는 알 수 있다. Blocking 이면 반드시 Sync 가 아니고, Non-blocking 이면 반드시 async 도 아니라는 점이다. 그 말인 즉슨, Blocking / Non..
애자일 혹은 린스타트업 등의 방법론에서 굉장히 자주 등장하는 단어중에 mvp가 있다. mvp는 다음의 약자이다. Minimum Viable Product 최소 실행 가능한 제품 좀 더 간단하게는 '최소 기능 제품' 혹은 '최소 요건 제품' 정도로 생각하면 될 것 같다. 여기서 말하는 최소 기능이란 고객이 꼭 필요로 하는 기능들이다. 최소 기능 제품이라고 해서 대충 껍데기만 있는 제품을 말하는게 아니라 고객이 실제 실행하려는 비즈니스가 올바로 동작하는 최소한의 기능을 갖춰야 한다. MVP를 통해 고객에게 필요한 기능을 빠르게 제공함과 동시에, 고객으로부터 피드백을 받을 수 있다. 그림을 보고 이해할 수 있듯, 고객이 필요로 하는 기능이 있는 상태에서 제품이 제공되어야 한다. 이후 위의 과정을 반복해가며 고..
RDB만 써오던 나란 사람은 noSql을 잘 다루지 못하는 상황에서 무턱대고 몽고DB를 쓰고 있다. 쿼리도 짤 줄 모르면서 어째어째 잘 쓸 수 있는 이유는 Mongoose의 쿼리빌더 덕분이다. 물론 회사에서 현재 진행중인 프로젝트가 nodejs 상에서 knex를 사용하고 있기 때문에 (postgresql 이긴 하지만) Mongoose의 쿼리빌더가 생소하게 느껴지진 않았다. 몽구스 쿼리빌더! 누구나 꼭 쓸만한 아주아주 기본적인! 몇가지만 정리해 보려고 한다. 일단 아래와 같이 Player 라는 model이 있다고 가정해보겠다. const Player = new mongoose.Schema({ name: String, team: String, age : Number }) where 가장 기본적인 놈이다. 말..
aws 람다를 이용하여 개인 프로젝트를 진행하고 있는데, 개발과 운영의 버전을 따로 가져가려고 alias를 주어야 하는 상황이 생겼다. 별거 아닌 이 작업에서 며칠간 엄청난 삽질을 하여 알아낸 것을 정리하고자 한다. (사실 회사 프로젝트에선 이미 많은 능력자 분들이 좋은 환경을 구성해 놓았는데, 개인 프로젝트에서 그것을 좀 흉내내려고 했다...) 일단 serverless framework 를 사용하고 있다는 전제하에 글을 작성하겠다. 기본적인 serverless 패키지 상에서는 배포 시 alias를 명시할 수가 없다. deploy 명령어를 통해 배포를 하게 되면 람다들은 $LATEST 라는 버전으로 배포가 될 것이다. 물론 그렇게 배포 하고나서 aws console 에 직접 접속하여 버전별 alias를 ..
트럭팩터 (혹은 버스팩터) 주로 애자일에서 사용되는 단어인데, 간단히 설명하면 다음과 같다. 팀원 중 몇명이 버스(혹은 트럭)에 치어죽어야 프로젝트가 심각한 상태에 놓이는지를 나타내는 지표다. 극단적인 표현일 뿐, 퇴사나 휴가 등으로 빠지는 경우로 이해하면 될 것 같다. 로또 팩터라고도 하는데, 로또에 당첨되면 퇴사를 하니 결국엔 같은 의미이다. 트럭팩터가 1 이라면 -> 특정인 1명만 빠져도 프로젝트가 심각해진다. 라고 이해하면 되는 것이다. 반대로 트럭팩터가 10 이라면, 10명이나 치어죽어야 프로젝트가 망한다는 뜻이니 트럭팩터가 높을 수록 해당 프로젝트의 리스크가 작다고 볼 수 있다. 즉 현재의 문제라기 보다는 잠재적인 문제점 (특히 인적자원) 을 나타내기에 좋은 지표라고 할 수 있다. 특정 인원에..
- Total
- Today
- Yesterday
- jest
- vue
- intellij
- 근본설
- event loop
- 야누자이
- CommonJs
- 이벤트루프
- vue.js
- nuxtjs
- 빌더패턴
- javascript
- 모듈시스템
- 근본
- promise
- javascript engine
- es6
- springboot
- 인텔리제이
- nuxt
- 스프링부트
- 자바스크립트 엔진
- KCD2019
- Builder
- await
- 자바스크립트
- vuejs
- 프로미스
- KCD
- 테스트코드
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |