일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- react
- 알고리즘
- web
- django ORM
- Git
- Baekjoon
- API
- PYTHON
- CSS
- java
- django widget
- Algorithm
- js
- 알고리즘 문제
- 알고리즘 연습
- 백준
- django rest framework
- Django
- DRF
- 알고리즘 풀이
- 장고
- MAC
- es6
- HTML
- 파이썬 알고리즘
- c++
- javascript
- AWS
- 파이썬
- form
- Today
- Total
목록분류 전체보기 (341)
수학과의 좌충우돌 프로그래밍
Authentication 우선 Authentication이 뭔지부터 알아봅시다. 여러분이 어떤 서비스를 이용할 때, 아이디와 비밀번호를 입력하고 로그인을 한 경험이 있으실 겁니다. 이것이 바로 여러분이 서버로 부터 인증을 받은 겁니다. 인증을 받았기 때문에 로그인한 사용자가 할 수 있는 여러 동작들에 대해서 허락을 맡게 된거죠. 유저 입장에서는 아이디와 비밀번호를 입력하여 로그인을 하더라도 서버에서는 이를 구현하는 방법이 굉장히 다양합니다. stateless한 HTTP 기본적으로 서버와 클라이언트는 HTTP를 통해 통신을 합니다. 하지만 HTTP는 connectionless하기 때문에 클라이언트의 요청에 대해서 응답을 하고 바로 연결을 끊어버리게 됩니다. 그렇기 때문에 HTTP는 stateless하다고..
python dictionary를 공부하던 중, 해시와 관련된 개념을 접하게 되었습니다. 어렴풋이 알고 있었지만 유용한 내용을 많이 알게 되어서 정리해볼까 합니다. 해시, Hash란 해시는 다양한 길이를 가진 데이터를 고정된 길이를 가진 데이터로 매핑한 값을 말합니다. 방금 설명했듯이 고정된 길이를 가진다는 점 외에도 여러 특징이 있습니다. 해시 함수 h에 대해 x1!=x2 이면 h(x1)!=h(x2) 해시는 임의의 두 값이 다르면 각각에 대한 해시값도 다릅니다. 값이 조금 차이난다고 해서 해시값도 조금 차이나는 것이 아니라 일정한 규칙 없이 큰 차이가 벌어집니다. 물론 이는 완벽하게 성립하지 않고 예외가 존재합니다. 뒤에서 다시 설명하도록 하겠습니다. 그렇기 때문에 무결성을 보장하기 용이합니다. 무결성..
Django-WSGI-중-uWSGI를-통해-django-실행 [Django] WSGI 중 uWSGI를 통해 django 실행 django-AWS-EC2로-배포 [django] AWS EC2로 배포 Amazon EC2란? EC2란 Amazon Elastic Compute Cloud의 즐임말로서 AWS에서 제공하는 클라우드 컴퓨팅입니다. 이를 통해 하드웨어 구매없이 더 빠르게 애플리케이션.. ssungkang.tistory.com 저번 포스팅에서 uWSGI를 사용하여 django를 웹서버와 연결시킬 준비를 마쳤습니다. 이번 포스팅에서는 본격적으로 웹서버에 대해서 알아보도록 하겠습니다. 웹서버란 웹서버란 HTTP를 통해 웹 브라우저에서 요청하는 HTML 문서나 오브젝트(이미지 파일 등)을 전송해주는 서비스 프..
django-AWS-EC2로-배포 [django] AWS EC2로 배포 Amazon EC2란? EC2란 Amazon Elastic Compute Cloud의 즐임말로서 AWS에서 제공하는 클라우드 컴퓨팅입니다. 이를 통해 하드웨어 구매없이 더 빠르게 애플리케이션을 개발하고 배포할 수 있습니다. Amazon EC2를 ssungkang.tistory.com 저번 포스팅에서 django를 AWS의 EC2를 이용하여 배포하고 접속을 해보았습니다. 하지만 EC2에서 django 서버를 실행시킬 때 runserver 명령을 통해 실행하였습니다. runserver 를 사용한 실행은 개발용 서버를 실행하는데 적합하지, 실제 서비스를 운영하는데 부적합합니다. 따라서 실제 서비스에서는 웹서버를 이용을 합니다. 웹서버는 ..
Float 우선 특별한 작업없이 소수를 사용할 경우 이는 float 타입으로 선언이 됩니다. 하지만 아래 결과를 보면 0.1을 할당한 a는 실제로 0.1이 아닌 많은 소수점을 가지고 있습니다. 왜 이런 문제가 발생하는 것일까요? a = 0.1 print(type(a)) print(f"{0.1: .30f}") # # 0.100000000000000005551115123126 컴퓨터가 실수를 표현하는 방식 아마 다들 아실테지만 컴퓨터는 기본적으로 2진수를 사용합니다. 그렇기 때문에 정수를 표현할 때는 문제가 되지 않지만 소수를 표현할 때는 문제가 발생합니다. 예를 들어 10진수 0.3을 2진수로 표현한다고 하면 0.01001100110011... 다음과 같이 표현이 됩니다. 무한히 0011이 반복되죠. 이러..
AWS EC2를 만들게 되면 퍼블릭 DNS와 IP를 할당받습니다. 하지만 이는 해당 EC2 인스턴스에 할당된 고정값이 아닙니다. 인스턴스를 stop하고 다시 start한다면 퍼블릭 DNS와 IP 둘 다 바뀌는 걸 볼 수 있습니다. 결국 해당 EC2에서 동작하는 서버와 연결하고 있는 클라이언트는 인스턴스를 껐다 켤 때마다 다시 새로운 주소로 연결을 해야합니다. 그렇기 때문에 AWS에서는 이러한 문제를 Elastic IP 를 통해 해결할 수 있습니다. Elastic IPs AWS 왼쪽 메뉴에 Elastic IPs 혹은 한국어로 탄력적 IP로 들어가줍니다. 오른쪽 위에 탄력적 IP 주소 할당 을 눌러 탄력적 IP 주소를 만들어줍시다. 그 결과 주소가 생긴걸 확인할 수 있고 이제 연결을 진행해봅시다. 이 곳에서..
Amazon EC2란? EC2란 Amazon Elastic Compute Cloud의 즐임말로서 AWS에서 제공하는 클라우드 컴퓨팅입니다. 이를 통해 하드웨어 구매없이 더 빠르게 애플리케이션을 개발하고 배포할 수 있습니다. Amazon EC2를 통해 원하는 만큼 가상 서버를 구축하고 보안 및 네트워크 구성과 스토리지 관리가 가능합니다. 또한 Amazon EC2는 요구 사항이나 갑작스러운 인기 증대 등 변동 사항에 따라 신속하게 규모를 확장하거나 축소할 수 있어 서버 트래픽 예측 필요성이 줄어듭니다. AWS에서 EC2 인스턴스 생성 그러면 AWS에 접속해서 위에서 설명한 EC2 인스턴스를 만들어주겠습니다. https://ap-northeast-2.console.aws.amazon.com/console/ho..
Tim Sort python에서의 정렬 함수 sorted()와 list.sort()에 사용된 정렬 알고리즘은 Timsort, 팀정렬입니다. 팀정렬은 파이썬 핵심 개발자인 팀 피터스에 의해서 Cpython에서 처음으로 구현되었으며 2009년 이후 표준 자바 및 안드로이드, swift 등 여러 언어에서 사용되고 있습니다. 이는 데이터의 정렬된 정도에 따라 삽입정렬과 병합정렬 사이를 전환하는 적응형 알고리즘입니다. 두 정렬방법을 결합했기에 안정적이며, 추가 메모리는 사용하지만 기존의 병합정렬에 비해 적은 추가메모리를 사용하여 다른 O(nlogn) 정렬 알고리즘의 단점을 최대한 극복한 알고리즘입니다. 알고리즘의 원리 위에서 언급했듯이 팀정렬은 삽입정렬과 병합정렬을 함께 사용하고 있습니다. 병합정렬은 추가적인 메..
클릭 재킹이란? 클릭재킹 이란 UI 수정 공격이라고도 하며 사용자가 본인이 인식하는 것과 다른 항목을 클릭 하도록 속여서 기밀 정보를 공개하거나 다른 사람이 자신의 컴퓨터를 제어하도록 하는 악의적인 기술입니다. 예를 들어 생각을 해봅시다. 구매 버튼을 눌러 물건을 구입할 수 있는 온라인 사이트가 있습니다. 여기서 구매와 관련 없는 버튼들 위에 보이지않게 투명 iframe을 만들어 물건을 구매하게 하는 방법인것이죠. 클릭 재킹 방지 이를 방지하기 위해서 브라우저에서 이에 대한 보안을 관리하고 있습니다. 자원이 frame 또는 iframe 내에서 로드 될 수 있는지 여부를 판단하기 위해 HTTP header의 X-Frame-Options 를 사용합니다. 이 값이 SAMEORIGIN 이고 같은 사이트에서 요청..
규정 상의 이유로 출처와 문제는 밝힐 수 없지만 코딩테스트를 보다가 연속 구간의 최대 합을 구하는 문제를 접하게 되었습니다. 문제를 푸는 방법이 굉장히 다양하고 각 풀이 방법의 복잡도가 전부 다르기 때문에 이에 대해서 정리해보고자 합니다. 연속 구간의 합 우선 main 함수입니다. main 함수에서는 원소의 개수를 입력받고, 원소의 개수만큼 값들을 입력받아 배열에 저장합니다. #include #include #include using namespace std; int main() { int N; vector arr; cin >> N; for (int i=0;i> temp; arr.push_back(temp); } int result = brute_force(arr); cout