processing Algorithm & Comment

2008.03.15 02:33

juro 조회 수:469

안녕하세요. juro 입니다.
입대전까지 하루에 한편씩 써내려가겠다고 다짐했지만, 주변 상황이 허락치 않았네요.
입대 이틀전인 오늘에서야 시간이 나서 프로세싱 2번재 이야기를 시작합니다.

기존 글을 통해 프로세싱에 대하여 간략히 알아보았다면, 이번엔 본격적인 프로그래밍이란 녀석에 대해 탐구하는 시간을 가지겠습니다.

프로그래밍이란 과연 디자이너/ 예술가들과 멀리떨어져있을까요? 우리는 알고리즘을 짤 수 없을까요?

수학용어로서 알고리즘은 잘 정의되고 명백한 규칙들의 집합 또는 유한번의 단계 내에서 문제를 풀기위한 과정이라고 합니다.

이렇게 정의내려지는 알고리즘을, 우리들 중 영특한 두뇌의 선택받은 몇명만 사용하고 있을까요? 전 그렇지 않다고 생각합니다. 이글을 보시는 분들 대다수가 이미 알고리즘을 실생활에서 사용하고 있습니다.

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

- 라면을 먹으려고 가스렌지에 불을 켰는데, 불이 안들어온다.
- 중간벨브는 열었는가?
- 아니라면 중간 벨브를 연다.
- 중간벨브 문제가 아니라면, 가스렌지 속 건전지가 다 됐는가?
- 건전지가 다됐으면, 건전지를 교체한다.
- 그래도 작동을 안하면, 가스회사에 연락을 한다.

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

이러한 선택을 우리는 매일같이 하고 있습니다. 그것을 분절로 자른 일련의 행동지침이 알고리즘입니다.


자, 그러면 본격적인 프로그래밍에 들어가기전에 먼저 유념해야할 한가지가 있습니다.
그것은 바로 코멘트의 중요성입니다.

프로세싱에서 사용되는 코멘트는 두종류가 있습니다.
코멘트가 한줄일때는 " // 내용 " 형식으로 코멘트 앞에 // 를 붙입니다.
또다른 방법으로는 코멘트가 한줄 이상일때 사용하는 방법입니다.
/*
내용
*/
의 방법입니다.
이 방법은 /* 하단의 모든 내용은 주석으로 인식하도록 개발되었습니다. 때문에, 꼭 잊지말고, */ 로 주석문의 끝을 명시해주셔야 합니다.

이러한 주석은 왜 중요할까요?

첫번째는 코드에 대한 빠른 이해를 위해서 입니다. 자신이 짠 코드라도, 시간이 좀만 지나도 어디를 어케 바꿔야하는지 해매게 되는 경우가 많습니다. 이럴때 모든 코드를 분석하기보단, 그래도 우리에게 익숙한 문자로 처리된 주석을 본다면, 자신이 원하는 부분을 보다 빠른 시간내에 찾아 수정을 할 수 있을 것입니다.

두번째는 메너적 성향입니다. 프로젝트의 규모가 큰 경우 여러명이서 부분부분을 맡아 개발에 참여합니다. 이럴 경우, 잘 정리된 주석은 다른 팀원들과 돈독한 우정(?)을 지속시켜 줄 것입니다;


이번 글에서 살펴본 알고르짐과 코멘트에 대하여 충분히 연습을 하신다면, 프로세싱뿐 아니라 모든 프로그래밍 언어에 해당하는 것이므로, 프로그래밍에 대한 자신감을 키우시는데 좋은 밑거름이 될 것이라 생각합니다.

이들을 습관화 하실것을 부탁드립니다.
알고리즘은 디자인으로 친다면, 그림을 그리기전 아이디어 발상 및 기본 스케치의 단계에 해당하기 때문에, 많은 연습과 경험이 내공을 쌓는데 도움이 될 것이라 생각합니다.

서점에 가셔서 어려운 알고리즘 관련 책을 사시는 것도 좋지만,
제가 추천하는 방법은.. 저희 교수님께서 알려주신 방법입니다.

생활 속에서 발생하는 여러 선택조건에 대해 알고리즘으로 표현하기 입니다.
위의 예시처럼 분절로 자르셨다면, 이후에는 이를 프로그래밍 코드로 변환 시켜보십시요.

----------------------------------
라면을 먹으려고 가스렌지에 불을 켰는데, 불이 안들어온다.
- 중간벨브는 열었는가?
- 아니라면 중간 벨브를 연다.
- 중간벨브 문제가 아니라면, 가스렌지 속 건전지가 다 됐는가?
- 건전지가 다됐으면, 건전지를 교체한다.
- 그래도 작동을 안하면, 가스회사에 연락을 한다.
----------------------------------
이 것을 코드로 바꾼다면...

상황 : 라면을 먹으려고 가스렌지에 불을 켰는데, 불이 안들어온다.

if(중간벨브는 열었는가?){ //  중간벨브는 열었는가?
  중간벨브를 연다.;
}else if (가스렌지 속 건전지가 다 됐는가?){  // 건전지의 상태는 어떤지?
  건전지를 교체한다.;
}else {   // 그래도 안되는가?
가스회사에 연락한다.
}
----------------------------------

이와 같은 코드를 학교나 직장에 가는 이동중에, 잠깐 밥먹고 쉬는 시간에
메모지같은 곳에 연습해보세요. 종이가 많아 질 수록, 여러분은 프로그래밍과 점점 친해지고 있는 중일 것입니다.
* juro님에 의해서 게시물 복사되었습니다 (2010-12-27 00:52)

© juroweb 2003-2014. All rights reserved
log in