한 눈에 끝내는 Node.js
    • 01
      시작하기에 앞서
    • 강의 대상
      자바스크립트란?
      자바스크립트의 역사
      자바스크립트의 특징
      자바스크립트 엔진이란?
      실습 환경 구축 - 구름IDE
    • 02
      자바스크립트의 기초
    • 기본 문법
      연산자
      데이터 타입
      조건문
      조건문 실습 - 양수 구별하기
      조건문 실습 - 자판기
      반복문
      반복문 실습 - 역순으로 출력하기
      함수
      함수 실습 - 제곱 값 출력하기
    • 03
      객체지향 자바스크립트
    • 객체지향이란?
      객체지향의 요소
      컨스트럭터(생성자)
      스코프와 호이스팅
      클로저
    • 04
      Node.js 소개
    • Node.js 란?
      이벤트 기반 비동기 방식
      Node.js 의 특징
      Node.js의 아키텍쳐
    • 05
      Node.js 설치
    • Node.js 설치
      REPL 활용하기
    • 06
      기본 모듈과 Node.js 기초
    • 노드의 모듈 개념
      전역 객체 : Global
      OS 모듈
      Utility 모듈
      File System 모듈
      Event 모듈
      노드에서의 상속
    • 07
      확장모듈 - npm 활용하기
    • npm 소개 및 설치
      확장모듈 설치
      확장모듈 관리
      package.json
      확장모듈 - nodemon
    • 08
      주요 확장 모듈 - express
    • express 설치
      새 프로젝트
      내부 구성
      페이지 라우팅
      간단한 웹 페이지 이동
    • 09
      주요 확장 모듈 - express Pug
    • 표현방법 및 계층구조
      태그 ID, 클래스, 속성
      태그 콘텐츠
      자바스크립트와 CSS
      설치 및 예제
      Pug를 이용한 웹페이지 실습
    • 10
      주요 확장 모듈 - socket.io
    • 클라이언트/서버 통신
      Web Socket이란?
      이벤트 주고 받기
      socket.io를 이용한 채팅 구현 - 구현에 앞서
      socket.io를 이용한 채팅 구현 - 기본
      socket.io를 이용한 채팅 구현 - 추가 기능
      socket.io를 이용한 채팅 구현 - 도전 문제
    • 11
      실전 프로젝트 - 빙고 게임 만들기
    • 구현에 앞서
      빙고 게임 - 코드
      빙고 게임 - 설명
      빙고 게임 - 도전 문제
    • 12
      주요 확장 모듈 - mongoose
    • mongoDB란?
      mongoose 살펴보기
      온라인 메모장 만들기 - 구현에 앞서
      온라인 메모장 만들기 - 코드
      온라인 메모장 만들기 - 설명
      온라인 메모장 만들기 - 도전 문제
    • 13
      주요 확장 모듈 - Redis
    • Redis란?
      Redis 설치하기
      Redis 기본 사용 방법
      Publisher / Subscriber
    • 14
      실전 프로젝트 - 간단한 SNS 개발
    • 구현에 앞서
      SNS 개발 - passport.js를 이용한 구글 로그인 준비
      SNS 개발 - 코드
      SNS 개발 - 설명
      SNS 개발 - 키 값을 json 파일로 분리하기
      SNS 개발 - 도전 문제
      마무리
    자바스크립트란?
    01 시작하기에 앞서
    자바스크립트란?
    default

    자바스크립트(Javascript)는 아주 강력한 프로그래밍 언어입니다. 웹 프로그래밍에 대해 조금이라도 들어보신 분들은 프론트엔드를 얘기할 때 HTML, CSS, JavaScript를 떠올릴 것입니다. HTML은 웹페이지의 큰 뼈대를 제공하고, CSS는 색깔이나 글씨체, 모양과 같은 디자인적인 요소를 관리하며, 자바스크립트는 웹 페이지의 동작을 담당합니다. 즉, 자바스크립트는 동적으로 콘텐츠를 바꾸고, 멀티미디어나 움직이는 이미지 등 웹페이지를 꾸며주도록 도와줍니다.

    자바스크립트는 객체 기반의 스크립트 프로그래밍 언어로서 주로 웹 개발에 많이 사용되는 것으로 알려져 있지만, 다른 응용프로그램의 내장 객체에도 접근할 수 있는 기능도 가지고 있기 때문에 응용 범위가 무궁무진합니다. 이 강좌에서 주로 다루게 될 Node.js 또한 자바스크립트를 품고 있는 개발 플랫폼입니다.

    자바스크립트는 많은 오해를 받는 언어이기도 합니다. 자바라는 프로그래밍 언어와 이름이 유사하다는 점으로 인해 자바의 웹 버전 정도로 인식되던 때도 있었고, 주로 홈페이지 개발에 많이 쓰였던 역사가 있다 보니 웹 개발자들이나 웹 디자이너들이 다루는 아마추어 개발자들을 위한 언어로 인식되어 무시당하기도 했습니다. 하지만 자바스크립트는 오늘날 가장 강력한 프로그래밍 언어 중 하나로 평가받고 있습니다. 불과 20여 년 정도의 짧은 시간 동안임에도 자바스크립트를 기반으로 하는 훌륭한 기술이 많이 등장했고, 2018년 시행된 스택오버플로우의 설문조사에서 개발자들에게 가장 인기 있는 언어로 뽑힐 정도로 성장했습니다. 물론 18년뿐만이 아니라 최근 몇 년간 계속 1위를 차지해 왔지요. 지금은 각종 분야에서 그 능력과 가치를 인정받고 있습니다. 

    default
    추가로 가장 인기 있는 개발 프레임워크 및 라이브러리 순위에서는 Node.js가 1위를 차지했습니다.
    default

    오늘날 우리가 자주 사용하고 있는 해외의 구글의 각종 서비스, 페이스북, 트위터, 국내의 네이버, 다음 등에서 개발한 각종 웹 애플리케이션 등은 모두 AJAX를 적극적으로 활용한 동적인 웹을 표방하는 훌륭한 서비스들입니다. 초기의 자바스크립트는 브라우저에 내장되어 웹 페이지의 입력 값을 체크하는 정도로만 사용했었으나, 몇 년 전 AJAX라는 테크닉이 소개되면서부터 자바스크립트의 영향력은 눈부시게 증가하기 시작했습니다.

    AJAX에 대해서는 뒤에서 또 다루겠지만, Asynchronous JavaScript and XML의 약어로서 그 이름에서 알 수 있듯이 자바스크립트가 중심 역할을 담당하고 있는 기술입니다. 이처럼 자바스크립트는 웹 서비스 또는 웹 애플리케이션 개발에 있어 큰 변혁을 가져다준 프로그래밍 언어입니다.


    자바스크립트와 웹 애플리케이션


    React Native, PhoneGap, Ionic 등과 같은 하이브리드 모바일 애플리케이션 개발 프레임워크들은 자바스크립트로 작성한 모바일 애플리케이션을 iOS와 Android를 대상으로 동시 동작할 수 있도록 지원해줍니다. 게다가 Unity 3D라고 하는 게임 엔진을 활용하면 자바스크립트를 통해 플랫폼을 가리지 않는 게임 개발이 가능합니다.

    자바스크립트의 활용은 여기가 끝이 아닙니다. 마이크로소프트의 경우 안드로이드 장치를 조작할 수 있는 자바 스크립트 기반의 API를 제공하여 사용자의 상태나 취향에 맞춰 안드로이드 장치가 상황에 맞게 자동으로 동작할 수 있도록 하는 플랫폼을 발표하기도 하였습니다. 그 밖에도 React와 Angular JS와 같은 자바스크립트 기반 웹 개발 프레임워크와 라이브러리가 발표되면서 더욱 인기를 끌고 있습니다. 이처럼 자바스크립트는 그 영향력이 다양한 분야에서 강화되고 있고, 어느 분야에 있는 개발자든 누구나 알아야 할 주요한 언어가 되고 있습니다. 

    default
    질문하기