여러개의 마커를 표시후에 각각의 인포윈도우를 클릭시 노출하고 클릭시 숨기기가 안됩니다

positionsCnt = positions.length;
if(positionsCnt > 0) {
	var bounds = new daum.maps.LatLngBounds();   
	for (var i = 0; i < positionsCnt; i ++) {
		latlng= positions[i].latlng
		title= positions[i].title 
		message= positions[i].message
 
		// 마커 이미지를 생성합니다    
		displayMarker(map, latlng, title, message);
 
		// LatLngBounds 객체에 좌표를 추가합니다 
		bounds.extend(latlng);
	}
	map.setBounds(bounds);
}

// 지도에 마커와 인포윈도우를 표시하는 함수입니다
function displayMarker(map, latlng, title, message) {
	// 마커를 생성합니다
	var marker = new daum.maps.Marker({
		map: map, // 마커를 표시할 지도
		position: latlng, // 마커를 표시할 위치
		//setClickable: false, 
		//image : markerImage, // 마커 이미지 
		title : title // 마커의 타이틀, 마커에 마우스를 올리면 타이틀이 표시됩니다
	}); 

	// 인포윈도우를 생성합니다
	var infowindow = new daum.maps.InfoWindow({
		content : message 
	});
	 
	// 마커에 click 이벤트를 등록합니다 
	daum.maps.event.addListener(marker, 'click', makeOverListener(map, marker, infowindow)); 
	daum.maps.event.addListener(marker, 'click', makeOutListener(infowindow)); 
}
// 인포윈도우를 표시하는 클로저를 만드는 함수입니다 
function makeOverListener(map, marker, infowindow) { 
	return function() {
		infowindow.open(map, marker);
	};
}

// 인포윈도우를 닫는 클로저를 만드는 함수입니다 
function makeOutListener(infowindow) {
	return function() { 
		infowindow.close();
	};
}

위와 같이 했는데 인포윈도우가 나오지 않고 있습니다.
어떻게 해야 되나요?

클릭 이벤트에 인포윈도우 노출 하는 핸들러와 인포윈도우를 숨기는 핸들러를 각각 거셨는데
이건 표시하고 닫는 동작을 한 번의 클릭에 모두 처리하겠다는 의미이므로 당연히 나오지 않습니다.

클릭 이벤트 핸들러를 하나만 쓰셔서 해결하시는게 가장 직관적일 것 같습니다.
윈포윈도우가 노출되었는지 판별하는 플래그 변수를 클로저 함수 내부에 하나 두시고
클릭할 때마다 true/false 를 flip하도록 해주세요.
그 플래그에 따라서 infowindow.open / infowindow.close 를 호출하시면 될거에요.

	// 인포윈도우를 생성합니다
	var infowindow = new daum.maps.InfoWindow({
		content : message,  
		removable : true
	});

daum.maps.event.addListener(marker, 'click', makeOverListener(map, marker, infowindow)); 

   클릭이벤트를 한번만 사용하고 			infowindow 에 removable : true 속성을 추가해니 해결이 되네요