본문 바로가기

바닐라 코드/Java Script

1. 자바스크립트란?

1. 자바스크립트의 탄생

자바스크립트는 1995년, 넷스케이프(Netscape)라는 브라우저 회사에서 탄생했는데, 웹 페이지를 좀더 동적으로 만들 수 있는 스크립트를 만드는 것이 목표었다.  (넷스케이프는 마이크로소프트의 인터넷 익스플로러(IE)에 밀려 역사 속으로 사라짐)

  • HTML과 CSS는 정적인 구조와 스타일만 제공.
  • 자바스크립트는 이를 보완해 사용자와 상호작용할 수 있는 웹을 가능하게 한다.

특징

  1. 브라우저에서만 동작하도록 설계됨.
  2. 주로 보조적인 기능(예: 버튼 클릭, 폼 검증)에 사용.

초기 사용 예시

// 버튼 클릭 시 경고창 띄우기
function showAlert() {
    alert("버튼이 클릭되었습니다!");
}

HTML과 연결:

<button onclick="showAlert()">클릭하세요</button>

2. ECMA 표준화와 발전

ECMA는 컴퓨터 시스템의 표준을 관리하는 비영리 기구로,
1997년부터 자바스크립트의 표준화를 담당하며 이름을 ECMAScript(ES)라 명명했다.

  • ECMAScript는 자바스크립트의 기능을 규정하는 표준이다.
  • 매년 새로운 버전이 발표되며, 최신 기능이 추가된다.

현대 자바스크립트의 발전

  • 2015년 ES6(ECMAScript 2015): 클래스, 화살표 함수, let/const 등이 추가되며 대대적인 업그레이드 됨.
  • 이후 매년 업데이트: 모듈, 비동기 처리, 데이터 구조 등 풍부한 기능 추가됨.

예시: 최신 문법 화살표 함수

// ES6 이후의 화살표 함수
const greet = (name) => {
    return `안녕하세요, ${name}님!`;
};

console.log(greet("지민")); // "안녕하세요, 지민님!"

3. 자바스크립트 신분 상승

자바스크립트는 단순한 웹 브라우저 스크립트에서 벗어나, 플랫폼을 확장했다.

  1. Node.js의 등장(2009년):
    자바스크립트 엔진(자바스크립트를 해석하고 실행하는 도구)을 브라우저에서 분리하여,
    서버에서도 자바스크립트를 사용할 수 있게 됐다.
  2. 프론트엔드 + 백엔드 개발:
    자바스크립트 하나로 전체 애플리케이션 개발이 가능.
  3. 데스크톱 및 모바일 앱 개발:
    Electron, React Native 등의 프레임워크를 통해 앱 개발에도 활용.

예시 : Node.js를 이용한 서버 개발

const http = require("http");

const server = http.createServer((req, res) => {
    res.writeHead(200, { "Content-Type": "text/plain" });
    res.end("안녕하세요, Node.js 서버입니다!");
});

server.listen(3000, () => {
    console.log("서버가 http://localhost:3000 에서 실행 중입니다.");
});

4. 자바스크립트의 특징

1) 동적 타입 언어

  • 변수 선언 시 타입을 명시하지 않음.
  • 하나의 변수에 다양한 자료형을 할당 가능.
let value = 42;      // 숫자
value = "Hello";     // 문자열
value = true;        // 불리언
  • 장점: 유연하고 빠르게 코드를 작성할 수 있다.
  • 단점: 타입 에러가 발생할 가능성이 높다.

해결책: 타입스크립트(TypeScript) 같은 정적 타입 언어를 사용해 보완.

  • 타입스크립트는 코드 작성 시 타입을 명확히 지정하도록 개발할 때 쓰는 도구일 뿐.
  • 작성된 타입스크립트 코드는 최종적으로 컴파일되어 자바스크립트로 변환된다.

 

2) 함수형과 객체 지향형 프로그래밍 가능

자바스크립트는 다양한 스타일로 개발할 수 있다.

함수형 프로그래밍 예시:

const numbers = [1, 2, 3, 4];
const doubled = numbers.map((num) => num * 2);

console.log(doubled); // [2, 4, 6, 8]

객체 지향형 프로그래밍 예시:

class User {
    constructor(name, age) {
        this.name = name;
        this.age = age;
    }

    greet() {
        return `안녕하세요, ${this.name}님!`;
    }
}

const user = new User("지민", 25);
console.log(user.greet()); // "안녕하세요, 지민님!"

요약

  • 자바스크립트의 변천사: 브라우저 스크립트 → 플랫폼 확장(Node.js) → 앱 개발
  • ECMAScript 표준: 최신 기능을 정의하며 매년 업데이트
  • 특징: 동적 타입, 유연한 프로그래밍 스타일(함수형, 객체 지향형)

실무 팁

  • ES6+ 문법을 익히고 연습하자.
  • Node.js와 같은 환경에서 서버 개발도 가능하다.
  • 프로젝트 규모가 커지면 타입스크립트를 도입해 안정성을 높이는 것도 고려.

 

'바닐라 코드 > Java Script' 카테고리의 다른 글

5. 변수와 상수  (3) 2024.12.05
4. use strict  (1) 2024.12.04
3. 문과 식  (2) 2024.12.03
2. html에 자바스크립트 추가하기  (1) 2024.12.02
0. 자바스크립트 용어  (3) 2024.12.01