컴퓨터-마우스-키보드

 

기술이 발달하면서 코딩이 점점 쉬워지고 있습니다. 과거에는 개인이 웹사이트를 만들기 위해 알고 준비해야 하는 것도 많았지만, 지금은 조금만 노력하면 쉽게(?) 웹사이트를 만들 수 있습니다.


필자도 난이도가 높지 않은 웹사이트를 만들고 싶다는 생각을 했었고, 이번에 파이썬을 이용해서 만들어 보았습니다. 오늘은 파이썬으로 웹사이트를 만들기 위해 알아야 하는 것들에 대해서 이야기 해보도록 하겠습니다.

 

 

 

웹사이트를 만들기 위해서 먼저 그 구조를 알아보겠습니다.

 

1. 프론트엔드 VS 백엔드

웹사이트는 크게 2가지로 구성돼 있습니다. 하나는 프론트엔드이고, 다른 하나는 백엔드입니다.

 

프론트엔드는 우리 눈앞에 보이는 페이지를 의미합니다. 보통 UI/UX 같은 것을 말합니다. 백엔드는 우리 눈에는 보이지 않지만, 웹사이트를 처리하기 위해 뒤에서 작동하는 역영을 합니다. 요청을 처리하고, 프론트엔드에 데이터를 보내는 역할 등을 합니다. 백엔드에는 서버, DB 등이 있습니다.

 

 

 

2. 프론트엔드, 벡엔드를 만드는 방법

웹사이트는 프론트엔드만 있어도 만들 수 있습니다. 다만 이 때는 백엔드가 없기 때문에 간단한 동작만 할 수 있는 웹사이트가 됩니다.

 

프론트엔드 관련된 언어는 HTML, CSS, JAVA SCRIPT 등이 있습니다. 해당 언어들은 난이도가 높지 않기 때문에 쉽게 배울 수 있습니다. 필자는 이 언어들을 정식(?)으로 배운 적은 없지만, 어떤 것인지 대강 내용을 살펴본 후에 그때그때 필요한 것을 찾아가며 배웠습니다. 웹개발자가 아닌 이상 위 방법으로 많이들 사용하는 것 같습니다.

 



백엔드는 이를 할 수 있는 프로그래밍 언어를 알아야 합니다. 여기서는 파이썬을 사용한다고 하겠습니다.

 

파이썬에서 필자와 같은 일반인이 서버에 필요한 모든 구성요소를 코딩하는 것은 불가능합니다. 그래서 우리는 웹프레임워크을 사용합니다. 여기에는 백엔드를 구성하기 위한 기능들이 모두 만들어져 있기 때문에, 필요한 기능을 가져와 잘 구성해서 서버를 만들 수 있습니다.

 

파이썬 웹프레임워크에는 장고, 플라스크가 가장 유명합니다. 요즘은 fastapi도 많이 사용합니다. 장고를 많이 사용하는 것 같지만, 배우는데 시간이 좀 필요합니다. 그보다는 플라스크가 구조가 직관적이라 배우는데 많은 시간이 필요하지 않습니다. 그래서 필자는 플라스크로 작업을 하였습니다.

 

 

 

DB는 어떤 DB를 사용해도 무방하나 보통 PostgreSQL을 많이 사용합니다.. 필자는 DB까지는 연결하지 않았습니다.

1) 프론트엔드 - HTML, CSS, JAVASCRIPT
2) 백엔드 - Python & Flask
3) Db -PostgreSQL

 

 

html-자바스크립트-도서
프론트엔드 언어

 

 

 

3. 웹사이트에 머신러닝 알고리즘 배포하기

지금은 아니지만 나중에 이런 서비스를 만들어 보고 싶은 생각이 있습니다. 웹사이트에 머신러닝 알고리즘을 배포하는 것은 모델을 어디에 넣느냐에 따라서 크게 2가지 방법이 있습니다. 하나는 프론트엔드에 넣는 것이고, 다른 하나는 백엔드 넣는 것입니다.

 

프론트엔드에 모델을 넣으려면, 자바스크립트로 모델을 만들어야 합니다. 하지만 말만 들어도 쉽지는 않을 것 같습니다. 조코딩 유투브에서는 구글의 서비스를 이용해 자바스크립트 모델을 만들어서 웹사이트를 만드는 모습을 볼 수 있습니다.

 

 

자바스크립트 모델 활용

 

 

빠른 속도가 필요히자 않다면, 백엔드에 모델을 넣는 것이 더 일반적입니다. 플라스크로 웹서버를 만들어서 데이터를 받고 추론하여 결과를 회신하면 됩니다. 머신러닝 교과서라는 도서에는 간단하게 텍스트를 입력받아 긍부정을 회신하는 웹사이트를 만드는 예제가 나와 있습니다. 관심 있다면 이 내용을 참고하는 것도 도움이 될 것 같습니다.

 

 

4. 파이썬 플라스크(Flask)로 웹페이지 만들기

필자의 블로그에는 파이썬 플라스크로 간단한 웹페이지를 만들 수 있는 방법이 정리돼 있습니다. 관심 있다면 아래 포스팅을 참조하시기 바랍니다.

 

 

 

Recommendation 포스팅

 

필자가 만든 웹사이트 주소를 남겨두었습니다. 웹개발자가 아니기 때문에 복잡한 기능이 있는 것은 아니지만, 필자가 넣고 싶은 기능은 다 넣었습니다. 시간이 된다면 차츰 업그레이드된 기능과 화면을 넣어볼까 합니다. 사이트에 방문하셨다면 댓글도 남겨주시면 좋겠습니다.
( 참조: http://stock.infoking.site )

오늘은 이렇게 파이썬으로 웹사이트를 만들기 위해 알아야 하는 것들에 대해서 다뤄보았습니다. 그냥 배우는 것보다 무언가 서비스를 만든다는 것은 분명 더 의미있는 일입니다.

 

 

 

시작이 어렵지 하다보면 뭐라도 나오게 됩니다. 당장 안 나오더라도 시간을 갖고 지내다보면 막히던 문제가 풀리게 되기도 합니다. 필자도 이 사이트를 만들면 좋겠다는 생각을 한지 오래됐고, 그때그때 막히면 손을 놓기도 했습니다. 그러다 어느날 해결책이 떠오르면 이를 반영해보기도 했고요. 웹사이트를 만드는 일에 관심이 많다면 한 번 도전해보시기 바랍니다. ㅎ

 

그리고 만드신 사이트가 있다면 댓글로 남겨주세요. 저도 방문하겠습니다.

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기