posted by 써니루루 2007. 7. 9. 11:44
http://www.softwaremaker.net/blog/MOSSAJAXATinkleOfImaginationEndlessWeb20Possibilities.aspx

MOSS(Microsoft Office SharePoint Server (MOSS))를 이용한 .NET 개발이 활발하다.

이에 관련된 문서가 거의 없지만 MSDN을 보기 이전에 위 링크의 문서를 한번 확인해보도록 하자.

2007. 7. 9. 03:49

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

posted by 써니루루 2007. 7. 8. 23:10
http://www.ibm.com/developerworks/kr/library/wa-ajaxintro5/

Ajax를 이용해 받아온 데이터를 DOM으로 제어하는 경우가 많습니다.

기본적인 사항을 위 페이지에서 보실 수 있습니다.
2007. 7. 8. 20:29

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

2007. 7. 8. 12:49

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

posted by 써니루루 2007. 7. 5. 13:29
어떻게 보면 메뉴링크와 통짜로 만들어진 페이지의 구조와 비슷하달까?

아마 기존에 통짜로 만드는 페이지에서 부분적인 페이지 영역을 바꾸려면

서버스크립트로 구상했어야 했다.

Ajax로 조금 좋은 방법은 아니지만

고전적인 Ajax 방식으로 페이지의 메뉴와 컨텐츠 영역을 ajax로 꾸민다면 다음과 같은 기본적인 코드로 시작해야 하지 않을까 해서 파일을 만들어 봤다.


<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="ko" xml:lang="ko">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>XMLHttpRequest</title>
<link rel="stylesheet" href="commcss.css" type="text/css" />
<script language="javascript" type="text/javascript">
// XMLHttpRequest 생성
var ResponseText = "";

function newXMLHttpRequest()
{
  var reqHttp;  
  if (window.ActiveXObject)
  {  // IE
       try
    {
           reqHttp = new ActiveXObject("Msxml2.XMLHTTP");
       }
    catch (e)
    {
           try
     {
               reqHttp =  new ActiveXObject("Microsoft.XMLHTTP");
           }
     catch (e1)
     {
               reqHttp =  null;
           }
       }
  }
  else if (window.XMLHttpRequest)
  {  // IE 이외
       try
    {
           reqHttp =  new XMLHttpRequest();
       }
    catch (e)
    {
           reqHttp =  null;
       }
  }
  return reqHttp;
}

// 데이터 송수신
function openSendStatus(url, method)
{
 var xmlHttp = newXMLHttpRequest();            //XMLHttpRequest 생성
 xmlHttp.open(method, url, true);     //전송방법,URL,통신방법
 xmlHttp.onreadystatechange = function()
 {    //처리상태 변경 발생
  if (xmlHttp.readyState == 4)
  {                 //서버 처리 완료
   if (xmlHttp.status == 200)
   {                //파일 수신 성공
    mainControl(xmlHttp);                   //메인 처리
   }
  }
 }
 xmlHttp.send("");                                     //서버 처리 데이터
}

//메인 처리
function mainControl(xmlHttp)
{
 ResponseText = xmlHttp.responseText;   //서버 파일
}





// 사용자 함수
function loadPage(url, targetId)
{
 openSendStatus(url,'GET');
 document.getElementById(targetId).innerHTML = ResponseText;
}
</script>
</head>

<body>
<h1>XMLHttpRequest</h1>

<div>
  <input type="button" id="btnclick" name="btnclick" value="서버 파일 수신"
            onclick="loadPage('./AjaxTest1.html','rcvData')" />
</div>
<div id="datashow">
  <div id="rcvData"></div>
</div>

</body>
</html>



버튼의 onclick과 같이 a테그나 메뉴의 이미지 테그 같은 부분에 onclick 이벤트 핸들러를 통해 loadPage를 호출하면 원하는 페이지를 우리가 원하는 div id 영역에 출력할 수 있게 된다.

대신 ajax 호출은 웹서버상에 올라가 있어야 사용할 수 있다는 단점아닌 단점이 있겠다.
posted by 권오성의 Biomedical Engineering 2007. 6. 28. 20:56

아~ 옛날에 만들었던건데 오랜만에 하려니 좀 어렵네요.

이번에 하면서 TCP/IP 개념을 조금 잡은 듯 합니다.

암튼 다대다 통신이 가능한 채팅 프로그램 비슷한 겁니다.

소스도 첨부하니, 필요하신 분은 다운받으시길 바랍니다.


클라이언트 접속 프로그램


서버 접속 프로그램


전체 소스(압축)

posted by 써니루루 2007. 6. 25. 13:35
사랑은 언제나 눈물이 돼 가슴에 남아
떠나지도 못한 채 또 길을 멈추네
우리, 사랑했던 그 추억만은 잊지 말아요
내 맘에 영원히 남아 날 기쁘게 해줘요
나를 위해 노래를 불러줘
그녀에게 들리게
사랑도 미련도
다 가져가라고
나를 위해 소리를 질러줘
그녀에게 전해줘
오늘도 내일도
날 찾지 말라고
모든 게 어색했어 너와 처음 밥을 먹을 땐
밥풀이 입가에 묻을까 수저를 입에 넣을 땐
신경이 쓰이고 또 함께 걸을 땐
발을 맞춰야할지 어깨를 감싸야할지
어디로 가야할지
여자는 알았어도 사랑은 잘 몰랐기에
나의 뒤에
쫓아오듯 따라오는 너를 위해 조금은 느리게
걸어주며 사랑은 시작됐지
낭만도 없고 구멍 난 양말처럼 되는대로
살아와 망망대해 같던 나의 삶에
또 다른 세상을 보았어
난 너무 좋아서
온종일 웃고 다녔어
사랑은 언제나 눈물이 돼 가슴에 남아
떠나지도 못한 채 또 길을 멈추네
우리, 아름답던 그 추억 속에 함께 살아요
기억 속 그대와 함께 난 춤을 출 거예요
너 없는 지금 모든 게 꿈인지 꿈이 아닌지
난 지금 어딜 향해 가고 있는 건지
지금 이 곳이 너의 품인지 품이 아닌지
아픈 가슴은 왜일까
나를 위해 노래를 불러줘
그녀에게 들리게
사랑도 미련도
다 가져가라고
나를 위해 소리를 질러줘
그녀에게 전해줘
오늘도 내일도
날 찾지 말라고
무언갈 지켜야 하는 건
그것에 지쳐도 미쳐야 하는 것
그래 난 너에게 미쳤었지
난 니가 원할 땐 언제나 춤을 추던 발레리노
그 모습에 웃던 니 얼굴이 다 빨개지고
어둠도 환해지고
세상은 돌고 돌아도 우리는 그러지 않기로
서로의 곁에 오래 남기로
한 길로
같이 가기로
그렇게 약속했지
하지만 홀로 남아 슬픈 음악에
억지로나마 춤을 춰봐
불 꺼진 놀이동산에 웃고 있는 회전목마
그처럼 죽은 듯 웃으며 니가 올까
미련을 가져본다
나를 위해 노래를 불러줘
그녀에게 들리게
사랑도 미련도
다 가져가라고
나를 위해 소리를 질러줘
그녀에게 전해줘
오늘도 내일도
날 찾지 말라고

리쌍

Black Sun 2007. 05. 17 - 리쌍





Ballerino - 리쌍




개인적으로 장르를 불분하고 음악 듣는 것을 좋아하는 나

리쌍 음악은 프리스타일과 같이 항상 기대를 저버리지 않는 뮤지션인 것 같다.

posted by 써니루루 2007. 6. 24. 23:52
출처 : http://www.soqool.com/servlet/board?cmd=view&cat=100&subcat=1010&seq=69&page=1&position=1


년도와 월이 주어졌을 경우, 해당 월의 달력을 생성해주는 쿼리를 만들어 보자.
쿼리는 아래와 같다. (2000년 01월이 주어졌을 경우)


SELECT   MIN (DECODE (TO_CHAR (days, 'd'), 1, TO_CHAR (days, 'fmdd'))) 일,
         MIN (DECODE (TO_CHAR (days, 'd'), 2, TO_CHAR (days, 'fmdd'))) 월,
         MIN (DECODE (TO_CHAR (days, 'd'), 3, TO_CHAR (days, 'fmdd'))) 화,
         MIN (DECODE (TO_CHAR (days, 'd'), 4, TO_CHAR (days, 'fmdd'))) 수,
         MIN (DECODE (TO_CHAR (days, 'd'), 5, TO_CHAR (days, 'fmdd'))) 목,
         MIN (DECODE (TO_CHAR (days, 'd'), 6, TO_CHAR (days, 'fmdd'))) 금,
         MIN (DECODE (TO_CHAR (days, 'd'), 7, TO_CHAR (days, 'fmdd'))) 토
    FROM (SELECT     base_mon + LEVEL - 1 days,
                         (  TRUNC (base_mon + LEVEL - 1, 'd')
                          - TRUNC (TRUNC (base_mon + LEVEL - 1, 'y'), 'd')
                         ) / 7 + 1 week_grp
                FROM (SELECT TO_DATE ('200001', 'yyyymm') base_mon
                        FROM DUAL)
          CONNECT BY base_mon + LEVEL - 1 <= LAST_DAY (base_mon))
GROUP BY week_grp
ORDER BY week_grp



connect by level 절을 사용하지 못하는 버전일 경우에는, 아래와 같이 dict 테이블을 이용한다.
아래 예는 위의 쿼리 와는 다르게 오늘로부터 몇달 후인지를 나타내는 변수 :n에 따라 달력을 생성한다.
(:n=-1 일 경우 지난달, 0은 이번달, 1은 다음달, 2는 다다음달,...)


SELECT   MIN (DECODE (TO_CHAR (days, 'd'), 1, TO_CHAR (days, 'fmdd'))) 일,
         MIN (DECODE (TO_CHAR (days, 'd'), 2, TO_CHAR (days, 'fmdd'))) 월,
         MIN (DECODE (TO_CHAR (days, 'd'), 3, TO_CHAR (days, 'fmdd'))) 화,
         MIN (DECODE (TO_CHAR (days, 'd'), 4, TO_CHAR (days, 'fmdd'))) 수,
         MIN (DECODE (TO_CHAR (days, 'd'), 5, TO_CHAR (days, 'fmdd'))) 목,
         MIN (DECODE (TO_CHAR (days, 'd'), 6, TO_CHAR (days, 'fmdd'))) 금,
         MIN (DECODE (TO_CHAR (days, 'd'), 7, TO_CHAR (days, 'fmdd'))) 토
    FROM (SELECT base_mon + ROWNUM - 1 days,
                     (  TRUNC (base_mon + ROWNUM - 1, 'd')
                      - TRUNC (TRUNC (base_mon + ROWNUM - 1, 'y'), 'd')
                     )
                   / 7
                 + 1 week_grp
            FROM (SELECT TRUNC (ADD_MONTHS (SYSDATE, :n), 'mm') base_mon
                    FROM DUAL), dict
           WHERE base_mon + ROWNUM - 1 <= LAST_DAY (base_mon))
GROUP BY week_grp
ORDER BY week_grp
posted by 써니루루 2007. 6. 24. 22:29
SQL 분석함수 http://www.soqool.com/servlet/board?cmd=view&cat=100&subcat=1030&seq=2