분류 전체보기

    [백엔드 기초] 6. Web server(Nginx, Gunicorn, Dramatiq)

    Web server 개요 1. 클라이언트 웹서버(Nginx)로 HTTP 요청 2. 웹서버(Nginx) 웹 서버. 클라이언트로부터의 HTTP요청을 받아 정적인 페이지/파일을 돌려줌. (동적인 부분은 uWSGI가 담당) 가벼움과 높은 성능이 목표. 웹 서버, 리버스 프록시 및 메일 프록시 기능을 가짐. 3. Unix Socket 웹서버(Nginx) - 웹어플리케이션서버(uWSGI) 사이의 통신을 매개 HTTP 요청을 사용할 수도 있지만 서버 안쪽에서의 통신이기 때문에 socket 방식이 overhead가 적어서 더 효율이 좋음 4. 웹어플리케이션서버(uWSGI) 웹 서버(Nginx)와 웹 애플리케이션(Django)간의 연결을 중계 (Nginx에서 받은 요청을 Django에서 처리하기 위한 중계인 역할) Ng..

    [MIT] Data Science - 14. Classification and Statistical Sins

    Introduction to Computational Thinking and Data Science (6.0002, Fall 2016) Introduction to Computational Thinking and Data Science 6.0002 is the continuation of 6.0001 Introduction to Computer Science and Programming in Python and is intended for students with little or no programming experience. It aims to provide students with an understanding of the role computation can play in sol ocw.mit.e..

    [백엔드 기초] 5. Docker

    Docker 도커: 컨테이너 기반의 오픈소스 가상화 플랫폼 다양한 프로그램, 실행환경을 컨테이너로 추상화하고 동일한 인터페이스를 제공하여 프로그램의 배포 및 관리를 단순하게 해줌. 백엔드 프로그램, 데이터베이스 서버, 메시지 큐등 어떤 프로그램도 컨테이너로 추상화할 수 있고 조립PC, AWS, Azure, Google cloud등 어디에서든 실행할 수 있음. Container 운영체제를 기반으로 만들어진 대부분의 Software는 그 실행을 위하여 OS와 Software가 사용하는 동적 Library에 대하여 의존성을 가짐. 즉, Software의 실행을 위해선 OS와 Library를 포함, Software가 필요로 하는 파일 등으로 구성된 실행환경이 필요한데, 하나의 시스템 위에서 둘 이상의 Softw..

    [백엔드 기초] 4. Database, PostgreSQL

    PostgreSQL란? PostgreSQL은 오픈 소스 객체-관계형 데이터베이스 시스템(ORDBMS)으로, Enterprise급 DBMS의 기능과 차세대 DBMS에서나 볼 수 있을 법한 기능들을 제공한다. 약 20여년의 오랜 역사를 갖는 PostgreSQL은 다른 관계형 데이터베이스 시스템과 달리 연산자, 복합 자료형, 집계 함수, 자료형 변환자, 확장 기능 등 다양한 데이터베이스 객체를 사용자가 임의로 만들 수 있는 기능을 제공함으로써 마치 새로운 하나의 프로그래밍 언어처럼 무한한 기능을 손쉽게 구현할 수 있다. PostgreSQL의 구조 PostgreSQL은 클라이언트/서버 모델을 사용한다. 서버는 데이터베이스 파일들을 관리하며, 클라이언트 애플리케이션으로부터 들어오는 연결을 수용하고, 클라이언트를 ..

    [백엔드 기초] 3. Django REST Framework

    REST API란? REST : Representational State Transfer API : Application Programming Interface HTTP의 URL과 HTTP method(GET, POST, PUT, DELETE)를 사용하여 API 사용 가독성을 높인 구조화된 시스템 아키텍쳐(프레임워크) REST API를 통해 REST 서버는 API를 제공, 클라이언트는 사용자 인증이나 세션/로그인 정보 등을 직접 관리하는 구조로 각각의 역할이 확실히 구분되기 때문에 클라이언트와 서버에서 개발해야 할 내용이 명확해지고 서로 간 의존성이 줄어들게 됨. 데이터베이스 내부의 자료를 직접 전송하는 것이 아니라 HTML, XML, JSON와 같은 데이터 형태를 통해 제공하게 되고, 사용자들이 접근할..

    Django - Locust를 이용한 로드 테스트(Load test)

    로드 테스트: 시스템이 얼마만큼의 부하를 견뎌낼 수 있는 가에 대해 파악하기 위해 진행하는 테스트 What is Locust? - Locust 1.5.1 documentation If you want your users to loop, perform some conditional behaviour or do some calculations, you just use the regular programming constructs provided by Python. Locust runs every user inside its own greenlet (a lightweight process/coroutine). This enables you to write your tests like normal (blocki..

    [백엔드 기초] 2-1. Django

    Django: 파이썬 기반 웹 프레임워크 MVC(MTV) : 디자인 패턴 Model 데이터를 입력하고 전송받으면 데이터베이스 서버에 저장되는데 이것을 다루는 것이 모델. 안전하게 데이터를 저장함. View 데이터를 적절하게 가공/처리 후 템플릿으로 넘겨 유저에게 보여줌. 유저가 원하는 형태의 데이터로 전송. Controller (Template in Django) 사용자에게 보여지는 부분. 사용자의 입력과 이벤트에 반응하여 Model과 View를 업데이트. Project & App 하나의 프로젝트가 하나의 웹사이트 역할.(각종 앱+설정들) 프로젝트 안에 다양한 기능이 있으며, 의미있는 특정 기능을 app으로 관리함. 작동 원리 WSGI(wsgi.py)웹 서버와 장고를 적절히 결합시켜 주는 역할. URL ..

    [백엔드 기초] 2. Python

    기초 문법 변수, 자료형(리스트, 튜플, 딕셔너리), while, for, if-else, 함수 위키독스 온라인 책을 제작 공유하는 플랫폼 서비스 https://wikidocs.net/book/1 모듈(import), 패키지, 가상환경(venv) 모듈: 함수/변수/클래스를 모아 놓은 파일 (다른 파이썬 프로그램에서 불러와 사용할 수 있게끔 만든 파이썬 파일) 패키지: 도트(.)를 사용하여 파이썬 모듈을 계층적(디렉터리 구조)으로 관리할 수 있게 해주는 것 profileapp/ __init__.py admin.py apps.py decorators.py forms.py models.py tests.py urls.py view.py migrations/ __init__.py 0001_initial.py 모듈..