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 인증과정에서 구글 서버하고 내 서버가 … 구글 캘린더에 자연어로 이벤트 추가하는 자바스크립트 애플리케이션 만들기 계속 읽기
내가 리눅스로 뭘 하고 있는지 로그 남기기 (파이썬)
지난번 포스팅에서 맥에서 내가 컴퓨터로 무엇을 하고 있는지 기록하는 스크립트를 어떻게 만들었는지에 대해 이야기했었다. 요번엔 리눅스다. 지난번 스크립트는 애플스크립트로 작성되어 맥에서만 동작했지만, 이번엔 리눅스에서 동작할 수 있도록 파이썬으로 작성할 것이다. 이 스크립트의 전체 소스코드는 여기서 받을 수 있다. 만들기 일단 현재 사용중인 윈도를 얻어야 한다. 나는 wnck 모듈을 사용했다. 그냥 쓰기 쉬워보여서. import wnck def … 내가 리눅스로 뭘 하고 있는지 로그 남기기 (파이썬) 계속 읽기
내가 맥으로 뭘 하고 있는지 로그 남기기 (애플스크립트)
예전부터 내가 컴퓨터로 뭘 하고 있는지 기록하는 스크립트를 꼭 만들고 싶었는데 어째 쉽지가 않아 차일피일 미루다가, 작년에 OSX를 처음 쓰면서 애플스크립트로 하나 만들었다. 애플스크립트는 이걸 만들면서 처음 써 봤는데, 전혀 적응이 되지 않아서 결국 이게 처음이자 마지막이 되었다. 이 스크립트의 전체 소스코드는 여기서 받을 수 있다. 만들기 내가 원하는 것은 매우 간단하다. 매 분 내가 … 내가 맥으로 뭘 하고 있는지 로그 남기기 (애플스크립트) 계속 읽기
가장 만족하는 IDE
내가 여태껏 써 본 IDE 중 가장 만족하는 것은 Visual Basic이다. 아직도 내 방의 서랍장 위엔 Visual Basic 5.0 Professional Edition 아카데믹이 놓여 있다. 고등학생이었던 98년 2월에 구입한 것인데, 당시 가격 26만원으로 지금껏 돈 주고(내 돈은 아니었지만) 산 소프트웨어 중에서 제일 비싸다. 아마 회사 돈으로 산 것 까지 포함해도 그럴 것이다. 97년에 학교에서 4.0을 써보면서 … 가장 만족하는 IDE 계속 읽기