tag: js

자바스크립트 스터디 – Chapter 2 정리

2014년 3월 23일

기초적인 부분이긴 하지만 유니코드 값 비교 부분은 잘 살펴볼 필요가 있다. 꼭 자바스크립트가 아니더라도 각 언어에서 유니코드를 어떻게 처리하고 다루는지 알아두면 유용하다. 발생할 수 있는 수많은 케이스가 있는데 그 중 하나로 음악 스트리밍 서비스인 spotify가 사용자명으로 유니코드를 사용해 보안 문제가 발생했었던 사례를 들 수 있다.


Chapter 2 어휘 구조 Lexical Structure

어휘 구조는 프로그래밍 언어의 가장 기초적인 문법.

2.1 캐릭터 셋

ASCII와 Latin-1를 포함하고 있는 유니코드

2.1.1 대소문자 구분 – 구분한다

html은 구분 안하므로 유의

2.1.2 공백, 줄바꿈, 양식 문자

공백은 무시됨, 가독성을 위해 사용 (예외 2.5)

줄바꿈은 단일 행 실행 종료로도 처리됨 (세미콜론 없어도 된다는 말)

식별자 빼고 LTR, RTL MARK 등 양식 문자를 사용할 수 있음

2.1.3 유니코드 탈출 문자열

유니코드 미지원 환경을 위한 유니코드 사용

\u + 4자리 8진수 주소

"résumé" === "r\u00e9sum\u00e9" // => true

2.1.4 표준화 Normalization

유니코드는 같은 글자를 여러 방법으로 표기할 수 있음

é는 유니코드 문자 하나로 표기할 수도 있고 e + ́ 로도 표시할 수 있음

console.log("e\u0301", "\u00e9"); // => é é
console.log("e\u0301" === "\u00e9"); // => false

자바스크립트는 작성된 코드를 이미 표준화 된 것으로 보고 별도로 표준화 처리 안함

2.2 주석

/* 블럭주석 */
/*
* 블럭주석
*/
// 인라인 주석

2.3 문자열 Literals

문자열은 데이터 값을 의미

number, string(Chapter 3), boolean, 정규표현식(Chapter 10), null, array, object

2.4 식별자와 예약어

문자, _, $, 숫자

첫글자는 숫자 못씀

일반적으로 아스키 문자와 숫자

유니코드 식별자도 가능

2.4.1 예약어

예약어는 식별자로 쓸 수 없음 – 기본 함수, 타입 등등

예약어를 무심코 쓰더라도 예약어 썼다고 에러를 출력하므로 외울 필요는 없어 보임

(변수명을 undefined로 한다거나 -_ 혼난다)

2.5 선택적 세미콜론

다른 언어처럼 각각 명령문 끝에 ; 넣음

세미콜론 대신 줄바꿈으로 생략도 되는데 말이 안되는 줄바꿈은 알아서 인식함

작성 의도와 다르게 실행되는 예시 – 코드의 명확성을 위해 세미콜론 꼭 쓰자

자바스크립트 스터디 – Chapter 1 정리

2014년 3월 22일

놀부님이 진행하는 자바스크립트 스터디 http://on.fb.me/1iEpW0a 에 참여하게 되었다. 커리큘럼에서 제시된 교재를 선택하고 순서대로 공부해나가면 된다. 상당히 세세하고 실질적이라서 전혀 모르는 사람도 공부하기에 좋은 커리큘럼이다. 교재는 JavaScript: The Definitive Guide으로 선택했다.


자바스크립트 : 고 수준, 동적, 타입 없는 인터프리터 프로그래밍 언어. 객체 지향, 함수형 언어 스타일

명칭에는 역사적인 배경이 있음. 상표권 문제로 ECMAScript 로 명명. 3와 5 버전이 있음. (4는 건너 뜀)

클라이언트측 언어의 태생으로 인해 대다수의 언어와 달리 입출력과 같은 API 지원이 약함.

공부를 위해 개발자 도구를 설치할 것. (Firebug, 또는 각 브라우저 개발자도구)

1.1 코어 자바스크립트

Number, string, boolean

null과 undefined

object {} 와 array []

연산자

함수 선언

변수로의 함수

조건문 if 반복문 while for

Class와 prototype 상속

1.2 클라이언트측 자바스크립트

script 태그

window 객체

DOM

이벤트 핸들링 (onclick, onload etc.)

jQuery

이후 웹앱, 스크립티드 http, 미디어 그래픽, 스토리지, html5 api 등 심화 학습.

1.2.1 계산기 예제

DOM과 ajax, canvas 이용

나도 공부하고 싶다 node.js

2013년 1월 9일

Javascript는 v8 엔진이 나온 이후로 전방위로 세를 늘려가고 있으며 최근에는 서버측에서도 사용할 수 있을 정도로 남다른 위상을 보여주고 있다. 이전 시대에는 그저 DHTML을 구현하는, 무거워서 쓰지 않는 것을 권장했었는데 이렇게 될 줄 누가 알았겠는가. 별거 아닌 것처럼 보여도 폭넓게 관심을 두는 것이 이래서 중요한듯 싶다.

특히 node.js는 서버측에서 사용할 수 있는 js로 프론트엔드 개발자도 서버를 구축할 수 있다는 식의 선정적인 이름으로 많이 알려지고 있다. 아직 판올림마다 레퍼런스가 대거 변경되는 등 안정적이지 않은 모습이지만 오픈소스는 안정성을 고려하는 것 보다야 꾸준하고 지속적으로 업데이트 될 수 있는 건강한 생태계가 있느냐가 더 큰 문제고 아무래도 그런 점에서는 걱정 안해도 될만큼 멋진 사람들이 프로젝트를 이끌고 있다.

아직 내게 이 도구를 적용할만한 프로젝트나 장난감이 없어서 세세하게 사용해보진 못했지만 튜토리얼을 진행해본 경험으로는 독특하고 작고 빠르며 재미있었다. 빠른 프로토타이핑이 필요할 때에도 편리하게 사용할 수 있을듯 싶다.

20130110 084910

트레인 안에 타닥타닥 소리가 나서 봤더니…

이 글은 출근하며 노트북으로 열심히 node.js를 공부하고 계시는 분이 보여서 적어봤다. RESTful 서비스를 node.js와 mongoDB로 구축하는 튜토리얼이었는데 고민하며 따라하는 모습이 나도 부지런히 저렇게 공부해야 하는데 생각이 들었다. 아침부터 적절한 자극을 주신 저 개발자 분께 감사의 말씀을 드리며…;