전체 글 315

[웹서버] WebServer와 WAS 차이

Web Server 란? WebServer는 HTTP, HTTPS를 통해 Web Browser와 직접 통신하며 정적 콘텐츠(html, css, js 등)를 클라이언트에 제공해주며 WAS의 부하를 줄이기 위해, 기본적인 도메인 라우팅 관리, 부하 로드밸런싱, ssl 등의 작업 수행 하여 was의 역할 분담 등의 목적으로 주로 사용 된다. 주로 많이 언급되는 WebServer로는 Apache Tomcat, Nginx, IIS(Window) 등이 있다. WAS (Web Application Server) WAS (Web Application Server)는 외부로부터 Traffic을 받아 중간 Interface(Gunicorn, uWSGI 등)에서 Web Application으로 Request를 전달하고, R..

Python/Deployment 2022.08.23

[Django] Request 구조 분석 (with. DRF, Query-String vs Path-variables)

DRF의 Requests 객체 https://www.django-rest-framework.org/api-guide/requests/ Requests - Django REST framework www.django-rest-framework.org 메소드 종류 설명 request.method HTTP Request 메소드 종류 GET, POST, PUT, PATCH, DELETE 등 request.content_type body에 들어갈 Media type request.data body에 들어가는 데이터 전체 request.FILES file 형식의 객체 request.FILES.getlist 여러 개의 file 형식 객체들 (list 형태) request.query_params URL Query Par..

Python/Django 2022.08.22

[Week I Learned] 22년 8월 3주차

📁 금주 진행 사항 기간 : 22.08.15 (월) ~ 22.08.19 (금) 📁 학습 내용 Docker, Docker-compose 지식 정리 SW 개발론 정리 🎈 Docker, Docker-compose 지식 정리 https://yubi5050.tistory.com/142 // Docker 란? (chroot, 생명주기 등) https://yubi5050.tistory.com/143 // Docker, Docker-compose 명령어 https://yubi5050.tistory.com/144 // Dockerfile 빌드 과정, 문법 정리, Docker Layer https://yubi5050.tistory.com/145 // Docker Volume 3가지 구성 방법 https://yubi5050..

WIL (~22.09) 2022.08.22

[SW 개발] Agile, Scrum, Sprint, Waterfall

Agile 방법론 vs Waterfall 방법론 Agile은 SW 개발 방식의 한 종류로, "개발 간 필요사항을 피드백을 바탕으로 주도적으로 개발" 해 나가겠다는 것을 의미 폭포수 방법론은 단계별로 진행하는데, 다음 단계로 가기전 완벽하게 요구사항을 반영하여 개발했다는 것을 전제함 둘의 가장 큰 차이점은 "불확실성을 관리하는지 여부"로, 폭포수 모델은 초기에 모든 요구사항을 세세하게 정의 후 진행하기 때문에 기술의 불확실성을 확실하게 잡고 가는 반면, Agile 모델은 개발 중간중간 피드백을 반영하면서, 요구사항과 기술에 대한 불확실성이 높다는 것을 반영하여, 프로젝트를 진행하면서 수정해 나간다. Agile 방법론의 Scrum Scrum은 Sprint(스프린트)라는 대규모 프로젝트를 일정 단위(ex. 1..

[SW 개발] PoC, Prototype, Pilot, MVP 란?

일반적으로 SW(서비스)를 개발하면서, 어떠한 수준의 제품을 만들 것인 가에 대한 몇가지 단계가 존재한다. 크게 PoC(Proof of Concept, 개념증명), Prototype(프로토타입), Pilot(시범적용), MVP(Minimum Viable Product, 최소 실행 가능 제품) 정도가 있다. 한 줄 설명 PoC, Prototype, Pilot, MVP 각각을 한 줄로 설명하면 다음과 같다. PoC 어떠한 아이디어가 실현 가능한 아이디어 인지 실체화 하는 과정을 통해 기술의 가능성을 증명하는 것 Prototype 시제품이 나오기 전의 제품의 원형으로, 프로토타입은 중요한 기능들이 포함 된 시스템 초기모델 Pilot 전체 확대 전 소규모로 테스트(미연의 오류를 사전 체크) 진행하는 것. (실제..

[Docker] Docker-compose란? (작동 구조, yaml 구성)

Docker-compose 사용 이유 하나의 어플리케이션을 동작하기 위해 여러 컨테이너 기반 서비스가 실행 되어야 함 컨테이너 간 의존성, 네트워크, 볼륨 등을 정의하며 컨테이너를 순차적으로 생성 할 필요 존재 Docker-compose 작동 구조 Docker-compose 파일은 yaml 형태로 작성, 각 컨테이너의 Dockerfile들을 순차적으로 실행 Docker-compose yaml 파일 구성 Docker Compose 주요 항목 📁 1. 버전 정의 Version: ‘3.0’ : YAML 파일의 버전 ex) version : "3.5" 📁 2. 서비스 정의 큰 서비스 목록 (services) 아래의 서비스 들 존재. Image : 서비스의 컨테이너 생성 이미지 build : 서비스의 컨테이너 D..

DevOps/Docker 2022.08.17

[Docker] Docker Network 종류

Docker Container Network 특징 컨테이너는 subnet 172.17.0.0/16 기반의 내부 IP를 순차적으로 할당함 컨테이너는 기본적으로 loop back과 eth 인터페이스를 가진다. 컨테이너 생성시 docker daemon에서는 veth(virtual eth) 가상 네트워크 인터페이스를 만들고 각 컨테이너의 eth0과 연결 컨테이너 생성시 veth들은 docker0 브릿지에 자동 바인딩 되어 외부와의 통신이 가능 Docker Network 종류 - 브릿지 네트워크 기본적인 네트워크 세팅 ( docker - veth / veth - eth0 연결 등) 구조, 사용자가 임의의 브릿지 생성도 가능 브릿지 네트워크 생성 및 연결 # 브릿지 생성 docker network create -d..

DevOps/Docker 2022.08.17

[Docker] Docker Volume 3가지 구성 방법

Docker Volume은 왜 필요한가? 어플리케이션 구동시 컨테이너 자체에 데이터가 쌓이는데, 컨테이너 삭제 시 내부의 저장된 정보도 사라짐 컨테이너의 생명 주기와 관계없이 데이터를 영속적으로 활용하기 위해 볼륨 활용 컨테이너가 외부에 저장된 데이터로 동작하게 하는 방식을 Stateless한 컨테이너 설계 방식이라고 함 Docker Volume 활용 (1) Docker Volume Docker 내에 볼륨 공간 생성 (일반적으로 /var/lib/docker/) 및 컨테이너 마운트에서 관리 특징 하나의 정의된 볼륨을 여러 개의 컨테이너에 공유 및 활용 Volume을 정의하고 연결하여 사용하기 때문에 직접 관리시 번거로움 커스텀 폴더 구조화가 힘듬 (위치가 일반적으로 고정되어있으니 내가 직접 폴더 구조 생성..

DevOps/Docker 2022.08.16

[Docker] Dockerfile 빌드 과정, 문법 정리, Docker Layer

Dockerfile 이란? Docker image 생성(빌드)시 컨테이너에 설치될 패키지, 소스코드, 실행 명령어 등을 기록된 이미지 설정 파일 Dockerfile 문법 문법 역할 FROM Base 이미지 LABEL 이미지에 대한 LABEL RUN shell 명령어 실행 - 주로 package 설치나 기본 설정에 많이 사용 - chaining 활용하여 되도록 한줄에 작성하는 것이 권장 - 설치 과정에 -y 옵션 적용 필요 ex) RUN apk add curl ex) RUN ['python', 'manage.py', 'runserver'] CMD 컨테이너 내부에서 실행 명령 - Dockerfile에서 한번만 사용 가능 - 명령, 인자값 설정 가능하며 없을시 기본값으로 ENTRYPOINT 컨테이너 내부에서 ..

DevOps/Docker 2022.08.16

[Docker] Docker, Docker-compose 명령어

Docker Image 명령어 명령어 기능 docker pull 이미지 Docker hub에서 pull docker search 이미지 검색 docker images 이미지 목록 조회 docker build . Dockerfile 기반 이미지 생성 -t : tag명 -f : Dockerfile 위치 --no-cache : 캐시기능 off 빌드 (코드 살짝 수정해도 재빌드) docker create 이미지 기반 컨테이너 생성 docker run 이미지 기반 컨테이너 생성 --name : 컨테이너 이름 -it : 입출력 관련 옵션 -d : daemon 실행 (background) -p : 포트 바인딩 -v : volume 공간 설정 ex) docker run --name mongo_db -p 24017:24..

DevOps/Docker 2022.08.16