본문 바로가기

분류 전체보기

(146)
쿠키, 세션, 토큰, JWT (Cookie, Session, Token, JWT) 쿠키란? 쿠키는 사용자가 방문한 웹사이트에서 사용자의 브라우저에 전송하는 작은 텍스트 조각(기록 정보 파일)이다. 사용자의 방문에 관한 정보를 저장하여, 나중에 사이트에 방문 했을때 재작업을 피하고, 사이트를 유용하게 관리할 수 있다. 쿠키는 사용자의 PC에(브라우저) 저장된다. 이렇게 저장된 쿠키는 해당하는 사이트에 접속할때마다 자동으로 서버에게 보내진다. 쿠키는 임의 수정과 다른 사람이 훔쳐가기쉽다. 그렇기 때문에 중요한 정보들은 세션을 통해 서버에서 관리하고 덜 중요한 정보들을 저장한다. 쿠키라는 용어는 루 몬툴리가 만들어 냈다. 매직 쿠키 라는 용어에서 비롯되었다. 세션이란? 클라이언트와 웹 서버간에 연결된 상태를 뜻한다. 세션은 서버에 클라이언트의 정보를 저장한다. 1. 사용자가 웹사이트에 접속..
신규 아이디 추천 C++ (프로그래머스 2021 KAKAO BLIND RECRUITMENT) 문제 설명 카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로 가입하는 유저들이 카카오 아이디 규칙에 맞지 않는 아이디를 입력했을 때, 입력된 아이디와 유사하면서 규칙에 맞는 아이디를 추천해주는 프로그램을 개발하는 것입니다. 다음은 카카오 아이디의 규칙입니다. 아이디의 길이는 3자 이상 15자 이하여야 합니다. 아이디는 알파벳 소문자, 숫자, 빼기(-), 밑줄(_), 마침표(.) 문자만 사용할 수 있습니다. 단, 마침표(.)는 처음과 끝에 사용할 수 없으며 또한 연속으로 사용할 수 없습니다. "네오"는 다음과 같이 7단계의 순차적인 처리 과정을 통해 신규 유저가 입력한 아이..
[Django] 장고 templates, static 폴더 관리 (html, css, javascript) 보통 프론트엔드의 경우는 react, vue.js 와 같은 라이브러리를 이용하여 관리하기도 하지만 간단한 웹사이트 제작시에는 장고 자체 프로젝트, 앱 폴더 내에 간단하게 작성하게 된다. 이때 폴더들의 관리 방법에 대해 알아보자. 1. templates (HTML) templates 폴더 안에는 html 문서를 저장하고 관리한다. settings.py의 TEMPLATES 안에 HTML 문서를 찾는 temlpates 폴더 위치가 정의되어 있다. 기본 설정의 경우 자동으로 app 폴더 내의 templates 폴더를 찾게 된다. 만약 프로젝트 내의 모든 html 문서를 한번에 관리하고 싶다면 경로를 바꿔서 한 폴더에 몰아 넣는것도 가능하다. 주의할 점이 한가지 있다면, 장고는 html 문서를 검색할 시 모든 앱..
k진수에서 소수 개수 구하기 C++ (프로그래머스 2022 KAKAO BLIND RECRUITMENT) 문제 설명 양의 정수 n이 주어집니다. 이 숫자를 k진수로 바꿨을 때, 변환된 수 안에 아래 조건에 맞는 소수(Prime number)가 몇 개인지 알아보려 합니다. 0P0처럼 소수 양쪽에 0이 있는 경우 P0처럼 소수 오른쪽에만 0이 있고 왼쪽에는 아무것도 없는 경우 0P처럼 소수 왼쪽에만 0이 있고 오른쪽에는 아무것도 없는 경우 P처럼 소수 양쪽에 아무것도 없는 경우 단, P는 각 자릿수에 0을 포함하지 않는 소수입니다. 예를 들어, 101은 P가 될 수 없습니다. 예를 들어, 437674을 3진수로 바꾸면 211 0 2 0 1 0 1 0 11입니다. 여기서 찾을 수 있는 조건에 맞는 소수는 왼쪽부터 순서대로 211, 2, 11이 있으며, 총 3개입니다. (211, 2, 11을 k진법으로 보았을 때가..
[Django] 장고 테스트케이스 만들기(Django Test Case) 장고를 사용할 때 내가 만든 코드가 원하는대로 동작하는지 확인 할 필요가 있다. 코드가 잘 동작하는지 확인하기 위해서 매번 서버를 실행하며 입력값을 넣고,, 출력이 무엇인지 확인할 수도 있지만, 이렇게 테스트를 진행하면 불편하고, 예상치 못한 예외상황이 발생할 수(?)도 있다. 테스트를 코드로 작성하여 자동화 해두면, 사용하기도 편하고 각종 경우의 수를 만들기도 편하다. 작성 방법에 대해 알아보자. 장고에서 앱을 새로 만들면 tests.py 라는 파일이 생성된다. 이 파일에 테스트 코드를 작성하면 해당하는 앱안에 만들어둔 views.py나 models.py등이 제대로 작동되는지 확인 할 수 있다. from django.urls import reverse from django.test import Test..
[Django] 장고 모델, 매개변수(Django Model FIelds and parameters) 장고 모델 ​ AutoField class AutoField(**options) 자동으로 증가하는 정수 필드, 보통 사용하지 않는다. 보통 id 필드는 pk로 자동으로 만들어 진다. ​ BigAutoField class BigAutoField(**options) AutoField 보다 비트수가 더 많다. 64 비트 정수. ​ BigIntegerField class BigIntegerField(**options) IntegerField 보다 큰 정수 필드 64 비트 정수. ​ BinaryField class BinaryField(max_length=None, **options) 바이너리 데이터를 저장하는 필드. bytes, bytearray, memoryview 가 저장 될 수 있다. ​ BooleanFi..
[Django] 장고 제네릭 템플릿뷰(Django generic TemplateView) from django.views import generic 장고에서 쓰이는 제네릭 뷰 중 TemplateView 에 대해 알아보자. ​ CBV형식으로 views 파일을 작성할 경우 다양한 제네릭 뷰에 대한 사용법을 알고 있어야한다. 코드를 가능한 간결하게 작성할 수 있다. 코드의 재사용률을 높일 수 있다. ​에러 핸들링 에는 FBV를 사용한다. 템플릿 뷰는 다음과 같이 상속하여 사용할 수 있다. views.py class IndexView(generic.TemplateView): template_name = "plagiarism/index.html" urls.py from django.urls import path from myapp.views import IndexView urlpatterns = [ ..
get_context_data() ContextMixin 클래스에 정의되어 있는 함수이다. CBV를 작성할때, 만약 HTML 문서로 보내고 싶은 객체가 존재할 경우 이용한다. def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) context['number'] = random.randrange(1, 100) return context 위의 메서드를 재정의(오버라이딩) 하게 되면 number 라는 이름을 갖는 객체가 추가되어 전달된다. hello world! {{ number }} 위와같이 사용이 가능하다. 결과 화면