수 ( Numbers ) Javascript 에서 수는 "이중 정밀도 64비트 형식 IEEE 754 값" 으로 정의 됩니다. 0.1 + 0.2 = 0.30000000000000004 뎃셈, 뺄셈, 계수 ( 또는 나머지 ) 연산을 포함하는 표준 산술 연산자가 지원됩니다. Math.sin(3.5);d = Math.PI * r * r; 내장 parseInt() 함수를 사용하여 문자열을 정수로 변한 할 수 있수 있습니다. 다음과 옵션으로 주어지는 변수를 지정할수 있다. > parseInt("123", 10)123> parseInt("010", 10)10 옵션을 주지 않으면 , 다음과 같이 예상치 못한 결과를 얻는다. > parseInt("010")8 이 같은 결과는 parseInt 함수가 0으로 시작되는 문자열..
1. rewrite 모듈을 사용하기 위한 Apache 컴파일옵션 Rewrite 모듈을 쓰기위한 Apache 컴파일 옵션은 --enable-rewrite 입니다. Configure 실행시에 --enable-rewrite 만 추가하시면 Apache에서 rewrite 모듈을 사용할 있게 됩니다. [root@superuser root]# ./cofigure prefix=/usr/local/apache2 --enable-rewrite [root@superuser root]# make [root@superuser root]# make install 2. Rewrite 를 적용할 수 있는 범위 Rewrite 설정은 Server Config, Virtual Host, Directory, .htaccess 에 설정할 수..
DIP (The Dependency Inversion Principle, 의존 관계 역전의 원칙) Note DIP는 의존 관계 역전이라는 어려운 단어로 해석되고 있지만 실상은 간단하다. 구체화된 클래스를 추상화된 interface 또는 abstract 클래스의 구현 또는 상속 구조로 만들어서 실제 사용할 때 다음과 같은 코드로 사용하는 것으로 이해하면 좋을 것 같다. IFactory factory = new CheeseFactory(); 위에서 CheeseFactory는 IFactory 인터페이스를 구현하고 있음을 가정한 코드이다. 별로 신통해 보이지는 않지만 치즈공장에 버터공장, 마가린공장 등이 생겨났을 때 추상화된 클래스 타입으로 코드를 구성하는 것이 얼마나 도움이 되는지 확인할 수 있다. 위키피디아..
LSP (Liskov Substitution Principle, 리스코프 치환의 원칙) Note LSP는 자식 타입들은 부모 타입들이 사용되는 곳에 대체될 수 있어야 한다는 원칙이다. 즉 부모 클래스가 사용되는 곳에 자식 클래스로 치환 하더라도 문제가 없어야 한다는 의미이다. 여러가지 의미로 생각 해 볼수 있다. 상속받는 자식 클래스는 부모 클래스의 책임을 넘지 말아야 한다는 의미와 자식으로서 제공하는 기능에 대한 제약의 의미 등 제한적인 의미를 말하기도 하고, 사용상의 난해함으로 고생하지 말라는 교훈적인 의미를 말하기도 한다. 파생 클래스 마다 쓰임새가 다르다고 사용법까지 모두 다 다르다면 얼마나 복잡할 것이며, 왜 상속이라는 고수준의 구현 방법을 사용하는가?(게다가 고가의) 파생 클래스의 활용도를 높..
SRP (Single Responsibility Principle, 단일 책임의 원칙) Note 단일 책임의 원칙은 함수나 메소드를 개발할 때의 바람을 객체 차원에서 가지게 될 때 제대로 지켜질 것이다. 우리는 함수나 메소드를 개발할 때 하나의 함수가 하나의 동작에 대해 책임을 다하기를 바랄 것이다. 마찬가지로 우리는 하나의 객체가 단 하나의 "객체" 로서의 책임을 다 할 수 있도록 해주어야 한다. 추상적인 책임이 아닌 시스템 상에서의 책임을 의미함에 주의하자. 데이터를 "저장"하는 책임이라는 추상적인 의미로 객체에 책임을 부여했을 경우를 생각해보자. 단지 저장하나에 대한 책임을 주었음에도 불구하고, 해당 객체는 하나의 객체가 가지는 책임의 범위를 넘어서는 형태가 될 수 있다. 3-1의 그림에서 보듯이 ..