컴퓨터언어(271)
-
[JS] const로 선언해도 array와 object는 수정이 가능한가?
JavaScript의 별난 점! array와 object를 아예 새로운 형태로 초기화하지 않는 한, 그 원소를 추가/삭제하는 정도는 충분히 가능하다.
2020.05.11 -
[EJS] Scope (var - let - const의 차이)
function(){} 안에 정의된 변수는 그 함수 밖에서 접근할 수 없는 것은 명확하다. 즉 함수 안에서는 var, let, const 모두 지역변수이다. 만약 접근시키려면 function 선언 전에 진작에 맨 위에서 전역으로 선언하면 된다. 그런데..! function이 아니라 if-else문, for/while문에서는 var, let, const의 특성이 조금 달라진다. var는 비록 {} 안에서 변수를 새로 선언했을지라도 {} 밖에서 접근 가능하다. 반면 let과 const는 if-else문, for/while문 역시 function(){}에서처럼 {} 안에서만 접근 가능하다.
2020.05.10 -
[EJS] res.render("ejs파일경로", {데이터이름표: 전송할데이터})
Node.js에서, 서버를 담당하는 entry point는 웹앱의 두뇌라고 할 수 있다. 그리고 그 js파일 상의 로직으로 인해 변경되는 값을 HTML로 즉각 쏴주는 것이 EJS다. 이때 entry point -> EJS로 데이터를 전송하는 역할을 하는 함수가 render() 함수이다. 만약 EJS를 사용하지 않고 기본적인 HTML만을 사용한다면, 클라이언트로부터 온 request에 대한 response를 일일이 send 또는 sendFile 해야할 것이다. 하지만 EJS는 기존 HTML코드와 JavaScript코드의 공존을 통해 효율적인 개발을 도와준다. render() 함수를 사용하기 위해 우리는 역시나 Node Express 상의 get() 또는 post() 함수를 이용한다. 예를 들어 사용자로부터..
2020.05.10 -
[EJS] 페이지마다 반복을 피하기 위한 템플릿 코드
웹은 많은 정보를 담고 있기에 페이지 수가 상당히 많다. 그리고 개발자는 각 페이지마다 변화하는 정보들을 제때 잘 전달해주어야 한다. 이때 수많은 페이지들에 일일이 접근하고, 또 각 페이지마다 res.send()나 res.sendFile()같이 원시적인 방법을 사용한다면, 살기 싫을 것이다. 그래서 효율적인 개발을 위해 HTML의 "기본바탕"이 되는 템플릿을 고정해두고, 그 안에서 변하는 정보들만 싹 넣어주는 방법이 나왔으니, 그것이 바로 EJS다. 또한 EJS는, [서버구동을 위한 .js]과 [뼈대를 담은 .html] 등등 파일과 코드를 분리 관리함으로써 각 파일의 존재 목적에 부합하는 개발환경을 부여하며, 더 나은 유지보수를 도와준다. EJS 사용을 위한 준비물 1. npm i ejs 2. app.s..
2020.05.10 -
저장해오던 Git에 새로운 Heroku 리모트 연결하기
처음에 heroku로 호스팅할 때, git init을 해야한다는 말을 듣고 지레 겁을 먹었다. 내가 여태까지 해온 커밋들에 영향을 줄 것 같아서였다. 하지만 전혀 쓸데없는 걱정이었다. 괜히 buildpack까지 건드렸지만, 그냥 git init부터 git add&commit을 새로한 뒤, heroku create -> git push heroku master하면 끝날 일이었다.
2020.05.10 -
[Javascript] JSON 핵심 정리
JSON이 뭔데? Java Script로 쓰여진 Object 표기법 그게 왜 필요한데? JSON은 서로 다른 컴퓨터 간 효율적인 정보 송수신을 위한 발명품이다. 대개 정보는 인간의 자연어처럼 String이면 좋겠지만, 컴퓨터에 "기록"하는 이상 객체같은 커다란 덩어리이기 마련이다. 이렇게 용량이 큰 상태로 정보를 주고받는다면, request가 많아질 때 과부하를 면치 못할 것이다. 그래서 단순히 그 내용만을 한줄로 요약해서 줄줄이 사탕처럼 압축하는 방법이 생겼으니, 그것이 바로 JSON이다.
2020.05.07