1.Django 기본개념
파이썬 언어지만 도구일뿐
장고 - 웹서비스 개발할때 백엔드 스프링/스프링부트랑 같은 개념
전과정 경험해볼것.
서버와 프론트엔드 통신 api를 통해서
next js => 해당 파일 경로가 굉장히 복잡함 어디가 어딨는지
이래서 프론트랑 백엔드 분리해서 함 보안상 강력함
Django웹 개발 + AI
1. 아나콘다 python 3.11
가상황경 : p311_crawling
개발 경로 : c:\ai_exam\002_crawling

이렇게 파일하나가 생김
(3) 개발 테스트 서버 가동
python manage.py runserver->db.sqlite3가 생성됨

이렇게8000번 포트로 들어가면 잘 들어감
python manage.py runserver 0.0.0.0:9000 -> 아무나 다 들어오는데9000번
http://192.168.1.100:9000

(4) 장고에서는 모든 설정(setting)
=> 프로젝트명/settings.py 방화벽 세팅 외부 들어오는거 세팅 등등 각종 세팅
28줄이렇게 수정
ALLOWED_HOSTS = []
ALLOWED_HOSTS = ['*']# 이렇게 수정 하면 다 허용 프론트 주소만 입력해야 함
(5) 언어 설정
LANGUAGE_CODE = "ko-kr"
TIME_ZONE = "Asia/Seoul"

이렇게 한국어로 바뀜
<장고구조>
프로젝트파일(웹 서비스 가동)
+ 앱 (회원관리)
+ 엡 (API)
+ 앱 (관리자페이지)
+ 앱 (크롤링서비스)
파이썬 웹서비스 : Django(제일많이 쓰고, 규칙이 딱 있다.), Flask(규정없이 자유롭게 만들때, 자유도가 너무 높은게 단점 그래서 잘 안씀), FastAPI(Api 기능만 개발하는 경우)
(6) 앱(서비스) 추가
크롤링
django-admin startapp webcrawl
하면 이렇게 딱 폴더가 생김

sqlite3->test db 딱 한명만 접속 가능하다 함
crawling/urls.py
from django.contrib import admin
from django.urls 
import path
urlpatterns = [
path("admin/", admin.site.urls),
]
밑에처럼 수정
from django.contrib import admin
from django.urls import include, path
urlpatterns = [
path("admin/", admin.site.urls),
path("webcrawl/",include('webcrawl.urls')), # webcrawl 폴더에 urls이란 파일이있어야 열린다는뜻
]
]
No module named...
(7) 새로운 앱 경로를 설정하는 urls.py
/webcrawl/urls.py
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index')
]
(8) 화면 설계 views.py
/webcrawl/views.py
from django.shortcuts import render
# Create your views here.
from django.http import HttpResponse
def index(request):
return HttpResponse("안녕하세요. webcdrawl 페이지 입니다.") # Http 응답을 보낸다는 뜻
Starting development server at http://0.0.0.0:9000/
Quit the server with CTRL-BREAK.
http://localhost:9000/webcrawl/ 이렇게 하면 잘 뜰거임

http://localhost:9000/webcrawl/abc/ 했을 때 아까 그 페이지가 나올려면??

이렇게 수정
from django.urls import path
from . import views
urlpatterns = [
path('abc', views.index, name='index')
]

http://localhost:9000/
이게 메인페이지가 될려면??
"""
URL configuration for crawling project.
The `urlpatterns` list routes URLs to views. For more information please see:
https://docs.djangoproject.com/en/5.2/topics/http/urls/
Examples:
Function views
1. Add an import: from my_app import views
2. Add a URL to urlpatterns: path('', views.home, name='home')
Class-based views
1. Add an import: from other_app.views import Home
2. Add a URL to urlpatterns: path('', Home.as_view(), name='home')
Including another URLconf
1. Import the include() function: from django.urls import include, path
2. Add a URL to urlpatterns: path('blog/', include('blog.urls'))
"""
from django.contrib import admin
from django.urls import include, path
urlpatterns = [
path("admin/", admin.site.urls),
path("",include('webcrawl.urls')), # webcrawl/이라는 url로 접속 가능하게 함 webcrawl 폴더에 urls이란 파일이있어야 열린다는뜻
]
23줄 "" 이렇게 수정하면 됨

<챗봇 서비스 화면>
AI 챗봇을 만드려는데 html을 만들어줘.(X)
AI 챗봇을 만드려고 하는데...-> 제로샷이 아닌 퓨샷으로 하기
AI챗봇을 만드려고 아래 부분을 참조해서 제작해줘.
1. Chatgpt 같은 채팅화면으로 화면을 설계 해줘.
2. 디자인은 네이버의 구성 스타일을 참조해서 설계해줘.
3. html을 tailwindcss 프레임워크를 적용해서 제작해줘.
4. 팝업창, 새창은 Sweetalert2를 이용해서 제작해줘.
5. 제작된 디자인은 반응형으로 제작해줘.
6. API는 gemini API를 사용할 수 있게 제작해줘.
7. 데이터 처리는 axios를 사용해서 제작해줘.
8. gemini API 처리된 프로그램은 아래 소스를 참조해줘.
인공지능(Artificial Intelligence, AI)은 인간의 지적 능력을 모방하여 기계가 학습, 추론, 인지, 문제 해결 등의 작업을 수행할 수 있도록 하는 기술 또는 학문 분야입니다. 단순히 프로그래밍된 작업을 반복하는 것을 넘어, 스스로 데이터를 학습하고 판단하여 새로운 상황에 적응하거나 예측하는 능력을 포함합니다.
인공지능의 궁극적인 목표는 인간의 지능을 이해하고 이를 기계에 구현하는 것입니다. 이를 위해 다음과 같은 지적 능력들을 기계에 부여하고자 합니다.
1. 학습 (Learning): 경험(데이터)을 통해 스스로 지식을 습득하고 성능을 향상시키는 능력.
2. 추론 (Reasoning): 주어진 정보를 바탕으로 논리적인 결론을 도출하는 능력.
3. 문제 해결 (Problem Solving): 특정 목표를 달성하기 위한 방법을 찾아내는 능력.
4. 지각/인지 (Perception): 시각(이미지), 청각(음성) 등 외부 환경으로부터 정보를 받아들이고 이해하는 능력.
5. 언어 이해 (Language Understanding): 인간의 자연어를 이해하고 생성하는 능력.
6. 의사 결정 (Decision Making): 다양한 선택지 중에서 최적의 결정을 내리는 능력.
인공지능은 광범위한 분야이며, 그 안에는 여러 세부 기술들이 존재합니다.
1. 기계 학습 (Machine Learning, ML):
2. 딥러닝 (Deep Learning, DL):
3. 자연어 처리 (Natural Language Processing, NLP):
4. 컴퓨터 비전 (Computer Vision, CV):
5. 로보틱스 (Robotics):
기본적으로 AI는 대량의 데이터를 입력받아 특정 패턴을 학습하고, 이 학습된 패턴을 바탕으로 새로운 데이터에 대한 예측이나 판단을 내리는 방식으로 작동합니다. 알고리즘과 모델은 이 학습 과정을 효율적으로 수행하기 위한 도구입니다.
1. 약 인공지능 (Narrow AI / Weak AI):
2. 강 인공지능 (General AI / Strong AI):
3. 초인공지능 (Superintelligence):
인공지능은 현재 다양한 산업 분야에서 생산성 향상, 새로운 가치 창출, 복잡한 문제 해결에 기여하고 있습니다. 의료 진단, 금융 사기 탐지, 제조 공정 최적화, 맞춤형 교육 등 그 활용 범위는 무궁무진합니다.
미래에는 인공지능이 사회 전반에 걸쳐 혁신을 주도하고 있으며, 인간의 삶의 질을 향상시키고 인류가 당면한 문제들을 해결하는 핵심 동력이 될 것으로 기대됩니다. 그러나 동시에 데이터 편향, 윤리적 문제, 일자리 변화 등 사회적, 윤리적 고려 사항들에 대한 깊은 논의와 대비도 필수적입니다.
결론적으로 인공지능은 단순히 기술을 넘어 인류의 미래와 삶의 방식을 근본적으로 변화시킬 잠재력을 가진 매우 중요하고 흥미로운 분야입니다.
http://localhost/aichatbot/
이런 경로치면 아까 챗봇 사이트가 뜨게 할려면?
(1) 앱추가
django-admin startapp aichatbot
(2) urls.py연결
/crawling/urls.py 수정
/aichatbot/urls.py 생성
(3)views.py 작업
/aichatbot/view.py <- /webcrawl/views.py
(4)서버 가동
python manage.py runserver
(9)crawling/settings.py templates 경로 설정
INSTALLED_APPS = [
"django.contrib.admin",
"django.contrib.auth",
"django.contrib.contenttypes",
"django.contrib.sessions",
"django.contrib.messages",
"django.contrib.staticfiles",
"aichatbot", # 내가 만든 것 추가
]
templates 폴더생성 html 파일 모아 놓은 곳
aichatbot 폴더 하나 더생성한담에 ai_chat.html 넣기
extensions에 django template 검색
import os -> 외부와의 연동 필요
settings.py 59줄 수정
"DIRS": [os.path.join(BASE_DIR, 'templates')],
복잡한 코딩은 ai가 더 잘한다 프레임워크 잘쓰는법을 익히기
<영화 데이터베이스 검색>
google -> "imdb"
google -> "google dataset search"
Oracle, MySQL, MariaDB ....Oracle 쓰는 이유? -> 은행, 금융권 동시성, 오류가 나면 안되는 상황

->mysql client 클릭 -> 루트 암호

(1) 데이터베이스가 어떤 것이 있는지 확인하는 명령
show databases;
(2) 데이터베이스 자체를 삭제(drop)
진짜 고민하고 쓸것
drop database test;
(3) 데이터베이스에 들어가는 명령어
use mysql;
(4) mysql 데이터베이스 안에 있는 테이블을 보면 명령어
(show tables)
show tables;
데이터베이스 만들기
[o]데이터베이스명 : webcrawldb
[o]사용자 : webcrawl
[o]암호 : 1234
[o]포트 : 3306
[o]서버 : localhost
(5) 데이터베이스 생성 : create
create database webcrawldb;
(6) 사용자 생성
create user 'webcrawl'@'localhost' identified by '1234';
create user 'webcrawl'@'%' identified by '1234';
(7) 사용자가 사용할 데이터베이스를 지정(grant)
grant all privileges on webcrawldb. to 'webcrawl'@'localhost';
grant all privileges on webcrawldb. to 'webcrawl'@'%';
(8) 승인
flush privileges;
(9) 생성한 데이터베이스 확인
mysql -u webcrawl -p webcrawldb
<데이터베이스 접근>
google -> "mysql workbench"
Connection Name : 영화분석DB
Hostname : 127.0.0.1
Username : webcrawl
Default Schema : webcrawldb

db 연결 settings.py
DATABASES = {
"default": {
"ENGINE": "django.db.backends.sqlite3",
"NAME": BASE_DIR / "db.sqlite3",
}
}
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', # MariaDB uses the MySQL backend
'NAME': 'webcrawldb', # The name of the database you created
'USER': 'webcrawl',
'PASSWORD': '1234',
'HOST': '127.0.0.1', # Or your server IP
'PORT': '3306', # Default MariaDB port
'OPTIONS': {
# 'init_command': "SET sql_mode='STRICT_TRANS_TABLES'",
'charset': 'utf8mb4',
},
}
}
django pymysql settings.py 검색
mysql database 연동
pip install pymysql
import pymysql
pymysql.install_as_MySQLdb()
(10) Django가 제공하는 기본 테이블 만들기
python manage.py migrate
(11) 관리자 생성
python manage.py createsuperuser


