프로그래머 십계명

프로그래머 십계명 ~ 시작부터 경지에 이르기까지…

1. 정보를 모음에 소홀히 하지 말고 설명서를 읽음에 게을리 하지 말지어다.
오늘 필요 없는 정보는 내일 필요하리라. 가장 가치 있고도 저렴한 지식은 책 속에 있느니라. 서점과 동료의 책꽂이에 무엇이 꽂혀 있는지 때때로 살피어라. 무심코 흘렸던 종이 한 장이 너의 근심을 풀어 주었으리라. 설명서는 충분히, 꼼꼼히 읽을지어다. 모든 의문은 설명서를 안 보는 데서 생기니라. 그렇더라도 모두 다 읽을 필요는 없느니라.

2. 너의 PC가 안전하다고 믿지 말지어다.
5분 후에 정전이 되고 내일 너의 하드가 맛이 가리라. 그러하니 너의 소중한 소스 코드는 정기적으로 여러 군데에 단계별로 백업해 두어라.

3. 변하는 수를 다룰 때에는 늘 조심할지어다.
수가 절대로 그 한계를 넘지 않으리라 가정하는 것은 어리석음이라. 127, -128, 255, 32767, -32768, 65535, 이 숫자들을 너의 골수에 새기어라. 0.0은 0이 아니니 실수는 원래부터 결코 정밀하지 않느니라. 부호 없는 것과 있는 것을 어울리거나 정수끼리 나눌 때에는 늘 조심하여라.

4. 무슨 일을 반복시킬 때에는 처음과 끝에 유의할지어다.
너의 컴퓨터는 1보다는 0을 좋아하니라. 배열의 첨자가 그 범위를 넘지 않을지 손 댈 때마다 따져 보아라. 수식에 1을 더하거나 뺄 때에는 늘 긴장하라. 너의 프로그램은 단지 한 번 덜해서 틀리고 한 번 더해서 다운되느니라.

5. 항상 모든 경우의 수를 고려하고 섣불리 생략하지 말지어다.
절대로 일어나지 않을 일은 반드시 일어나고, 가장 드물게 일어날 일이 가장 너를 괴롭히리라. 그러하니 언제나 논리에 구멍이 없는지 꼼꼼히 따져 보고, if를 쓸 때에는 else부터 생각하라.

6. 함수 안에서 매개 변수 값은 결코 믿지 말지어다.
지금 그 매개 변수가 결코 가질 수 없다는 값을 내일부터는 가지리라. 그러하니 매개 변수 값이 올바름을 항상 검사할지어다. 그렇더라도 처리 속도가 문제가 되는 경우는 예외이니라.

7. 오류를 알려 주는 기능은 있는 대로 모두 활용할지어다.
컴파일러의 경고는 모두 켜 두어라. 경고는 곧 오류이니라. 오류를 알리는 함수의 결과를 확인하지 않는 우를 범하지 말지어다. 모든 파일 입출력과 모든 메모리 할당은 조만간 실패할 것이라.

8. 한 번의 수정과 재 컴파일만으로 연관된 모든 것이 저절로, 강제로 바뀌도록 할지어다.
어떠한 것을 수정했을 때에 연관된 것이 따라서 변하지 않는다면 그것이 곧 벌레이니라. 컴파일러로 하여금 매개 변수 리스트를 완전하게 검사하도록 하고, 언젠가 손대야 하거나 따라서 변해야 하는 수치는 전부 매크로로 치환하며, 형 정의를 적극 활용하여라.

9. 사용자가 알아서 잘 써 주리라고 희망하지 말지어다.
너의 프로그램은 항상 바보와 미친놈만이 쓰느니라. 사용 설명서를 쓸 때에는 결코 빠뜨리지 말아라. 빠뜨린 만큼 사용자는 너를 괴롭힐 것이니라.

10. 매사에 겸손하고 항상 남을 생각할지어다.
가장 완벽한 프로그램일수록 가장 완벽하게 숨은 벌레가 있느니라. 네가 이 세상 최고의 프로그래머라고 떠들며 자만할 때, 옆집 곳간에서는 훨씬 더 뛰어난 것을 묵묵히 만들고 있느니라. 아무렴 프로그래밍은 혼자 잘나서 할 게 아니니, 너로 인해 다른 사람들도 더불어 잘 되면 그 얼마나 좋은 것이냐.

이 모든 것을 깨닫고 지키려 애쓰는 자는, 있어도 없어도 되어도 아니 되어도 늘 평온하리라.

임인건(한글라이브러리 한라 프로 제작자)님의 글

ORACLE – DBA 를 목표로 하였을 때

ORACLE – DBA 를 목표로 하였을 때

=== 필수 지식 ==================================
SQL, PL/SQL, DB ADMIN, BACKUP AND RECOVERY (RMAN), TUNING,
서버용 OS 두가지.

SQL, PL/SQL :
단순히 사용할 줄 안다라는 수준보다는 검토 및, 어느정도의 튜닝까지도
가능해야 합니다. 어디의 과정을 들으시지는 모르겠습니다만,
일단 9i-DBA 과정의 맹점이 PL/SQL의 부재입니다. 기존 8i과정에는
들어있다고 9i-DEV로 분리시키면서 DBA과정에는 제외가 되었는데
DBA에게또한 필수적인 지식입니다.

DB ADMIN :
DB ADMIN 대해 굳이 설명할 필요는 없다고 봅니다.
다만 DB ADMIN을 확실히 하지 않으면 BACKUP이나 TUNING에서의
전멸이 보장된다는 것만 말씀드리겠습니다.

BACKUP AND RECOVERY (RMAN):
아무도 알아주지는 않지만 DBA가 최우선적으로 잘 해야만 하는
BACKUP입니다. 단지 “이런 상황에서는 할 줄 안다”라는 수준이 아닌
“어떠한 상황에서도 당연히 할 줄 안다”라는 수준이 되어야만 합니다.
한가지 이상한 점은 공인 교재나 시중에서의 관련 서적들은
USER-MANAGED에만 치중이 되어 있는데 실제 마켓의 흐름은
모든 면에서 월등히 우수한 RECOVERY MANAGER입니다.
부담스러우시겠지만 ORACLE PRESS에서 나온 RMAN관련 서적
– 원서 -를 필히 보시기 바랍니다. 정리및 내용이 알차
훗날 레퍼런스 용으로 쓰기에도 좋습니다.

TUNING:
실은 이 TUNING을 필수로 넣어야 하나 선택으로 넣어햐 하나
하고 망설였습니다. 자격증 취득을 위해서는 필수적이나
DB ADMIN에 대한 깊이 있는 지식과 어느정도의 경력이 없으면
공부하기가 참으로 난감한 부분입니다. 개인적으로는
어느정도 수준까지만 하지고, DB ADMIN에만 더 치중을 하기를
권고합니다.

타 서버용 OS:
(SOLARIS, HP-UX, RH LINUX, MS)
이중 최소 하나는 관리자 수준의 지식을 가져야 합니다.
그리고 다른 하나의 OS는 최소 일반 사용자 이상의 지식을
요구합니다. 또한 MS는 어느정도 이상의 지식을 가지고 있을
것이라 미리 요구합니다. 그럭저럭 총 3개의 OS에 대한
지식을 필요로 합니다.
(추천할 만한 OS로는 SOLARIS필수, RH LINUX선택, MS 순 입니다.

=== 추천 지식 ==================================
OS SCRIPTING (PERL, SHELL), JAVA, 웹 관련 프로그래밍, 웹 서버 ,ERP
NETWORKING, SECURITY, 기타 DB, 경영학, 경제학 등.

한마디로 다다익선입니다. 하지만 다 할수는 없는 것이지요.
이중 최소 OS SCRIPTING중 하나와 (PERL 추천), 어느정도의 JAVA에
대한 기본적인 지식, 그리고 NETWORKING의 기본적 지식입니다.
MS-SQL같은 경우는 오라클을 어느정도 공부한 후에 보시게 되면
상당히 쉽게 공부를 할수 있어 가급적이면 하시라고 추천하고 싶습니다.

=== 로드맵의 예 ====================================
하루 여덟 시간, 모듈 당 2주로 계산을 해보았을 때의 추천 로드맵입니다.

필수 OS 1 -> 필수 OS 2 -> SQL -> PL/SQL -> DB ADMIN ->
BACKUP AND RECOVERY -> TUNING[-> JAVA & 선택 지식]

이미 아실런지 모르겠습니다만 VMWARE를 사용해서 타 OS에 오라클을
설치한 후, MS에서 오라클 DB를 액세스하는 형태로 사용하시는 것이
오라클을 공부하면서 동시에 OS에 대한 것도 어느정도 커버할 수는
방법입니다. 물론 선택하신 OS들을 병용해가면서 사용을 해야 겠지요.

개인적으로 생각하기에 취업에 도움이 될 만한 자격증으로는
ORACLE – DBA, SCSA (Sun Certified System Administrator) 정도입니다.
RHCE는 극악한 레벨로 SCSA보다 따기가 더 어렵고, MS관련 자격증은
있으면 좋지만, 그닥 도움은 안된다는 생각입니다. 그외 SCJD이던가?
SUN에서 나온 JAVA관련 자격증과, CCNA, ORACLE – DEVELOPER
정도까지만 하신다면 그럭저럭 어느정도 준비가 되었다…라고 생각합니다.

마지막으로, 이 모든 과정을 혼자서 지탱하기란 불가능한 것은 아니지만
참으로 버겁습니다. 믿을 수 있는 곳의 장기과정이나, 카페에서
스터디 그룹을 찾아 동참하시기를 추천합니다. 특히나 스터디 그룹은
운만 좋다면 현업자나 공인강사들이 주체가 되어 열리기도 하니
찾아보시기 바랍니다. 장기 과정을 선택하신다면 단순히 과정을
따라가는 것만을 목표하시기 보다는 짜투리 시간에 나름대로
혼자 몇가지 더 공부를 하시기 바랍니다.

좋은 결과 얻으시기 바랍니다.