Post

반응형

저번에 것 이어서 같은 모듈과 NPM단원이다.


NPM을 이용해 다른 사람이 만든 프로그램을 자신의 프로그램의 부품으로 사용

EX. underscore


npm을 현재 디렉토리를 지정하는 명령어를 사용

더 찾아보니 package.json을 만들어 준다고 한다.

package.json은 대충 프로젝트 내의 사용할 파일을 모아둔 것?? 인 것 같다

( 검색해 봤는데 다들 넘 당연하게 package.json 을 쓰고있다.. ) 

npm init


name이 뜬다. 이프로젝트의 이름을 지정하는 것

server_side_javascript라고 지정한다.

version은 server side javascript tutorials


그 외는 다 Enter 한다. 그러면 package.json이란 파일이 생겼다.

내용은 아래와 같다.( npm 등록한 걸 사용할 수 있는 초석 완료 )

{

  "name": "server_side_javascript",

  "version": "1.0.0",

  "description": "",

  "main": "FirstExServer.js",

  "scripts": {

    "test": "echo \"Error: no test specified\" && exit 1"

  },

  "author": "",

  "license": "ISC"

}


설치 명령어 +방법

npm install underscore


나는 여기서 에러가 뜸

please include the following file with any support request npm-debug.log


이런 에러가 떴는데, 오타를 score인데 socre이라고 오타나서 그런듯

아니면 관리자 권한으로 프롬프트 실행시키고 

https://superuser.com/questions/42537/is-there-any-sudo-command-for-windows

를 참고해서 runas /noprofile /user:Administrator npm install underscore 라고 치니까 되었다.

에러의 원인은 둘 중에 아마 오타때문에 난 듯 싶다..(명령어 보니까 전부 socre 이라고 치고 있었다;;;)


아무튼 위 명령어를 치면 package.js 가 생기고 node_modules 폴더가 있다.


버전이 underscore@1.8.3 extraneous 라고 뜬다는데 난 안떴음.

이 extraneous는 불완전하게 설치되었다는 뜻임.

안전하게 설치하려면 

npm install underscore --save  


 달라진 부분은 dependencies 라는 부분이 코드에 추가가 됨.

이 패키지는 1.3.8 버전에 의존하고 있다는 걸 표시하는 것.


이제 underscore를 사용해보자

underscore는 기존 array의 함수가 빈약하여 도와주는 역활을 한다.

기존 array의 첫번째 값을 가져오려면 다음과 같다.


var _ = require('underscore');

var arr = [3, 6, 9, 1, 12];

console.log(arr[0]);


이것을


var _ = require('underscore');

var arr = [3, 6, 9, 1, 12];

console.log(_.first(arr));


arr[0] 에서 _.first(arr) 로 바꾸면 똑같이 첫번째 값 3이 나온다.

마지막값은 좀 더 까다롭다.
arr[length-1]를 해야하기 때문이다. 
하지만 _.last(arr) 를 해서 아주 쉽게 가져올 수 있다.


반응형

Post

반응형

생활코딩에 nodejs 강좌가 있어서 

부랴부랴 듣는중.. 

아래는 정리한것이다.

다하고 리니지m 해야지 ㅋㅋ


모듈과 NPM

https://opentutorials.org/course/2136/11854


1.모듈이란? 모델. 부품. nodejs의 역활. 서버를 만드는 역활

미리 사람들이 만든 웹서버를 배우는 것이 이번장 목표.

nodejs는 http 라는 부품을 가지고 있고, 그 사용설명서를 찾는 법 설명

const http = require('http');             // http라는 모듈을 요청


2.메뉴얼에 나온 함수 사용해보기

우리가 사용하는 컴퓨터의 os를 알아보자


var o = require('os');

console.log(o.platform());



module.js 라고 저장 후 해당 경로로 가서

node moudle.js 라고 치면 자신의 os가 나온다.

나는 윈도우 win32


3. 다른 사람이 만든 모듈을 사용하는 방법? NPM

Node Package Manager


NodeJS가 제공하는 모듈 : HTTP, OS

JavaScript가 제공하는 모듈 : Date, String, Array


타인의 모듈을 사용하는 방법? NPM (Node계의 앱스토어)

www.npmjs.com


npm install uglify-js -g

-g 가 붙으면 전역, 붙지 않으면 사용 프로젝트에만 사용함.

아래 내용이 나옴



`-- uglify-js@3.0.19

  +-- commander@2.9.0

  | `-- graceful-readlink@1.0.1

  `-- source-map@0.5.6


pretty.js 파일 작성


function hello(name){

console.log('Hi,'+name);

}


hello('hihi');


저장 후 uglityjs pretty.js 실행 하면 줄바꿈이 사라진 코드가 보임

uglityjs pretty.js -m 이라고 하면 name이 o로 바뀜. 이름을 바꿔도 상관없는 변수의 이름을 바꿔줌

uglityjs pretty.js -o uglified.js -m 으로 uglified.js -m  파일로 저장할 수도 있고

uglityjs pretty.js -o uglified.js -m 으로 pretty.min.js -m 파일로 작아졌다는 의미를 부여해서 저장할 수 있다.






반응형

Post

반응형

조금씩 하는 중이다.

이제 겨우 GameManager 만드는 10장하는 중^^;;

왜이렇게 느리냐구 하면.. 놀거 다놀고 있어서 ㅋㅋㅋㅋ

(스트레스 받는거 싫어함)

그래서 즐기는 기분으로 유니티 하는 중이다 ㅎㅎ

잘 이해 안가는부분도 있지만 굉장히 재밌다:)

얼른 Node.js도 공부하고싶다ㅠ_ㅠ

반응형

Post

반응형

배열보다 리스트가 좋은 이유

- 배열의 크기는 바꿀 수 없다

- 리스트의 크기는 바꿀 수 있다

- 리스트는 요소를 추가하거나 삭제하기 쉽다

- 배열의 요소 수를 늘리려면 원하는 만큼 요소의  수를 늘려서

배열을 새로 만들고 기존 요소를 모두 복사하는 과정이 필요하다.

- 그냥 List가 아닌 ArrayList는 형을 지정하지 않고 사용할 수 있다.


but 배열이 속도가 더 빠르다.


반응형

'이전게시판 > C#' 카테고리의 다른 글

프로퍼티 스택오버플로우..  (0) 2018.08.10
StreamReader 한글깨짐 오류  (0) 2018.08.10
C# var, 무명메서드, 람다식, LINQ 예제  (0) 2016.02.18

Post

반응형

Git 기초_1. Clone, Branch, Merge




git을 어쩌다가 사용하게 되었다.

그런데 SVN이랑 달라서 너무 어렵다ㅠㅠㅠㅠㅠ

뭐 GIT 자료야 많지만 콘솔이 많고 TortoiseGit은 별로 없어서(GUI라서 쉬우니까 그럴것 같지만..)

나를 위해 한번 정리해본다.





1. Clone


맨 처음에 Clone은 저장소에 있는 데이터를 내 local로 받는 명령어이다.

TortoriseGit에는 친절하게 Git Clone이라고 써져있다.





클릭하면 위와 같은 창이뜬다.

URL에 저장소 주소를 넣으면 되는데 깃허브를 모르는 사람은 당장 검색창에 깃허브를 쳐서

나의 인터넷 저장소를 만든다.

아무튼 만들고 나서 깃 저장소 주소를 URL에 넣어주고 OK 누르면 데이터가 받아진다.





로컬 Git 저장소에 데이터가 잘 받아졌다는 것은

초록색 화살표가 생긴것으로 알 수 있다.




ㄴㅇㄹㄴ


2. Commit


Commit과 Push의 차이점은 Commit은 로컬 저장소에서 저장하는 것이고

Push는 진짜 저장소에 저장하는 것이다.

Git은 로컬 저장소와 진짜 저장소(말이 이상한데;;) 가 따로 존재한다.

SVN처럼 Commit한다고 바로 올라가지 않는다.






간단하게 Git Commit을 선택하면 된다.

Push도 쉽게 TortoriseGit > 을 클릭하면 옆에 Push 메뉴가 뜬다.

그것을 클릭해주면 된다.





브런치는 새로운 작업을 할 새로운 길을 만드는 작업이다.

만약 원본 작업인 master가 있고 새로만든 브런치 Test가 있다면

서로 같은 파일이지만 전혀 영향을 받지 않는다.

그래서 master에서 어떤 파일을 고쳤어도 Test에선 파일이 하나도 수정되지 않는다.

그래서 별개의 작업을 할 때 유리하다.



만약 SVN으로 작업했다면 저장소를 두번 내려받아야 했을 것이다.

(과거의 내가 그랬다.)



브런치랑 머지는 다음 이시간에!!!












반응형

'이전게시판 > Git' 카테고리의 다른 글

Git Cui Commit  (0) 2018.10.13
Git Branch  (0) 2018.10.12
invalid username or password Sourcetree 해결  (0) 2018.10.12
GIT 사용 방법 정리  (0) 2018.10.12

Post

반응형

C++ 람다식이란?


람다는 익명함수로 크게 Capture(캡쳐), Parameter(인자), Return(리턴), Body(몸체) 로 나눌 수 있다.

아무것도 안하는 람다함수는

[] () {};

로 표현할 수 있다.


[Capture] (Parameter) {Body}


1. Capture

Capture는 람다 함수 밖에 있는 변수를 가져와 사용하고 싶을 때 사용한다.

예를들어 선언되어있는 지역변수 a를 출력하고 싶다면 이렇게 한다.


[int a](){ cout << a << endl; };


괄호안에 =, & 이 들어갈 수 있는데

= 는 모든 지역변수를 값으로 사용하겠다는 뜻이고

&는 모든 지역변수를 레퍼런스로 사용하겠다는 뜻이다.


2. Parameter

람다 함수 안에서 사용할 인자를 선언한다.

만약 지역변수와 이름이 같다면 에러를 나타낸다.

그리고 생략할 수도 있다.





명시적으로 3을 출력하고 싶다면


[](){cout<<3<<endl;}();


뒤에 ();를 붙여서 쓰면 호출이 된다.

어떤 함수에 저장해서 사용하고 싶다면 


auto func = [](){cout<<3<<endl;};

func()


();를 빼야 한다.



이것말고 더 어려운 부분도 있었는데 계속 정리해야겠다.




반응형

Post

반응형

PuTTY 다운로드 링크

http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html



PuTTY는 SSH 접속을 하는 프로그램이다.

윈도우 환경에서 VMWare을 사용해서 CentOS 7 리눅스 환경으로 들어가면

윈도우 환경과 리눅스 환경 간의 클립보드 복사 붙여넣기가 되지 않는다.

PuTTY를 사용하면 창 전환 및 클립보드가 아주 잘 작동한다.



나는 vmware로 만든 가상 리눅스에 접속하려고 했다.

리눅스로 접속해서 IP 주소를 확인해야한다.

ip addr show

명령어를 치면 해당 리눅스 서버의 ip를 확인 할 수 있다.

그 ip를 HostName에 적으면 접속이 된다.






반응형

'이전게시판 > Linux' 카테고리의 다른 글

vmware로 centos7 리눅스 설치  (1) 2016.06.06

Post

반응형

VMware로 CentOS7 리눅스 환경 구축 방법



VMware로 CentOS7을 설치해서 리눅스 프로그래밍을 하려고 합니다.

까먹을까봐 여기에 저장해놓습니다.




1. VMware Workstation 12 Player 다운로드

https://my.vmware.com/en/web/vmware/free#desktop_end_user_computing/vmware_workstation_player/12_0


2. CentOS 7 설치

https://www.centos.org/ 


3. VMware로 다운받은 CentOS7 이미지 파일 실행시키기.




4. CentOS 7 Install 시작




5. 설치 대상 디스크 선택하고 설치 시작




6. 네트워크 및 호스트명을 클릭해서 이더넷을 활성화 시켜줍니다.





7. 완료됩니다.




CentOS 7이 무사히 설치되었다면 기본적인 패키지를 yum으로 깔아주세요.

gcc라던가 yum update도 잊지마시구요.







반응형

'이전게시판 > Linux' 카테고리의 다른 글

PuTTY 사용법  (1) 2016.06.06

Post

반응형

MSSQL MYSQL 차이점 비교


NULL값 비교

MSSQL : ISNULL

MYSQL : IFNULL


CASE문

MSSQL : CASE

MYSQL : IF


문자열 합치기

MSSQL : +

MYSQL : concat

반응형

Post

반응형

MSSQL 뷰, 인덱션, 트랜잭션 정리


테이블과 뷰

1. 테이블과 뷰

* 제약조건 : 테이블 무결성을 지키기 위해 제한된 조건을 의미

즉 입력 시 특정 조건을 충족시키게 만든다.


1) PRIMARY KEY(기본키) : 중복X, NULL X

ex) UserID char(8) NOT NULL PRIMARY KEY

2) FORGIN KEY(외래키) : 두 테이블 사이의 관계 선언, 데이터 무결성 보장

다른 테이블에 의존하게 됨

기준 테이블의 열은 반드시 Primary Key이거나 Unique 제약 조건 설정

3) UNIQUE : 중복되지 않는 유일한 기술. PRIMARY와 차이, NULL 허용

(단 한개만 허용)

4) CHECK 제약 조건 : 입력되는 데이터를 점검하는 기능

5) DEFAULT는 값 입력 X, 자동 입력되는 디폴트 값


* 임시 테이블 : 임시로 잠깐 사용하는 테이블

테이블을 생성할 때 테이블 이름 앞에 #, ## 붙이면 된다.


2. 데이터베이스 캐체의 이름과 외부 서버 개체의 접근

 * 데이터베이스 개체

  테이터베이스의 정식 명칭 : 서버 이름. 데이터베이스.이름.스키마이름.개체이름

  스키마는 데이터베이스 내에 있는 개체들을 관리하기 위한 묶음

  스키마 != 소유자

  개체를 생성할 대 아무것도 붙이지 않으면 자동 디폴트 스키마인 dbo


  스키마란?

    데이터베이스 안에 있는 네임스페이스. 


3. 뷰

   * 뷰 란? 테이블과 비슷한 역활을 하도록 SELECT 문을 이용해 만드는 개체

   ex ) CREATE VIEW v_userTb1

  AS

     SELECT userid, name, addr, from UseTb1

  GO

     SELECT * FROM v_userTb1

   

   * 뷰의 종류? 

      표준 뷰 : 한개 또는 그 이상의 테이블을 이용해 만든 뷰.

      분할 뷰 : 여러 대의 서버에 있는 테이블들을 조인해 하나의 테이블 처럼 보이게 만든

      인덱싱 뷰 : 실제 데이터가 존재하느 뷰. 클러스터 인덱스 정렬에 의해 정렬된 결과를 보여주는 뷰.

      시스템 뷰 : 말 그대로 시스템에 접근 못하도록 만든 뷰



인덱스

 1. 인덱스의 개요와 활용

    인덱스란? 목차와 같은 것. 데이터를 좀 더 빠르게 찾을 수 있도록 해주는 도구.

                  단점은 필요없는 인덱스를 만들면 공간만 차지하고 느려짐

    장 ? 검색속도가 무척 빨라진다. (항상 그렇진 않다)

          그결과 시스템의 부하가 줄어들어, 결국 시스템 전체의 성능이 향상

    단 ? 인덱스 추가 공간 필요.

          인덱스 생성 시 시간이 소요될 수 있고 데이터 변경 작업이 자주 일어나면 성능 나빠짐


 2. 인덱스의 종류

     클러스터형 인덱스 : 순서대로 정렬. 인덱스 자체가 책 내용.

     비클러스터형 인덱스 : 찾아보기가 별도로 있음.

     클러스터 인덱스는 테이블 당 하나만 생성.

     비클러스터는 테이블 당 여러개 생성 가능.

     PRIMARY KEY 로 지정하면 자동적으로 클러스터형 인덱스


 3. 인덱스 내부동작

     B-Tree => 트리 형식을 사용함 => 그래서. 트리.노드.부모누드. 위치 등이 변경 된다면 느려짐.


 4. 인덱스 특징

    1) 클러스터 인덱스

       - 클러스터형 인덱스를 생성할 때는 데이터페이지 전체를 다시 정렬.

       - 그러므로 시스템 부하가 있을 수 있다.

       - 검색속도 빠르다. 업데이트 느림.

       - 테이블 한개에 생성 가능.


   2) 비클러스터형 인덱스

       - 그냥 페이지는 두고 인덱스 구성(목차, 찾아보기 처럼 되어있다.)

       - 찾기는 느려도, 데이터 변경은 빠름.

       - 남용하면 더 느려진다. 적절히 사용할 것.


 5. 인덱스를 생성해야 하는 경우는?

     - where 절에 사용되는 열에 인덱스를 만든다. 

     - where 절에 결과가 자주사용하는 경우에야 가치가 있다.

     - 데이터 중복도 높은 열 x

     - 외래키가 있는 열



트랜잭션과 잠금

 * 트랜잭션이란 ? 전부 되거나, 전부 안되거나. 원자성. 일관성. 격리성. 영속성

 

 * 트랜잭션의 문법과 종류?

   1. 자동 커밋 트랜잭션 : 각 쿼리마다 자동적으로 붙여지는 것.

   2. 명시적 트랜잭션 : 직접 BEGIN TRAN  ~ COMMIT TRAN 사용

   3. 암시적 트랜잭션 : SET IMPLICIT_TRANSACIONSON

   4. 일괄 처리 범위 트랜잭션


2) 잠금

   사용자가 데이터를 사용하면 다른 사용자가 변경 못하게 만듬.


3) 블로킹 : 잠금이 생성되어 다른 개체 접근 못함.



저장 프로시저

 저장 프로시저란 ? 프로그래밍 기능 제공.

                            쿼리 문의 집합. 일괄 처리하기 위한 용도, 모듈화


 특징?

  1. SQL 성능을 향상시킬 수 있다. > 최적화. 컴파일 내용이 캐시에 저장. 다시 가져다 쓰므로 속도가 빨라짐.

  2. 모듈식 프로그래밍 기능 => 언제든 실행 가능.

  3. 보안 강화. 프로시저 접근 권한

  4. 네트워크 전송량 줄임

반응형

'이전게시판 > MySQL MSSQL' 카테고리의 다른 글

MSSQL MYSQL 차이  (0) 2016.05.11
MSSQL 기초 정리  (0) 2016.05.10
MSSQL JOIN (INNER JOIN, OUTER JOIN)  (0) 2016.04.06
▲ top