전체 글69 이분 탐색 (+Java) 1. 이분 탐색이란 이분 탐색아란 오름차순으로 정렬된 수열에서 원하는 값을 찾는 탐색 알고리즘입니다. 여기서 포인트는 정렬된 수열에서 가능하다는 것입니다! 2. 이분 탐색 방법 정렬된 배열에서 값을 찾는다는 가정 하에 아래의 과정을 반복하면 됩니다! 배열의 가운데 요소의 인덱스를 pivot으로 정합니다. arr[pivot]의 값이 찾고자 하는 값과 같다면 탐색을 종료합니다. arr[pivot]의 값이 찾고자 하는 값보다 작다면 pivot ~ right 사이를 탐색합니다. arr[pivot]의 값이 찾고자 하는 값보다 크다면 left ~ pivot 사이를 탐색합니다. 3. 시간 복잡도 이분 탐색의 시간 복잡도는 O(logN)으로 기본적인 선형 탐색보다 훨씬 빠르게 탐색을 할 수 있습니다. 4. 이분 탐색 .. Algorithm & Data Structure/이론 2021. 12. 16. BFS와 DFS (+Java 코드) 1. 그래프란? 그래프란 다대다 연결관계를 표현할 수 있는, 여러 노드와 간선으로 연결된 자료구조를 의미합니다. 그래프는 여러 개의 정점(Vertex) 와 간선(Edge)로 이루어져 있습니다. G=(V, E)로 표기합니다. 정점(Vertex): 그래프의 구성요소 간선(Edge): 두 정점을 연결하는 선 차수(Degree): 정점 하나에 연결된 간선의 수 2. 그래프 탐색 그래프 탐색은 하나의 정점으로부터 시작하여 차례대로 모든 정점들을 방문하는 것을 의미합니다. 그래프 탐색에는 크게 두 가지 방법이 있습니다. (1) BFS_너비우선탐색 BFS는 Breadth-First-Search의 약자로 너비 우선 탐색을 의미합니다. 너비 우선 탐색은 기준 노드에서 인접한 노드를 먼저 탐색하는 방법인데요. 시작 정점으.. Algorithm & Data Structure/이론 2021. 12. 16. 공공데이터 api post 사용 방식 공공 데이터 포털에서 제공하는 open api를 사용하는 방법 (django 사용) GET 방식으로 요청을 해서 데이터를 얻어오는 경우가 많지만, POST 방식으로 데이터를 보내고 우리가 원하는 데이터가 있는지 조회하는 등의 서비스도 가능하다 국세청에서 제공하는 사업자등록정보 api를 사용하여 사업자등록정보 진위 확인을 수행해보자. https://www.data.go.kr/data/15081808/openapi.do 국세청_사업자등록정보 진위확인 및 상태조회 서비스 국세청에서 제공하는 사업자등록정보 진위확인 및 사업자등록 상태조회 API 서비스입니다. www.data.go.kr *코드 구현을 하기 전에 원하는 api를 제공하는 사이트에서 활용 신청을 하여 인증키를 발급받아야 합니다.* requests 모.. Django 2021. 12. 16. Django Pagination 구현하기 페이지네이션(Pagination)이란 데이터를 일정 길이로 나누어서 전달하는 기능이다. 게시판 같은 경우 한 페이지 속에 너무 많은 글이 있다면 보기가 어려울 것이다. 그렇기 때문에 페이지를 나눠주는 Pagination을 구현해 줄 필요가 있다. 페이지네이션 구현은 백엔드에서는 페이지 별 데이터를 넘겨주고, 프론트엔드에서는 받은 데이터 목록과 페이지에 대한 정보를 화면에 표시해줘야 한다. 우선 Paginator를 사용하기 위해서는 import를 해줘야 한다. #views.py ... from django.core.paginator import Paginator 페이지에 들어갈 데이터를 모두 가져온 뒤 paginator를 만들어주면 된다. #views.py def post_list(request): pos.. Django 2021. 9. 3. 데이터 유효성 검사 데이터 유효성 검사란? 데이터가 우리가 원하는 규격에 맞는지 확인하는 과정이다. 개발자는 데이터는 완벽하지 않다는 것을 항상 생각하고 데이터를 검증해서 유효한 데이터로 만들어야 한다. 1. Field를 정의할 때 필요한 옵션 인자로 주기 (아래의 1번,2번) -> django의 내장 Field 옵션 사용 Model Field와 Form Field 두가지 모두 사용 가능하다. Model form을 사용하는 경우에는 Model Field에 유효성 검사를 추가하면 Model을 기반으로 생성되는 form도 자동으로 유효성 검사가 된다. models.py 필드의 옵션으로 추가해주고 views.py에서 로직을 작성해주면 된다. -> is_valid() 함수 사용 #views.py def post_create(req.. Django 2021. 8. 30. model form 웹 서비스에서의 폼은 model을 기반으로 만드는 경우가 많다. 그렇기 때문에 django에서는 우리가 작성한 model을 기반으로 자동으로 폼을 생성해주는 model form 기능이 있다. #forms.py from django import forms class PostForm(forms.Form): title = forms.CharField(max_length=50, label="제목") content = forms.CharField(label="내용", widget=forms.Textarea) #views.py def post_create(request): if request.method == 'POST': #사용자가 전송버튼을 눌렀을 때 title = request.POST['title'] con.. Django 2021. 8. 30. 폼(Form)이란? 폼(Form) 사용자가 입력한 데이터를 서버로 전송하기 위한 방식으로 웹 페이지에서 사용자의 데이터를 입력받을 수 있는 입력 양식을 말한다. 1. label과 input 폼은 form태그 안에 사용자의 입력을 받는 input 태그와 설명을 위한 label 태그의 쌍으로 구성된다. 2. for & id 각각의 input 태그와 label 태그를 묶어주기 위해서 label 태그에는 for 속성, input 태그에는 id를 사용한다. for과 id 속성을 쓰고 싶지 않다면 label 태그로 input 태그를 감싼 형태를 사용하면 된다. 3. name name은 입력된 데이터를 서버로 전송할 때, 서버에서 각각의 데이터를 구분하기 위한 속성이다. name 속성이 있는 양식 요소만 값이 서버로 전달된다. 제목 4.. Django 2021. 8. 29. Django 배포 준비 1. 디버그 모드 끄기 디버그 모드가 켜져있을 때 하는 중요한 기능 중 하나는 에러가 났을 때 자세한 에러 페이지를 표시해주는 것이다. 에러가 발생헀을 때 내가 만든 웹사이트의 다양한 정보를 제공하기 때문에 이는 막을 필요가 있다.. 그렇기 때문에 디버그 모드를 꺼서 이것을 방지해야 한다. 장고에서 자체적으로 보안에 관련된 단어가 포함되어 있으면 걸러주긴 하지만 그래도..! 방법 : 프로젝트 디렉토리의 settings.py에 가서 DEBUG를 False로 바꾼다. 2. 호스트 설정하기 프로젝트 디렉토리의 settings.py에 있는 ALLOWED_HOSTS를 설정해줘야 한다. ALLOWED_HOSTS는 이름 그대로 우리가 허용할 호스트 즉, 요청에 응답을 할 수 있는 호스트인 서버를 적어주는 것이다. 배.. Django 2021. 8. 24. Django shell을 이용한 model CRUD Shell을 이용한 CRUD python manage.py shell 1. Create 모델명.objects.create(필드명=값) from foods.model import Menu #이렇게 불러온 뒤에 사용 Menu.objects.create(name="치킨", price=10000, ...) 2. Read 모델명.objects.all() 모든 데이터 조회 모델명.objects.all().values() 안에 내용까지 모두 보고싶을 때 사용 Menu.objects.all() Menu.objects.all().values() 모델명.objects.all().values(보고싶은 특정 필드명) 내가 지정한 필드값만 볼 수 있다. Menu.objects.all().values('price') 모델명.ob.. Django 2021. 8. 23. Django의 Model과 ORM django의 model은 데이터의 구조를 잡아주고 정의된 구조를 기반으로 데이터베이스와 소통을 한다. Django에서는 Python을 사용해서 데이터베이스와 소통할 수 있도록 Model이 ORM(Object-Relational Mapper)을 제공하고 있다. 원래 데이터베이스와 소통하기 위해서는 SQL 코드를 작성해야 하는데 ORM을 쓰면 Python을 사용해서 데이터베이스와 소통할 수 있다. 서비스의 요구사항에 맞게 데이터의 구조를 model에 정의한 뒤 알맞은 Python 코드를 작성하면 Django는 그것을 SQL 코드로 바꿔서 데이터베이스와 소통할 수 있게 해준다. 데이터베이스 사용을 위해 SQL 코드를 따로 작성하지 않고 익숙한 Python 코드를 통해 소통할 수 있기 때문에 개발 효율을 높여.. Django 2021. 8. 23. Git이 보는 파일의 4가지 상태 Git으로 관리되는 파일은 일종의 상태(status)를 가진다. 1. Untracked 상태 '추적되지 않고 있는' 파일이 Git에 의해서 그 변동사항이 전혀 추적되고 있지 않는 상태를 의미한다. 예를 들어, 파일을 새로 생성하고 그 파일을 한번도 git add 해주지 않았을 때 그 파일은 Untracked 상태이다. 2. Tracked 상태 파일이 Git에 의해 추적되고 있는 상태이다. (1) Staged 상태 파일의 내용이 수정되고나서, staging area에 올라와있는 상태이다. (2) Unmodified 상태 현재 파일의 내용이 최신 커밋의 모습과 비교했을 때 바뀐 게 없는 상태이다. (3) Modified 상태 현재 파일의 내용이 최신 커밋의 모습과 비교했을 때 조금이라도 바뀐 것이 있는 상태.. Etc/Git , Github 2021. 8. 22. 상태 코드 클라이언트가 서버에게 요청을 보냈을 때 해당 요청이 잘 처리 되었는지, 어느 곳에서 에러가 난 것인지를 알려주는 것이 바로 상태코드(Status Code)입니다. (1) 1XX (Infomational) 클라이언트에게 요청을 받아서 작업을 진행 중인 상태 100: 요청의 첫 부분을 받아서 다음 요청을 기다리고 있음. 101: 클라이언트가 서버에게 프로토콜 전환을 요청했고 서버에서 프로토콜을 변경한다는 것을 의미 (2) 2XX (Success) 요청이 정상적으로 처리된 상태 200: 정상일 때 일반적으로 받는 상태 코드 204: 정상 처리 되었지만, 서버에서 보내줄 데이터 없음 (3) 3XX (Redirection) 요청을 완료하기 위해 추가적인 동작이 필요 301: 요청한 자원이 새로운 주소로 옮겨짐 3.. Django 2021. 8. 19. 이전 1 2 3 4 5 6 다음