문제 설명 카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로 가입하는 유저들이 카카오 아이디 규칙에 맞지 않는 아이디를 입력했을 때, 입력된 아이디와 유사하면서 규칙에 맞는 아이디를 추천해주는 프로그램을 개발하는 것입니다. 다음은 카카오 아이디의 규칙입니다. 아이디의 길이는 3자 이상 15자 이하여야 합니다. 아이디는 알파벳 소문자, 숫자, 빼기(-), 밑줄(_), 마침표(.) 문자만 사용할 수 있습니다. 단, 마침표(.)는 처음과 끝에 사용할 수 없으며 또한 연속으로 사용할 수 없습니다. "네오"는 다음과 같이 7단계의 순차적인 처리 과정을 통해 신규 유저가 입력한 아이..
보통 프론트엔드의 경우는 react, vue.js 와 같은 라이브러리를 이용하여 관리하기도 하지만 간단한 웹사이트 제작시에는 장고 자체 프로젝트, 앱 폴더 내에 간단하게 작성하게 된다. 이때 폴더들의 관리 방법에 대해 알아보자. 1. templates (HTML) templates 폴더 안에는 html 문서를 저장하고 관리한다. settings.py의 TEMPLATES 안에 HTML 문서를 찾는 temlpates 폴더 위치가 정의되어 있다. 기본 설정의 경우 자동으로 app 폴더 내의 templates 폴더를 찾게 된다. 만약 프로젝트 내의 모든 html 문서를 한번에 관리하고 싶다면 경로를 바꿔서 한 폴더에 몰아 넣는것도 가능하다. 주의할 점이 한가지 있다면, 장고는 html 문서를 검색할 시 모든 앱..
문제 설명 양의 정수 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진법으로 보았을 때가..
장고를 사용할 때 내가 만든 코드가 원하는대로 동작하는지 확인 할 필요가 있다. 코드가 잘 동작하는지 확인하기 위해서 매번 서버를 실행하며 입력값을 넣고,, 출력이 무엇인지 확인할 수도 있지만, 이렇게 테스트를 진행하면 불편하고, 예상치 못한 예외상황이 발생할 수(?)도 있다. 테스트를 코드로 작성하여 자동화 해두면, 사용하기도 편하고 각종 경우의 수를 만들기도 편하다. 작성 방법에 대해 알아보자. 장고에서 앱을 새로 만들면 tests.py 라는 파일이 생성된다. 이 파일에 테스트 코드를 작성하면 해당하는 앱안에 만들어둔 views.py나 models.py등이 제대로 작동되는지 확인 할 수 있다. from django.urls import reverse from django.test import Test..
장고 모델 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..
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 = [ ..