배워도끝이없네 2021. 8. 17. 22:29

웹서버와 WAS의 차이점

 

WAS는 서버가 어플리케이션 역활까지 하는것

WS는 어플리케이션이 없다.

실제로 nginx를 80포트로 두면

사용자가 nginx로 들어온

 

웹서버는 나중에 우리가 노드서버를 띄울것이다 혹은 플라스크

 

nginx는 index.html을 서비스한다.

사용자가 /api/users라는 api를 요청하면 네임스페이스에 따라서 노드냐 플라스크냐를 바꿀수가 있다.

(nginx.conf에 건다) reverse proxy... 프록시 역활을 한다.

포트를 주면 엔진엑스를 거치지 않고 노드로 바로 들어간다.

엔진엑스만 가지고 웹서버라고 부른다. (소스코드의 실행에 대한 권한이 없다)

어플리케이션이란 여러가지 비즈니스 로직이 필요한건데 엔진엑스는 프록시역활만 했기때문에 웹서버라고 한다.

정적인 파일들은 엔진엑스에 있는 스테틱한 폴더들에 모아놧다가 바로 나가면 더 좋다.

개인정보들은 엔진엑스가 가지고있으면 누구든 외부에서 볼 수 있기 때문에 WAS에 있어야 한다.

웹서버와 와스의 속도의 차이도 많이 난다.

 

정수는 4바이트

자바스크립트는 배정수 사용

primitive 는 immutable (바꾸지않고 새로 메모리를 할당시킨다)

object는 mutable (call by ref)

 

매핑테이블은 자바스크립트 엔진의 실행컨텍스트에서 관리한다.

 

 

json은 키에 숫자를 넣을수 있다(식별자라고 하지않고 프로퍼티라고 한다)

 

변수에 $를 붙이는 애들은 돔을 말한다.

_를 붙이는 경우는 내부에서 쓸때 쓴다..

 

값을 나타내는 것들은 리터럴이라고 부른다.

 

모든 프로그래밍 언어은 파서라는것이 있다.

 

코딩을 하면 컴파일/인터프리팅을 거친다.

하고나면 바이트코드로 바뀐다. 

바이트코드가 실행되면 기계어가 된다.

 

코드를 컴파일하기전에 파싱이라는것이 이루어진다.

파싱을할때는 한글자 글자를 모두 자른다.

다른 애들을 토큰이라고한다

스트링을 토큰화하는걸 string tokenizer

 

자른 토큰들은 토큰 트리에서 검색해서 기계어로 치환시켜주는것이다.

파싱하기전에 세미콜론을 자바스크립트는 자동으로 붙여준다.

 

자바스크립트에서 class는 함수에 포함된다.

 

null과 undefined의 차이

- undefined 는 최초에 초기화되지 않은 것.

- null은 메모리에서 아무것도 없는것, 표시할땐 \o 로 표시한다.

 

문자열은 한글자당 1바이트에 null 을 만날때까지를 가져온다.(null까지 포함하면 4바이트)

primitive type은 생각보다 작은값들을 가지고있다

object type은 primitive type보다 일반적으로 큰 느낌

오브젝트 타입은 별도의 힙이라는 공간에 두고 레퍼런스한다(자주 바뀌기 때문에)

 

primitive type은 immutable인것은 자바스크립트만 그렇다.

 

이유 => 할당해놓고 나중에 다시 재할당하면 중간에 다른변수가 할당되었을떄 메모리주소가 떨어지기때문에(링크드리스트로 찾아가긴 하지만) 다시 찾아서 불러오는게 힘들기 때문에 새로 할당하는것

 

평가시점에 특정변수등이나 많이쓰면 cash메모리에 담아둔다.

 

심볼테이블은 해쉬구조이다 (키/밸류)

 

펑셔널 랭귀지의 장점은 변수에 숫자타입이었다가 오브젝트타입으로 갈수 있다는 점이 큰 장점이다.

 

에자일한 프로그래밍의 시초가되는것이 익스트림프로그래밍

그중 하나가 리팩토링이다.

 

코드를 짜고나서 고칠게 있는지 꼭 계속 다시봐야한다.

 

변수선언을 안하는게 메모리사용관점에서 좋다 ->가비지컬렉션이 빨리 일어나기 떄문)

 

F22는 어셈블리어로 짠 프로그램들이 들어가다가

F35에는 C로 갔다

우주선에는 C로 많이 짠다.