0808 목요일 Django 주차 시작

김나현·2024년 8월 8일
0
post-thumbnail

챗GPT 장고

Django(장고)는 파이썬으로 만들어진 웹 프레임워크예요. 쉽게 말하면, 웹사이트나 웹 애플리케이션을 만들 때 필요한 기본적인 구조나 기능들을 미리 만들어 놓은 도구라고 할 수 있어요. 이걸 사용하면 웹 개발을 훨씬 더 빠르고 쉽게 할 수 있어요.

Django의 주요 특징:
빠른 개발: Django는 많은 기능이 기본적으로 포함되어 있어서, 개발자들이 처음부터 모든 걸 다 만들 필요 없이 빠르게 웹사이트를 만들 수 있어요.

안전성: Django는 보안에 신경을 많이 써서, 웹사이트를 만들 때 자주 발생할 수 있는 보안 문제들을 미리 방지해주는 기능들이 있어요.

확장성: 작은 웹사이트부터 대규모의 복잡한 웹 애플리케이션까지 다양하게 확장할 수 있어서, 필요한 기능을 추가하거나 변경하는 게 쉽습니다.

풍부한 기능: 사용자 인증, 데이터베이스 관리, 폼 처리, 관리자 페이지 같은 웹 개발에 필요한 기능들이 기본적으로 제공돼요.

예를 들어:
만약 친구들과 함께 공유할 수 있는 블로그 웹사이트를 만들고 싶다면, Django를 사용하면 로그인 시스템, 글쓰기, 댓글 달기 같은 기능들을 쉽게 추가할 수 있어요. Django는 이런 기능들을 미리 준비해두고 있어서, 개발자들은 기본적인 기능을 만들기보다, 자신이 만들고 싶은 기능에 더 집중할 수 있게 해줍니다.

요약하면, Django는 파이썬으로 웹사이트를 쉽게 만들 수 있도록 도와주는 도구입니다. 특히, 빠르고 안전한 웹 개발이 가능하게 해줘서 많은 개발자들이 사용하고 있어요.

CSS (Cascading Style Sheets)는

웹페이지를 꾸미려고 작성하는 코드입니다.

웹사이트를 만들려면 무엇이 필요한가?

  • 회원가입
  • 유저기능 / 프로필페이지, 로그인/로그아웃
  • 회원탈퇴
  • 비밀번호 변경
  • 데이터베이스
  • 보안
  • 좋아요 기능
  • 팔로우 기능

기능 구현 방법

1️⃣ 프로그래밍 언어를 이용해서 하나하나 모두 만드는 방법
  • 장점
    • 자신이 모든것을 이해할 수 있습니다.
    • 모든것을 뜻대로 동작하게 만들 수 있습니다.
  • 단점
    - 모든것을 아주 잘 알아야 합니다.
        → 웹의 특성, 보안, 데이터베이스 등 정말 많은 부분들이 있어요.
        
    - 너무 많은 시간이 걸립니다.
2️⃣ 이미 만들어진 것을 가져와서 사용하는 방법

→ 로그인 / 로그아웃 같이 많은 기능들이 웹사이트 마다 비슷해요!

  • 장점
    • 모든것을 만들 필요없이 가져다가 사용하는 방식으로 개발이 가능합니다.
    • 아주 빠르게 웹 사이트를 만들 수 있습니다.
  • 단점
    • 처음에 러닝 커브가 존재합니다. → 다른 개발자들이 만들어놓은 코드를 어느정도 이해하고 사용법을 알아야 해요!
    • 모든것을 원하는대로 커스텀하기 어렵습니다. → 가져다가 쓰는 것이기 때문에 한계가 존재해요.

러닝 커브

'러닝커브(Learning curve)'란 IT 업계에서 흔히 쓰이는 용어로, 신기술을 학습하는 데에 소요되는 시간을 나타내는 곡선이다. 프로그래밍 언어마다 난이도가 다르고, 사람마다 배우는 속도가 다르니 어떤 기술을 누가 공부하느냐에 따라 러닝커브가 다르다.

만들어진 도구들을 가져다가 사용한다.

프레임워크(Framework)란?

📚만들어진 소프트웨어 개발을 위한 구조적인 틀.
특정한 작업이나 목적을 수행하기 위한 코드 뭉치

📚 왜 사용할까요?

  • 프레임워크를 사용하면 생산성이 아주 높아집니다.
  • 부가적인 부분은 프레임워크에 맡기고, 핵심 로직에만 집중할 수 있습니다.
  • 구조적으로 안정적인 형태로 개발이 가능합니다. → 프레임워크는 슈퍼개발자, 한명도 아니고 여러명이 모여 논의를 통해 만들어져요! 즉, 굉장히 단단하고 안정적인 코드예요!
  • 빠르고 안정적이며, 높은 품질의 소프트웨어 개발 가능합니다.

거인의 어깨 위에서 시작 ...

이미 만들어져있는것 잘 사용하는것도 능력

데드라인을 지키는 완벽주의자들을 위한 도구 Django

LTS(Long Term Support)

호환성 고려
가장 최신버전이 항상 좋지 않다. 안정이 더 중요하다
안정 = 장기적 지원 보장

asgiref==3.8.1
Django==4.2
sqlparse==0.5.1
typing_extensions==4.12.2

프젝에 올릴때 이 파일을 함께 준다
pip install 후 pip freeze > requirements.txt_ 통해서
명시해주는 작업이 필요하다

명령어
pip install -r requirements.txt_
requirements.txt를 쭉 읽으면서 하나씩 다 설치해준다

하나의 프로젝트 == 하나의 소프트웨어
프젝 시작 == 하나의 프로그램 만들기 시작

프레임워크는 기능들이 엄청나게 많은 도구
전체적인 구성만 이해하기

settings, urls 이거 두개 많이 쓸꺼다 이거만 잘쓰면 된다

프젝 = 서비스
많은 기능들이 모여서 하나의 웹사이트를 이룬다
기능단위로 나누어서 앱을 만들고 관리하는게
유지보수하기에도 편하다

프젝 = 하나의 어플리케이션 또는 여러개의 어플리케이션의 집합체
프젝안에서 여러가지 앱을 만들면서 개발

앱은 프젝 안에 들어가는 하나의 기능단위 모듈

하나의 프젝에는 여러개의 앱으로 구성이 되고
앱에는 여러가지 파일이 있다.

앱 사용하기 두가지단계(앱의 이름은 복수형으로 짓는것을 권장)
1. 앱 생성 -> 2. 앱 등록

앱생성 명령어
python manage.py startapp articles
앱등록
프젝을 설정한 곳 setting.py 에서 INSTALLED_APPS =[ , "앱이름",]에서

앱 내의 여러 파일 중
models.py : 데이터베이스 관련 데이터를 정의하는 곳
views.py : 요청을 처리하고 그 처리한 결과를 반환하는 로직을 작성 하는 곳 (요청이 들어오면 처리해서 응답을 돌려주는 곳)
두개만 잘보면 된다

WEB 이해하기
world wide web: 전 세계에 펼쳐져 있는 거미줄

(물리적 선으로 연결되어 있다- 이 선을 따라서 데이터를 주고 받으면서 인터넷이라는 통신을 하고 있다. "해저 케이블")

케이블을 이용해서 데이터를 주고받는 것: 인터넷

profile
참 쉽죠? #개발계의 밥아저씨를 꿈꿉니다⋆⁺₊⋆ ☾⋆⁺₊⋆

0개의 댓글