데이터베이스(DB, Database) 기업이나 조직 또는 개인이 필요에 의해(부가가치를 생성) 데이터를 일정한 형태로 저장해 놓은것 관리하는 데이터의 양이 많아지고 여러 사람이 데이터에 접근하면서 파일 구조의 형태로 관리하기에 문제점들이 발생하였다. 네트워크 환경에서 여러 사용자가 데이터를 보다 효율적으로 관리하기 위해 관계형 데이터베이스(RDB)가 대두되었다. 데이터베이스는 크게 RDB와 NoSQL의 두종류로 나뉜다. NoSQL(Not Only SQL) SQL만을 사용하지 않는 데이터베이스 관리 시스템(DBMS)을 지칭하는 단어 관계형 데이터베이스를 사용하지 않는다는 의미가 아닌, 여러 유형의 데이터베이스를 사용하는 것이다. - 관계형 모델을 사용하지 않으며 테이블간의 조인 기능 없음 - 직접 프로그래..
type assertion 컴파일러에게 타입의 형식을 알려주는것 TypeScript 컴파일러가 타입을 실제 런타임에 존재할 변수의 타입과 다르게 추론하거나 너무 보수적으로 추론하는 경우에 프로그래머가 수동으로 컴파일러한테 특정 변수에 대해 타입 힌트를 주는 것이다. 형변환과는 다르다. 형변환은 실제 데이터 구조를 바꿔준다. 주로 넓은 타입에서 좁은 타입으로 강제하는 경우가 많다.(any -> string/number ...) 문법 변수 as 강제할 타입 변수 ex) let someValue: any = "this is a string"; let strLength: number = (someValue).length; let strLength: number = (someValue as string).leng..
API(Application Programming Interface, 응용프로그램 프로그래밍 인터페이스) 프로그래밍에서 프로그램을 작성하기 위한 일련의 부 프로그램 프로토콜 등을 정의하여 상호 작용을 하기 위한 인터페이스 사양이다. API는 소프트웨어 컴포넌트(Function, Method, Operation)의 기능, 입력, 출력, 그리고 이에 사용되는 자료형으로 표현된다. API 자체는 어디까지나 사양(Specification)만을 정의하기 때문에 구현물(Implementation)과 독립적이다. API가 실제 기능 구현체인 라이브러리와 함께 제공되는 경우도 있으며, 이를 Software Development Kit(SDK)라고 한다. SDK는 보통 API, 라이브러리와 함께 프로그램을 개발하는데 필..
서버 기반 인증 (Session, Cookie) HTTP 프로토콜은 요청에 따른 응답을 받으면 연결이 끊어지고(connectionless) 통신이 종료되면 어떠한 상태 정보도 남지 않는다.(stateless) 따라서 로그인 후 다시 웹페이지에 접근하면 로그인 상태가 유지되지 않는다는 문제점이 있다. HTTP 프로토콜의 인증 문제를 해결하기 위해 사용하는 방법으로 세션과 쿠키를 사용한다. ① 사용자가 로그인 한다. (로그인 정보를 서버로 request) ② 서버는 request가 들어오면 DB를 쿼리 하여 사용자를 검증하고 유효할 경우 사용자의 고유한 ID값을 부여하여 세션 저장소에 저장한 후, 이와 연결되는 세션 ID를 생성하여 response header에 포함시켜 반환한다. ③ 사용자는 서버에서 해당..
Boilerplate 최소한의 변경으로 반복해서 사용할 수 있도록 미리 만들어 놓은 코드 개발을 쉽게 시작할 수 있도록 만들어놓은 template javaScript나 html에서는 크로스 브라우징과 호환성을 위한 Modernizr, polyfill, Normalize 등이 적용되어 있는 템플릿 같은 형태로 많이 사용된다 보일러 플레이트 모아놓은 사이트 http://www.boilrplate.com/ Find your starter kit! A curated directory of boilerplates to help you start your projects! www.boilrplate.com node.js boilerplate 1. sahat node.js 웹 애플리케이션용 보일러 플레이트 https..
Singleton pattern 전체 시스템에서 하나의 인스턴스만 존재하도록 보장하는 객체 생성 패턴 클래스 함수의 인스턴스를 한 개만 유지한다. 여러 객체를 생성하더라도 최초 생성된 객체를 사용한다. 객체에 대한 접근자(비공개 멤버:클로저)를 사용하여 해당 객체를 공유한다. 규모가 큰 라이브러리에서는 흔히 외부에서 접근할 수 없는 비공개 멤버를 가지고 있다. 자바스크립트에서 비공개 멤버가 필요하다면 먼저 클로저(closure)를 염두에 두어야 한다. 즉, 비공개 멤버를 가진 싱글톤 객체를 생성하려면 클로저를 이용해야 한다. Javascript Singleton 예제 코드에서 비공개 함수 init()의 return 값으로 반환하는 객체가 싱글톤 객체이다. 내부 변수에 접근하여 객체를 반환하는 클로저(Cl..