일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- docker
- 노드
- 호이스팅
- rebase
- Jest
- javascript
- 프로미스
- manytomanyfield
- 트랜잭션
- typescript
- westagram
- 실행 컨텍스트
- async/await
- crud2
- TypeError: this.boardRepository.createBoard is not a function
- nodeJS
- on_delete
- bcrypt
- pm2
- CORS
- JWT
- wecode
- node
- django westagram
- Django
- OSI7계층
- status code
- 자바스크립트
- 장고초기세팅
- 스코프
- Today
- Total
목록분류 전체보기 (190)
될때까지
class Human { constructor (type="human") { this.type = type; } static isHuman(human) { return human instanceof Human; } breathe() { alert('h-a-a-a-m'); } } class Zero extends Human { constructor(type, firstName, lastName) { super(type); this.firstName = firstName; this.lastName = lastName; } sayName() { super.breathe(); alert(`${this.firstName} ${this.lastName}`); } } const newZero = new Zero();
구조분해할당(Destructuring assignment) 배열이나 객체의 속성을 분해해서 그 값을 변수에 담을 수 있게 하는 표현식이다. ✨배열은 자리가 똑같아야하고 객체는 키가 똑같아야한다.✨ 배열 구조 분해 users라는 배열의 값을 let 변수 선언시 []를 사용하면 하나씩 나눠담을 수 있다. 문자열의 경우 split을 사용하여 나눠 담을 수도 있다. c에 해당하는 값이 없는 경우 undefined가 담긴다. 이 때 기본값을 설정해줄 수 있다. tom와 tony처럼 필요하지 않는 값은 일부 무시도 가능하다. a와 b의 값을 바꿔야하는 경우 구조분해를 사용하면 다른 변수 생성없이 값 교환이 가능하다. 객체 구조 분해 객체 구조 분해의 경우 순서가 뒤바껴도 제대로 출력이 된다. 꼭 user에서 정의한..
bcrypt란? 사용자의 비밀번호를 데이터베이스에 그대로 저장하면 보안법에 어긋난다. 절대 안됨!! 그래서 입력된 데이터를 변형시켜 암호화하는 단방향 해시함수 중 하나다. salting(실제 데이터 이외에 무작위 데이터를 넣어서 해시값을 만드는 방법)과 키 스트레칭(해시된 값을 또 해시하고 반복하는 방법)으로 보안성을 강화했다. 단방향은 외부 해킹에 의한 데이터 노출뿐만 아니라 내부에서도 데이터 유출을 방지할 수 있기에 보안성이 더 뛰어나다. node에서 bcrypt 사용해서 암호화하기 먼저 bcrypt모듈을 설치한다. npm install bcrypt 그리고 bcrypt모듈을 사용할 파일에서 불러온다. 어디서 bcrypt를 사용해 비밀번호를 암호화 해야할까? controller에서는 req, res를 ..
옛날 함수표현의 간편한 표현식이다. 아래처럼 계속 생략해서 사용이 가능하다. function add1(x,y) { return x+y; } const add2 = (x,y) => { return x + y; } const add3 = (x,y) => x + y; const add4 = (x,y) => (x + y); // 헷갈리지않게 리턴값을 괄호로 묶어주기 주의할 점 const obj = (x,y) => { {x, y} // {x:x , y:y} 인 경우 생략할 수 있음 (객체 리터럴) } const obj = (x,y) => {x,y} // 화살표함수에 따라 생략할 수 있지만 자바스크립트는 이게 뭔지 모름! 객체를 반환하는 경우에는 소괄호를 필수로 적어줘야한다. 자바스크립트가 객체인지 함수의 바디를 ..
템플릿 문자열 const won = 1000; const result = `이 과자는 ${won}원입니다.`; 파이썬의 f스트링처럼 출력하는 방법이군 객체 리터럴 객체의 메서드에 :function을 붙이지 않아도 됨 {sayNode : sayNode}와 같은 값은 {sayNode}로 축약이 가능함 [변수 + 값]등으로 동적 속성명을 객체 속성 명으로 사용이 가능함
var vs const, let if (true) { var x = 3; } console.log(x) // 3이라고 출력함! if (true) { const y = 3; } console.log(y) // Uncaught ReferenceError : y is not defined var는 더이상 쓰지 않도록 권장되는 변수지만, 옛날 코드들에서는 var로 선언했으므로 해당 코드를 봤을 때 이해할 수 있어야 한다. 💓 var과 const, let의 가장 큰 차이점은 블록 스코프다. if문 안에서 const로 선언한 y는 {}블럭 밖에서 y를 인지하지 못하지만, var로 선언했던 x변수는 if문 밖에서도 x를 찾아온다. wow var은 무적인가 싶지만 var는 함수 스코프를 존중하므로 아래의 코드에서 함수..
호출 스택 function first() { second(); console.log("첫번째"); } function second() { third(); console.log("두번째"); } function third() { console.log("세번째"); } first(); 위의 코드를 실행한다면 결과가 어떻게 될까? 예상해보자. 🙄 나는 콘솔에 세번째 -> 두번째 -> 첫번째 순서로 찍힐 것 같다. ✨ 이유는 자바스크립트는 콜스택에 호출된 함수들을 담아둔다고 알고있다. 스택이란? 출입구가 하나라서 나중에 들어온 함수가 먼저 실행되는 자료구조라고 알고 있다. 위에서 first, second, third 함수를 선언했고 맨 아래에서 first()함수를 호출했다. 따라서 first 함수가 호출됐으니 ..
현재 내 엉망진창 코드의 상황은 아래와 같다. localhost:4000/users로 들어온 경우 index.js에서 적어준 것처럼 routes폴더의 userRouter.js로 보냈고, // index.js const express = require('express'); const cors = require('cors'); const fs = require('fs'); const path = require('path'); const app = express(); app.use(express.json()); app.use(express.urlencoded({extended:true})); app.use(cors()); app.get('/', (req,res) => { res.send('hello node'..
try...catch try{}안의 코드를 실행합니다. 에러가 없다면 try의 마지막 줄이 실행되고, catch{} 블록은 실행하지 않고 패스 넘어갑니다. 에러를 만났다면 try{}안의 코드 실행이 중단되고 catch(err){}로 넘어갑니다. 이 때 변수 err에 어떤 에러때문에 넘어왔는지 해당 에러 객체가 담깁니다. 에러가 발생하면 자바스크립트는 에러 내용이 담긴 객체를 생성하고, catch블록에 객체를 인수로서 전달합니다. throw throw를 사용하면 에러를 발생시킬 수 있습니다. try..catch로 에러를 전달하면, 해당 에러에 대한 핸들링을 할 수 있습니다. throw를 모르고 작성했던 코드 // 특정 유저 삭제하기 router.delete("/:userId", async (req, res..
1차 프로젝트로 진행했던 자라홈을 노드로 바꾸게되었다. 혼자였다면 절대 못했을 것 같은데 기업협업으로 나가게 된 회사에 위코더 선배님이 도와주고 계셔서 천만다행이다!!! 천사+천재 둘 다 하고 계신 선배님.. 🖤 막막했던 노드가 이제는 그래도 하나 둘 보이기 시작하면서 CRUD도 뚱땅뚱땅 만들긴했다. 1차 프로젝트를 노드로 만들기 위해서 일단 DB데이터가 필요했다. 나는 mysql을 삭제하고 재설치했기 때문에 1차 때 진행한 프로젝트 관련 데이터들이 남아있지 않을텐데..하고 걱정했는데 다행히도 RDS에 해당 데이터들을 넣어놓았었다 휴!!! AWS RDS의 데이터를 dump떠오고, 내 로컬에 집어넣어보자. AWS RDS 덤프 뜨기 mysqldump -h -u -p > .sql 실제 입력한 명령어는 아래와 ..