여러가지 일을 다 잘하는 사람은 드물어도 한 가지 일을 기가막히게 잘 하는 사람은 어렵지 않게 찾을 수 있습니다. 누구나 한 가지 일을 오랜시간 반복하다 보면 '생활의 달인'소리를 들을만큼 전문성을 갖출 수 있겠죠(물론 그게 영 안되는 저 같은 사람도 있긴 합니다). 그리고 생산라인을 전문성을 발휘할 수 있는 부문으로 나누어 구성하는 것을 '분업화' 라고 하지요. 분업화는 등장하는 동시에 이전에는 상상할 수 없었던 엄청난 생산성의 향상을 가져 왔습니다. 현재는 사회 전반에 걸쳐 이런 분업화가 잘 정착되어 있습니다. 제가 일하는 회사만 해도 서비스에 대한 기획과 개발, 운영이 각각 다른 팀에서 이루어지고 있고 개발팀은 다시 프론트엔드와 백엔드, 디자인 등의 분야로 나뉘어져 있습니다. 그런데 이렇게 분업화를..
HTML 문서를 작성해 보면 HTML 태그가 계층적으로 이루어져 있다는 것을 알 수 있습니다. 가장 상위에 HTML 태그가 있고 아래에 HEAD, BODY 태그가 있는 식입니다. 그래서 DOM은 문서를 계층적으로 보는 방식에 기반을 두고 각 엘리먼트에 접근하게 됩니다. 이렇게 HTML 태그를 트리로 보면 각각의 태그 엘리먼트들이 트리의 노드가 되는 것을 알 수 있습니다. 이런 노드들은 객체 프로퍼티 형태로 접근이 가능합니다. 자바스크립트는 노드를 찾는 메소드와 프로퍼티를 제공하고 있습니다. 웹 애플리케이션은 사용자의 행동을 감지해 거기에 응답해야 할 때가 있습니다. 키 누름, 스크롤, 마우스 클릭, 마우스 움직임 같은 이벤트가 발생하면 이 이벤트 정보가 저장된 이벤트 객체가 생성됩니다. 자바스크립트에서는..
코드가 길어지고 복잡해지면 개발자가 코드를 읽기 힘들어지고 유지보수에 어려움이 생깁니다. 코드의 재활용성을 높이고 유지보수를 하기 위한 다양한 기법 중 하나로 등장한 것이 바로 모듈입니다. es5 이전 버전의 자바스크립트는 모듈을 염두에 두고 디자인 되지 않았기 때문에 개발자들은 모듈화를 위해 다양한 패턴들을 만들어 냈습니다. es5 이전의 자바스크립트는 자바같은 import 키워드가 존재하지 않고 이런식으로 script 태그를 통해 다른 자바스크립트 파일을 가져올 수 있습니다. (es6 이후 버전 부터는 import 키워드가 새로 생겼습니다.) 그런데 이렇게 할 때 주의할 점은 파일마다 독립적인 스코프를 가지는 것이 아니라 전역 스코프에 바인딩 되기 때문에 프로퍼티가 중복된다거나 하는 문제가 발생할 수..
자바스크립트는 프로토타입을 이용한 상속의 구현, 객체 인스턴스의 프로퍼티와 메소드, 캡슐화 같은 객체지향적인 특징도 동시에 가지고 있습니다. 자바스크립트는 원시값을 제외한 모든 것을 객체로 취급합니다. 자바스크립트 객체에는 프로토타입이 존재합니다. 모든 객체는 이 프로토타입을 기반으로 만들어지며 프로토타입은 객체에 기본적인 프로퍼티를 제공합니다. 프로토타입이 가진 constructor 프로퍼티는 해당 객체의 생성자 함수를 가리키고 있고 이를 통해 새로운 객체를 만들 수 있습니다. 프로토타입의 프로퍼티는 그것을 기반으로 하는 객체에 영향을 주지만 그 방향은 일방향입니다. 객체가 변경되어도 상위 프로토타입의 객체는 변하지 않습니다. 자바스크립트는 일단 객체 내에서 프로퍼티 값을 조회하고 없으면 상위 프로토타..
자바스크립트에서 제공하는 함수는 일종의 객체로 취급되는 특징이 있습니다. 함수는 코드에서 정의된 위치와 관계 없이 처음에 호이스트 되기 때문에 실행흐름과 상관없이 독립적이라고 할 수 있습니다. 그리고 함수는 자바스크립트에서 유일하게 scope 만듭니다. 자바스크립트에서 유효범위를 만드는 것은 함수가 유일합니다. 다른 블록은 유효범위로 인정되지 않습니다. 아래 코드에서 처럼 for 문 안에 선언한 i는 전역변수로 취급이 됩니다. 그리고 함수 안에 var 키워드를 사용하지 않고 만든 변수는 역시 전역변수로 취급되는 것을 유의해야 합니다. 함수 안에 var 키워드를 통해 만들어진 변수를 지역변수라고 합니다. 지역변수는 함수 안에서만 사용가능하고 함수 외부에서는 접근할 수 없습니다. 하지만 반대로 함수 안에서는..
- Total
- Today
- Yesterday
- RESTful
- 자바스크립트개론
- Markov
- was
- 마르코프
- 클린코드
- Warning
- 동적계획법
- GROUP BY
- 야근
- 유지보수
- 로그
- 디자인패턴
- 경고
- 몰라서망신
- 크롬
- 코딩의 기술
- 마르코프 연쇄
- CONVENTIONS
- restful api
- 자바스크립트 개론
- markov chain
- 문장 생성기
- java
- Spring in Action
- REST API
- 전략패턴
- html
- Count
- DP
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |