• 카테고리
    • 전체 글

    • 카테고리1
    • 카테고리2
    • 카테고리3
    • 카테고리4
  • 태그
  • 방명록

'분류 전체보기'에 해당되는 글 1246건

  • 2008.05.09 MOSS 2007에 대해
  • 2008.04.29 친구의 새로운 직업 3
  • 2008.04.27 싱크로 율 99% 놀라운 연습 효과
  • 2008.04.24 Javascript, 객체화 하기.
  • 2008.04.20 정규식 표현용 라이브러리.
  • 2008.04.17 SharePoint 다국어 지원에 대한 오해. 2
  • 2008.04.14 ASP.NET Postback에 대한 분석 (2)
  • 2008.04.10 봄 그리고 피로.

MOSS 2007에 대해

기술자료/.NET 2008. 5. 9. 10:39

근래 MS에서 제시한 서버 제품 군 중 나름대로 이슈가 된 제품으로 MOSS 2007이라고 있다. MOSS 란, Microsoft Office Server System의 약자로 Office 제품군을 엮어주는 서버 제품군의 총칭을 의미한다.  DOC, XLS, PPT 등등 다양한 오피스 파일들에서 부터 공유 서비스를 제공하는 Grove 까지 그 영역은 한도 없이 넓다.

그런데, 현재 대부분이 드라이브 걸고 있는 MOSS의 영역은 포털 솔루션으로써 다루어지는게 현실이다. 한국 MS에서도 대부분의 고객들에게 포털의 성격을 강조하고 있고, 또한 고객들도 그렇게 받아들이고 있다. 그러다 보니, 점점 고객들은 Naver를 기대하고 기대한 만큼 설치 운영 후 그대로 실망을 갖게 된다. 포털이 갖는 각종 자료의 수집이나 정리, 그 외에도 수많은 기능들, 아름다운 화면 어느것 하나 제대로 부합되는 건 없다. ( 있어도, 기능이 약하거나, 많은 수정 작업을 수행해야 할지 모른다. )

그런데, 눈을 돌려서 포털로써의 MOSS가 아닌 문서 관리 및 협업용 솔루션 MOSS로 포커스를 맞추어 보면, 이것 처럼 정확한 시점으로 제작된 것은 없다고 생각된다.

일예로, 만일 사무실 내에 각종 MS Office 제품군들을 이용한 파일들이 난무한다고 하자.
그  중 회계 업무를 수행하는데, 엑셀 파일을 관리부 직원과 회계부 직원 그리고 회계부 과장이 동시에 쓴다고 가정하자. 물론 이 훌륭한 엑셀에서는 파일 공유 사용기능이 있어, 네트워크 공유로 동시에 열어 쓸 수 있다.

여기서 관리부 직원이 실수로 회계부 직원이 작업 중이던 워크시트를 날렸다고 하자.
이랬을 때 취하는 행동. 회계부 과장이 "뭔가 작업할 때 꼭 백업해서 다른 이름으로 저장해 놓으라고 했지!!!!!" 막 뭐라 할 것이다. 그러나 이미 엎질러진 물. 돌아가기엔 먼길을 가버린 후다.

이를 MOSS 에서 저장을 하고, 버전 관리를 켜게 되면, 해당 파일을 편집할 때 마다, 저장 할 때  마다 해당 파일에 대한 버전을 계속 업을 해주어 자동 버전 백업을 해주게 된다. 그렇다면, 저장된 시점을 찾아 해당 파일을 복구해주면 위의 사태를 해결할 수 있을 것이다.

또 하나, 만일 회계부 직원, 관리부 직원 여러명이 회계 사무실에 보내야 할 중요한 엑셀 파일을 작성한다고 할 때, 그 문서를 작성하기 위한 일정이나, 작업들을 계획 할 때, 이리저리 사람들이 왔다 갔다 하면서 구두로 해결하거나, 회의실 하나 차지해서 함께 모여 합숙 분위기로 작성을 한다.

이를 MOSS에서 사용할 때 해당 문서에 대한 작업 사이트를 만들면, 그 안에 해당 문서를 중심으로한 팀 사이트가 만들어지면서, 일정이나, 작업 목록등을 사용할 수 있고, 또한 이 사이트 내에 접근할 사용자들을 정의해서 외부 사람은 접근하지 못하게 만들 수 도 있다. 최종적으로 모든 작성이 완료되면, 실제 원본 위치에 다시 게시해주게 된다.

사실 들춰보면 MOSS의 숨겨진 기능이나 장점들이 무척 많다.
그러나 문제는 고객의 생각은 언제는 기존 웹 시스템으로 굳어져 버려, 간단하게 해결되길 원한다. 그렇게 굳어진 생각을 다양한 사례를 들어 조금 다른 길로 가더라도, 더욱 편리하고 효율적으로 갈 수 있다면 조금은 마음을 열어주지 않을까?

답답한 마음에 한번 끄적여본다.

728x90
블로그 이미지

하인도1

[하인드/하인도/인도짱 의 홈페이지] 저만의 공간입니다. 다양한 소재들을 나열하는 아주 단순 무식한 홈페이지 입니다. 다양한 문서 자료도 있겠지만, 저의 푸념들도 있답니다.

친구의 새로운 직업

잡글 2008. 4. 29. 00:09
파란만장한 친구의 여정 후, 긴긴 휴식을 가지다가, 결국 참지 못하고
내지른 새로운 직업. 세.탁.소 주인.
워낙에 딱부러지는 친구다 보니, 이래저래 알아서 잘 쟀으리라 생각은 되지만,
그에 앞서 다급한 마음에 실수나 하지 않았나 우려감도 없지 않아 있다.

그리고 그 일을 시작한 첫날(정확히는 둘째 날이겠지만. )
시스템 파악에 정신 없는지, 이래저래 맞추고 확인하는 듯 했다.
물론 내 일이 우선인지라 일하다가 중간에 받은 전화나 메시지 보면,
그런가 싶다.

적성이나 특기는 이차 문제.
오랫동안 지긋이 그 일을 수행하는 것이 중요할 것 같다.
이래저래 바쁜인생.. 잘 돼야 될텐데.
728x90
블로그 이미지

하인도1

[하인드/하인도/인도짱 의 홈페이지] 저만의 공간입니다. 다양한 소재들을 나열하는 아주 단순 무식한 홈페이지 입니다. 다양한 문서 자료도 있겠지만, 저의 푸념들도 있답니다.

싱크로 율 99% 놀라운 연습 효과

잡글 2008. 4. 27. 19:52

몸개그

728x90
블로그 이미지

하인도1

[하인드/하인도/인도짱 의 홈페이지] 저만의 공간입니다. 다양한 소재들을 나열하는 아주 단순 무식한 홈페이지 입니다. 다양한 문서 자료도 있겠지만, 저의 푸념들도 있답니다.

Javascript, 객체화 하기.

기술자료/Web 2008. 4. 24. 20:13
예전에 Javascript 예제 소스를 받기위해 이곳 저곳을 들리다가, Javascript 안에서

  MOA.Service.Open("aaaaa", "12"."55");

식으로 소스를 적어놓은 것을 보았다.
처음에는 무슨 Object를 New 한뒤, 그 안의 메소드가 그렇게 된 줄 알았는데,
Javascript를 구성할 때, Namespace 기반으로 마치 Class 처럼 구현하는 방법으로
만들어 진 것이였다.
지금도 그렇지만 그 당시 나에게 Javascript는 넘지 못할 산이였고, Copy & Paste만 한채
더 이상 분석 없이 그냥 넘어 갔었다.

이번에 AJAX 기반의 WebPart를 만들면서 Javascript를 하나씩 사용하기 시작했는데,
그 때 보아왔던 Class 처럼 구현한 Javascript 의 원형을 보게 되었고, 그 구조를 뜯어보는
기회를 갖게되었다.


Javascript 에서 저런 "." 으로 구분된 형태로 구성하는 이유중에 하나는,
Namespace 때문이다.
예를 들어 함수나 변수 이름들을 넣을 때,  이름이 겹치지 않을까 하는 우려가 발생했다.
예를 들어 addNode 라는 함수를 만들었는데, 이 함수가 다른 Javascript에서도 사용하지
않을까... 라는 우려감이 그대로 드는 것이였다. 그럼 어떻게 해결 할까?

Javascript에서는 var 라는 변수 형에는 뭐든지 들어갈 수 있다는데 착안을 하여 구성한 것 같다.

즉 var AAA = { 'aaa', 'bbbb'  ,'cccc'  } 라는 배열을 넣듯이 그 안에 구성요소들을 때려
넣는 것이다. 이 때 name과 value라는 형태로 넣는데, 굳이 표현하면 아래와 같이 된다.

var AAA = { name : 'aaaa', tel : 'bbbbb' , addr : 'cccc' }

요소 1개는 name : 'aaaa' 이고, 2번째 요소는 tel : 'bbbbb' , 3번째 요소는 addr : 'cccc' 를 의미하게 된다. 만일 'aaaa' 라는 것을 접근하려면, AAA.name 으로 하면 'aaaa' 이 나오게 되는 것이다.

예를 들면 아래와 같이 클래스를 구성하게 된다.

var HelloClass = {
       variableA : null,
       RunIt: function (param) {
            this.variableA = param;
            alert(HelloClass .variableA);
       }
}

HelloClass.HelloMethod('OK!');

위의 자바 스크립트를 실행하면 'OK!' 라는 Alert 창이 뜬다.

잠시 위의 코드를 살펴보자.
보면, 이름과 그 형이나, 값을 ':' 으로 구분하여 구성한다.
보면 변수 부분은 변수이름을 variableA 로, 그 값은 null 로 규정했다.
그리고 함수 부분은 이름을 RunIt로, 그 값은 function(....) {....} 이라고 규정했다.

이렇게 만들면 저 맨위의 이름(예에서는 HelloClass )만 안겹치면 끝이다.

그리고, HelloClass를 접근할 때, HelloClass 자체를 써서 접근할 수 있고,
HelloClass 내부에서 접근할 땐 this라는 지시어를 써도 된다.

뭐 실제 class 처럼 proecteed, private 등의 접근 제어나 생성자 이런 부분이
명확치 않아서 의미가 별로 없긴 하지만, 네임 스페이스에 겹치지 않는 문제를
해결한다는 입장에서 볼때는 획기적인 방법이 아닐 수 없다.





728x90
블로그 이미지

하인도1

[하인드/하인도/인도짱 의 홈페이지] 저만의 공간입니다. 다양한 소재들을 나열하는 아주 단순 무식한 홈페이지 입니다. 다양한 문서 자료도 있겠지만, 저의 푸념들도 있답니다.

정규식 표현용 라이브러리.

기술자료/Web 2008. 4. 20. 13:21
정규식 표현(Regular Expressions) 작업은 다양한 텍스트 작업에 필수 이지만, 그 문법을 익히기엔 귀찮고 시간도 부족하고 특이한 형태를 뽑아내려면 많은 고민과 테스트를 해야 한다.
그렇다고 Window App로 만들어서 이런저런 테스트하기도 귀찮고..

그런 부분을 아는지 외국 사이트 중 이작업을 보다 수월하게 도와주는 곳이 있었다.

http://regexlib.com 

다행이 유료는 아니였다. 여러 난다 긴다는 분들이 자신만의 Expression들을 등록해 마치 라이브러리 처럼 유지되고 있었다. 일단 훌륭하게 운영되는 곳 같다.

게다가 이 사이트내에는 이 Expression을 테스트할 수 있는 도구도 제공한다.

http://regexlib.com/RETester.aspx

여기에 자신의 예제 텍스트들과 Expression을 넣고 돌리면 그 결과값을 볼 수 있다!!!
쵝오!
728x90
블로그 이미지

하인도1

[하인드/하인도/인도짱 의 홈페이지] 저만의 공간입니다. 다양한 소재들을 나열하는 아주 단순 무식한 홈페이지 입니다. 다양한 문서 자료도 있겠지만, 저의 푸념들도 있답니다.

SharePoint 다국어 지원에 대한 오해.

기술자료/.NET 2008. 4. 17. 09:51
요즘 한국 MS에서 SharePoint를 하나라도 더 많은 곳에 팔기 위해 많은 시도들을 하고 있다. 그래서 이 SharePoint를 많은 업체들에게 소개하고 영업을 하고 있다. 그 소개와 영업하기 위해 이 SharePoint의 많은 특/장점을 제시하는데,그 중 하나가 다국어 지원이다.

우리나라의 대부분 업체들이 말하고 있는 다국어 사이트라는 개념과 SharePoint와 외국인의 입장에서 보는 다국어 사이트라는 개념에는 상당한 차이가 있다.
특히 인트라넷 시스템을 기준으로 볼 때, 확연하게 틀리다.

우리나라의 대부분의 업체들이 말하는 다국어 시스템이라는 것은, 사이트내에 담긴 내용과는 별개로 각종 메뉴나 외부 틀에 보이는 모든 형태가 언어별로 다르게 표시되는 시스템을 원한다. 즉 게시판을 예를 들면 게시판의 내용은 한국어가 되었던 영어가 되었던, 러시아어가 되었던 외부의 틀만은 언어 중립적으로 표시되어야 한다는 것이다. ( 유니코드가 나오기 전에는 어떻게 되었는지 궁금할 따름이다. )

외국 입장(SharePoint와 외국인들)에서는 사이트의 내용에 따라 틀도 달라진다는 의미로 해석하면 된다. 만일 영어 사이트라면 틀도, 내용도 영어로만 적혀 있어야 한다. 한국어 사이트면 틀도, 내용도 모두 한국어로 나와야 된다는 의미이다. 즉 언어별로 별개의 사이트로 구성되서 진행되는 것이다.

다국어에 대한  이 차이점은 고객과 SharePoint를 적용하는데 있어 큰 걸림돌이 되고도 남는 부분이 된다. 그냥 다국어라고 MS에서는 이야기 하기 때문에, 고객입장에서는 당연히 언어 설정을 하면 그에 맞게 모든 사이트의 형태가 휘리릭 바뀌기리라 생각하고, SharePoint에서는 다른 언어인 경우 별도 사이트를 구축하여 제공하는 것이다.

어느 쪽 생각이 옳은지는 전혀 모르겠지만, 최소한 국내 IT 업계에서 일하는 만큼 전자를 따르는 것이 옳을지 모르겠다.
하지만, 이런 국내 고객들의 입맛에 맞게 SharePoint로 다국어 지원 사이트를 만든다는건, SharePoint의 기본 기능은 안 쓰고 대거 손을 대버리겠다는 의미와 동일하다.( 결국, 개발자만 죽어나거나, 안하니만 못한 시스템이 구축된다. )

과연 이 사실을 몇몇이나 알지 모르겠다.
728x90
블로그 이미지

하인도1

[하인드/하인도/인도짱 의 홈페이지] 저만의 공간입니다. 다양한 소재들을 나열하는 아주 단순 무식한 홈페이지 입니다. 다양한 문서 자료도 있겠지만, 저의 푸념들도 있답니다.

ASP.NET Postback에 대한 분석 (2)

기술자료/.NET 2008. 4. 14. 20:23

여기서는  실제적인 Callback 구현에 필요한 각 부품들에 대한 소개와 그 조립 방법들을 전달한다.

일단 Callback을 수행하기 위한 Javascript를 구성하도록 한다.
Callback을 구현할 때 서버 내에서 동작하는 코드와 클라이언트 내에서 동작하는 코드로 나누어 구성한다. 물론 실제 구현 할 때는 대부분 서버 내에서 추가할 수 있지만, 실제 동작은 각기 나뉘어 동작하게 된다.
Callback의 시작과 종료 모두 Javascript를 이용하게 되기 때문에, 어느정도 Javascript에 대한 이해가 필요하다. (물론 고 난이도까지는 아니지만...)
자세한 내용은 아래의 more..를 클릭한다.

먼저 ASPX 페이지 내에서 Callback이 되려면, ICallbackEventHandler 라는 인터페이스가 페이지 내에 구현되어야 한다. ( 만일 WebPart 라면 WebPart 클래스 내에 구현한다.)
먼저 class 설정에서 ICallbackEventHandler 를 상속 받는다.
이 인터페이스가 속한 네임스페이스는 System.Web.UI 이다.

using System.Web.UI;

public partial class FrmCreateTeamSite : Page, ICallbackEventHandler
{
     .........
}

위와 같이 포함 시키면 된다. 그런데, 중요한건 ICallbackEventHandler 는 인터페이스 이기 때문에, 클래스 내부에 구현코드를 넣어야 한다. 구현되어야 하는 Method는 두개 인데, 그 두개는 ICallbackEventHandler.RaiseCallbackEvent 와 ICallbackEventHandler.GetCallbackResult이다.

ICallbackEventHandler.RaiseCallbackEvent
이 RaiseCallbackEvent 는 클라이언트(브라우저)에서 서버로 호출할 때 수행되는 로직이다.
보통 웹 페이지 호출의 순서는 브라우저내 URL 입력 -> URL에 해당하는 자원을 서버에서 처리 -> 서버에서 내려주는 그림(HTML, GIF, ActiveX 등등)을 표시 이다. 이 Callback이 실행되는 시점은 위의 작업이 다 끝난 뒤 Javascript 상에서 실행을 시작한다. 즉 그림 그릴 것 다 그리고 Javascript로 서버에 호출하게 되는 것이다. 이 때 서버에서 그 호출을 처리하는 부분이 바로 이 RaiseCallbackEvent 이며, 실제 Callback으로 인해 실행되어야 하는 로직은 여기에 넣도록 한다.

ICallbackEventHandler.GetCallbackResult
서버에서 Callback 처리 한 뒤 특정 결과 값을 클라이언트(브라우저)에 내려 보내야 할 때, 여기서 처리하게 된다. 이 함수를 구현하면 자동으로 string 값으로 돌려주도록 되어 있다는 것을 확인할 수 있다.


string ICallbackEventHandler.GetCallbackResult()
{
        return string.Empty;  
}

간혹 이 함수 내에서 클라이언트에 값을 돌려주므로 여기에 실제 Callback 연산 때 필요한 값을 넣으면 되지 않을까 생각하시는 분이 있을지도 모른다. 그런데, 개인적인 경험의 결과로 보면, GetCallbackResult 에서는 단순히 return 처리를 하는 로직만 넣는 것을 권장한다. 복잡한 로직이나, 여러 단계로 실행되어 실행 시간이 소요되는 로직이 들어가는 경우 Callback 실행이 중지되어 버린다. 그래서 가급적 RaiseCallbackEvent 에서 모든 서버 처리를 수행한 뒤, GetCallbackResult 에서는 return 처리만 할 수 있도록 구성한다.

using System.Web.UI;

public partial class FrmCreateTeamSite : Page, ICallbackEventHandler
{
   string sResult = string.Empty; 
   void ICallbackEventHandler.RaiseCallbackEvent(string eventArg)
   {  
       sResult = SomethingRun();
   }

   string ICallbackEventHandler.GetCallbackResult()
   {
        return sResult;  
   }
  
   string SomethingRun()
   {
        // Callback으로 무언가 실행
        // 결과를 돌려줌
       return "OK";   
   }
}

지금까지 구성내용은 서버에서 동작되어야 되는 코드들을 넣어 보았다. 아래에서는 클라이언트(브라우저)에서 동작될 코드들에 대해서 정리해 보도록 하겠다.

클라이언트에서 동작하기 위해서는 Callback을 실행시켜 줄 Javascript 문장과, 서버에서 돌려주는 결과값을 받을 문장으로 구분되어 진다. 먼저 Callback을 발생시키는 Javascript 문장은 아래와 같다.

javascript:WebForm_DoCallback('[서버컨트롤ID]', [인수값변수이름], [CALLBACK결과를 받을 함수이름],[실행컨텍스트구분용 변수이름], [에러처리용 함수이름], [비동기 처리?])

위의 각 한글 이름들에 각각의 값들을 넣으면 된다.
예를 들어 Callback이 발생되는 서버 컨트롤이 Page 이고, 클라이언트에서 서버로 건네줄 때 쓰는 변수가 arg이고, 실행 완료시 실행되는 Javascript 함수 이름이 JobDone 이며, 실행 컨텍스트 구분용 변수 이름이 context이고, 오류 처리용 스크립트 함수는 없으며 비동기로 실행되어야 되는 경우 아래와 같이 넣으면 된다.

javascript:WebForm_DoCallback('__Page',arg,JobDone,context,null,true)

자 그럼 각 파라미터에 대한 설명은 아래와 같다.

서버 컨트롤 ID : Callback이 실행되는 주체가 되는 서버 컨트롤 개체 ID를 넣으면 된다. 만일 Callback이 ASPX 페이지 자체에서 발생되는 것이면 해당 Page의 ID가 들어가면 되고, 만일 Button 인 경우에는 해당 Button의 컨트롤 ID가 들어가면 된다.

인수 값 변수 이름 : 클라이언트에서 서버로 값을 넘겨 줄 때 사용되는 인수 값을 의미한다. 이 때 넘겨 받을 때 문자열로 받기 때문에, 대부분의 영숫자 뿐만 아니라, 특수문자까지 넘겨 줄 수 있다. 그러나 많은 양의 데이터는 전달할 수 없으며, 간단한 신호적인 의미를 담는게 보통이다.

CALLBACK 결과를 받을 함수 이름 : 앞서 설명한 함수 에서 GetCallbackResult 문자열을 받을 때 사용되는 함수. 이 함수는 Javascript로 구현되어 있어야 하며, 최소한 value를 받아주는 파라미터가 있어야 한다. 만일 실행 컨텍스트 까지 정의되어 있으면 Context라는 파라미터도 있어야 한다. 위의 예제를 근거로 만든다면 아래와 같은 코드로 작성된 함수가 있어야 한다.

function JobDone(val, context)
{ 
    // 서버에서 받는 값은 val 임. val 값을 가지고 처리해야 되는 javascript를 구현
    document.getElementById('TextBox1').value = val;
    return;
}

실행 컨텍스트 구분용 변수 이름 : 만일 실행 결과의 유형이 여러가지 인 경우 그 구분을 위해 넣는 변수. 보통은 서버 -> 클라이언트 결과 값으로 대충 해결 할 수도 있지만, arg 값은 서버에 전달 되면 끝이기 때문에, 서버 -> 클라이언트로 넘겨지는 값에 일일히 명시 해주어야 한다. 이를 보다 편하게 할 수 있도록 클라이언트 -> 서버  -> 클라이언트 동작 중에 변하지 않는 값이 바로 이 값으로 이 값을 응용 하면, CALLBACK 결과를 받는 함수 하나로 여러가지의 처리가 가능하다. 그 예제가 아래와 같으 코드이다. 보면 context라는 변수가 있는데, 오로지 그 변수 값에 각 Step에 해당하는 값을 넣어 3단계에 걸친 처리를 수행할 수 있다. 

function DoJob(arg, context)
{
    WebForm_DoCallback('__Page',arg,JobDone,context,null,true)
}

function JobDone(val, context)
{  
    var step;
    if(context == 'FirstStep')
    {               
        // 1단계               
        setTimeout("JobStart('somevalue', 'SecondStep')",5);
        return;
    }
    if(context == 'SecondStep')
    {
        // 2단계
        setTimeout("JobStart('somevalue', 'LastStep')",5);
        return;
    }
    if(context == 'LastStep')
    {
        // 3단계
        return;
    }   
}
setTimeout("JobStart('somevalue', 'FirstStep')",1);

에러처리용 함수이름 : Callback 실행도중 에러가 발생했을 때 그 처리를 수행할 때 이용하는 스크립트 함수 이름이다. Callback이 클라이언트 단에서 에러가 나는 경우에는 바로 사용자가 보여지도록 Javascript에서 처리할 수 있지만, 서버에서 실행이 오류가 나는 경우 그에 해당하는 처리가 쉽지는 않다. 이 경우 처리해 줄 때 사용한다. 이 에러처리용 함수는 인터페이스 중 RaiseCallbackEvent Method에서 Exception이 발생하는 경우 불려지게 되는데, 이에 적당한 처리를 하는 Javascript를 구현한다. 만일 RaiseCallbackEvent 인터페이스에서 try ~ catch로 모든 Exception을 처리한다면 이 부분이 영원히 불릴일은 없을 것이다.

비동기 여부 : Callback 처리가 순차적으로 동작해야 되는지 여부를 결정하는 부분이다. 만일 이곳이 false인 경우 이 Callback이 처리될 때 까지 클라이언트 쪽 화면은 그대로 얼어 있게 된다. 트랜젝션상 성공/실패가 명확한 처리가 있는 경우에는 이 부분을 false로 하고, 아니면 true로 변경한다.



일단 Callback에서 가장 제일 중요하다고 생각되는 부분만을 정리해서 담아 보았다. 다음 3편에서는 실전에서 어떻게 쓰이는지 어떻게 활용할 수 있는지를 다시 둘러보는 시간을 갖도록 한다.

728x90
블로그 이미지

하인도1

[하인드/하인도/인도짱 의 홈페이지] 저만의 공간입니다. 다양한 소재들을 나열하는 아주 단순 무식한 홈페이지 입니다. 다양한 문서 자료도 있겠지만, 저의 푸념들도 있답니다.

봄 그리고 피로.

잡글 2008. 4. 10. 14:35

어느새 3월 지나 4월.
집 근처의 여러 그루의 벚나무에서는 어느새 한아름 가득 벚꽃을 만발하고 있다.
차가웠던 바람은 시원해지고, 눈만 부시던 햇살은 벌써 따스하게 내린다.
작게 만들어진 그늘 밑에서 한숨을 자면 인생 낙원의 기분을 절로 느낄 수 있을것 같다.
만물 소생 따위야 그다지 관심 없으니 관계는 없다만, 이런 동적인 기분을 제공하는 날씨는 좋은것 같다.

하지만, 정신적인 피폐는 계속 되고 육체적인 피로감이 쉽게 안풀리기에
생각보다는 그리 즐겁지도 않고, 무언가를 이루고 싶은 의욕도 그다지 안든다.
사실 어지간한 선거들은 안빠지고 늘 했던거 같은데, 이번 만은 그런 생각조차 들지 않았다.
될대로 되라는 식의 생각과 귀찮다는 느낌이 강하게 들었다.

이 미묘하게 모순되는 환경과 나의 차이로 인해 점점 지치기만 한다.
기분 전환이 필요한 걸까...

728x90
블로그 이미지

하인도1

[하인드/하인도/인도짱 의 홈페이지] 저만의 공간입니다. 다양한 소재들을 나열하는 아주 단순 무식한 홈페이지 입니다. 다양한 문서 자료도 있겠지만, 저의 푸념들도 있답니다.

  • «
  • 1
  • ···
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • ···
  • 156
  • »
250x250

블로그 내에 소스 코드 삽입 이사온 기념 스킨도... RSS 전문 기능 비활성화 관련. 스킨 바꾸어 보았습니다. 서버 파일 정리 좀 했습니다.

«   2025/06   »
일 월 화 수 목 금 토
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30

좀 Visual Studio Google Apps Engine Buscuit 매뉴얼 Tutorial 개발환경 me2sms java WSS MOSS 2007 moss SharePoint twi2me 지름신 수 비스킷 협업 블로그 2010 불만 windows e-book 인터파크 것 친구 Azure me2photo me2dayzm 오류

  • Total :
  • Today :
  • Yesterday :

Copyright © 2015-2025 Socialdev. All Rights Reserved.

Copyright © 2015-2025 Socialdev. All Rights Reserved.

티스토리툴바