Seattle에서 일하는 초짜 개발자입니다.

Let’s Split Keyboard 조립기

July 3, 2017 Gadget

몇 달전 Massdrop에 올라온 Planck를 보자마자 곧바로 주문했다. 개인적으로 그리드형의 키보드를 좋아하기도 하고 미니멀한 디자인이 너무 이뻐보였다. 예상 배송일은 6월 말이었지만 현재 글을 쓰는 현재 – 7월 초...

PowerMock 사용하기 1

May 7, 2017 Dev

Mockito가 지원하는 기능은 간단한 기능의 유닛테스트에는 충분하지만 코드 구조가 복잡할 경우 테스트하기에 힘든 부분이 많다. 혹은 반대로, 테스트를 위해서 좋은 코드 구조를 포기해야만 하는 경우도 있다. PowerMock은 그런...

Method Parameter and Exception Handling

April 13, 2017 Code

오늘 회사에서 코드리뷰를 하다가 나온 내용을 하나 올려본다. 대단한 내용은 아니고 어떻게든 포스팅 하나정도 해야할 것 같아서.. 메소드에 인스턴스를 하나 넘겨주는데 값을 먼저 확인해서 null일 경우 NullPointerException을 던지는...

2016년 회고

February 7, 2017 Life

2016년도가 지나가고 어느새 2017년 2월이 되어버렸다. 이미 회고라고 말하기엔 너무 늦은 느낌이지만 그래도 해야할 건 해야겠다는 생각에 이 글을 쓰기 시작했다. 2016년에는 아주 많은 일이 있었다. 이런저런 계획을...

Mockito 사용하기 2

July 10, 2016 Code

Mockito 사용하기 1 에서 이어지는 글이다. @Mock Annotation Mock 생성은 쓸데없이 반복적이다. @Mock Annotation을 사용하면 좀 더 간단하게 mock을 할 수 있고 코드가독성도 좋아진다. MockitoAnnotations.initMocks() 또는 @RunWith(MockitoJUnitRunner.class)를 사용하면...

Mockito 사용하기 1

July 8, 2016 Code

이번에 안드로이드 개발을 시작하게 되면서 Mockito와 PowerMock을 처음 만져보게 되었다. Java로 계속 개발을 해왔지만 사용한 유닛테스트 프레임워크와는 사용법이 좀 달랐고, Mockio와 PowerMock을 함께 사용하다보니 헷갈리는 부분이 있어 시간을...

핀터레스트 인터뷰 후기

April 25, 2016 Life

1월 초 글 이후에 정말 오랜만에 글을 올린다. 사실 이것저것 적고 있긴한데 퍼블리쉬를 못했다… (구차한 변명…) 어쨌거나 이번에 인터뷰를 했던 핀터레스트와의 인터뷰 후기를 적어볼까 한다. 올해 3월 초부터...

2015년 블로그 결산

January 3, 2016 Life

6월말에 블로그를 시작하고 벌써 5개월이 지났다. 작심삼일이라고 처음과는 다르게 포스팅 빈도가 상당히 줄어들었다. 12월초부터 연말 행사도 많았고 회사일 외의 프로젝트도 손을 뻗혔기 때문이라고 스스로 변명을 좀 해본다.. 그래도...

JavaScript 개발자를 위한 Elm

November 28, 2015 Blog

이 글은 JavaScript Playground의 Elm for JavaScript Developers를 번역한 것이다. 저자인 Jack Franklin의 허락을 받고 번역하였다. GitHub에나 Twitter에서 나를 follow하고 있는 사람들은 내가 최근에 Elm으로 이런저런 일을 했다는...

핫 리로딩(hot reloading)과 시간 여행 디버깅(time travel debugging)이 도대체 무엇일까?

October 27, 2015 Blog

원문: https://code-cartoons.com/hot-reloading-and-time-travel-debugging-what-are-they-3c8ed2812f35 사람들이 열광하는 Redux의 두 가지 기능은 핫 리로딩(hot reloading)과 시간 여행 디버깅(time travel debugging)이다. 이 둘은 과연 무엇일까? 핫 리로딩(hot reloading)애플리케이션을 개발할 때는 일반적으로 코드를 조금씩...

Redux로의 카툰 안내서

October 26, 2015 Blog 1 Comment

원문: https://code-cartoons.com/a-cartoon-intro-to-redux-3afb775501a6 Flux를 더 혼란스럽게 만드는 것은 Flux 그 자체보다는 Flux와 Flux에서 영감을 받아 만들어진 Redux간의 차이점이다. 이 글에서는 이 둘의 차이점에 관해 설명할 것이다. Flux에 대한 이전...

자바스크립트의 느슨한 타입(Loose Typing) 이해하기

October 22, 2015 Blog

원문: http://blog.jeremymartin.name/2008/03/understanding-loose-typing-in.html JavaScript: The Right Way에는 부분적으로 번역되어있기 때문에 전문을 번역해보았다. 대략 8년 전의 글로 아주 오래된 글이지만 지금 보기에도 여전히 좋은 내용이다. 다만 현 ECMAScript와 다른 부분이...

JavaScript의 함수는 1급 객체(first class object)이다

October 19, 2015 Blog

JavaScript의 함수는 1급 객체(first class object)이다. 이 글에서는 1급 객체가 무엇이고 왜 이것이 JavaScript에서 중요한지 이야기해 보고자 한다. 먼저 1급 시민(first class citizen)의 정의에 대해 알아보자. 1급 시민(first...

Flux으로의 카툰 안내서

October 6, 2015 Blog

원문: https://medium.com/code-cartoons/a-cartoon-guide-to-flux-6157355ab207 Flux는 현재 웹 개발에서 가장 인기 있는 토픽 중 하나이면서도 가장 이해되고 있지 않은 토픽 중 하나이다. 이 안내서는 모두가 이해할 수 있도록 설명하기 위해서 작성되었다....

HashMap vs. TreeMap vs. Hashtable vs. LinkedHashMap

September 21, 2015 Blog

원문: http://www.programcreek.com/2013/03/hashmap-vs-treemap-vs-hashtable-vs-linkedhashmap/ Map은 Java에서 가장 중요한 자료구조중 하나이다. 이 글에서는 HashMap, TreeMap, Hashtable, LinkedHashMap같은 여러 Map 타입 대해서 다뤄 볼 것이다. 1. Map 개요 Java SE에서 가장 흔하게...

자바 프로그래머가 자주 실수 하는 10가지 – 2

September 7, 2015 Blog

원문: http://www.programcreek.com/2014/05/top-10-mistakes-java-developers-make/ 이전글: 자바 프로그래머가 자주 실수하는 10가지 - 1 #6. 접근 레벨개발자들은 꽤 자주 public 클래스 필드를 사용한다. 외부에서 아주 간단하게 필드 값에 접근을 할 수 있지만,...

자바 프로그래머가 자주 실수 하는 10가지 – 2

September 2, 2015 Blog

원문: http://www.programcreek.com/2014/05/top-10-mistakes-java-developers-make/ 이전글: 자바 프로그래머가 자주 실수하는 10가지 - 1 #6. 접근 레벨개발자들은 꽤 자주 public 클래스 필드를 사용한다. 외부에서 아주 간단하게 필드 값에 접근을 할 수 있지만,...

자바 프로그래머가 자주 실수 하는 10가지 – 1

September 1, 2015 Blog 3 Comments

원문: http://www.programcreek.com/2014/05/top-10-mistakes-java-developers-majke/ 다음글: 자바 프로그래머가 자주 실수하는 10가지 - 2 #1. 일반 배열을 ArrayList로 변환하기보통 많은 개발자가 다음과 같이 일반 배열을 ArrayList로 변환한다: Arrays.asList()는 Arrays의 private 정적 클래스인...

OS X Bash 키보드 단축키

August 30, 2015 Blog

원본: http://ss64.com/osx/syntax-bashkeyboard.html 이미 아시는 분들도 많겠지만 Emacs의 단축키 중 어느정도가 OS X 터미널에서 사용이 가능하다. 나도 조금은 사용을 하고 있었지만 한 번 제대로 써보자 하는 생각이 들어서 정리를...

JavaScript 상속

August 3, 2015 Blog

C++나 Java는 언어자체에서 상속을 위한 방법을 지원하는데 반해서 JavaScript는 이상하게도 특별히 상속을 위해 따로 지원하는 문법이 없다. 더욱이 class가 아닌 prototype을 이용해서 상속을 구현해야하기 때문에 코드가 다른 언어에...

Prototype Chain and Property Shadowing

July 28, 2015 Blog

Prototype ChainJavaScript의 Prototype Chain은 [[Prototype]]으로 이루어지는 object들의 연결을 말한다. JavaScript의 Primitive Type을 제외한 모든 object는 [[Prototype]]을 가지고 있으며 그 연결된 Prototype Chain은 마치 Linked List 처럼 생겼다. Prototype...

new와 prototype

July 21, 2015 Blog

JavaScript에서도 다른 여타 언어들처럼 instance를 생성할 떄 new를 사용한다. JavaScript는 prototype으로 instance를 생성해야 하기 때문에 Java나 C++같은 언어와는 다른 방식을 가지고 있다. 내부적으로 어떤식으로 동작하는지 궁금해서 검색해보다가 Douglas...

Lexical Scope and Dynamic Scope

July 13, 2015 Blog

C/C++, Java, 그리고 JavaScript 같이 우리가 접하는 대부분의 언어들은 Lexical Scope를 사용한다. Lexical Scope는 Static Scope라고도 불린다. 반대의 방식으로는 Dynamic Scope가 있으며 Perl, Bash Shell, APL 같은 몇몇...

JavaScript Prototype

July 7, 2015 Blog

JavaScript의 prototype를 처음부터 다시 공부하면서 적어보았다. C/C++와 Java로 프로그래밍을 시작했고 오래써왔기 때문에 prototype을 이해하는데 꽤 오랜시간이 걸렸다. 둘 다 상속, 캡슐화, 추상화, 다형성 등을 전부 지원하지만 접근하는 방식은...

JavaScript Data Types

June 29, 2015 Blog

JavaScript data type은 다음과 같다. 5개의 primitive type – 얼마전에 새로 나온 ECMAScript 2015의 스펙에서는 symbol type이 추가 – 그리고 하나의 object type있다. primitive type은 가장 기본적이고 단순한...