Developfordummies 02

Ubuntu Korea Community Wiki
imported>Wiki님의 2014년 4월 28일 (월) 12:19 판 (새 문서: * 문제 발생 # 중고등학생이라면 성적 같은 거 관리해야지. 프로그래밍 하지 말고 성적 관리 좀 해 이놈들아. 그리고 뭐, 당신네들 성적 올...)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)
둘러보기로 이동 검색으로 이동
  • 문제 발생
  1. 중고등학생이라면 성적 같은 거 관리해야지. 프로그래밍 하지 말고 성적 관리 좀 해 이놈들아. 그리고 뭐, 당신네들 성적 올리는걸 이 책에서 해줄 수는 없는 거야. 성적을 올리고 싶으면 프로그래밍을 좀 쉬었다 해도 돼.
  2. 그리고 이 성적을 말하는 게 아니라, 이건 쌤들용 프로그램이지. 우리 반 애들 성적을 입력하면 누가 몇 등 했는지 볼 수 있는 프로그램.
  • 문제점 분석
  1. 먼저 아이들 성적 입력을 받아야겠지.
  2. 또, 저장을 해야 돼. 프로그램을 구동할 때마다 계속 입력 해야 되면 짜증나잖아.
  3. 그리고, 성적순으로 뽑아 보려면 정렬을 해야 되지.
  • 각각의 해결방안 모색
  1. 각각 다른 프로그램을 만드는 거야.
  2. 이것도 텍스트 버전으로 만들 거야. 그래픽 버전은 니가 만들어 보라구.
  3. 저장은 먼저 파일 저장이랑 RDBMS 이용하는 거랑 해보자.
  4. 정렬하는 건, 출력할 때 정렬하는 걸로 하자.
  • 근데 사실 솔직히.. 이런 종류의 프로그램들을 ERP라고 하거든.
  • 이건 단순한 거고, 커지고 요구사항이 많으면 되게 어려워.
  • 그래서 결국 하고자 하는 얘기는, 다음 그림처럼 하자는 얘기지.

[ 성적관리 프로그램의 입력부, 출력부에 대한 플로챠트 ]

  • 플로챠트 보니까 어떠냐? 어떤 프로그램을 쓰건 니 머릿속에 있는걸 그려보는게 중요해 보이긴 하지?
  • 니가 말을 존나 잘 하면 말로 설명하는 것도 한가지 방법일 수 있겠는데, 그 말을 들어야 할 사람이 존나 많으면 어떻게 하냐?
  • 지금 니들이 글을 읽고는 있지만 제대로 읽긴 하냐?
  • 근데 그림은 바로 보이지?
  • 영어나 일본어나 중국어로 써있어도 이해할걸? 어차피 함수 이름은 영어고.
  • 즉, 외국인이랑도 일 할 수 있다는 얘기야. 영어도 중요하긴 한데, 미술은 더더욱 중요한거임.
  • 도형은 뭐 니들이 알아서 해. 아무거나 써도 되는거야 그거.
  • 스탠다드는 있긴 한데, 옛날 사람이 만든거라 별 도움이 안 돼.
  • 20세기에는 막 플로챠트를 위한 도형자 같은것도 팔았다?

파일:Figureruler.jpg

  • 근데 이딴거 필요없어. 그냥 동그라미나 네모나 니가 원하는 걸로 작성하면 돼.
  • 니가 일주일 전 점심때 뭘 먹었는지 기억 못하면 니가 일주일 전 작성한 프로그램인데 코드 보면 뭐하는 코드인지 생각 안 날걸?
  • 근데 그림이라도 끄적여 놓으면 기억 나거든.
  • 봐봐. 필자도 지금 보면 뭐 할지 정하고 다 그리고 시작하지?
  • 회사에서 다 정해줬다고 해서 그거 따라가면 되긴 하는데, 뭐 좀 부실할걸? 니 작업은 니가 다시 설계 해야 돼. 너한테 맞게 구체화시켜야지.
  • 어쨌든 간에 자, 그럼 C#으로 간단하게 만들어 볼까?

[ 성적 관리 입력 프로그램, define을 이용해서 파일과 SQL을 결정 ]

  • 입력해서 파일에 넘겼어. Define 좀 수정하면 SQL에 대응도 하지..
  • 이런 식으로 프로그램을 짜도 좋고, 파일로 나눠도 좋고, 방법은 니가 정하는 거긴 한데, 어쨌거나 핵심은 여러 상황에 대응할 수 있는 코드를 작성해 두면 다음에 이 코드를 다시 쓸 수 있다는 거야.
  • 그런데, 너무 여러 개라면 그냥 대응 하지 않는 게 좋아.
  • 모든 상황에 범용적인 코드란 건 있을 수 없는 거니까.
  • 컴퓨터가 만능이라고는 하지만, 보통 컴퓨터 자체로 밥을 해먹지는 않지(일부 미친놈들은 예외).
  • 니가 코드를 짤 때는 나중에 또 쓸 것 같아도 실은 코드 재사용을 잘 안해. 내가 짠 코드도 내가 까먹거든.
  • 그러니까 쓸데없이 너무 일 크게 만들지 말고, 해봤자 두어개 정도만 대응하면 훌륭한거야.
  • 다음은 출력을 해보자.

[ 입력 프로그램과 마찬가지로 #define을 이용해서 파일과 SQL을 결정, C# ]

  • 어라? 정렬하는건 그냥 함수 하나로 해결해 버렸네?
  • 뭐, 지금 정렬하는 방법에 대한 이야기를 하긴 좀 그렇잖아?
  • Quick Sort라던지, Bubble Sort라던지, 이런 건 설명해주는 책들 많아.
  • 그리고, 이 책에서 언어 여러 개 쓴다고 여러 가지 언어에 대한 책들 살 필요는 없어. 니가 가장 하고 싶거나 가장 잘 하는 언어의 책만 가지고 있으면 돼.
  • 어차피 이런저런 소개만 하는 거니까. 정 뭐하면 내가 짠 언어를 니가 잘하는 언어로 구현하는 것도 엄청난 연습이 될 거야.

연습문제

  • 여기에 그래픽을 입혀 보자. 본인이 가장 잘 하는 언어로 구현하는 방법이 가장 좋다.