NSIS, 윈도우용 설치 시스템

NSIS Nullsoft Scriptable Install System. 스크립트 기반으로 동작하는 Windows 설치 프로그램을 만드는 오픈소스 시스템. 인스톨실드와 같은 상용 제품들을 널리 대체하면서 인기를 끌고 있다. (= 윈도우용 설치 프로그램을 만들어주는 프로그램.) 공식사이트 :  http://nsis.sourceforge.net/Main_Page * HM NIS Edit : A Free NSIS Editor/IDE. 사람들이 제일 쓸만한 거라고 한다. 다른건 딱히 안보이므로 다운받아서 쓰도록 한다. 1. 라이센스 zlib 라이선스인 자유 소프트웨어 라이선스와 결합한 자유 소프트웨어. (출처 : 위키백과 ) NSIS는 완전 Free라서 다운 받아서 쓰고, 상용화 하는 것도 아무 문제가 없다고 한다. HM NIS Edit는 무료고, 맘에 들어서 개발자에게 Donation 할 수도 있다. 2. 설치 NSIS 다운로드 링크 :  http://nsis.sourceforge.net/Download HM NIS Edit 다운로드 링크 :  http://hmne.sourceforge.net/ HM NIS Edit 설치 중 에러 발생. 뭔지 몰라서 일단 무시하고 설치해본다. 무시하고 설치하니까 일사천리로 잘 된다. 해당 폴더에 가보니까 그 파일이 없어서 생긴 문제같은데, (.lng)파일은 언어파일이고, 내가 쓸 일 없는 언어인 것 같으므로 무시하고 써보도록 한다. 문제가 생기면 그때 생각해야지. NSIS를 설치하면 폴더 내에 'NSIS' 실행파일과 'makensisw' 실행파일 두개가 생성된다. makensisw 는 바로 컴파일 할 수 있는 프로그램이고, NSIS 에 들어가면 각종 매뉴얼, 설명서, 업데이트 등등 NSIS 사용에 도움되는 다양한 링크가 있다. 3. 관련 문법 NSIS 스크립트는 한 줄에 하나의 명령어를 쓰도록 되어있다. C에서 세미콜론(;)으로 구분하는

On-Demand 서비스

주문형 서비스 1. 소비자가 있는 곳으로 찾아가서 상품과 서비스를 전달하는 것    2. 이용자의 요구에 따라 상품이나 서비스가 바로 제공되는 것       => 내가(소비자) 있는 곳으로 상품/서비스가 찾아온다. 최근에 O2O(Online-to-Offline) 서비스와 함께 연결지어서 O2O On-Demand 서비스 라는 말을 종종 사용한다. 대표적인 O2O On-Demand 서비스의 종류에는    카카오 택시 : 택시기사와 승객 연결    배달의 민족 : 음식 배달업체와 고객 연결    세탁특공대 : 세탁물 수거 및 배달 등이 있다.

Django란 무엇인가, 설치하기까지

# What is 'Django' 파이썬으로 만들어진 무료 오픈소스 웹 애플리케이션 프레임워크(web application framework). 쉽고 빠르게 웹사이트를 개발 할 수 있도록 돕는 구성요소라고 할 수 있음. * framework : '소프트웨어의 구체적인 부분에 해당하는 설계와 구현을 재사용이 가능하게끔 일련의 협업화된 형태로 클래스들을 제공하는 것(-랄프 존슨 교수 왈)' 라이브러리와 다르게 애플리케이션의 틀과 구조를 결정하며, 그 위에 개발된 개발자의 코드를 제어. # Why we need Django? 서버가 클라이언트에게 웹페이지를 제공하는 상황을 생각해보자. 편지(request, 요청)가 도착했는지 확인해주는 메일박스(port, 포트)가 있다고 상상한다. 이 확인하는 과정은 웹 서버가 해주는 일이다. 웹 서버는 받은 편지를 읽고 웹 페이지와 함께 답장을 준다. 이 때, 답장의 내용이 필요한데 장고는 특정 콘텐츠를 만드는 역할을 한다. # How Django works? 웹 서버에 요청이 오면 장고로 전달되고, 장고 urlresolver는 웹 페이지의 주소를 가져와 무엇을 확인할지 확인한다. urlresolver는 패턴 목록을 가져와서 URL과 맞는지 처음부터 하나씩 대조해서 식별하고, 일치하는 패턴이 있으면 장고가 해당 요청을 관련 함수(view)에게 넘겨준다. urlresolver는 주소와 번지를 확인해서 일치하는 집에 보내주는 집배원과 같은 역할을 한다. 그리고 모든 활동은 view에서 일어난다. view는 답장을 생성, 클라이언트의 웹 브라우저로 보내주는 역할을 한다. # 가상환경 설정 및 장고 설치 ## 가상환경(Virtual Environment) 설정하기 장고는 파이썬 프레임워크이기 때문에, 파이썬 먼저 설치해야한다. 나는 작성 당시 최신버전인 3.6 버전을 설치했다! 파이썬이 정상적으로 설치되었는지 확인하려면 명령 프롬프트에서 다음 명령어를 입력하면 된다.

Scope and Closure, 스코프와 클로저

자바스크립트에서 중요한 개념 중 하나인 Scope, 스코프는 변수와 상수, 매개변수가 언제 어디에서 정의되는지를 결정한다. 쉽게 받아들이기 위해서는 스코프를 시야, 범위라고 해석해도 된다(책에서 알려준 설명임). * 본 글에서는 ES6버전을 기준으로 작성할 것이기 때문에, let, const 키워드를 기본으로 변수를 선언할 것이다. # 스코프와 존재 변수가 존재하지 않으면 스코프 안에 있지 않다는 것은 직관적으로 이해할 수 있다. 하지만 역이 성립하는 것은 아니다. 다시 말해  스코프 안에 있지 않다고 해서 변수가 존재하지 않는 것이 아니 라는 의미이다. 스코프는 가시성(Visibility)라고도 불리는데, 프로그램의 현재 실행 중인 부분, 즉 실행 컨텍스트(execution context)에서 현재 보이고 접근할 수 있는 식별자를 말한다. 반면에 '존재한다'는 것은 그 식별자가 메모리가 할당된(예약된) 무언가를 가리키고 있다는 뜻이다. 그렇다면, 존재하지만 스코프 안에 없는 변수는 무엇일까? 자바스크립트에서는 무언가가 더 존재하지 않는다고 해도 메모리를 바로 회수하지 않는다. 메모리에 계속 유지할 필요가 없다고 표시해두면, 주기적으로 일어나는 가비지 콜렉션(garbage collection) 프로세스에서 메모리를 회수한다. 이는 자동으로 일어나며, CPU와 메모리를 심각하게 많이 쓰는 경우가 아니면 프로그래머가 고려하지 않아도 된다. # 정적 스코프, 동적 스코프 정적 스코프는 다른 이름으로 렉시컬(lexical) 스코프라고 한다. lexical은 한국말로 '어휘적'이라는 뜻을 가지고 있다. 소스코드적으로 살펴본다는 의미로 해석하면 될 것 같다. function f1() { console.log('1'); } function f2() { console.log('2'); } f2(); f1(); f2(); 위 프로그램은 정적으로 보았을 때, 위에서 아래로 읽어내리는 단

버전관리시스템, git의 기본적인 사용법

이미지
# Install git * git 설치 링크 :  http://git-scm.com/ 설치 후 최초 실행 시, home 디렉토리는 '내 문서' C:\users\(사용자ID) # git Bash 리눅스의 bash shell을 사용하듯이 사용하면 된다. - mkdir : 디렉토리 생성 - cd (dir name) : 해당 이름을 가진 디렉토리로 이동 - ls : 해당 디렉토리 내의 목록 # git init git 저장소를 만드는 과정으로, .git 이라는 폴더가 생성되고, 그 안에 뼈대 파일이 생성된다. 이 때, .git 폴더는 숨김상태로 생성된다. .git폴더 내에는 hooks, info, objects, refs 라는 폴더와 함께 config, description, HEAD 파일이 생성된다. git init을 수행한 후, (master) 상태가 되었다. # git status 현재 git의 상태를 확인하는 명령어. git init을 한 후 명령어를 실행하니 다음과 같이 출력되었다. - On branch master :  - No commits yet :  - Untracked files : # default Setting name, email 등록하는 과정. 기본 설정을 하면 .gitconfig라는 파일이 생성된다. 아래 화면은 생성된 .gitconfig 파일을 확인하는 과정이다. (.gitconfig 파일은 home 디렉토리에 생성된다.) .gitconfig 파일이 홈 디렉토리에 생성된 것을 확인했다. vi 편집기를 이용하여 해당 파일을 열어보면 name, email이 setting 된 것을 확인할 수 있다. vi 편집기에서 편집을 하려면 [i], [a] 키를 이용하여 편집이 가능하다. vi 편집기를 통해 추가로 설정해야 할 내용은 [core]의 editor, [merge]의 tool, [color]의 status, b

dApp, 탈중앙화된 어플리케이션

Decentralized Application. 탈중앙화된 어플리케이션. 중앙화된 어플리케이션이라는 것은 예를 들어서 웹서버를 이용한 웹사이트 같은 것인데, 웹서버가 클라언트와 서버의 리소스들을 연결하는 중심의 역할을 한다. 따라서 웹서버 관리를 통해 효율적으로 처리나 접근 제한 등이 가능하다. 하지만 많은 정보가 중앙 서버에서 관리되기 때문에 내/외부로부터의 해킹, 데이터 유출 등에 대한 위험성이라는 단점이 있다. dApp과 중앙화된 모델의 차이점은 중앙 서버가 없다는 것이다. * 참고 링크 :  http://cointalk.co.kr/bbs/board.php?bo_table=beginner&wr_id=90 * 참고 링크 :  http://www.chaintalk.io/archive/lecture/461

()aas, - as a Service

()aaS에 관련된 정보는 2012년 이래로 쭉 이어져있다. 약 6년 전이다. 음, 6년 전의 키워드를 이제 알게 되었다는 점에 대해서 부끄럽게 생각하며 정리해보려고 한다. -aaS(as a Service)는 '클라우드 기반형 서비스'라고 통칭되고 있다고 한다. 자신이 필요한 만큼의 프로그램, 플랫폼, 저장공간 등을 ISP(Internet Service Provider) 혹은 기타 전문업체가 보유한 대용량의 물리적 공간(클라우드)에서 필요한 만큼 빼내거나 저장하는 방식으로 사용하는 것을 의미한다. 기업들은 제공 방식, 비용 등을 감안해서 자체적인 판단에 따라 적합한 사용방식을 채택해서 사용하고, 대표적으로 분류되어 구분되는 것은 SaaS, PaaS, IaaS가 있다고 한다. = 간단히 요약해, 클라우드를 기반으로 사용자가 필요한 만큼 원하는 수준의 서비스를 선택적으로 이용하는 것으로, 제공 받는 서비스의 종류에 따라 앞의 키워드가 달라지는 것. 1. Saas, Software as a Service 'on demand software'라고도 불린다. 소프트웨어를 서비스로 제공하는 것이다. 프로그램과 관련 데이터를 중앙서버에서 호스팅하고, 사용자는 웹브라우저 등의 클라이언트를 통해 접속하여 원하는 프로그램을 임차하는 방식으로 비즈니스에 활용하거나 특화된 제품을 창출하는 것. - 구글 드라이브, 드롭박스, 에버노트 2. PaaS, Platform as s Service SaaS의 개념을 개발도구의 단계로 확장한 방식. 프로그램 개발을 위해 플랫폼을 구축할 필요 없이 모든 개발도구와 라이브러리를 웹으로 서비스한다. 주 이용자는 개발자이다. 3. IaaS, Infra as a Service CPU, 메모리, 디스크 네트워크 등 IT 인프라를 가상화해서 서비스로 제공하는 방식. 물리적 컴퓨팅 자원과 서비스가 1:1 매핑되는 기존 서버호스팅 구조와 다르게 가상화 기술을 이용해 공유 할 수 있는 컴퓨팅 자

require(), module.exports

웹 브라우져에서는 HTML의 <script> 태그를 이용해 필요한 자바스크립트 파일을 불러오고, 로딩된 자바 스크립트는 서로 참조/호출이 가능하다. 하지만 노드는 HTML 파일이 없이 자바스크립트 파일만 존재하기 때문에, 서로 참조/호출을 위한 방법이 필요하며 이 때 사용되는 것이 require()와 module.exports이다. *CommonJS의 모듈 표준이다. * CommonJS : JavaScript API를 정의하는 단체. 노드에서 하나의 자바스크립트 파일은 하나의 모듈이 된다. JS 파일 내부에서 정의한 객체는 외부에서 접근이 불가능하다. ㅡ자바스크립트에서 익명 함수로 코드를 감싸는 방법과 동일.ㅡ 따라서 외부에서 접근이 가능하도록 하려면 명시적으로 지정해주어야 한다. 함수, 변수 등을 module.exports에 할당하면 외부에서 접근이 가능하다. 모듈을 사용하는 파일에서는 require()로 다른 자바스크립트 파일(=모듈)을 불러오고, module.exports로 외부에서의 접근이 허용된 변수나 함수를 사용할 수 있다. var filesystem = require('fs'); var util = require('util'); fs와 util 두 가지 기본 모듈을 불러오는 것을 예로 들어보자. 노드 내부를 보면 fs.js나 util.js와 같은 자바스크립트 파일이 있다. fs.js와 util.js로 제공되는 기본 모듈을 불러와서 filesystem과 util 변수에 저장했다. 각 변수를 이용해서 모듈에 있는 함수를 호출할 수 있다. require()의 파라미터가 ./나 ../와 같이 상대 경로로 시작하지 않고 모듈명(=자바스크립트 파일 명)을 바로 사용하면 기본 모듈이나 확장 모듈을 불러온다.  * 참고 링크 :  http://tazz009.tistory.com/865