직접 만들어 먹는 바닐라 라떼

2005/08/19 00:33


회사의 진한 커피를 견디다 못해서,
커피반 + 물반 + 설탕 왕창으로 버티기 열흘째...
다른 팀에 있는 한국인 언니가
3층에 에스프레소 머신이 있어서 라떼도 만들어 먹을 수 있다며
어저께 만드는 법을 가르쳐줬다.
(학교다닐때도 없었던 한국사람이 있어서 너무 좋다~~~)

오늘은 집에 있던 바닐라 시럽을 가지고 가서 만들었는데,,,
으와~~~ 짱!!!

회사 커피가 스타벅스 커피였는데,,,,
왠지 너무 맛없다 했는데,,,,
라떼를 만들어 먹으니 딱 그 맛이 났다. ㅋㅋㅋ
부드러운 우유 거품...
(저기 커피색깔의 거품과 하얀 우유거품의 조화..보이징?^^)
달짝지근한 바닐라 맛과 향...
스타벅스에선 보통 원샷으로 했는데,
여기선 투샷으로 만드는데도 별로 안 진해서 좋다.

앞으로 많이 이뻐해줘야지.....
아침에 커피머신에 사람들이 많아서 좀 기다려야하긴 하지만..^^;;

JNDI - 1

2005/08/17 16:35
Overview
도서관에서 책을 찾을 때,, 그냥 책장으로 가서 책장들 쭉 살피면서 책을 찾는다는 건,,,
다리도 아플뿐 더러 시간도 많이 걸린다.
그럴때.....도서관 입구에 있는 카드 카탈로그를 살펴보면,
책 이름과 그 책이 있는 곳의 위치가 담겨있어서,
별로 시간낭비하지 않고 바로 그곳에가서 책을 찾아보면 된다.
요즘은 이 정보가 컴터에 담겨 있어서 컴터로 검색 후에 찾아보면 되구..

암튼...이렇게 책과 그 위치를 매핑해놓는 것처럼,
이름과 object를 매핑해주는 자바기술을
JNDI (Java Naming and Directory Interface)라고 한다.

Other Naming Services

Name과 Object을 연결(binding)해주는 다른 naming service들에는 다음과 같은 것들이 있다.

COS (Common Object Service) Naming : CORBA를 위한 서비스
DNS (Domain Name System) : 인터넷 Name service like www.lovelystory.com
LDAP (Lightweight Directory Access Protocol) : 가벼운 버전의 DAP
NIS (Network Information System) and NIS+ : Sun이 개발한 네트웍 네이밍 서비스

위의 시스템들의 공통점은 name과 object를 바인딩한다는 거고,
틀린 점은 naming convention이 각각 다른다는 거다.

예를 들어 DNS의 www.lovelystory.com은 com이란 최상위 도메인이 있고, 그밑에 lovelystory 도메인이 있고, www라는 machine이 있다는 의미이다.

LDAP의 경우 콤마로 각각의 컴포넌트가 나눠지고 이름/값 형태의 쌍으로 구성되어 있다. 예를 들어 "cn=Todd Sundsted, o=ComFrame, cs=US"라면 US라는 국가에 ComFrame이라는 조직이 있고, 개인의 이름은 Todd Sundsted라는 의미이다.

그래서...JNDI naming은?

JNDI는 구현(Implementation)이 아니라 인터페이스(Interface)다.
따라서 원래 존재하는 서비스를 액세스할 수 있어야 하고, 그 시스템이 어떻게 작동하는지 알아야 JNDI를 적용할 수 있다. 이건,,,단점이라고 볼 수 있는데....이게 다시 장점이 되는데,,,
무슨 말이냐면, 이미 존재하는 어떤 Naming service에도 JNDI를 융합(integration)할 수 있다는 거지.

What about Context and InitialContext?

Context interface는 JNDI에서 중심역할을 하는데, naming service랑 연결된 바인딩을 표현하고, name과 object를 연결해주고, 연결을 풀어주고, object를 rename하고, 바인딩 리스트를 볼 수 있게해준다. Context의 메쏘드에는...

void bind(String stringName, Object object)
void rebind(String stringName, Object object)
Object lookup(String stringName)
void unbind(String stringNAme)
void rename(String stringOldName, String stringNewName)
NamingEnumeration listBindings(String stringName)
NamingEnumeration list(String stringName)

이 있다. 메쏘드 이름만봐도 대충 뭐하는 애들인지 짐작이 가니,
자세한 설명은 피하고....참, 위의 메쏘드들은 String object대신에 Name object를 받는 똑같은 메쏘드들이 또 있는데...Name object를 사용함으로써 특정네임서비스에 대해 알필요가 없어진다.

JNDI의 InitialContext라는 클래스는 어디서부터 찾기 시작해야될 지를 도와준다.



Reference: www.javaworld.com

Smoke Testing

2005/08/16 16:46
스모크 테스팅...

소프트웨어 테스팅시 자세한 부분까지 일일이 테스팅하는 게 아니라,
중요한 부분들만 확인하는 테스팅으로,
매일 혹은 아주 자주 새로운 빌드를 만드는 환경에서 유효한 테스팅이다.
쉽게 말해, 연기가 나나 안나나 확인하는 테스팅으로, 연기가 난다면 불이 날 확률이 있는 거기 때문에 문제가 있다는 말씀.

Smoke Testing

Smoke testing is non-exhaustive software testing, ascertaining that the most crucial functions of a program work, but not bothering with finer details. The term comes to software testing from a similarly basic type of hardware testing, in which the device passed the test if it didn't catch fire the first time it was turned on. A daily build and smoke test is among industry best practices advocated by the IEEE (Institute of Electrical and Electronics Engineers).
The original version of smoke testing predates both hardware and software testing and is still used to test the integrity of a variety of systems by placing a smoke bomb inside some kind of a chamber to see if there are any leaks for the smoke to escape through.

Reference: http://search390.techtarget.com/sDefinition/0,,sid10_gci930076,00.html