목록전체 글 (103)
coding etude
첫 시작, 첫 프로젝트 처음이라는 말은 언제나 혼란스럽고 겁이 난다. 첫 프로젝트.. 모든 것이 혼란스러웠다. 프로젝트를 시작하는 느낌은 마치 '자음과 모음을 배웠으니, 이제 장편소설을 하나 써보세요'와 같은 느낌이랄까..? 물론 첫 프로젝트를 진행하면서 나에게 바라는 것 '그냥 겁먹지도 말고 오버하지 말고 단어를 써보거나 가능하면 문자를 써볼까요?' 정도의 수준이랄까... 프로젝트팀과의 첫 미팅에서 하루가 부족할 정도로 많은 것을 정하고 토론하고 작성하고, 기획 자체는 거대 플랫폼 저리 가라 할 정도로 기획을 했다. 고난의 시작이였다..... Back-end 란 무엇일까? 나에게 부여된 역할은 서버 구현과 DB의 관리. 계속 Front-end 만을 생각해 오다가 갑자기 Back-end 라니... 하지만..
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 를 말한다. 등등 앞에서 나열한 미들웨어는 필수로 설치해 주자....
dotenv(.env) 는 구동에 필요한 환경변수를 저장하여 외부에 유출 되는것을 막는 기능을 한다. 예를들어 외부 API 키, 접속 비밀번호, 접근 허용 token 제작용 secret키 등등 외부에 유출시 보안에 문제가 되는 것들을 보호해주고 사용 가능하게 만들어 주는 파일인 것이다. dotenv를 사용하기 위해서는 먼저 설치를 해주어 dependencise에 추가해 주고 env가 필요한 파일에 다음과 같이 참조를 해주어야 한다. //dotenv 설치하기 npm i dotenv; //dotenv 참조하기 require(dotenv).config() 간단한 예로 config 파일에 DB에 접속하기 위한 아이디 값과 비밀번호를 코딩하면서 그대로 적어 둔다면 누구나 DB에 접속이 가능하게 되는데 이것을 다음..
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을 통하여..