근황

사실 여긴 근황같은 건 안 적는 블로그인데, 하도 글을 안 쓴지가 오래되서 마치 죽은 블로그처럼 보일까봐 하나 쓴다. 연말에 한해를 돌이켜 볼 때 "대체 이 땐 뭘 한거지?" 하고 궁금해할 미래의 나를 위한 것이기도 하다. 10월엔 1주일에 두개씩 글을 쓸 계획이었는데 그 절반수준밖에 쓰지 못했다. cousera 강의를 두개나 듣기 시작했기 때문이다. 컴파일러하고 스칼라. 11월에라도 좀 … 근황 계속 읽기

Git의 Staging Area는 어떤 점이 유용한가

Git에는 Staging Area라는 공간이 있다. 어떤 변경사항이 저장소에 커밋되기 전에, 반드시 거쳐야만 하는 중간단계이다. 다른 버전관리도구에는 이에 정확히 대응하는 것은 없다. 저장소가 추적하는(관심의 대상이 되는) 파일들의 목록을 유지하고, 그 파일들에 대한 메타데이터를 관리하는 것은 다른 저장소들도 하는 일이지만, Git 처럼 커밋될 예정인 파일의 내용들까지 기억하지는 않는다. 이 Staging Area의 존재는 처음 Git을 사용하는 입장에서는 그저 … Git의 Staging Area는 어떤 점이 유용한가 계속 읽기

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의 문법 계속 읽기

우분투에서 와이파이가 안될때

나는 맥북에어에 우분투를 사용한다. MacOSX를 쓰다가 수 개월 전에 넘어왔다. 우분투가 MacOSX보다 못한 점 중 하나가 와이파이가 잘 안된다는 점이다. 단순히 늦게 연결되는 정도가 아니라 아예 불통인 경우가 수두룩하다. 우분투에서 인터넷이 안될 때 시도해 볼 수 있는 몇가지 팁을 적어본다. 애플릿 재시작 무선 인터넷이 안되서 와이파이 애플릿에서 AP를 바꿔보려고 하는데 전혀 먹통인 경우가 있다. 아무리 … 우분투에서 와이파이가 안될때 계속 읽기

한달간 매일 블로깅을 해보고

9월 한달동안 하루도 빠지지 않고 이 블로그에 포스팅을 했다. (이 포스팅을 포함해서) 어디선가 좋은 프로그래머가 되기 위해서는 블로그를 성실하게 운영해보는 것이 좋다는 이야기를 들은 것이 계기이다. 성실하게 운영하려면 포스팅하는 습관을 들여야 할 것이고, 습관을 들이기 위해서는 하루도 빼놓지 않고 매일 하는 것이 가장 좋은 방법이라고 생각했다. 이 과정에서 문제점을 발견하기도 했지만, 목표로 한 기간 동안에는 … 한달간 매일 블로깅을 해보고 계속 읽기

3-way merge 알고리즘에 대해

Git에서 두 브랜치를 머지할 때, 기본적으로 3-way merge 알고리즘을 사용하게 된다. 어떤 sequence A, B와 그 둘의 base인 sequence O가 있다고 하자. Git으로 치면 A, B는 머지할 브랜치, O는 base commit이 된다. sequence의 각 item은 소스코드의 한 줄이라고 생각하면 된다. 이렇게 A, O, B가 있을 때, A, O, B에 대해 [Longest common subsequence](이하 LCS) (( … 3-way merge 알고리즘에 대해 계속 읽기