컴퓨터언어/Node.js(17)
-
자바스크립트변수 var! 값을 재사용하기 위해 저장해두는 메모리 공간 변수호이스팅?
변수 = 메모리 공간 자체 변수는 값이 아닙니다. 그 값을 담고 있는 공간입니다. 그리고 그 변수의 이름은 공간을 가리키는 주소입니다. 프로그램은 인간이 문제를 해결하는 과정을 컴퓨터로 고대로 옮겨놓은 것 뿐이야. 기계이기 때문에 더 빠르게 반복할 수 있고 천문학적인 숫자를 쉽게 다룰 수 있다는 장점이 있지! 하지만 컴퓨터는 사람의 두뇌 연산과 살짝 차이가 있어. 사람 컴퓨터 두뇌라는 하나의 시스템에서 연산과 기억을 모두 수행 (물론 뇌 안에서도 영역이 있다만 여기서 그것까지 다루지 말자) [연산을 위한 CPU]와 [기억을 위한 메모리]로 나뉨 프로그램이 동작하는 원리는 매우 단순해. 매번 발생하는 새로운 정보를 기존 정보와 융합하는 거야. 사람이랑 똑같지 않아? 우리도 원래 알던 거에 새로운 정보를 추..
2021.07.18 -
node js 백만불짜리 꾸울팁 zip 파일 생성 및 다운로드 구현하기
오늘은 제가 5일간 전전긍긍해서 얻은 쾌거를 나누고자 합니다. 그것은 바로 node.js에서 zip 파일을 다운로드하는 로직을 구현하는 알고리즘인데요. node.js가 자바스크립트 기반이라고 해서 만만하게 볼 것은 또 아니잖아요..ㅎ python과 flask를 이용할 때는 아주 편합니다. flask 모듈에 내장된 send_file을 이용하면 zip이든 csv든, responseType을 크게 신경쓰지 않아도 클라이언트에 알아서 뿌려 주니까요. 하지만 node.js는 모듈 생태계가 아주 많기에, 딱 '이거다!'라고 정형화된 방법이 없어서 로직의 가짓수가 넘쳐납니다. 이 말은 즉 경우의 수가 많기에 구글링해도 내 상황에 맞는 전례를 찾기 어렵다는 말과 같습니다. 저만의 꿀팁을 공개합니다. node.js로 z..
2021.07.18 -
Node X MySQL 오답 및 중점노트
1. 프론트에서 axios를 통해 데이터를 객체로 보내면, 백엔드에서도 같은 키 값으로 찾아야 한다. input 태그의 name 속성이 아니다. 2. 각 라우터의 controller에서 모델을 require 할 때, {}로 구조분해 할당을 하든지, 직접 경로를 파고들어 참조할지 확실히 하자. 3. html 템플릿에 for문 돌리는 것보다는 프론트js에서 처리하자. 4. 404처리는 에러가 아니라, 지금까지 위에서부터 처리되지 않은 라우터들을 모아서 처리해주는 것이라고 생각하는 일반 라우터이며, 여기서 next(error)를 한번 거쳐서 에러 라우터로 보내는 것이다. /* 이것은 에러 처리 라우터가 아님! 지금껏 나오지 않은 주소를 처리하는 라우터를 단지 404로 처리하는 것에 불과함! */ app.use..
2020.10.28 -
MySQL과 MongoDB 비교
MySQL MongoDB 관계형 다큐먼트형 모델 스키마 테이블 컬렉션 로우 다큐먼트 컬럼 필드 include aggregate(populate - ref) ASC .sort({ 필드명: 1 }) DESC .sort({ 필드명: -1 }) Op.gt , Op.ne , ... $gt: , $ne: , ... 데이터베이스명.update({바꾼 후 모양, where: {조건}}) 데이터베이스명.update({})
2020.10.27 -
[npm] Sequelize X MySQL 에서 헷갈리거나 어려울만한 것 정리
👍 기본 개념 1. Sequelize는 ORM이다. 2. ORM이란, Object-Relational Mapping의 약자로 JavaScript의 자료형인 "Object"와 실제 DB에 저장된 "Relation"을 "대응(Mapping)"시켜주는 도구를 말한다. 3. Sequelize와 연결될 수 있는 DB는 관계형 DB면 상관없다. 만약 MySQL DB와 연결하려면 npm mysql2를 설치해야 한다. 4. MySQL은 오픈소스 관계형 DBMS이다. 5. 우리가 하려는 것은 다음과 같다. 웹 서비스의 데이터들 간에 관계가 명확하므로 관계형 데이터베이스를 사용할 것임 그리고 그 관계형 데이터베이스를 조작하기 위해 오픈소스 DBMS인 MySQL을 사용할 것임 그리고 그 DBMS를 Node.js & Expr..
2020.10.26 -
[오류해결] Node.js(express) 사용 시 "Cross-Site-Policy"로 인해 스크립트가 사용되지 않는 문제
물론 하루종일 이거 하나만 한 것은 아니지만, 여기에 정신을 많이 뺏겼다. 문제의 원인 : npm helmet의 업데이트를 확인하지 않음 해결 : 3.23.3 버전으로 다운그레이드
2020.09.08