5기 임자경
2시간 전•

11월 7일 공부일지

오늘 공부에 투자한 순수한 시간:  1시간

학습한 개념 자바스크립트 역사

배경 : 1995년 웹페이지는 정적인 문서였는데,
넷스케이프는 페이지 안에서 간단한 동작을 처리할 언어가 필요했다. 폼입력을 서버로 보내기 전에 확인 하는 기능이다. 디자이너나 초보자도 html에 바로 써넣을 수 있는 가벼운 스크립트 언어를 원했다.
꼬리질문 : 폼입력을 서버로 보내기전에 확인하는 기능이 무엇인가
js이전(!995년이전)

회원가입 폼에서 이메일 칸을 비워두고 가입 버튼을 누른다고 가정했을때
1. 브라우저가 입력값을 그대로 서버로 전송
2. 서버가 검사한 뒤 이메일을 입력하세요 라는 새 페이지를 돌려준다
3. 사용자는 뒤로가서 다시 입력한다.

:버튼을 누르는 순간 브라우저 안에서 바로 검사하고, 문제가 있으면 전송 자체를 막는다. 서버 왕복이 없으니 결과는 즉시 나온다.


만든사람 : 넷스케이프가 브렌던 아이크를 영입했다. 그는 1995년 5월 약 10일 만에 첫 프로토타입을 만들었다.

왜 이런모양이 되었나
세가지 영향이 섞여있다
java 문법 (중괄호,if/for) 비슷한데 java처럼 보이게 하라는 경영진의 요구가 있었다.
scheme함수를 값 처럼 다루는 일급 함수 개념을 여기서 가져옴
꼬리질문 함수를 숫자나 문자열처럼 값으로 다룰수 있다는 뜻. 숫자를 변수에 담고 다른 곳에 넘길 수 있는 것처럼 함수도 그렇게 할 수 있습니다.
여기서 넘긴다는건 함수가 받은 재료로 일을 하는것.
숫자대신 함수를 넘길수도 있음
숫자대신 다른 함수를 재료로 넣을수 있음

self 클래스 대신 객체가 다른 객체를 물려받는 프로토타입 상속을 가져왔다.
프로토타입 상속
꼬리질문 : 먼저 클래스 방식(java등)은 설계도를 먼저 만들고, 그 설계도로 물건을 찍어내는 방식.
js의 프로토타입 방식은 설계도 없이 이미 있는 객체를 원본으로 삼아 새 객체를 만듭니다. 새 객체에 없는 기능은 원본에게 빌려씁니다.


이름의 변천과정 : Mocha -> LiveScript ->JavaScript(1995년 12월)
Java와 기술적 관계는 거의없습니다. 당시 썬 마이크로시스템즈와 제휴했고 java의 인기에 편승하려는 마케팅 목적으로 붙인 이름이다.

핵심포인트는 10일만에 급하게 만들어졌다는 점. 지금도 남아 있는 js의 이상한 동작들(==의 타입 변환, typeof null ===“object” 등 상당수가 이 출발점에서 비롯됐습니다. 웹 호환성 때문에 한번 들어간 동작은 고칠 수 없었다.

꼬리질문 이상한 동작
1. 의 타입 변환
js에는 같은지 비교하는 방법이 두가지 존재함
등호3개 : 값과 종류가 둘 다 같아야 true
등호 2개 종류가 다르면 js가 다르면 몰래 종류를 맞춘 뒤 비교

->몰래 바꾸는 규칙이 너무 복잡해서 예상 못한 결과가 나온다. 그래서 실무에서는 항상 =이것만 쓴다.
2. Typeof null===“object”
typeof는 값의 종류를 알려주는 명령어이다.
null은 값이 비어있음 이라는 뜻이라 객체가 아니다. 그런데 object라고 나온다
그이유는 10일만에 급하게 만들면서 생긴 버그 null을 구분하는 방식이 겹쳐서 생긴문제이다.

두가지 모두 급하게 만든 초기 설계가 웹 호환성 때문에 30년째 남아 있는 것이다.
js의 중요한 원칙인 웹을 깨뜨리지마라 가 여기서 나왔다. 한번 들어간 동작은 이상해도 절대 바꾸지 않는다는 원칙이다.

AI 대화 내역 링크https://claude.ai/share/3eb6e466-919a-4ac9-aef0-b42ebcc90a00

(링크 생성 방법)

오늘 잘한 점: 오늘 바쁜일정이었지만 그래도 쉬지않고 공부했습니다

오늘 부족했던 점:시간이 부족했다 또 저녁에 할수있으면 더 하도록하겠습니다.ㅠㅠ

오늘 총평: 브라우저 공부할때 잠깐 봐서 인지 이해가 잘 되었습니다.주말에는 애기들과 함께있다보니 시간내는게 쉽지않았지만 그래도 틈을 내어 하겠습니당 

0
0

여기에 파일을 드롭하세요