연구실 마지막 출근!

논문 인쇄 맡기고 인쇄된 논문 제출하려면 두 번정도 더 학교를 가야하긴 한다만, 연구실 마지막 출근했다. 엄청나게 홀가분할줄 알았는데, 그렇진 않아서 생각보다 의외라는 점. 내일 출근을 안해도 된다는 게 너무 좋다는 것. 그리고 내일부터 비공식 백수라는 점이 설레네. 대충 7월 계획을 써보자면, 최근 신경 못 썼던 1영업일 1PS 다시 시작 밀린 기술 서적 읽기 면접 준비하기 […]

Vuex-ORM 소개

최근에 리팩토링을 진행하면서 Vuex-ORM을 사용해봤다. 좋다. 추천해본다. 장점 별 수고없이(생각없이) Immutability를 높인다. Nested된 데이터를 다룰 때 매우 좋다. Query를 유연하게 짤 수 있다. 작성자 -> 게시글 -> 댓글 -> 대댓글을 JOIN으로 불러오면서 각 단계에서 orderBy를 다르게 먹일 수 있다. 어려움 없이 JSON object를 Vuex-ORM에 로딩할 수 있다. Vuex getter의 부족함을 많이 메꿔준다. getter를 getter에서 호출하지 […]

타입 손실 없이 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가 설치된 […]