본문 바로가기

Sparta

[Sparta] 03. html은 프로그래밍 언어가 아닙니다

2021-09-15

To-Do

  • 7시 기상
  • 아침식사
  • 오전운동 (이삼두)

  • 스파르탄 3일차, 왜 아직 모기가 있지...? 그래도 잘 잤다. 오늘은 알람을 듣고 일어났다. 우유200ml, 물 100ml, 바나나 1송이, 프로틴 한스쿱 이게 Best인 것 같다. 크레아틴 배송오면 같이 먹어봐야지 ㅎ

Today I Learned


1. jinja2

html은 프로그래밍 언어가 아닙니다

html은 프로그래밍 언어가 아닙니다


그렇다 HTML은 프로그래밍 언어가 아니다. 프로그램은 컴퓨터에서 특정 작업을 수행하기 위한 명령어의 집합이며, 프로그래밍 언어는 특정 작업을 수행하기 위한 명령어를 짜기 위한 언어이다. HTML은 단순히 제목, 단락, 목록, 링크 등 문서의 구조만을 설계할 수 있다. 따라서 프로그래밍 언어가 아니라 마크업 언어로 정의된다.
저기 저 신념을 지키며 목숨을 바치는 프로그래머를 보라.


하지만 난 오늘 믿을 수 없는 코드를 보았다.


<body>
    <h1>상세페이지</h1>
    <button onclick="window.location.href='/'">메인으로 돌아가기</button>
    <h3>받은 단어는 {{ word }}</h3>
    <ul id="gu-list">
        {% for row in rows %}
            {% set gu_name = row['MSRSTE_NM'] %}
            {% set gu_mise = row['IDEX_MVL'] %}
            {% if gu_mise>=60 %}
            <li>{{ gu_name }} : {{ gu_mise|int }}</li>
            {% endif %}
        {% endfor %}
    </ul>
</body>

위의 코드를 보아라. 누가봐도 프로그래밍 언어이다... 반복문과 조건문을 완벽히 사용하고 있다. 심지어 HTML의 head부분의 script태그가 아닌 html의 body에 그것도 정확히 ul태그 안에 li태그를 감싸며 존재하고 있다.

세상은 넓고 내가 모르는 것은 훨씬 많다.


하지만 여전히 HTML은 프로그래밍 언어가 아니고, 위의 코드 또한 HTML 혼자서는 동작하지 않는다. 위의 코드는 파이썬에서 사용되는 템플릿 엔진 중 하나인 jinja2 코드이며, 이는 기본적으로 flask에 의해 동작한다. flask의 프로젝트 폴더 안에 위치한 templates에서 템플릿을 검색한다. 즉, 서버에서 받아온 데이터를 효과적으로 보여주는 중간 매체의 역할을 하는 것이다.


따라서, for나 if 그리고 변수를 정의하는 등의 간단한 역할을 수행하여 보다 효율적으로 서버에서 템플릿을 렌더링 하는데 도움을 준다.


사실 오늘은 데이터 분석 및 논문작업을 진행하느라 학습에 많은 시간을 쓰지 못했다... 추석 지나고 최종 제출이니 정말 얼마 안남았다...! 내가 이걸 왜 한다고 했지.. 후회도 많이 됐지만 열심히 했으니 좋은 결과가 있었으면 좋겠다..!