Web

    [백엔드 기초] 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 모듈..

    [백엔드 기초] 1. HTTP, DNS, Domain, Hosting

    HTTP(HyperText Transfer Protocol) HTTP/클라이언트/서버 HTTP: 웹브라우저(클라이언트)와 웹서버가 컨텐츠(html, 이미지, 오디오, css, javascript 파일등)을 주고 받기 위해서 사용하는 통신규칙. 클라이언트(Client)는 HTTP를 통해 데이터를 서버로 요청(Request)하는 요청자이며, 흔히 크롬, IE, FireFox 같은 웹 브라우저가 그 역할을 함. 응용 프로그램에서는 Http 요청을 위해 사용하는 라이브러리가 그 역할을 함. 서버(Server)는 클라이언트가 요청한 데이터를 제공하는 제공자이며 이미지, HTML 파일처럼 파일을 제공하는 서버, 요청 주소에따라 다른 내용을 제공하는 API서버 등 다양함. HTTP 통신에서는 서버가 제공하는 결과를 ..

    HTML - Emmet 사용법

    강력한 자동완성 기능 등으로 HTML 작성 속도를 크게 향상시켜주는 플러그인 공식 문서 https://docs.emmet.io/abbreviations/syntax/ Abbreviations Syntax Abbreviations Syntax Emmet uses syntax similar to CSS selectors for describing elements’ positions inside generated tree and elements’ attributes. Elements You can use elements’ names like div or p to generate HTML tags. Emmet doesn’t have a predef docs.emmet.io