일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 노드
- 실행 컨텍스트
- django westagram
- crud2
- 스코프
- node
- 트랜잭션
- 장고초기세팅
- Jest
- westagram
- async/await
- javascript
- 호이스팅
- docker
- on_delete
- status code
- 프로미스
- OSI7계층
- typescript
- Django
- bcrypt
- 자바스크립트
- JWT
- nodeJS
- TypeError: this.boardRepository.createBoard is not a function
- rebase
- CORS
- pm2
- wecode
- manytomanyfield
- Today
- Total
목록분류 전체보기 (190)
될때까지
버퍼와 스트림 버퍼 : 일정한 크기로 모아두는 데이터 일정한 크기가 되면 한 번에 처리 버퍼링 : 버퍼에 데이터가 찰 때까지 모으는 작업 버퍼의 단점 : 용량이 100MB인 파일이라면 읽을때에도 메모리에 100MB의 버퍼를 만들어야한다. 이때 서버같이 여러명이 이용하는 환경에서는 메모리문제가 발생할 수 있음. 그리고 모든 내용의 버퍼를 다 쓴 후에야 다음 동작으로 넘어가기때문에 동작이 느리다. 스트림 : 데이터의 흐름 일정한 크기로 나눠서 여러번에 걸쳐서 처리 버퍼(또는 청크)의 크기를 작게 만들어서 주기적으로 데이터를 전달 스트리밍 : 일정한 크기의 데이터를 지속적으로 전달하는 작업 const fs = require("fs"); const readStream = fs.createReadStream('...
fs 파일 시스템에 접근하는 모듈 파일/폴더 생성, 삭제, 읽기, 쓰기 가능 웹 브라우저에서는 제한적이었으나 노드는 권한을 가지고 있음 파일 읽기 const fs = require("fs"); fs.readFile('./readme.txt', (err, data) => { if (err) { throw err; } console.log(data); // 2진법을 16진법으로 바꾼 출력 // buffer는 0,1과 같은 컴퓨터가 다루는 언어라고 생각하기 => 사람이 읽는 언어로 변화시키려면 toString해줘야함 console.log(data.toString()); }) 콜백말고 프로미스를 사용하면 코드를 조금 더 간략하게 작성할 수 있다. const fs = require("fs").promises; f..
단방향 암호화(crypto) 암호화 : 평문을 암호로 만든다 복호화 : 암호를 평문으로 만든다. : 암호화는 가능하지만 복호화는 불가능하다. : 단방향 암호화의 대표 주자는 해시 기법이다. 해시 : 문자열을 고정된 길이의 다른 문자열로 바꾸는 방식 Hash 사용하기(sha512) createHash(알고리즘) : 사용할 해시 알고리즘을 넣어준다. md5, sha1, sha256, sha512등이 가능하지만 md5와 sha1은 이미 취약점이 발견됐다. 현재는 sha512정도로 충분하지만 나중에는 더 강화된 알고리즘이 필요할 수도 있다. update(문자열) : 변환할 문자열을 넣어준다. digest(인코딩) : 인코딩할 알고리즘을 넣는다. base64, hex, latin1이 주로 사용되는데 base64가..
url모듈 노드의 내장된 모듈로 url정보를 객체로 가져와 분석하고 처리하는 역할을 한다. 인터넷 주소를 쉽게 조작하도록 도와주는 모듈이다. url.parse() : url문자열을 url객체로 변환해서 리턴하고 해당 객체에는 url문자열을 분석한 정보들이 담겨있다. querystring 역시 노드의 내장 모듈로 url쿼리스트링을 해석하고 포맷팅할 수 있다. querystring.parse(query) : url의 query부분을 자바스크립트 객체로 분해한다. querystring.stringify(object) : 분해된 query 객체를 문자열로 다시 조립한다.
os 운영체제의 정보를 담고 있다. 모듈은 require로 가져온다(내장 모듈이기 때문에 경로말고 이름만 적어주면 됨) const os = require('os'); path 폴더와 파일의 경로를 쉽게 조작하도록 도와주는 모듈이다. 운영체제별로 경로 구분자가 다르다(윈도우 : '\', POSIX: '/')
process 현재 실행중인 노드 프로세스에 대한 정보를 담고 있다. process.env 시스템 환경 변수들이 들어있는 객체 비밀키(데이터베이스 비밀번호, 서드파티 앱 키 등)를 보관하는 용도로도 쓰임 환경변수는 process.env로 접근이 가능하다. const secretId = process.env.SECRET_ID; const secretCode = process.env.SECRET_CODE;
1. global 노드의 전역 객체 브라우저의 window같은 역할 모든 파일에서 접근이 가능하다 window처럼 생략도 가능하다(console, require도 global의 속성이다) global속성에 값을 대입하면 다른 파일에서도 사용이 가능하다. 2. console 객체 브라우저의 console객체와 매우 유사하다. console.time() ~ console.timeEnd() : 시간 로깅(코드 수행시간을 찍어준다) console.error() : 에러 로깅 console.log() : 평범한 로그 console.dir() : 객체 로깅 console.trace() : 호출 스택 로깅 3. 타이머 메서드 set메서드에 clear메서드가 대응됨(취소하려면 변수에 저장을 해야한다!!) set메서드의..
노드는 자바스크립트 코드를 모듈로 만들 수 있다. 모듈 : 특정한 기능을 하는 함수나 변수들의 집합을 말한다. 모듈로 만들면 여러 프로그램에서 재사용이 가능하다. // var.js const odd = '홀수입니다.'; const even = '짝수입니다.'; module.exports = { odd, // odd : odd => odd객체를 그냥 odd로 생략 가능 even }; 다른 파일로 내보내기 위해서 module.exports를 사용하고 내보낼 아이들은 주로 객체로 생성해서 보내준다. module.exports는 파일에서 1번만 사용 가능하다. // func.js const value = require("./var"); // ..은 부모폴더! .은 현재 폴더! console.log(value);..
자바스크립트는 스크립트 언어라서 즉석에서 코드를 실행할 수 있다. REPL이라는 콘솔을 제공한다. R(Read), E(Evaluate), P(Print), L(Loop) => 읽고 평가하고 출력하고 반복한다. VSCODE에서 파일을 생성한 뒤 실행하고 싶은 자바스크립트 코드를 작성한다. function helloWorld() { console.log('hello world'); helloNode(); } function helloNode() { console.log('hello node'); } helloWorld(); 커멘드창에서 해당 파일을 실행하면 결과값이 출력된다. $ node helloworld hello world hello node
노드는 시간이 오래 걸리는 작업(사용자 이벤트처리, 네트워크 응답 처리, 파일 시스템 작업, 의도적 시간 지연 작업)을 백그라운드로 보내 처리한다. 이렇게 비동기적으로 처리하는 방식에는 콜백함수, promise, async/awiat이 있다. 콜백함수 콜백함수는 어떤 이벤트가 발생하고 나서 그 뒤에 일어나야 하는 함수를 말한다. 이렇게 함수안에서 함수를 호출하다 보면 위와 같이 콜백지옥을 만들어낸다. 그래서 요즘은 프로미스나 async/await를 사용하여 대체하고 있다. Promise 내용은 실행되었지만 결과를 아직 반환하지 않은 객체다. 뒤에 then을 붙일 때에 결과를 반환한다. 실행의 성공 여부와 함께 성공실패의 결과값이 무엇인지 비동기 작업이 끝나고 나서 'then'을 사용해 호출할 때 반환해주..