[SSAC X 코딩온] (2021.08.17) Django 입문 수업 1일차

RyuSW·2021년 8월 30일
0
post-thumbnail

🎬 Django란?


  • Python으로 만들어진 무료 오픈소스 웹 애플리케이션 프레임워크로 쉽고 빠르게 웹사이트를 개발할 수 있도록 돕는 구성요소로 이루어져 있다.

  • 장점 :

    • 1) 효율적인 개발 환경을 갖춘다.

      • Django는 MTV 패턴을 따른다.

        • Model : 데이터베이스와 관련된 코드 수집
        • Template : 웹 Frontend와 관련된 코드 수집
        • View : 웹 Backend와 관련된 코드 수집
      • 다른 프레임워크(ex : Spring 등)들은 MVC 패턴을 따른다.

        • Model : 데이터베이스와 관련된 코드 수집
        • View : 웹 프론트엔드와 관련된 코드 수집
        • Controller : 웹 백엔드와 관련된 코드 수집
    • 2) 기본적인 보안 설계가 많이 되어 있다.

    • 3) DB를 설치하지 않아도 자동으로 제공되는 등 A~Z까지 다 만들지 않아도 됨.

    • 4) Python 기반 프레임워크이기 때문에 데이터 분석이나 AI 활용에 유리하다.


🛠 Ubuntu(Linux 운영체제 계열)에서 Django 설치


  1. Putty 터미널을 켜주고 다음 명령어를 입력하여 python3를 설치해준다.

    apt install python3-pip

    • pip : python과 관련된 패키지를 설치하거나 삭제하도록 관리해주는 프로그램
    • apt : Ubuntu에서 프로그램을 설치할 때 사용하는 명령어

  1. 그 후 아래 명령어로 Django를 설치해주면 끝

    pip3 install Django


📢 자주 쓰는 Linux 명령어


  1. ls : 자신이 위치한 폴더의 내용물 확인
  2. pwd : 현재 나의 위치 확인
  3. cd [이동할 폴더] : 폴더 이동
  4. cd .. : 한 단계 상위 폴더로 이동
  5. mkdir [만들 폴더 이름] : 폴더 생성
  6. rm -rf [삭제할 폴더명] : 폴더 삭제

  • vi 명령어 (txt 파일 형식을 Linux계열 운영체제에서 관리하는 법)

    1. vi [파일명] : 파일 열기, 마우스 없이 커서 이동으로 조작
    2. esc : 기본 모드로 전환
    3. i : 커서 위치에서 편집
    4. o : 현재 커서 한줄 추가 + 편집모드
    5. dd : 잘라내기 (dd3-3줄 삭제) 등 사용가능
    6. dw : 한 단어 삭제
    7. yy : 복사 (yy3 - 3줄 복사)
    8. yw : 한단어 복사
    9. p : 붙여넣기
    10. u : 되돌리기
    11. x : 커서안의 문자 하나 삭제
    12. :q! : 저장하지 않고 파일 닫고 나가기
    13. :wq! : 저장 후 파일 닫고 나가기

📑 Django 작업 순서


  • 프로젝트 :

    • 자기가 만들고자 하는 작업물(ex : 쇼핑몰)을 프로젝트라고 부른다.

    • 1개의 프로젝트는 최소 1 이상의 n개의 App으로 구성되어 있다.

  • App :

    • 각각의 독립된 기능을 수행할 수 있는 단위

    • App과 App은 서로가 절대 의존적일 수 없다! 반드시 독립적이어야 함!


  1. /root 경로 안에 Django를 사용할 폴더를 만들어 준다.
  • 필자의 Django 폴더 이름은 'ssac-django'이다.


  1. 아래와 같은 명령어로 프로젝트를 만들어준다.

    django-admin startproject [프로젝트명]

  • 프로젝트를 생성하면 그 안에 동일한 이름의 App이 자동으로 생성된다. 이 App은 다른 App과의 독립성을 유지하기 위해 해당 장소에만 사용할 수 있는 기능 등을 설정해주고 관리하는 데 사용됨.

  • manage.py : 서버를 실행시키기 위한 핵심 파일


  1. 아래와 같은 명령어로 프로젝트 안에 다른 App폴더를 하나 만들어준다.

    django-admin startapp [App명]

  • 프로젝트 안에 'member' App 폴더가 잘 만들어진 것을 볼 수 있다.

  1. 프로젝트명과 동일한 App폴더로 이동해서 settings.py 파일을 열기

  • 파일을 열 때 위에서 언급했지만 vi '파일명' 을 입력해서 들어가면 된다.

  1. ALLOWED_HOSTS = [] 내부에 자기 IP주소를 입력한다.

  • vi창 내부는 마우스가 아닌 커서와 방향키로 이동해야 한다.

  • 내부에 내용을 입력하고 싶다면 i 를 눌러서 입력모드로 전환시킨다.

  • 내용 반영했으면 esc 키를 누르고 :wq! 를 눌러서 저장 후 파일을 닫는다.

  • 전 단계에서 터미널로 App을 생성했지만 현재 파일 안에 app의 이름을 등록해주어야 한다. 이렇게 안하면 향후 프로젝트 만드는 데 문제가 생긴다! 나중에 뇌정지오기 싫으면 그냥 만들어두자


  1. 서버에 접속할 수 있도록 NCP에 접속하여 ACG설정을 해준다
  • 접근 소스는 모든 장소에서 접속할 수 있도록 0.0.0.0 으로 설정해준다.

  • PORT번호는 자기가 원하는 걸로 (필자는 8100번으로 설정하겠음)


  1. 현재 위치한 App 경로에서 프로젝트 경로로 다시 돌아간 다음 서버를 실행시킨다.
  • App폴더에서 상위 폴더 경로로 다시 이동하기 위해서는 cd .. 를 입력해야 한다.

  • 아래와 같은 명령어로 서버를 실행시킨다.

    python3 manage.py runserver ['접근 소스':'PORT 번호']


  1. 브라우저를 열고 도메인창에 공인 IP 주소 : PORT번호 를 입력하고 접속한다.
  • 다음과 같은 화면이 나오면 Django 서버 접속에 성공한 것이다 φ(゜▽゜*)♪



📗 Development Server와 Product Server와의 차이


1. Product Server(실사용 서버)는 에러 로깅 불가

  • 에러 로그와 취약점 내용이 해커들에게 노출되면 큰일나기 때문이다!

2. Development Server(개발용 서버)는 에러 로깅을 해준다.

  • 따라서, Django는 보안 허술을 방지하기 위해 Development Server를 사용
profile
배운 것은 항상 그 때 문서화하자!

0개의 댓글