전체 글 113

9주차 파트1 - 비동기

node.js 비동기 - 논 블로킹 I/O 비동기 처리 방식 - 비동기 발생 : 실행되는 코드가 기다려야 하는 시간이 생긴가는 의미 : 일단 이전 시간이 오래 걸리면, 안 기다려주고 (알아서 하라 그러고) 다음 코드를 무작정 실행함.예) setTimeOut() , setInterval(), query() ...  - 비동기 처리 : 비동기가 필요 없을 때가 있음 1. 콜백함수 : 할 일 다 하고, 이거 실행해줘 (= 순서 맞춰서 이걸 뒤에 실행)2. promise (resolve, reject)3. then & catch4. ES2017 promise => async & await

2.23 ~ 2.27

목차2.23 타입을 좁혀 정확한 타입을 얻어내자2.24 자기 자신을 타입으로 사용하는 재귀 타입이 있다2.25 정교한 문자열 조작을 위해 템플릿 리터럴 타입을 사용하자2.26 추가적인 타입 검사에는 satisfies 연산자를 사용하자2.27 타입스크립트는 건망증이 심하다 2.23 타입을 좁혀 정확한 타입을 얻어내자: 타입 종류가 많기 때문에 타입 구분이 중요! typeof 연산자function strOrNum (param : string|number) { if (typeof param === 'string') { param; //param: string } else if (typeof param === 'number'){ param; //param: numb..

typescript 2024.10.13

8주차 파트2 count as exists

count 문법SELECT count(*) FROM likes WHERE liked_book_id = 1;위와 같이 count로  *를 감싸주면, liked_book_id가 1인 것을 모두 카운트해 갯수를 반환해준다.  count, asSELECT *, (SELECT count(*) FROM likes WHERE liked_book_id =books.id) AS likes FROM books;books 테이블에 해당 책에 대응하는 좋아요 수 열(AS likes)을 붙여줌 - 도서 테이블 전체 조회 + 컬럼 1개 추가   서브 쿼리 : 쿼리 안에 쿼리count() : 행 개수AS : 컬럼 별칭

sql 시간 조건, 페이징하기

MySQL : 데이터베이스 시간 범위 구하기- 시간 더하기DATE_ADD(기준 날짜, INTERVAL_____) - 시간 뺴기DATE_SUB(기준 날짜, INTERVAL_____) -시간 범위를 설정해서 SELECT //최근 한달 이내 : 신간SELECT * FROM books WHERE pub_date BETWEEN DATE_SUB(NOW(), INTERVAL 1 MONTH) AND NOW();  데이터베이스 페이징 (paging)페이징 : 몇개씩 보여줄까? ex. SELECT * FROM books; => 전체 도서 리스트 100개   ...8개씩 필요한데..   ...4개씩 필요한데.. SELECT * FROM books LIMIT 4 OFFSET 8;- LIMIT : 출력할 행의 수- OFFSET..

2.18 ~ 2.22

목차2.18 콜백 함수의 매개변수는 생략 가능하다2.19 공변성과 반공변성을 알아야 함수끼리 대입할 수 있다2.20 클래스는 값이면서 타입이다2.20.1 추상 클래스2.21 enum은 자바스크립트에서도 사용할 수 있다.2.22 infer로 타입스크립트의 추론을 직접 활용하자. 2.18 콜백 함수의 매개변수는 생략 가능하다인수로 제공하는 콜백함수의 매개변수에는 타입을 표기하지 않아도 됨문맥적 추론콜백 함수의 매개변수는 함수를 호출할때 사용하지 않아도 됨  function example (callback: (error: Error, result: string)=>void){}example((e,r)=>{}); //문맥적 추론example(()=>{}); //매개변수 사용 Xexample(()=>true)..

typescript 2024.10.06

node.js 패키지 구조/ 컨트롤러

app.js : 프로젝트의 메인 라우터 역할/routes/users.js : 하위 라우터 역할 = 경로를 찾아주자/books.js : 하위 라우터 역할...경로를 찾은 다음 역할 = 콜백함수를 빼내자  라우터가 로직까지 다~ 수행할 때 단점1. 프로젝트 규모가 커질 수록, 코드가 엄~청 복잡 => 코드를 간결하고 가독성 높게 만들어주자2. 가독성 X3. 트러블 슈팅 X=> 유지보수 하기 어렵다  유지보수? 10년 ~ 운영! 요구사항 반영, 에러 해결, ...  컨트롤러- 프로젝트에서 매니저 역할을 하는 파일 : 관장!- 누군가에게 일을 어떻게 시켜야할 지 알고 있음  = 직접 일을 하진 않을 것 => 라우터를 통해서 "사용자의 요청이" 길을 찾아오면 매니저(컨트롤러)가 환영해줄거에요! => 서비스(팀원)..