본문 바로가기

Sparta

[Sparta] 02-3. 두번째날, 웹과 파이썬

7. 웹, 클라이언트와 서버

사실 어제 업로드를 해야했지만, 너무 졸려서 자버리는 바람에 이제서야 업로드를 한다.. ㅠ


학부연구생 및 석사시절, 프로젝트를 수행하면서 미약하게 나마 웹개발을 한적이 있다.(Flask 기반의 Dash를 이용하여 데이터 시각화) 파이썬 밖에 모르던 나는 "파이썬으로 웹 개발이 가능해?? 그럼 Flask를 써야지!"라는 생각으로 무작정 달려들었다.


그 생각은 당연하게도 틀렸다. 웹, 그러니까 우리들의 브라우저(크롬, 엣지 등)에서 동작하는 언어는 여전히 JavaScript하나 밖에 없다. 그럼 "파이썬 웹 개발"은 무슨 말이지??


웹 페이지는 여전히 HTML, CSS, JS로 구성한다.(물론, 여러가지 라이브러리와 프레임워크의 도움을 받아서.) 파이썬의 Flask나 Django의 역할은 "서버"를 구축하는 것! 이다.


유명 웹사이트에서 사용되는 프로그래밍 언어 목록*
웹사이트 인기도

(1달 간 방문객 수)[1]

프런트엔드

(클라이언트 측)

백엔드

(서버 측)

데이터베이스 세부 사항
구글[2] 1,600,000,000 JavaScript
C, C++, Go,[3] Java, Python BigTable,[4] MariaDB[5] 세계에서 가장 많이 사용되는 검색 엔진
페이스북 1,100,000,000 JavaScript Hack, PHP (HHVM), Python, C++, Java, Erlang, D,[6] XHP,[7] Haskell[8] MariaDB, MySQL,[9] HBase Cassandra[10] 가장 많이 방문되는 소셜 네트워크 서비스
유튜브 1,100,000,000 JavaScript C, C++, Python, Java,[11] Go[12] Vitess, BigTable, MariaDB[13] 가장 많이 방문되는 동영상 공유 사이트
야후! 750,000,000 JavaScript PHP MySQL, PostgreSQL,[14] VB.NET 야후는 현제 Node.js로 언어를 변경하는 중임[15]
아마존 500,000,000 JavaScript Java, C++, Perl[16] Oracle Database[17] 유명한 온라인 쇼핑몰 사이트
위키백과 475,000,000 JavaScript PHP, Hack MySQL,

MariaDB[18]

"미디어위키"는 PHP 로 프로그래밍 되었으며,, HHVM 으로 운영됨.
트위터 290,000,000 JavaScript C++, Java, Scala, Ruby[19] MySQL[20] 유명 소셜 네트워트 서비스
285,000,000 JavaScript ASP.NET Microsoft SQL Server
이베이 285,000,000 JavaScript Java,[21] JavaScript,[22] Scala[23] Oracle Database 온라인 중고매장
MSN 280,000,000 JavaScript Microsoft SQL Server "메신저"로 알려진 단순한 이메일 클라이언트 서비스.
마이크로소프트 270,000,000 JavaScript ASP.NET 세계 최대 소프트웨어 회사 중 한 곳
링크드인 260,000,000 JavaScript Java, JavaScript,[24] Scala Voldemort[25] 세계 최대 직업 네트워크
핀터레스트 250,000,000 JavaScript Django,[26] Erlang MySQL,, Redis[27]
워드프레스 240,000,000 JavaScript PHP, JavaScript[28] (Node.js) MariaDB, MySQL

위키백과 - 유명한 웹사이트에 사용되는 프로그래밍 언어들


위의 테이블은 위키백과에서 가져온 유명한 웹 사이트의 프런트 사이드와 백엔드 사이드의 언어를 가져온 것이다. 위의 표에서도 확인 할 수 있듯, 프런트엔드에서는 전부 JS를 활용하고 있지만, 백엔드에서는 C, C++, Java, PHP등 수없이 많은 언어들이 활용되고 있다. (우리나라에서는 Java를 가장 많이 사용한다고 한다.)


위의 표에서도 알 수 있듯, 파이썬은 점점 더 많은 웹 사이드에서 서버사이드 언어로 사용되고 있다.


다음은 그동안 스파르타에서 배운 내용의 정리이다.



  1. 서버는 특수한 컴퓨터로만 구동이 가능한가?
    • 대답은 당연히 No. 서버는 컴퓨터의 '역할' 이다. 서버는 클라이언트의 요청을 받으면 HTML+CSS+JavaScript 파일을 주기도 하고, JSON 형식으로 데이터를 주기도 한다.

  1. API는 무엇인가?
    • 서버가 요청을 받게 위해 뚫어놓은 '창구'이다. 요청에는 POST(주로 데이터를 수정할 때), GET(주로 데이터를 가져올 때) 요청 등 여러가지 타입이 있다.

  1. HTML, CSS, JS는 각각 어떤 역할을 하는가?
    • 위에서도 언급했지만, 프론트엔드에서 클라이언트가 보는 웹을 구성하는 역할을 한다. 그 중에서도, HTML은 뼈대 / CSS는 꾸미기 / JavaScript는 웹을 동적으로 동작하게 하는 역할을 담당한다.

  1. JQuery는 무엇인가?
    • JQuery는 JavaScript의 라이브러리로, HTML 조작을 쉽게하기 위해 사용된다. 클라이언트가 이용하는 브라우저는 다양하고, 모든 경우의 수를 따져서 프로그래밍 하기는 벅차다. jQuery만 임포트하여 js를 입력하면, jQuery가 알아서 각 브라우저에 맞게 파싱하여준다.

  1. Ajax는 무엇인가?
    • Ajax는 프런트와 서버의 통신을 도와주는 역할을 한다. 다음과 같은 코드를 주로 사용 하였다.
      $.ajax({
        type: "GET",
        url: "요청할 URL",
        data: {},
        success: function (response) {
            // 서버가 준 데이터가 response에 담깁니다!
        }
      })

  1. 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)

이 이외에도 정말 많은 내용을 배웠지만, 나의 능력 부족으로 우선은 여기까지 정리를 해야 할 것 같다...