이 포스트는 Stack Overflow의 What does “use strict” do in JavaScript, and what is the reasoning behind it?의 질문과 답변을 번역한 내용입니다.

자바스크립트에서 use strict는 뭘 하는 것이고, 왜 그걸 써야 하나요?

질문:

최근에 내가 짰던 자바스크립트 코드를 크록포드의 JSLint를 통해 실행시켰더니 아래와 같은 에러가 나타났습니다:

Problem at line 1 character 1: Missing “use strict” statement.

검색을 좀 해봤는데, 몇몇 사람들이 "use strict;" 라인을 그들의 자바스크립트 코드에 추가했다는 것을 알아챘습니다. 저도 이것을 따라서 추가해 봤더니, 위의 에러가 더이상 나타나지 않네요. 구글에서 검색을 해 봤는데, 이것을 추가하는 이유에 대해서 딱히 찾을 수가 없더라구요. 분명히 이것을 통해 브라우저가 자바스크립트를 해석하는 데 영향을 주는 것 같은데, 이걸 사용하면 나타날 수 있는 효과에 대한 것에 대한 것을 전혀 모르겠습니다.

"use strict";가 도대체 무엇이고, 이것이 의미하는 것은 무엇이며, 필요하긴 한 건가요?

현재 쓰이고 있는 브라우저들이 이 "use strict"; 문자열에 대응하는지요, 아니면 향후에 쓰일 것에 대한 대비인가요?


답변: (가장 추천수가 높은 것만을 번역했습니다: 역자 주)

이 문서가 도움이 될 겁니다: John Resig – ECMAScript 5 Strict Mode, JSON, and More

인상적인 부분을 살짝 인용하자면:

Strict Mode is a new feature in ECMAScript 5 that allows you to place a program, or a function, in a “strict” operating context. This strict context prevents certain actions from being taken and throws more exceptions.

Strict Mode는 ECMAScript 5 버전에 있는 새로운 기능으로써, 당신의 프로그램 또는 함수를 엄격한 운용 콘텍스트 안에서 실행시킬 수 있게끔 합니다. 이 엄격한 콘텍스트는 몇가지 액션들을 실행할 수 없도록 하며, 좀 더 많은 예외를 발생시킵니다.

이와 더불어:

Strict mode helps out in a couple ways:

  • It catches some common coding bloopers, throwing exceptions.
  • It prevents, or throws errors, when relatively “unsafe” actions are taken (such as gaining access to the global object).
  • It disables features that are confusing or poorly thought out.

Strict Mode는 몇가지 면에서 도움이 되는데:

  • 흔히 발생하는 코딩 실수를 잡아내서 예외를 발생시킵니다.
  • 상대적으로 안전하지 않은 액션이 발생하는 것을 방지하거나 그럴 때 예외를 발생시킵니다. 예를 들자면 전역객체들에 접근하려 한다거나 하는 것들이겠지요.
  • 혼란스럽거나 제대로 고려되지 않은 기능들을 비활성화시킵니다.

이 strict mode는 파일 전체에 적용시킬 수도 있고, 아니면 특정한 함수 안에서만 적용시킬 수도 있습니다.

위와 같은 방식으로 한다면, 예전의 레거시 코드와 새 코드가 한 파일 안에 섞여 있을 때 도움이 될 것입니다.

아마도 이 "use strict";는 왠지 Perl 에서 온 것 같기도 하네요. 이것을 사용함으로써 오류가 발생할 수 있는 좀 더 많은 부분을 검사할테니, 훨씬 더 적은 에러를 만들 수 있을 겁니다.


역자 추가:

위의 내용과 더불어 Can I use ECMAScript 5 Strict Mode? 페이지를 보면 지원하는 브라우저의 버전을 제공하고 있는데, IE는 이strict mode를 버전 10부터 지원한다. 그렇다고 해서 낮은 버전의 IE를 위해서 쓰지 말아야 하는가 하면 그렇지도 않다. 위에 언급한John Resig의 포스트를 다시 인용하자면:

This means that you can turn strict mode on in your scripts – today – and it’ll have, at worst, no side effect in old browsers.

strict mode를 지금 당장 활성화 시켜야 한다는 것을 의미하고, 이전 브라우저에서는 최악의 경우에라도 아무런 부작용이 없습니다.

따라서, 기존의 자바스크립트 코드에 대해 좀 더 엄격한 검사를 실행시키고 싶다면 문서의 첫 줄에 "use strict";를 추가하고, 기존의 것은 그대로 놔두고, 새로운 코드에 대해서만 추가하고 싶다면 각각의 함수 블록 처음에 추가하는 것이 좋겠다.



출처 - http://blog.aliencube.org/ko/2014/01/02/reasons-behind-using-strict-mode-while-coding-javascript/






Posted by linuxism
,


Where in Fedora 20 are the suspend and hibernate options?


Q

I'm looking for an option to suspend or hibernate the machine but I can't find it. :)


A

If you mean GNOME environment, there are no such options. You suspend by closing the lid and to hibernate I think you have to use a command in terminal. You might find an extension to modify such a behavior:https://extensions.gnome.org/


Reply

Thanks, the Hibernate Status Button works nicely!


A

If you're using the terminal, try pm-suspend and pm-hibernate. They're part of the pm-utils package.



source - https://ask.fedoraproject.org/en/question/43237/where-in-fedora-20-are-the-suspend-and-hibernate-options/

Posted by linuxism
,

ide vs scsi

System/Common 2014. 7. 26. 20:01


2007년 9월 17일 월요일

IDE 와 SCSI 의 차이점...

-- IDE란?

컴퓨터 마더보드의 데이터 버스와 컴퓨터 디스크 저장 장치 간에 사용되는 표준 전자 인터페이스이다. 처음에는 지능형 인터페이스를 가지고 있는 HDD를 총칭하는 것이었으나 IDE가 AT 버스인 16비트 ISA 데이터 버스와 1대1 전송(16비트 병렬 전송)이 가능한 드라이브를 의미하는 것으로 사용되면서 AT-BUS 방식 인터페이스라는 이름으로 더욱 알려지게 되었다. IDE는 1990년 11월에 ANSI에 의해 표준으로 채택되었으며 IDE에 대해 ANSI(American National Standards Institute: 미국표준협회)에서 붙인 이름이 ATA (Advanced Technology Attachment)이다.
--IDE 의 장점

EIDE 방식은 하드디스크 등의 주변 장치 설치가 쉬우며 SCSI 하드에 뒤지지 않을 만큼 빠르면서도 가격이 싸다. 또한, 하드디스크 외에도 다양한 주변 장치를 사용할 수 있기 때문에 시장에서 가장 널리 쓰이는 인터페이스로 자리 잡았다.

--IDE 의 단점

EIDE 장치는 대부분 CPU에서 작업을 처리하므로 시스템의 속도를 떨어뜨리는 것이 단점으로 지적되고 있다. 이는 EIDE가 CPU에 의해 제어되는 PIO(Programmed I/O) 기능을 사용하기 때문인데 EIDE는 중첩된 입출력을 제공하지 못하기 때문에 멀티태스킹의 운영 체제에 약하다는 단점을 가진다. 또한, 표준이 없기 때문에 각각의 장치간에 비호환성이 나타나기도 하며, 성능도 각기 다르게 나타난다. 또한 패리티 체크가 불가능하기 때문에 자료 전송 에러를 발견할 수 없다는 점도 단점이다. 또한 케이블 길이가 짧기 때문에 대부분 내장형 장치로 제공되며, 컴퓨터의 케이스를 열고서 장착 착탈을 해야 하는 불편함이 있다.


-- SCSI 란?

SCSI는 메인보드의 바이오스의 통제를 받지 않는 독립된 규약이다. 따라서 SCSI는 별도의 SCSI 운영을 위한 BIOS와 제어 장치를 가지고 있어야 한다. 이를 위해 컴퓨터에 부가되는 장치가 SCSI 어댑터이며, SCSI 어댑터에는 ANSI의 표준을 따르는 SCSI BIOS가 장착되어 있다. 또한 SCSI는 BIOS 내에 별도의 SETUP 프로그램을 가지고 있어 SCSI의 기기의 관리를 할 수 있다. 이를 통해 시스템 전체의 성능을 향상시킬 수 있다.


-- SCSI의 장점

SCSI의 장점은 SCSI 호스트 어댑터가 CPU로부터 작업을 받아 자료 처리를 할 수 있기 때문에 CPU의 부하를 덜어준다는 점이다. 이처럼 자료를 다른 장치로 전송하거나 디스크에 저장할 때 일일이 CPU가 해주는 방식PIO라고 부르고 다른 장치가 알아서 해주는 방식을 버스마스터링 이라고 부르는데 당연히 버스 마스터링이 CPU의 부담을 줄여준다. 따라서, 싱글태스킹 환경에서는 EIDE와 비교해 볼 때 뚜렷한 장점을 체감하기는 힘들지만 멀티태스킹 환경에서는 강력하고 빠르며 안정적인 성능을 발휘한다. 현재까지 나온 디스크 방식 중에서 버스마스터링을 지원하는 것은 SCSI 방식 뿐이다.



출처 - http://chichensawd.blogspot.kr/2007/09/ide-scsi.html





'System > Common' 카테고리의 다른 글

bash - 변수 치환(Variable Substitution)  (0) 2014.05.05
virtualbox - 64bit guest 32bit host  (0) 2014.04.21
ACPI(Adavanced Configuration and Power Interface)  (0) 2014.04.11
X.Org Server  (0) 2014.04.09
Windowing system  (0) 2014.04.09
Posted by linuxism
,