오늘은 첫시간이라 챕터는 1.1~1.4까지 하기로 했다.
1.1 책에 대하여
1.2자바스크립트 이름의 유래
1.3 명세서
1.4 JS의 다양한 얼굴
1.1은 생략하고 1.2부터 시작한다.
1.1 JS랑 JAVA랑 연관이 있나요?
일단 javascript의 어원부터 보면 좋을 거 같다.
java + script인데 각각 이런 내용이다.
java : oracle의 java가 당시에 유행이어서 어그로성으로 지었다(사실 java랑 상관 없음)
script : 넷스케이프에서 웹사이트의 생동감 있는 느낌을 표현하기 위해 이름을 바꿨다.
이 두가지를 더해서 javascript가 된 것이다.
간단히 표로 보겠다.
1995 | Mocha | 넷스케이프라는 회사의 브랜던 아이크가 10일만에 만듦 |
1995년 후반 | LiveScript | 생동력 있는 스크립트 강조 ,웹페이지에 동적인 기능을 추가 |
1995년 12월 | JavaScript | 인기있는 자바의 유행의 이름을 쓴 것 |
1996년 | 표준화의 시작 | 넷스케이프가 ECMA 인터내셔널에 제출 , ECMAScript 라는 정의 됨 |
1.2JS의 이름의 유래(그렇지만 자바와 크게 다르지 않다.)
두 언어 모두 C언어(혹은 C++)와 유사한 문법을 기대하는 개발자 대상으로 만들어졌다.
- 시작과 끝을 여는 중괄호 {
- 닫는 중괄호 }
- 문이 끌날 때 세미콜론 ;
(JS 이름에 '자바'가 들어가서 '자바'를 갖고 있는 Oracle이 이름 소유권을 갖고 있다.)
1.3 명세서 -> 웹의 역사
ECMA에서 누가 영향력을 갖냐라는 내용이었는데 엄청 중요하지 않다 생각해서 생략한다.
대신에 웹의 역사를 가져왔다.
1993: 모자이크 브라우저
1994: 넷스케이프사 -> 넷스케이프 내비게이터
1995: 마이크로소프트 -> 인터넷 익스플로러(IE)
1995: 자바스크립트 -> 넷스케이프 내비게이터
1996: 마이크로소프트사 -> jscript 출시 (javascript 아님) , 96년 말 넷스케이프껄로 표준화 시작
1997: ecmascript1 (ES1) (jscript, js가 점점 비슷해짐)
1998: ecmascript2
1999: ecmascript3 (이때부터 익스플로러 js 완벽호환)
2000: ecmascript4 (ES4) (expolore 점유율이 80프로를 넘었는데, 네비게이터 기준으로 발표하니 MS가 화남)
2009: ecmascript5 (크롬,파이어폭스 , 사파리 , 익스플로러 등 화해하고 표준을 잡음)
2015: ecmascript6
2016: ecmascript7 (ES2016)
원래는 넷스케이프가 압도적인 점유율을 갖고 있었는데 유료인 점이 소비자들에게 거부감을 갖게 했다고 한다.
1.3.3 모든 코드가 JS인 것은 아닙니다.
우리가 사용하는 개발자도구,REPL까지 과연 JS로 다 코딩 되어 있을까?
아니다.
C , C++로도 되어 있다.
이 책에서 말한 내용은 그거다. JS를 쓸 수 있는 환경 모두가 JS로 이루어진 것이 아니라고.
따라서 위 도구들은 JS의 모든 기능을 전부 지원하는 것이 아니다.
JS 규정을 엄격하게 준수하지 않으니 결과가 예상과 다를 수 있다는 것이다.
1.4 JS의 다양한 얼굴(페러다임)
페러다임이란? - 코드를 어떻게 구조화할지에 대한 접근방식과 사고 방식을 의미
지피티한테 페러다임에 대해 정의한 표를 요청했다.
객체지향 | 절차적 | 함수형 | |
핵심 특징 | 캡슐화, 상속, 다형성. | 함수와 프로시저에 집중; 모듈화 접근. | 순수 함수, 불변성, 부작용 없음. |
코드 구조 | 코드가 클래스와 객체로 구성됨. | 코드가 함수 또는 프로시저로 구성됨. | 코드가 순수 함수와 고차 함수로 구성됨. |
상태 관리 | 상태는 객체에 연결되고, 시간에 따라 변경될 수 있음. | 상태는 전역 또는 함수 간에 전달됨. | 상태는 불변이며 함수형 구조로 관리됨. |
사용 예시 언어 | Java, Python, C++, C# | C, Pascal, Fortran | Haskell, Scala, JavaScript (ES6+), Python (라이브러리 사용) |
'Study > JavaScript' 카테고리의 다른 글
You don't know JS yet(1.5~1.8) (0) | 2025.01.23 |
---|