개발/웹관련 개발2014/10/29 12:40

자바스크립트 언어은 일반적인 C/C++, Java, C# 등과는 차이가 조금 있는데, 저도 종종 헷갈려서 정리차원에서 한 번 적어봅니다. 예를 들면 자바스크립트(JS)는 prototype-based 의 객체지향이고, C++, Java, C#은 Class-based 객체이다. 등등이죠. 

그 중에서도 주로 함수에 대해서 적어보겠습니다.


자바스크립트에서 함수를 선언하는 방식은 크게 두 가지가 있습니다: 일반적으로 알고 있는 함수 선언과, 표현식으로 선언

// 선언

function myFunc1() {

   console.log("Hi");

}

var myFunc2 = {

   console.log("Hi");

}

// 사용

myFunc1();

myFunc2();


myFunc1은 일반적으로 함수 선언한 것이며, myFunc2는 표현식으로 선언한 것입니다. 둘의 사용법 등의 차이는 없습니다. 다만 myFunc1은 사용되는 곳이 선언되는 곳보다 먼저 있어도 제대로 실행이 되지만, myFunc2는 그렇지 못합니다. (사용하기 전에 반드시 myFunc2()가 정의되어야 하며 그렇지 않으면 undefined 입니다)

(그 외에도 Function()을 이용해서 함수를 만들 수도 있지만 많이 쓰이지는 않기에...)


그리고 자바스크립트에서는 함수를 선언하면서 바로 실행시킬 수 있습니다. (immediate function 이라고 합니다)

문법적으로는 (function() { ... })(); 와 같은 형식인데요, 아래와 같습니다.

(function() { console.log("hi"); })()


그러면 함수가 바로 실행이 됩니다.


일단 함수선언과 사용에서의 타 언어와의 차이점 몇가지를 적어봐는데요, 사실 또 다른 큰 차이점은 변수의 scope가 아닐까 합니다. 그런데 이건 다음에 기회가 되면 한번 다뤄보구요.


아래의 내용도 알면 도움이 됩니다. 


대부분 타 언어도 "[]" 와 "."을 지원하는데요, 타 언어와 달리 자바스크립트에서는 이 둘을 대부분 바꿔서 쓸 수 있습니다.

var person = {name: "comlover", age: 20};

person.name;     // => comlover

person['name']; // => comlover


var person2 = {};

person2.name = "comlover";

person2.age = 20;

// => person2가 {name: "comlover", age: 20}; 으로 map (key - value 쌍)으로 됩니다.


'개발 > 웹관련 개발' 카테고리의 다른 글

자바스크립트 함수에 대하여  (0) 2014/10/29
침투적 프레임워크?  (0) 2014/08/29
Maven, Gradle proxy 설정하기  (0) 2014/01/22
Ruby on Rails 공부중  (0) 2013/12/22
변화의 증거들 - SaaS, 웹 서비스, RIA  (0) 2006/09/11
Posted by 컴사랑 comlover

더 이상 구간도 할인되지 않는 새로운 도서정가제가 실시되기 전에 몇몇권의 책을 사기로 했습니다.그리하여 산 책들이 아래 책들입니다.

  • 기적의 고전 독서법
  • 아웃라이어


원래 저는 책을 좀 깨끗하게 읽는 편입니다. 그런데 이번 책들은 줄도 그어가며, 생각도 정리하고 했더니 오히려 더 재미있게 읽히더군요. 그래서 다음부터 이런 식으로 책을 읽을까 합니다.


기적의 고전 독서법
국내도서
저자 : 김병완
출판 : 북씽크 2014.09.10
상세보기

저자에 대해서는 알고만 있었구요. 실제로 김병완 작가의 책을 읽기는 처음입니다. 요즘은 인문학이니 고전이니 하는 것들이 좀 뜨고 있어서 "고전 독서법"이라고 제목이 붙은 이 책의 내용이 궁금하더라구요. 

내용은 이렇습니다.

  • 자기 계발 서적은 지식을 주고 고전은 지혜를 준다. 그러므로 고전을 읽어야 한다.
  • 고전에 어울리는 독서법 중 하나는 초서 독서법이다. 이는 책의 내용을 베껴 쓰기하면서 읽어가는 독서법이다. 
  • 추천 고전: 목민심서, 징비록, 군주론, 방경각외전, 논어, 도덕경, 플루타르크 영우전, 삼국사기 : 전체적으로 우리나라의 책이 많은데, 우리나라에 대해서 우리가 먼저 공부해야 한다
조금 아쉬운 점은 레벨별 추천 고전이 있었다면 하는 생각도 조금 듭니다. "생각을 넓혀주는 독서법"은 사실 추천 도서 리스트만으로도 가치가 있다고 생각되는데, 이 책은 그런 부분이 없습니다.

전체적으로 책의 내용은 어렵지 않고 쉽게 읽을 수 있게 되어 있는 것 같습니다. 금방 읽을 수 있는 책인 것 같구요. 
초서 독서법에 대해서 알게 되었고 그걸 한번 실행해볼까 하는 생각도 가지고 있습니다. 요즘은 전자책으로도 많이 읽기 때문에 책에 필기하기가 어렵거든요.


아웃라이어
국내도서
저자 : 말콤 글래드웰(Malcolm Gladwell) / 노정태역
출판 : 김영사 2009.01.26
상세보기

말콤 글래드웰의 책은 언제가 한 번 읽어보고 싶었습니다. TED에서 강연한 "다윗과 골리앗" 을 보고나서 그런 생각이 더 강해졌죠. 

이 책은 우리나라에 대한 것도 나옵니다. 자랑할 만한 내용은 아니지만 대한항공의 괌 추락사건에 대한 내용도 나옵니다. 

사실 책을 읽으면서 저자가 주장하는 부분이 어떤 것인가 조금 헷갈리는 부분도 있습니다. (제가 잘 못 해서 그럴 수도 있고, 번역자가 잘 못 했을 수도 있고, 저자가 잘 못 했을 수도 있죠. 또는 모두 다 일수도 있구요)

전체적인 내용은 이렇습니다.

  • 우리가 알고 있는 성공의 비결인 "열심히 노력한다" 라는 것이 다는 아니다
  • 노력 + 시기. 시기를 잘 타야 한다. (여기서 저는 이런 생각들이 많이 듭니다. 그럼 내가 아무리 열심히 해도 시기를 잘 타지 못한다면 성공하지 못하는 것인가?)
  • 역사, 문화적 유산도 무시할 수 없다 (역시 위와 같은 생각입니다. 내가 열심히 해도 안될 수도 있겠구나.)
  • 이런 것들을 기회라고 했을 때. (시기, 역사, 문화적 유산)
  • 그러므로 뛰어난 사람이 성공할 기회를 빼앗기기 전에 다양한 기회를 주자. (오히려 이게 이 책의 주제인 것 같습니다)
다음에 읽으면 또 달라질 수도 있을지 모르겠습니다. 지금 제가 이해하기로는 뛰어난 사람 중에 기회가 없어서 성공하지 못한 사람도 많다. 그러므로 기회를 충분히 줄 수 있도록 하자가 이 책 전체에 흐르는 주제인 것 같습니다.

중간 중간에 "게이츠가 게이츠에게" 에 나오는 내용도 많이 생각이 났습니다. (MS의 빌게이츠가 아무리 훌륭해도 미국이 아닌 다른 나라에서 태어났다면 성공할 수 있었을까? 그러므로 빌 게이츠는 미국 사회에 빚을 지고 있는 것이고. 그걸 갚아야 한다고 아버지가 가르친 내용입니다)




사실 최근에 읽은 책들은 더 있지만, 가장 최근에 마무리 짓고, 게다가 필기까지 해가면서 읽은 책들부터 정리합니다. 그리고 요즘 이북으로 읽고 있는 것도 다 읽고 정리를 할 수 있다면 좋겠네요.







Posted by 컴사랑 comlover

사실 예전부터 이런 증상이 조금 있긴 했지만...

아웃룩에서 "이름 확인"이라는 기능이 있습니다. 예를 들면 "컴사랑" 이라고만 쳐도 실제 컴사랑의 이메일 주소를 찾아서 매치시켜주는 것이죠.


그런데, 제가 만든 주소록만 있는게 아니라, exchange 서버의 주소록을 제대로 매치를 못 시키고 있습니다. 그동안 제가 이름 확인하면 안되더라도, 남이 그 주소로 메일을 보내거나 하면 캐시가 되어서 또 동작하더라구요.


아무튼 이런 경우는 아래와 같이 하셔서 주소록을 추가시켜 주셔야 합니다. (아웃룩2010 기준입니다)

  1. 아웃룩에서 주소록을 실행시킵니다.
  2. 도구 > 옵션으로 가면 주소 지정을 할 수 있습니다.
  3. 이 값이 어떤 값으로 되어 있던 간에 일단 "사용자 지정"으로 바꾸시구요
  4. "추가..." 버튼을 눌러서 Exchange 서버의 전체 주소록을 지정하시면 됩니다. 아마 이 이름은 조금씩 다를 수 있을 것 같아요. 제 예상인데 제가 갑자기 안된 것은 exchange 서버에서 전체 주소록 이름이 바뀌었기 때문이 아닐까 싶습니다. (그냥 예상입니다)
  5. 이 때, 그룹을 지정하면 안됩니다. 저를 예를 들면 All Address Lists가 있고 그 안에 All Groups와 All Users가 있는데요, All Address Lists를 지정하면 안되고, 불편해도, All Groups와 All Users를 지정하니까 되더라구요.
이 뒤부터 Exchange 주소록에 대해서도 이름 완성이 잘 되네요.



Posted by 컴사랑 comlover