이 책은 2000 년대 판 개발자 처세술이다.
이제 더 이상 개발자들은 머리 좋은 괴짜들이 아니라
경영진의 눈치밥을 먹는 천덕꾸러기 일 뿐이다.
MBA 도 하고, 조직관리도 하고, ....일과 후에도 기술개발을 계속하라.
밥 벌이는 그렇게 힘든 것이다.
CVS 설치 후 보니까, 현지 시각 설정이 안되 어 있다. 즉 9 시간 느리다. 어떻게 설정하나?
-------
arbi9:/home/cts/src/pibc>date
2008년 2월 20일 수요일 17시 14분 47초
arbi9:/home/cts/src/pibc>cvs status -v pibd6221.c
===================================================================
File: pibd6221.c Status: Up-to-date
Working revision: 1.1.1.1 Tue Nov 18 02:09:33 2003
Repository revision: 1.1.1.1 /home/cvs/src/pibc/pibd6221.c,v
Sticky Tag: (none)
Sticky Date: (none)
Sticky Options: (none)
Existing Tags:
start (revision: 1.1.1.1)
INITIAL (branch: 1.1.1)
TOW_HOME=C:\TOW
PATH=C:\TOW\Subversion\bin;C:\TOW\Python;C:\TOW\Python\DLLs;C:\TOW\Python\Scripts;C:\TOW\Python\Lib;;C:\TOW\Apache\bin;C:\TOW\Apache\modules;C:\TOW\SQLite;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files\Intel\DMIX
trac-admin - The Trac Administration Console 0.10.4
Usage: trac-admin </path/to/projenv> [command [subcommand] [option ...]]
Invoking trac-admin without command starts interactive mode.
about
-- Shows information about trac-admin
help
-- Show documentation
initenv
-- Create and initialize a new environment interactively
initenv <projectname> <db> <repostype> <repospath> <templatepath>
-- Create and initialize a new environment from arguments
hotcopy <backupdir>
-- Make a hot backup copy of an environment
resync
-- Re-synchronize trac with the repository
resync <rev>
-- Re-synchronize only the given <rev>
upgrade
-- Upgrade database to current version
wiki list
-- List wiki pages
wiki remove <name>
-- Remove wiki page
wiki export <page> [file]
-- Export wiki page to file or stdout
wiki import <page> [file]
-- Import wiki page from file or stdin
wiki dump <directory>
-- Export all wiki pages to files named by title
wiki load <directory>
-- Import all wiki pages from directory
wiki upgrade
-- Upgrade default wiki pages to current version
permission list [user]
-- List permission rules
permission add <user> <action> [action] [...]
-- Add a new permission rule
permission remove <user> <action> [action] [...]
-- Remove permission rule
component list
-- Show available components
component add <name> <owner>
-- Add a new component
component rename <name> <newname>
-- Rename a component
component remove <name>
-- Remove/uninstall component
component chown <name> <owner>
-- Change component ownership
ticket remove <number>
-- Remove ticket
ticket_type list
-- Show possible ticket types
ticket_type add <value>
-- Add a ticket type
ticket_type change <value> <newvalue>
-- Change a ticket type
ticket_type remove <value>
-- Remove a ticket type
ticket_type order <value> up|down
-- Move a ticket type up or down in the list
priority list
-- Show possible ticket priorities
priority add <value>
-- Add a priority value option
priority change <value> <newvalue>
-- Change a priority value
priority remove <value>
-- Remove priority value
priority order <value> up|down
-- Move a priority value up or down in the list
severity list
-- Show possible ticket severities
severity add <value>
-- Add a severity value option
severity change <value> <newvalue>
-- Change a severity value
severity remove <value>
-- Remove severity value
severity order <value> up|down
-- Move a severity value up or down in the list
version list
-- Show versions
version add <name> [time]
-- Add version
version rename <name> <newname>
-- Rename version
version time <name> <time>
-- Set version date (Format: "YYYY-MM-DD" or "now")
version remove <name>
-- Remove version
milestone list
-- Show milestones
milestone add <name> [due]
-- Add milestone
milestone rename <name> <newname>
-- Rename milestone
milestone due <name> <due>
-- Set milestone due date (Format: "YYYY-MM-DD" or "now")
milestone completed <name> <completed>
-- Set milestone completed date (Format: "YYYY-MM-DD" or "now")
milestone remove <name>
-- Remove milestone
* 코드가 어떻게 동작하는가 이해해야 하지만, 꼭 그 내용에 전문가가 될 필요는 없다...
* 팀원 가운데 한 사람이 코드가 너무 어려워서 다른 사람은 이해할 수 없다고 말한다면, 누구라도(원저자를 포함해서) 유지 보수하기가 힘들것이다. 단순화하라.
* 이해하지 않은 상태에고 코드를 고쳐서 못 쓰게 만들지 말라. 땜질식 수정 증후군은 처음엔 아주 천진난만하게 시작하지만 급격히 알아볼 수 없는 쓰레기가 된다. 증상이 아니라 문제를 고쳐라.
* 대부분의 복잡한시스템은 너무나 난해해서 한 사람이 시스템 전체를 이해하기 어렵다. 작업 중인 특정 부분에 대해 더 깊이 이해하는 것 외에도, 시스템의 각 부분이 서로 어떻게 상호작용하는 지 알기 위해 시스템의 대부분에 대하여 상당한 수준으로 이해할 필요가 있다.(44-45)
매 주 팀원 중 한 명에게 토의를 이끌게 하자. 토의를 이끄는 사람은 개념을 제시하거나 툴 사용법을 보여주고, 그렇지 않더라도 팀의 관심을 끄는 것이면 무엇이든지 소개할 것이다. 여러분은 책 한 권을 골라서 그 책에서 특정 단원이나 항목, 실천방법들을 수행해 볼 수도 있다....
그 주의 회의 주관자가 15 분 정도 얘기하는 것으로 시작하자....모두가 자신의 아이디어를 제안하고 프로젝트에 그 주제가 어떻게 연관되는지 토의할 수 있다.(64)
다운로드해 얻을 수 있는 프로그램을 새로 만들지 말라. 환상적인 것을 만들고 있다면 ..., 정신 차리고 잘못하고 있음을 깨달아라. 코딩을 적게 할 수록 유지보수할 양이 적다.
..."객체 관계 매핑(Object Relational Mapping) 은 컴퓨터 과학의 베트남이다." 라고 테드 뉴워드(Ted Neward) 가 말한 것을 기억하라. 자신의 애플리케이션을 만드는 데 필요한 것만, 즉 도메인이나 애플리케이션에 국한된 프로그램을 만드는 데 더 많은 시간과 노력을 들여야 한다.(94)
프로그램 매매(program trading)
선물을 이용한 재정거래에서 데이터, 계산, 판단 등의 프로그램이 컴퓨터에 입력되어 매입, 매도지시가 자동적으로 행해지는 것을 말한다.이 시스템은 실제의 지수선물가격이 이론상의 지수선물을 어느 정도 수준까지 상(하)회했을 경우에 매입(매도)프로그램이 작동하는 것이다. 매입 프로그램은 현물을 매입하고 선물을 매도하는 것을 말하며, 매도 프로그램은 그 반대의 경우이다. 한편 이론상의 지수선물가격은 현물지수가격에 자금조달코스트(단기금리)와 배당수입(주식수익률)의 차이를 더한 것을 말한다.
(http://www.ksda.or.kr/invest/dictionary.cfm?number=1406&button=)