7. 웹, 클라이언트와 서버
사실 어제 업로드를 해야했지만, 너무 졸려서 자버리는 바람에 이제서야 업로드를 한다.. ㅠ
학부연구생 및 석사시절, 프로젝트를 수행하면서 미약하게 나마 웹개발을 한적이 있다.(Flask 기반의 Dash를 이용하여 데이터 시각화) 파이썬 밖에 모르던 나는 "파이썬으로 웹 개발이 가능해?? 그럼 Flask를 써야지!"라는 생각으로 무작정 달려들었다.
그 생각은 당연하게도 틀렸다. 웹, 그러니까 우리들의 브라우저(크롬, 엣지 등)에서 동작하는 언어는 여전히 JavaScript하나 밖에 없다. 그럼 "파이썬 웹 개발"은 무슨 말이지??
웹 페이지는 여전히 HTML, CSS, JS로 구성한다.(물론, 여러가지 라이브러리와 프레임워크의 도움을 받아서.) 파이썬의 Flask나 Django의 역할은 "서버"를 구축하는 것! 이다.
위키백과 - 유명한 웹사이트에 사용되는 프로그래밍 언어들
위의 테이블은 위키백과에서 가져온 유명한 웹 사이트의 프런트 사이드와 백엔드 사이드의 언어를 가져온 것이다. 위의 표에서도 확인 할 수 있듯, 프런트엔드에서는 전부 JS를 활용하고 있지만, 백엔드에서는 C, C++, Java, PHP등 수없이 많은 언어들이 활용되고 있다. (우리나라에서는 Java를 가장 많이 사용한다고 한다.)
위의 표에서도 알 수 있듯, 파이썬은 점점 더 많은 웹 사이드에서 서버사이드 언어로 사용되고 있다.
다음은 그동안 스파르타에서 배운 내용의 정리이다.
- 서버는 특수한 컴퓨터로만 구동이 가능한가?
- 대답은 당연히 No. 서버는 컴퓨터의 '역할' 이다. 서버는 클라이언트의 요청을 받으면 HTML+CSS+JavaScript 파일을 주기도 하고, JSON 형식으로 데이터를 주기도 한다.
- API는 무엇인가?
- 서버가 요청을 받게 위해 뚫어놓은 '창구'이다. 요청에는 POST(주로 데이터를 수정할 때), GET(주로 데이터를 가져올 때) 요청 등 여러가지 타입이 있다.
- HTML, CSS, JS는 각각 어떤 역할을 하는가?
- 위에서도 언급했지만, 프론트엔드에서 클라이언트가 보는 웹을 구성하는 역할을 한다. 그 중에서도, HTML은 뼈대 / CSS는 꾸미기 / JavaScript는 웹을 동적으로 동작하게 하는 역할을 담당한다.
- JQuery는 무엇인가?
- JQuery는 JavaScript의 라이브러리로, HTML 조작을 쉽게하기 위해 사용된다. 클라이언트가 이용하는 브라우저는 다양하고, 모든 경우의 수를 따져서 프로그래밍 하기는 벅차다. jQuery만 임포트하여 js를 입력하면, jQuery가 알아서 각 브라우저에 맞게 파싱하여준다.
- Ajax는 무엇인가?
- Ajax는 프런트와 서버의 통신을 도와주는 역할을 한다. 다음과 같은 코드를 주로 사용 하였다.
$.ajax({ type: "GET", url: "요청할 URL", data: {}, success: function (response) { // 서버가 준 데이터가 response에 담깁니다! } })
- Ajax는 프런트와 서버의 통신을 도와주는 역할을 한다. 다음과 같은 코드를 주로 사용 하였다.
Flask는 어떤 역할을 하는가?
서버를 만드는 파이썬의 프레임워크다. 다음과 같은 코드를 주로 사용하였다.
from flask import Flask, render_template, jsonify, request app = Flask(__name__) @app.route('/') def home(): return render_template('index.html') if __name__ == '__main__': app.run('0.0.0.0', port=5000, debug=True)
이 이외에도 정말 많은 내용을 배웠지만, 나의 능력 부족으로 우선은 여기까지 정리를 해야 할 것 같다...
'Sparta' 카테고리의 다른 글
[Spatra] 04. SSR Vs. CSR (feat. Crawling) (0) | 2021.09.16 |
---|---|
[Sparta] 03. html은 프로그래밍 언어가 아닙니다 (0) | 2021.09.15 |
[Sparta] 02-2. 두번째날, 웹과 파이썬 (0) | 2021.09.14 |
[Sparta] 02-1. 두번째날, 웹과 파이썬 (0) | 2021.09.14 |
[Sparta] 01. OT & HTML, CSS, JS (3) | 2021.09.13 |