MEAN STACK
-
노드js (Node.js) 소켓 (Socket) 예제MEAN STACK/Socket programming 2018. 9. 12. 10:18
웹 어플리케이션을 개발할 때 MEAN STACK을 사용하는 가장 큰 이유 중 하나가 소켓 프로그래밍(Socket Programming)이라고 한다. c에서는 소켓 구조체에 서버의 정보를 직접 구조체에 입력하고, 데이터 저장 방식 또한 호환이 되도록 인디언을 고려하는 등의 번거로움을 겪어야 한다. 노드js 에서는 소켓 모듈을 지원해 이러한 번거로움을 회피해 개발할 수 있는 편리함을 제공한다.서버 작동시키기 위한 c 코드. 소켓 구조체를 통해 인디언 방식, 포트번호, 프로토콜 등을 직접 지정해줘야 한다. npm 명령어들을 통해 express, socket.io를 설치 후 js 코드 작성한다. 소켓 모듈의 주요 메소드와 주석을 통해 코드를 이해하면 메소드명설명on('메소드명', 콜백함수(data){}) 소켓 ..
-
Node.js Express 메모리(Memory) DBMEAN STACK/Memory DB 2018. 9. 12. 10:11
데이터베이스를 따로 두지 않고 서버에 직접 두고 제어하는 방법이 있다. 이를 메모리 DB라 칭한다. 속도가 빠르지만 서버가 꺼지면 데이터도 모두 초기화된다. 따라서 DB만 관리하는 서버와 백업 서버를 두어 정규 시스템 서버에 장애가 발생해(죽는 경우) 이용할 수 없을 경우 대체 시스템을 작동시키는 Failover 방식을 사용한다. 전역변수로 배열 객체 items를 생성한다. 글 제목과 내용 가지고 있는 배열 생성 ES6 문법 사용. var 대신 const와 let을 사용한다. ES6부터 객체는 상수(const) 키워드를, 미들웨어 내부 변수에 let 키워드를 사용한다. 기존 자바스크립트가 가지고 있는 문제점 해결된다(Scope 이해가 필요) 처음 메모 목록 페이지. items 초기 생성한 2개만 존재한다..
-
노드js(Node.js) NPM(Node Package Manager) 예제MEAN STACK/Node js 2018. 9. 12. 10:09
노드js도 스프링과 마찬가지로 여러가지 내외부 모듈을 사용할 수 있다. 이러한 모듈들의 집합을 NPM(Node Package Manager)라 한다. 스프링에서 Maven과 비슷한 역할을 하는 녀석이라고 이해하면 될 것 같다. 또한 노드js의 개발을 편하게 제공하는 프레임워크로 Express가 있다. Node js만으로 웹 개발을 하기는 굉장히 어려워 Express를 사용해야만 개발이 가능하다고 보면 된다. 메이븐에서 pom.xml에 Dependencies를 등록해 사용했듯이 Node.js에서는 package.json 파일에 설정하고 등록한다. Scriptlet을 사용할 수 있도록 돕는 ejs를 등록하는 과정 포스팅 새 프로젝트 생성위 Terminal 클릭해 npm 초기화 진행한다. 명령어는 npm in..
-
노드 js (Node.js), 웹스톰(webStorm) 다운 및 페이지 라우팅(Page Routing) 예제MEAN STACK/Node js 2018. 9. 12. 10:01
MEAN STACK이라는 말이 각광을 받고 있다. MongoDB, Express, Angular 4, Node.js를 이용한 웹개발을 일컫는다. 스프링이나 서블릿으로 할 수 있는 개발을 MEAN STACK을 통해 대체 가능하다는 말이다. 서블릿과 비교하면 스프링도 굉장한 코드량을 줄일 수 있었지만 MEAN STACK을 사용하면 더욱 간소화 할 수 있다. (Express를 사용하면 한줄로 서버를 동작시킬 수 있다.) Node.js는 확장성 있는 네트워크 애플리케이션(특히 서버 사이드) 개발에 사용되는 소프트웨어 플랫폼이다. 작성 언어로 자바스크립트를 활용하며 Non-blocking I/O와 단일 스레드 이벤트 루프를 통한 높은 처리 성능을 자랑한다. - 2009년 “라이언 달” 이 V8과 CommonJS ..
-
Angular 파일 업로드, 다운로드 (File upload, download) 예제MEAN STACK/Angular 2018. 9. 12. 09:52
노드, 앵귤러 파일 전송 미지원하기 때문에 npm 사용이 불가피하다. 파일 전송 모듈 1. connect-multiparty 1) 구현 간단함. 2) 파일명 변경 X 3) 파일 업로드 안했을 때 가짜 파일 생성됨. 이를 처리해주는 추가 작업 필요 2. multer 1) 구현 복잡(connect-multiparty에 비해) 2) 파일명 변경 가능 3) file 업로드 안할 경우 파일 생성 하지 않는다. 파일명을 변경해 관리할 수 있어야 보안에도 더 나을 것이다. (파일암호화 필요할 때 uuid등 통해 파일명 변경 할 수 있으니..) ng2-file-upload 모듈 설치app.module.ts에 FileSelectDirective, FileDropDirective import 후 declarations에 ..
-
Angular 설치MEAN STACK/Angular 2018. 9. 12. 09:47
설정 환경 : 노드, 웹스톰(webStorm) ※ 노드는 반드시 설치되어 있어야 한다! (npm 모듈을 사용하기 때문) 사용 툴은 웹스톰이나 MS의 vs code를 추천( 웹스톰은 30일 무료, vs code는 무료 ) Angular 사용하기 위한 설정을 해줘야 한다. 1) Package.json dependencies 2) Ts.config.json : TypeScript 컴파일러가 javaScript 생성하는 방법 정의한 파일 3) Typings.json : TypeScript compiler 인식하지 못하는 라이브러리 추가정의 4) Systemjs.config.js : 처음 Angular2 application이 시작할 때 필요한 packages 을 load 하는 정보가 정의 되어 있다. syste..
-
타입스크립트(Type Script) 데이터 타입, 예제MEAN STACK/Angular 2018. 9. 12. 09:31
컴파일 언어, 인터프리터 언어 차이점 : 컴파일 언어는 타입을 가지고 있다. 인터프리트 언어의 경우 개발할 때 타입체킹(Type Checking) 없기 때문에 코드 작성 후 에러나면 디버깅이 굉장히 어렵다. SPA의 경우 한 페이지에서 서비스를 수행한다. 따라서 코드 작성 후 루틴 중 에러가 난다면 처음부터 다시 해야 하는 경우가 빈번하다. 따라서 코드 작성시 에러를 줄이도록 하는 노력이 필요했고, 이를 충족시키기 위한 언어가 타입스크립트(TypeScript)이다. 자바스크립트를 발전시킨 언어로 자바스크립트에서 타입을 구분할 수 있도록 되었다는 점이 가장 큰 차이점중 하나다. 코드 작성시 에러를 파악하고 디버깅이 용이하다는 점이 자바스크립트와 비교할 때 두드러지는 강점이다. 자바스크립트에서 파생된 언어이..