코드가 길어지고 복잡해지면 개발자가 코드를 읽기 힘들어지고 유지보수에 어려움이 생깁니다. 코드의 재활용성을 높이고 유지보수를 하기 위한 다양한 기법 중 하나로 등장한 것이 바로 모듈입니다. es5 이전 버전의 자바스크립트는 모듈을 염두에 두고 디자인 되지 않았기 때문에 개발자들은 모듈화를 위해 다양한 패턴들을 만들어 냈습니다. es5 이전의 자바스크립트는 자바같은 import 키워드가 존재하지 않고 이런식으로 script 태그를 통해 다른 자바스크립트 파일을 가져올 수 있습니다. (es6 이후 버전 부터는 import 키워드가 새로 생겼습니다.) 그런데 이렇게 할 때 주의할 점은 파일마다 독립적인 스코프를 가지는 것이 아니라 전역 스코프에 바인딩 되기 때문에 프로퍼티가 중복된다거나 하는 문제가 발생할 수..
자바스크립트는 프로토타입을 이용한 상속의 구현, 객체 인스턴스의 프로퍼티와 메소드, 캡슐화 같은 객체지향적인 특징도 동시에 가지고 있습니다. 자바스크립트는 원시값을 제외한 모든 것을 객체로 취급합니다. 자바스크립트 객체에는 프로토타입이 존재합니다. 모든 객체는 이 프로토타입을 기반으로 만들어지며 프로토타입은 객체에 기본적인 프로퍼티를 제공합니다. 프로토타입이 가진 constructor 프로퍼티는 해당 객체의 생성자 함수를 가리키고 있고 이를 통해 새로운 객체를 만들 수 있습니다. 프로토타입의 프로퍼티는 그것을 기반으로 하는 객체에 영향을 주지만 그 방향은 일방향입니다. 객체가 변경되어도 상위 프로토타입의 객체는 변하지 않습니다. 자바스크립트는 일단 객체 내에서 프로퍼티 값을 조회하고 없으면 상위 프로토타..
자바스크립트에서 제공하는 함수는 일종의 객체로 취급되는 특징이 있습니다. 함수는 코드에서 정의된 위치와 관계 없이 처음에 호이스트 되기 때문에 실행흐름과 상관없이 독립적이라고 할 수 있습니다. 그리고 함수는 자바스크립트에서 유일하게 scope 만듭니다. 자바스크립트에서 유효범위를 만드는 것은 함수가 유일합니다. 다른 블록은 유효범위로 인정되지 않습니다. 아래 코드에서 처럼 for 문 안에 선언한 i는 전역변수로 취급이 됩니다. 그리고 함수 안에 var 키워드를 사용하지 않고 만든 변수는 역시 전역변수로 취급되는 것을 유의해야 합니다. 함수 안에 var 키워드를 통해 만들어진 변수를 지역변수라고 합니다. 지역변수는 함수 안에서만 사용가능하고 함수 외부에서는 접근할 수 없습니다. 하지만 반대로 함수 안에서는..
자바 스크립트의 기본 데이터 타입은 숫자, 문자열, boolean, null, undefined 다섯가지가 있습니다. 여기에 ES6에서 Symbol이 추가되었습니다. 자바와는 다르게 변수에 값을 주지 않고 선언을 해도 자동으로 undefined 값이 들어가게 됩니다. 또 자바처럼 데이터타입에 엄격하지 않고 자동으로 타입이 변환되는 특징이 있습니다. 자바 스크립트에서 기본적으로 제공하는 아홉가지 기본 생성자 외에 사용자 정의 객체를 생성하는 방법이 몇가지 있습니다. 대표적으로 생성자함수를 만드는 방법과 object 객체에 프로퍼티를 추가해서 쓰는 방법입니다. ES6 이후에 자바스크립트에도 클래스가 도입되오 class 키워드를 통해 선언할 수 있게 되었습니다. 자바 스크립트에는 원시값 병수와 참조값 변수가 ..
자바 스크립트는 스크립트 언어입니다. 스크립트 언어란 응용 프로그램을 제어하기 위해 만들어진 언어를 뜻합니다. 보통 컴파일 과정을 거치지 않고 인터프리터를 통해 한줄씩 실행되는 경우가 많습니다. 기존에 프로그래밍 언어와 차이점이 존재했지만 점점 범용적으로 쓰이며 차이가 줄어들고 있는 추세입니다. 자바스크립트는 최초에 서버사이드 스크립트 언어로 개발되었지만 그 강력한 기능 때문에 대부분의 웹 브라우저에 인터프리터가 탑재되면서 지금은 HTTP, CSS 와 함께 웹 표준으로 자리잡게 되었습니다. 구글에서 JIT 컴파일 방식을 도입해 개발한 Chrome V8 엔진 등장 이후 Node.js 등이 등장하며 서버사이드에서도 사용하게 되었고 그 범용성이 증대되고 있습니다. 멀티 패러다임 언어로 명령형, 함수형, 객체지..
- Total
- Today
- Yesterday
- 자바스크립트 개론
- markov chain
- 마르코프
- 경고
- 클린코드
- Markov
- 동적계획법
- 전략패턴
- 코딩의 기술
- REST API
- java
- Warning
- 로그
- 디자인패턴
- 몰라서망신
- 문장 생성기
- GROUP BY
- DP
- was
- 야근
- 크롬
- RESTful
- 자바스크립트개론
- Count
- CONVENTIONS
- restful api
- Spring in Action
- 마르코프 연쇄
- 유지보수
- html
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |