로또 등수 결정하기
- 결과를 얻는 방법을 다른 사람에게 설명할수 있어야한다.
- 필요한 함수를 찾을 줄 알아야 한다.
- 함수를 찾을 수 없다면 만들줄 알아야한다.
- 정보를 계산가능한 방식으로 바꾸어 표현해야한다.
첫 시작임으로 매우 간단한 예제를 골랐다.
설명해보자.
로또의 등수를 결정한는 방법에 대해서 설명해보자.
이것을 효과적으로 하는 방법은 여러가지가 있겠는데, 같이 공부하는 사람에게 해도 좋고, 고민 인형을 써도 좋다. 아니면 글로 써도 좋겠다.
로또 사이트에 들어가면 아래와 같은 간략한 내용이 있다.
매우 무성의하게 단 몇단어로 설명되어 있다. 프로그램을 하려면 저렇게 무성의 해서는 안된다. 연습과정중에는 다른사람에게 설명해야하지만 마지막에는 컴퓨터에게 계산하는 방법을 설명해야한다.
그러니 청자가 유치원생일 때를 가정하고 상밀히 부연하기 바란다.
왜 설명이 중요한지의 예를 보이겠다.
방금나온 문장 청자가 유치원생일 때를 가정하고 상밀히 부연하기 바란다.
를 보자
위 문장은 어떠한가? 너무 어렵게 설명했다고 느껴지지 않는가? 쉽게 바꿔쓰면
듣는사람이 유치원을 다니는 아이일떄처럼 자상하고 세밀히 쉬운 설명을 덧붙여 말하라.
이렇다.
초보 프로그래머가 흔하게 하는 실수 중 하나는 자신이 표현을 이해한다고 하여 더 쉽게, 더 조각 조각 내어 설명하지 않는 것이다. 결국에는 50단어도 채 이해 못하는 컴퓨터에게 설명해야 하니 할수있는 데 까지 조각내야한다.
물론 한번에 조각내는 것은 어렵다. 그래서 나는 그것이 옳바른 방법이라고 여기지 않는다. 한번에 조각내는 대신에 프로그래밍을 하다가 그때 그때 필요한 만큼 조각내야한다.
위 문장을 비유하자면
자상하게
를 찬찬하고 자세하게
로, 이를 다시 내용이 꼼꼼하고 자세하게
로 필요에 따라 더 조각내야한다.
이 예제에서 '설명 조각내기'를 중점적으로 다룰것이나, 조각 낼때마다 알려주지 않을것이다. 완성된 코딩을 만든뒤 언제 어떻게 조각냈는지 모아서 설명할 것이다. 강좌를 따라가면서 어떻게 조각내고 있는지 직접 판단해본뒤 설명을 보기 바란다. 더 많은 공부가 될것이다.
이 예제에서는 설명하기를 중점적으로 다룰것이다.
함수를 찾자.
함수를 찾는 것은 사실 설명하기
단계가 진행되면서 할 수 있는 과정이다.
이번 과제의 경우 누군가가 로또 등수 결정 함수를 만들어 주었다면 모르겠지만, 그렇지 않다면 우리는 조각낸 설명의 작은 부분에 일치하는 함수를 찾아야한다.
그러나 이번 과제에서는 해당사항이 없을 예정이다. 이번 예제는 외부 함수 없이 전부 직접 만들것이다.
함수를 직접 만든다.
이번 과제의 주 목표중 하나인 부분이다.
함수를 새로 정의하는법
(=만드는 법)을 배우고
변수
와 if
문의 사용법도 배울것이다.
정보의 표현
정보의 표현은 늘 언제나 중요하다. 명령의 효율성과 정확성, 그리고 컴퓨터에 의한 계산이 실제로 가능한지 아닌지를 결정하는데 매우 큰 영향을 끼치기 때문이다.
그러나 이번 과제에서는 해당사항이 없다. 가능한 적은 종류의 명령을 사용하기 위해서 효율성을 포기하고 반복작업을 진행할것이다.
준비가 되었다면 서브 토픽을 읽으라
서브 토픽에서는 실제 코딩 과정을 한단계씩 보일것이다.
혹시나 다른 프로그래밍 언어를 배운적이 있다면...
만약 프로그래밍 언어가 처음이라면, 아래 내용은 무시하라.
괜히 방문한뒤 심심이 피폐해지면 책임지지 않는다.
반대로 프로그래밍 언어를 좀 다를수 있다면,
http://coffeescript.org 를 방문하여 커피스크립트의 기본 문법등을 익히고 로또 등수 결정하기
를 직접 만들어보는 것도 좋겠다.