본문 바로가기

Programming/Django43

Django 앱 배포 전 꼭 알아야 할 핵심 고려사항들 💡 Django로 개발한 프로젝트를 실제 서비스로 배포하려면 단순히 runserver로 실행하는 것과는 다른 많은 요소들을 고려해야 합니다. 이 글에서는 다음 강의에서 다룰 예정인 Django 앱 배포의 핵심 고려사항들을 정리해봅니다.✅ 1. 데이터베이스 선택 재고개발 단계에서는 SQLite가 기본으로 설정되어 있어 간편하게 사용됩니다.하지만 실제 배포 환경에서는 다음과 같은 문제가 있습니다:단일 파일 기반이라 백업과 확장성이 떨어짐서버에 배포 시 파일이 사라질 수 있음해결책: PostgreSQL, MySQL 등의 외부 데이터베이스로 이전을 고려해야 합니다.✅ 2. settings.py 설정 수정DEBUG, ALLOWED_HOSTS, DATABASES, STATIC_ROOT 등은 배포 시 필수로 조정해야 할.. 2025. 7. 30.
Django | 함수형 뷰 vs 클래스형 뷰(GET/POST 요청 처리 방식 비교) Django로 블로그를 만들다 보면 댓글 작성 기능처럼 GET과 POST 요청을 함께 처리해야 하는 경우가 많다.이럴 땐 함수형 뷰로도 충분히 처리할 수 있지만, 클래스형 뷰(View)를 사용하면 코드가 더 명확해진다.오늘은 댓글 작성 기능을 예로 들며 함수형 뷰와 클래스형 뷰를 비교해 보겠다.👀 1. 기존 함수형 뷰 코드def post_detail(request, slug): post = get_object_or_404(Post, slug=slug) if request.method == 'POST': comment_form = CommentForm(request.POST) if comment_form.is_valid(): comment = com.. 2025. 7. 29.
Django 이미지가 보이지 않는 이유? static 태그와 |add 필터의 함정 "이미지 경로도 제대로 넣었고, 이미지 파일도 static 폴더에 잘 들어있는데… 왜 안 나올까?"장고(Django)를 공부하면서 블로그 프로젝트를 만들던 중, 정상적으로 나오던 이미지가 갑자기 보이지 않는 현상을 겪었다.경로를 따져봤을 때 /static/blog/images/파일명.jpg는 틀림없었고, 이미지도 static 디렉토리에 정상적으로 존재했는데, 화면에는 아무것도 뜨지 않았다.문제 코드처음에는 |add 필터를 사용해서 static 경로 뒤에 이미지 파일명을 붙여주는 방식으로 코드를 작성했다. 하지만 이렇게 하면 템플릿 렌더링 과정에서 예상치 못한 동작이 발생할 수 있다.에러 원인|add 필터는 문자열 연결에 사용될 수 있지만, 다음과 같은 이유로 문제가 발생할 수 있다:|add:는 타입이 맞.. 2025. 7. 29.
Django에서 직렬화란? 세션 저장 시 발생하는 TypeError 해결하기 Django 프로젝트를 하다 보면 세션(session)에 특정 데이터를 저장해야 할 일이 생깁니다. 그런데 아래와 같은 에러 메시지를 본 적 있으신가요?TypeError: Object of type Review is not JSON serializable이 에러는 직렬화(Serialization)와 관련이 있습니다. 오늘은 이 에러의 의미와 원인, 그리고 해결 방법까지 함께 정리해보겠습니다.1. 직렬화(Serialization)란?직렬화는 객체를 파일 저장이나 네트워크 전송이 가능하도록 문자열 또는 바이트 형식으로 변환하는 과정입니다. 반대로 이를 다시 객체로 되돌리는 것은 역직렬화(Deserialization)라고 합니다.💡 예시: 딕셔너리를 JSON으로 직렬화import jsondata = {"na.. 2025. 7. 28.
Django에서 세션(Session)을 다루는 방법 웹 개발을 하다 보면 사용자 정보를 일정 시간 동안 유지해야 할 일이 생깁니다.예를 들어, 로그인 상태 유지, 장바구니 기능, 최근 본 상품 등을 들 수 있죠.이때 사용하는 개념이 바로 세션(Session)입니다.이번 글에서는 세션이란 무엇인지, 그리고 Django에서 세션을 어떻게 다루는지에 대해 정리해보겠습니다.📌 세션(Session)이란?세션은 서버가 클라이언트의 상태를 일정 시간 동안 기억하는 기술입니다.기본적으로 HTTP는 Stateless(무상태) 프로토콜이라, 서버는 매 요청마다 클라이언트를 기억하지 못합니다. 이 문제를 해결하기 위해 도입된 것이 쿠키(Cookie)와 세션(Session)입니다.🍪 쿠키와 세션의 차이항목 쿠키(Cookie) 세션(Session)항목쿠키세션저장 위치클라이언.. 2025. 7. 28.
[Django] Form 처리, 함수형 뷰에서 클래스 기반 뷰(CBV)로 리팩토링하기 “코드가 너무 길어졌어요… 뷰를 더 깔끔하게 쓸 수 없을까요?”장고를 배우면서 가장 먼저 접하게 되는 건 함수형 뷰(Function-Based View)입니다.하지만 프로젝트가 커지면 점점 코드가 길어지고 반복되는 부분도 많아지죠. 이럴 때 좋은 대안이 클래스 기반 뷰(Class-Based View)입니다.오늘은 제가 직접 구현했던 리뷰 폼 기능을 CBV로 리팩토링한 과정을 소개드리며, 왜 이렇게 고쳐야 했는지도 함께 정리해볼게요.1️⃣ 기존 함수형 뷰 코드def review(request): if request.method == 'POST': form = ReviewForm(request.POST) if form.is_valid(): form.save(.. 2025. 7. 24.