시작하며
웹사이트 구축 시 리눅스 베이스의 APM (Apache + PHP + MySQL) 패키지를 사용하여 사이트 구축과 운영을 했었다. 구축부터 사이트 제작까지 만들고 운영했었지만 어느 순간부터는 주 업무 대비 비중이 커지다 보니 외주 개발을 통해 만들고 운영하게 되었다.
이후부터 웹사이트 개발에 손을 떼게 되었지만 사이트 구축 기획은 여전히 담당하고 관리하고 있었다.
그렇게 오랜 시간이 흘러 나만의 솔루션을 만들기 시작하며 고비용의 호스팅을 받지 않는 나로선 궁여지책으로 cafe24와 같은 저비용의 솔루션을 이용하게 되었지만, 내가 만든 프로그램과 연동을 고려했을 때 플랫폼의 한계를 느끼게 되었다.
Django
이름이 서부영화에서 종횡무진 활약하는 장고가 떠오른다.
장고는 2003년 로렌스 저널의 월드 신문을 만들던 웹 개발팀의 내부 프로젝트로 시작되어 2005년에 오픈소스 프로젝트로 공개되었다. 이후 구글의 웹 애플리케이션 엔진에 장고가 사용되면서 많은 사용자들의 유입을 도모하였고, 인스타그램, NASA, 모질라에서 장고를 사용하며 파이썬을 대표하는 웹 프레임워크로 자리매김하고 있다.
서버를 구축해야 되나?
장고 프레임워크를 사용해 보기 위해서는 다양한 OS플랫폼으로 제공되는 장고 사이트에서 설치 방법을 참고 할 수 있다. 글을 쓰는 현재 lastest version으로 5.0.2가 릴리즈 되어 있다.
Python이 설치된 환경에서 각 플랫폼 별로 아래와 같이 pip를 통해 설치 가능하다.
Linux / macOS:
python -m pip install Django==5.0.2
Windows:
py -m pip install Django==5.0.2
학습을 위해선 PC에 설치하여 사용 가능하지만 이를 배포하기 위해선 Django플랫폼을 지원하는 호스팅을 받아야 한다.
AWS의 클라우드 서버나 Cafe24등의 호스팅 서비스를 고민해 보았지만 운영 대비 비용을 감안했을 때 부담 되지 않을 수 없었다.
근래 저렴하게 판매되는 N100 CPU가 탑재된 미니 PC도 눈에 들어온다. 하지만, 이를 운영하기 위한 환경 구축과 관리가 여간 귀찮은 게 아니다.
Pythonanywhere
cafe24에 워드프레스 전용 상품을 통해 홈페이지를 만들고 운영하고 있다. 블로그 기능이나 포트폴리오들은 곳곳에 흩어져 있어 이를 한곳에 모아주는 허브 역할의 홈페이지라 용량도 크지 않아도 되고 정적인 페이지만 구축하여도 큰 문제가 없어 월 1,100원짜리 플랜과 도메인을 구입하여 이를 연결하여 사용 중이다. (https://www.vokalabs.com)
쉘과 FTP도 지원하여 콘솔을 통해 PHP프로그래밍도 가능하지만 내가 적용하고 싶은 Django가 설치되어 있지 않고, 심지어 쉘에서 확인해보니 python도 2.x때의 버전으로 내가 한참 개발할 때 쓰던 버전이 보인다.
클라우드 플래폼도 다시 기웃거려 보지만 관리적 측면이 매우 번거로운 게 아니다. 얘네는 트래픽 넘어가면 자동 차단 개념 없이 그냥 과금 체계라 늘 신경 써야 하기에 구축은 둘째치고 늘 신경 써야 하는 게 매우 번거롭게 느껴진다.
그러던 중 눈에 띄는 서비스가 보였다.
Ptyhonanywhere by ANACONDA의 타이틀을 가지고 있다.
사용자에게 보이는 시스템이 웹을 통해 보이지만 웹을 통한 쉘 제공등은 매우 신선하게 느껴졌다.
장고의 기본 개념
일반적으로 APM 세트만 설치하더라도 Apache에서 설정한 홈디렉터리에 html파일이나 php파일을 넣어 바로 웹서비스를 하면 되었다.
그런데, 장고는 달라도 너무 다르다.
처음 그 개념을 잡는데 상당히 곤욕을 치뤘다.
위와 같은 순서로 기본 설정을 할 수 있다. 설정방법은 별도로 작성한 문서를 참고할 수 있다. (Django 기본 설정 방법)
위와 같은 개념이 처음에 머릿속에 들어오지 않았다.
vokalabs라는 내 타이틀을 사용하여 앱을 생성하였을 때 그 아래로 동일한 이름의 디렉터리가 보인다.
vokalabs 하위로 보이는 vokalabs는 전체 프로젝트를 관리하는 곳이라고 생각하면 된다.
이후 내가 만들려는 프로젝트명인 'nara'를 앱을 생성하고 이곳에서 templates라는 폴더에 html 등을 넣어 웹서비스를 할 수 있다.
nara/views.py 소스 내용
프로그래밍은 nara/ 폴더 내의 views.py에서 작업하고 이를 설정 파일에서 연결해 준다.
확실히 APM에서의 운영 방식 대비 매우 번거로운 건 사실이다.
그래도, python에 최적화된 웹 프레임워크를 이용할 수 있다는 것은 큰 장점으로 다가선다.
도메인연결
내가 기본으로 설정한 name과 url을 조합하면 아래와 같았다.
voka.pythonanywhere.com
기본 도메인이 길다 보니 상당히 눈에 거슬린다.
그리하여, 도메인 업체에서 1년 간 아주 저렴하게 판매하는 도메인을 구매하여 이를 연결해주고자 했다.
shop, store, space, me 등의 도메인은 500원~2000원 내외로 1년간 사용할 수 있다. 하지만, 사이트가 대박 나 연장을 해야 한다면 이후부터는 $40~$80대의 값 비싼 비용을 지불해야 하는 단점도 있다.
1. 구입 한 도메인 연결 설정
가비아, Cafe24 등에서 저렴한 도메인을 구입할 수 있다. 내 경우 좀 독특한 도메인을 찾고 있었고, GoDaddy에서 구입한 도메인을 연결했다.
로그인 상태에서 'Web'탭으로 이동한다.
Confkguration for 'www.aicanvas.space' 옆에 펜 모양의 아이콘을 눌러 구입한 도메인이름을 넣고 저장한다.
이때 아래로 'DNS setup:'에 CNAME: webapp-2020698.pythonanywhere.com' 가 생성된다.
2. 도메인 사이트 설정
DNS관리 페이지에서 신규 레코드를 아래와 같이 추가한다.
이는 GoDaddy 뿐만 아니라 Gabia나 Cafe24에서도 비슷하게 설정할 수 있다.
위와 같이 'CNAME'의 유형으로 이름은 'www', 데이터는 pythonanywhere에서 보이는 CNAME을 입력하면 된다.
3. 파일 설정
settings.py 파일에서 ALLOWED_HOSTS 내용을 수정해야 한다. 즉, nara라는 작업 디렉터리가 아닌 프로젝트 관리 디렉토리 안의 settings.py를 열어 ALLOWED_HOSTS를 아래와 같이 설정한다.
도메인 연결이나 일부 기능은 무료 플랜에서는 사용할 수 없다.
다만 그 비용이 그리 비싸지도 않다. 월 $5 Hacker플랜으로도 내가 하려는 기능은 모두 지원하기에 비용을 지불했다.
참고로 내가 구현하려는 기능은 외부 사이트에 접속을 해야 하는데 이건 무료 플랜에서는 지원하지 않는다.
마치며
AI시대가 더욱 우리 앞에 다가왔다.
이런 AI 기술이 점차 보편화돼 가고 있는 시점에 이런 경험들은 AI를 보다 잘 사용할 수 있게 하는 원동력이 아닐까 생각이 든다.
이 글 또한 AI가 학습하면 누군가에게는 유용하게 사용될 것이고 이런 과정들이 쌓여 더욱 편리한 환경을 만들 수 있지 않을까?
'BB Life' 카테고리의 다른 글
챗GPT를 활용한 프로그래밍 : 변경된 OpenAI호출과 OpenAI키 암호화 방법 (0) | 2023.11.17 |
---|---|
맥북에어 15인치 쓸만할까? (1) | 2023.11.09 |
알폰스 무하, 더 골든 에이지 전시회 관람 후기 (0) | 2023.05.09 |
갤럭시 탭 S8로 시작하는 그림 생활 (1) | 2023.03.27 |
다시 붓을 들다, 나의 명상 수련법 (0) | 2023.01.18 |
댓글