Flask Tutorial을 시작하며
Flask Tutorial을 시작하며¶
이 책은 대표적인 Python 웹 프레임워크 중 하나인 Flask를 설명하고 이용할 수 있도록 하기 위해 작성되었습니다. 웹 프레임워크에 대해 전혀 모르더라도 튜토리얼을 따라오면 누구든지 사용할 수 있게 됩니다.
컴퓨터 언어, 그 중에서도 프로그래밍 언어를 배우는 목적이 무엇일까요? 아마도 자신이 원하는 기능을 구현(코딩)하여 컴퓨터에게 일을 시키고 싶기 때문일 것입니다. 그렇다면 이런 질문을 하게 됩니다.
코딩에 대한 근본적 질문
“어떻게 내가 만든 기능이나 서비스를 사람들이 편리하게 사용하게 할 수 있을까?”
위 질문에 대한 답은 “사람들이 가장 많이 사용하는 방법을 이용해 제공하면 된다” 입니다. 현재 사람들이 가장 많이 사용하는 방법은 웹(web)
입니다. 거의 모든 사람들은 PC, 스마트폰과 같은 디바이스를 사용하고 있으며, 이런 디바이스는 웹 환경에서 정보를 검색하고, 글/사진/동영상을 공유하고, 자신이 가지고 있는 정보를 업로드합니다.
한가지 예를 들어 보겠습니다.
여러분은 동물 사진 한장을 입력하면 인공지능 기술을 활용해서 그 사진 속 동물이 무엇인지 알려주는 서비스를 구현(코딩) 했습니다. 현재 여러분의 프로그램은 소스코드 상에서 이미지를 입력 받고 그 결과를 터미널(콘솔창, 도스창 등 까만 화면)에 출력합니다.
그렇다면 이런 기능을 사용하고 싶은 사람(예를 들면 여러분의 부모님, 친구 등)에게 소스코드를 전달(카톡, 이메일 등으로 전송)하면 받은 사람이 쉽게 사용할 수 있을까요? 아마도 답은 아니오
일 것입니다. 여러분이 만든 소스코드는 개발자(프로그래머)가 컴퓨터에게 일을 시키기 위한 언어로 작성되어 있기 때문에 컴퓨터 언어(programming language)를 모르는 사람들은 그 내용이 뭔지 관심도 없고, 설령 소스코드를 열어본다고 한들 웬 외계어
만 잔뜩 들어 있다고 생각할 것입니다.
여러분이 어렵게 만든 세부적인 작동 절차나 원리는 서버 속에 숨기고 사용자(부모님, 친구, 미지의 접속자 등)에게는 웹 브라우저(크롬, 엣지, 사파리 등)로 접속해서 클릭, 파일 업로드 등)의 단순 작업만으로 결과를 제공하는 것이 서로에게 좋습니다.
사용자는 친숙한 웹/앱 환경(브라우저)으로 접속하여 정보를 조회하거나 요청(request
)하면, 그 서비스를 담당하는 서버(server)에서 여러분이 만든 소스코드를 작동시켜서 나온 결과를 사용자가 현재 보고 있는 브라우저에 뿌려주면(response
)하면 됩니다. 이런 식으로 작동하는 것을 client-sever 아키텍처
라고 합니다. 웹 기반으로 서비스를 제공하는 client-server 아키텍처를 쉽게 개발할 수 있도록 도와주는 것이 웹 개발 프레임워크
입니다.
과거에는 웹 개발
을 하려면 네트워크, 데이터베이스, 프런트 기술(HTML, CSS, JavaScript), 백엔드 기술(각종 programming language), 보안 기술, 미들웨어, 웹서버 기술 등 모든 지식을 모두 학습해야 하는 지옥과 같은 상황이었습니다.
그러나 최근에는 웹 개발
에 필요하지만 공통적으로 적용되는 기술은 미리 구현해 놓고, 개발자는 새로운 서비스 개발에 집중하도록 도와주는 훌륭한 프레임워크(framework)
가 많이 등장했습니다. 과거에 오랜시간 동안 학습/실습을 통해 성장한 전문 개발자들이 하던 일을 최근에는 간단한 학습만으로 구현할 수 있는 상황이 되었습니다.
웹 개발 프레임워크
의 종류는 많습니다. 그 중에 Python을 이용한 웹 개발 프레임워크
도 있습니다. 물론 다른 언어를 기반으로 하는 웹 개발 프레임워크도 많습니다. Python의 편리함과 방대한 라이브러리를 강점으로 Python 사용자가 급격히 증가하였습니다. 우리는 웹 개발 프레임워크 중 Python을 기반으로 제공되는 웹 개발 프레임워크
를 공부할 것입니다.

Fig. 1 Flask 로고¶
Python 웹 개발 프레임워크
는 Flask와 Django가 대표적입니다. 우리는 간단히 배워서 쉽게 적용할 수 있는 Flask에 대하여 학습할 것입니다. 관심있는 독자들은 Django도 같이 학습할 것을 추천합니다.
이 책의 저자는 파이썬을 좋아하고 즐겨 사용하는 청주대학교 인공지능소프트웨어전공 교수입니다.
저자소개
청주대학교 소프트웨어융합학부 인공지능소프트웨어전공
노기섭 교수
Contact
E-mail: kafa46@cju.ac.kr
Phone: 043-229-8496 (유선)
Mobile: Not open to public (private, 비공개)

Fig. 2 청주대 노기섭 교수¶