'작품'에 해당되는 글 14건

  1. 2008/10/31 나도 춤추고 싶으다 (1)
  2. 2008/08/17 슈퍼컴퓨터의 사양은 얼마만큼 대단할까?
  3. 2008/03/31 OpenAPI를 이용하여 엑셀 키워드에 그림표시하기(Beta) (2)
  4. 2007/11/06 정주고닷컴의 인트로 동영상
  5. 2007/10/22 포탈의 영어 지원의 발견 -마무리-
  6. 2007/10/22 포탈의 영어 지원의 발견 -Yahoo편-
  7. 2007/10/22 포탈의 영어 지원의 발견 -Daum편-
  8. 2007/10/20 포탈의 영어 지원의 발견 -Naver편-
  9. 2007/10/20 구글의 스트리뷰 한국은?
  10. 2007/08/25 실버라이트로 SMS (1)

 


크리에이티브 커먼즈 라이선스
Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이선스에 따라 이용하실 수 있습니다.

한참 그리드컴퓨팅에 연구를 가하다보니 슈퍼컴퓨터까지 알아야 할 필요성이 있어 슈퍼컴퓨팅센터한국그리드포럼에 정보를 눈여겨 보고 있습니다.

그러다가 슈퍼컴퓨터의 설명서를 보게 되었는데 일반 컴퓨터와 비교 불가한 사양이었습니다.

일단 사양을 보겠습니다.

로그인시스템은 로그관련이라 생각이 드는군요. 아무튼 실제 계산되는 컴퓨터의 사양을 보자면 2.3Ghz의 프로세스가 640개나 있으며 메모리는 2816기가바이트입니다. 하드는 외장이 63000기가 바이트....

이 컴퓨터로 스타를 하면 아주 막 생산될거 같네요.

ㅎㄷㄷ


슈퍼컴퓨터 4호기 지침서 다운받기.

Tistory 태그:
크리에이티브 커먼즈 라이선스
Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이선스에 따라 이용하실 수 있습니다.

Daum DevDay 08에 작업한 프로젝트입니다.

와우 엑셀! 엑셀만큼이나 시간을 단축시키는 작업은 찾기 힘들 듯 합니다.

많은 데이터를 변환할 때 직접 프로그래밍을 하거나 일일이 작업하는 것을 봐왔습니다. 하지만 본인은 엑셀의 VBA를 사용하여 한번에 간편하게 처리를 하게 됩니다.

사실 일일이 작업하는 시간과 VBA를 구현하는 시간이 동일 할 순 있습니다. 하지만 요구사항 변경시에는 몇 배의 효과가 나타나게 되며 VBA의 잦은 구현으로 노하우가 생기게 되어 더 빠른 구현이 가능하게 됩니다.



아주 강력한 VBA 기능에 조금 아쉬운 것은 다양한 예제가 없고 도움말도 많은 도움이 되지 못한다는 것입니다. 그리고 프레임웍의 기능이 약해서 웹 서비스나 현 기술에 걸맞은 작업 시 찝찝한 편법을 구사해야 한다는 것이죠.

이번 Daum 데브데이 프로젝트는 OpenAPI 이용하여 엑셀문서에 키워드를 그림으로 표현한다는 것입니다. 이 프로젝트는 카이스트의 심규진님과 함께 하였습니다.

일반 자바나 C# 같은 고급언어는 주소를 요청하고 받은 XML을 파싱하여 원하는 데이터만 끌어 쓰면 그만입니다. 하지만 VBA는 도저히 그런 쉬운 방법이 없었습니다. XML을 웹에서 바로 받는 것은 없으며 XML을 엑셀에 통합하려는 기능은 있었습니다.

저는 XML을 바로 요청하고 파싱하는 예제나 방법을 열심히 찾았고 심규진님은 편법을 이용한 방법을 구현하였습니다. 결국 시간상, 기능상 심규진님의 방법을 사용하였으며 의외로 아주 잘 돌아갔습니다.(심규진님 아니었으면....ㄷㄷㄷ)

심규진님의 방법은 XML을 새로운 엑셀 시트에 매핑하고 매핑된 시트에 행과 열을 찾아 중요데이터를 긁어 오는 방법이었습니다.

그런데 매핑된 시트는 중요데이터의 위치가 키워드마다 달라 열에 있는 데이터가 진짜 데이터인지 검사하는 모듈을 삽입 하여야 했습니다. 편법도 아주 뺑 돌아서 구현된 결과이지요. 사실 더 빠르고 간단하게도 할 수 있었을 것이지만 시간의 문제로 오로지 결과를 위해 달려야 했습니다.

구현한 코드를 보겠습니다.

Public Sub RequestTest()

Dim urlApi As String
Dim wb As Workbook
Dim getImageURL As String
Dim getImageURL2 As String
Dim oneCell As Range
Dim pic As PictureFormat
For Each oneCell In Selection
Dim se As Object

Set se = ActiveSheet
urlApi = http://apis.daum.net/search/image?q=
& oneCell.Value & --여기에 현재 선택된 키워드 삽입
"&result=10&start=1&output=xml&apikey=xxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

-새로운 시트를 만들고 XML을 매핑한다
Set wb = Workbooks.Open(urlApi, IgnoreReadOnlyRecommended:=True, ReadOnly:=True)

For I = 10 To 15
-새로 만들어진 시트에 "/item/thumbnail" 값을 찾고 바로 아래 행 정보 얻기
    If wb.Sheets("image").Cells(2, I) = "/item/thumbnail" Then
        getImageURL = wb.Sheets("image").Cells(3, I) 
        getImageURL2 = wb.Sheets("image").Cells(3, I - 3)
        'Set p = se.Pictures.Insert("http://static.naver.com/kin/ending/btn_reply_metoo.gif")
        Exit For
    End If
Next I
-키워드 1칸 옆에 썸네일사진주소와 2칸 옆에 링크주소를 넣는다
oneCell.Offset(0, 1).Value = getImageURL
oneCell.Offset(0, 2).Value = getImageURL2

-XML과 매핑된 새로운 시트를 저장하지 않고 종료한다.
wb.Close (False)

Next oneCell

End Sub

먼저 VBA의 능숙한 실력이 아니라 문법도 힘들어 For문 조차도 도움말을 보면서 작성을 하였습니다. 여러 가지 우여곡절 끝에 결국 사진은 시트에 표현을 못하고 링크 주소만 출력하였는데 그럴 수밖에 없는 이유는 엑셀은 이미지를 URL을 사용하여 올릴 수 있지만 내부는 이미지를 다운받고 시트에 삽입하게 되어 있습니다. 이 방법을 코드로 구현 하려면 웹 이미지를 로컬메모리에 올리고 시트에 삽입을 해야 하는 것이죠.

링크주소의 이미지를 다운받고 삽입한다는 건 쉬운 기능이겠지만 아직 능숙한 실력이 아니고 또한 시간은 촉박했기에 못내 아쉽지만 주소만 출력하기로 결정하였습니다.

가능성

우리 팀은 큰 가능성을 보였습니다. OpenAPI를 통해 웹이든 로컬이든 여러 서비스를 할 수 있지만 문서작성에서도 적용 할 수 있다는 것이죠.

이 기능을 사용한다면 많은 기업이나 제품이름을 선택만 하고 매크로를 실행만 하면 됩니다. 그럼 문서는 단지 매크로 실행으로 이미지가 삽입이 되고 문서는 이해하기 쉬운 멋진 문서가 될 것입니다.

마지막으로 같은 팀으로 작업한 심규진님에게 감사를 드립니다.  심규진님이 아니었다면 아마 저 혼자 끙끙 되었을 것입니다.

좋습니다.^^

크리에이티브 커먼즈 라이선스
Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이선스에 따라 이용하실 수 있습니다.


각종행사나 동영상에 인트로를 장식할 녀석이예요.
근데 언제 쓸지 모르겠네요.ㅎㅎ

여기 삽입된 노래가 무엇일까요? 맞추면 진짜 달려가서 비싼밥 쏩니다~
크리에이티브 커먼즈 라이선스
Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이선스에 따라 이용하실 수 있습니다.

다음
네이버
야후 코리아

다음, 네이버, 야후의 영어 서비스 비교

 

다음

네이버

야후

CNN 동영상

있음
(최신 업데이트 일자 2006년 3월)

있음
(최신 업데이트 일자 2007년 9월)

있음
(최신 업데이트 일자 2007년 7월)

CNN 뉴스 청취

있음
(최신 업데이트 일자 2006년 1월)

있음
(최신 업데이트 일자 2007년 6월)

있음

문장서비스

오늘의 영어 한마디
오늘의 영어회화

오늘의 관용어
오늘의 예문

단어장슬라이드
연어 & 예문

RSS서비스

영어사전학습

없음

없음

설치용 App

툴바
꼬마사전

툴바

툴바
미니사전

차별된 서비스

RSS서비스
영어상식
속담모음
시사용어 모음

영어소설
전문용어

HOT 뜨거운 영단어
다국어 번역
연어 & 예문



결론


다음, 네이버, 야후의 포탈의 영어 서비스를 살펴보았는데 모두 비슷비슷하고 각 포탈만의 장점과 단점 그리고 특화된 서비스들이 있었습니다.
다음에는 RSS나 속담, 영어회화 예문 등이 잘 되어 있으나 최신의 콘텐트를 보유하지 않는 게 아 쉬었습니다.
네이버는 모든 자료가 활발이 업데이트 되고 있으며 소설 및 전문용어와 각종 표들(발음기호표, 불규칙동사표, 약어표)이 매우 도움되는 서비스이었습니다.
야후는 ‘HOT 뜨거운 영단어’가 흥미로였으며 영어와 한국뿐만 아닌 여러 나라의 언어를 번역 할 수 있는 장점이 있었으며 OS에 설치되어 서비스하는 ‘미니사전’이 매우 강력하였습니다.

 

이상 영어를 공짜로 공부하려는 본인의 욕구에 동일한 뜻을 담긴 분들이 있을까 포스트 하였습니다. 영어를 열정적으로 공부하기 위해 영어관련사이트를 찾아 다니면 더 많은 곳에서 무료로 서비스 하는 곳을 알게 될 것입니다. 하지만 무엇보다 자기 의지가 아닐까 하는 생각을 하게 됩니다.

스스로 마음을 가다듬고 자신을 죽인 채 묵묵히 공부해 나가면 분명 큰 수확이 있을 거라 생각이 듭니다. 그럼 그 때를 기약하며 열심히 공부합시다.^^

크리에이티브 커먼즈 라이선스
Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이선스에 따라 이용하실 수 있습니다.

이번 포스트는 야후의 영어 관련 지원의 기능을 보여드리겠습니다.


다음

네이버
야후 코리아


야후의 영어사전의 첫 화면 서비스는 다음과 같습니다.


  1. MasterCNN
    야후는 뉴스청취와 뉴스보기로 나뉘는데 다음네이버와 똑같으며 최신일자가 2007년 7월이고 하나의 콘텐트를 메인에 보여줍니다.


  2. HOT 뜨거운 영단어 – 생생한 영단어를 하나씩
    한국사람이 잘못 인식되는 단어들이나 한국어에 대한 영어표현을 재미있게 표현하였습니다.

  3. 연어 & 예문
    하나의 연결된 연어(연결된 언어)를 찾고 그것에 대한 예문을 보여주고 있습니다.

  4. 단어장 슬라이드
    자신이 등록한 단어나 영어예문, 한자성어, 명언모음을 선택하여 슬라이드 형식으로 보여주며 슬라이드 속도를 조절할 수 있습니다.



유용한 서비스 탭에는 다음과 같은 서비스가 있습니다.

  1. Master CNN/Listening News – 귀에 쏙쏙
    첫 화면의 MasterCNN과 동일하며 리스트를 보여줍니다.

  2. HOT 뜨거운 영단어 – 재미있는 뉴스와 영어단어
    메인의 HOT뜨거운 영단어와 동일하며 리스트를 보여줍니다.

  3. 옥스포드 예문 사전 – 다양한 예문이 가득
    예문사전이라 하는데 야후에서 말하는 설명은 다음과 같습니다.

  4. BBI 연어사전 – 자주 쓰는 표현 위주로
    야후에서 말하는 설명은 다음과 같습니다.

  5. 바벨피쉬 – 편리한 무료 다국어 번역

    번역을 서비스 하며 번역을 할 수 있는 언어는 다음과 같습니다.
    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. 그리스어에서 프랑스어로
    31. 이탈리아어에서 영어로
    32. 이탈리아어에서 프랑스어로
    33. 일본어에서 영어로
    34. 포르투갈어에서 영어로
    35. 포르투갈어에서 프랑스어로
    36. 러시아어에서 영어로
    37. 스페인어에서 영어로
    38. 스페인어에서 프랑스어로

그 외 서비스

  1. 야후! 미니
    현재 본인의 PC에 설치하여 유용하게 사용하는 App입니다.
    번역하길 원하는 단어를 실행된 펜 모양의 도구를 끌어 올려놓으면 자동으로 검색하여 정보를 보여주며 위에 서비스들 대부분을 내장하거나 링크 되어 있습니다.


  2. 야후! 단어장
    최근 찾은 검색어나 원하는 단어를 저장하는 다른 포탈들과 같은 기능의 단어장이지만 이 단어들을 가지고 게임도 할 수 가 있습니다.


게임은 어린이 수준인듯 합니다.

야후의 영어사전
크리에이티브 커먼즈 라이선스
Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이선스에 따라 이용하실 수 있습니다.

포탈의 영어 지원의 발견
한국인들의 영어 압박은 실로 주위사람들을 둘러보더라도 대단하다는 것을 알 수가 있습니다. 캠퍼스에서 조차도 영어스터디그룹이나 영어학원의 포스터들 그리고 도서관에는 공부하는 학생의 절반은 영어책을 펴 공부를 하는 것을 보게 됩니다.
몇십만원짜리 영어공부용 제품을 구입하기도 하고 인터넷을 통한 수강을 하기도 합니다. 그럼 한국의 포탈은 어떤 지원을 하고 있을까요? 영어를 늘 곁에 두고자 하는 분이나 영어를 많이 접하나 영어를 모르는 사람들에게는 유용한 정보일 것 입니다.

자 그럼 포탈들은 어떤 서비스로 사용자들에게 영어를 공부하게 하는지 살펴보겠습니다.

다음
네이버
야후

diclogo 




다음은 사전 카테고리에 영어사전 카테고리를 선택하면 되는데 첫 화면의 서비스는 다음과 같습니다.

firstpage
  1. 오늘의 CNN학습
    REAL-LIFE ENGLISH, LISTENNING DRILL, TALK ASIA, SHOWBIZ, BIZ INTERVIEW, BIZ FOCUS, BIZ BRIEFINGS, NEWS PANORAMA, HEADLINE NEWS등을 서비스 하고 있는 영상 중 하나를 골라 영어사전 메인에 올라오게 됩니다.

    todaycnn

  2. 오늘의 영어상식
    말 그대로 영어의 상식들로 뉴스보다 딱딱하지 않게 되어 있으며 영어의 문장보다 하나의 한글기사에 알아두어 야할 단어를 영단어로 보여주게 됩니다.

    todatsangsic

  3. 오늘의 영어 한마디
    생활에 쓰일 문장을 보여주고 상세한 설명이 그 밑에 있다.

    todayoneword

  4. 오늘의 영어회화
    간단한 대화내용을 보여주고 자세한 설명이 포함되어 있습니다.

    todaywo

왼쪽 상단의 메뉴에는 다음과 같은 메뉴가 있습니다.

  1. CNN동영상
    위의 오늘의 CNN학습과 같은 카테고리이며 2006년 3월이 최신이지만 2001년 8월부터 시작한 아주 많은 데이터가 있으므로 충분히 공부하고도 남을 분량입니다. 아마 다 읽을 쯤에는 두턱해진 실력으로 진짜CNN 방송을 볼 수도 있을 것입니다.

    cnn List

  2. 뉴스청취
    말 그대로 청취 할 수 있고 원문과 해석이 있는 한국에 관련된 뉴스입니다.

    newslist

  3. 토익 문제풀기
    토익의 문제가 총 18호까지 있으며 파트5에서 7까지 클릭과 점수기능이 없는 그저 눈으로 풀 수 있게 되어 있다. 정답확인 시 해설까지 포함됩니다.

    tolist

  4. 관용어 모음
  5. 속담 모음
  6. 시사용어 모음

이외 서비스

  1. 실시간 사전검색어
    사전에서 검색되는 단어를 실시간으로 보여주는 서비스로 현재 사용자들이 필요로 하는 단어가 무엇인지 알 수가 있습니다.

    realtimeword

  2. 내가 찾은 검색어
    자신이 찾았던 검색어들의 리스트를 보여줍니다.

    mineword

  3. 영어사전 학습 블로그


    티스토리에 마련된 학습블로그를 구독하여 볼 수 있게 한 서비스 이며 위의 CNN동영상과 동일한 내용이 있습니다. 영어 학습에 좋은 App를 만들어 볼 수 있는 API인이듯 합니다.

    engblog

  4. 꼬마사전
    윈도우에 설치하는 단순한 App이며 해당언어에 마우스를 올려 놓으면 조그만 한 팝업이 해석된 단어로 표현되며 표제어 앞에 아이콘을 클릭하면 발음을 들을 수 있습니다.

    gomadic

  5. 사전 검색 창 달기
    HTML소스 형태로 배포되며 간단히 붙어 넣기가 용이합니다.

다음의 영어사전

다음에는 네이버를 살펴볼 예정입니다. 좋은 정보 되세요.

크리에이티브 커먼즈 라이선스
Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이선스에 따라 이용하실 수 있습니다.

이번 포스트는 네이버의 영어 관련 지원의 기능을 보여드리겠습니다.
다음
네이버
야후

zu-0021
네이버의 영어지원은 어떤지 알아보겠습니다.
먼저 첫페이지의 서비스는 다음과 같습니다.naver-0000

  1. CNN 동영상 학습
    REAL-LIFE ENGLISH, LISTENNING DRILL, TALK ASIA, SHOWBIZ, BIZ INTERVIEW, BIZ FOCUS, BIZ BRIEFINGS, NEWS PANORAMA, HEADLINE NEWS등을 서비스 하고 있는 영상 중 하나를 골라 영어사전 메인에 올라오게 됩니다.
    (Daum과 같은 내용이지만 더 최신의 자료를 서비스하고 있습니다.)
    naver-0001
  2. 연재
    소설이 연재되어 있으며 각문장을 BFC로 해설되어 있습니다.
    naver-0002
  3. 오늘의 관용어
    하루하루 다른 관용어를 보여줍니다.
    naver-0003
  4. 오늘의 예문
    하루하루 다른 예문을 보여줍니다.
    naver-0004
  5. 영역별 전문용어
    카테고리별로 전문용어에 대한 번역이 나와있습니다.
    naver-0005
  6. 뉴스청취
    Daum과 같은 내용이지만 더 최신의 자료를 서비스하고 있습니다.
    naver-0006

카테고리는 다음과 같습니다.

  1. 구동사 목록
    구동사들을 보여줍니다.
    naver-0007
  2. 관용어 목록
    관용어들을 보여줍니다.
    naver-0008
  3. 중요도별 목록
    3개의 별로 이루어져 있으며 별이 많을수록 많이쓰이는 기본어휘를 가리킵니다.
    naver-0010
  4. 전문영역별 목록
    첫페이지 서비스의 영역별 전문용어와 같으며 전문용어에 대한 번역이 있습니다.
    naver-0011
  5. 영영사전 유의어
    유의어들을 보여줍니다.
    naver-0012
  6. CNN 동영상
    다음과 같은 내용이지만 더 최신의 자료를 서비스하고 있습니다.
    naver-0013
  7. 뉴스청취
    다음과 같은 내용이지만 더 최신의 자료를 서비스하고 있습니다.
    naver-0014
  8. 토익 Reading
    다음과 같은 내용이지만 더 최신의 자료를 서비스하고 있습니다.
    naver-0015
  9. 영어연재
    영어로 된 소설들이 연재되어 있습니다.
    naver-0016
  10. 발음기호표
    발음기호표가 있습니다.
    naver-0017
  11. 불규칙동사표
    불규칙동사를 모아놓았습니다.
    naver-0018
  12. 약어표
    약어들을 모아 놓았습니다.
    naver-0019

이외서비스

    • 단어장
      단어장에는 검색된 단어나 저장하고픈 단어를 모아놓았으며 또 원하는 단어만 장바구니 담듯 인쇄하기에 담아 한꺼번에 인쇄할수 있는 기능이 있습니다.
      naver-0020

이상 네이버의 영어사전 기능이었습니다.
(다음은 야휴의 서비스를 알려 드리고 그 후 모든 포탈들의 영어 지원에 대한 비교를 하겠습니다.)

크리에이티브 커먼즈 라이선스
Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이선스에 따라 이용하실 수 있습니다.

구글에는 구글맵을 통하여 볼수 있는 스트리트뷰가 있습니다.
그 스트리트뷰와 비슷한 것이 한국에도 있답니다(!?)

Google Street View
PLAY STREET(이 거리에 뭐가 있지?)

거리의 상점을 죄다 사진을 찍어서 마치 거리를 걸어가느듯이 볼 수 있게 서비스하는 사이트입니다. 거리의 데이터 수집이 힘들게 보이겠지만 사진의 상점에 사이트에 직접 링크하거나 후기등을 남길 수 있는 여러가지 아이템들이 나올수 있는 무궁무진한 사이트인 것 같습니다.

현재 거리에 있는 상점의 이름이 클릭 할수 있게끔 되어 있으며 클릭하면 원하는 포탈에서 검색을 할 수 있습니다.

상점 검색이 용이하여 원하는 상점의 위치를 바로 또한 자세히 알 수가 있습니다.

또한 보는 시점에서의 반대편을 볼 수 있고 다시 지도로 돌아 갈 수가 있습니다.

앞으로 많은 발전이 있을 것 같네요 
Playstreet 사이트 가기
Playstreet 사이트블로그 가기

크리에이티브 커먼즈 라이선스
Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이선스에 따라 이용하실 수 있습니다.

실버라이트로 SMS

작품 2007/08/25 23:00

예전부터 저의 전용 SMS을 만들기 위해 많은 생각을 해왔습니다. 순수하게 SMS을 보내는게 아니라 좀 더 획기적이길 바랬던것이기에 생각을 많이 해본 모양입니다.
일단 정식 버젼인 아닌 맛보기 형태로 제작하기로 결심하였으며 WPF/E 시절에 다뤄봤다가 실버라이트로 명칭이 바뀐 후 못만져보았던 참에 손에 익힐겸 만들어 보았습니다.
개발 플랫폼 : 실버라이트 1.1 ALPHA REFRESH
툴 : 비주얼스튜디오 2008, 블랜드2
http://Jeongzugo.com/sms

<결과이미지>

1

초기 화면이며 우편봉투 위를 클릭하면 SMS내용을 적을 수 있는 페이지가 나오게 됩니다.

3

페이지가 나오면 내용을 작성 후 엔터를 누르면 문자가 발송되게 됩니다.

이 Application의 흐름단위는 사용자에게 직접 보여주는 HTML과 HTML을 동적으로 나타내는 자바스크립트 실버라이트의 표현을 담당하는 XAML과 동적으로 처리하는 XAML.CS가 있으며 사용자의 입력에 반응을 하게 됩니다.

letter

위 다이어그램은 개체로 표현하여 사용자의 입력에 대한 반응입니다.

여기서 내용입력은 아직 실버라이트에서 한글은 물론 영어 이외에 언어들을 지원하지 않아 복잡한 편법을 사용하여야 합니다. 편법은 사용자입력을 HTML의 INPUT 컨트롤이 담당하며 사용자가 입력시에 INPUT은 이벤트가 발생하여 입력된 글을 XAML에 표시하라는 복잡한 절차를 거치게 됩니다.

<CSS>
#inputBox{position:absolute;border:1px;border-style:solid;width: 0px; height: 0px;top:100px;left:100px}
#inputControl{width: 0px; height: 0px;}

<HTML>
<div id="inputBox"><input id="inputControl" type="text" style="top:-100px" onkeydown="inputKeyDown()" onkeyup="inputKeyUp()" /></div>

<JS>
function inputKeyDown()
{
if (event.keyCode == 13) 

SendSMS(); 

inputKey();
}

function inputKeyUp()

inputKey();
}
function inputKey()
{

var elinput = document.getElementById("inputControl"); 
var control = document.getElementById("SilverlightControl");

if(elinput.value.length == 0) 

inputstr = ''; 
control.Content.basic.InputString(''); 

else if(inputstr != elinput.value) 

inputstr = elinput.value;
control.Content.basic.InputString(inputstr);
}
}
function inputMode()
{
document.getElementById("inputControl").focus();
}

위 코드를 보시면 입력 컨트롤은 교묘하게 실버라이트 오브젝트 뒤에 숨어 있으면서 사용자의 입력을 모두 받는 것이죠.
여기서 또 의문이 되는건 숨어 있으면 어떻게 포커스를 맞추냐 하겠지만 눈치 채신 분도 있겠지만 그건 focus()함수만 실행하면 말끔이 해결이 됩니다. 이젠 한글입력은 간단히 해결 되었으며 XAML은 이 입력의 값을 받아와 표현해 주면 끝나게 됩니다.
쉬운 방법이지만 한편으론 왜 이렇게 까지 해야하나 하기도 합니다. 추가로 이벤트를 onkeydown="inputKeyDown()" onkeyup="inputKeyUp()" 이렇게 두개를 하였는데 이는 키보드를 누루고 있는 것도 포함시키기 위해서 입니다.

여기서 또 살펴봐야할 문제는 자바스크립트와 관리된코드(C#)와의 통신입니다.
이 방법은 실버라이트의 퀵스타트How to: Call Managed Code from JavaScript를 보시거나 공도소프트[Silverlight] 키보드 입력과 마우스 휠 이벤트 지원을 보시면 됩니다.

만들어본 소감

C#과 WPF에 대해 지식이 있는 저에게는 아주 쉬운 작업이었으며 디자인과 코드의 분별됨 또한 확실해진듯 하였습니다. 기술의 간결함으로 처음 사용자에 대한 좀더 쉬운 접근이 예상되고 무엇보다 툴의 인텔리센스와 같은 강력한 기능을 활용하며 개발할 수 있다는 것이었습니다. 하지만 안타까운 것은 아직 정식버젼이 아니라는 것에 있습니다. 한글과 같은 여러가지 문제점은 있지만 그것은 베타도 아닌 알파이므로 지적할 사항은 아닌듯 싶습니다.

무엇보다 정식버젼이 무척 기대가 됩니다.
비록 테스트겸 마구잡이식 소스이지만 혹시나 공개를 해봅니다.

SMS.zip

-정주에게 문자 보내보기-

크리에이티브 커먼즈 라이선스
Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이선스에 따라 이용하실 수 있습니다.
1 2 

글 보관함

get rsstistory!