역시나 간만에 포스팅 입니다~! 오늘은 가벼운 실무 주제로 2개의 포스팅을 진행하려고 합니다. 바로 DJango로 이주하는 이야기를 해볼까 하는데요~ 크게 다음 2가지의 주제로 이야기를 해보려고 합니다.
- 기존의 서비스가 존재하나, 기존의 웹 서비스를 버리고 새로운 웹 서비스를 구축하고자 하는 경우
- 기존의 서비스가 존재하며, 기존의 웹 서비스를 유지하며 새로운 서비스를 구축하고자 하는 경우
위 2가지 상황에 대해 각각 이야기를 진행해 보고자 합니다. 그 중, 첫 번째로 ‘기존의 서비스가 존재하나, 기존의 웹 서비스를 버리고 새로운 웹 서비스를 구축하고자 하는 경우’ 에 대해서 알아볼까 합니다.
시나리오 정의
사실, 이러한 경우는 여러가지 이유가 있을 수 있습니다. 기존의 웹 서비스가 유지 보수하기 힘든 경우일 수도 있고, 비용 절감의 문제로 기존의 웹 서비스를 저 비용의 운영 환경으로 전환하기 위한 경우 일 수도 있습니다. 경우야 어떻든, 기존의 데이터는 유지하면서 새로운 웹 서비스를 작성해야 한다는 점에서 공통점을 지니는 상황 들이죠. 오늘 주제에 대한 간략한 시나리오를 구상해 봅시다.
- 기존에 서비스 중이던 웹 서비스가 존재 합니다.
- 이 서비스는 .net 기반으로 Windows 2000 서버에서 구동 중 이였습니다.
- 비용 절감을 위해 .net 기반의 웹 서비스를 다른 웹 서비스로 이전 하고자 합니다.
- 이 때, 마침, 정말 절묘하게도, 마치 짠 듯이 DJango 로 웹 서비스를 구축하려고 마음 먹었다고 가정 합니다.
….굉장히 작위적인거 같지만, 일단 무시하도록 하고… 저런 상황이라고 가정해 봅시다. 물론 PHP 로 전환하거나 Java 베이스의 웹 프레임 워크가 될 수도 있지만, 여기선 억지로라도 DJango 로 이주한다고 합시다.
환경 둘러보기
굉장히 작위적이지만, 일단 환경을 다시 돌아보도록 하겠습니다. .net 기반의 웹 서비스지만, 데이터베이스는 MySQL을 사용했다고 가정 합시다. 그래서 요구 사항과 현재 상황 등을 정리해 보면 다음과 같습니다.
- 운영 중인 서비스는 Windows 2000 환경이며, Django 는 Linux 베이스 컴퓨터로 이주할 계획입니다.
- 데이터베이스는 MySQL 을 사용 중이며, 내부에 있는 모든 데이터는 건드리지 않고 그대로 사용하고자 합니다.
생각보다 가볍네요. 자, 이런 상황에서 본격적으로 작업을 시작해 볼까요?
DJango 의 inspectdb 기능 활용하기
사실, 작위적인 설정이 나온 이유는 바로 Django의 inspectdb 라는 유틸리티 기능을 소개해 드리기 위해서 입니다. ‘기존에 사용하던 데이터베이스를 DJango에서 그대로 사용할 수 는 없을까?’ 란 질문에 대한 해답이며, 매우 매력적인 기능 입니다. 사용 방법 역시 매우 간단한데,
- settings.py 에서 inspectdb 기능을 사용하기 위한 데이타베이스를 설정해 둡니다.
- 기존과는 다르게, ‘inspectdb’ 명령을 사용합니다.
- 끝.
- 바로 File 로 저장하고자 한다면, 리다이렉션을 사용하여 ‘inspectdb > models.py’ 의 형태로 뽑아 냅니다.
- 끝.
이게 끝 입니다. 이제 여러분은, Model을 다 가져 왔으니 여러분들의 서비스만 만들어서 배포 하시면 됩니다. 한번 간단하게 실험을 통해 알아볼까요?
테스트 하기
이곳을 통해서 간단한 샘플 데이타베이스 자료를 받고, 샘플 데이타베이스를 만들어 봅시다. 테스트를 위해서 SQLite3 의 데이타베이스를 활용하여 적용하도록 하구요.
적용하기 및 서비스하기
간단한 테스트를 통하여 inspectdb 기능에 대해 알아 봤습니다. DJango 가 가진 가장 매력적인 부분은 제가 볼 때는 ‘빠르게 적용 가능한’ 웹 서비스란 점이 아닐까 싶습니다. 도중에 데이터도 날아가고, 캡쳐도 정상적으로 되지 않아서 포스팅을 길게 하는 건 포기하고 여기까지만 작성하는 것으로….. 하겠습니다 ㅠㅠㅠ
* 제가 캡쳐를 다 하고 보니, 몇 가지 설정을 빼 먹어서 제대로 된 데이터베이스가 생성되지 못 한걸 발견했습니다. 해당 부분은 내용을 보충하여 추후에 업데이트 하도록 하겠습니다 ㅠㅠ
[…] 계획들을 실행하기 딱 좋은 날이네요!! 오늘은 지난번에 작성 했던 ‘DJango로 이주하기 – 기존 DB를 활용하여 웹서비스 구축하기‘ 의 연장선에 있는 포스팅 입니다. 즉, 기존 서비스가 존재하여 이를 […]
좋은 강의 감사합니다
답변이 많이 늦었습니다 ㅠㅠ 좋은 정보가 되셨길 바랍니다!
[…] 계획들을 실행하기 딱 좋은 날이네요!! 오늘은 지난번에 작성 했던 ‘DJango로 이주하기 – 기존 DB를 활용하여 웹서비스 구축하기‘ 의 연장선에 있는 포스팅 입니다. 즉, 기존 서비스가 존재하여 이를 […]
이걸 이용하면 DB 설계와 구축을 먼저하고 그 위에 장고를 올리는 것도 가능하겠네요. 좋은 글 감사합니다.
님의 수고에 감사를 표하고 싶습니다. 정말 유용한 정보입니다.