어떤 농담의 현실성
개발자 남편에게, "아보카도 2개 사오고, 우유있으면 6개 사와"라고 말했는데, 남편이 아보카도 6개를 사왔다는 웃지못할 농담이 있었는데 홈페이지와 이와 같은 분기가 필요한 개발을 하게되면 그건 너무 당연한 사고라는 것을 이해하게 되었다.
if (milk=true) {avocado=6}
else{avocado=2}
뭐, 이런 느낌일까.
컴퓨터 언어도 언어임
언어학을 배우다보면 랑그와 파롤이라는 개념을 배우게 된다. 문법을 배울때 문법구조는 랑그, 그것이 현실에서 구체화되는 것이 파롤인데, 그 파롤을 랑그화해서 함수처럼 쓸 수 있게 하는 기능이 바로 jinja2언어임. 각각의 파롤들을 변수처럼 취급해서 랑그화를 시킴.
영문법을 배울 때 일단은 예시로
I am a boy. You are a girl. they are students.이런 문장들을 [주격]+[동사]+[보어/목적어 등] 이런 몇형식 문장으로 (너무 쓸수없는 수준의) 일반화/추상화를 하게 되는 것인데, 만약 주격에 해당하는 리스트들이 존재하고, 동사에 해당하는 리스트, 보어나 목적어에 해당하는 리스트들이 존재한다면 - 컴퓨터 문법에는 동사의 활용이 없으므로- 쉽게 언어를 짤 수 있는 것이다.
반복문을 돌린 것을 temp html로 쓰는 대신 다음과 같이 반복문을 짤 수 있다.
{% for definition in result.definitions %}
<div class="definition">
<div>{{definition.type}}</div>
<div>{{definition.definition}}</div>
<div>{{definition.example}}</div>
</div>
{% endfor %}
너무 신박함....
서버사이드랜더링
인터넷의 강점은 최신화인데, 이 최신화를 서버쪽에서 할 것인지, 클라이언트쪽에서 할 것인지에 따라 2종류가 있음.
서버사이드 렌더링 : jinja2언어 사용, 검색에 잘 걸림, 서버에서 새로 가져온 것을 html로 뿌려줌
클라이언트사이드 렌더링 : temp html사용, 검색에 잘 안 걸리므로 별도의 노력이 필요함. 클라이언트에서 원하는 것을 서버에 요청하여 html로 가져옴
아직까지는 temp html이 나는 더 익숙(=서버사이드렌더링을 이해못)한 것 같음. 근데 jinja2언어가 정말 간단하여 좋은 것 같음.