주간 베스트 월간 베스트 3개월 베스트 베스트 게시물
꽃배달 한국, 중국 전지역배송

06 . class… 난쟁이 1소대

SOLIDH | 2009.05.28 02:52:14 댓글: 0 조회: 2438 추천: 0
분류웹 프로그래밍 https://life.moyiza.kr/itstudy/1759719

우리 로서의 나

드래곤 라자라는 소설에 보면 이런 말이 나옵니다.

   

"나는 단수가 아니다."

   

나(I) 라는 단어는 하나의 존재가 아니다… 라는 인간의 다면성을 포함한 말이지요. 지난 시간에 이야기 했던 function 도 하나의 기능적 존재이고, class 도 하나의 기능적 존재이지만, 구지 차이점을 쉽게 이야기 하자면, class 는 우리로서의 나를 표현한다고 설명할 수 있을것 같네요.

   

난쟁이 1소대

지 난 시간 function 을 난쟁이 라고 의인화 시켰다면, class 는 난쟁이 1소대 라고 의인화 시킬수 있을것 같습니다. class 는 일단 기본적으로 var, function 들로 구성이 되거든요. (namespace 등도 섞일수 있지만, 그건 좀 나중에 알아봐도 괜찮으니…)

   

class 는 fla 안에 만들수 없어요

class 는 fla 안에 만들수 없습니다. class 는 as 파일 한 장으로 구성이 되게 되죠. 일단 만들어 볼까요?


ActionScript 파일을 새로 만듭니다.

그리고, 바탕화면에 Iam.as 라고 저장합니다. 

그 리고, 이렇게 일단 적어놓습니다. class 역시 html 과 비슷하게 규칙적 형태가 존재합니다. (프로그래밍엔 정답만이 있다는 이야기 기억하시나요? 그렇기에 규칙은 절대적 입니다.) 위의 형태가 일단 가장 기초적인 형태이죠. 기초적인 형태를 만들었으니 사람으로서 간단한 형태를 만들어볼까요? 

이 름과 나이에 대한 설정을 해보았습니다. getter function 은 지난 시간에 이야기 했으니깐 어떤 것인지 아시겠죠? class 안에 입력된 변수들 중에서 "읽기" 만 가능하도록 설정할때 이렇게 사용할 수 있습니다. (setter 만을 만든다면 쓰기만 되겠죠) 그리고, 나이를 물어보는 함수를 하나 만들었습니다.

   

이제 만들어진 class 를 사용해 볼까요?

Iam.as 파일을 만든 경로에 fla 파일을 만듭니다.

요런 식으로 사용할 수 있습니다.

   

class 는 "하나의 존재" 를 규정하게 되지만, "존재" 라는 단어는 어느 하나에 얽매이지 않죠… 아날로그는 "자연의 법칙을 활용하는 물건" 이지만, 우리가 만드는 flash 는 "규칙부터 새롭게 만들어 나가기 때문에 어렵지만, 자유로운" 디지털 입니다. 그렇기에 class 라는 "존재" 는 "현실상에서 우리가 생각하는 존재" 보다는 훨씬 자유롭게 만들어질 수 있습니다.

   

class 와 F1 의 관계

지 난 시간에 잠깐 이야기 했던 "어떤 프로그래밍을 배운다는 것" 을 다시 이야기 하자면, 어떤 프로그래밍을 배운다는 것은 "그 프로그래밍의 언어적 특성" 과 함께, "그 프로그래밍의 내장 기능들의 숙지" 로 나뉘어 집니다. 그리고, flash action script 3.0 의 내장 api 는 class 를 베이스로 해서 내장 기능들이 만들어져 있습니다.

   

쉽게 이야기 해서… class 를 모르면 F1 을 알아쳐먹을 수 없다는 이야기가 되죠. 일단, 그것을 쉽게 이해하기 위해서 우리가 만든 Iam class 를 F1 처럼 문서화 시켜보았습니다.

어 서 많이 구경해 본 모양새죠? F1 안에 있는 레퍼런스는 이런 식으로 class 를 자동으로 문서화 시킵니다. 즉… 여기서 여러분이 숙지할 수 있는 것은 class 들이라는 거겠죠. 물론 F1 을 눌러서 주구장창 본 다음에 class 같은 프로그래밍적 지식을 이해하는 것도 가능하긴 하겠지만… class 를 이해한 다음에 문서를 보는게 훨씬 이해가 빠를 것입니다.

   

"경험 보다는 원리"

   

프로그래밍을 공부하는데 있어서 중요한 것이죠.

   

F1 의 문서는 낯섭니다. 그래서 F1 을 눌러서 봐라… 라는 고수들의 말에 반발을 하는 것이겠죠. 저도 낯설었었으니… 잘 못하는 여러분도 지금은 낯설겁니다. 하지만, 직접 class 를 기초적인 형태로나마 만들어 본 다음에, 직접 그 class 를 사용해보면 F1 의 내용들을 좀 더 쉽게 이해할 수 있습니다. 그렇기 때문에 class 를 이해하지 못하면, "내장기능에 대한 공부" 는 진행 할 수 없습니다. class 까지가 flash actionscript 를 공부하는데까지 있어서 "기초 중에 기초" 입니다.

   

좀 더 class 에 대한 것을 이해해볼까요?

   

상속… Boolean 적 분류법과 Class 적 분류법

컴 퓨터는 하늘에서 떨어진게 아니죠… 역사적으로 컴퓨터가 등장한 것은 100 년도 되지 않습니다. 그렇다고 해서 100 년도 안된 과거 어느 시점에 갑자기 "하늘과 땅 사이에서 엄친아가 나타나서 컴퓨터를 만들었다." 뭐 이런 식으로 컴퓨터가 만들어진 것은 아닙니다. 컴퓨터 안에 존재하는 모든것들은 인문학, 예술, 논리, 의학과 같은 비 IT 분야의 학문에서 이식된 것들 이고, 컴퓨터를 만든 주체 역시 IT 가 아닌 다른 분야의 학자들입니다. (시간이 흐르면서 독립성향을 많이 가지게 되었긴 하지만… 원론적인 레벨로 올라가면 학문적으로 완전히 독립적인 것은 아니라는 이야기죠.)

   

컴 퓨터를 생각할때 의인화 해서 생각하라는 이유 중 하나는… "컴퓨터는 인간을 닮게 만들어졌다"는데 이유가 있습니다. 거기에 한가지 덧붙이자면… 컴퓨터의 방식을 배워라. 라고 이야기 하고 싶네요. 컴퓨터는 인간의 사고방식에 의해서 만들어졌습니다. 그것도 매우 뛰어난 석학들에 의해서 말이죠… 컴퓨터의 방식이란 곧 인간의 가장 뛰어난 사고방식과 맞닿아 있습니다. 뭐 여기까지는 잡스러운 이야기고… 상속에 대해서 계속 이야기해 보죠.

   

class 적 분류법은 이미 생물과학에서 완성되어 컴퓨터 프로그래밍으로 이식된 논리입니다. 구시대적 생물과학에서 생물학적 특성을 분류하는 방식으로는 아래와 같은 논리가 사용되어졌습니다. 물론… 이런 부분에 대한 사실적인 비하인드 스토리는 없지만, 학문적 공통점을 생각해보면 충분히 추리할 수 있는 부분이죠. 

과 거의 생물학에선 박쥐를 정의하는데 Boolean 적 방식… A 이면서 B 이고, C 는 아닌… 뭐 이런식을 사용했었습니다. 하지만, 이런 분류는 모든 동물들을 분류하는데 있어서 그 엄청난 "조건식" 의 홍수를 동반하게 됩니다. 그러다가 생물을 분류하는데 있어서 꽤 우수한 방식이 나타나게 되죠. Class 적 분류법입니다. 

이런식으로 박쥐라는 존재를 규정하기 이전에 각기 생물들의 공통점들을 모아서 "공통화, 원시화" 시킴으로서 생물을 분류하기 시작합니다. "진화론" 이라고 하죠…

   

뭐 일단… Class 의 상속 이란 것이 "컴퓨터만의 특수성" 이 아니라는 것을 이해하기 위해서 이런 "헐헐헐… 옛날에 말이지…" 라는 소리를 해보았습니다. 인간은 어려운 것 보다는 새로운 것에 더 공포를 느끼죠. 여러분이 생각하는 컴퓨터 프로그래밍을 배운다는 것에 대한 심리적 부담감은 "인간" 인데 "컴퓨터" 를 이해하려 한다는 낯설음 때문인 경우가 많습니다. 공포는 육체와 정신을 무디게 하죠. 하지만, 컴퓨터는 우리가 배운 많은 학문들에 의해 만들어진 존재이므로, 절대 낯선 존재라고 할 수 없습니다. (고등학교 수준의 수학을 프로그래밍 적으로 구현하기만 해도 "잘한다~" 소리를 들을 수 있을 정도로 결코 동떨어진 학문이 아닙니다.)

   

뭐 일단 잡소리는 많이 했으니깐, 상속에 대해서 알아보도록 하죠. (언어학이나 심리학, 수학 분야의 다른 이야기들도 있지만, 나중에 기회가 되면 적어보도록 하겠습니다.) 

Iam 이라는 class 를 확장해서, IamSSen 이라는 class 를 만들어보도록 하겠습니다. 제 닉네임 SSen 이죠… 안녕하세요~ 우리는 SSen 입니다! 뭐… 이런 겁니다. (무슨 소리야?) 하여튼… 제가 그림을 그리기도 하고, 액션스크립트를 짜기도 하고, 연애를 하기도 하니깐, 그런 특성들에 기준해서 Class 를 만들어보도록 하겠습니다.

뭐 이렇게 간단하게 짜보죠… 이걸 다시 문서화 해보면…

이렇게 문서가 만들어지게 됩니다.

이 부분의 Inheritance 는 이 IamSSen 이라는 class 는 Iam 이라는 Class 에서 상속받아서 만들어졌다고 이야기 해줍니다.

그리고, 상속 받아진 특성들은 앞에 화살표가 붙고, Defined by 에 어느 원시 class 에서 상속 받았는지를 표시해주죠. 근데 아무래도 love 는 인간이면 누구나 하는거죠? 그렇기에 원시화 시켜보도록 하겠습니다.

공 통적 원시 특성은 이런식으로 원시 클래스로 옮깁니다. 그래도… 똑같이 작동을 하게 됩니다. 뭐 여기까지를 이야기 한다면, F1 을 누른다고 해도 당황하거나 할 일은 없겠네요. 그럼 실제 action script document 를 열어서 볼까요? 

우리가 밥먹듯이 쓰는 MovieClip 을 보면 이것이 어느 원시 특성들을 받아서 만들어졌는지를 알수 있습니다.

그 리고, 상속 받아진 것들이 파악이 되구요. addChild 라는 함수는 DisplayObjectContainer 라는 원시 class 에 의해서 정의된… 그러니깐, 박쥐로 보자면 "젖을 먹이는 포유류의 특성" 과 같은 원시 특성 이네요... 

자… 그러면 여기서 도출 될 수 있는 많은 것들은 우리가 문서에서 접근할 수 있는 이 수많은 package 와 class 들은 각자 하나, 하나가 다 "하나의 존재" 들 이라는 것이지요. 여기서 디자이너가 사용할만한 존재들은 flash.display 나 flash.geom, flash.filters, flash.ui 쪽에 해당됩니다. 그쪽에 있는 것들이 시각표현과 UI 의 구현에 관련된 class 들이 있거든요. 이쪽 부분만을 생각한다면 공부할 내용이 확 줄어들겠죠… 그렇기에 어렵지 않습니다.

   

뭐 구지 이야기 하자면… 저도 fl.video 나 fl.lang, flash.profiler, flash.printing 같은 것들은 보지 않습니다. flash.media 같은 것도 얼마전에 음악 삽입 작업이 하나 있어서 잠깐 보고 사용했을뿐이지… 실제 작업하지 않는 것들은 보지를 않죠. 시각작업을 하는 디자이너 입장에서야 제가 보는 내용들의 반에 반도 볼 필요가 없을겁니다.

   

디자이너가 액션스크립트 공부를 하는것은 어렵지 않다는 이유입니다.

   

여 기까지 class 를 안다면 일단 F1 을 열어서 flash action script 가 기본적으로 제공하는 "내장 기능들의 생태계" 를 파악하는데 있어서 기초적인 지식을 가지고 있다고 할 수 있겠네요. 다음 시간엔 class 의 기능들에 대해서 좀 더 자세하게 알아보도록 하겠습니다.



출처: ssen님레시피

http://ssen.name/zb/2127

추천 (0) 선물 (0명)
첨부파일 다운로드 ( 19 )
download1.png | 25.8KB / 0 Download
download2.png | 111.7KB / 0 Download
download3.png | 6.4KB / 0 Download
download4.png | 127.0KB / 0 Download
download5.png | 112.2KB / 0 Download
download6.png | 9.7KB / 0 Download
download7.png | 102.4KB / 0 Download
download8.png | 3.9KB / 0 Download
download9.png | 6.3KB / 0 Download
download10.png | 7.2KB / 0 Download
download11.png | 19.6KB / 0 Download
download12.png | 104.8KB / 0 Download
download13.png | 4.1KB / 0 Download
download14.png | 71.0KB / 0 Download
download15.png | 71.0KB / 0 Download
download16.png | 29.2KB / 0 Download
download17.png | 28.6KB / 0 Download
download18.png | 170.8KB / 0 Download
download19.png | 21.6KB / 0 Download
IP: ♡.48.♡.21
3,006 개의 글이 있습니다.
제목 글쓴이 날짜 조회
관리자
2003-09-20
12020
관리자
2003-09-20
11567
관리자
2003-09-20
20724
지구인
2010-08-27
19500
지구인
2009-09-07
13815
SOLIDH
2010-01-29
15784
엔죠라이프
2004-10-07
16864
SOLIDH
2009-05-28
3085
SOLIDH
2009-05-28
2411
SOLIDH
2009-05-28
2510
SOLIDH
2009-05-28
2438
SOLIDH
2009-05-28
2410
SOLIDH
2009-05-28
2780
SOLIDH
2009-05-28
2621
SOLIDH
2009-05-27
2326
SOLIDH
2009-05-27
2756
SOLIDH
2009-05-27
2543
SOLIDH
2009-05-26
1615
SOLIDH
2009-05-26
3518
SOLIDH
2009-05-26
2691
SOLIDH
2009-05-26
3129
SOLIDH
2009-05-26
2452
SOLIDH
2009-05-26
3184
이보시오
2009-05-25
4580
SOLIDH
2009-05-24
3398
SOLIDH
2009-05-24
2160
SOLIDH
2009-05-24
1723
SOLIDH
2009-05-24
3933
모이자 모바일