전체보기
-
Effective JavaScript [4] - 객체 래퍼보다 원시 데이터형을 우선시하라Javascript 2016. 11. 29. 22:05
본 게시물은 Effective Javascript의 내용을 재구성하여 작성되었음을 알립니다. 저작권 문제 발생시 게시물이 비공개 될 수 있습니다. - 원시 데이터형을 위한 객체 래퍼는 그 자신의 원시 데이터 값과는 동작이 다르다. 동일한지 비교했을 때도 서로 다르다. - 원시 데이터형에 프로퍼티를 설정하거나 가져오면 암묵적으로 객체 래퍼를 생성한다. 객체와 함께, 자바스크립트는 다섯 가지의 원시 데이터형 값을 가진다. 불리언, 숫자, 문자열, null 그리고 undefined다. 동시에, 표준 라이브러리는 불리언, 숫자 그리고 문자열을 객체 처럼 래핑하는 생성자를 제공한다. 다음과 같이 문자열 값을 감싸서 String 객체를 만들 수 있다. var s = new String("hello"); 어떤 면에서..
-
Effective JavaScript [3] - 암묵적 형변환Javascript 2016. 11. 29. 21:25
본 게시물은 Effective Javascript의 내용을 재구성하여 작성되었음을 알립니다. 저작권 문제 발생시 게시물이 비공개 될 수 있습니다. - 데이터형 에러는 암묵적인 강제 형변환에 의해 은밀하게 감춰질 수 있다. - + 연산자는 인자의 데이터형에 따라 덧셈이나 문자열 병합으로 오버로딩된다. - 객체는 valueOf를 통해 숫자형으로, toString을 통해 문자열로 강제 형변환된다. - valueOf 메서드를 가지는 객체는 반드시 valueOf에 의해 생성되는 숫자 값의 문자열 표현을 생성하는 toString 메서드를 구현해야 한다. - undefined 값을 테스트할 때 트루시니스를 사용하기보다는 typeof를 사용하거나 undefined와 비교하는 것이 좋다. 자바 스크립트 형변환 자바스크립..
-
부동소수점Javascript 2016. 11. 29. 21:09
자바스크립트의 숫자 자료형의 부동소수점 이슈에 관한 내용을 보게 되었다. 사실 오차가 발생한다더라 정도에서 왜? 에 대한 질문에 항상 답을 찾아보지 않고 넘어가곤 했다. 이 포스팅을 통해 부동소수점이 무엇이고 오차가 발생하는 이유가 무엇인지 정리하고자 한다. 부동소수점이란 부동소수점 또는 떠돌이 소수점 방식은 실수를 표현할 때 소수점의 위치를 고정하지 않고 그 위치를 나타내는 수롤 따로 적는 것으로, 유효숫자를 나타내는 가수와 소수점의 위치를 풀이하는 지수로 나누어 포현한다. 컴퓨터에서는 고정 소수점 방식보다 넓은 범위의 수를 나타낼 수 있어 과학기술 계산에 많이 이용되지만 근사값으로 표현되며 고정 소수점 방식보다 연산속도가 느리기 때문에 별도의 전용 연산장치를 두는 경우가 많다. 고정 소수점과 달리 정..
-
Effective JavaScript [2] - 숫자형 타입Javascript 2016. 11. 28. 22:23
본 게시물은 Effective Javascript의 내용을 재구성하여 작성되었음을 알립니다. 저작권 문제 발생시 게시물이 비공개 될 수 있습니다. 주요내용. - 자바스크립트의 숫자는 double-정확도의 부동 소수점 숫자다. - 자바스크립트의 정수는 별개의 데이터형이 아니라 double의 부분집합이다. - 비트단위 연산자는 숫자를 32비트의 부호과 있는 integer처럼 처리한다. - 부동 소수점 산술 연산의 정확도가 한계가 있음을 주의해야 한다. 자바스크립트의 부동 소수점 숫자 이해하기 자바스크립트에는 숫자형 데이터가 단 하나밖에 없다. typeof 연산자의 동작을 통해 자바스크립트가 정수형이나 부동 소수점 숫자를 단순히 숫자형으로 분류한다는 사실을 확인해 볼 수 있다. typeof 17; // "nu..
-
Effective JavaScript [1] - ECMAScript, ES5, "use strict"Javascript 2016. 11. 28. 21:57
본 게시물은 Effective Javascript의 내용을 재구성하여 작성되었음을 알립니다. 저작권 문제 발생시 게시물이 비공개 될 수 있습니다. 어떤 자바스크립트를 사용하고 있는지 알아야 한다. 자바스크립트는 오랜 시간에 걸쳐 진화 됬다. 원래는 자바의 보충재로써 자리잡으려 했으나, 지금은 자바를 밀어내고 웹에서 지배적인 프로그램 언어가 되었다. 1997년 ECMAScript라는 이름으로 전세계적인 표준이 공식화 되었다. 현재는 ESMAScript 표준을 지키는 여러 자바스크립트 구현체들이 서로 경쟁하고 있다. 1999년에 완성된 표준은 현재까지 가장 폭넓게 지원되고 있는 자바스크립트다. 포스팅 하는 내용의 전반에 걸쳐 ES5(ECMAScript 중 5번째로 구현된 표준)에 적용되는 특정 항목이나 주의..
-
JVM (Java Virtual Machine)카테고리 없음 2016. 11. 28. 20:51
JVM (자바 가상 머신) 1. 개요 Java로 개발한 프로그램을 컴파일하여 만들어지는 Java 바이트코드를 실행시키기 위한 가상의 기계. Java 언어와 함께 썬마이크로시스템즈사에서 개발하였으며 썬마이크로시스템즈가 오라클에 인수되면서 현재는 오라클이 Java 명칭을 비롯하여 모든 권한을 행사하고 있다. JVM은 플랫폼 독립적으로, JVM이 실행 가능한 환경이라면 어디서든 Java 프로그램이 실행될 수 있도록 한다. 즉, Java의 모토인 Write Once, Run Anywhere는 JVM을 통해 가능한 것이다. 하지만 특정 운영체제의 특수한 기능을 호출하거나 하드웨어를 제어하는 등의 일은 JVM으로 할 수 없으며, JNI와 같은 Native 코드를 호출하기 위한 인터페이스를 거쳐야 한다. .NET F..
-
What is OpenJDK?카테고리 없음 2016. 11. 28. 20:01
OpenJDK 개요 Sun(현재 Oracle)이 JDK7을 개발하기 시작할 때 이전과 다른 점이 하나 있었는데, Sun이 JDK를 오픈소스화 하기 위해 2007년 OpenJDK를 만들었다는 것이다.(OpenJDK는 완전한 Free의 오픈소스 코드를 기반으로 Fully buildable한 Java Development Kit을 배포하기 위한 Sun의 노력이다.) Sun이 3rb-Party 라이브러리의 저작권자에게 오픈소스로 공개할 수 있도록 설득하고자 했으나 잘되지 않았고, 저작권자가 오픈소스화를 거부한 일부 컴포넌트를 제외한 나머지 JDK 소스코드 전부를 OpenJDK에 제공했고, OpenJDK는 이를 기반으로 이외의 컴포넌트의 대안 코드를 마련하면서 JDK7 프로젝트를 시작했다. Oracle's Pla..
-
Java Garbage Collection카테고리 없음 2016. 11. 25. 20:49
지난 포스팅에서 Java Garbage Collection 에 대한 기본적인 구조와 개념을 살펴보았지만, 포스팅 내용이 다소 부실하여 내용을 좀 더 보충하려고 한다. 가비지 컬렉션 과정 - Generational Garbage Collection GC에 대해서 알아보기 전에 알아야 할 용어가 있다. 바로 'stop-the-world'이다. stop-the-world란, GC를 실행하기 위해 JVM이 애플리케이션 실행을 멈추는 것이다. stop-the-world가 발생하면 GC를 실행하년 쓰레드를 제외한 나머지 쓰레드는 모두 작업을 멈춘다. GC 작업을 완료한 이후에야 중단했던 작업을 다시 시작한다. 어떤 GC 알고리즘을 사용하더라도 stop-the-world는 발생한다. 대개의 경우 GC 튜닝이란 이 s..