웹 프로그래머를 위한 HTTP 완벽 가이드 읽는 법

HTTP 완벽가이드는 이름 그대로 HTTP를 매우 자세히 다루고 있는 책이다. HTTP를 이해해야 하는 사람은 웹 프로그래머만은 아니므로, 이 책은 웹 프로그래머만을 위해 쓰여진 책이 아니다. 따라서 웹 프로그래머가 이 책의 내용을 모두 다 완전히 이해해야 하는 것은 아니며, 중요도가 장 마다 크게 다르다. 웹 프로그래머의 시간은 유한한데 반해 공부해야 할 내용은 어마어마하게 많으므로, 중요한 것만 … 웹 프로그래머를 위한 HTTP 완벽 가이드 읽는 법 계속 읽기

파일시스템별 timestamp 정밀도

대부분의 파일시스템은 파일들마다 생성시각, 최종변경시각, 최종접근시각을 항상 기록해 둔다. 그런데 이 시간들의 정밀도는 파일시스템별로 제각각이다. 위키백과를 뒤져서 정리해보았다. FAT는 최종변경시각은 2초 생성시각은 10밀리초 최종접근시각은 1일 삭제시각은 2초 HFS+는 1초 ext2,3도 1초 exFAT는 10밀리초 NTFS는 100나노초 ext4는 1나노초 ext4의 등장 이후 1나노초 수준의 정밀도를 요구하는 목소리가 많아지면서, 각 프로그래밍 언어 등에서도 이에 대한 지원이 들어가기 시작했다. … 파일시스템별 timestamp 정밀도 계속 읽기

Scala의 variant

Scala의 variant는 낯설고도 헷갈리기 쉬운 개념이다. 개념 정의 A <: B 일때 C[A] <: C[B] 라면, C는 covariant다. A <: B 일때 C[A] >: C[B] 라면, C는 contravariant다. 역도 성립한다. C가 covariant라면, A <: B 일때 C[A] <: C[B]이다. C가 contravariant라면, A <: B 일때 C[A] >: C[B]이다. 선언하는 법 C를 covariant로 선언하려면, class C[+A] … Scala의 variant 계속 읽기

Scala와 Haskell의 문법

Functional Progrmaming Principles in Scala 수업을 듣고 스터디를 하면서 배운 스칼라의 문법 및 언어 특징들을 Haskell과 비교하면서 적어본다. Type inference Scala는 함수를 정의할 때 return type이 무엇인지 생략해도 알아서 추론을 할 수 있다. scala> def double (x: Int) = x * 2 scala> :type double (x: Int)Int 하지만 formal parameter의 타입은 생략할 수 없다. scala> … Scala와 Haskell의 문법 계속 읽기

ECMAScript(JavaScript)의 Object와 Property

JavaScript(이하 ECMAScript)를 처음 접하면 프로토타입 개념이 혼란을 일으키곤 하는데, Object가 어떻게 생성되고 프로퍼티를 어떻게 읽고 쓰는지만 확실히 기억해두면 혼란을 피할 수 있다. Object 생성하기 (( ECMA-262 13.2.2 )) ECMAScript에서 오브젝트란 프로퍼티들의 정렬되지 않은 컬렉션이다. 오브젝트는 생성자를 통해 만들어진다. Foo()라는 생성자가 있다면 다음의 방법으로 만들 수 있다. x = new Foo(); 이 때 생성자가 prototype이란 이름의 … ECMAScript(JavaScript)의 Object와 Property 계속 읽기

vim에 컴파일러/인터프리터의 에러메시지 연동시키기

대부분의 IDE에서는, 컴파일 에러나 런타임 에러가 발생했을 때, 소스코드에서 해당 에러의 원인이 된 라인으로 바로 이동하는 기능이 있다. 물론 vim에서도 약간의 설정으로 가능한 기능이다. 설정 및 사용법을 알아보자. makeprg 설정 우선 현재의 소스코드를 해석하거나 컴파일할 때 사용할 프로그램을 설정한다. 여기서는 python으로 해 보겠다. :set makeprg=python 이렇게 하고 나면, :make %로 현재 편집중인 파일을 파이썬으로 실행해 … vim에 컴파일러/인터프리터의 에러메시지 연동시키기 계속 읽기

구글 캘린더에 자연어로 이벤트 추가하는 자바스크립트 애플리케이션 만들기

구글캘린더에 자연어로 이벤트를 추가하는 아주 간단한 웹 애플리케이션을 만들었다. '굳이' 서버사이드 스크립트를 전혀 사용하지 않고 만들었는데, 첫째는 서버에 부담을 주기 싫었고 둘째는 웹서버가 없어도 로컬에서 웹브라우저만으로 동작할 수 있게 하고 싶었기 때문이다. 여기에서 테스트해볼 수 있다. 소스코드도 거기서 참조하고 있는 자바스크립트 파일들이 전부이다. 만들기 OAuth 인증 요게 가장 난감하다. OAuth 인증과정에서 구글 서버하고 내 서버가 … 구글 캘린더에 자연어로 이벤트 추가하는 자바스크립트 애플리케이션 만들기 계속 읽기