일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- cors
- 노드 윈스턴
- node winston
- MongoDB
- post
- OpenAPI
- SQL
- 2주차
- HTTPS
- 부트스트랩
- 숙제
- nginx
- 5주차
- 위키백과
- JWT
- NoSQL
- Sequelize
- Get
- 4주차
- db
- Node.js
- 1주차
- 스파르타코딩클럽
- 3주차
- 트랜잭션
- Transaction
- 웹 스크래핑(크롤링)
- 개발일지
- 항해99
- 비동기
- Today
- Total
목록
728x90
2022/12/18 (15)
얼음꽃의 일지
Async & Await -> 요번에 promise, callback을 대체해줄수 있는 비동기 처리 패턴 중 하나 -> 동기식 처리의 단점을 보완 -> 가독성을 높여줌 -> 함수 시작 async 붙이고, 비동기 처리하고 픈 자리에 await을 붙임 -> 대신 await 뒤에 오는 값은 반드시 promise로 반환해줘야함 -> 오류가 발생할 수 있으니 함수 아에 try ~ catch 문으로 예외처리 async function test() { try{ const a = await getSomething(); // 내용 // } catch(err){ // 에러처리 // } } async test() => { try{ const a = await getSomething(); // 내용 // } catch(err..
호이스팅 -> 함수가 실행되기 전 혹은 전역에서 값을 실행하기 전에 필요한 변수 값들을 모두 모아서 유효 범위의 맨위에 선언하는 것을 의미 -> 호이스팅 가능한 대상 : Var / 호이스팅 불가능한 대상:let, const -> 함수 안에서도 호이스팅이 발생할 수 있음 function result() { var add// 함수 표현식 호이스팅 var result// 함수 선언식 호이스팅 add = function() {// 함수 표현식 할당 retunr 1 + 2; } result = add();// 함수 선언식 할당 console.log(result)// 호출 } result() -> 함수 선언식은 함수 전체를 호이스팅을 하고, 정의된 범위에서 맨 위로 호이스팅 되어서 함수 선언전에 함수를 사용가능 -..
Promise -> 비동기 함수 호출 또는 비동기 연산이 완료되었을때, 그 다음에 와서야 처리할 함수 혹은 에러를 설정하는 모듈 function call(text, timeout) { return new Promise((new_text, reject_time) => { setTimeout(() => { resolve(text); }, timeout) }) } call("여보세요 나야~", 1000).then((text) => call(`${text} 누군가 전화함`, 1000) ).then((text) => { console.log(`전화왔어! ${text}`); }); -> Promise가 없었다면 비동기 시에 그냥 콘솔 값이 막 나와서 아마 콜백 지옥이 실행 될 수있다. promise 세가지 상태 -..
CORS - Cross-Origin Resource Sharing의 줄임말 - 보통 Access-Control-Allow-Origin을 안해주게 되면 빨간 오류로 막 발생 - 한 웹페이지에서 다른 웹페이지의 소스를 가져오는데 허락이 없어서 불가능 - CORS가 해결되려면 프로토콜(HTTP, HTTPS), 호스트(주소), 포트(포트번호) 3개가 일치해야함 - SOP(Same-Origin-Policy) 이어야지만 동일할 출처에서 리소스 공유가 가능 - 동일해야하는 이유는 모르는 사이트가 맘대로 XSS를 당할 수 있기때문에 방지 - 그렇다고 모르는 링크를 싹다 차단 할수 없기에 필요한 링크 한에서 CORS 열어줌 - Access-Control-Allow-Credentials은 true 설정이 가능하나 그 이외..
정규화의 개념 - 정규화란 하나의 릴레이션에 하나의 의미만 존재할 수 있도록 릴레이션을 분해해나가는 과정 - 데이터 모델링의 단계 중 가장 중요한 단계로써 논리 데이터 모델링을 상세화하는 단계 - 중복성을 최소화하고 정보의 일관성을 보장하기 위한 개념 - 정규형이란 특정 조건에 만족하는 릴레이션 스키마의 형태를 의미 - 기본 정규형에 1NF, 2NF, 3NF, BCNF가 있고 고급 정규형에는 4NF, 5NF 존재 * 릴레이션 : 테이블과 같은 의미로, 튜플과 속성으로 이루어짐 정규화의 목적 - 구성되는 모든 릴레이션이 중복되지 않게 효과적으로 데이터베이스 내에 표현이 가능하도록 함 - 보다 간단한 연산자에 의해 효과적인 연산이 가능하도록 구성 - 새로운 형태의 데이터가 삽입될 때 릴레이션을 재구성할 필요..
Array - 정해진 크기 만큼 연속된 메모리 공간을 할당하여 데이터를 저장 - 앞 주소만 알면 다음 주소를 알 수 있음 - index 으로 접근 가능 - 한번 정해진 크기는 변경 불가 - 탐색하기 좋음 - 삭제하는데 시간걸림 Linked-List - 여러개의 노드들이 순차적으로 연결되어 있는 구조 - 노드 맨 앞 : Head, 노드 맨 뒤 : Tail - 각 연결되어 있는 노드는 가르키는 노드를 가르키는 포인터로 연결 - 배열과 다르게 연속적으로 할당이 아님 - 탐색하는데 시간 걸림 - 삭제 쉬움 ( 처음, 끝인 경우 ) - 중간이면 탐색해야하 한다는 부분이 존재 Array Linked-List 탐색 O(1) O(n) 삭제 O(n) O(1) 배열은 탐색할때, 인덱스 값을 알기 때문에 바로 접근이 가능하..
시간 복잡도 - 알고리즘을 수행하는 동안 연산이 몇번이나 수행되는지를 나타내는 것 ( 수행 시간 분석 ) - 빅-오 표기법 개념 이용 공간 복잡도 - 프로그램을 실행 시키고 나서 완료하는데 필요한 저장 공간의 양을 나타내는 것 ( 메모리 사용량 분석 ) - 빅-오 표기법 개념 이용 O(1) (Constant) -> 입력되는 값의 크기와 상관없이 항상 일정한 시간이 걸림 -> Stack O(logn) (Logarithmic) -> 입력되는 값의 크기가 커질수록 처리 시간이 logn 만큼 짧아짐 -> Binary-Tree O(n) (Linear) -> 입력되는 값의 크기가 커질수록 같이 비례해서 처리 시간이 증가 -> For O(nlogn) (Linear-Logarithmic) -> 입력되는 값의 크기가 커..