반응형 분류 전체보기205 [Javascript] Javascript 프로토타입 (Prototype) 1. Javascript 프로토타입 (prototype)? 명세에 따르면 자바스크립트 객체는 [[prototype]]이라는 내부 프로퍼티가 있고 다른 객체를 참조하는 단순 레퍼런스로 사용한다. 2017/08/31 - [Javascript] - [Javascript] Javascript 프로퍼티 서술자 (Getter/Setter) 위 링크 글 exObject.a처럼 객체 프로퍼티 참조 시 [[Get]]이 호출된다고 했었다. 또한 exObject에 a라는 프로퍼티가 없으면 [[prototype]] 링크를 따라가면서 찾는다고 했었다. 아래의 예제에서 Object.create(..) 함수는 특정 객체의 [[Prototype]]링크를 가진 객체를 생성한다. var anotherObject = { a: 2 }; /.. 2017. 8. 31. [Javascript] Javascript의 확장 금지, 봉인, 동결 1. 확장 금지 확장 금지란, 객체에 더는 프로퍼티를 추가할 수 없게 차단하고 현재 프로퍼티는 있는 그대로 놔두고 싶을 때 Object.preventExtensions(..)를 호출한다. 여기서 비엄격 모드에서는 프로퍼티를 추가해도 조용히 실패하지만 엄격 모드에서는 TypeError가 난다. var exObject = { a : 2 }; Object.preventExtensions(exObject); exObject.b = 3; exObject.b; // undefined 2. 봉인 Object.seal(..) 함수는 봉인된 객체를 생성한다. 즉, 어떤 객체에 대해 Object.preventExtensions(..)를 실행하고 프로퍼티를 전부 configurable : false 처리한다. 결과적으로 더.. 2017. 8. 31. [Javascript] Javascript 프로퍼티 서술자 (Getter/Setter) 1. Javascript의 프로퍼티 서술자 단순하게 말하면 데이터를 담아두는 Property (속성)이다. ES5부터 모든 프로퍼티는 프로퍼티 서술자 (Property Descriptor)로 표현된다. var exObject = { a : 2 }; Object.getOwnPropertyDescriptor(exObject, "a"); /* * { * value : 2, * writable : true, * enumerable : true, * configurable : true * } */ 위 예제를 보면 값 (value) 말고도 writable, enumerable, configurable의 세 가지 특성이 더 있다. 이렇게 프로퍼티 생성 시 프로퍼티 서술자에 담긴 기본 특성값을 확인 할 수 있는데, O.. 2017. 8. 31. [Javascript] Javascript의 실행 컨텍스트와 스코프 1. 자바스크립트의 실행 컨텍스트 (Execution context) 기존 언어를 경험한 사람이라면, 콜 스택을 들어보았을 것이다. 이는 함수를 호출할 때 해당 함수의 호출 정보가 차곡차곡 쌓여있는 스택을 의미한다. 실행 컨텍스트는 콜 스택에 들어가는 실행 정보 하나와 비슷하다. ECMAScript에서는 실행 컨텍스트를 "실행 가능한 코드를 형상화하고 구분하는 추상적인 개념"으로 기술한다. 이를 콜 스택과 연관지어 정의하면, "실행 가능한 자바스크립트 코드 블록이 실행되는 환경"이라고 할 수 있다. ECMAScript에서는 실행 컨텍스트가 형성되는 경우를 세 가지로 규정하고 있는데 전역 코드, eval() 함수로 실행되는 코드, 함수 안의 코드를 실행할 경우이다. ECMAScript에서는 실행 컨텍스트의.. 2017. 8. 30. JWT의 이해 1. JWT의 이해 근래에 들어서 Claim 기반의 토큰 방식인 JWT (JSON Web Token)가 많이 사용되고 있다. 여기서 Claim은 사용자에 대한 프로퍼티나 속성을 말한다. 토큰 자체가 정보를 가지는 방식인데, JWT는 이 Claim을 JSON을 이용해서 정의한다. 다음은 Claim을 JSON으로 서술한 예이다. { "id" : "john", "role" : ["admin"], "company" : "McDonald's" } JSON은 '\n' 등 줄바꿈 문자가 있기 때문에 REST API 호출 시 HTTP 헤더 등에 넣기가 매우 불편하다. 그래서 JWT에서는 이 Claim JSON 문자열을 Base64 인코딩을 통해 하나의 문자열로 반환한다. 만약에 누군가 토큰을 변조해서 사용한다면 어떻게.. 2017. 8. 30. REST의 이해 1. REST (Representational Safe Transfer) 웹의 장점을 최대한 활용할 수 있는 네트워크 기반의 아키텍처. HTTP와 JSON을 함께 사용하여 OPEN API를 구현하는 방법으로 주류를 이루고 있으며, 대부분의 OPEN API는 REST 아키텍처를 기반으로 설계 및 구현되고 있다. 2. REST의 기본 REST는 크게 리소스, 메서드, 메시지 3가지 요소로 구성된다. 예를 들어서 'ID가 3인 사용자를 삭제한다'라는 호출이 있을 때 '사용자'는 생성되는 리소스, '삭제한다'라는 행위는 메서드, 'ID가 3인 사용자'는 메시지가 된다. A. HTTP 메서드 HTTP에는 여러가지 메서드가 있지만, REST에서는 CRUD(Create Read Update Delete)에 해당하는 .. 2017. 8. 29. [Javascript] 함수 호이스팅 (Function Hoisting) 함수 호이스팅 - 함수 선언문 방식과 함수 호이스팅 // 함수 선언문과 함수 호이스팅 add(2, 3); // 5 function add(x , y) { return x + y; } add(3, 4); // 7 위 add함수 호출 부분에서는 add()함수가 정의 되지 않았음에도 호출 하는 것이 가능하다. 이것은 함수 선언문 형태로 정의한 함수의 유효 범위는 코드의 맨 처음부터 시작한다는 것을 알 수 있다. 이것을 함수 호이스팅이라고 부른다. - 함수 표현식 방식과 함수 호이스팅 // 함수 표현식과 함수 호이스팅 add(2, 3); // Uncaught type error var add = function (x , y) { return x + y; }; add(3, 4); // 7 add()함수는 함수 표.. 2017. 8. 29. [Javascript] 함수의 생성 Javascript 함수 생성 방법 - 함수 선언문 방식 - 함수 표현식 방식 - Function() 생성자 함수 1. 함수 선언문 방식 // add 함수 선언문 function add(x, y) { return x + y; } console.log(add(3,4)); // 7 2. 함수 표현식 방식 익명 함수 표현식 // add 함수 표현식 var add = function (x, y) { return x + y; }; var plus = add; console.log(add(3, 4)); // 7 console.log(plus(3, 4)); // 7 기명 함수 표현식 // add 함수 표현식 var add = function sum(x, y) { return x + y; }; console.log(a.. 2017. 8. 29. DevOps란? 1. DevOps란? 개발과 운영이 분리되면서 오는 문제점을 해결하기 위해서 개발과 운영 나아가 테스트까지 하나의 조직으로 합쳐 팀을 운영하는 문화이자 방법론. 2. DevOps를 적용하려면? Cross Functional Team 하나의 팀에 각각 다른 역할을 할 수 있는 팀원들로 세트업 해서 전체 End 2 End 서비스를 운용할 수 있도록 한다. 한 팀 내에서 서비스의 기획부터 운영 그리고 영업까지 해당 서비스에 관련된 모든 것을 할 수 있는 구조로 팀을 구성한다. Widely Shared Metric 팀 전체가 기준으로 삼을 수 있는 서비스에 대한 공통적인 지표를 둔다. 예를 들어, 하루 방문자 수, 평균 체류 시간, 가입자 수와 같은 비즈니스 지표부터 CPU 사용률, 메모리 사용률, 응답 시간 .. 2017. 8. 29. 이전 1 ··· 19 20 21 22 23 다음 반응형