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

03 . 입력, 처리, 출력

SOLIDH | 2009.05.28 02:31:37 댓글: 0 조회: 2621 추천: 0
분류웹 프로그래밍 https://life.moyiza.kr/itstudy/1759692

제가 아는 아가씨가 말합니다.

  

"나 이뻐?"

  

예… 한참 생각해야 하죠.

'뭘 말해달라는거지? 안이쁘다고 하면 싸다구 날리겠지? 그냥 이뻐라고 하면 너무 밋밋하려나? 오오우우~ 김태희보다 이프쥐~ 하면서 살짝 굴려서 말하면 느끼하려나? 아니! 혹시 이건 하악 하악... 날 유혹하는건가?'

  

뭐 여러가지 생각을 하다가 말합니다.

  

"이뻐"

  

네! 입력, 처리, 출력이 뭔지 이해되시겠죠?

  

오늘 소고기 집회가 어떻게 되었는지 궁금하네요.

  

네이버 검색창에 툭툭 써넣습니다.

  

"소고기 촛불 집회"

  

엔터를 툭 누르니 뭐가 딕딕 거리면서 돌아갑니다. 그러더니 조금 있다 페이지가 이동하면서 검색 결과가 뜨네요.

  

"시민들 뿔났다!"

  

  

네! 입력, 처리, 출력이 뭔지 이해되시겠죠?

  

키보드 타이핑 -> 브라우저 -> 서버 -> 검색 결과 -> 모니터로 보임

입력(키보드, 브라우저 검색창) -> 처리(전송, 서버) -> 출력(검색결과, 모니터로 보임)

  

변수는 입력, 처리, 출력과 무슨 관계일까?

위 에서 보이는 것처럼 인간이나 컴퓨터나 우리가 살아가는 모든 세계는 입력, 처리, 출력의 순서를 통해서 서로 반응하며 살아갑니다.길가는 여자 치마를 확 들추는 입력을 하면 여자가 열받는 처리 결과를 통해서, 싸다구가 날라오거나, 경찰이 출동하는 출력이나오듯… 세상은 모두 입력, 처리, 출력의 순서를 통해서 진행되죠.

  

입력 = 키보드, 마우스

처리 = 컴퓨터 본체

출력 = 모니터, 스피커

  

뭐 이런 것인데요.

  

만일 "키보드를 눌러서 어떤 캐릭터를 좌, 우 방향으로 움직일 수 있다." 라는 것을 액션스크립트로 이야기 하자면,

  

입력 = 방향키를 눌러서 캐릭터가 움직일 방향을 입력한다.

처리 = 액션스크립트로 입력된 방향키를 읽어서, 캐릭터를 좌, 우로 움직여준다.

출력 = 움직이는 모습을 모니터로 보여준다.

  

뭐 이런 순서를 가지게 됩니다.

  

여기서 입력--->처리로 데이터가 전달되는 과정에서 "변수" 라는 것이 필요하게 됩니다. 우리는 <-- 의 방향키를 누를수도 있고, --> 의 방향키를 누를수도 있기 때문이죠. 그렇기에 변수라는 것이 필요합니다.

  

1 . 키보드를 누른다 (입력)

2 . 어떤 방향으로 움직이는지를 저장 (변수)

3 . 방향을 받아서 처리한다 (처리)

4 . 처리된 방향으로 움직이는 모습을 보여준다 (출력)

  

사 용자가 여러가지 다양한 액션을 취할 수 있다는 가정하에서 변수는 그 액션들을 하나의 가능성으로 취합해주는 역할을 합니다. 뭐말은 존내 어려운데… ㅡ ㅈ ㅡ;;; 쉽게 얘기해서 "나 이뻐?" 라는 입력이 날라올수도 있고, "나 안이뻐?" 라는 입력이날라올수도 있고, "이새끼야!" 라는 입력이 날라올수도 있기 때문에 그 여러가지 가능성들을 "말" 이라는 하나의 변수로 취합하는거죠.

  

개념은 졸라 간단한데, 설명하긴 드럽게 빡시네요…;;; 뭐 대충 이해 못하는 사람은 없겠지요.

  

trace()는 입력, 처리, 출력과 무슨 관계일까?

위에서 설명한 "좌, 우" 로 움직이는 것을 출력하는것은 상당히 복잡한 출력을 필요로 하게 됩니다. 매~~애번 테스트 할때마다 그런 복잡한 출력을 짜대면서 테스트 하면 아무래도 빡시겠죠.

  

하 지만, 입력과 처리만을 적절히 짜면서 trace() 를 통해 캐릭터의 x 좌표 위치를 숫자로 살펴보는 방식을 취한다면 복잡한출력 없이도, 멀쩡히 돌아가는 프로그래밍을 만들어나갈 수 있습니다. 뭐 그렇게 대충 돌아간다 싶어지면 그때 복잡한 그래픽출력방식을 도입해서 trace() 대신 그래픽 출력을 해주는것이지요.

  

가장 간단하면서, 원시적인 출력이 바로 trace() 입니다. 뭔가 처리과정에 대한 프로그래밍을 하는데 있어서 가장 간단하게 그 처리결과를 알수 있는 방법이 바로 trace() 라는 것이죠.

  

trace() 나 좌우로 움직이는 그래픽 출력이나, 사운드 출력이나, 뭐가 번쩍 번쩍 거리는거나… 결국 다 똑같은 출력 이라는거죠.

  

뭐 간단히 이야기하자면, 3D 게임 역시 굉장히 단순합니다

만일 방향키로 전,후,좌,우 로 움직이고, 스페이스바를 통해서 점프를 한다는 게임을 만든다고 가정했을때 그 입력, 처리 과정을 trace() 를 통해 출력한다고 생각하면 매우 간단한 이야기가 됩니다.

  

하지만, 우리는 아직 키보드 입력 조차도 진도를 나가지 않았으므로 입력도 간단화 해서 설명해 볼까요.

뭐 진지하게 이야기 하자면 말도 안되는 코드이긴 하지만…;;; 키보드 입력과 3D 그래픽으로의 출력이란 복잡한 문제를 제외하고 이야기 하자면, 3D 게임 조차도 이렇게 간단하게 표현이 가능해집니다.

  

단지, 입력을 키보드 입력으로 바꾸고, 출력을 3D 그래픽 출력으로 바꾸면 되는 문제일 뿐이죠. (그게 존내 어려워서 그렇지…)

  

  

어려우신가요? 어려우시면 바로 바로 덧글로 알려주세요 그러면…

  

입력 = 으~ 어렵삼~

처리 = 으~ 왜 어렵사암~ 추가 설명~ 추가 설명~

출력 = 수정된 글

  

이렇게 입력, 처리, 출력이 진행될 것이니깐요…

  

trace() 처럼 생각하는 것이 개발자의 사고…

뭐 지지난 시간에도 이야기 했지만, 보통의 사람들도 그렇고, 디자이너라면 특히나 더 그렇고… 인간은 절대 사물의 원리를 통해서세상을 이해하지 않습니다. 사물 그자체를 받아들여서 이해해버리죠. 하지만, 그런 사고 방식은 개발자적 사고 방식과 조금 틀리죠.

  

보통 사람의 관점에서 이야기 해서

"아아~ 널 바라보니 내 심장이 쿵쾅거려…"

  

라는 이야기가, 개발자적인 관점에서 이야기 했을때는

"널 바라보니 내 초당 심장 박동수가 +3 정도 되는걸?"

  

이 되어버릴수도 있죠…

  

뭐… ㅡ ㄴ ㅡ;;; 말도 안되는 소리이긴 하지만, 어쨌든 대체적인 개발자들이 어떠한 프로그래밍을 하는 과정에서는 이런식으로 입력과처리 과정의 단순화 작업을 통해서 문제 자체를 간략화 시켜 풀어나가는 행위를 거치게 됩니다. 원리 그 자체를 바라보면 아무리휘황찬란한 그 무엇이라도 숫자의 변화로 해석이 가능하기 때문이죠.

  

프로그래밍은 숫자 놀이 이거든요… 모든것은 숫자로 표현될 수 있고, 숫자의 변화를 표현합니다.

  

맨 첫시간에 trace() 를 넣은것은 뭐가 어찌되었든 확인은 해야지 공부를 하든 할거 아녀… 라는 생각에서 넣은 것이지요. 더하기 마저 3번 이상이 넘어가면 암산하기 빡신데… 프로그래밍 이라는 것을 암산 할 수는 없잖아요.

  

디자이너의 액션스크립트

디자이너가 액션스크립트를 짠다고 자신의 정체성이 흔들리거나 하진 않습니다. 왜냐하면… 그다지 어렵지 않기 때문이죠.

  

개 발자가 관여하는 개발은 대부분이 "처리" 에 집중되지만, 디자이너가 관여하는 개발은 "입력" 과 "출력" 에 머물러도 되고,"입력" 과 "출력" 에 관여하는 "처리" 부분은 너무 어려운 부분이 많은지라, 사용되는 거의 모든것이 이미 flash 내부에 간단하게 사용되도록 구현되어 있죠.

  

디 자이너가 액션스크립트를 짤때, 입력과 출력에 관여되는 일부분만 정확히 알고 있어도, 서로 뭔소리 하는지 몰라서 우왕좌왕 하는사태는 거의 발생하지 않습니다. 그리고, 디자이너가 처리에 관여되는 부분을 파들어가는 것 역시 사실… 삽질이죠. 존내어렵거든요.

  

프 로그래밍이 어려워지는 이유는 알고리즘 때문이지, 결코 Flash 내부의 어떤 기능을 활용하는 것이 어려워서가 아닙니다.Flash 내부에 구현되어 있는 기능들을 API 라고 부르는데, 그 API 만 적절히 사용할 수 있어도 디자이너로서 충분하다못해 넘칠정도의 지식이라고 할 수 있는것이죠. 그리고, 그것을 배우는데는 짧게는 6개월, 길어봤자 1년이 넘지 않습니다. 막상그 부분만 잘라내서 생각해보면 html 보다 딱히 어렵지도 않습니다. (아니… 오히려 쉬운 감이 없지 않죠… html 존내어렵잖아요…)

  

위 에서 이야기했던 방식들은 대체적으로 입력과 출력을 간략화 하고, 처리를 집중적으로 만드는 방식 이었다면, 디자이너로서의 접근은처리를 간략화 시키고, 입력과 출력을 집중적으로 다루는 것으로 나아가면 됩니다. 그렇게 만들어진 입력, 처리 상황에서의 디자인은개발자의 처리를 만나서 "합체 변신 우왕ㅋ굳ㅋ" 가 될 수 있거든요.

  

빡 세다, 빡세다 할 필요는 없습니다. 역할을 뚜렷히 한다면 보다 쉽게 접근할 수 있으니깐요… 사실 액션스크립트 시장 전체적으로보자면 개발자들이 그래픽에 관여하는 부분이 너무 많죠. 잘 알지도 모르면서 붙잡고 세월아~ 네월아~ 하는 것은 결국 야근으로이어집니다. 적절하지 못한 역할 분담 때문에 다같이 에브리바디 개고생을 하는거죠. 좀 더 정확히 말하자면, 플래시라는 플랫폼을다루는 디자이너라면 자기 분야에 맞는 액션스크립트 코딩 능력이 필요하긴 합니다.

  

이 전에도 말했듯, 프로그래밍 언어는 컴퓨터에게 부탁 하는 "언어" 일 뿐이라서, 어떤 부탁을 할지는 결국 사람이 가진 능력에좌우되거든요. 예능적인 부분의 부탁을 개발자가 맡는것 자체가 개발자의 성능을 저하시키는 주요한 이유가 되기도 합니다. 플래시업계의 고질적인 악습은 최종 퍼블리싱 작업의 책임이 개발자에게 있다는 것에서 비롯되는 편이니깐요... (그런것 까지는 안바래도적어도 psd 로 주는것도 좋다 이거야… 레이어에 블렌드 모드 걸어서 주는 만행만 안저질러 줘도 고마울텐데… ㅜ ㄴ ㅜ)

  

플 래시 같이 영역의 붕괴가 일어나는 플랫폼에서는 "여긴 내땅, 거긴 니땅" 하면서 선긋기를 하는것이 불가능한 편입니다. 그렇다고넘나 든다해서 "니미 나 혼자 다하고 말지~" 하는것도 사서 고생하는 일이구요. 적절한 선이 있습니다. 액션스크립트 안에도 분명디자이너가 관여해야할 영역이 있거든요. ^^ 자포자기 심정으로 액션스크립트 공부하는 디자이너 분들이 많은데, 액션스크립트 안에서자기 자신이 해야할 포지션을 찾아보세요. (그게 돈이 되거든요… + ㅂ +)



출처: ssen님레시피

http://ssen.name/zb/882

추천 (0) 선물 (0명)
첨부파일 다운로드 ( 1 )
download1.png | 10.0KB / 0 Download
IP: ♡.48.♡.21
3,006 개의 글이 있습니다.
제목 글쓴이 날짜 조회
관리자
2003-09-20
12020
관리자
2003-09-20
11567
관리자
2003-09-20
20724
지구인
2010-08-27
19499
지구인
2009-09-07
13815
SOLIDH
2010-01-29
15783
엔죠라이프
2004-10-07
16864
SOLIDH
2009-05-28
3085
SOLIDH
2009-05-28
2411
SOLIDH
2009-05-28
2510
SOLIDH
2009-05-28
2437
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
4579
SOLIDH
2009-05-24
3398
SOLIDH
2009-05-24
2160
SOLIDH
2009-05-24
1723
SOLIDH
2009-05-24
3933
모이자 모바일