요즘 스터디 때문에 블로그 글을 깃헙에다가도 옮기고, 타이포라로 메모를 한 것을 블로그에 옮기고 하는 등등 마크다운을 여러군데서 사용하다보니 티스토리만 글의 양식이 맞지 않는 일이 생기고 있습니다. 그래서 보다 나은 마크다운 환경을 지원하는 벨로그로 이사합니다. 주소는 velog.io/@fan 입니다! 관심사, 공부하는 것 계속 업데이트할 예정입니다.
When?? 실행 컨텍스트가 활성화될 때 (함수를 호출할 때) binding된다! How case 'this' is bound to 전역공간에서 호출 시 전역객체 (window / global) 함수 호출 시 전역객체 (window / global) - 함수는 전역객체의 메서드라고 생각하면 편하다, 함수 내부에 선언된 함수도 전역객체에 bind됨 메서드 호출 시 메서드 호출 주체 (a.b() -> 객체 a가 메서드 호출 주체) - 근데 메서드 내부에 선언된 함수는 전역객체에 bind됨;; callback함수 호출 시 기본적으로는 함수 내부와 동일하다. 전역객체가 bind됨. 하지만 제어권을 가진 함수(like addEventListener())가 따로 bind되는 this를 명시(구현)한 경우 해당 스펙..
Government Design Principles The UK government's design principles and examples of how they've been used. www.gov.uk 1 니즈분석 : 사용자에게 필요한 것에서 시작하라. (Start with user needs) 서비스 디자인은 사용자의 니즈를 정의하는 곳에서 시작한다. 사용자의 니즈를 모른다면 올바르게 만들 수 없다. 가정하지 말고, 리서치하고, 데이터를 분석하고, 사용자들과 이야기해라. 사용자들과 공감을 하되, 사용자들이 요청하는게 실제로 원하는게 아닐 수 있음을 명심해라. 2 포지셔닝 : 우리만 할 수 있는 것에 집중하라. (Do less) 정부는 정부만이 할 수 있는 일에만 집중해야한다. 어떤 업무를 잘 수..
실행 컨텍스트란? 함수를 실행할 때 필요한 환경정보 함수를 실행할 때 필요한 환경정보 객체 Call Stack? 실행 컨텍스트를 관리하는 자료구조 현재 어떤 함수가 동작 중인지 다음에 어떤 함수가 호출될 것인지를 제어한다. 실행 컨텍스트가 스택 방식으로 쌓인다! 실행 컨텍스트 객체의 구조 VariableEnvironment: 초기의 정보를 담고있음 LexicalEnvironment: 이후 변경사항을 추적 (VariableEnvironment와 구조가 같다) ThisBinding LexicalEnvironment의 구조 environmentRecord 객체 현재 컨텍스트의 식별자 정보를 갖는 객체, Hoisting(끌어올리기) 현상이 나타남. 해당 함수 내부의 함수선언과 변수 선언부를 객체 프로퍼티로 저장..
JS에는 두 가지 데이터 타입이 있다. Primitive Type string number boolean null undefined symbol Reference Type Object (Array, function, regExp, Set, weakSet, Map, weakMap) 이 둘을 왜 구분하는가? 메모리에 값을 저장하는 방식의 차이이다. Primitive Type 위와 같이, 메모리 공간이 컴퓨터에 있다고 가정하자. let a; a = 'hi' 위 코드를 js엔진이 읽어 실행하면 let a; // 메모리의 5001번 주소에 이름이 a가 된다. a = 'hi' // 메모리의 8001번 주소에 값 'hi'가 저장이 되고, 이름 a를 갖고있는 5001번 주소에..
-
[JS Flow] 03. This Binding
When?? 실행 컨텍스트가 활성화될 때 (함수를 호출할 때) binding된다! How case 'this' is bound to 전역공간에서 호출 시 전역객체 (window / global) 함수 호출 시 전역객체 (window / global) - 함수는 전역객체의 메서드라고 생각하면 편하다, 함수 내부에 선언된 함수도 전역객체에 bind됨 메서드 호출 시 메서드 호출 주체 (a.b() -> 객체 a가 메서드 호출 주체) - 근데 메서드 내부에 선언된 함수는 전역객체에 bind됨;; callback함수 호출 시 기본적으로는 함수 내부와 동일하다. 전역객체가 bind됨. 하지만 제어권을 가진 함수(like addEventListener())가 따로 bind되는 this를 명시(구현)한 경우 해당 스펙..
-
[번역] 영국 정부의 디지털 서비스 설계 원칙
Government Design Principles The UK government's design principles and examples of how they've been used. www.gov.uk 1 니즈분석 : 사용자에게 필요한 것에서 시작하라. (Start with user needs) 서비스 디자인은 사용자의 니즈를 정의하는 곳에서 시작한다. 사용자의 니즈를 모른다면 올바르게 만들 수 없다. 가정하지 말고, 리서치하고, 데이터를 분석하고, 사용자들과 이야기해라. 사용자들과 공감을 하되, 사용자들이 요청하는게 실제로 원하는게 아닐 수 있음을 명심해라. 2 포지셔닝 : 우리만 할 수 있는 것에 집중하라. (Do less) 정부는 정부만이 할 수 있는 일에만 집중해야한다. 어떤 업무를 잘 수..
-
[JS Flow] 02. 실행컨텍스트 (Execution Context)
실행 컨텍스트란? 함수를 실행할 때 필요한 환경정보 함수를 실행할 때 필요한 환경정보 객체 Call Stack? 실행 컨텍스트를 관리하는 자료구조 현재 어떤 함수가 동작 중인지 다음에 어떤 함수가 호출될 것인지를 제어한다. 실행 컨텍스트가 스택 방식으로 쌓인다! 실행 컨텍스트 객체의 구조 VariableEnvironment: 초기의 정보를 담고있음 LexicalEnvironment: 이후 변경사항을 추적 (VariableEnvironment와 구조가 같다) ThisBinding LexicalEnvironment의 구조 environmentRecord 객체 현재 컨텍스트의 식별자 정보를 갖는 객체, Hoisting(끌어올리기) 현상이 나타남. 해당 함수 내부의 함수선언과 변수 선언부를 객체 프로퍼티로 저장..
-
[JS Flow] 01. 데이터 타입
JS에는 두 가지 데이터 타입이 있다. Primitive Type string number boolean null undefined symbol Reference Type Object (Array, function, regExp, Set, weakSet, Map, weakMap) 이 둘을 왜 구분하는가? 메모리에 값을 저장하는 방식의 차이이다. Primitive Type 위와 같이, 메모리 공간이 컴퓨터에 있다고 가정하자. let a; a = 'hi' 위 코드를 js엔진이 읽어 실행하면 let a; // 메모리의 5001번 주소에 이름이 a가 된다. a = 'hi' // 메모리의 8001번 주소에 값 'hi'가 저장이 되고, 이름 a를 갖고있는 5001번 주소에..
리스트 : 콘텐츠가 있으면 최근 5건을 불러옵니다.
-
[JS Flow] 03. This BindingJS핵심개념 JS Flow 2021.01.20 19:49
When?? 실행 컨텍스트가 활성화될 때 (함수를 호출할 때) binding된다! How case 'this' is bound to 전역공간에서 호출 시 전역객체 (window / global) 함수 호출 시 전역객체 (window / global) - 함수는 전역객체의 메서드라고 생각하면 편하다, 함수 내부에 선언된 함수도 전역객체에 bind됨 메서드 호출 시 메서드 호출 주체 (a.b() -> 객체 a가 메서드 호출 주체) - 근데 메서드 내부에 선언된 함수는 전역객체에 bind됨;; callback함수 호출 시 기본적으로는 함수 내부와 동일하다. 전역객체가 bind됨. 하지만 제어권을 가진 함수(like addEventListener())가 따로 bind되는 this를 명시(구현)한 경우 해당 스펙..
-
[번역] 영국 정부의 디지털 서비스 설계 원칙일상 생각 2021.01.20 09:56
Government Design Principles The UK government's design principles and examples of how they've been used. www.gov.uk 1 니즈분석 : 사용자에게 필요한 것에서 시작하라. (Start with user needs) 서비스 디자인은 사용자의 니즈를 정의하는 곳에서 시작한다. 사용자의 니즈를 모른다면 올바르게 만들 수 없다. 가정하지 말고, 리서치하고, 데이터를 분석하고, 사용자들과 이야기해라. 사용자들과 공감을 하되, 사용자들이 요청하는게 실제로 원하는게 아닐 수 있음을 명심해라. 2 포지셔닝 : 우리만 할 수 있는 것에 집중하라. (Do less) 정부는 정부만이 할 수 있는 일에만 집중해야한다. 어떤 업무를 잘 수..
-
[JS Flow] 02. 실행컨텍스트 (Execution Context)JS핵심개념 JS Flow 2021.01.20 00:12
실행 컨텍스트란? 함수를 실행할 때 필요한 환경정보 함수를 실행할 때 필요한 환경정보 객체 Call Stack? 실행 컨텍스트를 관리하는 자료구조 현재 어떤 함수가 동작 중인지 다음에 어떤 함수가 호출될 것인지를 제어한다. 실행 컨텍스트가 스택 방식으로 쌓인다! 실행 컨텍스트 객체의 구조 VariableEnvironment: 초기의 정보를 담고있음 LexicalEnvironment: 이후 변경사항을 추적 (VariableEnvironment와 구조가 같다) ThisBinding LexicalEnvironment의 구조 environmentRecord 객체 현재 컨텍스트의 식별자 정보를 갖는 객체, Hoisting(끌어올리기) 현상이 나타남. 해당 함수 내부의 함수선언과 변수 선언부를 객체 프로퍼티로 저장..
-
[JS Flow] 01. 데이터 타입JS핵심개념 JS Flow 2021.01.18 19:17
JS에는 두 가지 데이터 타입이 있다. Primitive Type string number boolean null undefined symbol Reference Type Object (Array, function, regExp, Set, weakSet, Map, weakMap) 이 둘을 왜 구분하는가? 메모리에 값을 저장하는 방식의 차이이다. Primitive Type 위와 같이, 메모리 공간이 컴퓨터에 있다고 가정하자. let a; a = 'hi' 위 코드를 js엔진이 읽어 실행하면 let a; // 메모리의 5001번 주소에 이름이 a가 된다. a = 'hi' // 메모리의 8001번 주소에 값 'hi'가 저장이 되고, 이름 a를 갖고있는 5001번 주소에..