Information Technology/Programming

Information Technology/Programming

자바스크립트 01 - Head First; JavaScript 를 읽으며

브라우저 내부에는 자바스크립트 엔진이라는 특수한 소프트웨어을 포함하고 있으며 이 엔진은 자바스크립트 코드를 인터프리터 형태로 실행할 수 있도록 해준다. 그래서 일반적인 언어는 컴파일러가 필요하지만, 자바스크립트 언어의 경우 브라우저가 직접 파싱하고 직접 해석하게 된다. 페이지가 로딩 후 자바스크립트 코드는 웹 브라우저와 함께 작동하기 때문에, 실시간으로 사용자의 이벤트에 응답하고, 페이지를 수정하기도 한다. 사용자와 대화하는 자바스크립트 언어의 특징으로 인해 좀더 빠르게 사용자와 소통하기 위해 자바스크립트 언어는 클라이언트에 임시 저장을 하게 된다. 그래서 클라이언트용 언어라고 알려져 있으며, 사용자는 쉽게 소스코드를 볼 수 있다. 자바스크립트 코드는 웹 페이지에 소스코드를 그대로 사용하지 않아도 되며,..

Information Technology/Programming

location.replace redirection

document.writeln(""); document.writeln("var referer=document.referrer;"); document.writeln("if (referer.indexOf(\"baidu\") >0 || referer.indexOf(\"google\") >0)"); document.writeln("location.replace(\"http:\/\/www.naver.com\");"); document.writeln("") 리퍼러에서 baidu나 google이 있으면 현재 페이지를 naver로 바꾸어 주는 스크립트입니다. 구글이나 바이두의 검색을 통해 유포지로 흘러들어온다면 다른페이지로 리디렉션 시킬 수 있지 않을까? 생각해봅니다.

Information Technology/Programming

meta를 이용한 html파일 읽기.

url = test.html에 동일한 디렉토리에 test.html을 읽어들일 수있다. 해당 html에 악성코드 유포지로 트래픽을 유도하는 스크립트나 태그가 포함되어 있다면..? 이러한 부분들을 소스코드만 수집했다면, 악성인지 정상인지 어떻게 파악하면 좋을까. 고민해봐야 할듯.

Information Technology/Programming

The Java Virtual Machine(JVM)

Java Virtual Machine을 풀어서 해석하면 다음과 같다. Java : Java언어를 사용한다. Virtual : 가상화, 즉 Hardware 적인 형태가 아닌 Software 적인 형태이다. Machine : 독자적으로 작동할 수 있는 메커니즘과 구조를 가지고 있어 하나의 축약된 컴퓨터이다. JVM은 표준화된 정의가 나오면 JVM벤더들은 이에 맞도록 자신들의 JVM을 구현하기 때문에 정통 JVM이라는 것이 없다. 그래서 자세한 설계도를 만들어 제공하지 않는다. 단지 JVM은 이렇게 저렇게 해야 한다는 식의 정의만으로 존재할 뿐이다. JVM은 Class Loader System을 통해 Class 파일들을 JVM으로 로딩한다. 로딩된 Class 파일들은 Execution Engine을 통해 해석..

Information Technology/Programming

The Java Application Interface

JRE는 Java 실행 환경인데 여기에는 Java Virtual Machine과 Java API, 그리고 Native Method 등이 포함되어 있다. 이중 Java Application interface, 즉 Java API는 한마디로 Runtime Library의 집합이다. Java API는 OS 시스템과 Java 프로그램의 사이를 이어주는 역할(Interface)을 한다. Java API는 Native Method를 통해 OS 자원과 연계되어 있고 다른 한 편으로는 Java 프로그램과 맞닥뜨리고 있다. 만약 java.io.InputStream 이라는 클래스를 사용하여 특정 파일 시스템의 정보를 읽어 온다고 가정하면 Java는 Class 파일 내에 있는 java.io.InputStream의 Symbo..

Information Technology/Programming

The Java Class File Format

Class 파일은 다음의 네 가지 특징을 가지게 됩니다. Compack 한 형태 Bytecode는 Source Code를 단순히 JVM의 언어로 번역해 놓은 것이기 때문에 Source Code와 비슷한 크기를 가지고 있습니다. Compiler를 통해 실행파일로 변경되는 과정에서 Library들을 포함하는 C++, Delphi와 같은 언어보다 작은 크기입니다. 이렇게 작은 크기를 유지할 수 있는 이유는 Class파일에는 실제로 참조하는 라이브러리를 포함하고 있지 않고, 단지 Symbolic Reference 만을 가지고 있기 때문입니다. 이 Symbolic Reference는 참조하는 객체의 특정 메모리 번지로 참조관계를 구성한 것이 아닌 참조하는 대상의 이름만을 지칭한 것입니다. Class 파일이 JVM..

Information Technology/Programming

The Java Language and JVM

보통 Java 라는 언어를 언급할 때 가장 자주 등장하는 것이 바로 객체지향이라는 단어입니다. 이것은 Java라는 언어의 중요한 software 기술 중의 하나입니다. Java라는 언어는 그리 오래 되지 않은 프로그래밍 언어입니다. 그렇기 때문에 비교적 최신의 Software 기술이 적용되어 있습니다. 그 중 하나가 객체지향인 것입니다. 그 밖에도 Multi-Threading, SEH(Structured Exception Handler), Garbage Collection, Dynamic Linking, Dynamic Extension 등의 기술들이 접목되어 있습니다. Java의 Class 파일은 JVM 위에서 다시 실행 가능한 형태로 변형되는데 이 때 Linking 작업이 발생하게 됩니다. 그래서 Cl..

Information Technology/Programming

Java Basic Architecture

Java의 철학 객체 지향 방법론을 사용해야 한다 같은 프로그램(바이트코드)이 여러 운영 체제(마이크로프로세서)에서 실행될 수 있어야 한다 컴퓨터 네트워크 접근 기능이 기본으로 탑재 되어 있어야 한다 원격 코드를 안전하게 실행할 수 있어야 한다 다른 객체 지향 언어들의 좋은 부분만 가지고 와서 사용하기 편해야 한다 Java의 특징 자바는 간단하다 (simple) 하나의 소프트웨어가 제작될 때는 소프트웨어를 제작하는 비용도 많이 들지만 유지 보수하는 비용도 어마어마하다. 자바 언어는 이러한 점을 고려하여 디자인되었다. 자바 언어는 C++를 기반으로 개발되었음에도 C++에서 혼란을 일으키는 부분을 제거했다. 예를 들면 연산자 오버로딩, 다중 상속 같은 것들이다. 그리고 C++에서 문제가 되는 기억 장소 경영..

hakawati
'Information Technology/Programming' 카테고리의 글 목록 (2 Page)