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

원문: http://blog.jeremymartin.name/2008/03/understanding-loose-typing-in.html

JavaScript: The Right Way에는 부분적으로 번역되어있기 때문에 전문을 번역해보았다. 대략 8년 전의 글로 아주 오래된 글이지만 지금 보기에도 여전히 좋은 내용이다. 다만 현 ECMAScript와 다른 부분이 있어서 그 부분은 직접 수정하였다.


많은 Front-end 개발자들에게 JavaScript는 처음으로 접하는 인터프리터 언어이자 스크립트 언어이다. 이 개발자들에게 느슨한 타입의 개념은 아주 자연스러운 것이다. 하지만 모던 웹 애플리케이션에 대한 수요가 폭발적으로 증가함에 따라 클라이언트 측 기술에 발을 디딘 Back-end 개발자들도 점점 많아지고 있는데, C#이나 Java 같은 강한 타입의 언어에 친숙한 이 사람들에게는 느슨한 타입의 변수들이 주는 자유로움이나 잠재적인 위험들이 익숙하지 않다.

Read More

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

원문: http://www.programcreek.com/2014/05/top-10-mistakes-java-developers-make/

이전글: 자바 프로그래머가 자주 실수하는 10가지 - 1

#6. 접근 레벨

개발자들은 꽤 자주 public 클래스 필드를 사용한다. 외부에서 아주 간단하게 필드 값에 접근을 할 수 있지만, 이건 아주 안 좋은 디자인이다. 제대로 된 디자인은 각 멤버들에게 가능한한 낮은 접근 레벨을 주는 것이다.

public, default, protected, and protected

Read More

OS X Bash 키보드 단축키

원본: http://ss64.com/osx/syntax-bashkeyboard.html

이미 아시는 분들도 많겠지만 Emacs의 단축키 중 어느정도가 OS X 터미널에서 사용이 가능하다. 나도 조금은 사용을 하고 있었지만 한 번 제대로 써보자 하는 생각이 들어서 정리를 하게 되었다. 정확히 어떤 단축키를 지원하는지 잘 몰라서 구글링을 좀 했는데 꽤 잘 정리된 포스팅이 있어서 번역해 보았다. 직접 OS X Yosemite에서 직접 테스트하면서 작성했고, 더 이해하기 쉽게 세부 카테고리를 나누어서 정리했다. 그리고 원본이 오래되어서 그런지 몰라도 실행이 안되는 경우도 있었는데, 거의 쓰이지 않는 단축키들이라서 그냥 리스트에 포함시키지 않았다.

Read More

JavaScript 상속

C++나 Java는 언어자체에서 상속을 위한 방법을 지원하는데 반해서 JavaScript는 이상하게도 특별히 상속을 위해 따로 지원하는 문법이 없다. 더욱이 class가 아닌 prototype을 이용해서 상속을 구현해야하기 때문에 코드가 다른 언어에 비해 길고 이해하기가 어렵다. Douglas Crockford는 이것에 관해서 JavaScript 자체가 prototype 컨셉을 완벽히 이해하고 있지 않다고 말했다 – Crockford on JavaScript - Act III: Function the Ultimate 50분20초. ECMAScript 2015(ES6)에서는 다행히 class와 함께 extends 키워드를 추가해서 쉽게 상속을 할 수 있게 되었다.

Read More

Prototype Chain and Property Shadowing

Prototype Chain

JavaScript의 Prototype Chain은 [[Prototype]]으로 이루어지는 object들의 연결을 말한다. JavaScript의 Primitive Type을 제외한 모든 object는 [[Prototype]]을 가지고 있으며 그 연결된 Prototype Chain은 마치 Linked List 처럼 생겼다. Prototype Chain의 마지막은 항상 Object.prototype에서 끝나며, Object.prototype[[Prototype]]은 일반적인 Linked List처럼 null로 끝난다.

Read More