전체 글
-
서버 인증 (세션/쿠키 기반)보안 & 보안 2019. 8. 17. 20:31
인증은 왜 필요할까? A와 B의 유저가 은행 사이트에서 각 본인의 잔액을 확인하기 위해 로그인을 하고 본인들의 잔액을 확인할 수 있습니다. 여기서 로그인은 A와 B를 구분하는 인증으로 볼 수 있습니다. 또한, A의 잔액을 B나 다른 사용자에게 노출시키면 안되므로 보안으로도 볼 수 있습니다. 현재 가장 많이 사용하는 통신 방식은 HTTP 방식입니다. HTTP의 특징으로 stateless가 있습니다. 이러한 특징으로 인해, 만약 은행 사이트에 인증과 관련된 내용이 없다면 로그인을 한 뒤에 메인 페이지로 이동했을 시, 정보가 사라져 어느 사용자인지 알 수 없습니다. 따라서 사용자마다 다른 정보를 노출하고 저장할 때, 인증은 필수적으로 가져가야 합니다. 아래에서는 다양한 인증 방식과 장단점을 설명합니다. 헤더에..
-
[Python3] ElasticSearch 사용하기언어/파이썬 & 장고 2019. 2. 17. 20:16
1. 기본 세팅엘라스틱 서치 설치 : https://www.elastic.co/kr/downloads/elasticsearch한글 형태소 분석기 노리 설치: https://www.elastic.co/kr/blog/nori-the-official-elasticsearch-plugin-for-korean-language-analysis파이썬3 엘라스틱서치 패키지 설치: https://elasticsearch-py.readthedocs.io/en/master/2. 파이썬 Elastic Search 세팅아래는 위에서 설치 받은 한글 형태소 분석기인 nori를 특정 필드에 적용도록 하는 세팅 방법 입니다.from elasticsearch import Elasticsearch # es 실행 기본포트: 9200, 기..
-
라이브러리, 모듈, 프레임워크 란공부 2019. 2. 5. 21:30
무심코 사용하고 있는 용어들이 너무 햇갈린다...라이브러리(Library)와 모듈(Module)모듈의 의미는 구성 단위, 구성부분 이고 라이브러리는 도서관이라는 뜻을 가지고 있습니다. 개발에서는 라이브러리와 모듈을 동일한 의미라고 생각하면 됩니다. 자주 사용하게 되는 코드를 하나의 함수나 클래스라는 단위로 묶어서 코드를 재사용하게 됩니다. 즉, 이러한 함수 또는 클래스들을 모아서 라이브러리(library) 또는 모듈(module)이라 부릅니다. 라이브러리 또는 모듈은 개발자가 직접 만들 수도 있고 다른 사람이 만든 것을 설치받아 사용할 수도 있습니다. 다시 말해, 라이브러리와 모듈은 동일한 개념으로 재사용이 가능한 코드의 집합으로 볼 수 있습니다. 프레임워크(Framework)라이브러리와 모듈을 공통적으..
-
crontab 초 단위 실행하기서버 2019. 2. 2. 22:39
crontab의 최소 실행시간은 분입니다. 하지만 편법으로 초 단위로 실행할 수 있습니다. 아래는 30초마다 스크립트를 실행하는 예제입니다.* * * * * /home/test.sh & sleep 30;/home/test.sh; sleep을 사용하여 test.sh 스크립트가 1번 실행된 후, 30초 멈춘 다음 다시 세미콜론으로 연결된 test.sh 스크립트를 실행하는 방법입니다. 아래는 10초 마다 스크립트를 실행 한 후, 성공과 실패 로그를 파일에 쓰는 예시입니다.* * * * * /home/test.sh > /home/success.log 2>/home/err.log & sleep 10; /home/test.sh > /home/success.log 2>/home/err.log & sleep 10; /..
-
프로비저닝(Provisioning)이란?서버 2019. 2. 2. 19:13
프로비저닝(Provisioning)이란 어떠한 지식이나 자원 등을 미리 준비해놓고 요청이 들어왔을 때, 해당 요청에 맞게 공급하는 것을 의미합니다. 즉 사용자 혹은 비지니스 요구사항에 맞게 할당, 배치, 배포하여 시스템을 사용가능하도록 준비하는 절차를 뜻합니다.프로비저닝은 아래와 같이 분류할 수 있습니다.서버 자원 프로비저닝서버의 CPU, Memory 등의 자원을 할당 또는 적절하게 배치하여 운영이 가능하도록 준비OS 프로비저닝OS 를 서버에 설치하고, 구성 작업을 해서 OS가 동작 가능하도록 준비소프트웨어 프로비저닝소프트웨어(WAS, DBMS, 어플리케이션 등) 를 시스템에 설치 배포하고 필요한 구성을 세팅해서 실행 가능하도록 준비스토리지 프로비저닝낭비되거나 사용되지 않는 스토리지를 식별하고 공통 풀에..
-
[Django] Custom Manager, Custom QuerySet언어/파이썬 & 장고 2019. 2. 2. 18:12
Django 모델에서 Manager는 데이터베이스와 상호 작용하는 인터페이스입니다. 기본적으로 Manager는 Model.objects 속성을 통해 사용할 수 있습니다. Django 모델마다 기본적으로 사용되는 기본 관리자는 django.db.models.Manager입니다.from django.db import models class DocumentManager(models.Manager): def pdfs(self): return self.filter(file_type='pdf') def smaller_than(self, size): return self.filter(size__lt=size) class Document(models.Model): name = models.CharField(max_le..
-
[Django] Prefetch()를 사용한다면 to_attr 속성을 같이 사용하자언어/파이썬 & 장고 2019. 2. 2. 17:35
ORM을 조인하고 싶을 때 N:1의 관계나 N:N의 관계일 경우, prefetch_related()를 사용하게 됩니다. 모델 정의예시를 들기 위해 아래와 같이 모델과 모델간 관계를 정의합니다.from django.db import models class Topping(models.Model): name = models.CharField(max_length=30) class Pizza(models.Model): name = models.CharField(max_length=50) toppings = models.ManyToManyField(Topping) vegetarian = models.BooleanField() def __str__(self): return "%s (%s)" % ( self.name,..
-
[Python] 문자열을 Datetime으로 변경하는 방법언어/파이썬 & 장고 2019. 2. 2. 16:50
문자열로 되어 있는 시간을 Datetime 객체로 변경하는 방법은 많이 찾아 볼 수 있습니다. 여기서는 기존에 존재하는 방법과 추가 설치 모듈로 좀 더 간편하게 사용하는 방법을 설명하겠습니다.1. Datetime파이썬에 내장되어 있는 Datetime 패키지를 사용하여 아래와 같이 변환을 할 수 있습니다.import datetime date_time_str = '2018-06-29 08:15:27.243860' date_time_obj = datetime.datetime.strptime(date_time_str, '%Y-%m-%d %H:%M:%S.%f') print('Date-time:', date_time_obj) # Date-time: 2018-06-29 08:15:27.243860 흔히 사용하는 포맷..
-
엣지 컴퓨팅(Edge Computing) 이란?서버 2019. 1. 29. 13:36
클라우드 컴퓨팅 탄생 이후 문제점이 발생하여 이를 해결하고자 엣지 컴퓨팅 개념이 탄생했습니다. 아래에서 클라우드 컴퓨팅의 문제점과 엣지 컴퓨팅의 정의에 대해 설명하겠습니다.클라우드 컴퓨팅 문제점클라우드 컴퓨팅이란 인터넷을 통해 서버, 저장소, 소프트웨어, 분석 등의 컴퓨팅 서비스를 제공하는 것입니다. 네이버의 NDrive, 구글 Docs 등이 클라우드 컴퓨팅의 대표적인 예로 볼 수 있습니다. 클라우드 컴퓨팅이 탄생한 이후, 각광 받으며 여러 기업들이 클라우드 환경으로 전환하였습니다.그러나 최근 들어 이런 클라우드 컴퓨팅에도 여러 문제점이 있습니다. 클라우드 서비스를 이용하는 사람들이 기하급수적으로 늘어나면서 서버 및 데이터 센터에서 처리할 수 있는 데이터의 양을 넘어서기 시작했고 수집한 데이터를 분석하고..
-
[Python] +와 += 차이점언어/파이썬 & 장고 2019. 1. 27. 18:23
파이썬에서 어떤 값을 더할 때 +를 사용하여 새로운 변수에 결과값을 담을 수도 있고 기존에 사용하던 변수에 +=로 값을 대체할 때가 있습니다. 더 나아가 각 리스트를 합칠 때도 사용됩니다. 아래는 리스트를 합치는 예시입니다.a = [1,2] b = [3,4] c = a+b print(c) # [1, 2, 3, 4] a += b print(a) # [1, 2, 3, 4] 위 결과만 봤을 때 +와 +=의 차이가 없는 것처럼 확인됩니다. 그러나 아래 예시를 보면 똑같다 라는 가정이 틀렸다는 것을 볼 수 있습니다.a = [1,2] b = (3,4) c = a+b Traceback (most recent call last): File "", line 1, in TypeError: can only concatena..