본문 바로가기

Web15

User Model 커스텀 하기 회원 가입, 로그인 기능을 구현하기 위해 인증 기능이 필요하고 이 인증 기능을 구현하기 위해 `User` 정보가 필요하다. 기본적으로, Django에서는 User모델을 제공한다. 하지만, User 정보에 전화 번호나 생년월일을 추가하고 싶을 때가 있다. 이렇게 직접 User 클래스를 생성하는 커스텀 유저 모델을 생성하기 위해 몇가지 방법이 존재한다. AbstractUser : 해당 User 클래스의 필드에서 추가 필드만 생성하는 방식 AbstractBaseUSer : 완전히 User 클래스를 커스터마이징 하는 방식 이외에도, 모델 그대로를 상속받는 Proxy Model과 1:1 관계를 유지하는 OnetoOne 모델이 있지만 1:1은 두가지 모델을 서로 참조하기 때문에 느리다는 단점이 있다. 프로젝트를 시.. 2023. 11. 28.
Static 파일 관리하기 with AWS S3 연동하기 Static Files 웹사이트를 구현하려면 이미지나 CSS, Javascript 파일도 같이 제공해야한다. Django에서는 이런 파일을 staticfile이라고 하는데 통상적으로도 정적파일(Static File)이라 부르는 건 마찬가지다. 그럼 정적 파일은 어떻게 관리해야 할까? 정적파일 구성에 관해서는 `settings.py` 하단 쯤에 다음과 같이 정의된 코드들을 볼 수 있다. `STATIC_URL`은 정적 파일이 저장된 경로를 의미한다. 만약 template 태그로 `{% static 'css/style.css' %}`라고 설정해두면 `static/css/style.css` 경로로 호출될 것이다. # Static files (CSS, JavaScript, Images) # https://docs.. 2023. 11. 27.
[Django] 개발환경 세팅하기 Django? django는 파이썬을 기반으로하는 웹 풀 스택 개발 프레임워크다. 기본적으로 제공되는 기능이 많고 풀스택 기능을 제공하기 때문에 편리하게 웹 페이지를 개발할 수 있다. 또한, React, Flutter, Vue와 같은 프론트 엔트 프레임워크와 같이 연동하면 ORM, Admin등의 백엔드 기능으로 좀 더 완성도 있는 플랫폼을 만들 수 있다. 개인적인 기준으로 다른 프레임워크보다 많은 기능과 자료들이 있어 올인원하기 좋은 프레임워크인 것 같다. 다만 단점도 있다. 기능이 많은 만큼 무겁고 복잡하며 Flask나 FastAPI 보다 자유도가 떨어진다. Django 공식 문서 를 참고 MVT 패턴 시스템 Django는 어떤 시스템으로 동작을 하게 되는 것일까? 기본적으로 Django는 요청이 들어.. 2023. 11. 22.
[Django] 애플리케이션 요청 및 처리 django 웹 애플리케이션에서의 요청 처리는 일반적으로 View함수를 사용해 이루어진다. 뷰는 CBV와 FBV 두가지의 형태로 구성이 되는데 사용자가 직접 모든 기능을 정의하는 FBV와 다르게 CBV는 Generic View를 상속 받아 구성한다. Views : CBV와 FBV CBV(Class Based View) : Generic View을 사용할 때 쓰이며 총 16가지의 Generic View를 만들 수 있다. 클래스 형태로 구현한다. FBV(Function Based View) : 사용자 정의 함수에 의해 웹페이지를 구성할 때 사용하며 Request를 받으면 함수 내 필요한 기능을 수행하고 render()를 통해 웹 페이지를 반환한다. 사실 CBV방식과 FBV방식의 차이는 함수냐 클래스냐의 차이.. 2023. 11. 21.
[Django] 데이터베이스 모델링 먼저, Django을 사용해봤다면 Migration이라는 단어를 잘 알고 있을 것이다. Django은 기본적으로 ORM 기반으로 작동되는 웹 프레임워크이기 때문에 개발자가 SQL를 입력하지 않아도 프로그래밍 상에서 데이터를 입력할 수 있는 쉬운 구조로 이루어져 있다. Django ORM Django ORM은 Object Relational Mapping의 약자로 객체와 DB를 매핑 시켜주는 역할을 한다. 굳이 SQL을 작성할 필요 없이 ORM에서 제공하는 메서드를 사용해 데이터베이스의 데이터를 쉽게 접근할 수 있다. 그렇다고 편하다고 해서 이점만 있는 것은 아니다. Django ORM은 은근 생각보다 똑똑하지 않는데.. 짧게 작성했을 땐 편하지만 복잡한 쿼리를 작성할 땐 생각했던 SQL 쿼리보다 복잡하게.. 2023. 11. 18.
REST(Representational State Transfer) API 웹의 동작 우리가 웹 사이트에서 어떠한 기능을 이용할 때 클라이언트와 서버 간의 요청, 응답이 이루어진다. 클라이언-서버 구조는 개발 분야에 상관없이 알아야할 개념이다. 다음 그림과 같이 클라이언트와 서버 통신 과정이 이루어진다. 클라이언트(고객)은 요청을 보낸 후, 응답할 때까지 기다린다. 그리고 서버는 받은 요청을 처리한 후, 클라이언트에게 응답을 전송하는 구조이다. 이때, 전달하는 자원의 주소는 URI에 따라 다르게 정해진다. 조금 더 깊에 들어가면, 서버에는 정적인 콘텐츠를 처리하는 Web Server가 있고 동적인 콘텐츠를 처리하는 WAS(Web Application Server)가 있다. 반드시 WAS나 웹서버가 필요하진 않지만 유연한 비즈니스 처리를 위해 사용하는 것이 좋다. Web Serv.. 2020. 9. 21.