전체 글 527

그래프

그래프 그래프는 여러개의 점들이 서로 복잡하게 연결되어 있는 관계를 표현한 자료구조다. 직접적인 관계가 있는 경우 두 점 사이를 이어주는 선이 있는데 간접적인 관계라면 몇 개의 점과 선에 걸쳐 이어진다. 하나의 점을 그래프에서는 정점(vertex)이라고 표현하고, 하나의 선은 간선(edge) 이라고 한다. 정점(Vertex) - 그래프에서 하나의 연결점 간선(Edge) - 두 정점을 잇는 선 차수(Degree) - 정점 하나에 연결된 간선의 수 ✏️ V개 정점을 갖는 그래프의 최대 간선의 수는 V * (V-1) / 2 (무향 그래프 - 양방향) 무향그래프(undirected graph) 간선을 표현하는 두 정점의 쌍에 순서 즉 방향이 없는 그래프이다. 따라서 두 정점 V0와 V1을 잇는 간선 (V0, V..

im-sprint-statesairline-server

Bare minimum requirements "States Airline Server" 스프린트를 통해 Express 프로젝트에서 사용 되는 폴더 구조를 이해하고, Express를 활용하여 API 요청을 처리하는 방법을 실습하게 됩니다. 코드를 작성하면서 폴더 구조가 어떻게 구성이 되어 있고 router ,controller가 어떠한 역할을 수행하는지 관찰해 보세요. 스프린트 목표 Express 프레임워크를 사용하여 States Airline API Server를 개발합니다. Flight API 와 Book API 에서 정의한 API 요청을 수행하는 코드를 작성하세요. flight Router, Book Router 에 있는 모든 테스트를 통과해야 합니다. bookRouter.js 기본 라우팅 라우팅은..

im-sprint-underbar_nightmare(나중)

memoize 더보기 // _.memoize는 callback 함수에 메모이제이션(memoization)을 적용합니다. // 메모이제이션은 이미 해결한 문제는 다시 풀지 않는 기법입니다. // 함수의 호출은 항상 어떤 상태로부터 시작합니다. // 함수의 호출과 함께 전달받은 인자들 또는 함수의 실행에 영향을 미치는 전역변수들이 이 상태를 결정합니다. // 같은 상태에서 출발한 함수는 항상 같은 결과를 리턴(해야)합니다. // 예를 들어, 아래의 함수 add는 두 인자의 값이 바로 함수의 상태입니다. // function add(a, b) { // return a + b; // } // add(3, 5)는 항상 8을 리턴하고, add(2, 7)은 항상 9를 리턴합니다. // 함수의 상태마다 하나의 문제가 ..

im-sprint-underbar_advanced(나중)

기술 면접에서 클로져(closure) 대해서 설명하라는 질문을 받으면 어떻게 대답하시겠습니까? (실제로 물을 수 있는 질문입니다.) 복습을 위해 아래에 간단하게 정리하였습니다. * 정의: 함수와 함수가 선언된 어휘적 환경(lexical environment)의 조합 * 특징: 내부 함수가 외부 함수 안에 선언된 변수에 접근할 수 있다. 내부 함수를 클로저 함수라고 부르기도 한다. * 응용: namespacing, privacy, function factory, partially applied functions, ... * * 클로저의 특징을 활용해 다양한 형태의 함수를 구현할 수 있습니다. * * 이를 활용하여 기존 함수가 여러 번 실행되면 결과가 변동되는 함수를, 한 번 리턴된 값만 리턴하게 하는 함수..

im-sprint-underbar_bareMinimum

01_bareMinimum.js 더보기 'use strict' /** * underbar 스프린트에 오신 것을 환영합니다! * * 여러분은 자바스크립트를 보다 효율적으로 사용하기 위해서 만들어진 underscore.js 라이브러리를 * 비슷하게 구현하면서 자바스크립트의 문법을 더욱 깊게 이해하는 시간을 가지게 됩니다. */ // _.identity는 전달인자(argument)가 무엇이든, 그대로 리턴합니다. // 이 함수는 underbar의 기능 구현 및 테스트를 위해 재사용되는 함수입니다. _.identity = function (val) { // TODO: 여기에 코드를 작성합니다. return val } /** * COLLECTIONS * =========== * collection은 영어로 '모음..

im-sprint-stringify-json

더보기 /** * 1. Browser에 존재하는 JSON.stringfy 함수를 직접 구현해 봅니다. * JSON.stringfy 함수는 input 값을 JSON 형식으로 변환합니다. * 단, undefined와 function은 JSON으로 생략되거나 null로 변환됩니다. * * 2. stringfyJSON은 아래와 같이 작동합니다. * - Boolean이 input으로 주어졌을 경우 * stringifyJSON(true); // 'true' * - String이 input으로 주어졌을 경우 * stringifyJSON('foo'); // '"foo"' * - Array가 input으로 주어졌을 경우 * stringifyJSON([1, 'false', false]); // '[1,"false",fal..