목록웹프로그래밍 (163)

수학과의 좌충우돌 프로그래밍

[Django] Model Field의 Null vs Blank

django에서는 기본적으로 orm을 지원해주고 있습니다. 따라서 테이블을 생성할 때도 orm으로 생성할 수 있습니다. 테이블을 생성하다보면 필드 옵션으로 null와 blank 속성이 존재하고 이는 꽤나 헷갈리는 내용입니다. 따라서 이번 포스팅에서는 각각에 대해 알아보도록 하겠습니다. Null vs Blank Null 은 데이터베이스와 관련되어 있습니다. 기본값은 false로 Null 을 허용하지 않으며, True로 할 시에는 데이터베이스에 Null 값을 저장할 수 있습니다. Blank는 유효성과 관련되어 있습니다. 기본값은 false로 해당 필드 없이 저장하고자 하면 유효성 검사에서 걸러지며, True로 할 시에는 해당 필드가 없어도 정상적으로 동작합니다. 다음과 같은 모델을 만들고 이에 대한 쿼리를 ..

웹프로그래밍/Django 2020. 8. 6. 20:53
[Django] Django 2.2 mysql 8 버전 연동하기

여러 개의 프로젝트를 각각 다른 버전으로 진행하다보니 버전간의 호환성 문제가 생각보다 골칫거리였습니다. django는 LTS를 고려하여 2.2 버전을 선정하였고 mysql은 RDS를 사용하고 있는데 default로 선정되는 8점대 버전을 사용하였습니다. 기존에 사용하던 DB connection 라이브러리들이 정상적으로 작동하지 않았고 많은 분들이 같은 어려움을 겪을거 같아 글을 남기려 합니다. PyMySQL PyMySQL==0.10.0 PyMySQL 을 사용하여 db을 연결하는 방법은 다음과 같습니다. import pymysql pymysql.install_as_MySQLdb() DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME..

웹프로그래밍/Django 2020. 8. 2. 04:36
[WEB] Authentication (1) 세션과 쿠키

Authentication 우선 Authentication이 뭔지부터 알아봅시다. 여러분이 어떤 서비스를 이용할 때, 아이디와 비밀번호를 입력하고 로그인을 한 경험이 있으실 겁니다. 이것이 바로 여러분이 서버로 부터 인증을 받은 겁니다. 인증을 받았기 때문에 로그인한 사용자가 할 수 있는 여러 동작들에 대해서 허락을 맡게 된거죠. 유저 입장에서는 아이디와 비밀번호를 입력하여 로그인을 하더라도 서버에서는 이를 구현하는 방법이 굉장히 다양합니다. stateless한 HTTP 기본적으로 서버와 클라이언트는 HTTP를 통해 통신을 합니다. 하지만 HTTP는 connectionless하기 때문에 클라이언트의 요청에 대해서 응답을 하고 바로 연결을 끊어버리게 됩니다. 그렇기 때문에 HTTP는 stateless하다고..

웹프로그래밍/이론 2020. 7. 6. 03:56
[Django] 웹서버, Nginx 사용하기

Django-WSGI-중-uWSGI를-통해-django-실행 [Django] WSGI 중 uWSGI를 통해 django 실행 django-AWS-EC2로-배포 [django] AWS EC2로 배포 Amazon EC2란? EC2란 Amazon Elastic Compute Cloud의 즐임말로서 AWS에서 제공하는 클라우드 컴퓨팅입니다. 이를 통해 하드웨어 구매없이 더 빠르게 애플리케이션.. ssungkang.tistory.com 저번 포스팅에서 uWSGI를 사용하여 django를 웹서버와 연결시킬 준비를 마쳤습니다. 이번 포스팅에서는 본격적으로 웹서버에 대해서 알아보도록 하겠습니다. 웹서버란 웹서버란 HTTP를 통해 웹 브라우저에서 요청하는 HTML 문서나 오브젝트(이미지 파일 등)을 전송해주는 서비스 프..

웹프로그래밍/Django 2020. 6. 19. 18:02
[Django] WSGI 중 uWSGI를 통해 django 실행

django-AWS-EC2로-배포 [django] AWS EC2로 배포 Amazon EC2란? EC2란 Amazon Elastic Compute Cloud의 즐임말로서 AWS에서 제공하는 클라우드 컴퓨팅입니다. 이를 통해 하드웨어 구매없이 더 빠르게 애플리케이션을 개발하고 배포할 수 있습니다. Amazon EC2를 ssungkang.tistory.com 저번 포스팅에서 django를 AWS의 EC2를 이용하여 배포하고 접속을 해보았습니다. 하지만 EC2에서 django 서버를 실행시킬 때 runserver 명령을 통해 실행하였습니다. runserver 를 사용한 실행은 개발용 서버를 실행하는데 적합하지, 실제 서비스를 운영하는데 부적합합니다. 따라서 실제 서비스에서는 웹서버를 이용을 합니다. 웹서버는 ..

웹프로그래밍/Django 2020. 6. 19. 05:00
[django] AWS EC2로 배포

Amazon EC2란? EC2란 Amazon Elastic Compute Cloud의 즐임말로서 AWS에서 제공하는 클라우드 컴퓨팅입니다. 이를 통해 하드웨어 구매없이 더 빠르게 애플리케이션을 개발하고 배포할 수 있습니다. Amazon EC2를 통해 원하는 만큼 가상 서버를 구축하고 보안 및 네트워크 구성과 스토리지 관리가 가능합니다. 또한 Amazon EC2는 요구 사항이나 갑작스러운 인기 증대 등 변동 사항에 따라 신속하게 규모를 확장하거나 축소할 수 있어 서버 트래픽 예측 필요성이 줄어듭니다. AWS에서 EC2 인스턴스 생성 그러면 AWS에 접속해서 위에서 설명한 EC2 인스턴스를 만들어주겠습니다. https://ap-northeast-2.console.aws.amazon.com/console/ho..

웹프로그래밍/Django 2020. 6. 9. 21:19
[Django] Clickjacking Protection, 클릭 재킹 방지

클릭 재킹이란? 클릭재킹 이란 UI 수정 공격이라고도 하며 사용자가 본인이 인식하는 것과 다른 항목을 클릭 하도록 속여서 기밀 정보를 공개하거나 다른 사람이 자신의 컴퓨터를 제어하도록 하는 악의적인 기술입니다. 예를 들어 생각을 해봅시다. 구매 버튼을 눌러 물건을 구입할 수 있는 온라인 사이트가 있습니다. 여기서 구매와 관련 없는 버튼들 위에 보이지않게 투명 iframe을 만들어 물건을 구매하게 하는 방법인것이죠. 클릭 재킹 방지 이를 방지하기 위해서 브라우저에서 이에 대한 보안을 관리하고 있습니다. 자원이 frame 또는 iframe 내에서 로드 될 수 있는지 여부를 판단하기 위해 HTTP header의 X-Frame-Options 를 사용합니다. 이 값이 SAMEORIGIN 이고 같은 사이트에서 요청..

웹프로그래밍/Django 2020. 5. 6. 18:06
[React] react의 네비게이션, react-router-dom

react-router-dom 설치 react 의react-router-dom에 대해서 알아보도록 하겠습니다. react-router-dom 은 네이게이션을 만들어주는 패키지로서 별도의 설치가 필요합니다. 다음과 같이 npm을 설치를 진행합시다. npm install react-router-dom 기본적인 설명은 저번 시간까지 진행하였던 영화목록 프로젝트에 이어서 진행을 하도록 하겠습니다. https://ssungkang.tistory.com/entry/React-Axios-%EC%99%80-CSS react-router-dom을 적용하기 위해 기존의 코드를 약간 수정하고 넘어가겠습니다. 우선 디렉토리 구조를 변경해주었습니다. src 안에 components 와 routes 를 만들고 routes 안에는..

웹프로그래밍/React 2020. 4. 1. 23:24