Developfordummies: 두 판 사이의 차이
둘러보기로 이동
검색으로 이동
imported>Wiki |
imported>Wiki |
||
| 33번째 줄: | 33번째 줄: | ||
== [[Developfordummies_01|Chapter 1. Hello World와 별찍기]] == | == [[Developfordummies_01|Chapter 1. Hello World와 별찍기]] == | ||
== Chapter 2. 성적 관리 프로그램 | == [[Developfordummies_02|Chapter 2. 성적 관리 프로그램]] == | ||
== | |||
== Chapter 3. 실시간 채팅 프로그램 == | == Chapter 3. 실시간 채팅 프로그램 == | ||
2014년 4월 28일 (월) 12:19 판
이 문서를 쓰게 된 동기
- 지금까지 나온 기술서적은 일반적으로 효율적인 프로그래밍 방법에 대해 이야기하고 있다.
- 물론 효율적인 프로그래밍이 중요하지 않다는 것은 아니다.
- 하지만 많은 학생들이 원하는 것 중의 하나는, ‘어떻게 나의 목적을 이룰 것인가?’에 대한 답변이라고 필자는 생각한다.
- 네트워크 관리 등 관리 분야의 기술서적에서는 방법론에 대한 이야기가 많은데, 프로그래밍 개발 관련 서적에서는 잘 보이지 않았다.
- 그나마 프로그래밍 기술서적중에 Head First Series가 있는데, 이런 방식의 서적이 필자에게 많이 도움이 되었다.
- 선배가 이야기해주듯 프로그래밍을 이야기하는 것이 필자의 목적이다.
이야기의 구성
문제 발생 -> 문제점 분석 -> 각각의 해결방안 모색 -> 각각의 프로토타입 작성 -> 연습문제
- 먼저, 릴리즈 타입의 프로그램 작성은 하지 않는다.
- 리눅스와 같은 프로젝트는 처음부터 지금까지도 베타버전이다.
- ‘정식버전 리눅스’같은 이야기를 들어본 적이 있는가?
- 만약 니가 회사에 다닌다면, 회사에서는 릴리즈 버전을 발매할 것이다.
- 하지만 그 릴리즈 버전에 대한 기준이 전부 다르며, 필자는 지금까지 작성한 프로그램이 모두 프로토타입이었고, 회사에서 차용했다(이 방법은 너 개인이든, 회사든 전혀 좋지 않다. 확실한 기준이 있는 회사에 입사해라).
- 또한, 변수가 어떻고, 반복문이 어떻고 하는 문법에 관한 이야기는 하지 않는다.
- 그런게 나와있는 책은 너무나도 많고, 니들은 그런 정보를 얻고 싶어서 이 책을 보는게 아니잖아. 좋은 책들 존나 많은데.
프로그래밍 환경
- 기본적으로 Linux / g++ / vi 환경을 기본으로 하지만,
- 뜬금없이 Microsoft C#.net과 같은 언어를 사용하거나 Java를 사용할 수도 있다.
- 심지어 Delphi를 사용하기도 한다.
- 즉, 문제 해결에 있어서 가장 좋은 언어를 고르면 되는 것이다.
- 오픈소스 라이브러리 중 괜찮은 게 있다면 갖다 쓰는 방향으로 진행한다.
- 어떤 라이브러리가 필요할 때 검색하는 능력까지 기대될 수 있다.
기대 효과
- ‘언어의 사용법’보다는 ‘어떻게 프로그래밍을 할 것인가?’에 대한 고찰
- 어떤 과제가 주어졌을 때 해결하는 능력 향상
- 각 언어에 대한 Skill보다 전체적인 문제 해결 능력 향상
Chapter 1. Hello World와 별찍기
Chapter 2. 성적 관리 프로그램
Chapter 3. 실시간 채팅 프로그램
- 문제 발생 – 내가 만든 프로그램으로 채팅을 해보고 싶어.
- 문제점 분석
- 서버와 내 컴퓨터가 연결되어 있어야 해.
- 그리고 그 연결은 지속성을 띄어야 하지.
- 그러니까, 내가 아무것도 하지 않을 때에도 메시지를 받을 수 있어야 해.
- 조금 더 추가하자면, 대화내용이 어딘가에 저장되었으면 하는군.
- 고난이도의 문제로, 내가 접속중이지 않을 때 받은 메시지도 볼 수 있으면 좋을것 같군.
- 각각의 해결방안 모색
- 소켓프로그래밍을 이용하도록 하자.
- 소켓에서도 C/S 방법을 이용하도록 하자.
- 대기중에는 진짜 메시지를 기다리도록 하자.
- 메시지를 먼저 파일이나 RDBMS에 저장해보자.
- 전송을 받으면 OK 신호를 보내도록 하자. 그렇게 하면 그냥 OK 안 들어온거만 재전송하면 끝.
- 야 이거만 할 줄 알아도 웬만한 회사에서는 널 존나 써먹을 수 있을거다.
- 진짜 제대로 된 채팅프로그램 짤 줄 아는 애들이 많이 없거든..
- 여기에 프로토콜만 붙이면 산업용 장비나, 온라인게임도 만들 수 있게 되지.
- 자. 파이썬으로 쉽게 하나 짜볼까?
[ 파이썬 서버 / 파이썬 클라이언트 ]
- pycurses라는거 보여?
- 저거 좀만 손대면 pyqt로도 변경이 가능하지.