async/await 란? 함수앞에 async라고 작성하면 그 함수는 자동으로 Promise를 반환하게 됨 async로 선언한 함수 내에서 await이라는 단어 뒤에 오는 작업(Promise객체)을 끝날때까지 멈췄다가 다음 작업을 실행함 비동기적인 상황에서 작업의 순서를 정해야할때 사용함 (이벤트 루프를 직접 사용하진 않지만 이벤트루프를 사용하는 promise를 사용하므로~! 이벤트루프를 간접적으로 사용함.... 설명이 뭔가 내가 그린 기린 그림 같다.) 개발/JavaScript 2023.03.25
콜백함수 란? 함수의 인자로 들어가는 함수. 해당 함수의 특정 작업이 완료되면 호출된다. 함수 외부에서 특정 로직을 수행한 후 결과값을 다시 함수 내부로 가져올때 사용함 비동기적인 상황에서 작업의 순서를 정해야할때 사용함 (이벤트루프 사용) setTimeout(), forEach가 대표적임 개발/JavaScript 2023.03.25
JavaScript 와 TypeScript 의 차이점 js는 동적(움직일 동~! 궁금해서 찾아봄) 언어로, 실행 이후에 타입이 정해지고 실행중에 타입을 변경할 수 있음 (실행해봐야 오류난걸 알음) ts는 정적(고요할 정~! 궁금해서 찾아봄)언어로, 실행 이전에 타입이 정해지고 실행중에 타입을 변경할 수 없음 (실행 전에 오류를 잡을 수 있음) 개발/JavaScript 2023.03.25
Promise 란? 비동기적인 상황에서 작업의 순서를 정해야할때 사용함 이벤트루프를 기반으로 함 js의 비동기 처리를 위한 것 pending, fulfilled, rejected의 세가지 상태중 하나를 가짐!! pending 에서 비동기처리 작업이 완료되면~ 1) fulfilled 로 전환돼서 결과값을 반환하거나 2) 오류 발생시 rejected 상태로 전환돼서 오류정보를 반환함 성공시(fulfilled 상태) then()을 실행하고 실패시(rejected 상태) catch()를 실행함. 또한 then()을 여러개 가질 수 있는데 위에서부터 순서대로 각 then()이 완료되면 그 다음 then()이 실행됨. 작업 순서의 가독성이 좋아짐!!~~ *promise.all()을 쓰면 promise.all()안에 있는 then()이.. 개발/JavaScript 2023.03.25
RESTful API 란? http 프로토콜을 기반으로 서버와 클라이언트가 통신하는것~~!! 클라이언트가 url로 자원에 접근하고 http메소드 (GET, POST, PUT, DELETE) 를 통해 자원에 대한 행위를 전달함 http메소드를 사용하기 때문에 가독성이 좋고 클라이언트에서 행위를 전달해 통신하므로 서버 내부구조나 스키마가 변경되어도 클라이언트에는 영항 가지 않음 개발/RESTful API 2023.03.25
JWT란? (로그인시 토큰 발행 과정) 클라이언트와 서버간의 인증정보를 안전하게 전달한다. JWT만들어지는 과정: 1) 토큰의 타입, 암호화 방법 정의 2) 토큰에 포함될 정보 담기 (사용자id, 권한 등) 3) 1,2의 내용을 모두 암호화 한 후 시크릿키 사용하여 생성 장- 서버에 저장하지 않으므로 서버 부하 줄어듬, 시크릿키 있어서 위조 불가능 단- 클라이언트에서 복호화 할 수 있어서 보안성 떨어짐 플젝때 작성했던 ... 로그인시 JWT발행 과정: 1) 로그인 성공시 서버에서 토큰 발행 후 클라이언트에 전달 2) 클라이언트가 토큰 저장하고 인증 필요할때마다 토큰값을 서버에 보냄 3) 서버에서 토큰 검증 후 요청값 클라이언트에게 반환 개발/JWT 2023.03.25
스레드란? 프로세스 내에서 실행되는 작업단위를 뜻하는데 하나의 프로세스안에 여러개의 스레드를 가질 수 있고, 스레드는 각각의 스텍을 가짐. 스레드들은 모두 같은 메모리영역(프로세스 내)을 사용하므로 스레드간의 통신이 용이함~! 여러개의 스레드를 이용해 비동기 처리 가능. *js는 단일 스레드여서 이벤트루프를 사용함 개발/스레드 2023.03.25
시퀄라이즈 (Sequelize) 관계형 DB와 객체 지향 프로그래밍을 연결해줌. SQL쿼리문으로 작성 안하고 js로도 관계형DB다룰 수 있게 해줌~~ js 말고 ts 쓸 땐 TypeORM 또는 PrismaORM! 개발/ORM 2023.03.25
bcrypt (회원가입시 비밀번호 해싱) 입력값을 해시화 해주는 라이브러리. 같은 입력값에 대해선 항상 같은 해싱값을 반환함!! 해싱된 비밀번호를 다시 복호화 할 수 없는 단방향임. 플젝에서 회원가입 구현시 해싱했던 방법: 1)회원가입시, 받아온 pw를 해싱해 db에 저장함 2)로그인시 입력된 pw를 해싱함 3)db에서 회원가입때 저장된 해싱 pw를 꺼내옴 4)2와 3을 비교해서 일치하면 로그인 성공! 개발/라이브러리 2023.03.25
Express의 역할 (프라임워크란?) 사용자(개발자)에게 규칙과 구조를 제공해줌. 그러므로 사용자(개발자)는 규칙, 구조를 고민 할 필요가 없어서 설계 시간이 줄어들고 생산성이 향상됨. 일관된 코드 작성이 가능하므로 유지보수에 용이함~!!~! 개발/프레임워크 2023.03.25