인공지능을 공부하면서 궁금해왔던 것이 ai는 어떻게 서비스를 제공하지? 하는 부분이였다.
AI를 공부하면서 플렛폼 개발과는 거리가 멀어지는 느낌을 갖긴 했지만 궁금한건 해결해야 하니깐...
물론 앱/웹에서 서비스를 제공하기 위해서 앱/웹 구조를 파악하고 서버/ 클라이언트를 공부하고 할게 많고 이 영역도 궁금하긴 하지만 일단 ai를 서비스하기 위한 Back-end 구축을 목표로 잡았다. (일단 간단하게 결과 값만 보자구...)
시중에 많은 자료, 블로그, 강의가 있는데 곳곳에서 따오고 이해한 부분을 적어가려고 한다.
일단 ML/DL 은 python이 압도적이다. 제공되는 라이브러리도 많고 매우 편리하다. (제공되는게 너무 많아서 다 공부해야하는 것도 문제지만...)
그리고 python은 웹 프레임워크로 Flask, Django를 제공한다. 이 둘중에서 난 Django를 통해 ai model을 배포해보고자 한다.
Django
배포를 하더라도 일단 Django가 뭔지는 알고 가야하지 않을까...
장고 자료 : https://developer.mozilla.org/ko/docs/Learn/Server-side/Django/Introduction
해당 두 자료가 Django를 공부하기엔 좋은 자료인거 같다.
Django에 대한 기본적인 구조 및 개념은 해당 블로그에 따로 정리했다.
---------------(블로그)
실행 환경
anaconda prompt
1. 장고 설치
>> pip install django~=2.0.0
2. 장고 기본 골격 만들기
>> django-admin startpoint [디렉토리 이름]
ex) django-admin startpoint mysite
manage.py : 는 스크립트인데, 사이트 관리를 도와주는 역할을 합니다. 이 스크립트로 다른 설치 작업 없이, 컴퓨터에서 웹 서버를 시작할 수 있다.
settings.py : 웹사이트 설정
urls.py : urlresolver가 사용하는 패턴 목록 포함(우편배달부가 어느 곳으로 편지를 배달해야 하는지 판단 때 필요)
3. 설정 변경
mysite/settings.py 을 살짝 수정.
# 정확한 현재 시간 설정
TIME_ZONE = 'Asia/Seoul'
# 정적파일 경로를 추가. css 다룰 때 필요
STATIC_URL = '/static/'
# 해당 코드는 직접 추가해야함. STATIC_URL 밑에
import os
STATIC_ROOT = os.path.join(BASE_DIR, 'static') # ROOT 경로 생성. 나중에 편하게 사용하기 위함.
# DEBUG가True이고 ALLOWED_HOSTS가 비어 있으면, 호스트는 ['localhost', '127.0.0.1', '[::1]']에 대해서 유효. 애플리케이션을 배포할 때 PythonAnywhere의 호스트 이름과 일치하지 않으므로 다음 설정. PythonAnywhere 녀석들과 자기 자신만 허용 가능!
ALLOWED_HOSTS = ['127.0.0.1', '.pythonanywhere.com']
4. DB 설정
해당 코드는 sqllite3 를 사용하기 위해 설정한거 같은데 db는 변경 가능하므로 다른 db 설정할 때도 똑같이 하면 되는지는 찾아보는 걸로...
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
|
DB 생성을 위해 아래 명령어 수행
>> python manage.py migrate
5. 웹서버 시작
>> python manage.py runserver
127.0.0.1의 8000번 포트에서 잘 시작됐다고 나온다. Ctrl-C를 누르면 종료된다.
그럼 웹에서 127.0.0.1:8000을 접속하면 아래와 같은 화면이 나온다.
참고
tutorial.djangogirls.org/ko/django_installation/
tutorial.djangogirls.org/ko/django_start_project/