Data Story

데이터 사이언스, 쉽게 설명하기

Data Analysis 90

정보보호 기초 3 - HASH, MD Algorithm

Hash - O(1)의 시간복잡도를 가짐 - Hash는 하나의 문자열을 더 짧은 길이의 값이나 키로 변환하는 것 - 정보의 위조 또는 변조를 확인하기 위한, 정보의 '무결성'을 확인하기 위함 - 전자서명, 전자화폐 등 전자상거래 기능을 구현할 수 있음 - 대표적 해시 알고리즘 : MD5 Hash 정의 - 압축 (짧은 출력 길이) - 효율성 (어떤 x에 대해서도 Hash(x)를 계산하기 쉬워야 함) - 단방향 (주어진 y에 대해 Hash(x)=y를 만족하는 x 값을 찾는 것이 어려워야 함) - 약한 충돌 방지 (주어진 x와 Hash(x)에 대해 Hash(y)=Hash(x)를 만족하며 같지 않은 y와 x를 찾기 어려워야함) - 강한 충돌 방지 (Hash(x) = Hash(y)를 만족하되, 같지 않은 x와 y..

정보보호 기초 2 - 암호화, 대칭키, DES

암호 기초 - 암호학 (이론) - 암호생산 (Crytography) - 암호분석 위의 3가지를 통틀어 'Crypto' 라고 한다. 암호화와 복호화 - Plain Text(평문)을 Cipher Text(암호문)으로 변환하는 'e' 과정은 'Encode(암호화)' - Cipher Text(암호문)을 Plain Text(평문)으로 변환하는 'd' 과정은 'Decode(복호화)' 암호체계 - 암호화 알고리즘 : 비밀이 없으며, 암호화 또는 복호화 할 때 알고리즘을 이해하고 기억해야 함. - 암호화 키 : 약속한 규칙이 있음. 커코호프 원칙 암호화 알고리즘은 비밀이 아니고 오로지 'Key'만이 유일한 비밀이다. 왜냐하면, 알고리즘은 언젠가 공개되기 때문이다. 고전암호 - Transposition(전치법) - 예)..

정보보호 기초 1

CIA 정보보호에 있어 CIA란 단어는 매우 중요한 개념이다. - C : Confidential (기밀의) : 접근 허용을 받은 사용자만 접근 가능 - I : Integrity (무결의) : 권한을 가진 사람이 인가된 방법으로 정보 변경 가능 - A : Availiblity (가용성의) : 필요한 시간에 정보에 접근 가능 애니그마 - Plain Text(평문) -> Cipher Text(암호문)으로 변환할 수 있는 기계 - 제2차 세계대전에서 독일군에 의해 군사통신 보안용으로 사용 콜로서스 - Cipher Text (암호문) -> Plain Text (평문) 으로 변환할 수 있는 기계 - 1943년 12월, 알란 튜링이 개발하였으며 2,400개 진공관으로 제작 해킹 해킹의 역사 1960년대에는 전화망 침..

Django 데이터베이스

Django DB를 사용하는 방법을 알아보자. django-admin startproject my_site cd my_site python manage.py startapp first_app db를 사용하기 전에 몇 가지 설정을 해야한다. 1. first_app/apps.py에서 FirstAppConfig 클래스가 있는 걸 확인한다. 2. my_site/settings.py에서 'INSTALLED_APPS'에 아래의 코드를 추가한다. first_app.apps.FirstAppConfig 3. migrate를 위해서 터미널에 아래의 코드를 입력한다. python manage.py migrate 이제, 모델을 만들어보자. 1. first_app/models.py에서 열을 생성한다. from django.db..

Web/Django 2023.03.12

AWS기초 - CloudFront

CloudFront Edge Location을 생성하고 Cache에 원본 파일을 저장하는 방법 CloudFront를 이해하기 위해선 다음과 같은 용어의 개념을 알고 있어야 한다. Origin 최초로 웹 사이트를 호스팅한 위치 CDN Content Delivery Network이며, 사용자가 어디에 거주하는지에 따라 웹 페이지를 전달해주는 분산 네트워크 시스템이다. Origin에서 꼭 파일을 받을 필요가 없어지게 되었고 파일 전송 지연을 줄일 수 있었다. Edge Location(Edge Server) CDN이 많은 요청이 오가는 지역 주변에 Edge Location을 생성한다. Origin에서 가지고 있는 콘텐츠를 Edge Location의 Cache(임시 저장 공간)에 보관되고 요청자는 Cache에서 ..

AWS 2023.03.07

AWS기초 - Serverless & Lambda

Serverless 개발자가 구현한 애플리케이션을 클라우드에서 돌릴 수 있게 도와주는 클라우드 기반의 개발 모델이며 AWS 리소스를 자동으로 관리한다. - Autoscaling 네트워크 혼잡도에 따라서 크기를 늘리고 줄일 수 있어서 리소스 자원 관리에 효율적임. - Patching RDS 또는 EC2 내 운영체제를 자동으로 업데이트 해줌. - Fast Release 개발자는 서버 관리와 유지보수에 신경쓰지 않고 코드만 구현하는데 집중하면 되기 때문에 빠르게 배포할 수 있음. - Reduce Cost 특정 동작이 전제되어야 실행되는 것이기 때문에 비용 감소에 도움을 줌. Lambda 서버를 관리하지 않고도 모든 유형의 애플리케이션 또는 백엔드 서비스에 대한 코드를 실행할 수 있는 이벤트 중심의 서버리스 컴..

AWS 2023.03.06

Django 템플릿 상속

템플릿 상속에 대해 알아보자. 일반적으로 웹 사이트 상단의 Nav bar와 같이 모든 싱글 템플릿에 반복적인 정보가 포함되는 것을 원하지 않는다. {% block %}을 사용해서 템플릿을 상속받으면 된다. 1. my_site/templates 폴더를 만들고 하위에 base.html을 만들어 아래의 코드를 입력한다. 여기는 위 {% block content %} {% endblock % } 여기는 아래 2. example.html에서 아래의 코드를 입력한다. {% extends 'base.html' %} {% block content %} 여기는 내부 {% endblock %} 3. base.html의 위치를 세팅해주어야 한다. settings.py에서 디렉토리를 입력해주자.. 먼저 os를 import 해..

Web/Django 2023.03.05

Django 템플릿 태그와 url명

주소창에 first_app/variables를 입력하지 않고 앵커 태그를 사용해서 이동하게 만들어보자. 네임 스페이스를 지정하고, 장고 패턴을 입력하면 되는 간단한 방법이다. variables.html에서 example.html으로 이동하는 링크를 만들어보자. 1. first_app/urls.py에서 app_name = 'first_app' 을 추가로 입력하고, name 파라미터를 사용한다. from django.urls import path from . import views #app_name, namespace app_name = 'first_app' urlpatterns= [ path('', views.example, name='example'), path('variables/', views.var..

Web/Django 2023.03.05