주간 베스트 월간 베스트 3개월 베스트 베스트 게시물
연길시 신화서점 조선말 도서

11 . Array 와 for… 뭉탱이와 반복문

SOLIDH | 2009.05.31 16:35:57 댓글: 0 조회: 2853 추천: 0
분류웹 프로그래밍 https://life.moyiza.kr/itstudy/1759819

시작하면서 쓸데없는 잡소리

   

고비라는 것이 있습니다.

   

어떤것을 공부할때 한창 쭉쭉~ 뻗어나가다가 갑자기 어느 시점에서 확 막혀서 더이상 나아갈 수 없게 되는 지점을 이야기 하는거죠.

   

아마도 액션스크립트를 진짜 처음 시작하는 분들이라면 10회를 넘은 이 시점에서 고비가 왔을겁니다.

발바닥이 닿는 얕은 바다에서 일부러 몸을 띄어서 헤엄치던 기분에서 갑자기 발이 닿지 않는 위치까지 와버린 기분이랄까요?

   

고비란 아마 그런것일 겁니다.

   

그래도, 만일 여기까지 따라오셨다면 큰 무언가를 해냈다고 스스로 자부하셔도 괜찮지 않을까 싶습니다.

   

일단 F9 를 눌러서 액션스크립트를 입력해보셨다는게 첫번째 고비를 넘은것이고,

stop() 과 gotoAndPlay() 만 쳐대던 습관에서 벗어나서 onEnterFrame() 같은것을 코딩하셨으니깐요...

   

저 역시 플래시라는것을 처음 사용했던 군대시절 00년 부터 제대후에 html 코딩으로 문서만들기나

간단한 웹디자인을 하면서 겨우 입에 풀칠을 하던 02년을 거쳐, 04년 초까지 그 오랜 세월을 플래시를 만지면서도

stop() 과 gotoAndPlay() 말고는 코딩을 할 줄 몰랐으니깐요...

   

그림쟁이가 왜 코딩을 해야하냐? 라는 일말의 자존심도 이유였지만, 그 이상 무언가를 배우기 두렵다는 고비가 저에게도 있었습니다.

어쩌다보니 상황이 발생해서 그 고비를 넘었고... 그 고비를 넘은 덕분에 지금까지 2년 반정도의 시간을 쭉쭉 발전해온거죠...

   

그런 저에게도 새로운 고비가 닥쳐 왔습니다. 그동안 그냥 서브스킬... 취미와 재미 정도로만 해오던 액션스크립트를

직업적으로 진지하게 생각해봐야 하는 시점에 도달한거죠... 이 고비는 약 4년에 걸쳐 stop() 과 gotoAndPlay() 만 코딩하던 때와

마찬가지로 뭔가 쉽사리 깨기 어려운 마음의 부담으로 다가오네요. 예... 고비 앞에 누구나가 그렇듯이 몸이 마비된듯

쉽사리 움직이기 힘든 부담감이 느껴집니다.

   

수업 난이도가 좀 높아지고 있어서 부담이 있는 분들이나 새로운 고비앞에 고전하고 있는 저나 힘을 냅시다.

   

고비를 넘으면 새로운 세계가 펼쳐진다는것을 우리는 삶의 경험을 통해 이미 알고 있으니깐요. 넘을만한 가치가 있지 않을까요?

   

-----------------------------------------------------------------------------------------------------

   

이 수업은 두번째 수업인 var 에서 이어지게 됩니다.

   

http://cafe.naver.com/flashactionscript/6094

   

이 수업에서 다룰 배열 이라는 것은 두번째 수업에서 다뤘던 var (변수) 의 확장된 개념으로 받아들이셔도 괜찮습니다.

   

기존의 일반적인 변수가

   

var num = 13;

   

과 같이 하나의 정보를 저장한다면, 배열은

   

var nums = [13,25,34];

   

와 같이 여러개의 정보를 저장합니다.

   

   

var str = 'abc';

   

와 같이 하나의 문자를 저장한다면, 배열은

   

var strs = ['abc,'ttf','ssen'];

   

과 같이 여러개의 문자들을 저장할 수 있죠.

   

   

물론...

   

var arr = [14,'abc'];

   

와 같이 숫자와 문자를 동시에 저장할 수도 있습니다.

   

   

배열... array 란 이렇게 여러개의 정보를 하나의 변수에 저장하는 기능을 합니다.

   

-----------------------------------------------------------------------------------------------------

   

var 가 그릇이라면, array 는 식판 입니다.

   

var... 변수에 대해 설명하면서 아래와 같이 접시를 예로 들었었죠?

array... 는 식판으로 생각하면 좀 쉽습니다.

여러개의 정보를 담는 이유는 뭘까요?

   

뭐 이건 사용하는 사람 나름대로 다 다른 이유가 있지 않을까 싶습니다.

일단 저같은 경우라면야...

   

1 . 연관성을 가진 정보를 만들수 있기 때문

   

만일 ssen 이란 저 자신을 표현한다고 했을때

   

ssen_나이 = 17;

ssen_성별 = '남자';

ssen_흡연량 = 2;

   

보다는

   

ssen[나이] = 17;

ssen[성별] = '남자';

ssen[흡연량] = 2;

   

이런게 좀 더 연관성을 가진 정보를 만들기 쉬워서 입니다.

   

   

2 . roop 반복문을 돌리기 위해서

   

배열을 사용하는 상당히 중요한 이유중에서 하나인데요.

바로 반복문을 돌리기 위해서입니다.

roop 의 대명사라 할 수 있는 for 문은 아랫쪽에서 다루도록 하겠습니다.

   

-----------------------------------------------------------------------------------------------------

   

array.length 갯수 알아내기

   

roop... 배열을 사용해서 반복문을 돌리기 위해서는 우선 array 의 length 속성에 대해서 이해를 해야 합니다.

   

먼저 그림부터 보죠.

예... 어떤 배열을 만들었을때 그 배열안에 몇개의 정보가 담겨있는지 알아내는 방법입니다.

   

그럼 다음으로 for 문에 대해서 알아볼까요?

   

-----------------------------------------------------------------------------------------------------

   

반복문 for

   

반복문의 기초적인 형태는 아래와 같습니다.

for 문을 이해할때 가장 중요한 부분은 (i=1 ; i<10 ; i++) 이 부분입니다.

이 부분을 해석해 드리자면

   

윗몸일으키기 운동을 예로 들어보죠.

우리가 총 30번의 윗몸일으키기를 하기 위해서는 무엇이 필요할까요?

   

1 . 숫자를 1부터 센다.

2 . 목표로 하는 총 횟수는 30 이다.

3 . 한번 할때마다 1씩 숫자를 올린다.

   

이렇게 표현할 수 있겠죠?

   

그렇다면 그 윗몸일으키기를 가지고 (i=1 ; i<10 ; i++) 를 해석해 볼까요?

   

0 . 일단 ;(세미콜론) 으로 나뉘어진 구역이 세군데 입니다.

1 . 첫번째 i 는 우리가 셀 숫자입니다.

2 . 두번째 i<10 을 해석하자면, "i 가 10 보다 작을때" 가 되겠죠? 이 부분이 초보들에게는 상당히 헷갈리는 부분일텐데요.

     for 문이 작동할 조건이 됩니다. for 문은 이 두번째 구역의 조건이 "맞을때" 작동이 계속되게 됩니다.

3 . 한번 실행되었을때 i 라는 숫자에 변화를 주어야겠죠? 세번째 구역은 i 를 하나씩 늘려준다라는 표현이 됩니다.

   

   

부가설명을 해볼까요?

   

1 . i++ 이라는 표현은 i = i+1 과 같습니다. 거꾸로 얘기하면 i-- 도 알수 있겠죠?

2 . 풀어서 이야기 하자면, 첫번째 구역은 "1부터 센다." 라는 말이 되고,

    두번째 구역은 "세고 있는 숫자가 10보다 작으면 계속한다" 라는 말이,

    두번째 구역의 말을 뒤짚어서 얘기하면 "세고 있는 숫자가 10이 되면 그만둔다" 가 되고,

    세번째 구역은 "한번 돌고나면 세고있는 숫자를 1 올려준다." 가 됩니다.

   

for 문에 대해서 이해가 되시나요?

   

-----------------------------------------------------------------------------------------------------

   

그렇다면 배열을 반복시켜보죠.

   

두번째 구역의 반복조건에 array.length 를 결합해서 사용하면 아래와 같겠죠?

어라... 근데... 뭔가 이상합니다. 첫번째 13 이란 숫자가 나오질 않네요.

최초의 i 를 0 으로 바꿔볼까요?

예 이제야 제대로 나오네요.

   

여기서 보셨다시피 array 의 카운트는 0부터 시작됩니다. (매우 중요합니다... 이거 잊어버리면 바보될때 많습니다)

풀어서 설명을 해드리자면

   

var a = [13,14,15,18]; 은

   

a[0] = 13;

a[1] = 14;

a[2] = 15;

a[3] = 18;

   

과 같습니다.

   

a[x] = y 라고 했을때 x 를 보통 key 나 키 라고 부르는 편이고,

y 를 보통 value 나 값 이라고 부릅니다. array 에 관련된 레퍼런스를 읽을때

참고하세요.

   

-----------------------------------------------------------------------------------------------------

   

array 의 다른 표현방식

   

위에서 배운 key 를 꼭 0,1,2,3... 과 같은 순서로 진행할 필요는 없습니다.

이런식으로 써줄수도 있는데...

어라... length 가 0 으로 나오네요...

   

...

   

...

   

...

   

...

   

...

   

이 뭐 병.신도 아니고... ㅡ ㅡ;;; 뭐지 이거...

   

당황스럽습니다...;;;

   

어허... 이건 좀 생각 좀 해봐야겠네요...;;;

   

뭐지 이건... ㅡ ㅡ;;; 아 놔... 당황스럽네...;;;

   

-----------------------------------------------------------------------------------------------------

   

for... in...

   

for... in... 이란 for 문의 변형이 있는데요.

   

for... in... 문은 배열을 반복하기 위해서 만들어진 반복문 입니다.

   

저 위에 신나게 에러가 났던것도 for... in... 문을 사용하면 정상적으로 작동이 됩니다.

for... in... 문을 해석해 드리자면 일단 ;(세미콜론) 으로 구분된 구역이 없죠?

대신 앞쪽에 var key 라는 변수 선언과 중간에 in 이라는 단어가 들어가게 됩니다.

   

1 . var key 는 a[x] 라는 배열에서 x 를 가져옵니다.

2 . 즉 a['age'] 라는 배열속성의 trace(key) 는 "age" 라고 나오게 되죠.

    (아래 그림으로 보여드리는 것과 같습니다.) 

뭐 위에 a.length 가 왜 에러가 나는지는 참 난감하기 그지없지만...;;;

어쨌든 key 값을 스스로 지정해서 쓸때는 for 문이 아니라, 이 for... in... 문을

써야하겠네요.

   

----------------------------------------------------------------------------------------------------- 

오늘의 놀이과제

   

onEnterFrmae 도 반복합니다.

그리고, for 도 반복을 하죠...

   

어떤 차이점이 있을까요?

   

이것을 이해하는 것은 플래시의 애니메이션적인 특성과 프로그래밍적 특성을 이해하는데 큰 열쇠가 됩니다.

같은 반복문구를 가지고 두가지를 번갈아서 사용해보세요.

   

그리고, 어떤것을 onEnterFrame 으로 처리해야할지, 어떤것을 for 로 처리해야할지 구분지을수 있도록 합시다.

   

-----------------------------------------------------------------------------------------------------

   

할머니 시리즈는 이걸로 마무리를 짓도록 하겠습니다.

   

총 11회... 약 6개월 정도를 진행했던 할머니 시리즈는 이것으로 끝을 내도록 하겠습니다.

프로그래밍의 극적인 기초상식을 진행했기 때문에 여러모로 쉬운건 너무 쉽고, 어려운건 너무 어려웠지 않나 싶네요.

   

프로그래밍의 기초적인 지식을 안내했던 할머니 시리즈 이후의 수업은 이제 세가지로 나뉘어서 진행이 될텐데요.

   

클래스 디비기는 플래시가 기본적으로 제공하는 내장 클래스들...

즉, MovieClip, TextField, XML 등의 사용법을 알아보는 시간이 될테구요.

   

프로그래밍 디비기는 프로그래밍의 로직을 구성하는데 있어서 알아두면 좋을

여러가지 노하우와 알고리즘에 대해서 적을 생각입니다.

flash Action Script 이외에도 Action Script 와 보조를 맞출 php, javascript 등의 언어들과

할머니 시리즈에서 다루지 못한 switch, 변수형, watch, class, include 등 여러가지 프로그래밍을 하는데

필요한 내용들을 잡다하게 다룰것이구요.

   

리얼액션은 실전 이라는 말 그대로... 지금까지 배운 지식들을 바탕으로

게시판, 방명록, 아바타시스템, 게임 등을 만들어보는 가장 핵심적인 시간이 되겠네요.

   

-----------------------------------------------------------------------------------------------------

   

광고타임...;;;

   

ㅡ ㅡ;;; 광고타임 입니다.

   

http://ssen.name/portfolio

   

안데르센은 지금 먹고 살려고 아둥바둥 하는 중입니다.

혹시라도 밥을 주실분들이나 밥먹을곳을 소개시켜주실 분들이라면 언제든 msn & mail : i@ssen.name 으로 연락주세요~

   

라라라라라~~~

기쁨 주고~ 돈 받는~ 안~데~르~센~

쌉싸라비아 쌉쌉쌉

   

플래시게임 디자인이나 일러스트레이션의 원래 안데르센이 하는 아트웍 계열 쪽이나

아직 액션스크립터로는 포트폴리오도 제대로 없고, 실력도 딸리는 안데르센을 이해하고 받아들여줄...(;;;)

맘씨 좋고, 인내력 짱인 회사를 구하는 중이니 주변에 괜찮은 소식 있으면 소개시켜주세요~

   

 ; ㅡ ; / 


출처: ssen님레시피

http://ssen.name/zb/982

추천 (0) 선물 (0명)
첨부파일 다운로드 ( 10 )
1.png | 46.3KB / 0 Download
2.gif | 14.0KB / 0 Download
3.jpg | 139.9KB / 0 Download
4.jpg | 136.3KB / 0 Download
5.jpg | 136.9KB / 0 Download
6.jpg | 139.9KB / 0 Download
7.jpg | 137.0KB / 0 Download
8.jpg | 139.0KB / 0 Download
9.jpg | 140.7KB / 0 Download
10.jpg | 140.7KB / 0 Download
IP: ♡.221.♡.101
3,006 개의 글이 있습니다.
제목 글쓴이 날짜 조회
관리자
2003-09-20
12078
관리자
2003-09-20
11612
관리자
2003-09-20
20767
지구인
2010-08-27
19544
지구인
2009-09-07
13862
SOLIDH
2010-01-29
15823
엔죠라이프
2004-10-07
16925
SOLIDH
2009-06-13
2410
Ora
2009-06-10
4762
SOLIDH
2009-06-10
1298
아밥
2009-06-04
2648
아밥
2009-06-04
4390
아밥
2009-06-04
1754
아밥
2009-06-04
4562
SOLIDH
2009-06-04
3196
SOLIDH
2009-06-04
5088
SOLIDH
2009-06-04
3673
SOLIDH
2009-06-04
4415
SOLIDH
2009-05-31
2734
SOLIDH
2009-05-31
3279
SOLIDH
2009-05-31
3740
SOLIDH
2009-05-31
3802
SOLIDH
2009-05-31
3516
SOLIDH
2009-05-31
3226
SOLIDH
2009-05-31
2945
SOLIDH
2009-05-31
3038
SOLIDH
2009-05-31
2853
SOLIDH
2009-05-30
2591
모이자 모바일