날짜별 글 목록: 2010년 6월 1일

멀티스레드 프로그램 평가기준

유명하신 더그 리(Doug Lea) 교수님의 멀티 스레드 프로그램의 평가기준에 대한 내용이다. “Java 언어로 배우는 디자인 패턴 입문 멀티 스레드편, Yuki Hiroshi” 의 Introduction 2 챕터에 나오는 내용이다.

아래의 기준은 더그 리 분류를 기준으로 한 것이며, 이런 류의 평가 기준은 대개 상반(trade-off)되는 경우가 있다.

필 수
– 안전성 (safety) – 객체를 망가트리지 않을 것
– “망가 진다”는 것은 비유적 표현으로 객체의 필드가 예상 외의 값을 취하는 것을 의미합니다.
– 복수의 스레드가 이용해도 안전성이 유지되는 클래스를 스레드 세이프(thread-safe)한 클래스라고 하며 자바 API에는 명시되어 있습니다.
– 생존성 (liveness) – 필요한 처리가 이뤄질 것

옵 션
재사용성 (resuability) – 클래스를 다시 사용할 수 있는 것
– 멀티 스레드 프로그램에서는 스레드 배타제어, 구조, 방침을 캡슐화 하는 것이 관건이며 Java SE 5.0의 java.util.concurrent 패키지에서 이를 잘 구현하고 있다.
– 수행 능력(performance) – 고속 / 대량으로 처리할 수 있을 것
– throughput – 단위 시간 당 처리 수
– 응답성 (responsiveness) – 요청을 한 뒤 반응이 나타날 때까지 걸리는 시간
– GUI 프로그램에서는 요청의 완료까지 걸리는 시간보다 처리 시작까지의 시간을 중요하게 생각하기도 합니다. 여기서 완료는 요청 -> 처리 -> 응답 까지의 시간이며 처 리 시작은 완료까지의 시간은 좀 더 걸리더라도 클라이언트에게 먼저 응답(~을 처리 중입니다 등)을 보내는 것을 말합니다.
– 응답성이 높은 프로그램은 대기 시간(latency)이 짧다고 표현한다.
– 용량 (capacity) – 동시에 처리할 수 있는 수
– 그 밖에 효율(efficiency), 확장성(scalability), 저하(degradation) 등이 있다.

평가기준 정리
멀티 스레드 시스템에서 안전성과 생존성이 지켜지지 않으면 제대로된 프로그램이라고 할 수 없다. 따라서 이 필수 조건을 만족한 상태에서 재사용성과 수행 능력을 어떻게 높이느냐가 관건이 된다.

특수문자 네이밍

특수문자 네이밍에 대한 내용입니다.
아래 내용의 출처는 http://mimul.com/pebble/default/2009/07/07/1246961520000.html 입니다.

& : Ampersand (앰퍼샌드)
, : Apostrophe (어파스트로피)
* : Asterisk (애스터리스크)
. : Period (피리어드), Full Stop (풀스탑)
! : Exclamation Point (엑스클러메이션 포인트)
” : Quotation Mark (쿼테이션 마크)
# : Crosshatch (크로스해치), Sharp(샵), Pound Sign(파운드 사인)
$ : Dollar Sign (달러사인)
% : Percent Sign (퍼센트사인)
@ : At Sign (앳 사인, 혹은 앳), Commercial At(커머셜 앳)
/ : Slash (슬래시), Virgule (버귤)
\:  Back Slash (백슬래시)
\ : Won sign (원사인)
: : Colon (콜론)
; : Semicolon (세미콜론)
^ : Circumflex (서컴플렉스)
` : Grave (그레이브)
{ : Left Brace (레프트 브레이스)
} : Right Brace (라이트 브레이스)
[ : Left Bracket (레프트 브래킷)
] : Right Bracket (라이트 브래킷)
( : Left Parenthesis (레프트 퍼렌씨시스)
) : Right Parenthesis (라이트 퍼렌씨시스)
| : Vertical Bar (버티컬바)
~ : Tilde (틸드)
= : Equal Sign (이퀄사인)
+ : Plus Sign (플러스사인)
– : Minus Sign (마이너스사인) Hyphen (하이픈), Dash (대시)
_ : Underscore (언더스코어), Underline (언더라인)
< : Less Than Sign (레스댄 사인), Left Angle Bracket(레프트 앵글브래킷)
> : Greater Than Sign (그레이터댄 사인), Right Angle Bracket (라이트 앵글브래킷)