1. 데이터베이스 및 UI 설계하기 인스타그램 UI 구성 데이터베이스 테이블 설계 및 구현 2. 앱 만들기 instagram, accounts 앱 만들기 views.py 분리하기 3. 회원가입 페이지 url view 비밀번호 암호화 함수 구현 - 해시 함수 template 4. 로그인 페이지 url view 세션에 사용자 ID 저장하기 template 4. 로그인 페이지 accounts 앱에서 작업 일단 Django의 인증 기능을 사용하지 않고 구현해보기 4.1 url urlpatterns = [ re_path(r'^register/$', PreRegisterAccountsView, name='pn_reg_accounts'), re_path(r'^login/$', PreLoginView, name='pn..
1. 데이터베이스 및 UI 설계하기 인스타그램 UI 구성 데이터베이스 테이블 설계 및 구현 2. 앱 만들기 instagram, accounts 앱 만들기 views.py 분리하기 3. 회원가입 페이지 url view 비밀번호 암호화 함수 구현 - 해시 함수 template 3. 회원가입 페이지 accounts 앱에서 작업 일단 Django의 인증 기능을 사용하지 않고 구현해보기 3.1 url urlpatterns = [ re_path(r'^register/$', PreRegisterAccountsView, name='pn_reg_accounts'), ] 3.2 PreRegisterAccountsView splitviews 디렉토리에 RegisterAccountsView.py 생성 splitviews 의 ..
1. 데이터베이스 및 UI 설계하기 인스타그램 UI 구성 데이터베이스 테이블 설계 및 구현 2. 앱 만들기 instagram, accounts 앱 만들기 views.py 분리하기 2. 앱 만들기 2.1 instagram, accounts 앱 만들기 python manage.py startapp pystagram python manage.py startapp accounts pystagram: 인스타그램의 주요 화면들을 구현하는 곳 accounts: 계정과 관련된 화면들을 구현하는 곳 앱 생성 후 settings.py 에 등록 INSTALLED_APPS = [ 'pystagram', 'accounts', ] 2.2 views.py 분리 하나의 views.py에 구현하고자 하는 모든 view들을 작성하면 나..
1. 해시 함수 : 임의의 길이의 데이터를 고정된 길이의 데이터로 매핑하는 함수. 다른 말로 체크섬(checksum)이라고 불린다. 다양한 해시 알고리즘이 존재하는데 대표적으로 MD5, SHA 등이 있으며 해시 알고리즘마다 출력되는 해시값의 길이가 다르다. 해시 알고리즘 중 보안이 뚫린 것도 있기 때문에 SHA-256, SHA-512 등을 사용하는 것이 권고된다. 특징 동일한 입력값에 대한 동일한 출력값을 가지고 있음 (즉, 입력값이 바뀌지 않으면 출력값도 바뀌지 않음) 입력값이 조금만 변경되어도 출력값은 완전히 달라짐 입력값의 길이에 상관없이 고정된 길이의 해시값(다이제스트)이 출력됨 단방향 함수 (암호화는 가능하지만 복호화는 불가) 용도 자료구조: 해시 테이블 - 검색을 빨리하기 위함 비밀번호 암호화..
1. CSRF(Cross Site Request Forgery) : 웹사이트 취약점 공격의 하나로, 사용자가 자신의 의지와는 무관하게 공격자가 의도한 행위(수정, 삭제, 등록 등) 를 특정 웹사이트에 요청하게 하는 공격 이미 사용자가 접속한 상황에서 요청값을 조작하여 사용자가 원하지 않는 action을 보내 웹 어플리케이션을 악용 사용자의 권한에 따라 위험성이 달라짐 2. 공격 과정 간단한 예시 공격자는 도구를 사용해 새글 등록 요청 발생시 어떤 파라미터가 전달되는지 확인한다. (동작 구조 사전 파악) 공격자는 게시글에 태그를 이용해 보이지 않는 게시글을 남긴다. ex) 피해자가 해당 웹사이트에 접속하여 공격자가 남긴 게시글에 들어간다. 들어가는 순간 태그로 만든 숨겨진 GET Request가 동작한다...
1. URL Reverse : view 함수를 사용하여 URL을 역으로 계산하는 것 개발자가 일일이 URL을 외워 하드코딩하지 않아도 된다. URL이 변경되어도, URL Reverse가 변경된 URL을 추적한다. 누락될 위험 감소 유지보수가 용이해짐 즉, urls.py에서 정의한 url pattern의 name만 알고 있다면 view 함수를 통해 매칭되는 url을 찾아 이를 전달받을 수 있다. 2. URL Reverse를 수행하는 4가지 함수 2-1. reverse() 전달받은 인수(name)와 매칭되는 url을 반환 매칭되는 url이 없는 경우 NoReverseMatch 예외 발생 reverse('bookmark:list') print(reverse('bookmark:list')) >>> /bookma..
1. 세션과 쿠키를 사용하는 이유 HTTP 프로토콜의 다음 특징을 보완하기 위해 세션과 쿠키를 사용한다. 3.1 비연결성(Connectionless) : 클라이언트가 Request를 서버에 보내고, 서버가 이에 맞게 Response를 보내면 연결을 끊는 특성 3.2 무상태성(Stateless) : 3.1로 인해 연결이 끊어지기 때문에 이전 통신 상태 정보를 저장하지 않는 특성 이 두 가지 특성으로 인해 불필요한 자원은 크게 절약할 수 있다. 하지만 사용자를 식별할 수 없어 같은 사용자가 요청을 여러 번 하더라도 매번 새로운 사용자로 인식한다. 즉, 로그인이 필요한 페이지라면 해당 페이지에 접속할 때마다 로그인을 새로 해줘야 한다는 것이다. 이와 같이 사용자가 웹페이지에 머무르는 동안 해당 사용자의 상태를..
1. 문제 문제 설명 정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요. 제한 사항 n은 0 이상 3000이하인 정수입니다. 입출력 예 n return 12 28 5 6 입출력 예 설명 입출력 예 #1 12의 약수는 1, 2, 3, 4, 6, 12입니다. 이를 모두 더하면 28입니다. 입출력 예 #2 5의 약수는 1, 5입니다. 이를 모두 더하면 6입니다. 2. 풀이 과정 def solution(n): if n == 0 or n == 1: return n factor = set() for i in range(1, ((n // 2) + 1)): if (n % i) == 0: factor.update([i, (n // i)]) return sum(factor) 예..
- Total
- Today
- Yesterday
- Django
- Django 좋아요
- 장고
- Django 컬렉션
- query parameter
- Django 로그인
- Redis Cache
- Django 북마크
- python
- Django 팔로우
- Django 비밀번호 수정
- Django application
- Django 댓글
- Django User
- Django 업로드
- Django 검색
- Django 어플리케이션
- Django 로그아웃
- MySQL
- Django 회원 정보 수정
- Django 회원가입
- Django Instagram
- Redis
- Django 해시태그
- 파이썬
- 서점 어플리케이션
- Django 인스타그램
- java
- Django 프로젝트 생성
- 북마크 어플리케이션
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |