본문 바로가기

전체 글382

Java Script 정리 2.3. 브라우저 객체별 속성과 메소드 2.3.1. navigator : 브라우저의 이름, 버전 등 브라우저 관련 정보를 알려줍니다 속성 appCodeName 브라우저 코드 이름을 알려줍니다 appName 브라우저의 이름을 알려줍니다 appVersion 브라우저의 버전정보를 알려줍니다 userAgent 브라우저의 User Agent를 알려줍니다 platform 사용중인 시스템 정보를 알려줍니다 메소드 JavaEnabled() 자바 사용이 가능한지 여부를 true, false 형태로 알려줍니다 2.3.2. event : 이벤트에 관한 속성 정보를 알려줍니다 네츠케이프 익스플로러 pageX 페이지를 기준으로 이벤트가 발생한 X 좌표 clientX 클라이언트 영역 내에서 이벤트가 발생한 X 좌표 pageY 페.. 2008. 1. 2.
Writing Solid Code 요약 버그는 개발자의 책임이며, 개발자가 찾아 없애야 한다 일반적으로 테스팅 그룹은 소프트웨어 상품의 전체 버그중 60 퍼센트만을 발견해 낸다. 결국, 개발자들은 테스팅 그룹이 소프트웨어의 구석구석에 숨어 있는 모든 버그를 발견할 수 없다는 것을 인정하게 되었다. 버그를 발견하고 수정하는 것은 개발자의 책임이라는 점을 분명히 하자. 매일 거의 출하 가능한 상품을 만든다는 목표를 설정하고, 버그가 발견되면 다른 새로운 작업으로 넘어가기 전에 그 버그를 수정해야만 한다. 중요한 2가지 질문 * 어떻게 하면 이 버그를 자동으로 발견할 수 있었을까 * 어떻게 하면 이 버그를 막을 수 있었을까 모든 컴파일러 경고 옵션을 활성화 시킨다 (사소한 경고라도 신경을 써라. 언젠가 골치거리로 변할지 모른다.) 단위검사를 갖고 .. 2008. 1. 2.
pointer 와 reference 의 차이점 포인터는 그 포인터가 가리키는 대상을 변경 가능합니다. 그 대상의 물리적 위치 정보(시작 주소)를 저장하고 있으니까.... 레퍼런스는 가리키는 대상을 변경할 수 없습니다. 레퍼런스의 대상 변수가 어느것인가가 정해지는 것은 레퍼런스가 초기화(정의와 동시에 초기화)될 때 뿐이죠. 하지만 레퍼런스는 대상을 변경할 수 없는 대신에 역참조 연산자를 안붙이고 원래의 변수처럼 사용할 수 있습니다. 기능이 제한된 아주 특수한 형태의 포인터라고 해도 됩니다. (이게 레퍼런스의 용도라고 할 수 있죠. 사실상 참조에 의한 호출을 위해서만 사용합니다.) C++에서 레퍼런스가 생겼어도 포인터는 여전히 그 유용성을 갖고 있죠. 어느 한 변수 이름이 가리키는 대상을 제어의 조건에 따라 간단히 변경할 수 있다는 것은 대단히 매력적인.. 2008. 1. 2.
struct 와 typedef struct 의 차이점 struct _tagPoint{ int x; int y; }; POINTS는 선언되지 않은 심볼이므로 struct _tagPoint POINTS;라고 하면, POINTS라는 이름의 구조체 변수가 생성됩니다. 당연히 POINTS는 타입으로 선언된 것이 아니므로 POINTS s;라는 구문은 오류입니다. struct의 임무는 뒤에 나오는 식별자 _tagPoint가 구조체 태그이름임을 나타내는 지시어입니다. 이는 C와의 하위 호환성을 위해 남겨둔 것으로, C++에서는 선택적으로 사용해도 되고, 사용하지 않아도 상관 없습니다. C에서 변수선언은 기본적으로 "변수 선언이 가능한 키워드로 시작"될 때만 변수 선언으로 인식하도록 되어 있는 구조입니다. 따라서 한 문장의 시작이 int, char, void 등의 타입을 .. 2008. 1. 2.