전체 글 164

기술면접 준

Django의 CSRF(Cross-Site Request Forgery) 보호 기능을 설명해 주세요. csrf는 사용자의 의지와 관계없이 요청이 전송되는 공격입니다. 이를 방지하기 위해 post폼 제출시 csrf 토큰을 포함시킵니다. 사용자가 폼을 제출할 때 django는 이 토큰을 검증하여 요청이 동일사이트에서 온것인지를 확인합니다. 템플릿에는 {%csrf_token%}태그를 사용하고 ajax요청시 x-csrfToken 헤더를 추가해야합니다. Django의 보안 설정 파일에서 중요한 항목들을 설명해 주세요. DEBUG = False는 운영환경에서 필수이며, 오류 정보 노출을 방지합니다.ALLOWED_HOSTS는 허용된 도메인만 접근 가능하도록 설정합니다.SECRET_KEY는 반드시 유출되지 않도록 ..

Playwright를 이용한 마비노기 모바일 스트리머 전투력 확인(2)

8. HTML 파싱 및 정보 추출1) BeautifufSoup 이렇게 입력하면 내가 원하는 값을 추출하고 찾아야합니다. BeautifufSoup를 사용합니다. html = page.content() # BeautifulSoup으로 파싱 soup = BeautifulSoup(html, "html.parser") page.content : 현재 검색하고 나온 페이지의 html을 문자열로 반환합니다.beautifulSoup : 해당 html 문자열을 구조화된 객체로 반환합니다.2) 입력값 찾기 char_tag = soup.select_one(f'dd[해당값="{character_name}"]') if not char_tag: ..

2. django 면접 질문

Django의 미들웨어(Middleware)가 무엇인지, 이를 어떻게 사용하는지 설명해 주세요.미들웨어는 요청과 응답 처리과정에서 작동하는 처리 로직입니다. 요청이 뷰에 도달하기 전과 응답이 클라이언트에게 전달되기 전에 코드를 실행할 수 있게 해줍니다. 인증 보안과 같은곳에 사용됩니다. 대표적으로 django에서는 settings.py의 middleware리스트에 등록해 사용할 수 있습니다. __init__과 call 메서드를 클래스로 구현하고 이를 설정에 구현하면 커스텀 미들웨어를 만들수있습니다. 요청처리는 위에서 아래로, 응답처리시에는 아래에서 위로 실행됩니다. Django에서 CBV(Class-Based View)와 FBV(Function-Based View)의 차이점을 설명해 주세요.FBV는 함..

Playwright를 이용한 마비노기 모바일 스트리머 전투력 확인(1)

시작요즘 인터넷방송을 좋아하는 저는 스트리머들이 최근에 좋아하는 마비노기 모바일 캐릭더들의 정보를 모으고 이를 한번에 확인하는 사이트를 만들고싶어서 시작하게 되었습니다. 겸사겸사 웹크롤링을 배우면서 말이죠. 여기서는 playwright패키지를 사용해서 진행해보려고 합니다. 따로 api가 주어지지않아서 웹크롤링을 사용할예정이며 서로 부담되지않게 24시간에 한번만 계획할 예정입니다. 1. 가상환경 생성 및 활성화vscode를 실행하고 먼저 터미널을 열고 다음 명령어를 실행합니다. python -m venv venvsource venv/Scripts/activate 2.필요한 패키지 설치가상환경이 활성화된 상태에서 다음 명령어를 실행하여 필요한 패키지를 설치합니다.pip install djangopip in..

1. django 면접질문

Django의 MTV(Model-Template-View) 아키텍처에 대해 설명해 주세요. 장고는 MTV 패턴이라는 디자인패턴으로 설계 됩니다. 각각 Model, Template, View를 의미합니다.모델은 데이터베이스에 저장되는 데이터베이스와 연동되는 데이터 구조이며, 템플릿은 사용자에게 보여지는 화면을 담당하고 뷰의 경우에는 요청을 처리하고 적절한 응답을 템플릿에 전달하는 역할을 합니다. mvc 패턴에서 컨트롤러가 장고에서는 뷰를 담당합니다. Django에서 사용자 인증 시스템의 기본 개념을 설명해 주세요. 장고는 강력한 내장 인증 시스템을 제공하는 웹프레임워크입니다. 기본적으로 유저모델을 제공합니다. 인증은 주로 username과 password를 통해 이룽어지며, django.contrib.au..

9. 자바스크립트로 보는 이미지 미리보기 기능 (feat. Django)

시작Django 웹 애플리케이션에서 JavaScript를 활용하여 이미지 미리보기 기능을 구현하는 방법을 소개합니다. 사용자가 이미지를 업로드하기 전에 어떤 이미지가 선택되었는지 미리 볼 수 있게 해주는 기능으로, 사용자 경험을 크게 향상시킬 수 있습니다. Django 모델 설정게시글 모델에 이미지 필드를 추가해야합니다.class Post(models.Model): ### 기존 코드들## image = models.ImageField(upload_to="posts/", blank=True, null=True) # 이미지 def __str__(self): return self.title 모델을 수정하였으므로 마이그레이션을 진행해야합니다.python manage.py makemigra..

08. 자바스크립트로 구현한 좋아요 기능 구현 (Feat. Ajax,Django)

오늘은 Django 웹사이트에 JavaScript를 활용하여 좋아요/싫어요 기능을 구현하는 방법을 공유합니다. 이 기능은 AJAX를 사용하여 페이지 새로고침 없이 실시간으로 반응을 업데이트합니다. document.addEventListener('DOMContentLoaded', function() { const reactionButtons = document.getElementById('reactionButtons'); if (!reactionButtons) return; const likeButton = document.getElementById('likeButton'); const dislikeButton = document.getElementById('dislik..

7. 자바스크립트 Fetch API로 실시간 중복 확인 구현(feat.Django)

시작웹페이지에서 사용자 경험을 상승시키는데 중요한 방법 중 하나로 실시간으로 피드백을 제공하는 것입니다. 대표적으로 회원가입이나 정보 입력시 내가 입력한 값이 웹사이트에 저장된 값과 중복된 지 여부를 확인할 때 새로고침을 하지 않고 즉시 결과를 보여주면 사용자의 만족도가 크게 향상될것입니다. 직접 경험해보면 아시겠지만 새로고침을 하면서 생기는 1~2초의 딜레이도 사용성이 크게 떨어지는 경험들이 다들 있으니까요. 이번에는 자바스크립트의 Fetch를 사용하여 Django와 통신하고, 실시간으로 회원가입시 이메일과 닉네임 중복을 확인하는 방법을 알아보겠습니다. AJAX와 Fetch API 소개AJAX(Asynchronous JavaScript and XML)는 웹 페이지가 서버와 비동기적으로 데이터를 교환할..

6. 자바스크립트를 활용한 실시간 폼 유효성 검사 구현(feat.Django)

웹 애플리케이션에서 사용자 입력의 유효성을 검사하는 것은 매우 중요합니다. 특히 회원가입 폼과 같이 중요한 정보를 입력받는 경우, 사용자에게 즉각적인 피드백을 제공하면 사용자 경험이 크게 향상됩니다. 이번 글에서는 JavaScript를 활용하여 이메일과 비밀번호 필드의 실시간 유효성 검사를 구현하는 방법을 알아보겠습니다. 피드백 요소 생성 함수사용자에게 유효성 검사 결과를 표시할 피드백 요소를 동적으로 생성하는 함수를 만듭니다. 이 함수는 다양한 입력 필드에 재사용할 수 있습니다.function createFeedbackElement(inputElement, feedbackId) { const feedbackDiv = document.createElement('div'); feedbackDi..

5. 자바스크립트 회원가입시 비밀번호 유효성 검사(feat. Django)

Django와 JavaScript를 활용한 회원가입 보안 강화하기웹 애플리케이션에서 회원가입은 보안에 매우 중요한 부분입니다. 특히 사용자 비밀번호와 관련된 부분은 다양한 레벨에서 검증이 이루어져야 합니다. 이 글에서는 Django와 JavaScript를 함께 활용하여 회원가입 시 비밀번호 유효성 검사를 강화해보겠습니다.1. 다중 레이어 보안의 필요성웹 애플리케이션에서 보안은 하나의 레이어에만 의존해서는 아니되어서 클라이언트(JavaScript), 애플리케이션(Django Forms), 시스템(Django 설정) 수준에서 모두 일관된 보안 정책을 적용하는 것이 중요합니다.기존에 Django만으로 구현했던 비밀번호 제한 규칙을 이제는 웹 브라우저(JavaScript)에서도 구현하여 더욱 강화된 보안을 제공..