본문 바로가기

서버

서버 구축하기

계속 서버도 해봐야지 하면서 생각은 했지만, 동기부여가 되지 않아서 시작을 못하고 있었다. 

그런데, 언제까지 서버때문에 발목을 붙잡힐 수는 없어서 스타트를 하게 되었다. (혹시 틀린부분이 있으면 지적해주세요 ! )

파이썬하고 노드하고 고민하다가, 노드로 결정 !

1. node.js 시작하기 

시작하기 위해서 공식사이트에서 node를 설치 해야한다. 공식사이트는 ->  https://nodejs.org  

나는 이미 맥북에 깔려있었기 때문에 버전만 확인하고 바로 시작하였다. 

버전확인은 터미널 열고  node -v 하면 알수 있다. (노드 버전 v12.12.0)

2. node 기초문법

node.js를 이해하기 위해서는 javascript 문법을 먼저 알아야한다.

기본적인 문법? 규칙에는

[변수의 선언과 사용]

- 변수의 타입은 var로 선언한다.  

- 문장의 끝은 항상 세미콜론으로 끝낸다. (계속해서 사용해온 swift는 세미콜론이 없기 때문에..주의해서 작업을 해야겠다고 느꼈다.)

- 등호 = 를 이용해서 변수에 값을 넣으려면 문자열 입력시에는 앞뒤로 ' ', " " 외따옴표나 쌍따옴표를 붙여준다. 

- 문자와 숫자를 더할 경우 결과값은 문자가 된다. (오 자바스크립트를 자세히는 몰랐어서 이번에 공부하면서 알게되었다.)

[조건문] : if, switch 

[반복문] : for, while, do ~ while 

[클래스] : 자바스크립트는 함수형 언어 이기 때문에, 객체지향을 위한 class는 없다고 한다. 함수자체를 하나의 객체로 취급하고 단일함수 또는 파일 자체를 하나의 class처럼 사용 할 수 있다.

(클래스 내용은 이론으로는 와닿지 않아서 코드로 테스트를 해봤다.)

function Class_test(msg) {
    this.name = 'I am aezzing';
    this.message = msg;

    message2 = 'find Me';
    this.print = function(){
        console.log(message2)
    };
}

var myClass_test = new Class_test('test is good'); //객체생성
console.log(myClass_test.message);
console.log(myClass_test.message2);

myClass_test.print()

만든 .js파일을 실행 시켰을때 나오는 결과화면

undefined는 this를 사용하지 않아서 외부에서 참조할 수 없다.

[node.js에서 객체를 사용하는 방법]

require를 사용해서 파일 전체를 객체로 불러올 수 있다. 파일 내부의 멤버들은 exports로 정의할 수도 있고, 자바스크립트에서 처럼 this나 prototype으로 선언하고 module.exports 명령어로 한번에 처리 할 수도 있습니다. (이 부분도 이해가 가지 않아..직접 해봤다...)

먼저,  NodeClass.js파일을 하나 만든다.

function Class_use() {
    this.name = 'Hello aezzing!!!!!!!!!!';
    this.message;
}

Class_use.prototype.setMessage = function(msg) {
    this.message = msg;
}

Class_use.prototype.getMessage = function() {
    return this.message;
}

module.exports = Class_use; 
//exports 명령어를 사용함으로써 다른파일에서 require 예약어를 이용해서 Class_test객체를 사용할수 있게된다.
//exports 명령어의 위치는 어떤곳에 위치해도 동일하게 작동한다. 

다음엔 NodeClass.js 파일을 호출해서 사용할 use_class.js 파일을 만든다. 

var NodeClass = require('./NodeClass'); // require를 통해 클래스 객체를 사용

var nodeClass = new NodeClass();

nodeClass.setMessage('I am Good!!!!!!!!!!!!!');

console.log(nodeClass.getMessage());

객체를 사용하는 방법의 결과

 

이렇게 node.js를 입문해 봤다.

일단 시작했으니.. 결과물은 만들고 끝낼 것인데 앞으로 이런 과정들이 개발자로 성장하는데 도움이 되길 바란다. 

맨날 레퍼런스만 읽고 아~하고 그 순간만 이해했다고 생각하고 넘어 갔었는데, 이렇게 글을 쓰면서 직접 해보니 도움이 많이 되는 것 같다. 

node.js로 서버구축을 하고 마무리 하길 노력해야 겠다. 

 

*참고 사이트

https://javafa.gitbooks.io/nodejs_server_basic/content/chapter2.html