프로그래밍-Web(96)
-
[자바스크립트] 클로져(Closure)
클로져는 자바스크립트 ES6에서 let과 const를 지원하면서부터 거의 사용성이 소멸된 개념이지만 그래도 이해의 관점에서는 중요하기 때문에 정리해보았다. 1) 스코프 스코프를 한줄로 정의하면 '변수의 유효범위'가 된다. 즉, 특정 변수가 존재할 때, 이것이 영향을 미치는 범위를 뜻하는 것이다. 이를 다시한번 가공시켜 보자면, 변수의 선언을 어디에서 했는지 파악하는 것이라고 풀어낼 수 있다. 예시 코드를 보자. 이게 무슨 당연한 소리야! 라고 할 수도 있겠지만, a를 찍어내는 함수와 b를 찍어내는 함수의 기재는 다르다 a를 찍어내는 과정을 생각해보자면, 전역컨텍스트에서 a를 정의한 후-> aPrint 컨텍스트에서 찍어낼 a를 탐색-> global에서 정의된 a를 찾았다! 하지만 b를 찍어내는 과정은 전역..
2020.02.29 -
[Node.js] Sequelize와 MySQL 연결하기
무려 일곱시간을 헤맸다 ㅠㅠ 요게 자잘한 이슈들이 많아서 쉽게 접속이 되질 않는다. Sequelize는 Node.js에서 제공하는 ORM이다. ORM은 Object-Relation Mapping의 약자로, 딱 봐도 객체와 관련이 있어 보인다. 직역하면 '객체와의 관계 지도'정도 될 터인데, 사실 이놈을 사용함으로서 얻어지는 장점이 확 와닿진 않는다. 그러니까 도식화시켜보면 원래 이렇게 DB 접근을 위해서는, DB와 소통되는 언어인 쿼리를 사용해야 하지만 ORM이라는 친구가 있으면, 이렇게 DB와 대신 이야기해준다. 그러니까 쿼리를 잘 모르는 사람에게 매우 좋은 템일테다. 쿼리가 빠지면 코딩하는 양도 줄긴 할테고, 무엇보다 분업하기가 쉬울테니.. 자바는 JPA라는 유명한 ORM 기술 표준이 있고, 툴로는 ..
2020.02.24 -
[Node.js] 콜백함수와 Promise(2)
이제 문제는 뭐냐면 내가 실제로 코드를 짤 때 저걸 적용할 줄 모른다는거다. 에러처리만 할 줄 알면 뭐하나. 그래서 좀 피곤하더라도 새벽까지 포스팅을 하기로 했다. 이번에 실전이다 Promise는 세 가지 상태가 있다. 생성자로 new Promise 하고 나면, 끝날때 까지 셋 중 하나다. Pending 이거나, Fulfilled하거나 Rejected되거나. 각각은 완료전, 완료후 결과값 반환, 완료 실패다. 첫번째로 Pending, 그냥 함수만 불러온거다. 잠자고 있다. 두번째 Fullfilled. 이번엔 에러처리를 위한 코드가 아니라, 실제 에러처리를 내 코드에 적용하는 예시를 들어보았다. 이렇게 하니 이해가 존나 쉽고 코딩 잘할 것 같다. 무튼간에, 얘를 보면 원래는 getData라는 보잘 것 없는..
2020.02.20 -
[Node.js] 콜백함수와 Promise(1)
콜백함수를 공부하면서 머리가 많이 빠진 것 같다. 이놈시키를 언제, 어디서, 왜 사용해야 하는지 너무너무 헷갈린다. 그래서 정리. 1. 콜백함수는 무엇이며, 왜 사용하는가? 일단 시작하기전에 Parameter와 Arguments를 구분해보자. 되게 쉽다. Parameter는 매개변수고, Arguments는 값(인자)이다. 문제는 자바스크립트에서 함수를 인자처럼 사용하면서 시작되었다. 이 과정에서 수반되는 기술이 바로 콜백함수이다. 2. Higher order Function 아직까지도 존나 모호하다. 좀 더 구체적으로 예를 들어 보겠다. 저 예시코드를 보면, forEach라는 메소드 안에 key를 인자로 갖는 화살표 함수를 집어넣었다 즉, 화살표 함수가 forEach메소드의 인자로 사용되고 있다. 이것이..
2020.02.20 -
[전산공부] 렌더링, 그리고 리액트(React) (1)
리액트를 많이 써봤음에도 리액트를 왜, 어째서, 무슨 이유로 사용하는가에 대해 생각해 본 적이 없다 그래서 차근차근 정리해보기! 1) 렌더링(Rendering) 렌더링이란 컴퓨터 프로그램을 사용하여 모델로부터 화면을 만들어내는 과정을 말한다 쉽게 얘기하면, 사용자로부터 Request를 받은 다음 그것에 대한 Response를 브라우저에 뿌려주는 행위임 간단하게 순서를 생각해보면 로더(Loader)라는 놈이 서버로부터 전달받는 Response의 정체를 읽어낸다 그래서 이 Response가 파일인지, 데이터인지, 다운로드를 받아야하는지 등등을 파악한다 그리고 나서 파싱(Phasing:받은 소스를 해석한다고 생각하면 됨)의 절차를 거쳐 렌더링 트리를 만든다 DOM 트리를 바탕으로 화면을 그리는 것! 얘를 로드..
2020.02.17 -
블로그 시작!
블로그 시작! 공대학부 6년-> 공대석사 2년-> 공대박사1년 -> IT회사 1년 그냥 흘러가는 것이 인생이라 생각했지만... 네이버 AI 버닝데이가 많은 영감을 주었다:) 이제부터라도 달려야지~
2020.02.17