목록분류 전체보기 (341)

수학과의 좌충우돌 프로그래밍

[Web] SSL 인증서에 대한 이해(사전 지식, 정의, 동작원리, 인증서 비교)

SSL 인증서를 알기 위해서 알아야 할 사전 지식이 있습니다. 이에 대한 내용부터 알아보도록 하겠습니다. HTTP HTTP 란 Hyper Text Transfer Protocol 의 약자로 인터넷 통신을 위해 사용되는 프로토콜입니다. 프로토콜은 컴퓨터 간의 의사소통에 사용되는 언어라고 생각하시면 될 것 같습니다. 사람 간의 대화에서도 서로 같은 언어를 써야 소통이 가능하듯이 컴퓨터도 의사소통을 위해 언어를 통일 시켜야 했고 이를 망라하여 프로토콜이라고 합니다. 즉 HTTP 도 컴퓨터간의 대화를 위한 언어 중 하나라는 것이죠. 웹에서는 서버와 클라이언트가 HTTP 를 통해 소통 하기 때문에 몰라서는 안되는 부분입니다. 백앤드 개발자는 두 말 할 것 없고 프론트 개발자도 마찬가지죠. 이렇게 소통을 하는데 있..

웹프로그래밍 2019. 8. 29. 23:00
[C++] BAEKJOON 5052번 전화번호목록

5052번: 전화번호 목록 문제 전화번호 목록이 주어진다. 이때, 이 목록이 일관성이 있는지 없는지를 구하는 프로그램을 작성하시오. 전화번호 목록이 일관성을 유지하려면, 한 번호가 다른 번호의 접두어인 경우가 없어야 한다. 예를 들어, 전화번호 목록이 아래와 같은 경우를 생각해보자 긴급전화: 911 상근: 97 625 999 선영: 91 12 54 26 이 경우에 선영이에게 전화를 걸 수 있는 방법이 없다. 전화기를 들고 선영이 번호의 처음 세 자리를 누르는 순간 바로 긴급전화가 www.acmicpc.net Trie 자료구조를 사용하는 문제였습니다. Trie 자료구조란? [Algorithm] Trie 자료구조 KMP 알고리즘 에 이어서 문자열에서 검색에 위한 새로운 방법들을 알아보도록 하겠습니다. 이번에..

알고리즘/C++ 2019. 8. 26. 23:01
[Algorithm] Trie 자료구조

KMP 알고리즘 에 이어서 문자열에서 검색에 위한 새로운 방법들을 알아보도록 하겠습니다. 이번에 알아볼 내용은 Trie 자료구조입니다. Trie 자료구조 문자열 집합, {AB, ACD, ACEF, ACEG, HB, HC} 에 대해 Trie 자료구조가 어떻게 그려지는지 살펴보도록 합시다. 시작 부분이 같은 단어끼리 부모를 공유한다면, 다음과 같은 트리 모양을 얻을 수 있습니다. 이 트리에 대하여 탐색을 진행할 경우, 트리의 시간 복잡도는 O(H) (H 는 트리의 높이) 가 될 것입니다. 그리고 트리의 높이는 문자열 집합 중 가장 긴 문자열의 길이와 동일하기 때문에 Trie 자료구조를 사용하면 가장 긴 문자열의 길이를 M 이라 했을 때, O(M) 만에 문자열 검색이 가능합니다. 언제 사용해야 하지? Trie..

알고리즘/이론 2019. 8. 26. 22:57
[Django] widget (2) widget 만들어보기 - 별점 주기 rateit.js

widget (1) [Django] widget (1) widget의 원리와 widget 만들어보기 - 실시간 글자수 표시 widget input 태그는 type 속성에 따라 여러 모습을 보여줍니다. text 일 때는 글을 입력할 수 있도록, date 일 때는 날짜를 지정할 수 있도록, password 일 때는 비밀번호를 입력할 수 있도록 하는 등 다양한 type이 있.. ssungkang.tistory.com 위의 포스팅과 개별적인 내용이지만 전체적인 내용은 이어지므로 이해가 잘 가지 않는다면 위 포스팅을 참고해주시면 감사하겠습니다. 위 포스팅에서도 확인가능하듯 현재 model 은 다음과 같습니다. # core/models.py from django.db import models from django...

웹프로그래밍/Django 2019. 8. 22. 03:18
[Django] widget (1) widget의 원리와 widget 만들어보기 - 실시간 글자수 표시 widget

input 태그는 type 속성에 따라 여러 모습을 보여줍니다. text 일 때는 글을 입력할 수 있도록, date 일 때는 날짜를 지정할 수 있도록, password 일 때는 비밀번호를 입력할 수 있도록 하는 등 다양한 type이 있습니다. 그리고 각 type 에 맞춰서 브라우저에서 그에 맞는 UI 를 제공합니다. 하지만 기본적인 UI 를 제공할 뿐이지 실제로 product 레벨에서는 사용하기 부족한 게 사실입니다. 몇 가지 상황에 대해서 이를 커스텀 하는 방법에 대해서 알아보도록 하겠습니다. django widget django에서는 widget 을 사용하여 html input 태그를 생성합니다. widget 은 model에 따라 기본으로 지정되는 default 가 존재합니다. 좀 더 구체적으로 mo..

웹프로그래밍/Django 2019. 8. 21. 21:14
[Algorithm] KMP, Knuth-Morris-Pratt 알고리즘

한글, 워드 등의 에티터는 물론이고 웹페이지에서도 찾기 기능이 존재합니다. 본인이 원하는 단어나 음절이 있을 시에 이를 빠르게 찾아 줄 수 있는 기능이죠. KMP 는 바로 이 검색을 위한 알고리즘으로서 알고리즘을 만든 인물들, Knuth, Morris, Pratt 세 명의 이름을 따서 지었습니다. 이 알고리즘이 어떻게 동작하는지 함께 알아보도록 합시다. 단순한 문자열 검색 특별한 알고리즘 없이 문자열 검색을 구현한다면 아마 다음과 같이 생각하기 쉽습니다. 두 개의 문자열 P 와 T 에 대하여 문자열 P 가 문자열 T 에 몇 번이나 어느 위치에 있는지를 찾아야하는 문제입니다. 이 때 T의 길이를 n, P의 길이를 m 이라고 하면, 일반적으로 n>=m 이 성립합니다. n 0 && p[i] != p[j]) j..

알고리즘/이론 2019. 8. 21. 01:38