일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 비동기
- 위키백과
- 항해99
- 숙제
- 1주차
- 4주차
- 2주차
- 노드 윈스턴
- Node.js
- node winston
- 웹 스크래핑(크롤링)
- 개발일지
- NoSQL
- Sequelize
- 3주차
- cors
- OpenAPI
- 5주차
- db
- JWT
- 부트스트랩
- Get
- MongoDB
- SQL
- nginx
- HTTPS
- Transaction
- 트랜잭션
- post
- 스파르타코딩클럽
- Today
- Total
목록
728x90
2022/12 (39)
얼음꽃의 일지
Call by Value - arguments로 값 넘김 - 값이 넘어올때 복사된 값이 넘어옴 - 복사된 값이 넘어왔기 때문에 원본 데이터에는 영향을 받지 않음 - ex ) 전역변수에 선언해두고 함수 내에서 값을 바꿔도 전역 변수에는 변화가 없음 let a = 10; const mul = function(b) { b = b * 3; } mul(a); console.log(a) // 10 Call by Reference - arguments로 값을 넘김 - 이때 넘어오는 값은 값 자체가 아닌 값에 대한 주소, 혹은 메모리 변수 - 참조 하는 부분을 넘기기 때문에 값을 복사할 이유가 없음 - 대신 위치를 넘겨받았기 때문에 변화가 생기면 전체에도 변화가 생김 let a = {}; let turn = funct..
프로세스(Process) - 프로그램이 메모리에 올라와 운영체제로 부터 CPU를 할당받고 프로그램이 실행되는 상태 - 프로세스 안에 Code, Data, Stack, Heap이 존재하는 독립된 메모리 영역을 가짐 - 프로세스당 최소 1개의 스레드를 가짐 - 프로세스는 독립적이기 때문에 다른 프로세스가 와서 접근 불가 - 만약 다른 프로세스가 접근을 원한다면 프로세스간의 통신을 이용해서 요청을 해야함 ex) 파이프, 소켓, 파일 * Code : 프로그래머가 작성한 프로그램이 코드 영역에 작성 * Data : 코드가 실행되면서 나오는 각종 데이터 * Stack : 호출한 함수가 종료되면 되돌아올 메모리의 주소를 스택에 저장, 변수 사용 범위에 영향을 미치는 구역을 구현 * Heap : 동적으로 할당되는 데이..
Base64 - 8비트 2진 데이터를 문자 코드에 영향을 받지 않는 아스키 코드로 이루어진 일련의 문자열로 바꿔주는 방식 - 그냥 쉽게 생각하면 64진법 , 2^6 이기에 2의 제곱수 이루어진 걸로 ASCII 코드를 이용해서 표기한다는 뜻 - 보통 데이터를 넘길때 8비트 형태로 되어있는데 지금 2진 데이터를 쓰게되면 6비트로 보내야 하기 때문에 6비트씩 묶음 - 이렇게 되면 묶다가 혼란이 오는 경우가 생길 수 있기때문에 8,6의 최소공배수인 24로 해서 끊어버림 - 이후 남는 부분이 있으면 패팅(padding)을 ' = '을 이용하여 자리를 채움 순서 - 문자열(데이터) -> ASCII 코드로 변경 -> 2진법으로 변경 -> 6비트씩 자르기 -> Base64로 인코딩 추가 참고 https://en.wik..
TCP - Transmission Control Protocol 약자 - 연결형 프로토콜 - 전송을 제어하는 프로토콜로 직역 가능 쉽게 말하면 데이터를 application 부분에서 메세지형태로 가공하여 IP와 같이 보내는 프로토콜 - TCP 3-way handshaking으로 연결, TCP 4-way handshaking으로 연결 해체 - 각각 연결하기 때문에 1:1 통신 - 흐름, 혼잡 제어를 해줌 -> 신뢰성이 높음 - 속도가 UDP보다는 느리다 UDP - User Datagram Protocol 약자 - 비연결형 프로토콜 - 사용자 데이터그램 프로토콜 직역 가능 쉽게 말하면 데이터를 데이터그램이라는 단위로 처리 - 단순히 보내기 때문에 1:1, 1:N, N:N 통신 - 속도가 TCP보다 빠름 - ..
TCP 3-way Handshake -> 클라이언트와 서버가 연결이 되어있는지, 데이터를 전송 및 받을 준비가 되어있는지 체크하는 시스템 그림을 보고 설명을 하자면 1. Client -> Server : SYN 보냄 2. Server -> Client : SYN + ACK 보냄 3. Client -> Server : ACK 보냄 이렇게 되면 이제 연결이 확인이 되었기에 data를 요청하고 받을 수 있게 됩니다. 이제 여기서 더 이상 사용하지 않고 끝내려면 TCP 4-way Handshake 이용하여 끝냅니다. 1. Client -> Server : FIN 을 보냄 2. Server -> Client : ACK을 보냄 3. Server -> Client : 닫혔는지 한번 더 확인하기 위해 FIN을 보냄 4..
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) 그래프 -> 가중 그래프는 순환, 비순환 다 가능 -> 간선에 무게가 존재 -> 무게를..