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

05 . Function… 걸리버 여행기의 주인공이 되다.

SOLIDH | 2009.05.28 02:43:34 댓글: 0 조회: 2411 추천: 0
분류웹 프로그래밍 https://life.moyiza.kr/itstudy/1759702
하염없이 길어져 버리는 코드들


간단하게 이런 코드가 있다고 생각했을때 이게 단순히 1~100 개 정도가 있다고 본다면 모를까, 지속적으로 계~속 사용되어 진다면 상당히 곤란해지게 됩니다. 코드가 하염없이 길어져 버리니깐요.

   

하지만, 우리는 이 코드에서 한가지 발견을 할 수 있습니다. 바로 a 와 b 를 더해서 trace() 시킨다는 것이지요. 이런 공통점을 한가지의 기능으로 묶을수 있다면 무척 편리하겠지요.

   

난쟁이들의 왕님

당신은 한가지 아주 재밌는 능력을 가진 사람입니다. 머리가 나빠서 많은 일을 하지는 못하지만, 한가지 일만은 제대로 할 수 있는 난쟁이를 만들 수 있는 능력인데요. (그냥 그렇다고 해요…)

   

목이 마를때 음료수를 가져다 줄 난쟁이가 하나 필요해서, 만들어 보았습니다.



예 요렇게, 작은 난쟁이를 만들어서 대신 일을 시킬 수 있습니다. 바보긴 하지만, 한가지 일은 제대로 해주죠.

   

그럼 이 능력으로 맨처음의 무수한 더하기들을 대신 해줄 난쟁이를 만들어볼까요?



예… 아주 간단하게 정리가 되었습니다. 코드도 한결 읽기 쉽게 되었네요.

   

function… 함수라고 부릅니다.


"꺄아아아아아악!!!! 함수!!! 수학이잖아아아아아아아아!!!!!!!!"

   

이러고 계십니까?

   

수 학적으로 구지 생각할 필요는 없어요. 이미 알고 있다면 좋긴 하겠지만, 어쨌든 걍 "난쟁이를 만들수 있어요~" 하고 생각하는게 배우는데는 훨씬 가벼운 마음을 가질 수 있겠죠. (예외적으로 변태의 심장을 가진 사람이라면, 일부러 어렵게 생각하는게 좋을수도 있죠…)

   

함수의 구성

함수는 아래와 같이 구성됩니다.


function 이라는 것은 var 와 마찬가지로, "이것은 함수야." 라고 컴퓨터에게 말해주는 것입니다.

난쟁이이름 은 function 의 이름이 되겠지요.

변수1 과 변수2는 난쟁이에게 명령을 내릴때 사용할 변수들 입니다. 파라메터 라고 부릅니다.

반환형태는 변수형과 같은건데요.

반환타입 중에서 일단 void 는 어떠한 반환을 해주지 않아야 하고, 그 외의 것들은 어떠한 반환값을 가지게 되죠. void 가 아래와 같은 뜻을 가졌으니, 대충 뭔 소린지 이해가 되실 겁니다. 

이렇게 규칙을 어기면 

이렇게 에러가 뜹니다. AS3 가 AS2 보다 좀 번거로운 규칙이 늘었지만, 그 규칙 덕분에 이런 리포팅이 가능하다는 장점이 생기죠. 컴퓨터는 바보니까요. 

이렇게 아무것도 없이 만들수도 있고 

이렇게도 하나를 만들수도 있고 

이렇게 여러 개 만들수도 있으며 

요렇게 무한정 받아들이도록 할수도 있고…

요렇게 섞어서 쓸수도 있고 

파라메터엔 이렇게 기본값을 정해서 쓸수도 있습니다. 

그 리고, 이렇게 조금은 특수한 형태로서 변수를 대리하는 것도 가능합니다. 이런 형태로서 변수를 정의한다면 function 의 "행동성" 을 가진 변수를 만들수 있겠지요? 이런 "행동성" 을 가진 변수로서 우리가 흔히 사용하는 x, y, width, height 같은 것들이 있습니다.

   

의인화 해서 생각하기

function 을 의인화 해서 생각하는 것은 개발자가 아닌 사람이 프로그래밍에 접근할때 사고에 큰 유연성을 줍니다. "기능을 합리적으로 모듈화 하는 것" 은 프로그래밍에 있어서 굉장히 중요한 기술중 하나인데, 그런 합리적 사고방식을 키우는데는 "이 기능은 나의 친구~♡" 라고 생각하는게 꽤 도움이 되기 때문이죠.

   

그런 의인화를 하는 사고방식은 "이것은 차가운 기계덩어리" 라는 심리적 한계성을 극복하는데도 도움이 되기 때문에 추천하고 싶네요.

   

trace() 도 function 입니다. 

이런 형태가 되겠죠?

   

이 렇게 필요성이 높거나, 사용자가 접근해서는 안되지만 꼭 필요한 기계적 성질의 접근을 (Mouse 나 Keyboard 같은것) 대신해주기 위해서 미리 flash player 안에 구현되어 있는 것들이 있고, 그런 기능들은 F1 을 누르면 나오는 "도움말" 에서 볼 수 있습니다.

   

보 통 기초적인 레벨에서 어떤 프로그래밍 언어를 배운다는 것은 "언어적인 것" 을 배우는 것과 이렇게 "내장되어 있는 기능" 들을 배운다는 것으로 나뉘어 지게 됩니다. "언어적인 것" 은 프로그래밍 언어의 "단순해야 한다" 라는 특징 때문에 배우는게 어렵지 않고, 또 대체적인 모든 언어들이 다 비슷비슷한 형태를 띄는데 비해서, "내장되어 있는 기능" 은 각각 언어의 목적, 특성에 따라서 다양하므로 좀 꼼꼼하게 살펴봐야 하죠. "액션스크립트 어떻게 공부해요?" 라는 질문에 항상 "F1 눌러라!" 라는 말이 나오는 이유는 "우선 내장되어 있는 기능을 알고 시작해라" 라는 이야기 입니다. (고급적인 레벨에서는 수학과 논리가 주요하게 되죠. 여기서부터가 개발자라는 직업의 문턱이 되겠네요...)

   

예 전 시간에 "디자이너가 액션스크립트를 배운다는 것은 어렵지 않다." 라고 이야기 한 것은 그런 사실에 따라, "프로그래밍 언어를 배우는 것은 어렵지 않다." 라는 의미와 함께, "당신이 디자인 이라는데 필요한 내장 기능을 사용하려 한다면 알아야 할 게 많지 않다." 라는 두가지 의미를 두고 한 이야기 입니다. 프로그래밍 언어는 매우 간단하고, 또 디자인에 필요한 내장 기능은 그 분량이 그다지 많지 않으니깐, 당연히 어떤 요구든 받아들여서 만들어야 하는 개발자가 프로그래밍을 배운다는 것하고, 디자인에 필요한 프로그래밍을 배우는 것 하고는 차원이 다른 문제가 됩니다.

   

개 발자를 "프로그래밍 언어를 사용할 줄 아는 사람" 이라고 보면 굉장히 곤란합니다. 개발자라는 것도 "시스템 개발자", "UI 개발자", "미디어 아티스트", "게임 개발자" 등으로 여러가지 갈래가 생기는데, 그 갈래가 생기는 주요한 의미는 "그것을 설계할 수 있는 논리를 가지고 있다" 이지, 절대 "프로그래밍 언어를 사용할 줄 안다" 는 것이 아니거든요. 프로그래밍 언어는 사실 별게 없는 대충 배워도 쓸 수 있는것이기 때문에, 누구라도 간단히 배워서 간단히 쓸 수 있습니다. 하지만, 개발자라는 말을 들을수 있을만큼 논리적인 무언가를 만들어 내려면 "프로그래밍" 이 아닌, 논리적 수학적 지식이 필요하게 되지요.

   

" 개발은 매우 어려운 것이다" 란 말과 "디자이너도 대충 배워서 쓸 수 있다" 라는 이율배반적 모순을 이야기 할 수 있는것은 그런 의미에서 입니다. 그리고… 구글이라는 IT 회사에서 인문, 사회, 생물, 환경 등등 많은 학자들을 고용하는 이유이기도 하지요. 시나리오 공부를 할때 가장 감명받았던 UCLA 영화, 드라마 시나리오 학장의 말이지만, 여기에도 쓸 수 있을것 같네요.

   

"우리에게 필요한 학생은 영화나 드라마를 많이 본 학생이 아니라, 삶과 인생을 충실하게 살아본 학생이다."

   

프로그래밍 이란 단어에서 "프로그래밍" 이란 주어가 아닙니다. 디자인을 하는 프로그래머, 심리학을 공부한 프로그래머, 게임을 좋아하는 프로그래머는 앞으로 많이 필요해지게 될 것 입니다. ^^ 


출처: ssen님레시피

http://ssen.name/zb/893

추천 (0) 선물 (0명)
첨부파일 다운로드 ( 16 )
download1.png | 8.6KB / 0 Download
download2.png | 11.8KB / 0 Download
download3.png | 7.5KB / 0 Download
download4.png | 4.2KB / 0 Download
download5.png | 8.9KB / 0 Download
download6.png | 4.9KB / 0 Download
download7.png | 6.4KB / 0 Download
download8.png | 5.3KB / 0 Download
download9.png | 1.5KB / 0 Download
download10.png | 5.1KB / 0 Download
download11.png | 29.0KB / 0 Download
download12.png | 6.6KB / 0 Download
download13.png | 7.6KB / 0 Download
download14.png | 7.0KB / 0 Download
download15.png | 6.4KB / 0 Download
download16.png | 4.0KB / 0 Download
IP: ♡.48.♡.21
3,006 개의 글이 있습니다.
제목 글쓴이 날짜 조회
관리자
2003-09-20
12080
관리자
2003-09-20
11612
관리자
2003-09-20
20768
지구인
2010-08-27
19544
지구인
2009-09-07
13862
SOLIDH
2010-01-29
15823
엔죠라이프
2004-10-07
16925
SOLIDH
2009-05-28
3086
SOLIDH
2009-05-28
2411
SOLIDH
2009-05-28
2510
SOLIDH
2009-05-28
2438
SOLIDH
2009-05-28
2411
SOLIDH
2009-05-28
2780
SOLIDH
2009-05-28
2621
SOLIDH
2009-05-27
2327
SOLIDH
2009-05-27
2757
SOLIDH
2009-05-27
2543
SOLIDH
2009-05-26
1615
SOLIDH
2009-05-26
3518
SOLIDH
2009-05-26
2691
SOLIDH
2009-05-26
3130
SOLIDH
2009-05-26
2453
SOLIDH
2009-05-26
3184
이보시오
2009-05-25
4580
SOLIDH
2009-05-24
3398
SOLIDH
2009-05-24
2161
SOLIDH
2009-05-24
1723
SOLIDH
2009-05-24
3934
모이자 모바일