-
연결 리스트 (Linked List)Data Structure 2020. 5. 1. 17:26
Linked List 연결로 이루어진 자료 구조입니다. 무엇이 연결되어 있을까요? 노드(Node)의 연결로 이루어진 자료구조입니다. 노드는 데이터와 주소를 가지고 있습니다. 노드가 어떤 주소를 가지고 있을까요. 노드가 어떤 주소를 가지고 있느냐에 따라서 연결 리스트가 달라집니다. 다음 노드의 주소 / 이전과 다음 노드의 주소 단일 연결 리스트 (Singly-Linked List) / 이중 연결 리스트 (Double Linked List) singly-linked list list.head.next.next.value === 37 const list = { head: { value: 12 next: { value: 99 next: { value: 37 next: null } } } }; Double Lin..
-
스택과 큐(Stack, Queue)Data Structure 2020. 5. 1. 11:29
집어 넣은 데이터에서 처음에 넣은 것을 가져가느냐 마지막에 넣은 것을 가져가느냐 두가지의 경우에 따라서 자료구조가 달라집니다. Stack (마지막) 쌓여있는 접시에서 가장 위에 있는 접시를 먼저 닦아야 하듯이 마지막 요소를 먼저 가져옵니다. Queue (처음) 놀이기구를 타기위해 가장 먼저 온 첫 손님이 가장 먼저 놀이기구를 타듯이 첫 요소를 먼저 가져옵니다. In Javascript 자바 스크립트에서 어떻게 구현될 수 있을까요. Stack push 메서드로 요소들이 객체 형태로 storage에 들어갑니다. storage에 들어가는 객체의 key 는 숫자, value 는 요소입니다. 객체 key의 숫자는 데이터의 크기를 알 수 있는 top 을 참조합니다. 만약에 요소가 push 를 통해서 추가된다면, t..
-
자료구조 (Data Structure)Data Structure 2020. 5. 1. 11:05
Data "문자, 숫자, 소리, 그림, 영상, 단어" 형태로 이루어진 의미 단위입니다. 사람들이 데이터를 분류하여 저장하는 일은 계속 진화하고 있습니다. 종이 -> 책 -> 도서관 -> 컴퓨터 현재 사람들은 컴퓨터에 데이터를 저장하는데요. 사람의 데이터를 컴퓨터에 어떻게 저장할 수 있을까요? 데이터 타입 (Data type) 컴퓨터에 0과 1로 저장되어 있는 데이터를 인간이 사용하는 여러 가지 데이터들의 종류로 해석하기 위한 장치입니다. 데이터 타입 메모리의 크기 표현 가능 범위 byte 1 byte -128 ~ 127 short 2 byte -32,768 ~ 32,767 int 4 byte -2,147,483,648~2,147,483,647 long 8 byte -9,223,372,036,854,775..
-
실행 컨텍스트 (execution context)Javascript 2020. 4. 30. 19:57
Execution Context 실행 컨텍스트는 실행환경입니다. 어떤 실행환경일까요? 코드가 실행되기 위한 정보를 담고있는 환경입니다. 두가지의 실행환경이 있습니다. Global Context / Functional Context 전역 컨텍스트 (Global Context) 처음 코드를 실행시키는 순간에 생기는 컨텍스트로서 모든 것을 관리하여 페이지가 종료될때 사라집니다. 함수 컨텍스트 (Functional Context) 함수를 호출할 때 생성되고, 함수의 모든 동작이 종료되면 사라집니다. (closure는 예외) 컨텍스트의 정리 1. 코드를 실행하면 전역 컨텍스트가 생성되고, 함수를 호출할 때마다 함수 컨텍스트가 생성됩니다. 2. 컨텍스트가 생성될때 안에는 변수 객체 (arguments, variab..
-
함수의 범위 (scope)카테고리 없음 2020. 4. 30. 17:55
scope 스코프는 범위입니다. 어떤 범위일까요? 선언된 변수의 범위라고 할 수 있습니다. let x = 'Hello'; function says() { let x = 'bye'; } says(); // says함수를 실행하여 새로운 변수 x를 선언 console.log(x); // 그러나 변수 x는 'Hello' 위의 코드에서 두 개의 변수 x 는 다릅니다. 처음 선언된 x 는 전역 변수이고, says 함수에서 선언된 x 는 지역변수입니다. 전역 변수는 window 객체의 속성이 되는 변수이고, 전역 변수는 함수 안에 있는 변수를 의미합니다. 전역 변수는 함수 안에 들어있기 때문에 전역 변수에 영향을 끼칠 수 없습니다. 함수의 scope 때문입니다. 그렇다면 함수 안에서 전역변수를 바꾸고 싶다면 어떻게..
-
ES6문법카테고리 없음 2020. 4. 28. 14:59
currying function sum(x) { return function (y) { return function (z) { return x + y + z; }; }; }; console.log(sum(1)(2)(3)) //6 arrow function 화살표 함수표현은 function표현에 비해 구문이 짧고 자신의 this, arguments, super 또는 new.target을 바인딩 하지 않습니다. 화살표 함수는 항상 익명입니다. 에소드 함수가 아닌 곳에 가장 적합합니다. 생성자로서 사용할 수 없습니다. function sum(x) { return y => { return z => { return x + y + z; } } } console.log(sum(1)(2)(3)) //6 var sum ..
-
(loading)Git Workflow for Pair ProgrammingUnclassified 2020. 4. 27. 23:28
Git 페어 프로그래밍 설정 Git을 활용한 페어 프로그래밍을 위해서 서로의 레파지토리를 연결하는 순서입니다. 원본 레파지토리를 각자 포크합니다. 서로 자신의 local에 클론합니다. $ git clone 페어의 로컬과 연결합니다. $ git remote add pair $ git remote -v 코드를 작성한 사람이 커밋을 합니다. $ git push origin msater(or other branch name) 페어가 변경된 코드를 가져옵니다. $ git pull pair master(or other branch name) 코드를 작성한 사람이 커밋을 합니다. $ git push origin msater(or other branch name) 페어가 변경된 코드를 가져옵니다. $ git pull ..
-
package.jsonJavascript 2020. 4. 27. 15:37
하나의 프로그램은 다양한 모듈이 합쳐져서 만들어집니다. 우리보다 잘하는 사람들이 만들어 놓은 검증된 모듈을 사용하여 시간을 단축시킴과 동시에 안정성을 확보합니다. NPM(Node Package Manager) npm은 필요한 모듈을 다운로드할 수 있는, 모듈들이 모여있는 모듈 스토어입니다. 필요한 대부분의 모듈들을 NPM에서 다운로드하면 됩니다. npm이라는 키워드를 하나의 명령어처럼 사용하기도 합니다. 만약에 모르는 사람이 만든 프로젝트를 실행시켜야 한다면 어떤 모듈이 있는지 알아야 합니다. 이때 package.json이 프로그램을 실행시키기 위해 필요한 모듈이 무엇인지, 프로그램을 실행시키는 방법, 테스트방법 등을 알려줍니다. 다만 필요한 모듈의 목록만 있을 뿐입니다. 실제 모듈들은 node_modu..