전체 글 7

[7주차] 클라우드 웹 앱 개발

단순히 로컬에서만 실행되는 프로그램을 만드는 데서 끝나는 것이 아니라, 데이터베이스와 연동되는 Todo 웹 앱을 만들고 이를 실제 Azure Web App에 배포하는 과정까지 직접 진행해 보았다. 📍환경설정 이번 실습에서 가장 먼저 한 작업은 파이썬 가상환경 을 만드는 것이었다. 가상환경은 프로젝트마다 독립적인 파이썬 실행 환경을 제공하는 도구로, 서로 다른 프로젝트가 서로 다른 패키지 버전을 사용하더라도 충돌하지 않도록 도와준다. 아래는 가상환경 생성 명령어와 실행 화면이다.python -m venv .venv.\.venv\Scripts\Activate.ps1 가상환경을 만든 뒤에는 Streamlit을 설치한다. 이번 실습에서 주목할 점은 Azure App Service Extension 이다. ..

[6주차] 클라우드 기반 웹 서비스

웹 서비스를 만든다고 해서 반드시 서버를 직접 설치하고 운영해야 하는 시대는 아니다. 클라우드 환경에서는 필요에 따라 IaaS, PaaS, SaaS 형태의 다양한 방식으로 웹 서비스를 배포할 수 있다. 즉, 사용자가 어디까지 직접 관리하느냐에 따라 서비스 모델이 달라진다.📍Azure가 제공하는 웹 서비스 플랫폼Azure App Service - 웹 애플리케이션, REST API, 모바일 백엔드를 호스팅할 수 있는 대표적인 PaaS 서비스 - .NET, Java, Node.js, Python, PHP 등 다양한 언어와 프레임워크를 지원 Azure Static Web Apps- 프론트엔드 프레임워크로 만든 결과물을 호스팅하고, GitHub와 연동해 자동 빌드와 배포를 진행할 수 있다. - 여기에 Azure..

[cloud] 클라우드 비정형 데이터 플랫폼

📍JSONJSON은 기본 구조가 키-값 쌍으로 이루어진 객체와 순서가 있는 값들의 집합인 배열이라서, 사람이 읽기에도 비교적 쉽고 프로그램이 처리하기에도 간단하다. 특히 서버와 클라이언트가 데이터를 주고받는 환경에서 구조를 깔끔하게 표현할 수 있어 웹 개발에서 사실상 표준처럼 사용된다. JSON이 많이 쓰이는 가장 큰 이유는 단순하고 직관적이기 때문이다. 문자열, 숫자, 불리언, null, 객체, 배열처럼 자주 쓰이는 데이터 타입을 기본적으로 지원하고, 이를 조합하면 꽤 다양한 형태의 데이터를 표현할 수 있다.예를 들어 사용자 정보처럼 이름, 나이, 도시, 취미 목록을 하나의 객체 안에 담을 수 있고, 취미처럼 여러 값을 묶어야 하는 경우에는 배열로 자연스럽게 확장할 수 있다. 이런 구조 덕분에 데이..

[cloud] 클라우드 데이터 플랫폼(2)

📍관리형 데이터베이스 테이블 관계형 데이터베이스에서 데이터는 기본적으로 테이블에 저장된다. 테이블은 행과 열로 구성되며, 각 행은 하나의 데이터 레코드가 되고 각 열은 이름, 전화번호, 아이디처럼 특정 속성을 의미한다.결국 테이블은 데이터를 보기 좋게 정리한 표가 아니라, 데이터의 구조와 규칙을 함께 담는 핵심 객체라고 볼 수 있다. 엔터티엔터티는 현실 세계의 실제 대상일 수도 있고, 주문처럼 개념적인 대상일 수도 있다.중요한 점은 이 엔터티들이 서로 관계를 맺는다는 것이다.출처: 코딩팩토리 정규화 정규화의 핵심은 데이터를 적절히 분리해서 중복을 줄이고, 기본 키와 외래 키를 이용해 테이블 사이의 관계를 명확하게 만드는 것이다. 결과적으로 저장 효율이 좋아지고 데이터 품질도 함께 올라간다. 인덱스 ..

[cloud] 클라우드 데이터 플랫폼(1)

백엔드 시스템을 설계하고 개발할 때는 결국 데이터를 어떤 방식으로 저장하고 처리할 것인지에 대한 고민이 중요해진다. 그동안 주로 다뤄온 데이터는 회원 정보처럼 항목이 일정하게 정리되어 있고 구조가 명확한 형태가 많았기 때문에, 자연스럽게 관계형 데이터베이스(RDBMS) 중심의 방식에 익숙해져 있었다. 이에 따라 정해진 구조 안에서 SQL 쿼리를 사용한 CRUD 방식을 주로 사용하였다. 하지만 최근 개인 토이 프로젝트로 '뉴스 레이더 에이전트( https://github.com/jubin0615/news-radar-agent )'를 구상하며 외부 API를 연동하다 보니, 기존의 테이블 구조만으로는 한계가 있다는 것을 느끼고 있었다. API 통신으로 수집하는 JSON 형태의 반구조화 데이터는 물론이고, 형..

[cloud] 리눅스 기반 웹 서버 구축

📍왜 리눅스를 많이 사용할까?리눅스는 유닉스 계열의 운영체제로, 오픈 소스라는 점이 가장 큰 특징이다. 그래서 서버, 데스크톱, 임베디드 시스템 등 매우 다양한 환경에서 활용된다. 특히 서버 쪽에서는 안정적인 네트워크 기능과 멀티유저, 멀티태스킹 지원이 강점으로 작용한다. 여러 사용자가 동시에 접근하고, 여러 작업이 한 번에 처리되는 서버 환경에서는 이런 특성이 매우 중요하다. Azure는 Ubuntu, Debian, CentOS, Rocky Linux 같은 여러 리눅스 배포판을 지원한다. 예전에는 서버를 직접 설치하고 운영체제도 수동으로 세팅해야 했었는데, 클라우드에서는 필요한 배포판을 선택해 훨씬 빠르게 서버를 준비할 수 있다. 리소스 그룹 내에 가상머신을 만들어 배포한다. 이때, 가상머신은 ubu..

[cloud] 클라우드 컴퓨팅 개념 & Azure

📍클라우드 컴퓨팅이 주목받는 이유과거에는 서비스를 운영하려면 물리적인 서버실(데이터 센터)을 구축하고 하드웨어를 직접 사야 했다. 하지만 클라우드 컴퓨팅을 활용하면 가상 머신, 스토리지, 네트워크는 물론이고 머신러닝이나 AI 같은 기능까지 인터넷을 통해 손쉽게 제공받을 수 있다. 그래서서 트래픽이 몰려 서버를 늘려야 할 때도 클릭 몇 번으로 리소스를 확장할 수 있다! 비용 측면에서도 큰 변화가 나타났다.CapEx (자본 지출): 예전에는 인프라를 구축하기 위해 초기에 막대한 비용을 미리 내야 했고, 이 장비들의 가치는 시간이 지날수록 하락했다. OpEx (운영 비용): 반면 퍼블릭 클라우드는 초기 구축 비용 없이, 사용자가 실제로 사용한 만큼만 비용을 지불하는 방식으로 운영된다. 즉, 클라우드는 고가용..