2. ■ 나는 왜 Postgresql 을 쓰는가?
• Framework 이기 때문에.
• 그럼 왜 Framework 인가?
• 아래 기능을 보고도 Framework 가 아니라고 할 수 있나.
• #-기능-1 : 소켓 관련 작업.
• #-기능-2 : HTTP 관련 작업.
• #-기능-3 : 메일 발송.
• #-기능-4 : 웹 크롤 작업.
• #-기능-5 : DNS 작업(MX 레코드 조회 등)
• #-기능-6 : 이미지 작업(이미지 회전, 축소, 확대, thumb nail 만들기
등)
• #-기능-7 : 다른 DB 즉 Mysql 이나 Oracle 등과의 연동 작업.
• #-기능-8 : 비동기 작업(Listen-Notify 를 이용).
• #-기능-9 : 각종 그래프 작업.
• #-기능-10: 각종 통계 작업.
• #-기능-11: 기타 작업.
3. ■ 저런 작업이 어찌 가능한가?
• pl/pgsql 뿐만이 아니라 pl/python 이나
pl/perl 등의 언어를 지원하기 때문이다.
• 그래서 python 의 방대한 라이브러리를
사용할 수 있다.
4. ■ 어차피 웹프로젝트에서는 CRUD
가 대부분인데, 그런 작업들이 가
능하다고 해서 딱히 웹프로젝트에
서 Postgresql 을 써야할 이유는
없지 않은가?
• Logic 과 View 를 분리하는데 좋으니까,
즉 모든 Logic 을 DB 에서 처리(DB 로직
처리)하는데 참 좋다. 이 역시도
pl/python 등의 도움이다.
5. ■ ‘DB 로직 처리’는 어떤 형태
로 나타나는가?
• Postgresql 이 해당 웹페이지에서 필요
한 모든 정보를 XML 로 표현해서, 한 번
에 전송하고, 이를 받은 서버 언어(PHP,
JSP 등)에서는 관련 항목값을 View 의
적절한 부분에 뿌려주는 형태다.
6. ■ 그 정도는 Oracle 이나 Mssql
도 가능하지, 유독 Postgresql 만
가능한 것이 아니다.
• 그렇기는 하지만, XML 을 다루는데, pl/python 등의
도움은 엄청나다. Oracle 등에서 외부 언어의 도움
을 Postgresql 처럼 쉽게 받을 수 있는가.
• 그리고 ‘DB 로직 처리’에서 사용하는 XML 은 아래
요건을 충족해야 한다.
• 1) 모든 요소의 이름을 하나로 통일시킨다.
• 2) 모든 값은 속성으로 표현한다.
• 위 조건이 충족되지 않으면 개발 작업이 더딘데, 충
족되게 사전 라이브러리를 개발하려면 손이 많이 간
다. 확실한 것은 Oracle 등에서 이 작업이
Postgresql 만큼 편하지 않다.
7. ■ 그렇다면 ‘DB 로직 처리’를
해야 하는 이유가 있는가?
• 대부분의 로직을 DB 작업자가 DB 에서
처리하기 때문에, View 작업자의 작업
난이도가 팍 낮아진다. 그래서 간단한
교육으로, 웹디자이너나 웹퍼블리셔도
View 작업을 할 수 있다. 이것이 웹프로
젝트의 Risk 를 현저하게 줄일 수 있는
것이다.
8. ■ 최종 결론은?
• Postgresql 은 단순히 DB 가 아니다. DB
를 포함한 Framework 다.
• Framework 라고 부를 수 있는 DB 가
Postgresql 말고 과연 있을까?