-
[Firebase] 클라이언트 엑세스가 만료됩니다 해결방법back-end/firebase 2021. 10. 19. 21:36
firebase를 사용하여 서비스를 배포하고 2주 정도 지난 시점에서 Gmail로 메일 한통이 왔다. [Firebase] Cloud Firestore 데이터베이스에 대한 클라이언트 액세스가 곧 만료됩니다. 머지?? 정확하게 모르겠지만, 확실하게 알겠는건 딱 하나 있었다. 액세스 접근이 만료되어 사용하지 못하게 된다는 의미라는 점이다. 문제 확인하기 문제의 원인은 테스트 모드에서 개발을 시작하도록 선택했기 때문이라고 하는데.. 결군 문제는 firebase db인터넷에서 접근이 되고 있기 때문에. 보안상의 문제가 있어서이다. 먼진 모르겠지만, 최초 세팅시에 보안 규칙을 설정을 하지 않았거나, 제대로 되어 있지 않아서 생긴 문제라는 것을 알 수 있었다. 규칙 수정 버튼을 클릭해보자. 처음 보는 언어지만, re..
-
[MySql] tinyInt(4), ZEROFILLback-end/MySQL 2021. 10. 1. 17:40
목표 MySql 테이블 타입 생성 시 괄호에 있는 숫자 의미 ZEROFILL 배경 사내에서 MySql을 사용하고 있는데 DB를 생성해야 할 일이 생겼다. 이때 ON/OFF, 0 ~ 100의 범위를 가지는 용도의 칼럼을 선언할 때 `use_animation` tinyint(4) unsigned DEFAULT 0 COMMENT '애니메이션 사용 여부', `sound_volume` tinyint(4) unsigned DEFAULT 0 COMMENT '소리 크기', 위와 같은 방식으로 형태를 사용하는데, 팀원 중 한 명이 `tinyint(4)`의 숫자 4의 의미가 뭔지 물어보셨다. 길이가 4인 데이터라고 말씀은 드렸는데, 돌아오는 질문은 다음과 같았다. 그러면 sound_volume에 길이가 4인 9999 값이..
-
npm ? npx?back-end/nodejs 2021. 9. 10. 15:38
목표 npm, npx의 등장 배경 npx, npm에 대해 이해한다. npx, npm의 차이점을 이해한다 npm, npx의 등장배경 외부 라이브러리가 필요한 경우 소스코드를 다운로드해서 프로젝트에 일일히 넣어야하는 번거로움 외부 라이브러리 버전이 업데이트 된다면 다시 다운로드해서 프로젝트에 넣어야하는 번거로움 외부 라이브러리를 쉽게 관리하고자 등장하게 된게 npm, yarn이다. 점점 외부 라이브러리가 고도화 됨에 따라 외부 라이브러리를 실행해야하는 경우가 생김 외부 라이브러리를 실행 시켜주고자 등장하게 된게 npx 이다. npm 이란 ? Node Package Manager의 줄임말로 Node 설치시에 자동으로 설치된다 외부 라이브러리를 쉽게 관리할 수 있게 해주는 프로그램이다. 간단한 명령어 (npm ..
-
[Node] 회원가입, 로그인, 로그아웃 구현하기back-end/nodejs 2019. 12. 26. 15:52
개발 목표 회원가입 로그인 로그아웃 필요한 라이브러리 mongoose passport passport-local passport-local-mongoose connect-mongo 회원 가입 회원가입은 DB에 회원의 정보를 넣는다. 회원의 정보를 넣을 Schema를 생성 클라이언트에서 받은 회원가입 form 데이터를 DB에 삽입 ※ passport-local-mongoose를 플러그인 사용 데이터 삽입 데이터를 삽입시 알아서 데이터를 변환하여 저장 MongoDB에 데이터가 들어갔는지 반드시 확인 - use [dbname] - db.[collection].find({}) 로그인 로그인은 사용자가 입력한 from 데이터가 유효하면 로그인 된다. 유효성 체크는 passport에서 알서 해준다. 따라서 pass..
-
4-3 파일 다루기back-end/nodejs 2019. 7. 15. 09:22
- 노드의 경우 동기식, 비동기식 IO를 둘 다 제공한다. - 파일 시스템에 접근하기 위해 fs 모듈을 사용한다. readfile(filename, encoding, callback) 비동기식으로 파일을 읽는다 readfileSync(filename, encoding) 동기식으로 파일을 읽는다 writefile(filename, data, encoding, callback) 비동기식으로 파일을 쓴다. writefile(filename, data, encoding) 동기식으로 파일을 쓴다 1) 파일 읽기 - 비동기 var fs = require('fs'); fs.readfile('./doit.txt','utf8', function(err, data) { console.log(data); }); - 동기 v..
-
4-2 이벤트 이해하기back-end/nodejs 2019. 7. 15. 08:10
- node는 이벤트 기반의 비동기 방식으로 처리된다. - 이러한 이벤트를 보내고 받을 수 있도록 EventEmitter라는 것이 만들어져 있다. 이벤트 보내고 받기 1) EventEmitter를 상속받는다. 2) 이벤트 받기 : on() 메서드로 이벤트가 전달될 객체에 이벤트 리스너 역할 3) 이벤트 보내기 : emit() 메소드로 이벤트를 다른 쪽으로 전달. var util = require('util'); var EventEmitter = require('events').EventEmitter; var csfroka = function (){ this.on('start', function(){ console.log('csforka 실행'); }) this.on('end', function(){ co..
-
javascript 함수 선언하기back-end/nodejs 2019. 7. 14. 12:21
1. 이름 없는 함수 (함수 표현식) var person = function (name, age){ this.name = name; this.age = age; } 2. 이름 있는 함수 일반적인 프로그래밍 언어에서 함수 선언과 비슷한 형식. 익숙한 형태 (함수 선언식) function Person(name, age){ this.name = name; this.age = age; } 두 개의 차이점은 무엇일까? - 이름있는 함수(함수 선언식)인 경우 호이 스팅의 영향을 받는다. - 이름없는 함수(함수 표현식)인 경우 호이 스팅의 영향을 받지 않는다. AirBnb JS Style 가이드에서는 이름 있는 함수보다는 이름 없는 함수를 선언한다고 합니다.ㅎㅎ 자기에게 편한 방식으로 코딩해보세요 ~ ㅎㅎ
-
3.4 프로토타입 객체back-end/nodejs 2019. 7. 13. 22:26
1. 프로토타입 객체 정의하기 - 함수를 사용 function Person(name, age){ this.name = name; this.age = age; } this는 함수를 호출하는 객체를 가리킨다. - 프로토 타입 객체에 함수 정의하기 Person.prototype.walk = function (speed){ console.log(speed + '속도'); } 객체에 함수를 정의하는 것보다는 프로토타입에 정의하는 방식 메모리를 효율적으로 관리할 수 있다. ※ 개념이 튼튼한 분들은 여기서 궁금증이 생길 수 있다. 굳이 왜? 프로토타입에 정의해야 하지? function Person(name, age){ this.name = name; this.age = age; this.walk = function ..