클라이언트/ 서버/ 엔지니어 " 게임 개발자"를 향한 매일의 공부일지

플라스크 1 - 플라스크 사용 환경 구축 및 첫 웹 페이지 열기 본문

인공지능/머신러닝

플라스크 1 - 플라스크 사용 환경 구축 및 첫 웹 페이지 열기

huenuri 2024. 9. 15. 19:19

오후에는 플라스크 공부를 해볼 것이다. 플라스크 수업은 4시간 동안 진행이 되었다. 오늘은 평소보다 정말 많이 피곤해서 계속 잠이 몰려와서 중간에 공부를 하다가 잠을 잘 수도 있을 것 같다.
공부가 잘 되는 날도 있고 그렇지 않은 날도 있다. 하지만 중요한 것은 얼마나 많이 하느냐보다 얼마나 꾸준히 하느냐이다.


 
 
 

플라스크 사용해보기

먼저 폴더를 하나 만들고 비주얼 스튜디오 코드로 불러온다. 그런 다음 환경설정을 해주어야 하는데, 그 이유는 모델별로 버전이 다르기 때문이다. 프로젝트를 진행함에 따라 파이썬 환경도 라이브러리 환경도 다르게 지정할 때가 있다. 그렇기에 새로운 프로젝트를 진행할 때는 새로운 환경을 하나씩 열어서 진행하는 것이 좋다.
 

 
 
 

 
아나콘다에서 현재 진행된 프로젝트의 환경을 볼 수 있다.


 
 
 

1. 새로운 환경을 여는 방법 1 - 아나콘다 프롬프트

먼저 아나콘다 프롬프트를 실행한다.

 
그리고 다음과 같이 작성한다. 가상환경 이름은 플라스크로 하고, 파이썬의 버전을 적는다.
 
 
 

 
Y를 누르면 설치가 완료된다. 왜 환경을 다시 만들까? 그 이유는 독립적인 환경에서 작업이 가능하기 때문이다. 기본적인 base 환경이 있지만 머신러닝, 딥러닝 프로젝트를 진행하게 되면 여러 개의 라이브러리와 패키지를 다운로드하여 사용하게 되는데 이것들이 충돌을 일으킬 수도 있다.
이런 문제를 방지하기 위해 프로젝트 단위로 가상 환경을 설정한다.
 
 
 

 
이때 activate flask라고 입력하면 기본 환경에서 플라스크 환경으로 전환된다. 그 외에 파이썬을 할 수 있는 주피터나 VS Code로 작성할 수도 있는데, !pip install을 사용했었다. 여기서 느낌표를 붙이는 이유는 여기 있는 프롬프트 창에서 실행하는 것처럼 실행주라는 의미이다.
 
검은 창에서 보이는 것은 잘 보이지 않으니 나머지 환경 설치는 VS Code에서 설치를 진행할 것이다. 다음은 데스크답 환경에서 실행해본 작업이다. 내 파이썬 프로그램은 선생님 코드와는 달리 3.12버전이라 다르게 설정해주었다.

 

 

여기서 y를 입력한다.

 

 

 

다운로드가 아주 잘 되었음을 확인할 수 있었다.


 
 
 

2. 새로운 환경을 여는 방법 2 - VS Code

비주얼 코드의 익스텐션에서 파이썬을 먼저 설치하고 다음의 네 가지 프로그램을 설치해준다.
 

1. Python

 

 

2. IntlelliCode

 
 
 
 

3. Python  Indent

 
파이썬에서 실행 영역을 설정할 때 들여쓰기를 사용한다. 하지만 VS Code에서는 들여쓰기를 별로 중요하게 여기지 않아 자동 들여쓰기가 잘 안되는 편이다. 이 프로그램은 주피터 노트북에서 하는 것처럼 들여쓰기를 잘할 수 있도록 도와주는 기능을 제공한다.
 
 
 

4. Jupyter

 
그런 다음 주피터도 설치해준다. 디장고는 파이썬을 활용해 주피터 노트북을 사용할 수 있는 파일 중 하나인데 디장고는 너무 무겁다. 파이썬을 활용해 디장고로 웹 페이지를 구축할 것이 아니고 모델링한 결과를 띄워주기만 할 거라면 플라스크를 활용하는 것이 더 좋다.
따라서 우리는 플라스크를 활용해 가볍게 모델링한 결과를 전송하는 방식으로 사용하게 될 것이다.


 
 
 
 

3. 플라스크 환경 설정 및 설치하기

이제 폴더 안에 새로운 파일을 하나 만든다. vs code에서는 확장자명을 적어주어야 한다. 파이썬의 확장자명은 ipynb이다. 이렇게 하면 주피터 노트북 크롬에서 사용하던 환경과 동일하게 사용할 수 있다.
 

 
그런 다음 오른쪽 상단의 Select Kernel에서 환경을 선택하는데 여기서 플라스크 환경을 선택한다. 우측 상단이 플라스크 환경으로 바뀌었는지도 확인한다.
플라스크는 무엇일까? 스프링은 자바 환경을 우선으로 하고, 플라스크는 파이썬 언어를 통해 웹페이지를 구현할 수 있도록 해주는 프로그램이다. 요즘에는 디장고로 웹페이지를 구성하는 경우는 많지 않고, 인공지능 회사에서는 플라스크를 많이 사용하는 편이다.
 
 
 


 

1) 플라스크로 웹 페이지 열기

 
초기화한 공간을 app이라는 변수에 담아주고, 여기에 route라는 이름으로 주소를 붙여준다. 이는 웹 페이지에 있는 url 주소를 적는다고 생각하면 된다. 라우팅은 다른 페이지로 이동할 수 있는 주소를 작성하는 것이다.
app.run이라고 하면 실행을 해준다.
개행을 했는데도 한줄로 작성이 될 경우에는 spacebar를 두번 눌러주면 개행이 잘 된다.
 
 

 
나의 IP 주소를 가져와서 문자열로 넣어준다. 조건문을 작성하는 이유는 함수만 실행하고 싶은데  웹 서버까지 구동되면 안 되기 때문이다. main은 실제 파일에서 실행했을 때만 웹 페이지가 열릴 수 있도록 하는 코드이다.
만약 이 함수를 다른 사람이 가져다 썼을 때는 웹 페이지가 열리지 않는다. 
 

웹페이지를 클릭하면 웹페이지가 만들어지는 것을 확인할 수 있다. 이 코드는 계속해서 실행되기 때문에 이것을 끄고 싶으면 멈춤 버튼을 클릭해야 한다.


 
 
 

2) 새로운 라우터 생성하기

이전의 코드를 그대로 복사하여 가져온 후 중간에 새로운 경로를 설정하는 부분을 추가한다.

 
주소를 클릭하면 이전에 만든 것과 같은 페이지가 생기는데 이 주소창에 route1이라고 이름을 설정해주면 이와같이 웹 페이지가 이동한다. 라우터는 해당 페이지로 이동하면서 페이지에 있는 기능을 출력하거나 실행하는 역할을 한다.
 


 
 
 

학습을 마치고

오후에 플라스크 공부를 조금 하다가 환경 설정을 데스크탑으로 하는 게 나을까 하는 생각에 공부를 중단했었다. 그리고 머신러닝 다른 공부를 하려고 했으나 생각해보니 이걸 먼저 공부해야 다음 과정이 연결이 되는 것 같았다.
공부하기 싫은 마음도 많이 들기도 했지만 대부분의 경우 생각해보면 졸리거나 피곤할 때 그런 마음이 든다는 것도 알게 되었다. 낮잠을 푹 자고 났더니 다시 머릿속이 맑아지며 공부가 재미있어졌다.
 
플라스크 수업을 들을 때는 별로 재미를 느기지 못했는데 요즘 인공지능을 공부하는 일이 왜 이렇게 재미있는지 모르겠다. 난 역시 혼자서 공부할 때 더 열정을 느끼고 능률도 많이 오른다는 걸 느끼는 시간이었다.
저녁식사 후에 나머지 공부를 진행해야겠다.