본문 바로가기

Happyer16

(314)
Persistence Framework에 관하여 ( 장,단점 ) ORM이란?객체 데이터베이스 데이터 자동 매핑 ( Object Relational Mapping ) Persistence란?데이터를 생성한 프로그램이 종료되더라도 사라지지 않는 데이터 Persistence Framework?데이터베이스와의 연동되는 시스템을 빠르게 개발하고 안정적인 구동을 보장해주는 프레임워크 종류SQL Mapper : SQL문장으로 직접 데이터베이스 데이터를 다루는 SQL Helper ( Mybatis )ORM : 객체를 통해 간접적으로 데이터베이스를 다루는 ORM ( Hibernate, JPA ) Persistence Framework를 사용하면 좋은 점DBMS에 대한 종속성이 줄어든다.DBMS 교체작업 때 해야할 일이 줄어든다.자바 객체에 매핑되어 있기 때문에 자바의 기능 ( equ..
노드 프로젝트를 깔끔하게 작성하기 기본적인 자바스크립트 깔끔한 코드 작성https://github.com/qkraudghgh/clean-code-javascript-ko변수 이름 짓기 : 깔끔하고 의미 내포함수 한가지 행동알수있는 이름중복 제거매게변수로 플래그 사용 금지조건문을 캡슐화하기명령형 -> 함수형프로그래밍부정 조건문 사용 금지조건문 작성을 피하라객체 & 자료구조클래스단일 책임 원칙 (SRP)개방/폐쇄 원칙 ex : 면적 계산하는 놈 / 원 / 사각형 )인터페이스 분리 원칙의존성 역전 원칙메소드 체이닝을 상요하세여상속보단 조합을 사용하세요테스트동시성Callback => async,await에러 처리단순히 출력만 하지 마세요포맷팅회사에 맞추세요주석주석이 많다는건 코드가 더럽다는 것코드 위치 설명 X코드 기록 남기지 마세요Node C..
3. 노드 기능 알아보기 util 모듈 ( promisify, depricated )// util 모듈const util = require('util');const crypto = require('crypto'); // deprecated method임을 알려 줄 때 사용const dont_use_me = util.deprecate((x,y)=>{ console.log(x+y);},'이 함수는 이제 안 쓸거에요~'); dont_use_me(1,2); // DeprecationWarning이 출력됨 // callback -> promiseconst randomBytesPromise = util.promisify(crypto.randomBytes);const pbkdf2Promise = util.promisify(crypto.pbk..
Clean Code Javascript 함수함수 인자는 2개 이하가 이상적이다안 좋은 예 : function createMenu(title, body, buttonText, cancellable) { // ... } 좋은 예 :function createMenu({ title, body, buttonText, cancellable }) { // ... } createMenu({ title: 'Foo', body: 'Bar', buttonText: 'Baz', cancellable: true }); 인자가 3개 이상이라면 이미 그 함수는 너무 많은 역할을 하고 있는 것이다. 만약, 많은 인자를 사용해야 하는 경우라면 객체를 이용하자. ES6의 비구조화(destructuring) 구문을 사용하자!
1. Node.js 개요 새로운 스타트업에 이직을 하게 되었는데 이 곳은 Spring 대신 Node.js를 사용하고 있어 공부를 시작하게 되었습니다. Node.js에 대한 이해를 위하여 Node.js 디자인패턴 ( Node.js design pattern ) 책 전체를 단원별로 리뷰해보려 합니다. Node.js 플랫폼에 관하여몇 가지 원칙과 디자인 패턴들을 보면, 그 자체로 Node.js 플랫폼과 그 생태계의 개발 기술을 알 수 있다고 합니다. 단원별로 차근차근 공부를 하게 되면 진짜 Node.js의 철학을 이해할 수 있겠죠. Node.js 철학경량 코어코어 기능을 최소한으로 하고 나머지를 사용자의 몫으로 넘겼습니다. 이 덕에 유지보수 측면에서 편리해지고, 전체 생태계의 발전에 긍정적인 문화를 가져올 수 있었습니다. 경량 모듈이..
ES2015 이후의 비동기 제어 흐름 패턴( Asynchronous Control Flow pattern ) -node.js ES2015 이후의 비동기 제어 흐름 패턴 아직 자바스크립트를 사용해보지 않아, 콜백지옥이 얼마나 심각한지는 모른다. 뭐 무튼 불편하니까 계속 대안이 나오고 있지 않을까? 이번 포스팅에서 유명한 대안책인 Promises, Generators / async, await ( ECAMA 2017 ) 에 대해 알아볼 것이다. PromisesPromise는 비동기 작업의 결과를 제어할 수 있는 object를 반환해주는 함수이다. ( 말이 이해하기 힘들다.... 그냥 비동기 작업의 결과가 성공/실패일 때 제어할 수 있도록 제공해주는 함수이다.) promise.then([onFulfilled], [onRejected]) 기존의 콜백 지옥asyncOperation(arg, (err, result) => { if(err..
7. Aggregation Framework에 관하여 - mongodb Aggregation Framework이번 포스팅에서는 몽고디비에서 데이터를 분석을 어떻게 하는지 알아볼 것이다. Pipeline, Stages and TunablesAggregation framework란 몽고디비에서 collection에 있는 document를 분석할 수 있게 도와주는 도구이다. Aggregation framework는 파이프라인 개념에 기초를 두고 있다. 처음 input은 collection을 받는다. 그리고 각각의 stage는 document를 input,output으로 사용한다. ( stream of documents ) Aggregation 파이프라인의 각각의 stage는 데이터 처리 단위이다. Tunables(?)는 필드를 변경하거나, 정렬하거나, 연산 등 다양하게 필드를 변..
1. Asynchronous Event-Driven 프로그래밍에 관하여 - Mastering Node.js Asynchronous Event driven 프로그래밍에 관하여Node는 event-driven, asynchronous I/O를 이용하여 프로세스가 blocking 되는걸 방지해준다. 이번 포스팅에서는 Node를 이용하여 어떻게 이벤트 드리븐 프로그래밍을 구현하는지 알아볼 것이다. 1. 노드가 timers, callbacks, I/O events를 어떻게 다루는지 2. Promises, Generator, asyns/await를 이용하여 어떻게 동시성을 제어하는지 이 포스팅의 예제를 살펴보면, Node가 왜 성공했는지 살펴볼 수 있다고 한다...(?) Node`s Unique design Event loopEvent loop는 Javascript 코드가 돌고 있는 thread에서 동작한다. 이벤트를 ..
0.노드란 무엇인가? - Mastering Node.js Events for everything 운영체제에게 파일을 열어달라고 요청하면, 해당 작업은 즉각적으로 실행될 것이다. 하지만, 네트워크, 인터넷을 통한 작업은 이 전의 작업처럼 빠르거나 신뢰할 수 없다. 개발자들은 소프트웨어가 느려지지 않도록 이러한 작업들을 잘 처리해야 한다. 보통 C, Java 개발자들은 thread를 통해 해결한다. pthread_t my_thread; int x = 0; /* Make a thread and have it run my_function(&x) */ pthread_create(&my_thread, NULL, my_function, &x);Click me Node는 Javascript에서 thread 개념이 필요없다고 우리에게 보여주고 있다. Thread에 관해서 고려..
맥 개발환경 구축하기 https://github.com/robbyrussell/oh-my-zsh/wiki/Themes