본문 바로가기

반응형

전체 글

(186)
자식 프로세스(child_process) child_process 'Node.js ChildProcess'는 자식프로세스 기능을 사용할 수 있게 한다. 이 모듈을 사용하기 위해서는 자식 프로세스를 생성해야 한다. 자식 프로세스의 인스턴스를 생성하려면 spawn()나 fork() 메서드를 사용하면 된다. require(‘child_process’).spawn(command, args=[], [options]) options: 기본값은 { cwd:undefined, env:process.env, setsid: false } 이다. - ‘cwd’는 생성된 프로세스가 실행되는 디렉토리를 지정하는 것이고, - ‘env’는 새 프로세스가 접근할 수 있는 환경 변수를 지정, - ‘setsid’가 true이면 서브프로세스를 새 세션으로 생성하게 된다. (cl..
Node.js 기초와 모듈(내장 모듈, npm, 사용자정의 모듈) 노드 설치 https://nodejs.org/ko/ 에서 설치 LTS 버전 설치하면 된다. (document 확인도 여기서 함) 노드 실행 1. 노드 프로젝트를 시작할 디렉토리에 간다. 2. 원하는 js파일을 만든다. ex) test.js 3. 명령프롬프트에서 'npm init'을 입력하고 프로젝트에 대해 몇 가지 입력하면 package.json 파일이 디렉토리에 생성된다. (package.json은 패키지에 관한 정보와 의존중인 버전정보를 갖고있따.(메타데이터)) 4. 자바스크립트 파일에서 사용하는 모듈이 준비되었는지 확인하고 설치한다.(node_modules 파일이 생성됨) (자바스크립트파일에서 내장 모듈로만 이뤄진게 아니라면 npm으로 설치해야할 모듈들이 있을 수 있다.) ex) npm instal..
사용자 정의 모듈 exports : 사용자 모듈 만들기(여러 속성과 메소드), require() 만들고자 하는 모듈을 파일로 만들고 exports객체의 속성이나 메소드를 정의해주면 모듈을 만들어 낼 수 있습니다. 그리고 만들어진 모듈을 전역 함수 require()를 이용하여 추출합니다. // cicle.js - 모듈이 되는 파일 var PI = Math.PI; exports.area = function (r) { return PI * r * r; }; exports.circumference = function (r) { return 2 * PI * r; }; // foo.js - 실행될 파일 var circle = require('./circle.js'); console.log( 'The area of a circle o..
LiteDB LiteDB의 장점 - 100% C#으로 만들어졌다 - 크로스 플랫폼(.Net Standard가 동작하는 곳이라면) - 단일 파일 데이터베이스 - DB 서버 불필요 - NoSQL - 스레드 안전 SQLite와의 비교 - SQLite는 라이브러리 자체를 설치하면 약 5MB 정도 되기 때문에 전혀 Lite하지 않다 - 좋든 나쁘든 C로 작성되어 있어서 네이티브 라이브러리의 래퍼이기 때문에 크로스 플랫폼으로 이용하는 것을 감안할 때 100% C#으로 된 것을 사용하는 것이 좋다. 사용방법 1. NuGet의 경우 > Install-Package LiteDB .Net CLI의 경우 $ dotnet add package LiteDB 2. 샘플 코드 public class Post { public int Id { g..
싱글톤 패턴(Singleton Pattern) 싱글톤 패턴(Singleton Pattern)이란? 싱글톤 패턴은 런타임 동안 단 하나의 인스턴스만을 생성하는 패턴을 의미한다. 싱글톤 패턴이 적용된 객체는 하나의 인스턴스만 생성할 수 있으며 다른 객체에서 싱글톤 객체의 인스턴스를 생성하려 할 경우 기존에 생성된 인스턴스가 있다면 해당 인스턴스를 반환하는 형태이다. 싱글톤 패턴의 장점 1. 메모리 절약과 성능 향상 - 만약 많은 클래스에서 동일한 객체의 인스턴스를 생성해야 하는 경우, 싱글톤 패턴을 적용하지 않았다면 사용할 때마다 인스턴스가 생성된다. 물론 어지간해서는 인스턴스를 많이 생성했다고 성능이 저하되는 일은 드물지만 프로젝트의 규모가 크거나 성능이 중요시되는 프로젝트에서는 싱글톤 패턴을 사용하면 큰 도움이 된다. 2. 데이터 관리의 측면에서 유..
구조체(struct)와 클래스(class)의 차이 // 구조체(struct) 코드 struct Point { public int X; public int Y; public int Z; public Point(int x, int y, int z) { this.X = x; this.Y = y; this.Z = z; } public static Point operator +(Point p1, Point p2) { return new Point(p1.X + p2.X, p1.Y + p2.Y, p1.Z + p2.Z); } public String toString() { return "x: " + X + ", y: " + Y + ", z: " + Z; } } // 클래스(class) 코드 class Point { public int X; public int Y; p..
디자인 패턴 정의와 종류에 대해 소프트웨어 디자인 패턴이란? 소프트웨어 개발 방법으로 사용되는 디자인패턴(Design Pattern)은 과거의 소프트웨어 개발 과정에서 발견된 설계의 노하우를 축적하여 그 방법에 이름을 붙여서 이후에 재사용하기 좋은 형태로 특정 규약을 만들어서 정리한 것입니다. 디자인 패턴은 소프트웨어 설계에 있어 공통적인 문제들에 대한 표준적인 해법과 작몀법을 제안하며, 알고리즘과 같이 프로그램 코드로 바로 변환될 수 있는 형태는 아니지만, 특정한 상황에서 구조적인 문제를 해결하는 방식입니다. 즉 "효율적인 코드를만들기 위한 방법론"이라고 생각하시면 됩니다. 디자인 패턴의 종류 1. 생성 패턴(Creational Patterns) - 객체 생성에 관련된 패턴입니다. 객체의 생성과 조합을 캡슐화해 특정 객체가 생성되거나..
IoC(Inversion of Control; 종속성 반전) 애플리케이션 내에서 종속성의 방향은 구현 세부 정보가 아닌 추상화 방향에 있어야 합니다. 대부분의 애플리케이션은 컴파일 시간 종속성을 런타임 실행 방향으로 전달하여 직접 종속성 그래프를 생성하도록 작성됩니다. 즉, 클래스 A가 클래스 B의 메서드를 호출하고 클래스 B가 클래스 C의 메서드를 호출하는 경우 아래 그림에 표시된 대로 컴파일 시간에 클래스 A는 클래스 B에 종속되고 클래스 B는 클래스 C에 종속됩니다. 종속성 반전 원칙을 적용하면 A는 B가 구현하는 추상화에 대해 메서드를 호출할 수 있고, 런타임에 A가 B를 호출할 수 있게 되지만 B는 컴파일시간에 A에 의해 제어되는 인터페이스에 종속됩니다.(따라서 일반적인 컴파일 시간 종속성이 '반전'됩니다.) 런타임에 프로그램 실행 흐름은 그대로 유지되지..

반응형