프로그래밍
지각생 연습장
목차 |
기본
- 프로그래밍 마음가짐 - 내가 개발을 하며 느낀 점들
- 프로그래머가 되는 방법: 짧고 폭넓고 개인적인 요약(KLDP)
데이터 모델링
웹 신기술 키워드
시맨틱웹 Semantic Web
- 사람뿐만 아니라 컴퓨터도 이해할 수 있는 웹을 만들자는 노력
- 웹서비스(Web Services), RSS 같은 RDF(Resource Description Framework) 기술
- 소셜 네트워크와 블로그와 같은 개인에 집중하는 네트워크와 커뮤니티가 활성화 되면서 오히려 개인과 개인, 개인과 기업에 대한 상호 운용성 문제가 더 커졌기 때문
- 정보의 분산화와 개인 미디어의 강화는 결국 정보 접근을 시작하는 위치를 궁극적으로 포털에서 PC와 같은 개인으로 옮겨오게 될 것
참고
- 블로그 라인즈(Bloglines) : 브라우저용 RSS/Atom 리더기
- 플릭커(Flickr) : 사진이미지 공유
- 테크노라티(Technorati) : 메타블로그
- 딜리셔스(Del.io.us) : 즐겨찾기 온라인 공유
Rich Web Application
- 선도적인 웹 기술을 수용하고 다룰 수 있는 파이어폭스(Firefox)라는 브라우저의 등장에 힘입은 바 크다. 새로운 웹 기술을 도입하고 브라우저를 확장할 수 없었던 평면적인 웹 브라우징 시대에서 확장 가능한 웹으로 발전하는 것이다.
- 사용자 PC에서 실행되는 풍부한 웹 애플리케이션 등장
- AJAX(Asynchronous JavaScript and XML)
- 웹 페이지 내에서 자바 스크립트로 xmlhttp를 통해 XML데이터 교환을 제어함으로서 사용자들이 웹 페이지를 새로 고침 하지 않고도 웹 기능을 이용할 수 있는 것이다. 구글맵이나 구글 서제스트 같은 기능이 AJAX를 이용하는 대표적인 기술이다.
- Daum의 ‘한메일넷 주소록’은 순수한 AJAX와 DOM 기술을 이용해서 주소록 기본 관리를 한 페이지에서 모두 처리할 수 있는 애플리케이션 구조로 변경
- 파이어폭스의 수백개의 확장 기능(Extensions)들은 개인들이 만든 것이다. 또한, 콘파뷸레이터나 매킨토시의 대시보드의 액서서리 들도 모두 브라우저 확장 기능을 이용하고 있다.
- HTML, CSS, 자바 스크립트만 알아도 간단한 웹 애플리케이션을 만들 수 있는 시대가 오는 것이고, 이 때문에 그리스몽키(Greasemonkey) 같은 인기 애플리케이션이 만들어 질 수 있었던 것
Desktop Application
- 독립적이고 요구된 기능만을 수행하는 프로그램이 아니라, PC를 기반으로 하는 정보 생산 및 취합, 관리 프로그램의 요구가 늘고 있다
- 시맨틱 웹이라는 조류에 편승해 네트워크를 통한 개인을 위한 정보 조합 및 커뮤니케이션 도구
- 구글, 야후, MSN, 라이코스 Hotbot 데스크탑 데스크탑 검색 소프트웨어
- 스카이프와 야후에 인수된 다이얼패드 등과 같은 인터넷 전화 소프트웨어 업체, 구글에 인수된 포토 관리 프로그램인 피카사(Picasa)나 위성 사진을 기반한 키홀(Keyhole) 등은 여전히 데스크탑 애플리케이션이 유망하다는 것을 반증 해 주고 있다.
Ajax
프레임워크
RSS
PHP
참고
정규표현식 모음
- 웹(ftp) 문서 패턴 : (http|ftp)://([0-9a-zA-Z./@~?&=_]+)
- 이메일 : ([_0-9a-zA-Z-]+(\.[_0-9a-zA-Z-]+)*)@([0-9a-zA-Z-]+(\.[0-9a-zA-Z-]+)*)
가볼만한곳
- PHPSCHOOL http://phpschool.com
- KLDP http://kldp.org
- http://gigatera.co.kr
- http://www.devpia.com
- http://javaservice.net
- DSN http://database.sarang.net
- http://eclipsians.net
- http://javanuri.co.kr
- http://okjsp.pe.kr
- Kain의 프로그래밍 로그 http://hiya.byus.net/prog/
유머
개발 입문자를 위한 31가지 조언
- 처음에는 자신이 사용하는 개발툴이나 언어를 강력한 툴이자 언어로 생각하십시오
- 어느 정도 숙달되면 개발툴이 아닌 업무에 주의를 기울이십시오
- 처음에는 자신이 사용하는 개발툴이 갖고 있는 기능의 전체상을 획득하도록 하시고 그 다음에 하나하나 철저하고 자세하게 배우도록 하십시오. 그리고 중요한 지식과 기술을 중심으로 배우십시오.
- 프로젝트에서 대면하게 되는 새로운 요소 기술, 팁 그리고 노하우들을 하나하나 기록하고 정리하여 여러분의 지식체계로 발전시키십시오
- 자신이 사용하는 개발툴의 기능적 사용법, 요소 기술, 팁 및 노하우를 기록하고 정리하는 것 못지않게 이를 여러분의 것으로 내면화하는 것이 중요합니다
- 문제의 다양한 변화를 고려하고 다양한 해법을 모색하십시오
- 개발툴은 기능적인 툴이라는 점을 잊지 마십시오. 즉, 개발툴에 대한 감각을 익히십시오.
- 반복을 두려워하지 마십시오. 반복속에 변화가 있습니다. 그 미묘한 변화를 터득하십시오.
- 가끔씩 소프트웨어의 실체를 파악하는데 주의를 기울일 필요도 있습니다.
- 요긴한 한 줄의 코드가 허황된 말이나 장황한 이론보다 더 중요할 수 있습니다.
- 다양한 요소 기술을 마스터하십시오
- 문제의식을 가지십시오
- 자신이 사용하는 개발툴에 대한 전체적인 시야를 획득하도록 하십시오. 종종 예시적 사고(Predictive Thinking)가 도움이 될 때도 있습니다
- 단순성(Simplicity)을 최대한 활용하십시오
- 프로그래밍 그리고 프로젝트에서 즐거움을 찾으십시오
- 다른 프로그래머들과의 교류를 이루어가면서 개발문화의 흐름 및 휴먼네트워크와의 동시성을 유지하십시오
- 업무와 관련하여 인간관계를 원활하게 유지하십시오
- 팀웍을 유지하십시오
- 소프트웨어 장인정신을 본받으십시오
- 자신의 일에 긍지와 자부심을 가지십시오. 그리고 일에 몰입하십시오. 그 속에서 자유를 찾으십시오
- 연속적이고 지속적으로 일을 하십시오. 그리고 규칙적으로 일하십시오.
- 요소 기술을 익혀 하나의 완성된 제품을 만들어 내도록 하십시오
- 코드 가독능력과 작성능력을 향상시키십시오
- 어느 정도 실력이 향상되면 SQL과 데이터베이스 활용에 대해서 공부를 하십시오
- 남에게 가르침으로써 알고 있는 지식을 더 새롭게 하고 새로운 것을 배우는 기회를 얻으십시오
- 선임 개발자와 동료 개발자 그리고 후배 개발자의 진지한 모습과 개발에 몰입하는 자세를 배우도록 하십시오
- 변화에 적응하십시오
- 전산을 전공하지 않았다고 반드시 마이너스 요인이 되는 것은 아닙니다.
- 익스트림 프로그래밍, 디자인패턴, 리팩토링 등의 최신 소프트웨어 개발 기술에도 관심을 가지십시오
- 어느 정도 개발툴 실력이 확고하게 되면 영어, 경영지식 및 다양한 학문에 관심을 가지십시오
- 항상 자신을 성찰하고 반성하며 끊임 없이 배우도록 노력하십시오
프로그래머 10계명
- 정보모음에 소홀히 하지 말고 설명서를 읽음에 게을리 하지 말지어다. ==
- 너의 PC가 안전하다고 믿지 말지어다
- 변하는 수를 다룰 때는 늘 조심하라
- 무슨 일을 반복시킬 때는 처음과 끝에 유의할지어다.
- 항상 모든 경우의 수를 고려하고 섣불리 생략하지 말지어다
- 함수 안에서 매개 변수값은 결코 믿지 말지어다
- 오류를 알려 주는 기능은 있는대로 모두 활용할지어다
- 한번의 수정과 재컴파일만으로 연관된 모든 것이 저절로, 강제로 바뀌도록 할지어다
- 사용자가 알아서 잘 써 주리라고 희망하지 말지어다. 너의 프로그램은 항상 바보만이 쓰느니라
- 매사에 겸손하고 항상 남을 생각할지어다