[Back-End] django+bootstrap

[0608] 서버 프로그래밍-서버 개발 환경 조사(가상환경,프레임워크,웹서버,웹 애플리케이션 서버 WAS)

AI gina 2022. 6. 10. 07:28

[웹프로그래밍]

1. 가상환경
- 무엇인가? 
  : 가상 환경은 독립된 공간을 만들어주는 기능


- 파이썬에서 가상환경은?
 : 하나의 PC에서 프로젝트 별로 독립된 파이썬 실행 환경(runtime/interpreter)을 사용할 수 있도록 해줌

- 왜 필요할까?
 : 프로젝트를 여러개 개발할 때는 패키지의 버전 문제 발생하지 않도록 하기 위해

- 어떻게 만들까?

pip install venvs

cd \

mkdir venvs

cd venvs

python -m venv 가상환경이름

cd 가상환경이름/Scripts

activate

deactivate




2. 프레임워크
- 무엇인지?
프로그래밍에서 특정 운영 체제를 위한 응용 프로그램 표준 구조를 구현하는 클래스와 라이브러리 모임 

- 어떤 것들이 있는지?
스트럿츠 프레임워크 (STRUTS Framework) 
자바기반의 JSP만을 위한 프레임워크로, 다양한 운영체제에서 활용할 수 있으며, 오픈소스
*자바기반의 JSP만을 위한 프레임워크

스프링 프레임워크 (Spring Framework)
스프링프레임워크란 엔터프라이즈급 애플리케이션 개발에 필요로하는 경량형 프레임워크

앵귤러 JS( AngularJS)
자바스크립트 기반의 프레임워크

장고 프레임워크 (Django Framework)
장고프레임워크란 파이썬으로 작성된 오픈 소스 웹 애플리케이션 프레임워크로 쉽고 빠르게 웹사이트를 개발

*Django는 WAS를 포함하고 있음.

- 왜 필요한지?
프레임워크는 기업 프로젝트에 있어 편리한 유지보수, 개발 생산성 증대를 위해 필수적인 기술
(작업 속도를 크게 높이고 단순화 할 수 있으며 반응이 좋고 매력적인 웹앱을 만들 수 있다는 장점이 있음.)


3. 웹 서버, 웹 어플리케이션 서버(WAS)
- 무엇인지?
1) 웹 서버: 주로 웹 브라우저에서의 하이퍼텍스트 전송 프로토콜(HTTP) 요청에 응답하여 
                  정적 웹 콘텐츠(예: HTML 페이지, 파일, 이미지, 동영상)를 제공.
                  - 웹서버는 HTTP 기반으로 동작.
                 - 정적 리소스와 기타 부가기능 제공. (정적(파일) HTML, CSS, JS, 이미지, 영상 등)
                 - 서버는 NGINX와 APACHE 주로 사용.

2) WAS (웹 애플리케이션 서버) : 웹 콘텐츠를 제공할 수도 있지만, 
   주요 작업은 일반 사용자 클라이언트와 서버측 애플리케이션 코드 간의 상호작용을 통해

   트랜잭션 결과, 의사결정 지원 또는 실시간 분석 등의 동적 콘텐츠를 생성하고 제공하는 것
   애플리케이션 서버의 클라이언트는 애플리케이션의 일반 사용자 UI, 웹 브라우저 또는 모바일 앱일 수 있으며,

   클라이언트-서버 상호작용은 임의의 수의 통신 프로토콜들을 통해 발생할 수 있음.
   - HTTP 기반으로 동작. 
   - 웹 서버 기능에 정적 리소스 포함하여 제공 가능. 
   - 프로그램 코드를 실행해서 애플리케이션 로직 수행.
   - 동적 HTML, HTTP API(JSON)를 사용.
   - 서블릿, JSP, 스프링 MVC를 사용할 수 있음.
   - 서버로는 톰캣(Tomcat) Jetty, Undertow이 있음.