React + TypeScript

최근에 진행하고 있는 프로젝트를 React + TS의 조합으로 운영해봤다. React의 생태계가 워낙 괜찮다보니 사용하면서 내가 직접 타입을 작성한 라이브러리는 react-image-annotation, react-redux-firebase 두 개 정도. 단점은 다들 알다시피 러닝커브가 있다는 것. 하지만, 타입 없이 프로그래밍 하는 것은 오른손잡이가 굳이 왼손으로 밥 먹는 바보같은 일이라고 생각한다. 가장 명확하고 직관적으로 손쉽게 잡을 수 있는 타입 에러를 굳이 런타임까지 […]

ADT vs Data Structure

요즘 자료구조와 알고리즘을 다시 공부하고 있다. 남들에게 쉽게 설명하기 위해 내 스스로 개념을 정리하고, 스터디에 참여하는 서로가 서로를 위한 질문 리스트를 만들어오기로 했기에 조금 더 깊게 생각하던 중 헷갈릴 수 있는 부분을 발견했다. 그걸 이 포스팅에서 한 번 짚고 넘어가볼까 한다. 통상적인 자료구조의 목차는 다음과 같다. (윤성우의 열혈 자료구조를 참고) 자료구조 + ADT 연결 리스트 […]

Spark Tips

1. Loop를 쓰는 순간 OutOfMemoryError DataFrame를 다루지 않는 순간 Spark cluster 중 Driver만 사용하게 된다. DataFrame을 안씀 (= 기껏 sqlContext.read로 읽어놓고 collect해서 사용함) -> 스파크가 아니라 스칼라에서 돌아감 (= Executor가 아니라 Driver에서 돌아감) -> Single node computing -> Out of Memory 2. UDF를 사용할 때 a) 파라미터에 Primitive Type을 넣지 않는 것을 추천 Scala기준으로 설명한다. […]

웨일 브라우저가 크롬과 다른 점

React에서 textarea의 onKeyPress에서 event 객체를 파라미터로 받아서 event.key를 찍어보는 상황. 크롬에서는 event.ctrlKey의 true/false 여부에 상관없이, 항상 event.key가 “Enter”로 들어온다.하지만 웨일 브라우저에서는 ctrlKey === false -> key = “Enter”, ctrlKey === true -> key = “\n”이다. (여담으로 keyCode는 두 브라우저 모두 0으로 들어왔다. (?))

코딩의 마지노선은 밤 11시다

피곤할 수록 당연한 실수를 파악하지 못한다. 밤 11시가 넘어가면 피곤한 경우가 많다. 하루 이틀 개발하고 털어버릴 프로젝트가 아니라면 컨디션 관리도 중요하다. 따라서, 밤 11시가 되면 하던 코딩을 멈추고 씻는 것이 좋다. 플로우에 들어간 것 같은 기분은,  대부분 피곤과 관성으로 앉아있을 뿐이다.(= 간혹 플로우인 경우도 있다) 하루 이틀 개발하고 털어버릴 프로젝트이고 (밤 11시 기준으로) 새벽 1시까지 […]