전체 글

Remembering not to lose preciousness as being deceived by familiarity...
·Database/MongoDB
MongoDB문서 지향 오픈소스 NoSQL 데이터베이스로 키와 연결된 값의 집합으로 이루어진 Documents 이다특징비정형 데이터를 JSON 형식으로 저장필드, 범위 기반, 문자열 패턴 일치 등 다양한 쿼리를 지원확장성이 뛰어나며 데이터 파티셔닝 기능이 내장샤딩을 통해 여러 서버에 워크로드를 분산하여 대용량 데이터를 효율적으로 관리MongoDB의 주요 구성 요소와 기능Collection(컬렉션) : Document Group으로 RDB에서는 테이블에 해당하며, 동적 스키마를 가진다.Document(도큐먼트) : 관계형 데이터베이스에서는 행에 대응Mongo Shell(몽고 쉘) : MongoDB 인스턴스와 상호작용하는 JavaScript 쉘Sharding(샤딩) : 데이터를 여러 서버로 분산하는 프로세스..
·Algorithms
최단경로(shortest path) 문제네트워크에서 정점 u 와 정점 v 를 연결하는 경로 중에서 간선들의 가중치 합이 최소가되는 경로를 찾는 문제가중치 : 거리, 비용, 시간 등가중치가 없는 그래프 : 간선의 개수가 가장 적은 경로가 최단경로가중치가 있는 그래프 : 시작노드에서 마지막 노드까지 이동할 때 거치는 간선의 가중치의 총합이 최소가 되는 것.다익스트라 알고리즘(Dijkstra algorithm)네트워크에서 하나의 시작정점에서 모든 다른 정점까지의 최단경로를 찾는 알고리즘가중치가 있는 알고리즘은 대부분 다익스트라 알고리즘을 사용한다고 보면된다.다익스트라 알고리즘은 양의 가중치만 있는 그래프에서만 동작하므로 음의 가중치가 있는 그래프에서 제대로 동작하지 않는다.다익스트라 알고리즘은 한 번 방문한 ..
·Algorithms
Spanning Tree(신장트리)그래프 내의 모든 정점을 포함하는 트리 모든 정점들이 연결되어 있어야하고, 사이클을 포함해서는 안된다. 그래프의 최소 연결 부분 그래프이다. 최소연결 = 간선의 수가 가장 적다 그래프에 있는 n개의 정점(vertax)을 가지는 그래프의 최소 간선(edge) 수는 (n-1)개이고, (n-1)개의 간선으로 연결되 있으면 필연적으로 트리형태가 되므로 Spanning Tree가 되므로 즉, 그래프에서 일부 간선을 선택해서 만든 트리이다. 신장트리는 깊이 우선 탐색이나 너비 우선 탐색 을 이용하여 사용된 간선만 모으면 만들 수 있다. 하나의 그래프에 많은 신장 트리가 존재할 수 있다. [시작 정점을 바꾸어 가면서 깊이 우선 탐색을 하여 만든 신장 트리 중 일부] 깊이우선 탐색알고..
·Language/Kotlin
연산자 구분 단항 연산자(Unary Operator) : 항이 하나인 연산자로 하나의 변수에서만 작동하는 연산자 이항 연산자(Binary Operator) : 두 개의 항을 처리하는 연산자로 두 변수의 값으로 작동하는 연산자 사칙연산자 표현식 메서드명 내부 실행 a + b plus a.plus(b) a -b minus a.minus(b) a * b times a.times(b) a / b div a.div(b) a % b rem/mod a.rem(b), a.mod(b) println("num1 + num2 = ${num1 + num2}") println("num1 - num2 = ${num1 - num2}") println("num1 * num2 = ${num1 * num2}") println("num1..
·Language/Kotlin
1. 변수선언 val (불변변수) : 한번 저장하면 다시 할당 할 수 없는 변수를 정의. //문자, 문자열, 논리 값 객체 //Char(2byte), String class, Boolean : (true, false) val charVal = 'a' val strVal = "Hello" val boolVal = true; //charVal = 'b' // Error: 불변변수는 다시 재할당 불가능. println(charVal); println(strVal); println(boolVal); println(charArrayOf('가','나').contentToString()) var str = String(charArrayOf('가','을')); println(str); //문자열 탬플릿 //$변수명, ..
인터페이스 구문 interface Book { //?를 이용한 선택적 속성(undefined 허용) author?: string; pages: number; } const ok: Book = { author: 'Devide', pages: 365 } const missing: Book = { pages: 80 } 읽기전용 속성(readonly) readonly는 interface에서만 사용 interface Page { readonly text: string; } function read(page: Page) { console.log(page.text); //Cannot assign to 'text' because it is a read-only property. page.text = '10'; 함수와 ..
함수 매개변수에 변수 타입 선언 function sing(song: string) { console.log(`Singing: ${song}!`); } sing('hhh'); 자바스크립트의 경우 2개의 매개변수에 값을 한 개만 넣을 경우 undefined로 출력하지만 타입스크립트에서는 에러를 표기한다. function SingTwo(first: string, second: string) { console.log(`first: ${first} / ${second}`); } SingTwo('h111', 'h222'); SingTwo('h111'); //error 만약 선택적 매개변수를 이용하려면 변수명 뒤에 ?를 추가하면 매개변수를 1개만 넣어도 된다. function SingTwo(first: string,..
1.타입시스템 타입스크립트는 자바스크립트의 7가지 원시타입과 동일 null; //null undefined; //undefined boolean; //true or false string; //”Hello” number; //1233 bigint; //1233n symbol; //Symbol(”Hello”) 타입 시스템은 프로그램에서 가질 수 있는 타입을 이해하는 방법에 대한 규칙 코드를 읽고 존재하는 모든 타입과 값을 이해 각 값이 초기선언에서 가질 수 있는 타입을 확인 각 값이 추후 코드에서 어떻게 사용될 수 있는지 모든 방법을 확인 값의 사용법이 타입과 일치하지 않으면 사용자에게 오류를 표시 타입스크립트 타입 오류 종류 구문 오류 : 타입스크립트가 자바스크립트로 변환되는 것을 차단한 경우 let l..
·Database/SQL
프로시저 생성 CREATE PROCEDURE [테이블명] [변수명] [타입], [변수명] [타입] OUTPUT -- 리턴일경우 OUTPUT 추가 AS BEGIN [내용] END GO 프로시저 수정 ALTER PROCEDURE [테이블명] [변수명] [타입], [변수명] [타입] OUTPUT -- 리턴일경우 OUTPUT 추가 AS BEGIN [내용] END GO 프로시저 삭제 DROP PROCEDURE IF EXISTS [테이블명] 프로시저 실행 EXEC or EXECUTE [프로시저명] [파라미터]... 함수생성 CREATE FUNCTION [FUNC_NAME] ( [변수명] [타입], [변수명] [타입] ) RETURNS [리턴타입] AS BEGIN DECLARE [리턴 변수명] [타입] [내용] RE..
·Spring
WebFlux Webflux는 Reactive system을 개발하기 위하여 Spring에서 제공하는 라이브러리이다. Spring Framework는 원래 Servlet API, 컨테이너용을 간단하고 편리하게 사용하기 위해 개발된 프레임워크였다(spring-webmvc를 제공). 그리고 근본은 Blocking, Synchronous(동기)방식이다. 추후 Servlet 3.1에서 비동기 처리 방식을 지원했지만, 서블릿은 응답을 기다리는 동안 Pool안에 있는 스레드를 지연시킬 수 있어서 Reactive해야 하는 요구를 충족하지 못햇다. 그래서 스프링 5.x 버전부터 Spring WebFlux가 추가되었고 웹 요청 처리를 Reactive하게 다루고 Non-Blocking을 구현할 수 있도록 초점을 맞추고 있..
조슈아。
거꾸로 바라본 세상