최적화기 인터넷 서비스가 계속 발달하는 요새들어 드는 생각이 있다. 웬만한 서비스들은 합종연횡을 하며 통합되고 있다. UC 유비쿼터스라는 놈들도 나온다.

그런 와중에 시스템 전반에 대한 이해가 있는지에 대한 의문이 들었다.

웹서비스 웹은 웹이고 서비스는 서비스인데 왜 하필이면 웹서비스라는 말이 등장했을까? 웹 어플리케이션도 아니고..

나의 개인적인 사견은 결국 소프트웨어도 서비스로 발전할 것이라는 것이다. 더 쉽고, 더 편하고, 더 접근성이 좋은 웹으로 말이다. 벌써 부터 일반 어플(내가 말하는것은 기존의 VC나 파워빌더 등의 패키지 소프트웨어를 말한다.) 들이 웹으로 통합되고 있다.

그리고 잡지들은 SAAS(Software As A Service)란 말로 표현되고 있다. 하다 못해 오피스 프로그램과 게임도 웹으로 통합되고 있는 것이다.

그렇다면 내가 주업으로 삼고 있는 DB의 미래는 어떻게 될것인가? 과연 관계형 DB가 100년을 지속할 만한 기술일까? 이것 보다 더 좋은 기술을 없을까? 고민해 봤다.

나는 프로그래밍 언어중에 ADA라는 넘을 공부 했었다. 물론 이넘 정말 물건인 넘인데 현재 사용하고 있지 않다는 것이다. 왜 일까? 왜 그럴까? 내 개인적인 생각으로는 언어의 장벽이 너무 높았다. 최고의 기능과 최고의 사용성을 주어야 마땅했지만 결국 대중적인 언어로 자리 잡지는 못했다.

결국 지금은 C에 밀려 자바에 밀려 역사의 뒤안길로 사라져 간다. 그렇다면 앞으로 주목해야 할 프로그래밍 언어는 무얼까? 루비? 파이썬? ...

내 생각엔 아니올시다다. 이 두언어의 모습을 보면 이상하리 만큼 Lisp와 닮아 있다. 나는 앞으로의 대세는 Lisp일듯 싶다. 인간의 사고를 가장 잘 표현한게 함수형언어인 Lisp인듯 싶다. 그렇다면 Lisp는 언제 나온 언어 일까??

LISP을 다시 살펴보는 이유 linked by zdnet 아마추어 커널 해커 안윤호씨의 글

나는 결국 DB가 GRID 그리고 최종에는 P2P 형태로 갈것 같다. 오라클의 coherence 의 경우 미들웨어 인데 내부 아키텍처를 보면 GRID와 P2P를 합쳐놓은 듯한 모습을 보인다.

하지만 내가 말하고 싶은 것은 기술의 발전을 사람이 아직 쫒아가지 못한다는 것이다. LISP의 개념은 1950년대에 나왔다. 결국 하드웨어가 발달해 감에 따라 사람이 쉽게 접근 할수 있는 형태로 발전해 갈것 이라는 것이다.

결국 서비스를 만드는 개발자도 사람이다. 해커들의 선지자적인 모습들은 해석하기 나름이지만 나는 가능성을 열어둔것에 의의를 둔다. 선배 개발자들 중에 역시 백미는 knuth 교수일것이다.

나도 언젠가 knuth교수와 같이 노인이 되서도 멋진 프로그램을 만들어 보고 싶다. 하지만 아직은 아니다. 나는 아직 모르는게 너무 많다. ㅡ.ㅜ

그래서 나는 Multi Thread는 내머리에서 안되지만 멀티 쓰레드는 잘못하면 데드락 걸린다. 그래서 나는 인간 옵티마이저형 인간이고 싶다.

신고
크리에이티브 커먼즈 라이선스
Creative Commons License
top

Write a comment




오라클에 조금 관심이 있으신 분이라면 토마스 카이트란 이름을 기억 하셔야 할 것입니다.

그의 책은 정말 예술이며 정말 가려운 곳을 살살 긁어주는 것 같습니다. 아쉽게도 이번책도 번역의 품질이 문제가 되는 군요. 안타깝게도.

목차는 다음과 같습니다.

대략적인 책에 대한 평을 원하신다면 Oh! Good 입니다. 최상의 표현이지요. 제가 원서를 볼 실력이 안되다 보니 한글 번역서에 만족을 해야겠군요.

정말 영어가 되시는 분이라면 원서를 추천합니다. 하지만 가독성도 무시 못하니 되도록 한글을 권합니다.


제1장 애플리케이션 구축을 위한 올바른 접근법
중요한 것은 팀 노력이다
문서를 읽어라
지름길을 찾지 말라
단순화하라
제공된 기능을 사용하라

제2장 성능 툴키트
SQL*Plus
EXPLAIN PLAN
AUTOTRACE
TKPROF
Runstats
Statspack
DBMS_PROFILER
JDeveloper(그리고 디버깅)

제3장 아키텍처와 관련된 결정
공유 서버 대 전용 서버 연결에 대한 이해
클러스터링 이용
파티셔닝 이용 시기
병렬 작업을 사용할 시기 알기

제4장 효과적인 관리
SPFILE을 이용하여 데이터베이스 시작하기
데이터 파일의 관리를 오라클에 맡기기
복구의 방탄화
지역적으로 관리되는 테이블 영역 사용하기
세그먼트 공간 관리를 오라클에 맡기라
롤백 세그먼트 관리를 오라클에 맡기라

제5장 문 처리
SQL 문의 유형에 대한 이해
문은 어떻게 실행되는가?
쿼리의 시작과 끝
수정 DML의 시작과 끝
DDL 처리
바인드 변수의 사용
가능한 한 적게 파싱하기

제6장 비용 기반의 최적화기 활용 극대화
RBO가 사장된 이유
CBO로 하여금 최선을 다 하도록 만들기
CBO 최적화하기
10053 이벤트를 사용하여 CBO 선택 추적하기

제7장 효과적인 스키마 디자인
스키마 디자인 기본 원칙
테이블 종류 개요
B*트리 인덱스 클러스터 테이블
인덱스 조직 테이블(IOT)
외부 테이블
인덱싱 테크닉
압축

제8장 효과적인 SQL
효율적인 SQL을 작성하는 데 필요한 것
액세스 경로 이해하기
조인에 대한 이해
SQL 바로 알기
쿼리를 튜닝하지 말라
기타 SQL 테크닉 개요

제9장 효과적인 PL/SQL 프로그래밍
왜 PL/SQL인가?
가능한 한 적게 작성하라
패키지를 사용하라
정적 SQL을 사용하라
대량 처리
데이터 반환하기
%TYPE과 %ROWTYPE을 사용하라
호출자 권한 이용하기
조회 작업을 효율적으로 수행하라
자치 트랜잭션을 사용할 때 주의하기
암시적 혹은 명시적 커서를 사용할지 선택하라

제10장 그렇게 사고를 만났다
무엇이 다른지를 찾는다
한 번에 한 가지만 변경한다
이 한 가지를 변경하는 데는 충분한 근거가 있어야 한다
변화를 되돌릴 수 있어야 한다
테스트 사례를 작성한다

부록 설치와 몇 가지 스크립트
BIG_TABLE 설정하기
자주 사용되는 스크립트
PRINT_TABLE
SHOW_SPACE
COLS_AS_ROWS
GEN_DATA
신고
크리에이티브 커먼즈 라이선스
Creative Commons License
top
  1. Favicon of http://blog.daum.net/killereco BlogIcon killereco 2007.12.06 14:05 신고 댓글주소 | 수정/삭제 | 댓글

    개인적으로는 권순용님이 쓰신 "perfect 오라클 실전튜닝"을 추천합니다

Write a comment





티스토리 툴바