프레임워크
- 풀스택 프레임워크와 마이크로 프레임워크로 나뉜다.
- 특정 분야의 애플리케이션 개발을 돕기 위해 미리 만들어진 코드와 구조의 집합
- 프레임워크는 개발자가 반복적으로 사용하는 기능을 제공하여 개발 생산성을 높임
- 이미 구현된 코드를 활용함으로써 개발 시간을 단축하고 보안성,유지보수성 개선
풀스택 프레임워크
- 장고(Django)나 스프링(Spring)은 프레임워크 내에서 웹 애플리케이션의 모든 기능을 모두 제공
- 해당 문법은 해당 프레임워크만의 특별한 문법이어서 학습곡선이 높다.
- 프레임워크 내에 방대한 기능이 탑재되어있어 특정기능만 필요할때 사용할 경우 서비스가 무거워짐
- 프레임워크가 제공한 문법 외에는 내부를 수정불가하여 문제해결방안을 찾기 어려움
마이크로 프레임워크
- 플라스크(Flask)와 FastAPI는 백엔드 구현에 필요한 핵심 기능만 제공합니다.
- 프레임워크 자체는 간결한 기능을 제공하므로 학습곡선이 낮고 빠르게 사용가능
- 필요한 기능만 골라서 사용가능 = 서비스 경량화 가능
- 프로그래밍 언어 기반 모든 기능을 그대로 프레임워크와 함께 사용 가능하므로 확장성 높음
- 프레임워크 내에서 제공하는 핵심기능 외에는 직접 작성한 코드이므로 이상동작시 해결 간단
대표적인 웹 애플리케이션 프레임워크
- 파이썬 : 장고(Django) , 플라스크(Flask) , FastAPI
- 자바 : 자바 스프링(JAVA Spring) , 스프링 부트(SpringBoot)
- 자바 스크립트 : Node.js
Flask , FastAPI
- 핵심 기능만 제공하여 빠르게 개발이 가능
- 필요한 기능은 파이썬 라이브러리를 통해 확장가능
- 파이썬 라이브러리를 추가적인 조작이나 아키텍쳐 구성 변경 없이 바로 사용 가능
Flask
플라스크는 파이썬으로 개발된 Werkzeug(벨저크),Jinja2(진자2) 라이브러리를 기반으로 동작
파이썬(Python)이라는 프로그래밍 언어를 사용하여 만든 간단하고 가벼운 웹 애플리케이션 프레임워크
- 웹 애플리케이션 프레임워크
- 웹 사이트나 웹 서비스를 개발하는데 필요한 여러 기능을 미리 구현하여
사용할 수 있도록 만든 도구모음집
- 웹 프레임워크를 사용하면 개발자는 기본기능을 구현하지 않아도 손쉽게 사용 가능
Flask 주요 기능
- 플라스크는 웹 애플리케이션을 만드는데 가장 기본이 되는 세가지 주요기능을 제공
- 라우팅(routing)
- 웹사이트 URL에 따라 특정 함수를 호출하도록 연결하는 기능
ex) ~~~.com/user : URL 접속하면 user() 함수 실행
- 요청(request)
- 사용자의 웹 브라우저가 서버에 전송하는 다양한 요청 데이터를 담는 객체
여기에는 요청한 URL,HTTP메서드,매개변수,헤더 등의 정보를 포함
- 응답(response)
- 서버가 사용자의 요청에 대해 보내는 응답 정보를 담는 객체
응답 바디, HTTP, 상태코드, 헤더 설정 가능
Flask 장점
- 플라스크의 가장 큰 장점 : 확장성
- 플라스크만으로도 간단한 웹 애플리케이션 개발이 가능
- 더 복잡한 기능이 필요하다면 추가 확장 기능을 설치하여 확장 가능
ex) 데이터베이스, 인증, API서버 개발 등등 다양한 영역의 플라스크 확장 기능 존재
- 다른 파이썬 웹 프레임워크 보다 훨씬 간단하고 배우기 쉽다
- 규모가 작고 단순한 웹사이트나 API 서버 개발에 매우 적합
- 파이썬 문법은 직관적이고, 복잡한 객체지향 문법을 반드시 사용하지 않아도 되서 익히기 쉬움
- 프레임워크가 매우 가벼움
- 자바 스프링은 방대한 기능을 가지고 있어서 간단한 서비스를 만들어도 매우 무거움
- 무겁기 때문에 일정시간이 더 걸리고 좋은 서비스를 위해 좋은 서버가 필요
- 플라스크는 가볍기 때문에 실행이 빠르고, 성능이 안좋은 서버에서도 작동 잘함
- 파이썬의 막대한 생태계에서도 그대로 사용 가능
- 핵심 문법만 제공하기 때문에 관련문법도 적음
- 이외의 기능은 파이썬의 라이브러리를 이용하여 적용하면 됨
- 다양한 학습자료가 풍부함