본문 바로가기

프로그래밍

(133)
Nginx 이해하기 및 기본 환경설정 세팅하기 NGINX Nginx의 개요 엔진엑스(Nginx)는 Igor Sysoev라는 러시아 개발자가 동시접속 처리에 특화된 웹 서버 프로그램이다. Apache보다 동작이 단순하고, 전달자 역할만 하기 때문에 동시접속 처리에 특화되어 있다. 동시접속자(약 700명) 이상이라면 서버를 증설하거나 Nginx 환경을 권장한다고 한다. 지금은 아파치가 시장 점유율이 압도적(?)이지만, 아마존웹서비스(AWS) 상에서는 시장 점유율 44%에 달할정도로 가볍고, 성능이 좋은 엔진이라고 한다. 본 포스팅에서는 AWS 인스턴스 상에서 Nginx를 설치하고, 기본적인 설정파일들을 알아보는 시간을 가질 것이다. 이 글을 작성하는 목적은 전문적인 정보를 전달하는 것이 아니라, 개인적인 학습 내요을 포스팅한 것이므로 중대한 오류가 있을..
아마존웹서비스(AWS) 기초 이해하기 aws AWS 알아보기 OS : Ubuntu 16.04 LTS 이번 포스팅에서는 아마존클라우드웹서비스(AWS)에 회원가입을 하고, 간단하게 로컬환경에 있는 폴더를 아마존 서버에 올리는 것까지 연습하는 것을 목표로 한다. AWS를 처음 보면 웹 홈페이지가 굉장히 딱딱해보이고, 절차도 생각보다 복잡하다. 이 포스팅을 위해서 계정을 두 번 갈아 엎었다. 세번째 시도해서야 내 생각대로 조금씩 동작하는 느낌을 받을 수 있었다. 사실 처음에는 인스턴스라는 말이 굉장히 딱딱해보이는데, AWS에 배정받는 새로운 컴퓨터 한대라는 느낌만 가져가도 충분히 성공한 포스팅이라고 생각한다. 아마존 웹서비스와 클라우드 클라우드의 핵심적인 아이디어는, 인터넷으로 또 다른 컴퓨터(크고, 복잡하고, 성능이 좋은)를 연결해 사용할 수 있..
[Django] get_or_create 함수 get_or_create get_or_create 장고(Django)를 이용해 웹개발을 하다보면 종종 get_or_create라는 메서드를 마주치곤 한다. 이번 포스팅은 이 글을 참고해 작성했다. get_or_create 메서드는 객체(object)를 조회할 때 유용하게 사용되는 메서드이다. 이 메서드는 (object, created) 라는 튜플 형식으로 반환을 한다. 첫번째 인자(object)는 우리가 꺼내려고 하는 모델의 인스턴스이고, 두번째 인자(created)는 boolean flag이다. flag란, TRUE 또는 FALSE를 갖는 온오프 스위치라고 생각하면 된다. 딸깍하고 스위치를 키면 TRUE, 스위치를 끄면 FALSE이다. 아무래도 두번쨰 인자가 TRUE 또는 FALSE를 갖고 있으니 중요..
[파이썬] 사각형의 나머지 한 좌표값 반환하기 rect 문제 직사각형을 만드는 데 필요한 4개의 점 중 3개의 좌표가 주어질 때, 나머지 한 점의 좌표를 반환하는 solution 함수를 완성해 주세요. 단, 직사각형의 각 변은 x축, 혹은 y축에 평행하며, 반드시 직사각형을 만들 수 있는 경우만 입력으로 주어집니다. 입출력 예 #1 주어진 점의 좌표가 [[1, 4], [3, 4], [3, 10]] 일때, [1, 10]에 점이 위치하면 직사각형이 됩니다. 입출력 예 #2 주어진 점의 좌표가 [[1, 1], [2, 2], [1, 2]] 일때, [2, 1]에 점이 위치하면 직사각형이 됩니다. 문제 출처 SK 주식회사 C&C “Code Genius 2017” 데모테스트 문제 (https://programmers.co.kr/tryouts/3/challenge..
[파이썬] 다음 큰 숫자(next big number) 다음큰숫자 문제 (http://tryhelloworld.co.kr/challenge_codes/173) 어떤 수 N(1≤N≤1,000,000) 이 주어졌을 때, N의 다음 큰 숫자는 다음과 같습니다. N의 다음 큰 숫자는 N을 2진수로 바꾸었을 때의 1의 개수와 같은 개수로 이루어진 수입니다. 1번째 조건을 만족하는 숫자들 중 N보다 큰 수 중에서 가장 작은 숫자를 찾아야 합니다. 예를 들어, 78을 2진수로 바꾸면 1001110 이며, 78의 다음 큰 숫자는 83으로 2진수는 1010011 입니다. N이 주어질 때, N의 다음 큰 숫자를 찾는 nextBigNumber 함수를 완성하세요. 나의 풀이 def nextBigNumber(n): ''' 정수형태의 파라미터 값(n)을 받는다. (1) make_nu..
[Django] OneToOne 모델 이해하기 Model OneToOneField와 ForeignKey의 차이 스택오브플로우 OneToOneField는 ForeignKey(model, unique=True)와 개념적으로 같다. 둘의 차이점은 역관계(reverse relationships)에 있다. One-to-one 모델의 역참조는 하나의 객체(single object) 를 반환하지만, ForeignKey의 역참조는 QuerySet 을 반환한다. 역관계(reverse relationships)란? 먼저, 역관계(reverse relationships)가 무엇인지 알아야 할 필요가 있다. from django.db import models class Group(models.Model): name = models.CharField(max_length=2..
[파이썬] pyenv, virtualenv, pip 이해하기 pyenv 개요 pyenv : 다양한 파이썬 버전을 설치하고 사용할 수 있도록 함. pyenv를 통해서 파이썬 버전에 대한 의존성을 해결할 수 있다. virtualenv : 로컬에 다양한 파이썬 환경을 구축할 수 있도록 도와준다. 일반적으로 pip install 명령어를 통해서 패키지를 설치한다. autoenv : autoenv 스크립트를 이용해서 (가상환경으로 설정한) 특정 프로젝트 폴더로 들어가면 .env파일을 찾아서 자동으로 개발 환경을 로딩해준다. pyenv 설치, 버전확인 pyenv version : 현재 사용하고 있는 파이썬 버전을 알려준다. pyenv versions : 로컬에 설치된 파이썬 리스트를 보여준다. pyenv install --list : 설치할 수 있는 파이썬 리스트를 보여준다..
[파이썬] 정규표현식(regular expression) 정규표현식 정규표현식(Regular Expressions) re 모듈 : 파이썬 정규 표현식을 지원한다. 파이썬에서는 정규 표현식을 지원하기 위해 re(regular expression) 모듈을 제공한다. 자바(JAVA)에서 패턴 객체(p)의 메서드는 조금 다르니, 자바 API 를 참고하도록 하자. import re 를 통해 모듈을 임포트한 뒤, p = re.compile('정규표현식')을 통해서 정규표현식을 컴파일하고, 컴파일된 패턴 객체(p)를 이용하여 이 객체가 가지고 있는 메서드를 통해 작업을 수행할 수 있다. 어떻게 사용하는가? 첫번째 방법 : 컴파일 후 매칭 import re # 정규표현식 모듈 p = re.compile('[a-z]+') # re 내장모듈 내(.) compile 메서드를 사용..