TIL/Python

241122 인공지능을 위한 파이썬 - 5주차

beady 2024. 11. 22. 19:53

프레임워크와 라이브러리

- 프레임워크 : 애플리케이션 개발의 기본 구조와 흐름을 제공하는 틀
이미 기본 구조가 짜여져 있음. 일정한 방식에 따라 코드 작성이 강제됨

- 라이브러리 : 모듈이나 함수들의 집합, 개발자가 필요에 따라 호출해서 사용

 

- 프레임워크의 특징

1. 제어의 역전 : 프레임워크가 애플리케이션 흐름을 주도. 개발자는 요구하는 방식으로 코드 작성

2. 일관성 : 일정한 패턴을 따르므로, 유지보수 용이함

 

- 프레임워크와 라이브러리의 차이

1. 제어 흐름

  • 라이브러리 : 개발자가 흐름 제어
  • 프레임워크 : 프레임워크가 흐름 제어

2. 코드 작성 방식

  • 라이브러리 : 원하는 기능만 선택적으로 사용
  • 프레임워크 : 일정한 구조와 규칙에 따라 코드를 작성

비유로 이해하기

  • 라이브러리 : 여러 도구가 준비된 도구 상자
  • 프레임워크 : 완성된 집을 짓기 위한 설계도

 

Django : 파이썬 기반의 웹 프레임워크. 웹 개발에 필요한 거의 모등 기능을 내장

1. 빠른 개발 : 개발 속도 높임. 반복작업 자동화

2. 보안 : 다양한 보안 문제 예방

3. 확장성 : 대규모 프로젝트에도 사용 가능.

4. Dry 원칙 : "Don't Repeat Yourself" 원칙. 중복 코드 최소화

 

- Django의 주요 구성 요소

1. 모델 : 데이터베이스에 저장할 정보를 정의. 데이터의 구조와 형식을 정함
ex) 제목, 내용, 작성 날짜 등

2. 뷰 : 사용자가 보는 화면 담당. 사용자가 웹 사이트에서 무언가를 요청할 때 그에 대한 답을 준비함

3. 템플릿 : 보여줄 화면의 모양과 구조를 만드는 곳
ex) 웹 페이지 디자인

4. URL 컨피그(URLconf) : URL과 뷰를 연결하는 역할. 만든 페이지와 주소를 매칭

 

- Django의 기본 동작 흐름

1. URL 요청

2. 뷰 호출

3. 데이터 처리 및 HTML 생성

4. HTML 응답

 

- Django를 사용해 가능한 작업들

1. 다양한 웹 애플리케이션 개발

2. 관리자 인터페이스 제공

3. API 개발

 

 

Django의 핵심 구조인 MVT(Model-View-Template) 패턴

- MVT 패턴 : Django에서 사용하는 아키텍처 패턴. 웹 애플리케이션의 기본 구조 정의

1. 모델(Model) : 데이터베이스 구조, 데이터 처리 로직을 정의함
데이터 저장, 조회, 수정, 삭제 작업 수행
Django는 ORM(Object-Relational Mapping)을 제공 : SQL이 할 수 있는 동작을 파이썬 코드로 수행 가능하게 함

 

2. 뷰(View) : 비즈니스 로직과 데이터 처리 담당
사용자의 요청에 따라 적절한 데이터를 모델에서 가져옴
어떤 데이터를 보여줄지 결정하고 데이터를 템플릿에 전달

 

3. 템플릿(Template) : 사용자에게 보여질 화면을 정의
뷰에서 전달받은 데이터를 표시
실제로 보게되는 웹 페이지의 디자인과 레이아웃을 담당

 

MVT 패턴의 동작 흐름