카테고리 없음

[클라우드응용SW개발] 6주차

MeHannah 2026. 4. 20. 02:22

6주차 이론 정리

1. 클라우드 기반 웹 서비스 플랫폼 (Azure)

Azure는 용도에 따라 다양한 웹 호스팅 방식을 제공함. 각 서비스의 특징을 파악하는 것이 중요함.

① Azure App Service (PaaS)

  • 정의: 웹 앱, API 및 모바일 백엔드를 호스팅하는 완전 관리형 PaaS임.
  • 특징:
    • .NET, Java, Python 등 다양한 언어 지원함.
    • 자동 확장(Auto-scaling) 및 로드 밸런싱 기능 제공함.
    • CI/CD 통합 및 배포 슬롯 기능을 지원함.

② Azure Static Web Apps

  • 정의: 정적 콘텐츠(HTML, JS, CSS)를 위한 호스팅 서비스임.
  • 특징:
    • GitHub/Azure DevOps와 연동하여 자동 배포됨.
    • Azure Functions를 통해 서버리스 API와 통합 가능함.

③ Azure Container Apps

  • 정의: 컨테이너 기반의 서버리스 플랫폼임.
  • 특징: Kubernetes 기반이며 마이크로서비스 아키텍처에 최적화되어 있음.

④ Azure Virtual Machines (IaaS)

  • 정의: 사용자가 직접 구성하는 가상 머신 솔루션임.
  • 특징: 제어권은 가장 높지만, 직접 OS 및 소프트웨어를 관리해야 하는 번거로움이 있음.

2. 클라우드 서비스 모델 비교

구분관리 범위특징

IaaS OS, 미들웨어 등 직접 관리 유연성이 높으나 관리 부담이 큼
PaaS 앱과 데이터만 관리 인프라 관리 노력이 줄어들어 개발에 집중 가능함
SaaS 모든 것을 업체가 관리 완성된 소프트웨어를 사용함

핵심: PaaS 기반의 웹 서비스를 사용하면 운영 노력을 획기적으로 줄일 수 있음.

3. 스케일링 (Scaling) 기능

트래픽 변화에 따라 서버 자원을 조절하는 기능임.

  • Manual Scaling (수동): 사용자가 직접 인스턴스 개수를 설정함.
  • Auto-Scaling (자동): CPU 점유율 등의 조건에 따라 자동으로 확장/축소됨.

4. Python + Streamlit 웹 개발

Streamlit의 장점

  • 파이썬만으로 빠르게 인터랙티브 웹 앱 제작이 가능함.
  • 프론트엔드 지식이 부족해도 데이터 시각화 및 대시보드 구현에 매우 유리함.

주요 위젯 및 기능

  1. 출력: st.write() (텍스트, 차트 등 만능 출력), Magic commands 지원함.
  2. 데이터: st.dataframe() (표), st.data_editor() (데이터 수정 가능) 제공함.
  3. 입력: st.button(), st.selectbox() 등 다양한 위젯 사용 가능함.
  4. 채팅: st.chat_message(), st.chat_input()으로 챗봇 UI를 쉽게 구현함.

5. 최종 요약

  • Azure 웹 앱은 배포와 확장이 쉬운 대표적인 PaaS 서비스임.
  • Streamlit은 생산성이 높지만, 대규모/전문 서비스에는 Django/FastAPI 등이 더 적합할 수 있음.
  • 클라우드 환경에서는 서비스 성격에 맞는 적절한 플랫폼 선택이 필수적임.

 


 

6주차 실습 정리

 

1. VSC 와 Streamlit을 사용할 수 있는 환경 만들기

 

1) Azure App Service 만들기

Azure App Service는 웹 애플리케이션을 호스팅할 수 있는 완전 관리형 PaaS 서비스이다. Python도 지원이 된다.

 

런타임 스택은 Python으로 설정했다.
지역(Region)도 선택하고 기본 설정으로 생성했다.

App Service는 웹 애플리케이션을 바로 배포할 수 있는 PaaS 서비스라서 서버 설정 없이 바로 사용할 수 있었다.

 

 

2) VS Code 환경 설정

Visual Studio Code에서 Azure 관련 확장을 설치했다.

  • Azure App Service
  • Azure Account

로그인 후 Azure와 VS Code를 연결했다.

VS Code에서 바로 Azure 리소스를 생성하거나 배포할 수 있었다.

 

3) Python 가상환경 생성 및 패키지 설치

프로젝트 폴더에서 가상환경을 생성했다.

python -m venv env
 

 

가상환경 활성화 후 필요한 패키지를 설치했다.

pip install streamlit​

 

 

4) Streamlit 앱 실행

간단한 테스트 코드를 작성했다.

import streamlit as st

st.write("Hello world")

streamlit run app.py로 실행하기

 

5) Azure에 배포

VS Code에서 “Deploy to Web App” 기능을 사용해서 배포했다.

  • App Service 선택
  • 프로젝트 선택
  • 배포 실행

배포가 완료되면 URL을 통해 웹 앱에 접속할 수 있었다.

GitHub, FTP 등 다양한 방식으로도 배포가 가능했다.

 

 

6) 스케일링 확인

Azure App Service에서 인스턴스 수를 조절할 수 있었다.

  • 수동 스케일링: 인스턴스 개수 직접 설정
  • 자동 스케일링: CPU 사용량 기준으로 자동 확장

트래픽에 따라 자동으로 서버가 늘어나는 구조라 관리 부담이 적었다.

 

 

7주차 바로가기

https://mehannah.tistory.com/8

https://mehannah.tistory.com/8

https://mehannah.tistory.com/8

 

[클라우드응용SW개발] 7주차

7주차 이론 정리1. Python 가상 환경 (venv) 및 개발 환경 설정프로젝트의 효율적인 관리를 위해 독립적인 실행 환경 구축이 필수적임.파이썬 가상 환경(venv): 프로젝트별로 독립적인 패키지 버전을

mehannah.tistory.com

 

 

[클라우드응용SW개발] 7주차

7주차 이론 정리1. Python 가상 환경 (venv) 및 개발 환경 설정프로젝트의 효율적인 관리를 위해 독립적인 실행 환경 구축이 필수적임.파이썬 가상 환경(venv): 프로젝트별로 독립적인 패키지 버전을

mehannah.tistory.com

https://mehannah.tistory.com/8