일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- OpenAPI
- Sequelize
- 비동기
- MongoDB
- 트랜잭션
- cors
- 5주차
- 숙제
- SQL
- 노드 윈스턴
- Node.js
- JWT
- 개발일지
- post
- Get
- HTTPS
- 2주차
- nginx
- db
- 부트스트랩
- 웹 스크래핑(크롤링)
- 위키백과
- 스파르타코딩클럽
- 3주차
- Transaction
- node winston
- NoSQL
- 항해99
- 4주차
- 1주차
- Today
- Total
목록
728x90
2022/12/18 (15)
얼음꽃의 일지
HTTP -> HyperText Transfer Protocol의 약자로 인터넷을 작동시키는 역할을 하고, 웹 서버 및 웹 브라우저 상호 간의 데이터 전송을 위한 프로토콜입니다. -> 웹 사이트에 액세스 하기 위해서는 프로토콜 변형이 필요하고 보통 우리가 아는 http://www. 로 시작하며 URL에 해당하는 웹 페이지를 가져오기 위해 웹 사이트 서버에 명령을 보내 작동합니다. -> 80번 포트를 사용합니다. -> 암호화가 안되어있기 때문에 제3자의 정보를 조회가 가능했습니다. -> HTTP 상태코드 : https://ko.wikipedia.org/wiki/HTTP_%EC%83%81%ED%83%9C_%EC%BD%94%EB%93%9C * 하이퍼텍스트 : 하이퍼링크를 통해 독자가 한 문서에서 다른 문서로 ..
인덱스(Index) -> DB에서 테이블에 대한 동작 속도를 높여주는 것 -> ex ) 책에 특정한 단어들을 쉽게 찾기 위해서 책 맨 뒤에 순서대로 페이지와 같이 적어 둔 것 -> 인덱스를 해두기 위해서 별도의 메모리 공간에 데이터와 함께 저장 -> 이런 형식으로 만들면 검색 속도가 상향됨 -> 관리는 insert, delete, update 등 이용 장점 -> 조건 검색(Where절) 효율성 Up -> 정렬(Order By절) 효율성 Up -> 최대, 최소(Min, Max) 효율성 Up 단점 -> 추가, 삭제, 수정 시 그 index를 다시 수정해야하기 때문에 그런 부분에서 취약 -> 데이터가 심하게 많은 곳에서는 비효율적, 같은 내용이 몇만개 몇십만개 있다고하면 그걸 찾는데 오히려 오래걸림 -> 양에..
트리와 그래프 -> 트리와 그래프는 관계가 있음 -> 그래프가 트리를 포함하는 관계 그래프 -> 노드(점)와 노드를 연결하는 간선으로 이루어진 구조 -> 노드간의 관계로 볼수있음 -> 부모-자식 관계가 없음 -> 네트워크에서 사용 -> 비순환(directed)와 순환(undirected) 그리고 가중(weighted) 그래프가 존재 * 비순환(directed) 그래프 -> 방향성이 존재함 -> 방향성이 있기 때문에 다시 원래 자리로 돌아가기 힘듦 / 한번 지나가면 뒤로 거기는 끝! * 순환(undirected) 그래프 -> 방향성이 없음 -> 방향성이 없기때문에 왔던길 다시 돌아 갈 수 있음 * 가중(weighted) 그래프 -> 가중 그래프는 순환, 비순환 다 가능 -> 간선에 무게가 존재 -> 무게를..
이분 탐색은 반으로 쪼개가면서 찾고자 하는 값을 얻어내는 방법 1부터 16 까지 16개 이므로 반으로 쪼개면 중간은 8입니다. 그리고 찾고자 하는 숫자는 8 이니 8 윗부분은 확인을 할 필요가 없어집니다. 이제 같은 방법으로 1~8 구간에서 반으로 쪼개면 4혹은 5가 되는데 아무 쪽으로 해도 큰 문제가 없으므로 거기서 또 분리를 하면 다음과 같습니다. 이제 남은 곳에서 반으로 쪼개게 되면 중간이 3이 되고 저희가 찾는 값에 도착하게 됩니다. 이렇게 보면 이진 / 이분 탐색이 아니라 그냥 탐색을 하게되면 최악의 경우 16번까지 다 확인을 해야하기 때문에 시간 복잡도가 O(n)이 나오게 됩니다. 그러나 이와 같이 이진 / 이분 탐색을 하게되면 3번만에 값을 찾을 수 있게 됨으로 최악의 경우라고 하면 O(lo..
Apache - HTTP 웹 서버 소프트웨어 - Client 요청당 하나의 스레드가 처리하는 구조 - Client당 요청이기 때문에 고객이 많아지면 그만큼 스레드, 메모리, CPU 낭비가 생김 - 한계가 존재 하기때문에 클라이언트도 제한이 되어버리기에 Keep Alive를 사용할 수 있지만, 이것도 사람이 많아지면 효율이 없음 - 서버가 blocking되어버리면 처리될때까지 대기해야함 - 안정성, 확장성, 호환성으로는 우세 Nginx - Apache의 많은 고객문제를 해결하기 위해 만들어지 웹 서버 소프트웨어 - 한개 혹은 고정된 프로세스만 생성해서, Connection을 다 비동기 방식으로 처리하기에 많은 사람들을 처리하는데 좋음 - 적은 양의 스레드만 사용해서 비용이나 CPU 낭비가 적음 - Apac..
npm - Node Packaged Manager의 약자 - 즉, Node.js로 만들어진 모듈을 웹에서 받아서 설치하고 관리해주는 프로그램 - 현재는 Node.js 안에 npm이 내장되어 있음 - npm init 혹은 npm install을 통하여 패키지에 다운받은 모듈들을 확인 가능 // package.json { "name": "final", "version": "1.0.0", "description": "", "main": "app.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "keywords": [], "author": "", "license": "ISC", "dependencies": { "axios": ..
Express -> Node.js를 위한 Web FrameWork 중 하나 -> 쉽게 서버를 구성할 수 있게 만든 클래스와 미들웨어, 라이브러리의 집합체 -> 웹 애플리케이션을 만들 수 있음 -> 만약 Express를 대체해야 한다면 Express가 현재 MIT쪽에 팔렸기에 Express를 만든 회사꺼인 Koa를 사용 Express 가 편한 이유 // Node.js 내장된 HTTP로 웹 서버 띄우기 const http = require('http'); http.createServer(request, response) { http.createServer(function(request, response){ response.writeHead(200, {'Content-Type':'text/html'}); re..
일단 기본적인 함수를 보면 다음과 같습니다. // 함수 선언식 function add(a,b) { return a + b } // 함수 표현식 const sub = function(a,b) { return a - b } 이 함수를 화살표 함수로 바꾸게 되면 다음과 같습니다. // 화살표 함수로 변경 add = (a,b) => { return a + b } sub = (a,b) => { return a - b } 즉, function이라고 적힌 부분이 => 로 화살표로 바뀐 형태입니다. 추가로 매개 변수에 따른 상황을 보면 다음과 같습니다. 그리고 화살표 함수안에는 this가 없기에 this를 쓰면 외부에서 가져오게 됩니다. () => { ...}// 매개 변수 없을 경우 x => {...}// 매개변수가..