지구별에서 - Things Old and New :: 'IT' 카테고리의 글 목록

달력

12022  이전 다음

  •  
  •  
  •  
  •  
  •  
  •  
  • 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
  •  
  •  
  •  
  •  
  •  

 

디지털 치매 - 그 딴게 진짜 있어?  웃기고 있네

 

최근에 디지털 치매란 이야기 갑자기 회자되고 있다.

 

독일과 한국의 과학자가 디지털 치매를 경고 하고 나섰다고 "생각할 줄 모르는" 미디아가 떠들어 대고 있다.

 

자기 전화번호 이외엔 기억하는 전화 번호가 없다고 호들갑이다.

 

그래서 어쩧다고?

 

얼마전에는

 

생각하지 않는 사람들 - <The Shallows - What the internet is doing our brains>

 

란 책이 베스트 셀러가 되면서 인터넷의 부정적 측면을 들고 나서면서 세인의 주목을 끌었다.

 

자라나는  아이들이 디지털 기기에 너무 시간을 쓰는 것은 교육상 바람직 하지 않을 수 있다.  그것은 디지털 치매를 일으키기때문이라기 보다  TV 를 포함해서 각종 디지털기기에 몰입하는 시간이 많아지면 가족, 친구등 사람들과 교류하는 시간이 적어 지기 때문에 인성발달에 지장을 줄 수 있기 때문일 수 는 있디.

 

성숙한 어른으로 자라려면 사람들과 많이 접촉하고 교류하고 다른 사람들에게 어떻게 처신해야 하는 것을 익혀 두어야 한다.  그럴 시간이 줄기 때문에 디지털 기기의 사용시간을 제한할 필요가 있을지 모른다.

 

사람들은  불필요한 것은 안한다.  전화번호는 외울 필요가 없기 때문에 외우지 않을 뿐 그것이 치매는 아니다.   우뇌가 덜 발달할 것이란 주장에도 아무 근거가 없다.

 

제 멋대로 주장한 디지털 치매의 기준으로 많은 사람들이 마치 디지털 치매에 걸린 것 처럼 호들갑 떠는 것도 웃기는 일이다.

 

최근에 미국의 하바드 컬럼비아등 저명대학 심리학 교수들이 과학적 연구를 한 결과가  Sciencexpress 에 나왔다.

<구글(google)이 우리의 기억(memory) 에 주는 영향 - 클릭 한번에 정보를 얻는 인지과정 연구(Google Effects on Memory: Cognitive Consequences of Having Information at Our ingertips)> 이란 연구 논문이다.

 http://www.wjh.harvard.edu/~wegner/pdfs/science.1207745.full.pdf

 

 

이 논문의 해설이 타임지에도 실렸다.

 

http://techland.time.com/2011/07/15/is-google-really-wrecking-our-memory/

 

결론은 그렇다.   교류기억(Transactive memory)은 항상 있었다.   교류기억은 우리 뇌 밖에 저장해 두는 기억이다.   아내는 전화번호를 잘 외웠다.    그래서 난 전화번호를 욀 필요가 없었다.  전화를 자주 안 거는 편이지만 아내에게 전화 걸어줘 하면 되었기 때문이다.   높은 지위에 있는  사람들도 전화번호를 외우지 않았다. 비서가 다 전화를 걸어 주었기 때문이다.   이런 기억을 <교류기억>이라고 한다.

 

스마트 폰의 전신은 PDA 였다. 여기에 통신기능이 부가되어 발달한 것이 스마트 폰이다.  PDA 는 전화번호부가 있었지만 전화는 그것을 보고 돌리거나 찍어넣었다.  스마트폰은 여기서 직접 one click 으로 전화를  걸게 만들어 주었을 뿐이다.

 

내가 백과 사전을 처음 대한 것은 대학에 들어간 50년대였다.    그땐 책이 정말 귀했다.  서울대학교 중앙도서관에 몇질의 백과 사전이 있었다.    지식에 굶주렸던 대학생에겐 백과사전을 정말 꿈의 보물창고였다.  인덱스(찾아보기)를 보면 안나오는 항목이 없었다.   내가 백과사전을 온통 차지할 수 있으면 얼마나 행복할까 상상을 했었다.

 

백과사전을 처음 차지한 것은 70년에 귀국해서 얼마 안되 명동 뒷골목 헌 책방에서 샀을 때 였다.  <World Book> 이란 청소년 교육용 백과사전이었다. 

 

그리고 그 후  <Encyclopedea Britanica> 였다.  그러나 그책은 내 좁은 서가를 너무 많이 차지했다.    한번은 아들네에게 주었으나 얼마 안 있어 돌려 받았다.    저의도 자리가 없어 둘 수 없었다고.   다시 내게 돌아 온 Britanica는 집을 리모델링 할때 건축 폐기물과 함께 사라졌다.    Britamica를   아낌없이 버릴 수 있었던 것은 Google과  점 점 방대해지는 Wikipedia 가 있기 때문이었다.

 

<구글이 우리의 기억에 미치는 영향의 연구>의 결과는 우리의 기억은 지식자체의 기억을 저장하는 대신 그 기억을 찾을 수 있는 방법을 기억한다는 것이다.

 

목적 (또는 결과) 을 기억하는 것이 아니라 목적에 도달하는 방법을 기억한다는 것이다.    그것이 뇌에 영구적인 변화를 주는지 아닌지는 아직 아무 결론을 내릴 단계는 아니라는 것이다.

 

오히려 이런 인지과정의 변동은 우리에게 이롭다는 것이다.    지식을 외우는 것이 아니라 그 지식을 얻능 방법을 외우는 것이 훨씬 효율성이 높다는 것이다.    잡은 고기를 얻는 것 보다 고기를 잡는 방법을 아는 것이 더 이로운 것 처럼.

 

내 개인적인 경험을 하나 소개한다.

 

내가 미국 시애틀에서 대학원을 다닐 때 동료 대학원생중에 Bill Shaw 라는 친구가 있었다.  그는 옛날에 고인이 되었다.    Bill Shaw 는 거의 Photographic memory 에 가까운 능력을 가지고 있었다.   그는 백과사전이나 마찬가지였다.  그래서 모르는 것이 있으면 그에게 물어보곤 했다.    이론 물리 연구동에는 10 명 가까운 대학원생이 있었다.   무슨 잡담을 하다 시애틀의 위도에대한 이야기가 나왔다.    누구도 시애틀의 위도가 어떻게 되는지 몰랐다.   <야 빌쇼한테 물어 보자> 누군가가 제안했다.

 

우린 빌쇼의 연구실에 가서 시애틀의 위도가 어떻게 되느냐를 물었다.    그의 대답이 걸작이었다.

 

<North end of Seattle or south end of Seattle?>   (북쪽 시계(市界) 를 알고 싶어? 아니면 남쪽 시계의 위도를 알고 싶단 말야?>

 

난 내가 살고 있는 지역의 위도나 경도를 외우고 있지 못한다.   그러나 난 그걸 즉석에서 아는 법을 알고 있다.

 

아이폰은 켜 보면 금방 알 수 있지.  그리고 그걸 이 블로그에 어떻게 보여 줄 수 있을까 그 방법도 알고 있지...

 

그래 "방법"이 더 쓸모가 많은 (versatile) 거야 이 바보들아 !

 

 

 

 

 

아이폰을 켜고 모션 X 앱을 열고 현재 위치로 마추어 지도를 본다.

우리집 근처가 나온다.

 

 

 

 

 

My Position 내 위치 페이지를 열면 위도 경도가 나온다.

난 이 걸 욀 필요가 없다

누가 물어 보면 스마트폰을 켜고 10초내에 대답해 줄 수 있다.

 

 

 

그래 위도나 경도를 외고 있지 못한다고 디지털 치매라고?  웃기고 있네.   늬들이 MotioX 를 알아? 

Life is Motion ,  Motion is Life! 라는 거야.

 

전화 번호 못 왼다고 치매?   불필요한 것 외우지 않는 것이 필요한 지식이 점점 방대해지는 세상을 사는 현명한 방법이야.

 

Posted by 샛솔

댓글을 달아 주세요

  1. 샛솔  댓글주소 수정/삭제 댓글쓰기 2013.07.12 01:49 신고

    저도 전적으로 선생님 의견에 동감입니다만,
    이런저런 기회에 얘기를 나누다보면 저렇게 얘기하는 이들도 제법 있는 것 같습니다.
    이용을 잘 할줄 몰라서 합리화하는 건지 궁금하기도 합니다.

    • 샛솔  댓글주소 수정/삭제 2013.07.12 01:49 신고

      <아니로>들이 시생:샘하는 면도 있고 또 본문에 인용한 눈문에서도 옛날 것에 노스탈자를 느껴서 그러는 것이라고 일축했습니다. 뭔가 디지털을 따라가지 못하는 사람들에게 공감을 얻으려는 얄팍한 상술들도 한몫 하고 있지 않나 생각이 듭니다. 또 언론이니 기자들이라는 작자들은 점점 <생각하지 않는 (shallow) > 쪽으로 흘러가고 있기도 하고요.

  2. 프로그래머  댓글주소 수정/삭제 댓글쓰기 2013.07.21 22:14

    음... 게임프로그래머로 일하고있습니다.
    몇달을 밤새워가며 개발에 치중하다가 겨우만들어낸 게임을 상용화하였습니다.
    어느 프로그래머가 그렇듯 몇달을 고생하여 오픈하고 햇살 좋은 어느 봄날에 반차를 쓰고
    정말 간만에 햇볓을 쬐며 집으로 걸어갔습니다. 정말 햇볓이 이렇게 좋으거구나 할정도로
    엄청난 따스함을 느꼇던것으로 생각되네요

    제가 만든게임이 주로 어린 학생들을 상대로 하는게임이었는데 문득 그것을 이용하는 학생들이
    내가만든 게임으로 말미암아 이런 따스한 햇볕을 못보고 게임에만 매달릴 생각을하니 좀 찝찝한 생각이들었어요

    자라나는 아이들은 서로 얼굴을 보고 이야기하고 거기서 나오는 감정으로 커뮤니케이션을 해야하는데 제가 만든 게임은 항상 같은 표정으로 같은 얼굴로 0과1로 이루어진 기계어로 매마른 대화를 한다고 생각하니 좀 가슴아프더군요

    물론 저도 돈때문에 어쩔수없이 이직업에 매달려있습니다. 돈이아니 었다면 벌써 때려쳤겠죠...

    디지털 치매는 아니더라도 주인장님 세대와는 다르게 차가운 감성을 지닌 사람들이 많이나올거같아요ㅎ 선진화된 기계가 기억력을 대신하더라도 불편하지만 따뜻하고 감성적인 무언가를 표현해주지 못하는것 같습니다

윈도우즈 8과 삼성 ATIV 스마트 PC - 첫 인상

 

이번에 산 삼성 ATIV 스마트 PC는 무얼 알고 산 것이 아니다. Xnote 산 지도 좀 되었고 재작년 일본에서 산 Asus 는 한글 입력에 제약이 있어 조금 더 가벼운 노트북을 물색하다 걸려든 것이다.

 

사실은 여행을 위하여 가벼운 노트북을 찾았는데 결과적으로는 별로 가벼워지지 않았다.  아니 오히려 더 무거워졌다.

 

battery charger 까지 포함해서 <삼성 스마트 PC> 가  <LG XNote> 보다 360 여 그램 더 무겁다.    그러나 새 스마트 PC 는 Windows 8 이 깔려 있으니 새 Windows 를 체험할 수 있는 기회가 생겼으니 무게는 감내해야 할 것 같다.

 

새 Windows 는 얼굴이 완전히 바뀌었다.

 

새 윈도우즈에서는 시작화면이 어플들의 집합으로 나온다.  이 것은 모바일 기기의 화면 같다. 메일,  달력,  날씨, SNS, 카메라 등이 깔려 있다.     아래의 제일 왼쪽끝에  데스크톱이 어플 중의 하나로 깔려 있다.

 

 

 

 

윈도우즈 8의 시작화면

아래 제일 왼쪽의 어플이 데스크톱이란 것이다.

이것을 열면 Windows 구 버젼의 모양이 나온다. 

 

 

 

여기서 부터는 구 Windows 버젼과 크게 다를 바가 없다.

 

 

시작화면의 어플에서 출발하는 Windows 8의 UI 를 전에는 <Metro>라고 불렀다는데 지금은 그냥 Window 8 UI 또는 Modern UI 라고 부른다.  그런데 이런 UI 로 바뀐 가장 큰 이유는 모든 무른모를 이 App 을 통해서만 쓸 수 있게 마들었다는 점이다.    아마도 점차 독립적인 제3자 무른모는 사라지고 모두 앱 스토어로 관활권이 넘어 갈 것 같다.  이것은 획기적인 변화다.   SandBox  에 넣은 보안이 강화된 무른모만 사용하도록 유도할 것 같다.

 

이것은 Active X, Java, Flash, 등등  온갖 지저분한 제3자의 보조OS들을 몰아 내고 sandbox 무른모만 쓰도록 할 계획으로 보인다.     내가 Windows 를 극렬하게 싫어 했던 이유는 이런 지저분한 것 때문에 보안이 약화되고 그것을 보완하기 위해  너무 잦은 업데이트를 하기 때문이었다.     그런 모든 것들이 자주 충돌을 일으켜 시스템을 불안정하게 만들고 무른모가 잘 돌아 가지 않아 고생을 하는 경우가 많았기 때문이었다.

 

웹페이지를 잘못 방문하면 나도 모르는 사이에 원하지 않는 add-on 이 깔려 진저리를 치게 만들곤 했다.  

 

그런데 우리나라 인터넷은 너무 이런 지저분한 Windows와 짝짝쿵을 맞춰  이 지저분한 보조 OS 를 이용하게 만들어 놨다.   그래서 이 새 윈도우즈가  새 OS를 활용할 만한 환경이 아니란 점이다.

 

위 첫 그림의 <시작>화면  맨 아래줄 세번째에  Explorer 가 있다.    이 explorer 로 중요한 작업은 수행할 수 없다.   예컨데 이 블로그의 에디터도 이 Explorer 로 열면 text 입력까지는 되어도 사진을 올릴 수 없다.   daum 에디터가 사진을 올리는데 쓰는 팝업에 플래시를 썼기 때문이다.  아래와 같은 오류 메시지 창이 뜬다.

 

 

 

이 컴에 깔려 있는 desktop  flash player 의 버젼 11.x 다.   

Adobe 사가 제안한 여러가지 해결책을 시도해 봤지만 만찬가지다.

안된다.   그래서 데시크톱에 가서 거기의 구 버젼의 explorer 를 써서

daum editor 를 열어야 사진을 올릴 수 있는 제대로 된 팝업이 뜬다.

 

 

이처럼 아쉽게도 우리나라 인터넷 환경은 하나같이 데스크톱 어플이 아니면 해결할 수 없는 후진성을 면치 못하고 있다.     너무 앞서 갔다가 결국 헌 기술에 발목이 잡혀서 새로운 트랜드에 적응할 수 없게 되어 버린 것이다. 

 

모두 test 하지 않았지만 아마도 인터렉티브 웹 사이트는 "Metro" UI 로는 아무 것도 할 수 없을 것 같다.

 

윈도즈가 이 방향으로 빨리 변신해서 우리나라 인터넷 환경을 올 바른 방향으로 바꿔 놓아 주기를 기대해 본다. 

 

 

 

 

battery 를  제외한 Xnote 의 무게는 895 그램이다.

 

 

 

battery 까지 더해도 1220 그램이다.

 

 

 

한편 스마트 PC는 키보드를 떼어낸 tablet 형태로 907 그램

따라서 keyboard 를 함께 가지고 다니면 1620 그램이니 Xnote 보다 380 그램이 더 나간다.

 

 

 

키 보드가  713 그랭 나가니

 

 

 

참고로 iPad(1) 는 704 그램이다.

 

 

 

 

 

 

 

 

 

Posted by 샛솔

댓글을 달아 주세요

삼성아 이번에는 실망시키지 말아다오.

 


Omnia2 사건이전까지는 난 삼성의 팬이었다.

2009/11/20 - [휴대전화 이야기] - 옴니아2 - 한 겨울밤의 꿈, 결국은 반품했다.

 

삼성에 대한 믿음이 조금은 남아 있었기에 갤럭시노트를 샀지만 혹시나가 역시나로 끝났다.

2013/01/08 - [휴대전화 이야기] - 갤럭시노트와 결별

 

그러나 갤럭시노트의 경우에는 삼성에게만 죄를 물을 수 없다는 이야기를 썼다.  구글(안드로이드)와 skt의 죄값도  크기때문이다.  그 중에서도 skt 의 죄질이 가장 나쁘다.  전에도 지적한 일이 있지만 구글의 playstore 의 app은 필연적으로 열악할 수 밖에 없다.

 

gps의 구조적 결함을 안고 출시한 omnia2에 비하면 개럭시 노트는 양반이라 할 수 있다. 그럼에도 불구하고  스마트폰의 구실을 하기엔 너무나 격이 떨어지는지라 손해를 무릅쓰고 아이폰 5로 갈아탔다.

 

그런데 이번에 또 삼성제품을 하나 샀다. Ativ 스마트 PC.  이번에는 Microsoft의 Windows 8과 팀을 짜서 나왔다.

 

원래 난 MS Windows에 지독한 반감을 가지고 있다.   그런데 우리나라에서는 MS Windows 가 아니면 못하는 것이 너무 많다. 이 블로그도 Windows에서만 쓸 수 있다. 물론 모바일용 어플도 나와 있지만 제약이 너무 많다.

 

그야말로 울며 겨자먹기로 윈도우즈를 쓰고 있고 이 Ativ 스마트 PC도 윈도우즈이기 때문에 산 것이다.  또 다른 이유는 Windows 8을 체험하고 싶은 것도 크다. 지금 이 글을 이 tablet에서 쓰고 있다.

 


 

 

Samsung Ativ Smart PC

 

 

 

In the Box

 

 

 

 

keyboard dock 는 그대로 독립적인 장치

 

 

 

이 블로그를 쓰는 장면을 내 mini-iPad 의 Evernote Camera로 찍어서

이 tablet의 Evernote에서 옮겨다 올린것.

 

 

 

 이 tablet의 screen shot

 여기서 보듯 Keyboard 를 떼고 tablet 처럼 써도

Desktop 기능을 다 쓸 수는 있다. 

단지 이 그림에서 보듯 소프트 키 보드가 화면 반을 가리기 때문에

블로깅과 같은 긴 text를 입력하는데에는 불편이 따른다.

또 소프트 키는 많은 기능 키가 빠져 있어 제약이 많다.

 

 

 

 

 

 

 

 

 

 

 

 

 

Posted by 샛솔

댓글을 달아 주세요

GradientFill - 급변하는 IT 세계

 

정년퇴직을 하고 처음 인터넷 강좌를 할 때 첫 강좌에 쓴 강의록엔 아래와 같은 문장이 있다.

 

 

.......세상에는 뭘 가르쳐 주지 못해서 안달이 난 사람들로 가득 차 있는 것 같습니다.  이런 사람 덕택에 인터넷은 살아 있는 백과 사전입니다. 저도 항상 이 웹 페이지를 검색하면서 새로운 것을 배우고 또 새로운 소식에 접하고 있습니다.   저도 또한 그동안 배운 것만큼 되돌려 주려고 애 써 왔습니다. ......

 

그래서 또 더 되돌려 주려고 이 강좌를 쓴다. 

 

그 중에서도 플래시의 GradientFill 이라는 명령어가 있다.  여기에 들어가는 맺음 변수중에 행열이 있다.  공식 매뉴얼에도 그 명령어에 들어가는 맺음변수에 대한 설명이 별로 없다.  처음 전산학을 하는 사람이 그런 수학적 기법을 디자인에 적용한 것이 널리 쓰이게 되었으리라 추측된다. 

 

그러나 보통의 컴퓨터 그래픽 디지이너에게 그런 수학을 설명하기는 어려웠을 것이다.  그래서 매뉴얼은 행열대신 다른 맺음변수를 쓰도록 하고 우물쩡 넘어 갔으리라.   어느 외국 온라인 포럼에서 이것이 무엇이냐 아느 사람 없느냐고 찾고 있었다.  우연한 기회에 그것을 보고 내가 그 수학적 배경을 설명하는 시늉내기 하나를 만들어 올렸었다.  아래와 같은 플래시 무비다.

 

 

 

 

Flash MX 에 들어 있는 

GradientFill 명령어에 들어 가는 행열값과 그 효과를 보는

교육용 무른모.

Radial 을 선택하고

Scaling, Shearing 따위의 단추를 눌러 행열값을 변동시켜

그래픽에 미치는 효과를 알게 해 주는 교육용 무른모

  

 

 

 이 무른모를 만든 이후 Flash 는 MX2004, Flash7, Flash8 으로 진화하더니 ActionScript 3.0을 내어 놓으며 Adobe 사와 합병을  했다.

 

그리고는 Adobe사는  Flex2.0, Flex3.0 과  CS3, CS4 들 내어 놓고 있다. 

 

그리고는 그 명령어도 바뀌고 그 맺음변수도 달라졌다.

 

2006년 Flex 2.0 강좌를 쓸 때 만들었던 데모 프로그램을 오늘 FD3 으로 다시 컴파일해 보니 잘 빌드가 된다.   아래에 올린다.

 

 


 

이 데모에서는 기하적 변환은 넣지 않았다.

행열 대신 

width, height, rotation, tx, ty, fp(focal point) ratio 만 정해 주면 된다.

 

 

잠간 한 눈을 팔면 정신 없이 달려 가는 IT 기술을 따라가기 힘들다.

 

 

'IT > Flex 3.0' 카테고리의 다른 글

GradientFill - 급변하는 IT 세계  (0) 2009.01.30
해와 달 그리고 떠돌이별들  (0) 2009.01.27
Flex3.0 Project를 FlashDevelop에서 쓰는 법  (0) 2009.01.26
FlashDevelop3(FD3) 사용법  (0) 2009.01.25
무료 플래시 통합개발환경 구축하는 법  (0) 2009.01.25
Flex 3.0  (0) 2009.01.20
Posted by 샛솔

댓글을 달아 주세요

이 글은 2006-08-23 10:56:36 에플래시 클럽 에 올렸던 글이다.  

이것이 전산물리학회에 가기 전에 만든 Flex2.0 마지막 프로그래밍이다.

 

Flex3.0 프로그래밍 강좌를 위해 여기에 다시 가져 왔다.

 

 

 

해와 달 그리고 떠돌이별들

 

 


 

 

 

플래시로 꼭 한번 해 보려던 것이 태양계를 시늉내는 것이었습니다.  그러나 AS3 이 나오기 전까지는 플래시의 속도가 느려서 태양계를 시늉내기는 어려웠을 것입니다.

사실 태양계의 주성을 태양까지 10개인데  달이 비록 떠돌이 별은 아니라 해도 우리에게는 태양 다음 밝은 천체이니 포함시키지 않을 수 없지요 그러니  모두 11개가 됩니다.  내일 열리는  국제천문학 연맹 (International Astronomical Union)에서 3개의 떠돌이 별을 추가할 가능성이 많아졌으니 그것 까지 포함시키면 모두 14개의 질량체가 됩니다.  

이들이 모두 중력 서로작용을 하고 있으니  각각의 질량체는 13개의 다른 질량체의 중력을 받는 셈입니다.  이 힘에 의해서 일어나는 운동을 미분 방정식을 풀어서 자리길을 계산해 낸다는 것은 엄청난 계산량이 됩니다.  따라서 플래시 AS2.0으로는 꿈꾸기 힘든 상황이었습니다.  

AS3.0은 가능할까?  

가능하다는 것을 알게 되었습니다.   AS3.0의 가능성이 무진장이라는 말을 했지요.  사실입니다.  

이번 시늉내기 미니 태양계는 수금지화목토 성에 해와 달 까지 넣어 8체 문제를 다루었습니다.  전에 전산물리를 가르칠 때 Java로 시범 풀그림으로 태양계를 시늉내었었는데 그때에는 목성까지만  넣고 달은 빼었었으니 그 때 보다 달과 토성의 2체가 더 는 셈입니다.  

이번 시늉내기의 가장 큰 특성은 초기상태의 정확한 데이터를 사용할 수 있었다는 점입니다.  NASA 가 운영하는 JPL(Jet Propulsion Lab)에서는 태양계의 정확한 데이타를 무료로 제공합니다.  

그래서 이번 전산물리 학회 강연 날자의 태양계의 데이타를 초기 조건으로 하여 시늉내기를  만들었습니다.

여러가지 테스트 결과 보전량인 총 에너지,  각운동량 3 성분을 모니터한 결과로 얻은 RK4 미방해법의 시간 스텝을 1시간 3600초로 잡았어도 큰 무리가 없었습니다.  그리고 프래임 당 24 스텝 그러니까 정확히 1일의 움직임을 시늉내었습니다.   2006년 8월 31일 오전 9시(GMT+9000 )의 미니 태양계의 역학 상태에서 시작하여 이 미니 태양계는 운동을 시작하여 Stop 버튼을 누를 때까지 운동합니다.   그리고 그 정지한 시점의 일시를 보여 줍니다.

이 미니 태양계는 모델처럼 만들었습니다.   Isometric view 에다 그림자를 넣어 높이를 가늠할 수 있게 하였습니다.   보통은 perspective를 넣어서 멀리 가는 것을 작게 보이게 하여 3차원 시늉을 내지만 자리표 없이 어두운 공간에 공을 그린다는 것은 거의 의미가 없읍니다.

이 시늉내기에서 목성 토성, 달을 빼고는  모두 1 픽셀이  2백만 킬로 미터에 해당되는 스케일로 그렸습니다.   목성과 토성을 포함시키기 위해 목성은 거리 스케일을 1/3 로 줄였고 토성은 1/5 로 줄였습니다. 그리니까 토성은 이 시늉내기에서 보이는 거리의 5배로 태양에서 멀리 떨어져 있습니다.  

이 시늉내기에서 목성과 토성이 느리게 움직여 보이는 이유는 이 인위적인 스케일 때문입니다.  제대로 된 스케일이면 3배 5배로 빠를 것입니다.

  또 달은 지구에 너무 가까이 있어 같은 스케일로 그릴 수 없어 100배 늘려 그렸습니다. 그리니까 모델에서 보이는 거리의 1/100 이 실제 지구에서의 거리입니다. 여기에  다른 천체와 같은 스케일로 그리면 지구와 같은 점이 되어 버립니다.

풀그림은 이미 다 설명한 바 있는 내용입니다.  3차원 그리기는 이미 "Isometric view",  "빛과 그리고 그림자"에  RK4 는 "바보들을 위한 미방" 과 이어진 강좌에서 그리고 중력 서로 작용의 문제는 "떠돌이별의 운동" 에서 자세히 설명 드렸읍니다.  

AS3 특유의 새로운 내용은 새 depth management 기법입니다.  전산물리 학회가 끝나면 천천히 설명 드리겠습니다.  

강좌를 읽어 주셔서 감사합니다.

부록 초기 상태의 데이타

Vectors  Km, Km/s

Sun
2453978.500000000 = A.D. 2006-Aug-31 00:00:00.0000 (CT)
X = 0.000000000000000E+00 Y = 0.000000000000000E+00 Z = 0.000000000000000E+00
VX= 0.000000000000000E+00 VY= 0.000000000000000E+00 VZ= 0.000000000000000E+00

2454027.500000000 = A.D. 2006-Oct-19 00:00:00.0000 (CT)
X = 0.000000000000000E+00 Y = 0.000000000000000E+00 Z = 0.000000000000000E+00
VX= 0.000000000000000E+00 VY= 0.000000000000000E+00 VZ= 0.000000000000000E+00

Mercury
2453978.500000000 = A.D. 2006-Aug-31 00:00:00.0000 (CT)
X =-4.656646942490446E+07 Y = 2.388755607970573E+07 Z = 6.224910433736013E+06
VX=-3.224482514504295E+01 VY=-4.128465596918252E+01 VZ=-4.138068385701885E-01

2454027.500000000 = A.D. 2006-Oct-19 00:00:00.0000 (CT)
X = 4.095025367510563E+07 Y =-4.756466553370416E+07 Z =-7.643889233724162E+06
VX= 2.723358304612402E+01 VY= 3.412364873634338E+01 VZ= 2.886471685155101E-01

Venus
2453978.500000000 = A.D. 2006-Aug-31 00:00:00.0000 (CT)
X =-5.462745529812206E+07 Y = 9.246768282459620E+07 Z = 4.418218840158559E+06
VX=-3.027203183831064E+01 VY=-1.800605855426683E+01 VZ= 1.500799946800666E+00

2454027.500000000 = A.D. 2006-Oct-19 00:00:00.0000 (CT)
X =-1.012820942450337E+08 Y =-3.693780651054496E+07 Z = 5.340178102913741E+06
VX= 1.176203397382913E+01 VY=-3.305967021603297E+01 VZ=-1.131250378523294E+00

Earth
2453978.500000000 = A.D. 2006-Aug-31 00:00:00.0000 (CT)
X = 1.394079297299942E+08 Y =-5.808987662689899E+07 Z = 1.103829489812255E+03
VX= 1.096315833230429E+01 VY= 2.739085656828412E+01 VZ= 5.218572603382654E-05

2454027.500000000 = A.D. 2006-Oct-19 00:00:00.0000 (CT)
X = 1.346492558310886E+08 Y = 6.386068356105489E+07 Z =-1.193455289136618E+03
VX=-1.324884123955707E+01 VY= 2.681458909140181E+01 VZ= 6.681153393639505E-04

Moon
2453978.500000000 = A.D. 2006-Aug-31 00:00:00.0000 (CT)
X = 1.391892475844499E+08 Y =-5.841728941449566E+07 Z =-3.066210774254799E+04
VX= 1.181712152125688E+01 VY= 2.688998914755920E+01 VZ=-3.968845538769727E-02

2454027.500000000 = A.D. 2006-Oct-19 00:00:00.0000 (CT)
X = 1.342489279218244E+08 Y = 6.392828272990467E+07 Z = 1.851278635684401E+03
VX=-1.341409730480903E+01 VY= 2.586361036417885E+01 VZ=-8.735248296661524E-02

Mars
2453978.500000000 = A.D. 2006-Aug-31 00:00:00.0000 (CT)
X =-2.449852977829843E+08 Y =-2.213965291399480E+07 Z = 5.554334154690327E+06
VX= 3.085741667754069E+00 VY=-2.206147012938125E+01 VZ=-5.380527012458254E-01

2454027.500000000 = A.D. 2006-Oct-19 00:00:00.0000 (CT)
X =-2.125490330522144E+08 Y =-1.112056563053284E+08 Z = 2.891355715446621E+06
VX= 1.214002704062227E+01 VY=-1.939854748284263E+01 VZ=-7.046689877719707E-01

Jupiter
2453978.500000000 = A.D. 2006-Aug-31 00:00:00.0000 (CT)
X =-4.858829634313659E+08 Y =-6.446397166545756E+08 Z = 1.354883908805799E+07
VX= 1.027886068158904E+01 VY=-7.255886070799312E+00 VZ=-1.999309894703085E-01

2454027.500000000 = A.D. 2006-Oct-19 00:00:00.0000 (CT)
X =-4.412920183868400E+08 Y =-6.738746087994304E+08 Z = 1.267237999132797E+07
VX= 1.077748968529709E+01 VY=-6.548330491741995E+00 VZ=-2.139605303609002E-01

Saturn
2453978.500000000 = A.D. 2006-Aug-31 00:00:00.0000 (CT)
X =-9.783510734541842E+08 Y = 9.574791593359984E+08 Z = 2.226350198371911E+07
VX=-7.266762358286020E+00 VY=-6.932942266105382E+00 VZ= 4.105005792404426E-01

2454027.500000000 = A.D. 2006-Oct-19 00:00:00.0000 (CT)
X =-1.008656789111779E+09 Y = 9.276951449388936E+08 Z = 2.398812901606554E+07
VX=-7.048403399320413E+00 VY=-7.138480148569037E+00 VZ= 4.053184882737213E-01

//***********************************

Masses:

Sun
Mass (10^30 kg)       =    1.9891

Mercury
Mass (10^23 kg )      =     3.302

Venus
Mass (10^23 kg )      =     48.685

Earth
Mass, 10^24 kg = 5.9736

Moon
Mass, 10^20 kg        =  734.9

Mars
Mass (10^23 kg )      =    6.4185

Jupiter
Mass (10^24 kg)       =  1898.6

Saturn
Mass (10^26 kg)       = 5.68461037873


  

'IT > Flex 3.0' 카테고리의 다른 글

GradientFill - 급변하는 IT 세계  (0) 2009.01.30
해와 달 그리고 떠돌이별들  (0) 2009.01.27
Flex3.0 Project를 FlashDevelop에서 쓰는 법  (0) 2009.01.26
FlashDevelop3(FD3) 사용법  (0) 2009.01.25
무료 플래시 통합개발환경 구축하는 법  (0) 2009.01.25
Flex 3.0  (0) 2009.01.20
Posted by 샛솔

댓글을 달아 주세요

Flex3.0 Project를 FlashDevelop에서 쓰는 법

 

오늘 글에서는 FD3에서 Flex3 프로그램을 하는 법을 플래시무비로 설명한다.

 

앞글에서는 ActionScript3.0 만을 쓰는 프로젝트를 FD3 통합개발환경에서 수행하는 방법을 설명했다.

 

그러나 Flex는 Flex 고유의 코드로 개발해야 Flex3.0 SDK 에 포함된 기본적인 컴포넌트를 활용할 수 있다는 것을 Flex 2.0 강좌를 통해서 알았을 것이다.  

 

이 글에서는 Flex3.0 프로젝트를 FD3 IDE에서 수행하는 법을 플래시 무비로 보여 주려고  한다.

그 방법은 ActionScript3.0 프로젝트 수행법과 거의 같다.  

 

단지 처음 새 프로젝트를 만들 때 Flex3.0을 지정해 주어야  디폴트 Main.mxml  문서를 포함한 기본 틀(Templet)이 열리고  이 문서를 기점으로 프로그램을 짤 수 있다.

 

AS3.0은 이 문서에 삽입하는 법은 Flex 2.0 강좌에서 이미 설명한 바 있다.

 

여기서도 HelloFx.mxml 문서를 빌드하고 무비를 테스트한다.   

 

마지막 출판할 때에는 debug 모드가 아니라 release 모드로 빌드해야 무비의 파일 크기가 작고 swf 파일이 빨리 돈다.

무비를 따라가면서 방법을 익히기 바란다.

 

 

 

 

 이 것으로 일단 Flex3.0 SDK를 FlashDevelp 이라는 통합개발환경에서 프로젝트 수행의 기본은 알았으리라 생각된다.

 

 

 

'IT > Flex 3.0' 카테고리의 다른 글

GradientFill - 급변하는 IT 세계  (0) 2009.01.30
해와 달 그리고 떠돌이별들  (0) 2009.01.27
Flex3.0 Project를 FlashDevelop에서 쓰는 법  (0) 2009.01.26
FlashDevelop3(FD3) 사용법  (0) 2009.01.25
무료 플래시 통합개발환경 구축하는 법  (0) 2009.01.25
Flex 3.0  (0) 2009.01.20
Posted by 샛솔

댓글을 달아 주세요

FlashDevelop3(FD3) 사용법

 

먼저 명령창에서 Flex2.0를 써서 Actionscript 3.0(AS3) 프로그램하던 것을 FD3 IDE(통합개발환경)에서 어떻게 하는가를 보여 준다.

 

Flex 2.0 에 대한 설명은 전에 올렸던 아래의 플래시클럽의 강좌를 참조하기 바란다.

 

http://www.flashclub.co.kr/bbss/zboard.php?id=tutorial_09

 

아래와 같은 "Hello" 코드를 FD3에서 어떻게 빌드하고 결과물인 플래시 무비(swf 파일)를 Test 까지 하는가를 보여 준다.

 

 

 

package {

        import flash.display.Sprite;

        import flash.display.*;

        import flash.text.TextField;

 

        public class helloAS extends Sprite

        {

public var myText:TextField = new TextField();

 

                public function helloAS()

                {

        

myText.text = "물리로 배우는 플래시입니다.  이것은  Actionscript 3.0 입니다. " ;

myText.x = 50;

myText.y = 250;

myText.width = 350;

trace("trace 로 내 보낸  "+myText.text);

this.addChild(myText);

                }

         }

 

 

  

 

 

아래에 보여 주는 강의동영상은

 

1.AS3 프로젝트를 원하는 디렉토리에 원하는 이름으로 만들면 AS3 프로젝트 기본틀(templet)이 생긴다.

 

2.이 기본틀에는 Main.as 라는 기본 클래스가 따라 오는데 여기서부터  AS3 프로그램을  적어 넣으면 된다.  

 

이 강의에서는 위의 코드를 클립해다 옮기는 것으로 대신한다.  위의 코드에서는 클래스 이름이 helloAS 이므로 파일 이름을 helloAS.as로 바꿔 주어야 한다.

 

3.이 프로젝트를 빌드하기 위해서는 컴파일러 옵션을 셋팅해 주어야 한다. "Project" 메뉴창에서 "Properties" 창에 가서 이 옵션들을 설정한다.

 

4. 위의 코드에서는 trace 명령문이 있다.  이 trace의 출력은 output 창의 끝부분에 나온다.

 

 

 

 

 

 

 

'Play' 단추를 눌러 화살표 커서의 움직임을 따라 가면

FD3 IDE 에서 AS3 프로그램을 어떻게 사용하는가

쉽게 배울 수 있을 것이다.

 

 

 

'IT > Flex 3.0' 카테고리의 다른 글

GradientFill - 급변하는 IT 세계  (0) 2009.01.30
해와 달 그리고 떠돌이별들  (0) 2009.01.27
Flex3.0 Project를 FlashDevelop에서 쓰는 법  (0) 2009.01.26
FlashDevelop3(FD3) 사용법  (0) 2009.01.25
무료 플래시 통합개발환경 구축하는 법  (0) 2009.01.25
Flex 3.0  (0) 2009.01.20
Posted by 샛솔

댓글을 달아 주세요

무료 플래시 통합개발환경 구축하는 법

 

Adobe 사가 판매하는 Flex 3.0 개발툴인 FlexBuilder3.0 은 정가가 1,518,000이다.

 

상업적인 개발자가 아니고 그냥 배우기만 하려는 학생들에게는 그림의 떡이다.  교육용이라 해도 만만한 값이 아니라고 생각한다.

 

3년전 (2006)에 Flex 2.0 SDK 가 무료로 공개되었을 때 명령창에서 이 Flex SDK를 쓰는 법을 강의했었다.  

 

그러나 나처럼 DOS 시절부터 프로그래밍을 해 온 사람이 아니고는 명령창에서 뭘 한다는 것은 결코 쉬운 일이 아니다.

 

아무리 일괄처리파일(batch file)을 만들어 쓴다해도 익숙하지 않은 사람에게는 어렵기는 마찬가지였을 것이다.

 

이번 Flex 3.0을 다시 쓰려고 설치를 하는 과정해서 FlashDevelp 이라는 통합개발환경(IDE)이 아주 편리하다는 것을 알 게 되었다.

 

Flex 2.0을 쓸 때에도 이 개발툴이 있었다.  내 컴퓨터에도 깔아 놓았었다.  그러나 최신 버전인 FlashDevelop 3.0.0 RC1과 같지 않았다.

 

명령창을 그대로 쓰는 것이 나을 지경이라 무시하고 있었다.

 

무료(Open Source)인 FlashDevelop 3은 어떤 상용 툴에 내 놔도 뒤지지 않을 만큼 잘 발전했다.

 

 

사용자 삽입 이미지

 

FlashDevelop 의 로고

 

 

 

이 무른모는 오픈 소스로 공개되어 있어 합법적으로 내려 받아 사용할 수 있다.

 

이것을 내려받아 깔고  무료인 Flex 3.0 SDK 를 내려 받아 깔면 훌륭한 무료 플래시 개발툴이 된다. 

 

사용자 삽입 이미지

 

Flex 의 로고

 

 

오늘은 이 개발 툴을 설치하는 방법을 간단히 소개한다.

 

가.  준비

FlashDevelop와 Flex3.0 SDK를 설치하려면

Flash Player 9 ActiveX runtime

Java 1.6 runtime (JRE)

가 설치되어 있어야 한다.  

 

나.  FD3 내려 받기

FlashDecvelop 홈페이지에 가서 FD3(FlashDevelop 3.0.0 RC1)을 내려 받는다.

http://www.flashdevelop.org/community/viewforum.php?f=11

 

다.  FD3 설치

FlashDecvelop를 원하는 디렉토리에 설치한다.

 

라.  Flex 3.0 SDK 내려 받기

Flex3 SDK를 내려 받는다.  

http://www.adobe.com/products/flex/flexdownloads/#sdk

 

마.  Flex 3.0 SDK 설치

Flex3 SDK를 원하는 디렉토리에 설치한다.  

 

바.  FD3 셋팅(configure)하기

FlashDecvelop를 셋팅한다.

 

 

FlashDevelop 를 설치한 다음 이 풀그림을 열면 아래와 같은 초기 화면을 볼 수 있다.  

 

 

사용자 삽입 이미지

 

FlashDevelop의  초기화면

 

이 초기 FlashDevelop에서 Flex3.0 SDK 를 셋팅하기 위해서는 아래의 플래시 무비에서와 같이 두가지를 지정해 주면 된다.  즉

 

1.  Flex3.0 SDK 가 깔려 있는 디렉토리를 입력해 주고

 

2.  앞으로 사용할 자작 클래스를 저장해 둘 외부 클래서의 디렉토리를 입력하는 것이다.  

 

 

 


 

"Play" 단추를 누르면 앞서 말한 셋팅을 하는 과정을

보여 준다.  "Pause" 단추를 누르면 임시 정지하고

"Stop" 단추를 누르면 다시 시작점으로 되감는다.

 

이 처럼

 

두개의 무료 풀그림을 내려 받아 깔고 간단한 셋팅만 해 주면 훌륭한 플래시 통합개발환경을 무료로 얻을 수 있다.

 

'IT > Flex 3.0' 카테고리의 다른 글

GradientFill - 급변하는 IT 세계  (0) 2009.01.30
해와 달 그리고 떠돌이별들  (0) 2009.01.27
Flex3.0 Project를 FlashDevelop에서 쓰는 법  (0) 2009.01.26
FlashDevelop3(FD3) 사용법  (0) 2009.01.25
무료 플래시 통합개발환경 구축하는 법  (0) 2009.01.25
Flex 3.0  (0) 2009.01.20
Posted by 샛솔

댓글을 달아 주세요

Flex 3.0

IT/Flex 3.0 2009. 1. 20. 00:46

Flex 3.0

 

매크로 미디아사 Flex 2.0을 Open Source 무료로 공개한지(2006) 3년이 되었다.

 

작년 가을에 미국에 여행중 들린 대형서점 Barnes and Noble 의 컴퓨터 관련 서가에 Flex 3.0 해설서가 나와 있는 걸 봤다.  

 

그러고 보니 프로그래밍을 손 놓은지 3년이 되어 간다.   경주에서 열린 국제 전산물리학회에 초청연사로 갔다 온 후엔 프로그래밍을 놔 버렸다.  

 

그 때 몇가지 주제를 시뮤레이션 해 보겠다고 마음속에 적어 둔 것이 있는데 한번 놔 버리니 다시 시작하는 것이 쉽지 않았다.  

 

Barnes and Noble 에서 Flex 3.0 책을 보니 불현듯 다시 프로그래밍을 하고 싶은 생각이 일었다.  

 

서울에 돌아 가면 시작해야겠다고 했는데 또 차일 피일 날이 갔다.  너무 머리가 굳어지기 전에 해야지 하고 어제 그 Flex 3.0 책을 아마존에서 주문했다.

 

다시 프로그래밍을 시작하려고 매크로미디아 사이트에서 Flex 3.0 SDK 를 다운 받아 깔았다. 

 

또 FlashDevelp 에서 FlashDevelp 프로그램(역시 오픈소스로 무료)을 내려 받아 깔았다. 

 

간단히 테스트해 보니 Flex 2.0 으로 제작하였던 플래시 프로그램이 잘 돌아 간다.   

 

이 두 프로그램을 같이 쓰면 플래시 프로그램을 제작하는 통합개발 환경을 무료로 얻을 수 있다. 

 

100만원이 훌쩍 넘는 매크로미디아사의 Flex Buidler 와 같은 개발툴을 무료로 설치할 수 있다.

 

 평생 그랬듯이 배우는 것은 가르치며 하는 것이 가장 좋은 방법이다.  

 

그래서 이 카테고리에 "Flex 3.0  과 ActionScript 3.0" 를 강의할 생각이다.  

 

자전거 여행이 주 주제였던 이 블로그가 당분간 프로그래밍 강좌로 바뀔 것 같다.   

 

첨부한 파일은 새 툴로 제작한 유명한 프랙탈 그림이다.

 

 


 

 

만델부롯의 쪽거리(프랙탈)그림을 그리는데 걸리는 시간을 재어 보기위한

플래시 그림이다.  다시 시작하면 새로 그리는데 걸린 새 시간이 표시된다.

이 그림을 그리기 위해 엄청난 계산을 하는데도

내 컴퓨터로는 1초도 안걸린다.

 

 

 

 

'IT > Flex 3.0' 카테고리의 다른 글

GradientFill - 급변하는 IT 세계  (0) 2009.01.30
해와 달 그리고 떠돌이별들  (0) 2009.01.27
Flex3.0 Project를 FlashDevelop에서 쓰는 법  (0) 2009.01.26
FlashDevelop3(FD3) 사용법  (0) 2009.01.25
무료 플래시 통합개발환경 구축하는 법  (0) 2009.01.25
Flex 3.0  (0) 2009.01.20
Posted by 샛솔

댓글을 달아 주세요

몇년째 플래시 클럽 (http://www.flashclub.co.kr/   ) 에 "물리로 배우는 플래시" 라는 강좌를 올리고 있는데 사진첩과 같이 3D 책장 넘기기 시늉내기 수법을 Texture mapping 기법을 응용하면 할 수 있다는 얘기를 썼습니다.   해설을 써야 하는데 산책에 시간을 쏟다 보니까 늦어 지네요.  아래에   Demo 와 소스 코드만  우선 올려 놓았습니다.     

 

http://www.flashclub.co.kr/bbs/view.php?id=tutorial_09&no=69

 

데모용으로 사진첩은 앨범 내용이 회원님들 얼굴이라  꽃모음으로 바꿔 놓았습니다.  Flex 2 에 관심 있는 분은 참고 하시기 바랍니다.


 

창이 작아 잘리는 경우 독립된 창으로 보실려면

 

http://www.flashclub.co.kr/bbs/data/tutorial_09/Album2.swf

'IT > Flex 2' 카테고리의 다른 글

3D 책장 넘기기 시늉내기  (0) 2007.03.16
Flex 로 만든 사진첩  (0) 2007.03.14
어도비사는 왜 Flex를 만들었나?  (0) 2006.09.12
Posted by 샛솔

댓글을 달아 주세요

Flex 2로 만든 꽃 사진첩


 

 

 

 

'IT > Flex 2' 카테고리의 다른 글

3D 책장 넘기기 시늉내기  (0) 2007.03.16
Flex 로 만든 사진첩  (0) 2007.03.14
어도비사는 왜 Flex를 만들었나?  (0) 2006.09.12
Posted by 샛솔

댓글을 달아 주세요

어도비사는 왜 Flex 2를 만들었나?

2006년 6월 28일 (정확히는 12:01) 어도비사는 Flex 2를 공표했습니다.  Flex 2 의 전 제품군을 공표한 것입니다.

공표한 제품군은

- Flex SDK and Framework (무료)

- Flex Builder ($499)

- Flex Data Services (무료(제한된기능) / $20.000)

- Flash Player 9 (무료)

들입니다.

어도비사가 이들을 만들어 내 놓은 배경에는 의도하는 바가 무엇인지 궁금할 것입니다.  나 역시 "독점과 폭리" 로 일관하던 대회사가 이런 정책전환을 한데 대한 궁금증이 가시지 않았습니다.    이제 그 궁금증이 풀렸습니다.   어도비사에겐 선택의 여지가 별로 없었던 것입니다.

양 방향에서의 압력

어도비사가 Flex를 만들어 무료제품을 포함, 파격적 가격다운을 감행하게 된 데에는 두 방향에서 적지 않은 압력을 받은 탓입니다.   

그 하나는 플래시 제작툴을 더 이상 독점할 수 없게 되었다는 사실입니다.  플래시 무비 파일 swf를 제작하는데 이제 까지는 매크로미디아사의 플래시 제품이외에 다른 방법이 없었습니다.  즉 독점이 가능하였습니다.  따라서 "독점과 폭리"가 가능하였습니다.  그러나 최근에 그 환경이 바뀌었습니다.  오픈소스 프로젝트가 나오면서 매크로미디아 (이젠 어도비)사가 플래시 무비제작툴을 독점할 수 없게 된 것입니다.

그것들은 액션스크립트에디터와 무료 컴파일러들의 출현입니다.  예컨데FlashDeveop,SCITE, 또는SEPY이 나오면서 플래시에 내장된 액션스크립트보다 훨씬 기능이 향상되고  쓰기 쉽고 빠른 에디터들이 출현하였습니다.    거기에다  MTASC(Motion-Twin ActionScript 2 Compiler)   swfmill과 같은 무료 컴파일러가 오픈소스 프로젝트로 GPL(general public liscenc)로 출현하니까  독점과는거리가 멀어졌습니다.  Flash player를 유료화하지 않는한 flash player 가 읽는 byte code 인 swf 파일을 만드는 기술을 독점할 수는 없게 된 것입니다.  다시 말하면 플래시 없이 swf 파일을 만들어 내는 기술이 무료 공개소스로 출현하니까 그에 대응하는 전략을 세우지 않을 수 없었던 것입니다.

또 다른 한편의 압력은 매크로미디아사의 야심 프로젝트 RIA(Rich Internet Application 2002)가  AJAX (2005)에 밀리고 있다는위기감,  또 마이크로 소프트사의 VISTA 가 추격해 오고 있다는 사실들은 획기적인 정책 전환 없이는 그나마의 플래시 시장 마져 위협 받을 처지에 놓이게 된 것입니다.

이러한 양방향의 압력에 못 이겨 내오 놓은 대안이 Flex 2입니다.

오픈소스의 무료 컴파일러와 에디터에 밀리고  AJAX 나 VISTA 에 추격 당하는 상황에서 2002년 매크로미디어서의 백서에서 당당히 공표했던 RIA 시장을 선점하기 위해서는 많은 프로그러그래머를 끌어 드릴 필요가 있었던 것입니다.  Flex 2를 내어 놓으면서 어도비사가 계획하고 있는 야심은 턱없이 모자라는 액션스크립트 프로그래머를 전세계적으로 200 배로 늘리겠다는 것입니다.  현재의 5000명의 액션스크립트 프로그래머를 1백만명으로 늘리겠다는 것입니다.

 

"Our strategy is to get us into the enterprise and get a million developers using Flex in three to five years,"


 

이것은 플래시 프로그램으로 불가능합니다.  플래시는 여러 가지 그림그리기 툴이 있어 그래픽스, 에니메이션 제작에는 매우 훌륭한 도구입니다.  그런데 그것이 바로 반대로 걸림돌이 되는 것입니다.  

자바나 C/C++ 프로그래머에게 timeline 이란 개념은 무슨말인지 알아 듣지 못합니다.  timeline based ActionsSriopt coding 은 이런 사람들을 끌어 들이기에는 장애가 되는 것입니다.

 사실 Flash 에는 한계가 있었습니다.  Actionscript 2.0은 엉터리 객체 지향언어였습니다.   필자가 Flash2004 (Flash v.7)를 접하고 그것이 엉터리라는 이야기를 이미 했습니다. (강좌 27강좌28)

제 27 강좌에서
따라서 나와 같이 자바로 많은 클래스를 정의하여 써 오던 프로그래머에게는 반가운 소식이 아닐 수 없다.  그럼에도 불구하고 마냥 만세 삼창을 부르고 싶지 않은 것은 액션스크립트는 여전히 액션스크립트이기 때문이다.  온전한 풀그림 언어로 탈바꿈한다는 것은 아직은 힘에 부친다는 생각이 든다.  이점은 나중에 상세히 설명하겠다.  

Actionscript 3.0에서는 이런 엉터리 객체지향언어 요소가 모두 사라졌습니다. MovieClip은 존재하지만 오직 호환성을 위해 존재할 뿐 AS2.0의 MovieClip과는 근본적으로 다른 존재이고 새로 프로그램을 짠다면 사용해야 할 일이 전혀 없는 객체가 되었습니다.  

그래서 Actionscript 3.0을 사용하는 Flex 2를 내어 놓고 어차피 무료 명령창 컴파일러를 쓰는 프로그래머라면 플래시에 내장된 에디터를 쓰지않고 다른 무료 에디터를 사용하고라도 어도비사의 컴파일러를 사용하도록 무료로 내어 준 것입니다.

또한 명령창컴파일러를 사용하기 불편한 점을 덜어 주기 위해 Eclipse 의 프로그인을 $500 미만으로 파격적으로 가격을 내려 내어 놓은 것입니다.  왜 Eclipse를 선택하였는가?  그것은 자바 프로그래머를 끌어 들이기 위해서였습니다. Eclipse 는 원래 자바 개발자를 위해서 만든 오픈 소스 통합개발환경입니다.  필자 Jogl 강좌를 할 때Eclipse 에 바탕둔 Jogl을 썼습니다.  따라서 자바 개발자들이 Flex 2에 들어 오는 것은 아주 쉽게 된 것입니다.

결론적으로 어도비사에게 감사는 하지만  돈을 벌기 위해 존재하는 대 기업이 갑자기 자선 사업가로 변신할 이도 없는데 왜 그랬을까 하고 고개를 갸웃등했었는데 그 의문이 풀린 것입니다.

 

'IT > Flex 2' 카테고리의 다른 글

3D 책장 넘기기 시늉내기  (0) 2007.03.16
Flex 로 만든 사진첩  (0) 2007.03.14
어도비사는 왜 Flex를 만들었나?  (0) 2006.09.12
Posted by 샛솔

댓글을 달아 주세요

 

왜 도둑질이 나쁜가?

도둑질이 나쁘다는 것은 누구나 다 안다.  그리고 오프라인 세계에서 물건을 훔치는 짓을 하는 이는 그리 많지 않다.  인터넷을 항해하는 대부분의 네티즌도 오프라인 세계에서 도둑질을 한다는 것은 생각조차 못할 것이라 믿는다. 그런데 온라인상에서는 이런 도덕률이랄까 윤리관이 너무나 희박하다는 것을 아주 절감하고 있다.  

내가 도둑질이라 하는 것은 남의 저작물을 훔치는 행위를 말한다. "저작권침해"라는 것은 완곡어법이지 그것은 도둑질, 즉, 절도행위다.  그런데 왜 이런 절도행위가 오프라인에서는 감히 상상도 못하는 "양심적"인 사람들이  아무 죄의식 없이 다반사로 저지르는 것일가? 그것은 의식수준의 문제라고 생각한다.

먼저 저작자의 입장에서  생각해 보기로 한다.

 

1. 온라인상의 저작물은 타인의 재산이라는 생각이 희박하다.   온라인상에 공표된(published) 저작물은 타인의 재산이 아니라 공공재산이라 생각하는  사람이 많다.  누가 지키고 있는 것도 아니고  저자가 익명을 쓰는 경우가 더욱 그러하다.   공공재산은 훔쳐도 양심의 가책을 덜 받는 사람이 의외로 많이 있다.  남의 집에 들어가 꽃이나 나무를 꺾지 않아도 공원에서 그런 짓을 하는 사람들을  자주 본다.  공공의 재산은 훔쳐도 덜 죄가 된다는 의식을 가진 사람들이다.  그러나 인터넷상에서도 모든 공표된 저작물에 주인이 있다는  사실을 알아야 한다.  또 공공 재산이라 해도 관리인이 있고 베껴 간다면 허락을 받아야 한다.  

 

2. 훔쳐가도 없어지는 것이 없다는 의식이다.  온라인상의 저작물은 베껴가도 그 자리에 그대로 남아 있으니 해를 끼치지 않았다는 의식이다.  오프라인 세계의 물리적 대상은 유일한 존재이기 때문에 훔쳐가면 주인은 물건을 잃게 되고 따라서 주인에게 해를 끼치게 되지만 온라인 세계에서는 베껴 갈뿐 가져 가지 않았다는 의식이다.  초등학교 수준의 의식구조를 갖는 사람이라면 그렇게 생각할 것이다. 그러나 오프라인세계에서 제대로 어른행세를 하고 어른 대접을 받는 이가 이런 의식수준을 갖고 있다면 참으로 한심한 일이다.

 

3. 내가 훔쳐다 내 홈페이지나, 블로그 또는 포탈사이트의 카페에 올리는 행위는 원저작자에 이로운 일을 하는 행위로 착각을 하는 네티즌이 있는것 같다. 원저자의 이름까지 밝히면 더욱 그렇다고 생각하는 사람들이 있다.  이것은 오프라인세계에서는 멀정하고 존경받을 만한 시민인 경우에도 자주 보게 된다.  이런 사람은 대부분 자신이 한번도 저작물을 창작한 일이 없는 사람들로서 저작자의 입장에 서 본 일이 없는 사람들이다.  저작물이 어떤 소유권을 가지며  어떻게 유통되는지  모르는 사람들이다.    저작자의 공적(credit)이라는 개념에 대한 인식이 없는 사람들이다.    저작물이란 경우에  따라서는 돈이 될 수도 있는 소유권이다.   그러한  권리가 자신이 원하지 않고 자신도 모르는 곳에 또 자신의 손으로 어쩔 수 없는 곳에 퍼져 버리면  원저작자에게 어떤 정신적이고 경제적인 손실을 입히게 될까를 생각해 보아야 한다.  

 

 이번에는 이런 행위를 저지르면 공공에 끼치는 해악에 대하여 생각해 보기로 한다.

 

1. 이러한 행위는 원저작물을 왜곡 훼손하여 전달된다.  아무리 컴퓨터가 정밀한 기계라 하여도 옮겨가는 과정에서 훼손되기 쉽다.   또 옮기는 이가 가감을 해서 자기것인양 포장을 하면 더더욱 왜곡훼손의 정도는 심각해 진다.  특히 컴퓨터 프로그램과 같은 것은 컴마하나 빠져도 기호하나 없어도 에러가 난다.  원저작자의 명예를 실추시킬 뿐 아니라  정보를 구하기 위해 항해하는 네티즌에게 오염된 정보를 전달하게 된다.  더욱 더 심각한 것은 소위 검색엔진이라는 로봇은 정보의 옥석을 구별할 줄 모른다.  인테넷상의 컨텐츠에는 등급이 없기 때문에 멍청이 검색 엔진은 제일 먼저 이런 "짝퉁"  컨텐츠를 진품 저작물에 앞서 인도 해 준다.  내가 내 강좌를 훔쳐간 사실을 알게 된 것도 내 강좌항목을  멍청이 검색엔진에게 검색 의뢰한 결과 베껴간 블로그로  나를 인도해 주었기 때문이었다.

 

2. 멍청이 검색엔진은 짝퉁을 좋아한다.  이것은 참으로 심각한 문제라고 생각한다.   왜냐하면 소위 포탈 사이트라는 인테넷의 중계소가 상업적으로만 운영되고 인터넷교통량(traffic)위주로 중요도를 매긴다.  따라서   주로 남의 저작물을 훔쳐다  치장하는 블로그나 카페가 교통량이 많기 때문에  멍청이 로봇은 짝퉁을 좋아하게 된다.   

 

3. 짝퉁 사이트는 정보의 원활한 흐름을 왜곡한다.   한 보기를 들겠다.  내 강좌 10 여편을  불법 전재한  한 카페가 있었다. 그런데 그 카페의 운영자라는 사람이 그럴듯한 물리 강좌를 여러편  게시해 놓았다.   그 모든 강좌는 그 운영자가 저작한 것처럼 진열되어 있었다.  한 강좌를 열어서 읽어 보니 대학교수가 아니면 쓸 수 없는 고급 내용이었다.   교수가 한가하게 그런 포탈사이트의 카페를 운영할 것 같지 않아 의아하게 생각하고 이리저리 카페를 둘러 보다가 그 강좌의 출처를 알게 되었다.  그 강좌는 P대학 I 교수가 쓴 글로서 한국 물리학회의 홍보지인 "물리학과 첨단기술"에 실린 글을 무단 전재한 것이었다.   

문제는 검색엔진이 고급정보를 찾는 네티즌에게 이런 짝퉁사이트로 유도한다는 데에 있다.  한국물리학회의 이 홍보지도 아주 오래된 기사나 논문을 아직도 인테넷상에  남겨 놓아 네티즌에 써비스하고 있다.  그런데 검색엔진은 이런 짝퉁만을 선호하기 때문에 고급정보를 차단하는 결과를 가져 온다.  다시 말해서 "옥"은 이런 쓰레기들에 가려져 일반 네티즌은 찾아 낼 수 없게 만들고 있는 것이다.  

 

4. 끝으로 이러한 행위는 잠재적 저작자에게 고급컨텐츠를 생산할 의욕을 상실하게 만든다.  결과적으로 인터넷을 쓰레기더미만 양산한다.   이것은 이미"인터넷은 쓰레기인가?"에서 언급하였므로 줄이기로 한다.

 

결론적으로 말하면 좋게는 저작권 침해요,  노골적인 표현을 쓰면 도둑질이 자신까지 포함해 그 누구에게도 도움이 되지 않는 행위라는 것을 깨달았으면 한다.  

 네티즌이 알아야 할 저작권 상식

'IT > JOGL(Java OpenGL)' 카테고리의 다른 글

왜 도둑질이 나쁜가?  (4) 2005.12.27
인터넷은 쓰레기인가?  (2) 2005.12.25
Jogl에서 KeyEvent 쓰는 법  (0) 2005.12.06
Jogl에서 MouseEvent 쓰는 법  (0) 2005.12.05
Jogl을 JApplet 에 담는 법  (0) 2005.12.04
Jogl을 Applet에 담는 법  (0) 2005.12.03
Swing 을 사용하는 Jogl 코드의 해설  (0) 2005.12.02
Posted by 샛솔

댓글을 달아 주세요

  1. 알 수 없는 사용자  댓글주소 수정/삭제 댓글쓰기 2012.10.04 18:16

    우연치 않게 교수님이 만드신 물리로 배우는 플래시 라는 사이트를 접하게 되었습니다. 정말 필요한, 알고 싶은 내용들이 가득 합니다. 얼굴은 뵌적 없지만 감사히 배우겠다는 말 남기려 왔는데 저작권 관련 글에 안타까운 맘이 드네요. 전 이제 31살입니다. 세대를 넘어서 교수님 덕을 보는 저에겐 교수님덕에 인터넷이 쓰레기라 생각되지 않습니다. 다만 이런 혜택을 받기위해서 저작권등의 올바른 인터넷 문화 의식을 갖추어야 겠다는 생각을 합니다. 얼굴을 뵙고 이야기 한적은 없지만 존경스럽고 감사합니다.

    • 샛솔  댓글주소 수정/삭제 2012.10.05 10:18 신고

      이 글은 2005년에 쓴 글이라 오늘의 인터넷 비판에 맞지 않을 것 같습니다. 인터넷 문화에 아직도 문제점이 있긴 하지만 2005년 당시 보다는 많은 점이 개선되었습니다. 감사합니다.

  2. 김성환  댓글주소 수정/삭제 댓글쓰기 2012.10.12 03:08

    안녕하세요? 저는 남가주 토랜스에 살고 있는 김성환 이라고 합니다.
    현재 가디나장로교회에서 목회하고 있습니다.
    자전거 여행에 관심이 많은데 우연히 이곳을 알게 되어 어떤 분이신가 궁금한 마음에 댓글을 남깁니다.
    이곳 사우스베이에 사시는지요? 그러시다면 언제 커피라도 마시며 자전거 얘기 나눌 수 있으면 좋겠습니다.

    • 샛솔  댓글주소 수정/삭제 2012.10.12 12:00 신고

      안녕하세요. 반갑습니다. 저는 서울에 살고 있습니다. 전엔 LA 에 자주 갔습니다만 한 2,3년 못 갔습니다. 언제 또 가게 될지 모르겠습니다. 자전거여행기를 이 블로그에 쓰고 있이니까 자주 들러 주십시요. 남가주 자전거 여행기가 새롭게 올라 오면 그 땐 남가주에 있을 것입니다. 감사합니다.

내가 여기에 Jogl 에 대한 강좌를 올리고 실수로 하나만 빼고 모두 스크랩을 허용하지 않는다고 체크하였습니다.  그런데 어떤 blogger 가 여기를 방문하고 그 강좌를 모두 스크랩하여다가 자신의 블로그에 게재하였습니다.  내가 강좌와 같은 것은 스크랩하지 못하게 하는것은 그 내용이 정밀성과 기술성을 내포하고 있기 때문에 자칫 훼손 왜곡되기 쉽고 따라서 자칫 내 인격이나 명예가 훼손될 우려가 있기 때문입니다.  그래서    offline 출판에 있어도 전재나 인용에 대해서 엄격한 규율을 정하고 실행하고 있는 것입니다.   아래의 글은 내가 50여편을 올린 "물리로 배우는 플래시" 

 http://phya.snu.ac.kr/~kclee/lects/contents.php

의 강좌에서 10여편을 마구잡이 퍼다 옮긴 사건이 생겨서 그 사이트에 올린 글입니다.

 

 

 

얼마전 미국에서 아직도 교수생활을 하고 있는 나와 같은 연배의 K교수와 함께 저녁을 한 일 있다.(미국에는정년퇴직이 없다) 은퇴후 어떻게 지내는가라는 물음에 여행을 다니고 여가에는 인터넷에 강의를 쓰고 있다고 했더니 의아한 표정을 지었다. 인터넷 이야기를 하다가 결국 K교수의 본심이 나왔다. 한 마디로 "Internet is trash" 라는 것이었다. 내가 살아 있는 백과 사전이요. 고급정보도 많이 있다고 인터넷 자랑을 하였는데 나온 말이기에 나는 당혹했었다.

사실 나는 인터넷의 예찬자이다. 인테넷에는 무한한 가능성이 있다. "A few mouse clicks away" 라든가 "Interactive engagement(양방향성)"과 같은 표어는 새로운 교육 매체로서 가능성을 말해 주고 있다.

그런데 학계의 일각에서는 인터넷에 우려를 표명하고 있다. 그것은 너무나 당연한 것이었다. 그것은 누구도 심사하거나 등급을 매기지 않고 모든 컨텐츠가 평등하게 존재하기 때문에 왼만한 눈을 가지지 않고는 정보의 옥석을 가릴 수 없고 대부분의 경우 옥보다는 돌이 많이 눈에 띄게 되기 때문이다. 그러니까 많은 경험과 바탕지식 없이 인터넷을 항해하면서 정보를 얻는다는 것은 위험하기 짝이 없는 일이다. K교수는 그것을 경계한 것이 었다.

이번주 타임지에는 "It's a Wiki, Wiki World" 라는 기사가 났다. Wikipedia 를 빗댄 것이지만 "Wiki, Wiki"에 푸른 색을 써서 표현한 것은 "사악한 세상"(Wicked World) 이라는 펀(pun)으로 쓴듯하다. 대영백과사전 (Encyclopaedia Britanica)의 편집자는 위키피디아는 공중변소의 변좌에 비교한 일이 있다. 누가 마지막에 사용했는지 모르기 때문에 꺼림직하다는 것이다. 학계에서도 일반적으로 이 백과사전을 신뢰하지 않는 분위기이다. 심지어 한때 위키피디아 편집을 맡았던 현재 오하이오 주립대 강사인 래리 생거씨도 학생들의 과제물에 위키피디아를 인용하는 것을 금지하고 있다한다. 왜냐하면 학생들 자신이 위키피디아 내용을 뜯어 고칠 수 있기 때문이라 한다.

인터넷이 왜 사악한 세상인가? 그것은 우리 인터넷을 보면 금방 알 수 있다. 우리나라 인터넷의 "사악성"은 미국이나 세계 평균보다 더 심하다. 우리나라의 인터넷의 사악성은 이 문화가 아이들에서 젊은 사람들에서 시작된 것에 연유하지 않나 생각된다. 아직 도덕적으로 성숙하지 못하고 오프라인 세계에서 통용되는 최소한의 관례에 조차 익숙하지 못한 그리고 더 많이 배우고 경험을 가진 어른들의 감독에서 벗어나 자기들의 편리한것 만 골라 익명과 평등이라는 자유를 누리다 보니 이른바 "윤리"라는 틀이 생겨 날 수 가 없었던 같다.

그리고 더 심각한 것은 우리나라 네티즌들은 저작권에 대한 존중이 너무나 희박하다. 거의 백치에 가깝다고 생각된다. 저작권이란 양질의 저작품, 인테넷상의 컨텐츠를 생산하도록 생산자에게 인센티브를 주는 것이 궁극적 목적이다. 지난 2월에 문공부가 공표한 "네티즌이 알아야 할 저작권 상식"에 보면 저작물이란 저작자의 인격의 일부로 보는 견해도 있다고 되어 있다. 그 뜻을 이해하는 사람이 얼마나 될가?

나처럼 과학적 기술적인 내용을 쓰는 강좌에도 내 인생관 학문관이 스며 있다. 내가 강좌를 쓰면서 줄과 줄 사이에 보이지 않는 내 생각과 의도가 들어 있다. 어떤 사람은 이것들을 읽고 어떤사람은 이것을 읽지 못한다. 그러기 때문에 내 강좌는 내 인격의 일부가 되는 것이다. 내가 강좌를 통해서 전달하고져 하는 것은 여러가지가 있다. 새로운 교육관을 전파하고 , interactive engagement의 파워를 시범하고, 내가 주관해서 만든 한글용어를 보급한다는 ...등 다양한 내 인격속에 포함된 의도가 스며 있다.

그런데 최근에 내가 저작권 침해 사이트이기에 가담하지 말라고 구체적으로 지적한 한 포탈 사이트의 카페에 내 강좌 10여편을 내 허락도 없이 옮겨 싣는 불법행위를 저지르는 사건이 생겼다. 그것도 내 강좌에 들어 와 열심히 읽고 덧글을 붙이고 하던 사람이었기에 경악을 금할 수 없었다. 자신의 아이디로 게시한 이 "강좌"명도 마치 새로운 강좌인듯 "플래시로 배우는 물리" 라고 거꾸로 붙였다.

더욱 경악할 일은 내가 이를 뒤늦게 발견하고 경고하자 불법이라니까 지우기는 지우되 자신의 잘못은 없다는 항변이다. 내 이름도 내 사진도 붙였으니 잘못이 아니란다. 내 사진을 허가 없이 옮겼으니 저작권침해에 초상권까지 침해 한 셈인데도 잘못이 없다니 어이가 없다.

그리고 더욱 나를 화나게 한 것은 내가 강의한 Affine 변환을 옮기면서 내가 사용한 "층밀리기" 라는 용어에 대하여 이러쿵 저러쿵 다른 용어도 있다고 "친절하게" 덧글을 부친것이었다. "층밀리기"는 한국물리학회의 공식용어로 어떤 다른 용어도 함께 쓰지 못하게 유일한 용어로 지정한 것이다. 그러니 이 사람은 내 인격체에 상채기를 냈을 뿐 아니라 한국물리학회의 공식적인 입장까지 거역하는 행동을 한 셈이 된다. 쥐뿔도 므르면서 물리를 가르친다고 "강좌"를 한답시고 하니 참으로 기가 막히는 일이다. 그리고도 반성은 커녕 왜 쓰레기냐고 항변을 하고 있다. 제대로 알지 못하는 사람이 잘 못을 저지르면 그 잘못이 무엇인지 조차도 모른다.

이런 사람들이 이런 의식수준을 가지고 인터넷공간을 누비고 다니면 나 같은 사람은 강좌를 더 쓰고 싶은 의욕을 상실한다. 나는 은퇴후 내가 할 수 있는 마지막 봉사, 나 이외에 어떤 다른 사람도 대신할 수 없는 일을 해서 인터넷상에 좋은 고급정보를 남겨 두고 갈 생각이었지만 이번 사건을 겪고는 정말 더 이상 강좌를 쓰고 싶은 생각이 가시고 말았다. 결국 인터넷은 옥은 사라지고 쓰레기만 남고 말 것이다.

나야 이제 나이가 70 대에 인터넷에 강좌를 쓴다 해도 쓸 기간이 몇년밖에 더 되지 않을 것이고 또 이 세상에 살 햇수도 별로 많이 남아 있지 않다. 그러나 여러분은 앞날이 창창한 사람들이다. 인터넷을 잘 가꾸고 키워야 내가 내다 본 이 무한한 가능성을 제대로 꽃 피울 수 있다. 지금은 인터넷에서 정보를 얻는 사람이라 할 지라도 언젠가는 인테넷에 정보를 제공하고 베푸는 위치에 올 수도 있다. 그럴때 여러분의 저작물을 왜곡하고 훼손하는 사람들을 만난다면 어떻겠는가를 생각해야 한다. 그것을 생각하고 지금 다른 사람의 인격체의 일부인 저작물과 저작권을 존중하는 풍습을 길러야 할 것이다. 모든 것은 돌고 도는 것이다. 윤리라는 것은 자신을 위하는 것이지 결코 남을 위하는 것이 아니다. 
 

 

'IT > JOGL(Java OpenGL)' 카테고리의 다른 글

왜 도둑질이 나쁜가?  (4) 2005.12.27
인터넷은 쓰레기인가?  (2) 2005.12.25
Jogl에서 KeyEvent 쓰는 법  (0) 2005.12.06
Jogl에서 MouseEvent 쓰는 법  (0) 2005.12.05
Jogl을 JApplet 에 담는 법  (0) 2005.12.04
Jogl을 Applet에 담는 법  (0) 2005.12.03
Swing 을 사용하는 Jogl 코드의 해설  (0) 2005.12.02
Posted by 샛솔

댓글을 달아 주세요

  1. 노경배  댓글주소 수정/삭제 댓글쓰기 2016.03.26 14:09

    당시에 교수님이 느꼈을 실망과 안타까움이 느껴집니다.
    포스팅하신글의 주제와는 거리가있지만,
    어쭙잖은 지식으로 아는체 하며.. 학원강의를 하는 저, 스스로가 부끄러움을 느꼈습니다.

Jogl에서 KeyEvent 쓰는 법

Jogl에 KeyEvent를 쓰는 법은 바로 앞 강좌 MouseEvent 를 쓰는 것과 별반 다를 것이 없다.  여기서는 Numeric Pad 의 방향 키를 누르면 그 방향으로 작은 네모꼴이 움직이는 Applet을 만들어 본다. 사실 모든 코드가 앞강좌와 거의 같으므로 설명이 별로 필요 없다.  21째 줄 canvas.addKeyListener(listener);   만 바뀌었다.     코드만 자세히 검토해 보기 바란다.

  1. import java.applet.Applet;
  2. import java.awt.*;
  3. import net.java.games.jogl.*;
  4. @SuppressWarnings("serial")
  5. public class JoglApplet extends Applet {
  6.         static int WIDTH = 500,  HEIGHT = 300 ;
  7.         GLCanvas canvas;
  8.         JoglDisplay listener ;
  9.                 
  10.           public void init() {
  11. //          canvas.requestFocusInWindow();
  12.             GLCapabilities glc = new GLCapabilities();
  13.             canvas = GLDrawableFactory.getFactory().createGLCanvas(glc);
  14.             add(canvas, BorderLayout.CENTER);
  15.             listener = new JoglDisplay();
  16.                 canvas.addGLEventListener(listener);
  17.                 canvas.addKeyListener(listener);        
  18.                 listener.glc = canvas;
  19.                 setSize(WIDTH, HEIGHT);
  20.                 canvas.setSize(WIDTH, HEIGHT);
  21.                 }
  22.         }

 이 부분은 앞강좌의 Applet 클래스 정의와 같다.

아래에 GLEventListener의 자식클래스 JoglDisplay를 정의한다. 이때  MouseListener 대신 KeyListener를 임프리먼트한다. (6째줄)

47~59째 줄까지가 이 KeyListener 의 메쏘드들을 정의한 것이다.  

  1. import java.awt.event.*;
  2. import net.java.games.jogl.*;
  3. public class JoglDisplay
  4. implements GLEventListener, KeyListener
  5. {
  6. int xPosition = 25;
  7. int yPosition = 25;
  8. GLCanvas glc;
  9. public void init(GLDrawable drawable) {
  10. GL gl = drawable.getGL();
  11. GLU glu = drawable.getGLU();
  12. gl.glClearColor(0.0f, 0.0f,0.0f, 0.0f);
  13. gl.glViewport(0, 0, 50, 50);
  14. gl.glMatrixMode(GL.GL_PROJECTION);
  15. gl.glLoadIdentity();
  16. glu.gluOrtho2D(0.0, 50.0, 0.0, 50.0);
  17. }
  18. public void display(GLDrawable drawable) {
  19. GL gl = drawable.getGL();
  20. gl.glClear(GL.GL_COLOR_BUFFER_BIT);
  21. gl.glPointSize(6.0f);
  22. gl.glColor3f(1, 1, 1);
  23. gl.glBegin(GL.GL_POINTS);
  24. gl.glVertex2i(xPosition, yPosition);
  25. gl.glEnd();
  26. }
  27. public void reshape(
  28. GLDrawable drawable,
  29. int x,
  30. int y,
  31. int width,
  32. int height
  33. ) {}
  34. public void displayChanged(
  35. GLDrawable drawable,
  36. boolean modeChanged,
  37. boolean deviceChanged
  38. ) {}
  39. public void keyPressed(KeyEvent e) {}
  40. public void keyReleased(KeyEvent e) {}
  41. public void keyTyped(KeyEvent e) {
  42. if (e.getKeyChar() == KeyEvent.VK_8 || e.getKeyChar() == KeyEvent.VK_KP_UP )
  43. yPosition += 1;
  44. else if (e.getKeyChar() == KeyEvent.VK_2 || e.getKeyChar() == KeyEvent.VK_KP_DOWN)
  45. yPosition -= 1;
  46. else if (e.getKeyChar() == KeyEvent.VK_4 || e.getKeyChar() == KeyEvent.VK_KP_LEFT )
  47. xPosition -= 1;
  48. else if (e.getKeyChar() == KeyEvent.VK_6 || e.getKeyChar() == KeyEvent.VK_KP_RIGHT )
  49. xPosition += 1;
  50. glc.repaint();
  51. }
  52. }

 이 코드를 컴파일하고 실행시켜 보기 바란다.  여기를 열면 그 결과를 볼 수 있다.  먼저 검은 화면부분에 마우스를 갖다 놓고한번 클릭하여 Focus를 얻은 다음뉴메릭 패드에서 화살표를 눌러 네모가 화살표방향으로 움직이는 것을 확인하기 바란다.NumLock을 한 상태에서 화살표를 클릭해야 한다.위 코드에는  Numeric pad를 해제한 경우에도 작동하도록 프로그램을 작성했지만   NumLock을 해제하면 작동하지 않는다.  

'IT > JOGL(Java OpenGL)' 카테고리의 다른 글

왜 도둑질이 나쁜가?  (4) 2005.12.27
인터넷은 쓰레기인가?  (2) 2005.12.25
Jogl에서 KeyEvent 쓰는 법  (0) 2005.12.06
Jogl에서 MouseEvent 쓰는 법  (0) 2005.12.05
Jogl을 JApplet 에 담는 법  (0) 2005.12.04
Jogl을 Applet에 담는 법  (0) 2005.12.03
Swing 을 사용하는 Jogl 코드의 해설  (0) 2005.12.02
Posted by 샛솔

댓글을 달아 주세요