[JS] 자바스크립트의 메모리 관리 (가비지 컬렉터)
·
개발/html, css, js
JS의 레퍼런스 js는 다른 언어와 다르게 포인터의 개념이 없다. 그렇기 때문에 포인터라는 개념 대신 참조(reference)를 이용한다. *GO언어는 포인터도 있고 가비지컬렉터가 있다. 포인터가 없다고 해서 가비지컬렉터가 있는건 아니다. 자바스크립트에서 변수에 값을 할당할 때, 실제 값이 저장되는 것이 아니라 값이 저장된 메모리 주소를 참조하는 방식으로 동작한다. 따라서 변수를 이용하여 값을 변경하면 해당 메모리 주소에 있는 값을 변경하게 된다. 예를 들어 아래 코드에서 'obj1'과 'obj2'는 같은 객체를 참조한다. 따라서 'obj1'의 프로퍼티를 변경하면 'obj2'에서도 변경된 값을 확인할 수 있다. var obj1 = { name: "John" }; var obj2 = obj1; obj1.n..
[자료구조] 그래프
·
개발/자료구조
1. 그래프란? 그래프란 노드와 연결이 있는 집합체를 말한다. 트리, 연결리스트 등 대부분의 자료구조는 그래프로 이루어져있다고 해도 무방하다. vertex(정점) : 노드를 가리킨다 edge(간선) : 노드들을 연결하는 선 그래프는 SNS, 지도기능, 라우팅 알고리즘 등 많은곳에서 쓰인다. 어디에서나 사용하고 있다고 봐도 될만큼 쓰임새가 다양하다. 2. 그래프 종류 (1) 무방향 그래프 정점끼리의 간선에 방향이 없는것을 말한다. 방향이 없다는건 양쪽으로 연결되어 있다는 것이다. (2) 방향 그래프 간선에 방향이 부여되어 있다. 간선은 양쪽을 가리킬수도 있고 한 방향만 가리킬수도 있다. (3) 비가중 그래프 각 간선에 부여된 값이 없다. (4) 가중그래프 각 간선에 값이 부여되어 있으며 이를 활용하여 여러..
[자료구조] 양방향 연결리스트
·
개발/자료구조
1. 양방향 연결리스트 [자료구조] 단방향 연결리스트 1. 자료구조 자료구조는 스택, 큐, 이진트리, 이진힙, 해시테이블 등 다양한 자료의 구조를 말한다. 자료구조가 많은 이유는 데이터에 따라 특정한 자료구조가 효율적이기 때문이다. 따라서 일부 diary-blockchain.tistory.com 단방향 연결리스트의 노드들에 next 뿐만 아니라 앞의 노드도 표시해주는 prev도 포함한다. 양방향이기 때문에 더 많은 메모리가 사용된다. 하지만 그만큼 제거, 삽입 할때 이전과 다음 노드를 알고 있으니 단방향 연결리스트보다 빠르게 처리 할 수 있다. 2. 양방향 연결리스트 클래스 (1) 클래스 및 노드 class Node { constructor(val) { this.val = val; this.next = ..
[자료구조] 단방향 연결리스트
·
개발/자료구조
1. 자료구조 자료구조는 스택, 큐, 이진트리, 이진힙, 해시테이블 등 다양한 자료의 구조를 말한다. 자료구조가 많은 이유는 데이터에 따라 특정한 자료구조가 효율적이기 때문이다. 따라서 일부 자료구조는 매우 특화되어있는 반면 배열 객체와 같이 자주 사용되고 있는 일부 자료구조들은 매우 일반적이다. 2. 연결리스트 연결리스트란 데이터 요소들을 가리키는 인덱스 없이 그냥 다수의 데이터 요소들로 구성된다. 마치 객체들이 연속으로 연결되어 있는 기차와 같다고 보면 된다. 여기서 각각의 요소들을 노드라고 부른다. 따라서 연결리스트들은 다수의 노드들로 구성되고 각각의 노드는 문자열 혹은 숫자와 같은 하나의 데이터 요소들을 저장한다. 각 노드들은 다음 노드를 가리키는 정보 역시 저장하고 있어야 하며 다음 노드가 없을..
[Node.js] 로그인시 jwt과 session
·
개발/node.js
1. HTML 아이디 비밀번호 로그인 회원가입 아이디/비밀번호 찾기 아이디 슬라이드창 로그아웃 이것은 광고입니다 하루동안 보지않기 닫기 2. JS const express = require("express"); const app = express(); const fs = require("fs"); const PORT = 3000; const dot = require("dotenv"); dot.config(); const session = require("express-session"); const FileStore = require("session-file-store")(session); const jwt = require("jsonwebtoken"); const bodyParser = require("..
[30일 챌린지 Day-8] 무지개 canvas
·
개발/html, css, js
1. 기본값 2. 결과 3. 리뷰 라인의 끝과 꺾이는 부분을 round로 설정하여 원을 그리는것처럼 하였다. arc를 이어그리면 빠르게 드래그했을경우 빈경우가 생기지만 line으로 그리면 빈공간이 생기지 않는다. hsl의 속성을 이용해서 색깔을 조절한다. 위와 같이 각도로 색깔을 조절할수 있다. direction을 통해서 선굵기가 일정값을 넘어가면 가늘어지고 다시 굵어지게 설정하였다.