Programmer
-
테스트 주도 개발 - 첫째날Programmer/Etc 2013. 5. 6. 16:17
최종 목적은 잘 돌아가는 깔끔한 코드의 작성이다. 이를 위해서 아래 과정을 반복한다.최대한 빨리 테스트에 통과하는 코드를 작성하는 것이 목적이다. 스텁 구현, 상수를 사용한 하드 코딩, 복사&붙여넣기 신공을 마음껏 발휘한다.리펙토링을 통해서 스텁을 채우고, 상수와 중복을 제거한다. 무엇을 어떻게 개발할지보다 무엇을 테스트할지를 먼저 생각한다. 논외지만 흥미로운 이야기팩토리 생성자를 사용하면 클래스의 사용과 클래스 구조 간의 의존성을 제거할 수 있다. 대표적으로 리펙토링 과정에서 불필요해진 하위 클래스의 제거가 가능해진다.
-
치환 모델 (Substitution Model)Programmer/Programming 2013. 4. 10. 17:41
예제에 사용할 함수 (defun square (x) (* x x)) (defun sum-of-squares (x y) (+ (square x) (square y)) normal-order: 전체를 확장한 후에 다시 줄여나간다. (sum-of-squares (+ 5 1) (* 5 2)) 확장한다. (+ (square (+ 5 1)) (square (* 5 2))) (+ (* (+ 5 1) (+ 5 1)) (* (* 5 2) (* 5 2))) 줄인다. (+ (* 6 6) (* 10 10)) (+ 36 100) 136 applicative-order: 인자를 평가하고 적용한다. sum-of-squares의 인자를 평가하고 적용한다. (sum-of-squares (+ 5 1) (* 5 2)) (sum-of-sq..
-
UltraVNC로 접속한 원격 데스크탑에서 Alt+TAB 사용하기Programmer/Computer Skills 2013. 3. 4. 19:33
마우스를 사용하지 않고 창을 전환하기 위해서 보통 Alt+TAB을 많이 사용한다. 원격으로 접속한 장비에서 작업하다가 원격의 다른 창으로 이동하기 위해서 Alt+TAB을 누르면 UltraVNC에서 로컬의 다른 창으로 전환된다. 여간 불편한 것이 아니다. 역시 이와 같은 고민을 한 사람이 있었고, 해결책 역시 나와있었다. 키보드의 "Scroll Lock"이 켜져있는 상태에서는 내가 원하는 대로 잘 동작했다.
-
Nautilus에서 음악이나 비디오와 같이 잘 알려진 디렉토리 지정하기Programmer/Computer Skills 2013. 2. 28. 10:34
~/.config/user-dirs.dirs 파일을 편집하면 음악이나 비디오와 같이 잘 알려진 디렉토리를 지정할 수 있다. 아래는 나의 설정이다. XDG_DESKTOP_DIR="$HOME/Desktop" XDG_DOWNLOAD_DIR="$HOME/Downloads" XDG_TEMPLATES_DIR="$HOME/Templates" XDG_PUBLICSHARE_DIR="$HOME/Public" XDG_DOCUMENTS_DIR="$HOME/Documents" XDG_MUSIC_DIR="$HOME/Music" XDG_PICTURES_DIR="$HOME/Pictures" XDG_VIDEOS_DIR="$HOME/Videos" 참고 자료: http://www.freedesktop.org/wiki/Software/xd..
-
DEFPARAMETER와 DEFVAR의 차이Programmer/Programming 2013. 1. 17. 16:23
Lisp에서 전역 변수(global variable)를 정의하는 방법은 DEFPARAMETER와 DEFVAR를 사용하는 두가지가 있다. 이 둘의 차이는 재정의(redefine) 이후 변수의 값이 정의대로 갱신되는지 여부이다. DEFPARAMETER는 재정의 할 때마다 새로운 값으로 갱신되는 반면, DEFVAR는 변수의 값이 계속 유지가 된다. 다시 말하면, DEFVAR는 바인딩 되지 않았을 때(unbound), 초기값으로 설정이 된다. > (defparameter *foo* 5) *FOO* > *foo* 5 > (defparameter *foo* 6) *FOO* > *foo* 6 > (defvar *bar* 5) *BAR* > *bar* 5 > (defvar *bar* 6) *BAR* > *bar* 5 ..
-
XML 스키마Programmer/Computer Science 2012. 12. 28. 10:21
XML 스키마는 XML 문서의 구조화시키는 방법을 제공한다. XML 스키마는 DTD의 제한 사항을 개선한 차세대 문서 구조화 기법이다. XML 스키마의 특징 XML로 작성되었다.XML 네임스페이스와 데이터 타입을 지원한다.확장성을 가졌다. 요소 XML 스키마 문서의 최상의 요소이다.예 targetNamespace - 작성하는 스키마 문서 내에서 사용자가 임의로 정의하는 문서 요소(요소, 속성 등)이 위치할 네임스페이스를 나타내기 위해서 사용한다.attributeFormDefault, elementFormDefault - XML 문서 내의 요소와 속성이 한정되는 형태를 지정한다.qualified - 요소 또는 속성이 네임스페이스 URI와 결합된다. 일반적으로 이것이 기본값이다. unqualified - 요..