JS 스터디 시작

taeyul_de·2025년 1월 16일
0

StudyJS

목록 보기
1/1
post-thumbnail

You don't know JS Yet 라는 책으로 자바스크립트 스터디를 시작함과 동시에
인생 첫 블로그도 시작하게 되었다.

JS스터디는 과거 악명높은 딥다이브로 고통 받은적이 있었는데... 이번엔 성공적인 배움을 위해 조금은 진입장벽이 낮아보이는 YDKJSY(You don't know JS Yet)를 정복해보려고 한다.


1월 16일 - 1.4까지의 주요 내용 요약

CHAPTER 1 자바스크립트

•	1.1 책에 대하여
•	1.2 자바스크립트 이름의 유래
•	1.3 명세서
•	1.4 JS의 다양한 얼굴

1.1 책에 대하여

자바스크립트를 온전히 이해하고 있는 사람은 없다.
자바스크립트 정복은 목적지과 되어서는 안되고 바라봐야 할 방향이 되어야 한다.
빠르게 독파하겠다는 생각은 내려놓고
인내와 끈기가 최고의 미덕이라는 생각과 함께 여정을 시작해보자.

1.2 자바스크립트 이름의 유래

나도 처음 개발공부를 시작하고자 마음 먹었을때 Java와 JavaScript가 동일한 언어인 줄 알았다.
하지만 알고보니 둘은 전혀 관계 없는 언어였다고..
사실 자바스크립트(JavaScript)라는 언어는 마케팅 목적으로 사람들을 속이기 위해 고안한 이름이라고 한다.
브렌던 아이크는 처음엔 모카라는 암호명으로 자바스크립트를 불렀다.
얘가 재직 중이던 넷스케이프에서는 라이브스크립트라는 브랜드명을 붙였고 나중에 외부에 공개할 때가 되어서야 자바스크립트라는 공식 명칭으로 불리게 되었다고 한다.

1994년 출시된 Netscape는 페이지와 페이지에 링크를 걸어서 페이지 이동만 가능한 정적인 웹사이트만 가능했습니다.

그래서 넷스케이프의 설립자 Marc는 계속 “어떻게 하면 동적인 웹사이트를 만들 수 있을까?”를 고민했고, 이미 사용자에게 보여지는 웹사이트 안에서 DOM 요소들을 조작하면서 다이나믹한 요소들을 만들기 위해 새로운 Scripting 언어를 추가하기로 했습니다.

그 때 한창 뜨고 있던 JAVA언어는 웹사이트를 주로 개발하던 개발자들이 쓰기엔 무거웠고, 그래서 기존에 있던 Scheme언어의 문법을 좀 더 자바스럽게 변형해서 Mocha라는 새로운 언어를 탄생시켰습니다.
(시간이 없으니 10일 안에 만들어보자! 라고 했다는 것에서 충격을 받았습니다. 언어를… 10일 만에…. )

이후 언어의 이름을 liveScript로 바꾸었고, Netscape 브라우저 안에 liveScript를 이해하고 실행할 수 있는 엔진인 interpreter가 포함되어 출시하게되게 되었습니다.

이후 Java 언어의 인기에 올라타기 위해 마케팅 목적으로 JavaScript라고 이름을 바꿉니다.

1.3 명세서

📄 명세서(Specification)란 무엇인가?

명세서는 소프트웨어나 프로그램이 어떻게 동작해야 하는지, 어떤 기능을 가져야 하는지를 상세하게 설명한 문서이다. 쉽게 말해, 명세서는 “이 프로그램은 이렇게 작동해야 해!“라는 지침서라고 생각하면 된다.

TC39는 ECMAScript 명세서를 작성하고 업데이트하는 주요 주체이다. 두 개념의 관계를 쉽게 이해하기 위한 예로

ex)
• ECMAScript 명세서는 언어의 설계도.
• TC39는 설계도 작성 팀.

즉, TC39는 ECMAScript 명세서를 만들고, 수정하며, 새로운 기능을 추가하는 기획자 역할을 한다. 명세서는 그들이 만든 규칙과 지침을 모든 개발자와 도구 제작자가 따를 수 있도록 문서화한 것이다.

구체적인 관계:
1. 기능 제안:
• 개발자나 TC39 회원이 새로운 기능을 제안합니다.
• 예를 들어, async/await는 비동기 처리를 쉽게 하기 위해 TC39에서 제안한 기능입니다.
2. 검토 및 발전:
• 제안된 기능은 TC39의 여러 회의를 통해 논의되고, 필요에 따라 수정됩니다.
• 각 기능은 Stage 0부터 Stage 4까지의 단계를 거쳐 표준으로 채택됩니다.
3. 표준화:
• 최종적으로 승인된 기능은 ECMAScript 명세서에 포함됩니다.
• 브라우저 제조사와 JavaScript 엔진 개발자들은 이 명세서를 따라 기능을 구현합니다.
4. 배포 및 사용:

•	표준화된 기능은 최신 브라우저나 JavaScript 런타임에서 지원되며, 개발자들이 사용할 수 있게 됩니다.

TC39란 “Technical Committee 39”의 약자로, ECMAScript 표준을 개발하고 관리하는 국제적인 위원회입니다. ECMAScript는 JavaScript의 공식 표준으로, JavaScript 언어의 기능과 동작 방식을 정의합니다.
TC39는 JavaScript의 ‘언어 규칙’을 만드는 팀입니다.

1.4 JS의 다양한 얼굴

🌐 JavaScript와 다양한 패러다임

JavaScript는 다중 패러다임 언어로, 여러 가지 프로그래밍 패러다임을 지원한다. 즉, 명령형, 객체지향, 함수형 프로그래밍을 모두 활용할 수 있다는 뜻이다. 이는 JavaScript가 매우 유연하고 강력한 언어임을 의미한다.

  1. 명령형 프로그래밍 예시
let total = 0;
for (let i = 1; i <= 5; i++) {
	total += i;
}
console.log(total) // 출력 : 15
  1. 객체지향 프로그래밍 예시
class Car {
    constructor(model, year) {
        this.model = model;
        this.year = year;
    }

    displayInfo() {
        console.log(`${this.model}은(는) ${this.year}년에 만들어졌습니다.`);
    }
}

const myCar = new Car('토요타', 2020);
myCar.displayInfo(); // 출력: 토요타은(는) 2020년에 만들어졌습니다.
  1. 함수형 프로그래밍 예시
const numbers = [1, 2, 3, 4, 5];
const squared = numbers.map(num => num * num);
console.log(squared); // 출력: [1, 4, 9, 16, 25]
profile
이래서 되겠나 싶은 개발지망생

0개의 댓글