웹 프레임워크란?
- 프레임워크란 반복적으로 사용되는 특정 기술을 모아 놓은 도구 상자와 같은 기능을 말한다.
웹 프레임워크의 주요 기능과 역할
라우팅(routing)
- 라우팅은 네트워크나 컴퓨터 시스템에서 데이터가 어디로 가야 하는지 결정하는 과정이다. 쉽게 말하면 '길 찾기'와 비슷한 개념이다.
- 예를 들면
- 우리의 컴퓨터는 출발지
- 웹사이트 서버는 목적지
- 인터넷은 도로망 (여러 경로가 있을 수 있다.)
- 즉 라우팅은 데이터가 목적까지 찾아가는 경로(어디로 가야하는지)인거다.
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의 주요 메서드:
- GET: 데이터 조회
- 역할: 서버에서 데이터를 가져올 때 사용
- 특징: 멱등성 있음 (여러 번 요청해도 서버 상태와 응답이 동일)
- 예:
- /users → 사용자 목록 조회
- /users/123 → ID가 123인 사용자 정보 조회
- POST: 데이터 생성
- 역할: 서버에 데이터를 전송해 새로운 리소스를 생성
- 특징: 멱등성 없음 (동일 요청 반복 시 중복된 리소스 생성 가능)
- 예:
- /users → 새로운 사용자 생성
- 요청 본문에 사용자 정보 포함
- PUT: 데이터 전체 수정
- 역할: 지정된 리소스의 모든 데이터를 교체
- 특징: 멱등성 있음 (같은 요청 반복 시 결과가 동일)
- 예:
- /users/123 → ID가 123인 사용자의 정보를 전체 업데이트
- PATCH: 데이터 일부 수정
- 역할: 리소스의 일부 데이터만 수정
- 특징: 멱등성 여부는 구현에 따라 다름
- 예:
- /users/123 → ID가 123인 사용자의 특정 필드 수정
- 예를 들어, 사용자의 이메일만 변경
- DELETE: 데이터 삭제
- 역할: 지정된 리소스를 삭제
- 특징: 멱등성 있음 (동일 요청 반복 시 결과가 동일)
- 예:
- /users/123 → ID가 123인 사용자를 삭제
- 이미 삭제된 상태에서 다시 요청해도 상태가 바뀌지 않음
URI, URL
- URI (Uniform Resource Identifier)
- URI는 주소창 기준 http/ https(프로토콜)을 제외한 나머지 주소 혹은 전체도 될 수 있음
- 예를들어 http://www.naver.com/ or https://www.naver.com/
- 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 |