정보시스템 SW 개발보안(시큐어 코딩 secure coding) 가이드
참고 자료
'Development > Java' 카테고리의 다른 글
| 같은 패키지 내의 File 을 상대 경로로 가져오기 (0) | 2012.04.28 |
|---|---|
| Java 암호화 구현 (0) | 2012.04.28 |
| Dead code (0) | 2012.04.19 |
| Javadoc 이클립스에서 한글 출력 (0) | 2012.04.19 |
| SHA1 해쉬 구하는 클래스 (0) | 2012.04.12 |
정보시스템 SW 개발보안(시큐어 코딩 secure coding) 가이드
참고 자료
| 같은 패키지 내의 File 을 상대 경로로 가져오기 (0) | 2012.04.28 |
|---|---|
| Java 암호화 구현 (0) | 2012.04.28 |
| Dead code (0) | 2012.04.19 |
| Javadoc 이클립스에서 한글 출력 (0) | 2012.04.19 |
| SHA1 해쉬 구하는 클래스 (0) | 2012.04.12 |
★ AJAX : Asynchronous JavaScript + XML
JavaScript를 사용한 비동기 통신, 클라이언트와 서버간에 XML 데이터를 주고받는 기술
1. AJAX 장점
2. AJAX 단점
3. 기존방식과 AJAX의 차이
1) 기존방식
- 웹 브라우저가 웹 서버에 요청 전송
- 웹 서버는 JSP 등의 서버 어플리케이션을 사용해 사용자의 요청 처리 후 결과를 HTML로 생성해서 웹 브라우저에 전송
- 웹 브라우저는 응답으로 받은 HTML을 분석한 뒤 그 내용을 화면에 그림
- 결과적으로 웹 브라우저가 웹 서버와 통신을 하고 요청 결과는 HTML로 생성되고 사용자 입장에서는 페이지 이동이 발생함
2) AJAX방식
- 사용자가 이벤트를 발생 > 자바스크립트는 DOM을 사용해서 필요한 정보를 구한 뒤, XMLHttpRequest 객체를 통해서 웹 서버에 요청을 전달
- 웹 서버는 XMLHttpRequest로부터의 요청을 알맞게 처리후 결과를 XML이나 단순 Text을 생성해서 XMLHttpRequest에 전송
- 서버로부터 응답이 도착하면 XMLHttpRequest 객체는 자바스크립트에 도착 사실을 알고 자바스크립트는 응답 데이터와 DOM을 이용해 사용자 화면에 반영
- 결과적으로 사용자 입장에서는 페이지 이동이 발생되지 않고 페이지 내부 변화만 일어남
4. AJAX의 주요 구성 요소
- XMLHttprequest : 웹서버와
통신을
담당함. 사용자의
요청을
웹서버에
전송
및
웹서버로부터
받은
결과를
웹브라우저에
전달함
- DOM : 문서의
구조를
나타냄, 폼
등의
정보나
화면
구성을
조작할때
사용함
- CSS : 글자색,배경색,위치,투명도
등 UI관련
부분을
담당
- 자바스크립트 : 사용자가
마우스를
드래그하거나
버튼을
클릭하면 XMLHttpRequest객체를
사용해
웹서버에
요청을
전송함.
XMLHttpRequest 객체로부터
응답이
오면 DOM, CSS등을
사용해
화면을
조작함.
출처 - http://blog.naver.com/jhoh86?Redirect=Log&logNo=10133727118
Ajax(Asynchronous JavaScript and XML, 에이잭스)는 대화식 웹 애플리케이션의 제작을 위해 아래와 같은 조합을 이용하는 웹 개발 기법이다.
DHTML이나 LAMP와 같이 Ajax는 자체가 하나의 특정한 기술을 말하는 것이 아니며, 함께 사용하는 기술의 묶음을 지칭하는 용어이다. 실제로 AFLAX와 같이 사실상 Ajax에 바탕을 두고 있는 유사/복합 기술들이 속속 나타나고 있다.
Ajax 애플리케이션은 실행을 위한 플랫폼으로 위에서 열거한 기술들을 지원하는 웹 브라우저를 이용한다. 이것을 지원하는 브라우저로는 모질라 파이어폭스, 인터넷 익스플로러, 오페라, 사파리,구글 크롬 등이 있다. 단, 오페라는 현재 XSL 포맷팅 객체와 XSLT 변환을 지원하지 않는다.[1]
목차[숨기기] |
기존의 웹 애플리케이션은 브라우저에서 폼을 채우고 이를 웹 서버로 제출(submit)을 하면 하나의 요청으로 웹 서버는 요청된 내용에 따라서 데이터를 가공하여 새로운 웹 페이지를 작성하고 응답으로 되돌려준다. 이때 최초에 폼을 가지고 있던 페이지와 사용자가 이 폼을 채워 결과물로서 되돌려 받은 페이지는 일반적으로 유사한 내용을 가지고 있는 경우가 많다. 결과적으로 중복되는HTML 코드를 다시 한번 전송 받게 됨으로써 많은 대역폭을 낭비하게 된다. 대역폭의 낭비는 금전적 손실을 야기할 수 있으며 사용자와 대화(상호 반응)하는 서비스를 만들기 어렵게도 한다.
반면에 Ajax 애플리케이션은 필요한 데이터만을 웹서버에 요청해서 받은 후 클라이언트에서 데이터에 대한 처리를 할 수 있다. 보통 SOAP이나 XML 기반의 웹 서비스 프로토콜이 사용되며, 웹 서버의 응답을 처리하기 위해 클라이언트 쪽에서는 자바스크립트를 쓴다. 웹 서버에서 전적으로 처리되던 데이터 처리의 일부분이 클라이언트 쪽에서 처리 되므로 웹 브라우저와 웹 서버 사이에 교환되는 데이터량과 웹서버의 데이터 처리량도 줄어들기 때문에 애플리케이션의 응답성이 좋아진다. 또한 웹서버의 데이터 처리에 대한 부하를 줄여주는 일이 요청을 주는 수많은 컴퓨터에 대해서 일어나기 때문에 전체적인 웹 서버 처리량도 줄어들게 된다.
장점
단점
이것은 이미 존재하던 기술이었지만, 2005년 초에 있었던 몇 가지 사례 이후로 인기를 끌기 시작했다. 먼저 구글이 구글 그룹스를 포함한 훌륭한 대화형 애플리케이션의 기반을 위해 비동기식 통신을 이용한 것이다. 두 번째로는 Ajax라는 용어가 AJAX: A new approach for a new application[2] 기사에서 등장한 것으로, 이후 빠르게 대중화되어 이 기법의 보급에 도움이 되었다.
현재 대화형 웹 페이지를 위한 도구로서 Ajax를 이용하는 애플리케이션들이 급격히 늘어나고 있으며, 이는 부분적으로 이용할 수 있는 애플리케이션 툴킷(예: Ruby on Rails, DWR)이 늘어나 프로그래머들이 구현하기가 쉬워진 때문이다.
대한민국에서도 네이버와 다음등을 비롯한 포털 업체에서 이 기술을 도입하고 있다.
Ajax라는 용어에 대해서 비판이 있어 왔는데, 어댑티브 패스(Adaptive Path)의 컨설턴트는 이 조어를 만든 사람[3]이 이미 있는 기법을 마케팅 수단(과 밈)으로써 사용하고 있다고 주장했다 [4][5] [6].
Ajax 기술이 이전에는 일반적인 이름이 없었기 때문에 이 용어 자체가 발전이 될 수 있었다. 그러나 이 기술을 이용해 가장 특출한 애플리케이션들을 만든 사람 중 하나인 한 구글 엔지니어가 그들이 사용한 기술이 '자바스크립트'라고 간주한다는 얘기도 있다. [7]
Ajax는 소프트웨어 개발에 대한 새로운 접근방식이 아니다. 보다 높은 관점에서 Ajax는 MVC 패턴의 뷰와 컨트롤러에 해당하는 기술이며, 이런 방식은 이전의 프로그래밍 환경인 델파이, MFC,MP3, 비주얼 베이직, 오라클 ADF, 윈도 Forms 등에서 이미 많이 사용하고 있던 것이다. 예를 들어 WebDAV를 사용하는 마이크로소프트 아웃룩 웹 액세스와 브라우저에서 직접 웹 서비스를 이용하는 웹 기반의 ERP 시스템 P2plus 같은 것들이 해당한다. 그러나 이전에는 표준적인 통신 모델이 없었기 때문에, 이들은 모두 독자적인 확장을 이용한다.
Ajax의 새로운 양상은 마이크로소프트의 인터넷 익스플로러만을 고려하면 되었을 예전의 기술과는 달리 이 같은 애플리케이션을 이용할 수 있는 브라우저가 다양해 졌다는 점이다.
Ajax 사용에 있어서, Ajax 기술을 지원하지 않는 브라우저를 위한 대체물을 만드는 것은 거의 힘들다. 이 같은 한계는 WAI 접근성 지침에 거스르는 측면이 있다.
한편, 웹 개발자들은 때때로 Ajax를 단순히 웹 페이지의 일부분을 대체하기 위해 사용한다. 비 AJAX 사용자가 전체 페이지를 불러오는 것에 비해 Ajax 사용자는 페이지의 일부분만을 불러올 수가 있다. 이것으로 개발자들이 비 AJAX 환경에 있는 사용자의 접근성을 포함한 경험을 보호할 수 있으며, 적절한 브라우저를 이용하는 경우에 전체 페이지를 불러오는 일 없이 응답성을 향상시킬 수 있다.
| ajax - xmlhttprequest (0) | 2013.06.26 |
|---|---|
| ajax - 보안 (0) | 2012.07.07 |
| Developer(s) | Hewlett-Packard,HP Software Division |
|---|---|
| Stable release | 11.0 |
| Operating system | Microsoft Windows and Unix (Load Generator only) |
| Type | Load testing tools |
| License | Proprietary |
| Website | HP LoadRunner software |
HP LoadRunner is an automated performance and testing product from Hewlett-Packard for examining system behaviour and performance, while generating actual load.[1] HP acquired LoadRunner as part of its acquisition of Mercury Interactive in November 2006.[2] HP LoadRunner can simulate hundreds or thousands of concurrent users to put the application through the rigors of real-life user loads, while collecting information from key infrastructure components (Web servers, database servers etc.)[3] The results can then be analyzed in detail, to explore the reasons for particular behavior. HP LoadRunner is sold as part of the HP IT Management Software category by the HP Software Division.
Consider the client-side application for an automated teller machine (ATM). Although each client is connected to a server, hundreds of ATMs may be open to the public. During peak times — such as 10 a.m. Monday, the start of the work week — the load may be much higher than normal. In order to test such situations, it is not practical to have a testbed of hundreds of ATMs. So, one can use an ATM simulator and a computer system with HP LoadRunner to simulate a large number of users accessing the server simultaneously. Once activities are defined, they are repeatable. After debugging a problem in the application, managers can check whether the problem persists by reproducing the same situation, with the same type of user interaction.
HP LoadRunner consists of several different tools: Virtual User Generator (VuGen), Controller, Load Generator, Analysis and the AJAX TruClient (new with V.11.0).[4]
Contents[hide] |
The Virtual User Generator (VuGen) is used to simulate the steps of real human users. VuGen can also run scripts for debugging.[5] VuGen lets the user record and/or script a test to be performed against an application under test, and play back and make modifications to the script as needed, such as defining Parameterization (selecting data for keyword-driven testing).[6]
HP LoadRunner supports more than 51 protocols including Web HTTP/HTTPS, Remote Terminal Emulator, Oracle and Web Services.[7] A protocol acts as a communication medium between a client and a server. For example an AS400 or mainframe-based application can use a terminal emulator to talk to a server, and an on-line banking application can use HTTP/HTTPS with some Java and Web services. LoadRunner can record scripts in both single and multi-protocol modes.[8]
During recording, VuGen records a tester's actions by routing data through a proxy.[9] The type of proxy depends upon the protocol being used and affects the resulting script. For some protocols, various recording modes are available to further refine the resulting script. When recording web activity, HP LoadRunner allows a user to choose one of three types of recording modes: GUI based, URL based and HTML based.[10]
HP LoadRunner allows users editing a script with VuGen to replace recorded values in a script with parameters. This is called parameterization.[11]
Parameterization is often used:
When the application needs
HP LoadRunner uses Correlation to handle dynamic content. Dynamic content refers to page components that are dynamically created during the execution of a business process, and the value may differ from the value generated in a previous run. Examples of dynamic content include the ticket number in an on-line reservation system, a transaction ID in an on-line banking application and most importantly the unique session ID that is created each time a user logs in. Such dynamic values must be correlated in order to run the recorded script. The script while running will return an error if such a dynamic value has not been correlated, since the value changes each time the user logs in.
If the dynamic content is a part of a previous server response, LoadRunner can correlate that value with future instances in which it must be sent back to the server. HP LoadRunner saves the changing values into parameters, which are used during simulation.[12]
Once a script is prepared in VuGen, it runs using the LoadRunner Controller.[13] The Controller manages and maintains the scenarios that are run. During a scenario run, the Controller allows monitoring of network and server resources. The Controller assigns virtual users and load generators to specific scenarios.[14]
Multiple machines can be set up to act as load generators in concert. To run a test of 1000 users, three or more machines can be set up with an HP LoadRunner agent installed on them. These machines are known as load generators because the actual load is generated from them. Each run is configured with a scenario that describes which scripts will run, when they will run, how many virtual users will run, and which load generators will be used for each script. The tester connects each script in the scenario to the name of a machine that is going to act as a load generator and sets the number of virtual users to be run from that load generator.This is called the working in HP load runner.[15] HP LoadRunner can control multiple load generators and collect results, and it can control load generators located at remote networks (through a firewall) if required.[16]
The Analysis tool takes the result from the completed scenario and prepares graphs and reports that are used to correlate system information and identify bottlenecks and performance issues.[17] All the graphs that contain data that may affect response time, for example, can be merged for a better understanding of the performance and to pinpoint performance problems. Once all the graphs are adjusted, an HP Load Runner report can be prepared, including related graphs, in HTML or Microsoft Word format.[18]
In May 2010, HP announced that an on-demand version of the application performance testing software would be available via Amazon Elastic Compute Cloud.[19] HP LoadRunner in the Cloud is first being offered as beta software in the U.S. and is available with pay-as-you-go pricing. The software is intended for performance testing for businesses of any size.[20] HP LoadRunner in the Cloud is part of a portfolio of cloud computing solutions offered by HP Software Division.[21]
LoadRunner Version History Control:
| Cloud Computing (0) | 2012.04.27 |
|---|---|
| 대용량 데이터 분석 기술 (Big Data Analytics) (0) | 2012.04.26 |
| 로케일(Locale)이란 (0) | 2012.04.19 |
| AWK & SED 예제 (0) | 2012.04.05 |
| PATH 환경변수 우선순위 (0) | 2012.04.05 |