📢 공지사항
home
1️⃣

1주차 (1-10)

Intro

1강. 무엇을 만들 것인지

💡
학습 목표 : 어떤 서비스를 만들지에 대해서 간단히 알아본다.
(Pinterest 레이아웃을 본 뜬) 웹 서비스를 만들고 배포한다!

2강. 웹 서비스 구조

💡
학습 목표 : 웹 서비스를 어떤 기술 스택을 가지고 구축할 것인지에 대한 로드맵을 살펴본다.
1) 웹 서비스에 사용되는 기술
Front-End : JS / HTML / CSS
Back-End : MariaDB / Nginx / django / docker
2) 하나의 웹 서비스 형성부터 배포까지 (Django, 과정)
1.
django 내에 기능별로 앱을 구축한다.
2.
각각의 앱은 JS / CSS / HTML을 가지고 있으며, 앱을 모두 엮어서 하나의 앱 서비스를 만든다.
3.
이러한 앱 서비스는 한 개의 docker 컨테이너가 된다.
4.
이를 docker 시스템 전체에 삽입한다.
5.
이후 docker 내부에서 MariaDB, NginX 등 MVT에 맞는 기능별 작업이 수행된다.
6.
그리고 이 docker 시스템을 가상 서버에 넣음으로써 웹 서비스 배포가 완료된다.

3강. 개발환경 셋업

💡
학습 목표 : Pycharm 기반의 개발환경 셋업을 진행한다.
1) 가상 환경을 사용하는 경우
같은 모듈을 사용하더라도 다른 버전을 필요로 할 때
파이썬 프로그램을 실행하기 위한 최소한의 환경을 마련하고자 할 때
GitHub 등의 저장소나 네트워크와 연계하고자 할 때
2) 개발환경 구축 과정
1.
가상 환경을 새로 형성한 후, 장고를 설치한다.
pip install django
2.
프로젝트를 생성한다. django-admin startproject 프로젝트명
3.
해당 프로젝트로 이동한다. (File > Open > 생성된 프로젝트 선택)
※ 터미널에 venv 표시가 없으면, 프로젝트에 가상 환경을 새로 만들고 다시 장고를 설치한다.
(Settings > Python Interpreter)
※ 장고 세팅을 확인하고 싶으면, python manage.py runserver 입력 후 확인한다.

4강. django 개발 패턴

💡
학습 목표 : 본격적인 코딩에 앞서 django 프레임워크에서의 개발 패턴을 알아본다.
장고는 MVT(혹은 MTV) 패턴을 사용하며,
MVT는 각 부분의 역할을 하면서 전체적인 프레임워크를 구성한다.
1) Model
장고에서 데이터베이스와 통신하게 해주는 편리한 도구
객체를 데이터베이스에 저장하는 과정에서, db쪽 언어 사용 없이 간편하게 소통할 수 있게 한다.
2) View
클라이언트의 요청을 처리하는 지휘자
요청(request)을 받아서 응답(response)으로 되돌려주는 역할을 담당한다.
3) Template
프론트엔드(UI)의 내용을 어떻게 구현할 것인지를 결정한다.
경로를 직접 만들고 HTML 문서를 만들어서 사용한다.

Django Tutorial

5강. 첫 앱 시작, 그리고 기본적인 view 만들기

💡
학습 목표 : django의 첫 앱을 시작해보고, 기본적인 View를 만든 이후 브라우저에서 정상적으로 원하는 출력이 나오는지 확인해 본다.
step 1. 앱을 생성한다. $ python manage.py startapp accountapp
step 2. settings.py > INSTALLED_APPS 리스트에 생성한 앱을 명시한다.
step 3. views.py에서 hello_world 함수를 정의한다.
step 4. urls.py에서 view를 routing하는 특정 주소를 만든다.
step 5. accountApp 하위 디렉토리에 urls.py 파일을 생성한다.
step 6. 서버를 구동 시킨다. python manage.py runserver

6강. Git의 소개

💡
학습 목표 : 본격적인 코딩에 앞서 Git이라는 버전 관리 시스템에 대해서 간단히 알아본다.
1) Git : 버전 관리 시스템 (Version Control)
Roll back에 편리하다.
여러 Branch(버전)들을 관리하는 것에 있어서 용이하다.
기존 버전의 기능에 영향을 주지 않으면서 추가적인 기능을 개발할 수 있으며, master branch와 추가적인 branch들을 합칠 수도 있다.
Team Work에 용이하다. (다양한 도구들을 제공)
2) Git Command
: add / commit / push / pull / branch / checkout 등

7강. Gitignore 설정, 환경변수 분리, 첫 커밋

💡
학습 목표 : Git을 통한 버전 관리를 활성화 하고, 기본적인 Gitignore 파일 설정, 커밋 이전에 민감한 환경변수들을 분리하는 과정과 첫 커밋까지의 내용을 다룬다.
※ git 활성화 : VCS > Enable Version Control Integration > Git
step 1. 추적을 방지하기 위해 .gitignore 파일을 생성한다. (gitignore/Global/JetBrains.gitignore)
step 2. 웹 서비스를 배포 전, SECRET_KEY를 분리해 따로 관리한다.
1.
python -m pip install django-environ
2.
settings.py에 다음 코드를 삽입한다.
import environ import os env = environ.Env( # set casting, default value DEBUG=(bool, False) ) # Set the project base directory BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) # Take environment variables from .env file environ.Env.read_env(os.path.join(BASE_DIR, '.env')) # False if not in os.environ because of casting above DEBUG = env('DEBUG')
Python
복사
3.
.env 파일을 생성하고 다음 코드를 삽입하고, 분리한 SECRET_KEY값을 넣는다.
DEBUG=on SECRET_KEY=your-secret-key DATABASE_URL=psql://user:un-githubbedpassword@127.0.0.1:8458/database SQLITE_URL=sqlite:///my-local-sqlite.db CACHE_URL=memcache://127.0.0.1:11211,127.0.0.1:11212,127.0.0.1:11213 REDIS_URL=rediscache://127.0.0.1:6379/1?client_class=django_redis.client.DefaultClient&password=ungithubbed-secret
Python
복사
4.
settings.py 파일 안에 SECRET_KEY를 지우고 SECRET_KEY = env('SECRET_KEY') 로 대체한다.
step 3. .gitignore 파일 안에 추적을 방지할 파일들을 기재한다.
step 4. git bash를 켜서 커밋을 완료한다.
1.
cd PycharmProjects/프로젝트명
2.
git status
3.
git add .
4.
git commit -m “커밋 코멘트”

8강. 장고 Template의 extends, include 구문과 render 함수

💡
학습 목표 : 장고에서 사용되는 Template의 include, extends 구문의 차이점을 간단히 알아보고, render 함수와 템플릿을 사용해 response를 반환해 본다.
extends : HTML 파일의 구조를 채워 나갈 수 있게 하는 역할
include : HTML 파일에 추가적인 내용을 넣을 수 있게 하는 역할
▶ 즉, extends로 바탕을 만들고 include로 내용을 채운 후, 이를 통해 response view를 만든다.

9강. include / extends / block 구문을 이용한 뼈대 만들기

💡
학습 목표 : include, extends, block 구문을 통해 재사용 가능한 HTML 뼈대 파일을 만든다.
1) base.html
<!DOCTYPE html> <html lang="ko"> { % include 'head.html' %} <body> {% include 'header.html' %} {% block content %} {% endblcok %} <div style="height: 20rem; backgroud-color: #38df81; border-radius: 1rem; margin: 2rem;"> </div> {% include 'footer.html' %} </body> </html>
HTML
복사
2) head.html
<head> <meta charset="UTF-8"> <title>Pragmatic</title> </head>
HTML
복사
3) header.html
<div style="height: 10rem; backgroud-color: #38df81; border-radius: 1rem; margin: 2rem;"> </div>
HTML
복사
4) footer.html
<div style="height: 10rem; backgroud-color: #38df81; border-radius: 1rem; margin: 2rem;"> </div>
HTML
복사
5) hello_world.html
{% extends 'base.html' %} {% block content %} <div style="height: 20rem; backgroud-color: #38df81; border-radius: 1rem; margin: 2rem;"> <h1> testing </h1> </div> {% endblock %}
HTML
복사

10강. style, 구글 폰트를 통해 Header, Footer 꾸미기

💡
학습 목표 : style 속성과 구글 폰트를 이용해 저희 서비스 내 모든 페이지에 공통적으로 나타날 Header와 Footer 부분을 꾸며본다.
header.html
<div style="text-align:center; margin: 2ren 0;"> <div> <h1 style="font-family: 'Lobster', cursive;">Pragmatic</h1> </div> <span>nav1</span> <span>nav2</span> <span>nav3</span> <span>nav4</span> <div> </div> </div>
HTML
복사