이제 많은 사람의 입에 오르내리는 웹2.0이라는 개념은 오라일리(O'Reilly)와 미디어라이브 인터내셔널(MediaLive International)에서 탄생했다.[1] 2000, 2001년 닷 컴 거품이 무너지면서 살아남은 기업들이 가진 특성을 모아 웹2.0이라고 하고, 이는 2004년 10월 웹 2.0 컨퍼런스를 통해 사람들에게 널리 알려졌다. 아직까지도 웹2.0은 어느 범위까지를 통칭하는 개념인지는 여전히 논의 중이지만, 대체로 다음과 같은 키워드를 이용해 설명할 수 있다. 플랫폼, 집단 지능, 데이터 중심, 경량 프로그래밍 모델, 멀티 디바이스 소프트웨어. 이 가운데 경량 프로그래밍 모델을 적용한 웹 기술이 계속 발전해가고 있다. 웹2.0 사이트는 Adobe Flash/Flex, CSS, 의미를 지닌 XHTML markup과 Microformats의 사용, RSS/Atom를 사용한 데이터 수집, 정확하고 의미있는 URLs, 블로그 출판들 같은 전형적인 기술을 포함한다.[2] 이러한 기술과 더불어 기민하게 웹 어플리케이션을 만들 수 있는 프레임워크도 점차 많아지고 있다. 대표적으로 Ruby on Rails(RoR)는 블로그 사이트를 15분만에 만들어내는 것으로 큰 관심을 모았다.[3] RoR과 같은 웹 어플리케이션 프레임워크는 모델, 뷰, 컨들롤러 구조에서 모델을 데이터베이스와 손쉽게 연동할 수 있어 인상 깊다. 이러한 맥락에서 python언어로 만든 django라는 프레임워크가 존재한다. RoR과 마찬가지로 django를 이용하면 기민하게 동적으로 웹 사이트를 만들 수 있다.[4] Django에서는 모델, 뷰, 템플릿, 세팅 등을 이용하여 웹 사이트를 구축할 수 있는 특징과 함께, 관리자 인터페이스를 자동으로 제공해주는 장점을 가진다. 또한 모델과 데이터베이스를 자동으로 동기화 해주고, 데이터를 삽입, 변경, 삭제할 때 웹 개발자가 직접 데이터베이스에 질의를 던지지 않아도 되도록 데이터베이스 접근을 추상화하였다. 본 논문에서는 django의 사례를 바탕으로 기민한 웹 어플리케이션 프레임워크가 데이터베이스를 어떻게 추상화했는지 살펴본다. 또한 django가 어떻게 추가적으로 데이터베이스를 사용하도록 API를 지원하는지 살펴본다. 마지막으로 django에서 지원하지 못하는 기능을 살펴보고, 미비한 부분을 개선할 방안을 제시한다. ---- [졸업논문]