전체 글 315

[외부 API] Daum 주소 찾기 API

👉 다음 주소 aAPI 찾기 회원가입 구현 중 주소를 넣게 될 경우 daum에서 무료료 제공하는 '우편번호 검색 서비스' 를 이용 할 수 있다. 가이드 문서 링크는 아래와 같다. https://postcode.map.daum.net/guide Daum 우편번호 서비스 우편번호 검색과 도로명 주소 입력 기능을 너무 간단하게 적용할 수 있는 방법. Daum 우편번호 서비스를 이용해보세요. 어느 사이트에서나 무료로 제약없이 사용 가능하답니다. postcode.map.daum.net 👉 예제 코드 Daum 주소 찾기 API는 서버기반 환경에서 실행해줘야 아래 코드가 돌아간다.

[Authentication] JWT Token , CSRF Token

지난 번엔 Token 시스템에 대한 이해, 장점, 작동 방식 등에 대해 이해해 보았다. 이번 글에서는 Token 시스템에서 주로 활용되는 JWT(Json Web Token), CSRF(Cross Site Request Forgery)에 대해 내용을 작성해 보려 한다. JWT(Json Web Tokens) 란? 클라이언트와 서버 간의 유저의 정보를 담은 Json 데이터를 암호화 해서 보낼 때, HTTP 헤더에 JSON 토큰을 넣어 전달하는 방식. 서버는 별도의 인증 과정 없이 헤더에 포함되어 있는 JWT Token 정보로 인증함. JWT의 구조 구조는 Header, Payload, Signature 세 부분으로 구성되며, Signuature 부분만 암호화 되어 전송. Header : 토큰의 타입과 해시 암..

[Authentication] Token 기반 시스템이란?

👉 토큰 기반 시스템 이란? 토큰 기반 인증이란 유저에게 유저의 정보를 토대로, 고유한 Access Token을 받아 리소스 접근에 대해 보다 쉽게 통제할 수 있는 프로토콜로 사용자는 토큰 유효 기간 동안 동일한 웹페이지나 앱, 혹은 그 밖에 해당 토큰으로 보호를 받는 리소스로 재 접근시 자격 증명을 다시 입력할 필요 없게 됨 👉 토큰 기반 시스템 작동 원리 1) 유저가 아이디와 비밀번호로 로그인 2) 서버에서 해당 로그인 정보를 검증 및 유저에게 Token 발급 3) 해당 Token은 Signed Token으로 서버에서 정상적으로 발급된 것 이라는 Signature를 지니고 있음. 4) 클라이언트 측에서는 전달받은 토큰을 저장해두고, 서버에 접근시 활용 5) 서버는 접근시 마다 해당 Token을 확인하..

[Week I Learned] 22년 6월 1주차

금주 진행 사항 기간 : 22.05.30 (월) ~ 22.06.03(금) 학습 내용 Django Framework 지식 정리 DB 내용 정리 Django Project 진행 Django Frameowork 지식 정리 Django 구조 모듈 분석 및 지식 정리 https://yubi5050.tistory.com/53 // 프로젝트 구조 분석 https://yubi5050.tistory.com/55 // Django-admin, manage.py https://yubi5050.tistory.com/54 // 무식한 라이브러리 분해 1 (django.db) https://yubi5050.tistory.com/56 // 무식한 라이브러리 분해 2 (urls, shorcuts, http) https://yubi5..

WIL (~22.09) 2022.06.06

[Django, DB] Migration 초기화 방법 (+window 자동화 code)

초기화 시기 Sqlite DB를 실수로 지워버렸을 때 잦은 model 변경으로 migrations 꼬였을 때 방법 1. Database Server 삭제 (db.sqlite3, mysql, postgresql 등) 2. 각 app들의 migrations/ 폴더 내의 __init__.py를 제외한 모든 파일 삭제 (중요!!) 3. 위 2. 가 진행되면 migrations 폴더와 __init__.py 만 폴더내에 남아 있어야 함. (없으면 진행안됨) 4. 다음 명령어 실행하면 정상적으로 돌아와있는 DB를 볼 수 있다. python manage.py makemigrations python manage.py migrate 자동화 코드 (window ver) Project 폴더 밑에서 python init_db...

Python/Django 2022.06.05

[Django] Message Framework

Django 에서는 사용자 요청에 대한 응답의 일환으로 일회용 메시지 Message Framework를 제공한다. https://docs.djangoproject.com/en/4.0/ref/contrib/messages/ The messages framework | Django documentation | Django Django The web framework for perfectionists with deadlines. Overview Download Documentation News Community Code Issues About ♥ Donate docs.djangoproject.com Message tags는 DEBUG, INFO, SUCCESS, WARNING, ERROR 5종류가 있다. Me..

Python/Django 2022.06.04

[Django] Django .html .css 분리 방법 (by. Django Template)

👉 1. CSS 분리 1) settings.py 에 아래 문구 추가 STATICFILES_DIRS = (os.path.join(BASE_DIR, 'static'),) 2) css 파일 작성 : css/init_page.css 파일을 작성하였다. .init_wrapper{ width:100%; display:flex; } .init_container{ text-align:center; } 3) init.html 에 아래 문구 추가 {% load static %} 👉 2. HTML 분리 (include 문법) 1) HTML 파일 작성 : join.html, login.html, message.html 2) 원하는 곳에 include 문법 작성 {% include 'users/message.html' %}

Python/Django 2022.06.03

TODAY LUNCH 팀 프로젝트 - 1

1. 프로젝트 기간 2022.06.02 (목) ~ 2022.06.13 (월) 2. 팀 구성 김선민, 김민기, 박재현, 황신혜 3. 프로젝트 주제 하루 삼시세끼, “오늘 점심 뭐 먹지?” 고민해 본 사람들이 고민하는 사람들을 위해 만들어 보는 웹 서비스 4. 프로젝트 진행 방식 화면 기획 (Figma) : 링크 (완료) API / DB 설계 (Notion) : 링크 (완료) 일정 관리 (Git Project, 겐트차트) : 겐트 링크 , 깃 프로젝트 링크 기능 구현 관리 (Git Issue) : 링크 5.1 TODAY LUNCH 화면 와이어프레임 작성 및 기능 정의 화면 화면 이름 기능 담당자 첫 화면 - 회원가입 1 필수 기능 회원가입 (장고 validation 기능) Daum 주소 API 사용 김민기 ..

[DB] ORM 이란?

ORM 이란? ORM(Object Relational Mapping)의 약자로 객체와 DB 간의 관계 매핑해주는 개념. 주로 MVC, MVT와 같은 패턴을 가진 프레임워크에서 많이 사용하는 기술 ORM 장점 ORM을 이용해서 DB를 객체 관점에서 쉽게 접근 가능 ORM을 통해 가독성을 높이고, 비즈니스 로직(코드)에 집중하여 생산성을 높임 + 유지보수 ORM을 통해 코드를 바탕으로 SQL Query로 자동 변환하여 데이터 조작 ORM을 통해 객체 간의 관계를 SQL Query Message바탕으로 SQL을 자동으로 생성하여 불일치를 해결 DBMS에 대한 종속성 저하로 대부분의 ORM 솔루션은 DB에 종속적이지 않을 수 있다. ORM 단점 쿼리가 복잡해지면 사용하기 어려움 (통계, 데이터분석 등) ORM ..

DB/이론 2022.06.02

[Django] Admin으로 Table 관리하기

1. Project 및 APP 생성 $ django-admin startproject custom_admin $ cd custom_admin $ django-admin startapp app1 2. custom_admin / Settings.py APP 추가 INSTALLED_APPS = [ ... 'users', ] 3. app1 models.py 작성 - Django에서 미리 만들어놓은 User Table(AbstractUser)을 상속 받아 사용. - etc_text 라는 필드 추가 생성 from django.db import models from django.contrib.auth.models import AbstractUser # Create your models here. class UserM..

Python/Django 2022.06.01