타입 손실 없이 actionCreator를 dispatch로 래핑하기

다음 코드를 보자. redux 예제로 많이들 사용하는 counter example이다. counterActions라는 action creator를 사용해서 action을 만든다. 이 counterActions 오브젝트는 각 키에 맞는 액션 생성함수를 갖는다. (따라서, action을 생성하기 위해 counterActions.increment()를 호출한다.) 이렇게 만들어진 액션을 바로 dispatch()에 넘기는 단순한 코드다. 이 단순하지만 반복되는 dispatch의 래핑 중복을 없애고 싶었다. 간단하게 구현해보자. 대략 이런 모양이 될 것이다. 그리고 다음과 […]

Rails ujs pitfall

Rails + Vue로 작업하는 프로젝트가 하나 생겼다. 위와 같이 임포트 한 뒤에, rails의 ujs는 JSON를 완벽하게 지원하지 않기 때문에 위와 같이 데이터를 준비하고, 이런 방식으로 쏴주면 되는데, 이 때 주의사항이 있다. assignee_id는 null일 수도, 어떤 값을 가질 수도 있다. this.someUserId가 null인 경우, 해당 라우팅을 처리하는 컨트롤러의 메소드에서는 0으로 들어온다. null과 실제 0을 구별하지 못하게 되는 […]

Gitflow에서 release와 master 브랜치의 차이

https://ujuc.github.io/2015/12/16/git-flow-github-flow-gitlab-flow/ gitflow에서 도대체 왜 release 브랜치가 존재할까? 내 생각에 release 브랜치는 소규모 조직의 개발자에게는 큰 의미없다. gtiflow가 의미있는 조직은 컴파일된 무언가(executable binary, jar, kernel, …)를 떨구는 거대한 조직에서 쓰기 적합하다. 예를 들어, 애플이 아이폰을 내일 출시한다고 가정해보자. 애플의 개발자들은 내일 출시될 아이폰에 탑재될 iOS를 오늘까지 개발할까? 당연히 그렇지 않다. 애플은 아이폰을 생산한 뒤 iOS가 설치된 […]

How to Run Pyro

Sebastian Kruse et al. – Efficient Discovery of Approximate Dependencies (VLDB 2018) 의 코드가 깃헙에 올라와있는 것을 확인했다. Usage가 불친절해서 간단하게 메모. 먼저 Pyro jar file을 다운받는다. Pyro를 비롯한 Tane등의 알고리즘의 구현과 의존 라이브러리들이 합쳐진 jar 파일이다. Metanome CLI jar file를 다운받는다. Metanome은 GUI가 포함된 데이터 분석 툴인 것 같다. 그걸 커맨드 라인에서 쉽게 실행할 […]

2020년 스터디

지난 주말 토요일(1/11)에 신촌에서 첫 모임을 가졌다. 웹 서비스 개발을 한 번 해보자는 스터디 모임이다. 어느 정도로 빡센(?)지는 우리도 모르고 며느리도 모른다만 앞서 포스팅한 2020년 계획에 있던 영화 일기다. 스터디에 참여하는 인원은 나를 포함해서 총 3명. React를 이용해서 세 명이 각자 하나씩 깃 레포를 파서 같은 기능을 하는 서로 다른 세 개의 프론트엔드 웹앱을 만들기로 […]