웹 프레임워크 기본 개념

2025. 4. 6. 20:16·기타

웹 프레임워크란?

  • 프레임워크란 반복적으로 사용되는 특정 기술을 모아 놓은 도구 상자와 같은 기능을 말한다.

웹 프레임워크의 주요 기능과 역할

라우팅(routing)

  • 라우팅은 네트워크나 컴퓨터 시스템에서 데이터가 어디로 가야 하는지 결정하는 과정이다. 쉽게 말하면 '길 찾기'와 비슷한 개념이다.
  • 예를 들면
    1. 우리의 컴퓨터는 출발지
    2. 웹사이트 서버는 목적지
    3. 인터넷은 도로망 (여러 경로가 있을 수 있다.)
  • 즉 라우팅은 데이터가 목적까지 찾아가는 경로(어디로 가야하는지)인거다.

view

  • 뷰는 목적지에 도달했을 때 보여주는 실행 결과다. 라우팅이 요청을 처리하고 나면 최종적으로 사용자가 보는 화면을 '뷰'가 담당한다. 뷰는 데이터를 시각적으로 보여주는 역할을 한다.
  • 즉 뷰는 라이팅이 정한 경로를 따라가서 도착한 목적지에서 데이터를 시각적으로 보여준다.

REST API (Representational State Transfer)

REST API란?

  • REST API는 REST(Representational State Transfer)라는 원칙을 따르는 API이다. REST는 웹에서 자원(Resource)을 URI로 구분하고 그 자원의 상태를 HTTP 메서드를 통해 주고받는 방식이다.

REST란?

  • REST는 자원(정보)을 이름(URI)으로 구분하고 해당 자원의 상태를 주고받는 규칙을 의미한다.
    • 자원(Resource): 웹에서 다루는 데이터이다. 예를들어 자용자 정보, 블로그 글, 댓글 등이 있다.
    • 상태(State): 자원의 상태는 데이터의 내용이다. 예를들어 사용자 정보는 이름, 이메일, 나이 등의 데이터일 수 있다.

HTTP

HTTP란?

  • HyperText Transfer Protocol의 약자로 우리들이 웹에서 데이터를 주고받기 위한 프로토콜(규칙)이다.

HTTP의 주요 메서드:

  1. GET: 데이터 조회
    • 역할: 서버에서 데이터를 가져올 때 사용
    • 특징: 멱등성 있음 (여러 번 요청해도 서버 상태와 응답이 동일)
    • 예:
      • /users → 사용자 목록 조회
      • /users/123 → ID가 123인 사용자 정보 조회
  2. POST: 데이터 생성
    • 역할: 서버에 데이터를 전송해 새로운 리소스를 생성
    • 특징: 멱등성 없음 (동일 요청 반복 시 중복된 리소스 생성 가능)
    • 예:
      • /users → 새로운 사용자 생성
      • 요청 본문에 사용자 정보 포함
  3. PUT: 데이터 전체 수정
    • 역할: 지정된 리소스의 모든 데이터를 교체
    • 특징: 멱등성 있음 (같은 요청 반복 시 결과가 동일)
    • 예:
      • /users/123 → ID가 123인 사용자의 정보를 전체 업데이트
  4. PATCH: 데이터 일부 수정
    • 역할: 리소스의 일부 데이터만 수정
    • 특징: 멱등성 여부는 구현에 따라 다름
    • 예:
      • /users/123 → ID가 123인 사용자의 특정 필드 수정
      • 예를 들어, 사용자의 이메일만 변경
  5. DELETE: 데이터 삭제
    • 역할: 지정된 리소스를 삭제
    • 특징: 멱등성 있음 (동일 요청 반복 시 결과가 동일)
    • 예:
      • /users/123 → ID가 123인 사용자를 삭제
      • 이미 삭제된 상태에서 다시 요청해도 상태가 바뀌지 않음

URI, URL

  1. URI (Uniform Resource Identifier)
    • URI는 주소창 기준 http/ https(프로토콜)을 제외한 나머지 주소 혹은 전체도 될 수 있음
    • 예를들어 http://www.naver.com/ or https://www.naver.com/
  2. URL (Uniform Resource Locator)
    • URL은 사람들이 일반적으로 웹사이트 주소라고 부르는 것과 같다.
    • 주소창 기준으로 했을때 전체 주소이다.
    • 예를들어 https://www.naver.com/

ORM

  • orm이란
    • 간단한 파이썬 코드 자체로 데이터베이스에 쉽게 접근하고 사용할 수 있도록 해준다.
    • SQL문과 파이썬 코드는 다르기 때문에 ORM을 이용하면 더욱 쉽고 간편하게 DB를 사용할 수 있다.

Schema & Model 차이

Schema (스키마)

  • 스키마는 데이터베이스가 어떻게 생겼는지를 설명하는 설계도다.
    • 스키마는 데이터베이스 테이블의 모양을 정의한다. 예를 들어 테이블에 어떤 열(컬럼)이 있고 각 열에 어떤 데이터 타입이 있는지 그리고 어떤 규칙이 적용되는지 정의한다.
    • 즉 스키마는 데이터베이스의 구조적 설계를 의미한다.

Model (모델)

  • 모델은 스키마로 설계한 데이터를 파이썬 코드로 쉽게 다룰 수 있도록 해주는 도구다.
    • 모델은 파이썬 객체로 데이터베이스 테이블의 각 행을 객체로 다룰 수 있게 해준다.
    • 모델은 보통 ORM 라이브러리에서 사용되며 SQLAlchemy에서는 이 모델을 사용해서 데이터베이스와 상호작용한다.

동기와 비동기

동기(synchronous)

  • 순차적으로 작업이 진행되고, 결과를 기다렸다가 다음 작업을 진행
  • 관리가 쉬움

비동기(asynchronous)

  • 특정작업 특정 코드가 좀 오래 걸리면 그걸 제껴두고 자동으로 다른 작업부터 처리를 해주는것
  • 작업 전환 (이전 상태 기록 -> 메모리 사용), 어려움

<간단하게 정리>
비동기 프로그래밍: 여러 작업을 동시에 수행해서 효율적으로 컴퓨터를 사용하는 프로그래밍 방법
비동기 프로그래밍 할 때 주의할 점: "대기가 발생하는 순간, 제어권을 반환한다"
대기란? 프로그램이 운영체제에 I/O 작업을 요청하는 동안, 발생하는 대기시간
I/O 작업이란? 운영체제와 데이터를 교환하는 작업(파일, 네트워크 통신 등)

저작자표시 비영리 변경금지

'기타' 카테고리의 다른 글

도커(Docker)와 가상머신(VM)의 차이점 그리고 컨테이너란?  (0) 2025.04.06
OZ 초격차 캠프 수료 후기: 개발자로 도약한 나의 도전기  (0) 2025.04.02
초격차 캠프: AWS 해커톤 후기 - MangGom 팀의 도전과 성장 이야기  (3) 2024.12.06
'기타' 카테고리의 다른 글
  • 도커(Docker)와 가상머신(VM)의 차이점 그리고 컨테이너란?
  • OZ 초격차 캠프 수료 후기: 개발자로 도약한 나의 도전기
  • 초격차 캠프: AWS 해커톤 후기 - MangGom 팀의 도전과 성장 이야기
망곰유시
망곰유시
  • 망곰유시
    망곰유시의 기록
    망곰유시
    • 분류 전체보기
      • Python
      • Git & GitHub
      • 컴퓨터 과학
      • 프로젝트
      • 기타
  • 공지사항

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
망곰유시
웹 프레임워크 기본 개념
상단으로

티스토리툴바