목록Javascript TIL (28)
coding etude
sequelize 를 사용하여 서버를 구현 하려면 일단 nodejs 를 사용 하여 package.json 파일을 만들어 주고 사용할 미들 웨어들으 추가해 주어야 한다. npm init : package.json 파일을 생성해 준다. npm install 을 이용하여 사용할 DB 와 각종 미들웨어를 설치해 준다. 이번에는 기본적으로 mysql을 이용 하여 서버를 구축하려고 한다. 필요한 미들웨어에는 여러가지가 있지만 우선적으로 express, express-session, body-parser, jsonwebtoken, mysql, mysqkl2, sequelize , sequelize-cli(dev) #dev는 devdependencies 를 말한다. 등등 앞에서 나열한 미들웨어는 필수로 설치해 주자....
OAuth : 클라이언트 서버의 인증 방식이며, 유저()user)가 클라이언트 서버(client-server)를 통해 제 3의 서버(resource-server)로부터 인증을 받아 허가된 기능을 사용 할 수 있게 하는 인증 방법을 말한다.(http://www.oauth.com) OAuth 는 따로 설치 할 필요 없이 OAuth를 제공하는 사이트에서 그 권한을 얻어 내가 만든 웹이나 앱에서 사용 할 수 있는 기능이다. 기본적인 개념을 정리하고 가자면 공식 문서에는 네 가지를 설명하고 있다. 1. resource-owner : 보호 된 리소스에 대한 액세스 권한을 부여 할 수있는 주체(제3 인증 사이트). 2. resource-server : 서버 허가 토큰을 사용하여 보호 된 리소스(자원)를 사용가능하게 ..
MVC(Model-View-Controller) : 소프트웨어 디자인 패턴으로 말 그대로 애플리케이션의 정보를 나타내는 model 과 user interface를 나타내는 view 그리고 상호작용을 하는 controller로 구성된 패턴을 말한다. 이런 MVC 패턴을 이용하기 위해서 ORM 이 필요하다..... 하.. 왜이렇게 용어들이 많이나오는지... ORM (Object Relational Mapping) 단어의 뜻대로 객채와의 관계를 맵핑(동일하게 만든다) 한다라는 뜻을 가지고 있다. 쉽게 말해서 객체지향인 JS 는 class 를 사용하지만 DB에서는 table 를 사용하기 때문에 서로 맞지 않는데 이것을 객체의 형태로 만들어서 사용 할 수 있게 만들어 주는것을 말한다. 이 ORM 시스템에는 장점과..
SQL (Structured Query Language): 데이터 베이스에 데이터를 저장, 조작 및 검색하기위한 라이브러리이며 SQL의 언어는 굉장히 직관적이다. 예를들어 user 라는 데이터 베이스의 users 라는 데이브르이 정보를 보고 싶다면 USE user; SELECT * FROM users; 다음과 같이 작성하면 된다 . 시작에 앞서 DB에 대해 잠시 알아보도록 하자. 위에서 설명한 것과 같이 DB에는 테이블이 있고 각 테이블에는 필드와 레코드가 존재 한다. 또 여기서 각 필드의 열(rows)를 clumn 이라고 한다. 말로 잘 이해가 안갈꺼라고 생각해서 다음 그림을 준비했다 . 자, 그럼 이제 SQL에서 DB의 생성과 관리하는 살펴보자. CREATE DATABASE db_name; // 데이..
commonJS 란? : Javascript 를 모듈화 하기 위해서 필요한 API를 정의한 표준 라이브러리. 여기서 모듈화라는 말은 참 어려운 말인것 같다... 정확하게 정의된 의미기 아닌것 같아서 여기저기 둘러 봤지만 딱히 찾을 수가 없었다.. 그래서 내가 내린 결론은 모듈화라는것은 일정한 영역(scope)을 정의(definition)해서 사용(usage)하는 것이다. Javascript를 예로 들면 하나의 js 파일은 그 고유의 영역을 가지고 있고 그 파일의 범위를 export로 정의한 다음 어디에서나 require 를 사용해서 가져와 사용하는것!! 이라고 정의를 내리려고 한다. 정의를 설명하려고 했는데 결국 사용법을 모두 설명한것과 같은느낌이다... 위에서 설명한 방법과 같이 여러 개의 파일은 ex..
node.js 란??(공식 홈체이지 : nodejs.org/ko/docs/) : 자바스크립트 코드를 원래의 기계언어로 직접 컴파일 해주는 javascript runtime(구동 환경). node.js 는 비동기적 논블로킹 모델로 되어있기 때문에 속도가 빠라다는 장점이 있다. node.js는 설치 시 같이 번들링 되어 있는 모듈들도 포함되어 있다. (fs/ http/ url/ path) = require('(fs/ http/ url/ path)') 의 형식으로 바로 사용이 가능하다. node.js를 사용함에 있어 npm(node package manager) 은 가장 중요한 세계에서 가장 큰 오프소스 라이브러리 생태계 중 하나이다. 코딩 시 필요한 라이브러리 및 개발 환경에 필요한 오션들을 npm을 통하여..
이것저것 바빠서 또 .. 오랜만에 포스팅을.... (...유구무언.. 인간은 나약한 존재... ) 오늘은 클라이언트와 서버에 대해서 이야기 해볼까 한다. 클라이언트란 무엇일까? 사전적 의미는 고객라이는 뜻으로 사용자 정도로 해석하면 될 것 같다. 그렇다면 서버는?? 사전적 의미는 제공하는 사람 or 제공자 이다. 그럼 클라이언트의 종류는 어떤것이 있을까? 사실 클라이언트의 종류는 굉장히 다양하다 컴퓨터/ 모바일/ 브라우져 등등 서버에 요청을 보내고 그 결과를 사용자에게 전달해서 보여주는 기기 또는 프로그램을 모두 통칭하는 말이다. 자 그럼 우리는 이 시점에서 서버와 클라이언트의 상관 관계도를 그려보아야 한다. 보통 서버라고 하면 위의 사진과 같은 모습을 상상할 것 이다.. 생각하는것이 맞다..........
동기/ 비동기는 무엇일까? 한국어 사전을 검색해 보았다. 최소 7가지의 동기라는 단어가 나온다....-_-;;; 그 중에서 가장 적절한 말은 (동기 : 같을 동/ 기약할 기 [명사 : 같은 시기. 또는 같은 기간])을 의미한다. 그럼 synchronous는 무엇일까?? [synchronous : 동시 발생[존재]하는] 이라는 뜻을 가지고 있다. 이 말인 즉, 실행 했을 때 그 결과값이 동시에 발생해야(존재해야) 한다는 말이다. 예를들어 커피숍에 들어가서 주문을 하려고 줄을 섰는데.. 첫번째 사람이 커피를 주문하고, 결재를 하고, 커피를 만들고, 커피를 받으면 다음 사람이 주문을 할 수 있는 것이 동기 인것이다. '커피를 주문 했으니 주문한 커피를 반환해야 한다' // 주문과 받는것이 동시에 이루어 지고 ..