'프로그래밍/웹 프로그래밍'에 해당되는 글 9건

  1. 2016.03.13 php 기초 실습
  2. 2016.03.13 php 입문 사전 지식
  3. 2016.02.21 html 중급?
  4. 2016.02.21 HTML 기초
  5. 2016.02.14 비즈니스 로직(Business logic)?
  6. 2016.02.14 웹서버(Web Server) / 웹 서버 어플리케이션(WSA)
  7. 2016.02.14 웹 프로그래밍 기초
  8. 2016.01.28 ASP(Active Server Page)
  9. 2016.01.25 IIS란?





내가 원한 것과 달리 한글이 특수문자로 번역되어 나온다.



다음의 설정을 해주자. 인코딩 방식을 변경해주지 않으면 웹 환경에서 한글을 원활히 쓸 수가 없다. (아마도 iis와 파일 사이의 문제인듯 ..)


->

.NET 에서는 문자열 처리를 명시적으로 지정하지 않는 한, 기본적으로 "System.Text.UTF8Encoding" 으로 처리를 합니다. 문제는 거기서 발생을 하지요.

해당 HTML 텍스트 한글 파일은 메모장에서 "ASCII" 형식으로 저장된 것이었고, 디코딩을 UTF-8 로 해버리니 당연히 깨질 수 밖에 없습니다.


라는 답변을 찾을 수 있었다. ANSI를 말하는 것인 듯하다. ASCII 표준에 각국에 맞는 상태로 변경을 한다고 하니..




작은 따옴표에서는 특수문자(\n 등)와 변수가 작동을 안한다는 강좌의 내용을 확인한다.

웹 페이지 상에서는 \n가 안 먹히길래 보니까.. <BR>로 개행할 수 있다.





배열은 다른 언어와 다를 게 없다... 고 하는 데 출력이 좀 웃긴다.




1차원 배열은 변수와 마찬가지로 " " 내부에 작성하게 될 경우 정상적으로 값이 보이는 반면,

2차원 배열은 저처럼 ehco $arr[0][0] 과 같이 해주지 않으면 arr 0 과 같이 값이 보인다..

마치 값이 아니라 포인터를 출력하고 있는 듯한 느낌인데.. 이거야 원..


아무튼 다음은 클래스다. 

php도 c와 마찬가지로 클래스를 구성할 수 있다.

심지어 기호도 ->다.




클래스 내에서 변수를 사용한다면 꼭 $this->a 와 같이 해주어야한다. 그 사실을 모르고 찾으니 암에 걸릴 뻔.. 친절한 분들 감사하다. 연산자는 애로우연산자는 물론 스코프 연산자(::)도  c와 같은 방식으로 사용한다.


다음은 폼이다.




폼을 이용할 때 register_globals 옵션을 안 키면 겪는 여러 문제 때문에 헤맸는데, 보안적인 문제 ex) 비밀번호가 맞으면 이동을 위해 지역 플래그를 변경하는 코드일 때, 그것을 전역에서 간섭할 수 있는 문제.. 같은 문제가 있으므로 키지 않고 쓰는 코딩 습관이 옳다고 한다.




'프로그래밍 > 웹 프로그래밍' 카테고리의 다른 글

php 기초 실습  (0) 2016.03.13
php 입문 사전 지식  (0) 2016.03.13
html 중급?  (0) 2016.02.21
HTML 기초  (0) 2016.02.21
비즈니스 로직(Business logic)?  (0) 2016.02.14
웹서버(Web Server) / 웹 서버 어플리케이션(WSA)  (0) 2016.02.14
Posted by GENESIS8

댓글을 달아 주세요




CGI는 위와 같은 구조를 가지는데.. ( HTML은 1과 4의 과정만 있음 )
보시는 바와 같이 HTML 보다 한단계 더 처리를 함으로써 계산과 처리 기능이 추가되었습니다. 이로인해 우리는 정적인 변화 없는 웹 페이지에서 변화가 자유롭고 방문자와 홈페이지 제작자간에 서로 상호작용이 가능한 웹 페이지를 만들 수 있게 된 것입니다.
그러나 여기서 주의해야 할 점은 3번에서 보듯이 CGI로 처리된 값은 HTML로 전송되어 집니다.
웹 브라우저는 HTML밖에 모르니 HTML로 바꿔서 보여줘야 하는 것입니다.
( PHP를 하려면 당연히 HTML을 알고 있어야겠죠? )

그러면 CGI와 PHP는 어떤 관계인가?

PHP는 약간 다르긴 하지만 일종의 CGI라고 볼 수 있습니다.


CGI는 일반적으로 웹서버로 요청이 들어오면 CGI 프로그램을 실행하여 하나의 프로세스를 생성하고 그 처리 결과를 웹서버로 전송한 후 프로세스가 종료되는 형식입니다.
100개의 요청이 들어오면 CGI 프로세스가 100개가 생성이 됩니다.

PHP는 CGI와 달리 아파치 웹서버에 모듈로 장착되어 있습니다.
따라서 매회 실행시마다 프로세스가 생성되는 CGI와 달리 하나의 프로세스에 여러개의 쓰레드를 생성하여 처리가 가능합니다. 

그래서 프로세스방식인 CGI 보다 쓰레드방식인 PHP가 성능이 우수합니다.



PHP는 무엇인가?

PHP (공식적 PHP Hypertext Preprocessor) 는 Server - side HTML-embedded 스크립트 언어입니다.
즉, PHP는 서버에서 실행되며 HTML을 포함한 스크립트 언어라는 말입니다.
HTML을 포함하고 있기 때문에 HTML 파일을 PHP 확장자 (.php )로 저장하여도 아무 지장없이 사용할 수 있습니다.

시작(<?php)과 끝 태그(?>)를 이용하여 HTML과 PHP를 구분합니다.



php도 세미콜론으로 한 문장을 파악하므로 줄의 끝에는 세미콜론이 필요.


주석은 // , # , /* */



Type (변수형)

진리값 , 정수 , 실수 , 문자열 , 배열 , 객체 , 리소스 , 널 총 8가지의 변수형


특수문자

의미

\n

 개행문자 ( 줄 바꿈 )

\r

 캐리지 리턴

\\

 역 슬래쉬

\t

 수평 탭

\"

 따옴표

\$

 달러 표시


<php?

?>

안의 내용이 php 내용이 된다.



2) 따옴표 내의 변수사용

큰 따옴표내에서는 변수의 사용이 가능합니다.
예를 들어 $name 이라는 변수에 "조명진" 이라는 문자열이 저장되어 있다면,
$str = "나의 이름은 $name입니다.";
라고 하였을 때 $str = "나의 이름은 조명진입니다."; 와 같은 효과를 가지게 됩니다.

2. 작은 따옴표

'나는 문자열이다.' 와 같이 작은 따옴표 안에 문자열을 넣으면 됩니다.
작은 따옴표를 이용한 방법은 큰 따옴표를 이용할 때와 차이가 있는데,
작은 따옴표 내부에 쓰여진 특수문자와 변수가 허용되지 않는 다는 것입니다.
echo '작은 따옴표 안에서는\n 특수문자와 변수가 $name 동작을 안해요.';
의 결과는 작은 따옴표 안에서는\n 특수문자와 변수가 $name 동작을 안해요. 처럼 그대로 표현됩니다.

3. 히어닥 문법

$str = <<<EOD
문자열이라네~
나도 문자열이라네~

EOD;


PHP에서는 0부터 시작하는 숫자형 인덱스와 foo 같이 문자로 구분하는 인덱스 두가지가 있습니다


<?
class Human {  //인간 클래스를 정의 합니다.

        var $Name;
        var $Age;
        var $Height;
        var $Weight;  

        function Eat ( ) { 먹는 행위를 함수로 정의 }
        function Walk ( ) { 걷는 행위를 함수로 정의 }
        function Work ( ) { 일하는 행위를 함수로 정의 }
        function Talk ( $words ) { 말하는 행위를 함수로 정의 }
}    

    $철수 = new Human; //인간 클래스를 이용해 철수 객체를 생성
    $철수->Eat(); // 철수야!! 밥먹어라~!
    $철수->Talk($철수->Age); // 철수야~ 몇살이야? 말해봐!!
?>

php에서는 클래스를 이렇게 정의한다.


상속도 있다.


<?

class Baby Extends Human { //인간 클래스를 상속받아 아기 클래스를 정의 합니다. }

?>


static은 지역 변수 허용,

전역 변수는 전역 위치에 선언하되 지역변수와 혼선시 global $a와 같이 식별가능

define("상수명","상수에 저장될 값");



미리 정의된 변수

변수에는 우리가 만들어 사용할 수 있는 변수와 미리 정의되어진 변수가 있습니다.
우선 미리 정의된 변수는 서버 종류, 버전 등이나 기타 환경에 따라 변하는 변수들입니다.
아파치와 PHP 각각 몇 개의 변수를 지정해 놓은 상태이며 이 변수들은 우리가 인위적으로 값을
수정하거나 일반 변수로 사용할 수 없습니다.

수퍼 전역변수

$_GET

 HTTP GET 방식으로 넘어온 변수

$_POST

 HTTP POST 방식으로 넘어온 변수

$_COOKIE

 HTTP 쿠키 변수

$_FILES

 업로드시 파일 정보 변수

$_SESSION

 세션 변수

$_SERVER

 웹서버와 PHP 환경에서의 환경 설정 변수

외부로 부터의 변수

내부에 선언없이 외부로부터 넘어오는 변수입니다.
예제를 보시면 이해가 가실 겁니다.


출처 : http://www.ezphp.net/lecture/lecture5.php

였었는데..


보던 곳이 <?php 와 <?에 의한 문제 발생이라던가, 코드가 제대로 실행되지 않는 등.. 상태가 좋지 않아 다른 곳으로.


출처 : http://www.apmsetup.com/php.php



논리 연산자




$a and $b
:  $a 와 $b 가 모두 참(true) 이면 참(true)

$a or $b
:  $a 와 $b 중 하나라도 참(true) 이면 참(true)

$a xor $b
:  $a 와 $b 중 하나만 참(true) 이면 참(true)

!$a
:  $a 가 참(true) 이면 거짓(false), 거짓(false) 이면 참(true)

$a && $b
:  $a 와 $b 가 모두 참(true) 이면 참(true)

$a || $b
:  $a 와 $b 중 하나라도 참(true) 이면 참(true)


$_POST[변수명]

$_POST[$변수명] -> PHP 설정 파일 (ini)의 register_globals = on 인 상태에서만 가능하다. 

register_globals를 켜면 변수등을 사용할 때 앞에 _SERER 등을 안 붙이거나 하는 등 전역변수를 편히 쓸 수 있지만.. 안전성이 떨어진다고 한다/



산술 , 대입 연산은 동일하니 생략.


비교 연산은 다음과 같이 한다.

if($a == "hi" && $b == "bye")


switch case도 동일하다. $변수 로 넣어야한다는 것 뿐..

그 외의 경우를 의미하는 default도 그대로다


include 제어문

<header.inc>

<?
$string = "Hello World";
?>


<output.php>

<?
include "./header.inc";

echo("$string");
?>



class는 C와 같으며, 상속은 자바와 같이 extends 를 사용한다.

상위 클래스 접근 시 parent 키워드를 사용할면 된다.


심지어 접근 연산자 (access modifier)도 있다;







'프로그래밍 > 웹 프로그래밍' 카테고리의 다른 글

php 기초 실습  (0) 2016.03.13
php 입문 사전 지식  (0) 2016.03.13
html 중급?  (0) 2016.02.21
HTML 기초  (0) 2016.02.21
비즈니스 로직(Business logic)?  (0) 2016.02.14
웹서버(Web Server) / 웹 서버 어플리케이션(WSA)  (0) 2016.02.14
Posted by GENESIS8

댓글을 달아 주세요

출처 원본 : http://www.homejjang.com/05/layout.php


테이블을 이용한 레이아웃(Layout)

홈페이지를 제작할때 가장 많이 사용되는 태그는 <table>태그입니다.(<tr>,<td>와 함께)

이유는 레이아웃을 잡을때 <table>태그만큼 효율적인 것이 없기 때문입니다.

대부분의 홈페이지는 top 부분과 left 부분에 네비게이션(메뉴)이 위치합니다.

이를 최대한 간단하게 만들어 보겠습니다.

<table width="800" cellpadding="0" cellspacing="0" border="0" align="center">
<tr bgcolor="#8080FF" align="center">
 <td width="100">홈페이지 로고</td>
 <td width="100">메뉴1</td>
 <td width="100">메뉴2</td>
 <td width="100">메뉴3</td>
 <td width="100">메뉴4</td>
 <td width="100">메뉴5</td>
 <td width="200"><!-- 여백 --></td>
</tr>
<tr height="5">
 <td colspan="7"><!-- 여백 --></td>
</tr>
</table>

<table width="800" cellpadding="0" cellspacing="0" border="0" align="center">
<tr>
 <td width="150" valign="top" bgcolor="#8080FF">
  <table width="130" cellpadding="5" cellspacing="0" border="0" align="center">
  <tr>
   <td>하위메뉴1</td>
  </tr>
  <tr>
   <td>하위메뉴2</td>
  </tr>
  <tr>
   <td>하위메뉴3</td>
  </tr>
  <tr>
   <td>하위메뉴4</td>
  </tr>
  <tr>
   <td>하위메뉴5</td>
  </tr>
  </table>
 </td>
 <td width="650" valign="top">
  <table width="600" cellpadding="0" cellspacing="0" border="0" align="center">
  <tr>
   <td>여기에 본문이 옵니다.</td>
  </tr>
  </table>
 </td>
</tr>
</table>

다소 복잡한 테이블이지만 실제로 만들어 보면 크게 어렵지 않습니다.

홈페이지 로고메뉴1메뉴2메뉴3메뉴4메뉴5
하위메뉴1
하위메뉴2
하위메뉴3
하위메뉴4
하위메뉴5
여기에 본문이 옵니다.

너비의 단위는 %를 사용하였지만 100% 레이아웃을 차지하는 홈페이지가 아닌 이상 % 보다는 픽셀을 사용하는 것이 보다 일반적입니다.

그리고 테이블의 셀안에 다시 테이블이 들어가는 것을 볼 수 있습니다.

테이블을 이렇게 중첩시켜 나가면서 복잡한 레이아웃을 구현합니다.

예제에서는 이미지를 전혀 쓰지 않았지만 대부분의 홈페이지 작업은 전체적인 화면의 이미지를 먼저 만들고 이 이미지를 잘라서 테이블을 이용하여 배치를 하는 방식으로 진행됩니다.




아이프레임이란 내부 프레임(inline frame)이라는 의미로 하나의 HTML문서내에서 다른 HTML문서를 보여주고자 할때 사용합니다.

일반적인 프레임(frame)과 비교해보면 아이프레임은 <frameset> 태그 사이에 올 필요가 없으며, 독립적으로 마치 <img> 태그를 사용하듯 문서내의 원하는 위치에 삽입할 수 있습니다.

아이프레임에서 사용할 수 있는 속성도 <img> 태그과 유사합니다.

src 속성

inline frame 내에 불러올 문서의 주소를 적어주면 됩니다.

홈짱 홈페이지를 불러오는 예제를 만들어 보겠습니다.

<iframe src="http://www.homejjang.com">

width와 height 속성

inline frame의 너비와 높이를 지정할 수 있습니다.

<iframe src="http://www.homejjang.com" width="600" height="300">

frameborder 속성

inline frame의 경계선의 두께를 지정할 수 있습니다.

<iframe src="http://www.homejjang.com" frameborder="0" width="600" height="300">

marginwidth와 marginheight

inline frame의 여백을 지정할 수 있습니다.

<iframe src="http://www.homejjang.com" frameborder="0" width="600" height="300" marginwidth="0"marginheight="0">

scrolling

inline frame내에서 스크롤바 사용여부를 지정할 수 있습니다.

<iframe src="http://www.homejjang.com" frameborder="0" width="600" height="300" marginwidth="0" marginheight="0" scrolling="yes">

scrolling 값을 no로 지정하면 스크롤바가 생기지 않습니다.




배경음악 사용하기 Bgsound와 Embed

좀더 분위기 있는 홈페이지를 만들기 위해서 배경 음악을 사용하는 경우가 많습니다. 그러나 방문자가 배경음악을 원하지 않는 경우도 있으므로 배경음악을 사용할때 아래의 내용을 고려해 봐야 합니다.

  1. 꼭 필요한 곳에만 배경 음악이나 배경음을 넣습니다.
  2. 배경음악을 사용자가 직접 제어 할 수 있도록 합니다. 배경음악을 원치 않는 사용자들이 쉽게 소리를 줄이거나 끌 수 있어야 합니다.
  3. 용량이 많은 배경음악은 페이지 로딩을 방해하는 요소로 작용할 수 있기에 페이지 전체적인 용량을 고려해서 배경음악을 선택합니다.

배경음악 사용 방법

① bgsound

<bgsound src="[Abba] Happy New Year.wma" loop="0">


bgsound element는 인터넷 익스플로러에서만 작동합니다. 그리고 화면에 아무런 내용이 출력되지 않으므로 방문자가 음악을 끄기가 힘듭니다.

loop 속성은 배경음악의 반복 횟수를 지정합니다. -1 이나 INFINITE 값으로 지정하면 계속적으로 반복됩니다.

② embed

<embed src="[Abba] Happy New Year.wma">



embed는 익스플로러뿐 아니라 다른 웹브라우저에서도 작동을 합니다. 그리고 웹브라우저상에 미디어 플레이어가 표시됩니다.

embed 엘리먼트에서 사용할 수 있는 속성은 아래와 같습니다.

  • autostart="true/false" : true의 경우 페이지 로딩시 자동실행되고 false로 지정하면 플레이 버튼을 눌러야 음악이 재생됩니다.
  • hidden="true/false" : 미디어 플레이어가 화면에 출력되는지 여부를 지정합니다.
  • loop="true/false" : 음악의 반복여부를 지정합니다.
  • width="수치" height="수치" : 미디어 플레이어의 크기를 지정합니다. 음악 파일인 경우는 상관없지만 동영상 파일을 재생할때 이 값을 적절하게 조절해 주면 좋습니다.
  • Showcontrols="value" : 미디어 플레이어, value 값은 0 , 1
  • VOLUME = "수치값" : 플레이 되는 음악의 소리 크기를 임의로 설정하는 속성입니다.
  • hspace="value" vspace="value" : 미디어 플레이어의 수직/수평 여백값을 조절하는 옵션입니다. IMG element에서 사용되는거와 동일합니다.
  • mute=1 : 음소거



입력양식(form)은 홈페이지에서 사용자에게 정보를 받을때 사용됩니다.

회원가입을 하거나 혹은 쇼핑몰에서 주문을 하는 경우 사용자의 정보를 입력받을 필요가 있습니다. 이때 입력양식(form) 페이지를 제공하여 정보를 입력하게한 다음 이를 처리하는 페이지를 만들어서 DB에 저장을 합니다.

회원가입 입력폼을 member.html 이라고 한다면 member_confirm.php 와같은 페이지를 만들어서 회원가입 처리를 합니다. 이때 member.html 페이지는 <form> 태그를 이용하여 간단하게 만들수 있지만 member_confirm.php 페이지는 입력받은 정보를 DB에 저장하는 역할을 하기 때문에 프로그래밍 처리를 해야 합니다.

그래서 HTML 만으로는 입력양식만을 만들 수 있을뿐 이를 DB에 저장하는 기능은 만들 수가 없습니다.

대부분의 웹프로그램이 사용자의 정보를 받아서 처리하는 프로세스를 가지므로 <form> 태그는 웹프로그램에서 아주 중요한 위치를 차지합니다.

입력양식(form)의 구성

<form> 태그는 입력양식의 범위를 지정할뿐 화면상에는 아무런 내용이 표시되지 않습니다.

<form>과 </form> 사이에 사용자가 실제적으로 값을 넣을수 있는 텍스트 박스나 체크 박스 등이 위치합니다.

회원가입을 하는 경우 이름이나 주소 등을 텍스트로 입력하는 경우도 있지만 성별이나 생년월일 등은 라디오 버튼이나 셀렉트 박스에서 선택하는 경우도 있습니다.

그러므로 <form>과 </form> 사이에 위치하는 다양한 <form> 요소들을 모두 익혀야 상황에 맞는 입력양식을 만들수 있습니다.

<form> 태그의 속성

<form> 태그에서 사용할 수 있는 주요 속성은 method와 action이 있습니다.

<form method="get" action="member_confrim.php">

</form>

(1) method
웹서버와의 통신 방법을 지정합니다. post와 get 두가지 값 중 하나를 사용할 수 있습니다.

(2) action
입력양식에 입력된 값을 받아서 DB에 저장하는 페이지를 지정합니다. 이는 php나 asp와 같은 웹스크립트 언어를 이용하여 제작합니다.


Fieldset과 Legend element

fieldset element는 서로 연관성있는 컨트롤들을 하나로 묶을 수 있도록 해 주며, legend element는 제목을 붙이는 역할을 합니다. 어떻게 보면 legend element를 사용하기 위해서 fieldset element를 사용한다고 볼 수도 있습니다.

<fieldset>
    <legend><b>메일링 리스트</b></legend>
    <input type=checkbox>html
    <input type=checkbox>css
    <input type=checkbox>javascript
</fieldset>

간단한 예제이니 한번 만들어보면 쉽게 이해가 갈겁니다.

메일링 리스트html css javascript



마퀴 엘리먼트(Marquee element) 스크롤 되는 영역을 지정

 marquee element 는 스크롤 되는 영역을 지정합니다. 

<marquee>와 </marquee> 사이에 텍스트나 이미지 등이 위치하면 스크롤이 됩니다. 제한된 공간에서 보다 많은 정보를 보여주기 위한 용도로 사용됩니다.

direction

direction 속성은 움직이는 방향을 지정합니다.

<marquee direction="right">오른쪽 방향으로 흐르는 텍스트...</marquee>
<marquee direction="left">왼쪽 방향으로 흐르는 텍스트...</marquee>
오른쪽 방향으로 흐르는 텍스트...왼쪽 방향으로 흐르는 텍스트...


behavior

behavior 속성은 컨텐츠가 어떻게 스크롤 될것인지를 지정합니다.

  • scroll : 기본값으로 마퀴 영역의 경계에서부터 스크롤됩니다.
  • slide : scroll과 거의 동일하지만 마퀴 영역의 경계에서 더이상 스크롤 되지 않고 멈춥니다. 컨텐츠가 화면상으로 슬라이딩 되면서 출력되는 느낌입니다.
  • alternate : 마퀴 영역의 경계까지 갔다가 다시 돌아옵니다. 왔다 갔다하면서 화면상에 언제나 보이죠.
아래 예제를 보시면 쉽게 이해할 수 있습니다.

<marquee behavior="scroll">behavior="scroll"</marquee>
<marquee behavior="slide">behavior="slide"</marquee>
<marquee behavior="alternate">behavior="alternate"</marquee>
behavior="scroll"behavior="slide"behavior="alternate"



scrollamount

scrollamount 속성은 한번 스크롤될때마다 얼마만큼 스크롤되는지를 지정합니다. 기본값은 1픽셀입니다.

<marquee scrollamount="10">scrollamount 속성을 10픽셀로 지정</marquee>

위와 같이 scrollamount 속성을 10픽셀로 지정하면 한번 스크롤될때마다 10픽셀씩 움직이므로 좀더 빠르게 움직이는 느낌을 받습니다. 그러나 이 값을 지나치게 높이면 자연스럽지 못하므로 적당하게 올려야 합니다.

scrollamount 속성을 10픽셀로 지정



loop

loop 속성은 스크롤되는 횟수를 지정합니다. 기본값은 -1 이며 이는 계속적으로 반복해서 스크롤 된다는 의미입니다.

<marquee loop="1">loop 속성을 1로 지정</marquee>

위와 같이 loop 속성을 1로 지정하면 한번만 스크롤되고 더이상 스크롤되지 않습니다.

loop 속성을 1로 지정

width와 height

marquee element 는 스크롤 되는 영역을 지정하므로 그 영역의 width와 height를 지정할 수 있습니다.

<marquee width="300" height="100" bgcolor="#8080FF">loop 속성을 1로 지정</marquee>
loop 속성을 1로 지정


기타

align, hspace, vspace, transparency 등의 속성을 사용할 수 있습니다.



이미지맵(image map)

이미지맵은 하나의 이미지에 여러개의 링크를 걸때 사용합니다.

이미지맵을 사용하면 HTML 소스가 간단해 지는 장점이 있습니다.

<img src="imgmap.gif" alt="imgmap.gif" usemap="#001" border="0">
<map name="001">
 <area shape="rect" coords="42,41,154,66" href="/01/homepage.php" target="_blank">
 <area shape="rect" coords="42,76,152,100" href="/03/html.php" target="_blank">
 <area shape="rect" coords="40,113,150,138" href="/05/html2.php" target="_blank">
</map>
imgmap.gif 

먼저 이미지맵을 적용할 이미지에 usemap 속성을 사용하여 이미지맵의 이름을 지정해 주어야 합니다.

<img src="imgmap.gif" alt="imgmap.gif" usemap="#001" border="0">

001이라는 이름을 가진 이미지맵을 사용하겠다는 의미이니다. 이때 #을 사용함에 주의를 기울여야 합니다.

그리고 나서는 <map>태그를 사용하여 이미지맵을 만듭니다.

<map name="001">
...
</map>

이미지맵에서 하이퍼링크의 영역을 지정하기 위해서 <area>태그를 사용합니다.

<area>태그의 shape속성은 이미지맵의 형태를 지정합니다. rect(사각형), circle(원형), poly(다각형) 등의 속성값을 가질 수 있습니다.

coords속성은 좌표값을 지정합니다. 이미지의 왼쪽 모서리를 기준으로 하이퍼링크 영역의 시작과 끝 부분을 지정합니다.

이 coords속성값을 지정하기가 까다롭습니다. 그래서 이 부분은 텍스트 에디터에서 직접 코딩하지 않고 이미지맵을 생성하는 유틸리티를 사용하는 것이 좋습니다.

나모나 드림위버를 사용하면 이미지 상에서 영역을 지정하기에 아주 쉽게 이미지맵을 생성할 수 있습니다.

그러나 텍스트 에디터를 사용하는 경우 이 부분이 불편합니다.

이미지맵을 생성하는 프로그램을 이용하면 이미지상에서 바로 영역을 지정하고 이를 HTML 문서로 저장할 수 있어 텍스트 에디터의 단점을 보완해 줄 수 있습니다.


오브젝트 엘리먼트(Object element) HTML 문서에 멀티미디어 삽입

object element 는 문서내에 플래시나 동영상과 같은 개체(Object)를 삽입하는데 사용됩니다.

HTML 문서에 개체를 삽입하는 태그는 여러가지가 있습니다. 동영상과 음악과 같은 멀티미디어를 삽입하는 embed, 자바 애플릿을 삽입하는 applet 엘리먼트 등이 있습니다. 최근의 추세는 object 엘리먼트로 통합되는 방향입니다.

embed 와 object 의 차이점

embed 엘리먼트는 개채삽입으로 자신의 컴퓨터에 해당 미디어파일을 실행할수 있는 프로그램이 없다면 실행이 되지 않습니다. 그러나 object 엘리먼트는 웹에서 개채를 로드해서 재생되므로 프로그램이 없어도 실행이 가능합니다.

HTML 페이지에 멀티미디어를 추가하는데 embed 엘리먼트도 사용할 수 있지만 embed 엘리먼트를 사용하면 보다 다양한 미디어를 사용 가능합니다.

플래시 삽입

<object type="application/x-shockwave-flash" data="images/menu.swf" width="500" height="70">
    <param name="movie" value="menu.swf" />
</object>

슬라이더 삽입

<object classid="clsid:F08DF954-8592-11D1-B16A-00C0F0283628" id="Slider1" width="100" height="50">
    <param name="BorderStyle" value="1" />
    <param name="MousePointer" value="0" />
    <param name="Enabled" value="1" />
    <param name="Min" value="0" />
    <param name="Max" value="10" />
</object>

퀵타임 무비 삽입

<object width="160" height="144" classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B" codebase="http://www.apple.com/qtactivex/qtplugin.cab>">
    <param name="src" value="test.mov">
    <param name="autoplay" value="true">
    <param name="controller" value="false">
    <embed src="sample.mov" width="160" height="144" autoplay="true" controller="false" pluginspage="http://www.apple.com/quicktime/download/"></embed>
</object>

리얼 비디오 삽입

<object width="320" height="240" classid="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA">
    <param name="controls" value="ImageWindow" />
    <param name="autostart" value="true" />
    <param name="src" value="test.ram" />
</object>





HTML과 XHTML

XHTML은 HTML의 단점을 보안하기 위해서 만들어진 언어라 할 수 있습니다. 문법적으로 xml을 따랐다고는 하나 대부분 HTML과 큰차이를 보이지 않습니다. 그러므로 HTML을 기본적으로 아는 사람들은 HTML과 XHTML의 차이만 이해하면 XHTML을 어렵지 않게 사용할 수 있습니다.

다음은 HTML과 XHTML의 차이점입니다. 전체적으로 HTML에 비해 문법적으로 엄격해 졌습니다. 두리뭉실한 HTML, 까칠한 XHTML 입니다.^^

종료태그가 반드시 있어야 한다.

HTML 은 종료태그가 없는 것을 허용하였습니다.

<p>문단
<p>문단


이런식으로 종료태그(</p>)를 붙히지 않아도 문제가 생기지 않았습니다. XHTML 의 경우 반드시 종료태그를 사용하여 닫아주어야 합니다.

잘못된 중첩을 허용하지 않는다.

HTML 은 태그가 잘못 중첩되어도 화면표시(렌더링)에 별 영향을 미치지 않았지만 XHTML의 경우 잘못된 중첩은 화면표시(렌더링)에 직접적인 영향을 주기도 합니다.

요소(element)와 속성(Attribute)은 소문자로 표기되어야 한다.

HTML은 요소와 속성에 대소문자를 함께 사용하는 것을 허용하였으나 XHTML은 요소와 속성들을 반드시 소문자로 표기해야 합니다. xml이 대소문자를 구별하기 때문입니다. HTML에서는 대소문자의 구별이 없죠.

속성 ‘값’들은 항상 따옴표로 감싸주어야 합니다.

HTML 의 경우 속성 값들을 따옴표로 감싸지 않는 것을 허용하였지만 XHTML 에서는 반드시 속성값은 따옴표 안에 있어야 한다.

<p align=center>로 하면 안되고 <p align="center">와 같이 반드시 따옴표를 사용해야 합니다.

속성과 값의 단축표기를 허용하지 않는다.

HTML 에서는 속성과 속성 값의 단축표기를 허용하였으나 XHTML 에서는 단축표기 하는 것을 허용하지 않습니다.
<input checked> 는 <input checked="checked"> 와 같이 사용해야 합니다.

비어있는 태그(종료태그가 없는 태그)도 종료 되어야 한다.

HTML 에서 <br>, <hr> 과 같이 콘텐트를 담지 않는 빈 태그들은 <br />, <hr /> 과 같이 표기하여 시작태그에서 곧 종료됨을 표기해 주어야 한다.

XHTML의 필요성?

간단하게 나마 XHTML이 HTML에 비해서 어떤 점이 틀리다는 것을 짚어봤습니다. 서두에서도 말했듯이 문법적으로 좀더 엄격해 졌다고 할 수 있죠. 이런 엄격함으로 인해 보다 다양한 브라우저에서 정확하게 문서가 표시될 수는 있습니다. 예를 들어서 PDA에서 사용되는 웹브라우저에서도 PC의 웹브라우저와 거의 똑같은 화면을 표시할 수 있다는 겁니다. 아무래도 다소 느슨한 HTML로는 웹브라우저가 달라지면 다른 모양으로 보일 여지가 많거든요.

그래도 XHTML은 홈짱닷컴에서 자세하게 다루지 않을 예정입니다.

HTML 보다 분명 장점을 가지고 있지만 현실적으로 HTML을 대체하는 새로운 마크업이 된다는 보장은 없습니다. 아직도 대부분의 홈페이지에서는 아무런 문제없이 HTML을 잘 쓰고 있고 변화의 움직임도 크지 않기 때문이죠. 물론 분위기가 XHTML로 바뀌면 XHTML 강좌도 추가하겠지만요^^;

XHTML에 대한 좀더 자세한 내용은 related link를 참고하시면 됩니다.
































'프로그래밍 > 웹 프로그래밍' 카테고리의 다른 글

php 기초 실습  (0) 2016.03.13
php 입문 사전 지식  (0) 2016.03.13
html 중급?  (0) 2016.02.21
HTML 기초  (0) 2016.02.21
비즈니스 로직(Business logic)?  (0) 2016.02.14
웹서버(Web Server) / 웹 서버 어플리케이션(WSA)  (0) 2016.02.14
Posted by GENESIS8

댓글을 달아 주세요

원본 출처 : http://www.homejjang.com/03/Tag_element_attribute.php
ㄴ 이곳의 내용들을 가져온 것...


요소(Elements)

HTML에서 시작 태그와 종료태그로 이루어진 모든 명령어들을 의미합니다.

태그(Tag)

요소(Elements)의 일부로 시작 태그와 종료 태그 두 종류가 있습니다.

시작 태그는 요소를 시작하며, 종료태그는 요소를 끝내는 기능을 가지고 있습니다.

일부 태그 중에는 종료 태그가 없는 것도 있습니다.

요소와 태그의 개념이 뚜렷이 구별되지 않고 혼용되는 경우가 많은데 HTML을 배우는데는 굳이 요소라는 말을 쓰지 않아도 되지만 CSS나 Javascript를 배울때는 요소라는 말이 아주 중요한 용어가 됩니다.
1<p>하나의 문단내용이 여기에들어 옵니다.</p>
위의 예제에서 요소는 <p>하나의 문단내용이 여기에들어 옵니다.</p> 전체를 의미합니다. 그러나 태그는 <p>와 </p>만을 의미하죠.

속성(Attributes)

요소의 시작 태그 안에서 사용되는 것으로 좀 더 구체화된 명령어 체계를 의미합니다.
1<p align="center">태그에 속성을 부여하면 태그의 성격을 좀더 구체화 시킵니다.</p>
<p>태그안에 align 이라는 속성(Attributes)을 추가적으로 사용하였습니다.

단순히 <p>는 문단을 의미하지만 <p>안에 정렬을 의미하는 align 이라는 속성을 사용하면, 중앙정렬을 하는 문단을 의미합니다.

변수(Arguments)

속성과 관련된 값입니다.

위의 예제에서 align 이라는 속성에 center라는 변수를 지정했습니다.


HTML은 공백(스페이스)과 엔터를 여러번 입력하더라도 하나의 공백으로만 인식합니다.

그래서

홈짱닷컴의
홈페이지 제작강좌는
아주          쉽습니다.

이처럼 엔터와 공백을 여러번 입력하더라도 아래와 같이 한줄로 출력됩니다.

홈짱닷컴의 홈페이지 제작강좌는 아주 쉽습니다.

줄바꾸기 기능을 하는 가장 일반적인 태그는 <p> <br>태그입니다.

하나의 문단을 의미하는 <p> 태그

p는 paragraph의 약자로 문단을 의미합니다.

<p>태그와 </p>태그 사이에 위치하는 내용이 하나의 문단을 구성합니다.

<p>첫번째 문단(paragraph)</p>
<p>두번째 문단(paragraph)</p>

위와 같이 코딩하면 아래와 같이 첫번째 문단과 두번째 문단 사이에 공백라인이 들어갑니다.

첫번째 문단(paragraph)

두번째 문단(paragraph)

한글의 경우에는 문단의 첫글자를 들여쓰기 하지만 영문의 경우에는 문단과 문단 사이에는 한줄의 공백이 있습니다.

강제 줄바꿈을 할때는 <br> 태그

br은 Line Break를 의미하며 우리말로 하면 강제 줄바꿈이라고 할 수 있습니다.

홈짱닷컴의<br>
홈페이지 제작강좌는<br>
아주 쉽습니다.

이렇게 줄바꿈을 할 위치에 <br> 태그를 넣어주면 아래와 같이 줄바꿈이 일어납니다.

홈짱닷컴의
홈페이지 제작강좌는
아주 쉽습니다.

<br> 태그의 남용을 피하자

글이 좌우로 너무 넓게 출력되면 가독성이 떨어지기에 글을 쓰면서 <br> 태그를 습관적으로 사용하는 경우가 많습니다.

그러나 가능한 글의 한문단을 의미하는 <p> 태그를 사용하고 넓게 출력되는 것을 방지하기 위해서 CSS를 함께 사용해 주는 방식이 좋습니다.

<p style="width:400px;">홈짱닷컴의 홈페이지 제작강좌는 초보자를 대상으로 합니다. 그러므로 가능한 쉬운 용어를 일관성 있게 사용할려고 노력하고 있습니다.</p>
<p style="width:400px;">홈짱닷컴의 HTML 강좌는 단순히 화면에 출력되는 문서의 모양만 설명하지 않고 보다 의미있는 HTML 문서를 작성하는 방법을 추구하고 있습니다.</p>

이와 같이 style 속성을 사용하면 문단의 좌우 폭을 지정할 수 있기 때문에 굳이 <br> 태그를 사용하지 않아도 자연스럽게 줄바꿈이 일어나게 할 수 있습니다.

홈짱닷컴의 홈페이지 제작강좌는 초보자를 대상으로 합니다. 그러므로 가능한 쉬운 용어를 일관성 있게 사용할려고 노력하고 있습니다.

홈짱닷컴의 HTML 강좌는 단순히 화면에 출력되는 문서의 모양만 설명하지 않고 보다 의미있는 HTML 문서를 작성하는 방법을 추구하고 있습니다.

style 속성은 CSS 강좌 부분에서 자세하게 다루는 내용이므로 HTML 강좌에서는 설명을 생략하도록 하겠습니다.




<a> 태그를 사용하면 링크를 만들 수 있습니다.

"a"는 앵커(Anchor)를 의미합니다.

href

<a> 태그는 기본적으로 href 속성을 가집니다. 이동할 페이지 주소를 적어주면 되죠.

<a href="http://www.naver.com">네이버</a>

target

<a> 태그에서 사용할 수 있는 또 하나의 중요한 속성은 target입니다.

target 속성은 링크가 걸린 페이지를 어떻게 열것인가를 결정합니다.

<a href="http://www.naver.com" target="_blank">네이버</a>

위와 같이 target 속성의 값을 _blank로 지정하면 새창에서 네이버 홈페이지가 열립니다.

네이버

title

<a>태그에서 살펴볼만한 3번째 속성은 title 속성입니다. 이는 링크의 이름을 지정하는 속성입니다.

<a href="http://www.naver.com" target="_blank" title="네이버 홈페이지 열기">네이버</a>

title을 지정해 주면 링크에 마우스를 올렸을때 타이틀이 표시됩니다. 아래 링크에 마우스를 올려서 확인해 보세요.

네이버




테이블 태그는 HTML 문서에서 가장 많이 사용되는 태그입니다.

테이블 태그에서 가장 기본적인 태그는 <table>, <tr>, <td> 이 3가지 태그입니다.

<table>태그는 테이블의 시작을 알려주는 태그입니다. 테이블의 끝은 </table>태그로 표시합니다.

<tr>태그는 table row의 약자로 행을 정의 합니다.

<td>태그는 table data의 약자로 각 행에 셀을 정의합니다. 즉 행에서 칸(열)을 나누는 기능을 합니다.

이를 이해하기 위해서 가장 간단한 1행, 1열을 가지고 있는 테이블을 만들어 보면 다음과 같습니다.

<table border="1">
<tr>
 <td>1*1 테이블</td>
</tr>
</table>

테이블의 경계선(border)을 지정해주어야 테이블의 모양을 볼 수 있습니다.

1행에 2개의 칸(열)을 가진 테이블은 다음과 같습니다.

<table border="1">
<tr>
 <td>1*1 셀</td>
 <td>1*2 셀</td>
</tr>
</table>

이번에는 행(row)을 확장하여 2*2 테이블을 만들어 보겠습니다.

<table border="1">
<tr>
 <td>1*1 셀</td>
 <td>1*2 셀</td>
</tr>
<tr>
 <td>2*1 셀</td>
 <td>2*2 셀</td>
</tr>
</table>

테이블을 만드는 순서는 먼저 테이블을 정의하고(table), 행(tr)을 지정한 다음, 그 행을 나누어서 셀(td)을 만드는겁니다.





HTML문서에 이미지를 삽입하는 방법

HTML문서에 이미지를 삽입하기 위해서는 <img>태그를 사용합니다.

<img src="이미지경로">

<img>태그의 가장 기본적인 속성은 이미지 경로를 지정하는 src 속성입니다.

만일 이미지 파일과 HTML 파일이 같은 폴더내에 있다면 그냥 이미지 파일명만 입력해 주면 됩니다.

이미지의 너비와 높이를 지정하기 위해서는 width 속성과 height 속성을 사용합니다. 이 속성을 지정해주지 않으면 기본적으로 이미지 자체의 너비와 높이로 삽입됩니다.

<img src="이미지경로" width="100" height="200">

이미지에 링크를 거는 경우 링크가 걸린 이미지라는 것을 표시해주기 위해서 기본적으로 이미지의 경계선이 1픽셀로 표시됩니다. 그래서 이 경계선을 없앨려면 border 속성을 0으로 지정해 줍니다.

<a href="url"><img src="이미지경로" border="0"></a>

위의 예제에서 border 속성을 지우고 테스트 해보면 쉽게 이해할 수 있습니다.

초보자들이 HTML문서에 이미지를 삽입할때 가장 실수를 많이 하는 부분이 바로 이미지 경로입니다.



'프로그래밍 > 웹 프로그래밍' 카테고리의 다른 글

php 입문 사전 지식  (0) 2016.03.13
html 중급?  (0) 2016.02.21
HTML 기초  (0) 2016.02.21
비즈니스 로직(Business logic)?  (0) 2016.02.14
웹서버(Web Server) / 웹 서버 어플리케이션(WSA)  (0) 2016.02.14
웹 프로그래밍 기초  (0) 2016.02.14
Posted by GENESIS8

댓글을 달아 주세요


원본 출처 :


http://www.terms.co.kr/


비즈니스 로직이란 업무에 필요한 데이터 처리를 수행하는 응용프로그램의 일부를 말한다. 이것은 데이터 입력, 수정, 조회 및 보고서 처리 등을 수행하는 루틴, 좀더 엄밀히 말하면 보이는 것의 그 뒤에서 일어나는 각종 처리를 의미한다. 대개 클라이언트 프로그램은 사용자 인터페이스와 비즈니스 로직으로 구성되며, 서버 프로그램은 대부분 비즈니스 로직만으로 되어 있다. 특히, 클라이언트/서버 모델인 경우에는 이외에도 통신링크가 추가되지만, 통신과 관련된 인프라스트럭처는 사용자 인터페이스처럼 비즈니스 로직의 일부는 아니다.


http://zetawiki.com/wiki/%EB%B9%84%EC%A6%88%EB%8B%88%EC%8A%A4_%EB%A1%9C%EC%A7%81


비즈니스 로직


business logic, business logic layer, business tier, logic tier

비즈니스 로직, 비즈니스 로직 계층, 비즈니스 티어, 비즈니스 계층, 논리 계층


업무절차를 정보시스템으로 구현하기 위한 자료구조와 알고리즘

데이터베이스와 UI간 정보교환을 제어하는 알고리즘

기술적인 표현이 아니라 개념적 표현임

3계층 소프트웨어 아키텍처에서 가운데 논리 계층













http://okky.kr/article/139274


보통 코딩시

 

action -> manager-> dao

 

방식으로 많이 쓰던데요

 

액션단 매니저단 dao단에서 각각 무엇을하는지

명확하게 좀 가르쳐 주실분 계신지요

 

제 생각으로는

 

액션에서는 파라미터 셋팅하고

매니저 에서는 비지니스 로직?

dao단에서는 당연히.. 쿼리를 날리는걸로 알고있는데

 

 

액션단에서 비지니스 로직도 하고 dao를 바로 콜하면 안되는건가요?

보통 비지니스 로직이 매우 간단하여..

액션단에다 대충 기술하고.. 구지 매니저 클래스에서

다시 dao를 호출할 필요가 없는 경우가 만터라구요

'(매니저 클래스에서 하는일은 그냥dao 호출뿐인데

클래스도 인터페이스까지 2개를 만들어야하구요...)

 

아무튼 위문제에 대해서

다들 어떻게 하시는지

그냥 패턴에 따라 코딩하시는지

아니면 저런 경우에는 액션에서 dao를 바로 콜하시는지

궁금합니다...



Action (controller 역할을 합니다. req의 유입, 분기, res 를 전달합니다)
Service (비즈니스 로직을 구현합니다,)
Dao (DB 자원을 억세스합니다.)



보통 클래스를 분리하는 이유는, 하나의 파일이 너무 많은 책임과 권한을 갖게 되면 당연히 스파게티 소스가 되고, 길어지기 마련이며, 유지보수하기 어렵기 때문입니다.

작은 단위의 unit 테스트나, 디버깅을 쉽게 가져가려는 부분, 서비스 영역의 비즈니스로직만 다이렉트 콜 해야 할 경우, 개발자가 여럿이 한 업무를 개발할 경우, MVC에 충실한 디자인을 고려해야 할 경우, 적절한 추상화를 해야 할 경우 등등등 파일의 영역을 역할에 맞게 분리하는것에 대해서는 oop적인 측면에서 장점이 많기 때문에 영역을 나누는것이죠.

그러면 어떻게 나누어야 하나?, 어떤 정도 레벨까지 추상화를 할것인가?
이건 정답이 없습니다. 각 상황에 맞게, 각 인력의 역량에 맞게 '잘' 하면 되는거죠

  • 퀵님 그렇다면...

    만약 비지니스 로직이 없거나 매우 간단하다면
    Service 단 호출 없이 바로 DAO를 호출해도 되는건지요?

    몇개 클래스만 DB처리후 소켓통신을 하고 나머지 클래스느 죄다 
    서비스단 없이 액션단에서 DAO를 호출해도 될것같아서 말입니다.

    이렇게 해도 되는걸까요 ^^
  • 비지님 struts - ibatis 로 구성된 소스 한번 보시구요..

    각 struts - ibatis의 jar까서 디랙토리 구조와 호출 구조보면 답이 나옵니다.
    왜 디렉토리를 그렇게 이름지었을까 ? 이고민만 하시면 해결됩니다. 

    바로 DAO를 호출해도 되는데요 만약 비지니스 로직이 추가되면?
    그래서 프레임워크 사상을 따르는것이 좋습니다. 악간의 반복코딩이 되더라도
    이미 통상적인 Layer는 존중을 하는게 최고입니다



 



정보를 좀 더 수집해야할 듯하다.





'프로그래밍 > 웹 프로그래밍' 카테고리의 다른 글

html 중급?  (0) 2016.02.21
HTML 기초  (0) 2016.02.21
비즈니스 로직(Business logic)?  (0) 2016.02.14
웹서버(Web Server) / 웹 서버 어플리케이션(WSA)  (0) 2016.02.14
웹 프로그래밍 기초  (0) 2016.02.14
ASP(Active Server Page)  (0) 2016.01.28
Posted by GENESIS8

댓글을 달아 주세요


출처 : http://round1tko.tistory.com/64




웹 서버와 WAS(Web Application Server)의 정의 ]

웹서버와 WAS는 비슷한 개념이기 때문에 같이 또는 다르게 사용되는 단어 가운데 하나이다. 인터넷 확산 초기에는 웹서버라는 개념으로 통칭해서 사용했지만, 시간이 지남에 따라 WAS를 더 많이 사용하고 있다. 인터넷 사용자가 증가함에 따라, 각 웹 사이트는 보다 많은 사용자에게 원활한 서비스를 제공하기 위해 기능적인 layer를 나누게 되었고 여기서 웹서버와 WAS의 구분점이 생기게 된 것이다.

기능적으로만 본다면, 거의 대부분의 웹 서버가 웹 애플리케이션을 동작시킬 수 있겠지만 모두 웹 서버 혹은 WAS라고 부르는 것보다는 어떤 기능을 수행하는지에 따라, 즉 기능상의 분류를 통해 구분지어 사용해야 할 것이다.

 

구분

웹서버

WAS

설명

1. 웹브라우저(Web Client)에게 컨텐츠를 제공하는 서버이다.  정적인 HTML이나 jpeg, gif같은 이미지를 HTTP 프로토콜을 통해 웹 브라우저에 제공한다.


2. 
최근에는 웹서버에서도 내부 애플리케이션을 동작시킬 수 있는 컨테이너를 내장하고 있다.

서버단에서 애플리케이션을 동작할 수 있도록 지원한다. 일반적으로 컨테이너라는 용어로 쓰인다. 초창기에는 CGI, 그 이 후에는 Servlet, ASP, JSP, ASP, PHP등의 프로그램으로 사용되고 있다.

 

 

[ 웹 서버와 WAS(Web Application Server)의 구성에 따른 분류 ]

 

1.     기본적인 웹 사이트 구성

  

<그림 1> 웹 사이트의 가장 기본적인 구성 환경이다. 모든 콘텐츠를 한 곳에 집중시켜 웹 서버와 WAS의 역할을 동시에 수행한다. 사용자가 많지 않거나 트래픽이 적을 때 효율적이며 간단한 구조로 개발 및 테스트 시스템 구성시 활용의 가치가 높다.

 

장점 : 사용자 증가에 따라 스위치 장비를 통해 로드 밸런싱을 수행하고, 여러대의 WAS를 통해 지원이 가능하다. 필요시에 추가로 WAS를 증설하는 구조라고 볼 수 있다.

단점 : WAS가 정적인 데이터(HTML/Image)의 처리와 동적인 데이터(웹 애플리케이션)의 처리를 동시에 수행하기 때문에 최적화 측면에선 바람직하지 않다. 또한 정적데이터의 입출력 처리를 위해 웹 애플리케이션의 수행을 방해할 수 있고, 그 반대의 경우도 있다.

 

2.     웹 서버와 WAS로 구성된 환경

 


 
<그림 2>는 웹 서버와 WAS의 기능적 분류를 통해 효과적인 분산을 유도한 형태이다. 정적인 데이터는 구조적으로 앞에 존재하는 웹 서버에서 처리하고, 동적인 데이터는 뒷단의 WAS가 처리한다.

사용자의 요청에 대해서 정적 데이터인 HTML과 자바스크립트 파일, CSS, Image 등을 앞단의 웹 서버에 위치시켜 처리함으로써 WAS로 서비스 요청이 넘어가지 않게 한다.

또한 웹 애플리케이션 서비스를 위치적으로 뒤편에 존재하는 WAS에 넘겨줌으로써 WAS는 웹 애플이케이션의 수행이 집중할 수 있다.

웹 서버 단에서 처리할 것과 WAS에게 넘겨질 것을 처리하는 방식은 웹 서버 단의 Configuration을 통해 처리할 수 있다. 특정 확장자나 디렉토리 업무를 WAS로 넘길지 여부는 웹 서버 단에서 처리한다.


 

3.     특정기능에 대한 서버를 별도로 두고 있는 환경


 

점점 화려해지는 UI를 자랑하는 페이지들이 많아짐에 따라 이미지의 비중이 증가하고, 이런 이미지들이 전체 네트워크 비중의 상당부분을 차지한다. 따라서 이미지 서버를 따로 구성해 네트워크 비중도 줄이면서 웹 서버와 WAS를 좀 더 효과적으로 사용할 수 있는 구조라 할 수 있다.

또는 특정 콘텐츠에만 집중적인 요청을 받는 경우도 있다. 예를 들어, 대학 입시 때 경쟁률 조회는 상당히 많은 사용자에 의해 조회가 되고, Reload 또한 빈번하게 일어나므로 특정시간 간격으로 HTML을 생성하고, 페이지를 특정 서버에 위치시켜 적절하게 부하를 분산시켜 해결이 가능하다.

 

장점 : 다양한 환경에 대한 대처가 빠름

 

단점 : 구조를 정확하게 이해하지 않았을 경우에는 개발 및 테스트에 많은 시간이 쓰임

  

 

4.     WAS단을 Logic으로 구분하여 구성

 

      

 

        <그림 4> <그림 2>의 변경된 형태이다. WAS단의 프로그램이 많은 비중을 차지하는 경우, Presentation Logic을 담당하는 프로그램과 Business Logic을 담당하는 프로그램을 구분하는 구성이다.이런 구성은 특정 로직 부분의 부하에 따라 적절한 대응을 할 수 있으나 구조가 복잡해지는 단점이 있다.

  

 

[ WAS 관련 용어 정의 ]

 

1.     자바 서블릿(Java Servlet)

자바를 사용하여 웹페이지를 동적으로 생성하는 서버측 프로그램 혹은 그 사양을 말하며, 흔히서블릿이라고 한다.

        자바 서블릿은 Java EE사양의 일부분으로, 주로 이 기능을 이용하여 쇼핑몰이나 온라인 뱅킹 등의 다양한 웹 시스템이 구현되고 있다.

        비슷한 기술로는 펄 등을 이용한 CGI, PHP를 아파치 웹 서버 프로세스에서 동작하게 하는 mod_php, 마이크로소프트사의 IIS에서 동작하는 ASP 등이 있다. CGI는 요청이 있을 때마다 새로운 프로세스가 생성되어 응답하는 데 비해, 자바 서블릿은 외부 요청마다 프로세스보다 가벼운 쓰레드로써 응답하므로 보다 가볍다. 또한 자바 서블릿은 자바로 구현되므로 다양한 플랫폼에서 동작한다.

 

2.     엔터프라이즈 자바빈즈(Enterprise JavaBeans, EJB)

EJB는 기업환경의 시스템을 구현하기 위한 서버측 컴포넌트 모델이다. , EJB는 애플리케이션의 업무 로직을 가지고 있는 서버 애플리케이션이다. EJB사양은 Java EE의 자바 API중 하나로, 주로 웹 시스템에서 JSP는 화면 로직을 처리하고, EJB는 업무 로직을 처리한다.

EJB의 종류는 세션 빈(Session Bean), 엔티티 빈(Entity Bean), 메시지 구동 빈(Message-driven Bean)이 있다.

 

3.     자바 메시지 서비스(Java Message Service, JMS)

JMS는 자바 프로그램이 네트워크를 통해 데이터를 송수신하는 자바 API이다.

 

4.     자바 가상 머신(Java Virtual Machine, JVM)

JVM 자바 바이트코드를 수행할 수 있는 환경이다. 자바 바이트코드는 주로 자바를 컴파일하여 생성하지만, 다른 언어의 컴파일러에서도 생성할 수 있다. 자바 가상 머신은 자바 플랫폼의 기반을 이루며 다양한 하드웨어 기반 플랫폼에 포팅된다. JVM 자바 플랫폼의 주요한 부분이며 마이크로소프트 윈도(95/98/NT), 리눅스, 유닉스,  오에스  등 대부분의 운영체제는 물론, 인터넷 익스플로러와 넷스케이프 등과 같은 웹 브라우저 등 여러 가지 플랫폼에 설치되어 사용될 수 있으며, 휴대전화나 가전기기에도 설치할 수 있다. 따라서 자바 플랫폼은 여러 플랫폼을 지원하여 미들웨어로서의 역할과 플랫폼 스스로의 역할을 동시에 수행할 수 있다. 사용자는 자바 바이트코드로 컴파일된 자바 프로그램을 실행시키기 위해서 이 자바 가상머신을 이용하면 된다.

원 개발사인 썬 마이크로시스템즈에서 자바 가상 머신의 기준이 되는 표준판(Java SE) 과 표준판을 핸드폰이나 PDA 등 임베디드 기기용인 축소판(Java ME) 으로 구분하여 가상 머신을 배포하고 있다. 기업판(Java EE)의 경우에는 표준판의 자바 가상 머신을 기반으로 확장된 라이브러리 집합을 정의한 것이기 때문에 자바 가상 머신의 종류로 분류하기 애매하다.  마이크로시스템즈에서 제공하는 자바 가상 머신 말고도 각 운영체제 개발사가 제공하는 자바 가상 머신이 있으며, GNUGCJ 아파치 소프트웨어 재단(ASF: Apache Software Foundation) 하모니(Harmony)와 같은 오픈 소스 자바 가상 머신도 존재한다. 이러한 공개 소프트웨어 단체의 움직임에 따라 썬 마이크로시스템즈에서도 자사의 자바 가상 머신 및 개발 도구 킷을 오픈 소스 정책에 맞추어 공개한 상황이다.

 

5.     힙 메모리(heap memory)

프로그램을 사용할 수 있는 자유 메모리. 프로그램 실행 시에 함수로 보내는 데이터 등을 일시적으로 보관해 두는 소량의 메모리와 필요시 언제나 사용할 수 있는 대량의 메모리가 있다. 이때, 소량의 메모리를 스택이라 하고 대량의 메모리를 이라 한다.  이 없어지면 메모리 부족으로 이상 종료하게 된다.

 

6.     자바 서버 페이지(JavaServer Pages, JSP)

HTML내에 자바 코드를 삽입하여  서버에서 동적으로 웹 페이지를 생성하여  브라우저에 돌려주는 언어이다. Java EE 스펙 중 일부로  애플리케이션 서버에서 동작한다. 자바 서버 페이지는 실행시에는 자바 서블릿으로 변환된 후 실행되므로 서블릿과 거의 유사하다고 볼 수 있다. 하지만, 서블릿과는 HTML 표준에 따라 작성되므로 웹 디자인하기에 편리하다. 이와 비슷한 구조인 것인 PHP, ASP, ASP.NET 등도 있다. 아파치 스트럿츠 자카르타 프로젝트 JSTL 등의 JSP 태그 라이브러리를 사용하는 경우에는 자바 코딩없이 태그만으로 간략히 기술이 가능하므로 생산성을 높일 수 있다.

클라이언트에서 서비스가 요청되면, JSP의 실행을 요구하고, JSP  애플리케이션 서버의 서블릿 컨테이너에서 서블릿 원시코드로 변환된다. 그 후에 서블릿 원시코드는 바로 컴파일된 후 실행되어 결과를 HTML 형태로 클라이언트에 돌려준다.

 

7.     Java Database Connectivity(JDBC)

자바에서 데이터베이스에 접속할 수 있도록 하는 자바 API이다. JDBC는 데이터베이스에서 자료를 쿼리하거나 업데이트하는 방법을 제공한다. JDBC Java로 작성된 프로그램을, 일반 데이터베이스에 연결하기 위한 응용프로그램 인터페이스 규격입니다. 이 응용프로그램 인터페이스는 데이터베이스 관리 시스템에 넘겨질 SQL 형태의 데이터베이스 접근요구 문장을, 각 시스템에 맞도록 바꾸어준다. API는 동적으로 올바른 Java 패키지를 로드하고, JDBC 드라이버 매니저에 등록하기 위한 메커니즘을 제공합니다. 드라이버 매니저가, JDBC connection을 생성하기 위한 connection factory로서 사용됩니다.

 

8.     Java Management eXtensions(JMX)

응용 프로그램 소프트웨어/객체/장치 (프린터 등) 및 서비스 지향 네트워크 등을 감시 관리를 위한 도구를 제공하기 위한 자바 API이다. 이러한 리소스는 MBean(Managed Bean)이라는 객체로 표현된다.

 

9.     Java Naming and Directory Interface(JNDI)

디렉터리 서비스에서 제공하는 데이터 및 객체를 발견(discover)하고 참고(lookup)하기 위한 자바API이다.



'프로그래밍 > 웹 프로그래밍' 카테고리의 다른 글

HTML 기초  (0) 2016.02.21
비즈니스 로직(Business logic)?  (0) 2016.02.14
웹서버(Web Server) / 웹 서버 어플리케이션(WSA)  (0) 2016.02.14
웹 프로그래밍 기초  (0) 2016.02.14
ASP(Active Server Page)  (0) 2016.01.28
IIS란?  (0) 2016.01.25
Posted by GENESIS8

댓글을 달아 주세요


출처 : 

http://webcache.googleusercontent.com/search?q=cache:http://kbp.kongju.ac.kr/cg_edu/cnu/web_server_basic.htm&gws_rd=cr&ei=7fK_Vu-JJqiHmgWGq43oAg


http://j2enty.tistory.com/entry/JSP-Chapter1-%EC%9B%B9-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%EA%B8%B0%EC%B4%88-2



 웹 서 버   구 축 을   위 한   기 초


웹서버(web Server)란 : 웹서버 간단히 웹을 서비스하는 컴퓨터라고 할 수 있다. 웹페이지는 HTML이므로 웹서버는 "HTML파일들을 모아놓고 서비스하는 컴퓨터"라고 할 수도 있다.  모든 컴퓨터는 서버가 될 수 있으므로 웹 서버가 될 수도 있지만, 어떤 컴퓨터를 웹 서버로 만드려면 먼저 웹 서버 프로그램을 설치해야 한다. 웹 서버 프로그램으로는 PWS, IIS, 아파치 등이 있다.


웹 클라이언트(Web Client)란 : 서버와는 상대되는 개념으로 클라이언트는 어떤 서비스를 요청하는 역할을 하게 된다. 그러므로 웹 클라이언트는 "웹 서버에 자료를 요청하기 위해 "HTTP"를 사용하는 클라이언트 프로그램"이라고 할 수 있다.  웹 페이지를 요청하는 것도 클라이언트라고 할 수 있다. 그런데 웹 페이지 요청은 대부분 웹 브라우저가 하게 된다. 그러므로 일반적으로 웹 클라이언트를 웹 브라우저라고 일컫기도 한다.  


서버 사이드(server Side)란 : 서버사이드(Sever-Side)란 간단히 "웹 서버측에서 하는 작업들"이라고 말할 수 있다.  여기서 말하는 작업이란 구체적으로 웹 브라우저(클라이언트)에서 넘어온 자료를 데이터베이스에 저장 한다든지, 어떤 수학적인 계산을 하여 결과를 만들어 낸다든지 하는 것을 말한다. 이런 작업을 담당하는 것이 웹 프로그램이다. 웹 프로그램의 종류는 PHP, ASP, Perl, Python등이 많이 쓰인다.


클라이언트 사이드(Client Side)란 : 웹 브라우저(클라이언트 사이드)를 사용하면 서버의 작업량을 줄일 수 있다. 서버가 작업해야 할 부분중에서 클라이언트가 할 수 있는 작업을 스스로 처리하기 때문에 서버의 작업량을 줄여줄 수 있어 효율적이다. 이렇게 "클라이언트 스스로 일을 처리할 수 있도록 하여 서버의 효율성을 높일 수 있도록 하는 것"이 클라이언트 사이드 언어이다.  클라이언트 사이드 언어로는 자바스크립트(Java Script)와 이외의 대부분의 스크립트 언어가 있다. 플래시 액션(Action) 스크립트도 클라이언트 사이드 언어라고 할 수 있다. 이런 스크립트 언어는 웹 서버에서 웹 브라우저로 전송된 후 실행된다.



■ 계열별 웹서버의 종류

- Windows : IIS, PWS, httpds, NCSA httpd For Windows, SerWeb, Web4Ham

- Unix, Linux : Apache, CERN httpd, NCSA httpd, EIT httpd, GN Gopher/http, Plexus perl server, WebWorks Enterprise server,

  Netsite Communication Server and Netsite Commercial Server

- Mac : MacHTTP

- NETWare : httpd nlm



■ 각 계열별 대표적인 웹서버

- Windows 계열 : IIS(Internet Information Services)

NT급에서 기본적으로 지원되는 웹서버로 ASP(Active Server Page)라는 개발 언어를 지원한다. 1995년 말 윈도우 NT용 웹서버로 출시 되었으며 윈도우 4.0이 출시되면서 IIS 2.0을 기본적으로 탑재 하였지만 얼마 후 ASP기술이 나오면서 IIS3.0이 새로 출시되었다. 윈도우 NT에서 IIS3.0이상 버전을 설치하기 위해서 별도의 OPTION PACK과 SERVICE PACK을 설치해 주어야 한다.

Windows 2000서버 및 Windows XP Pro에는 IIS 5.0이 포함되어있다.

- Unix, Linux 계열 : Apache, NCSA

아파치 프로젝트의 시작은 처음 1995년경 대중의 사랑을 받던 NCSA의 개발자중 일부가 모여 시작 했습니다. 이것을 시발로 NCSA HTTPD 개발자와 아파치 개발자들이 합류되고 이전에 만들어졌던 아파치 0.6.2를 완전히 개선한 0.8.8을, 그리고 아파치 1.0을 1995년10월에 만들어 냈습니다. 현재(2000년기준)는 60%이상의 사용자를 확보 하고 있다.


■ 웹서버 구축에 필요한 것들 (PHP, APACHE, MySQL)

- PHP(Professional HyperText Preprocessor) : 서버에서 해석되는 HTML에 내장되어 동작하는 스크립트 언어이다.  C, Java, Perl 등에서 많은 문장 형식을 빌려왔으며 웹 브라우저 등으로 실제 코드를 볼 수 없다는 것에 보안상 유리한 점도 있습니다. PHP와 ASP는 근본적으로 서버용 객체 지향적인 스크립트 언어라는 점에서 같지만, ASP의 경우 IIS, PWS와 같은 윈도우 환경에서 움직이는 서버를 지원하는데 반해 PHP는 Apache, IIS, PWS, 서버 등과 유닉스 윈도우 환경에서 움직이는 모든 서버를 지원합니다.

- APACHE : 대중의 힘을 바탕으로 가장 큰 인지도를 얻을 만큼 사용자가 이끌어 가는 무료 웹 서버입니다.

- MySQL : 무료 데이터베이스(DB)

 


웹 프로그래밍 기

1. 웹 어플리케이션과 웹 프로그래밍
 -.웹 어플리케이션 : 웹을 기반으로 실행되는 어플리케이션
 -.일반적으로 웹 브라우저에 기능을 요청하고 요청을 받은 웹 어플리케이션은 요청한 기능에 알맞은 결과 화면을 생성해서 웹   브라우저에 전송한다. 일반적으로 웹 브라우저가 요청한 기능을 제공하기 위해서는 웹 서버, 어플리케이션 서버, 데이터   베이스 와 같은 구성요소들을 필요로 한다. 



-.웹 서버 : 웹 브라우저의 요청을 받아 알맞은 결과를 웹 브라우저에 전송한다. 만약 프로그램의 처리가 필요하다면 어플리케이션 서버를 사용하거나 프로그램을 직접 호출하여 결과를 생성한다. 주로 정적인 HTML, CSS, 이미지 자바 스크립트를 웹 브라우저에 제공할 때 웹 서버가 사용된다. (아파치)

// IIS 등.
-.웹 어플리케이션 서버 (WAS): 게시글 목록, 로그인 처리와 같은 기능을 실행(처리)하고 그 결과를 응답으로 웹 서버에 전달한다.  (톰캣, 웹로직, JBoss 등) // ASP 등이 포함됨
-.데이터베이스 : 웹 어플리케이션이 필요로 하는 데이터를 저장한다. (오라클, MySQL, MS-SQL 등)
-.웹 브라우저 : 웹 서버에 서비스 실행을 요청하며 웹 서버의 처리 결과를 사용자에게 보여준다. (익스플로러, 크롬 등) 


 -.어플리케이션 서버도 웹 서버와 마찬가지로 정적인 HTML, CSS 등을 제공할 수 있다. 하지만 웹 서버에서 정적인 HTML, 이미지 등을 제공하고 어플리케이션 서버가 프로그램을 제공하는 이유는 성능 때문이다. 일반적으로 아파치와 같은 웹 서버는 정적인 HTML, CSS를 제공하는데 초점이 맞춰져 있고, 톰캣이나 웹 로직과 같은 어플리케이션 서버는 JSP, 서블릿과 같은 프로그램을 실행하여 결과를 제공하는 데 초점이 맞춰저 있기 때문이다.

1.1 CGI방식과 어플리케이션 서버 방식
 -. 웹 어플리케이션은 웹 브라우저의 요청을 알맞게 처리하고 그에 대한 결과를 웹 브라우저에 전달한다. 웹 어플리케이
션이 실행되는 과정은 아래의 그림과 같다. (요청-처리-응답)


 위 그림의 2번에서 웹 서버는 웹 어플리케이션 프로그램을 사용해서 우베 브라우저의 요청을 처리한다. 이 때 웹 서버가 웹 어플리케이션을 실행하는 방식에 따라서 CGI방식, 어플리케이션 서버 방식으로 동작방식을 구분할 수 있다.
(Common Gateway Interface, CGI : 웹 서버와 프로그램 사이에 정보를 주고받는 규칙을 의미. 흔히 CGI 프로그래밍이라고 하면 Perl, C/C++언어 등을 사용하여 웹 서버를 통해서 실행할 수 있는 프로그램을 의미한다.)

 CGI 방식과 어플리케이션 서버 방식간의 차이점웹 서버가 직접 프로그램을 호울하는지의 여부에 있다. 먼저 CGI방식은 웹 서버가 어플리케이션을 호출하는 구조를 갖는다. 이에 반해 어플리케이션 서버 방식은 웹 서버가 직접 프로그램을 호출하기보다는 웹 어플리케이션 서버를 통해서 간접적으로 어플리케이션 프로그램을 실행한다.
 접속자가 많은 서비스의 경우 CGI방식보다 어플리케이션 서버 방식의 성능이 좋게 나타난다. 그 이유는 CGI방식의 경우에는 요청 받은 기능이 같은 프로그램을 실행하는 경우라 하더라도 요청이 발생하는 숫자만큼 프로그램을 실행하기 때문에 메모리를 많이 차지하게 된다. 반면에 어플리케이션 서버방식의 경우에는 동시에 여러 웹 브라우저가 동일한 프로그램을 요청하더라도 한 개에 해당하는 메모리만 사용하기 때문에 전체적으로 사용하는 메모리가 적다. 
 
1.2 스크립트 방식과 실행 코드 방식
 웹 어플리케이션 프로그래밍은 구현하는 방식에 따라 실행 코드 방식과 스크립트 방식으로 구분할 수 있다. 

비교 항목 실행 코드 방식 스크립트 방식 
코드 형태  컴파일 된 실행 프로그램  컴파일 되지 않은 스크립트 코드 
실행 방식 컴파일 된 기계어 코드 직접 실행  스크립트 코드를 해석한 뒤 실행 
코드 변경  소스 코드를 다시 컴파일 해야 함  스크립트 코드만 고치면 됨 
종류  C기반 CGI 프로그램 JSP, ASP.net, PHP, Ruby ... 



-.스크립트 코드의 번역은 최초 요청에 대해서 한 번만 발생하며, 이후의 요청에 대해서는 번역 과정 없이 앞서 번역된 코드를 실행하도록 함으로써 번역 횟수를 최소화한다.
-.실행코드 방식의 경우 일반적으로 CGI방식이고 스크립트 코드 방식인 JSP나 ASP는 어플리케이션 서버 방식이기 때문에 전체 처리량에서는 JSP/ASP 기반의 스크립트 코드 방식이 앞선다.
-.기술의 발달로 스크립트 언어를 번역한 코드가 일반 프로그램과 동일한 수준의 성능을 제공하고 있다. 




2. URL과 웹 어플리케이션 주소
 -.사이트에 연결할 때 다음과 같은 형식의 주소를 웹 브라우저에 입력한다.
  이 주소는 자원을 구분할 때 사용되는 문자열로서 이런 문자열을 URL(Uniform Resource Locator)라고 부른다.

http://java.sun.com/javase/6/docs/api./index.html

[프로토콜]://[호스트][:포트][경로][파일명][.확장자][쿼리문자열] 

-.프로토콜 : 서버와 클라이언터의 통신 규약(http. https)
-.호스트 : 클라이언트가 접속할 서버 주소
-.포트 : 서버와 클라이언트가 통신할 때 사용할 포트. 일반적으로 입력하지 않으며 입력하지 않을 경우 기본포트(80)이 사용
-.[경로][파일명][.확장자] : 서버에서 가져올 자원의 위치를 입력하낟. 
-.[쿼리문자열] : 주소 뒤에 붙는 정보로 '파라메터'라고 불리는 데이터를 웹 어플리케이션에 전달할 때 사용된다. [쿼리문자열]은 물음표(?)를 이용하여 경로 부분과 구분되며 1개이상의 파라메터 이름과 값을 같는다. 



3. 자바와 웹 프로그래밍
3.1 서블릿과 JSP
 -.서블릿 : 자바를 개발한 Sun에서 웹 개발을 위해 만든 표준, 이러한 서블릿 규약에 따라 만든 클래스를 서블릿 이라 부름
 -.서블릿을 만들기 위해선 자바 코드를 작성하고 컴파일 하여 클래스 파일을 만들게 된다.(앞서 말한 실행코드 방식) 이런 방식은 데이터를 조금만 바꾸고 싶어도 코드를 수정하고 컴파일하고 클래스를 알맞는 곳에 복사해줘야 하는 작업을 해야한다.

 -.JSP : 위와 같은 서블릿의 단점을 보완하여 만든 스크립트 방식의 표준
 -.JSP는 서블릿 표준을 기반으로 만들어졌다. 때문에 내부적으로 JSP파일이 변역되면 최종 결과물로 서블릿이 만들어진다. 

3.2 JSP (JavaServer Pages) 란?
 -.자바 언어를 기반으로 하는 스크립트 언어로 자바가 제공하는 기능을 그대로 사용 할 수 있다.
 -.HTTP와 같은 프로토콜에 따라 클라이언트의 요청을 처리하고 응답한다.
 -.HTML, XML등 클라이언트가 요청한 문서를 생성하는 데 주로 사용된다.
 -.서블릿/EJB등의 엔터프라이즈 기술들과 잘 융합된다.
 -.표현언어, 표현식, 스크립트릿 등 다양한 스크립트 요소와 액션 태그 등을 제공함으로써 보다 쉽게 웹 어플리케이션을 프로그래밍 할 수 있도록 도와준다.

3.3 웹 컨테이너(Web Container)
 -.웹 컨테이너 : 이름 그대로 웹 어플리케이션을 실행 할 수 있는 컨테이너.
 

JSP 컨테이너 + 서블릿 컨테이너 = 웹 컨테이너

현재 서블릿 규약의 버전은 2.5이고, JSP 규약 버전은 2.1이다. 이 두 규약의 버전 차이에서 알 수 있듯이 서블릿 규익이 먼저 발표되고 그 후 JSP규익이 발표되었다. 처음 서블릿 규약이 발표되었을 때는 JSP가 존재 하지 않았기 때문에 서블릿이 실행 가능한 서버를 서블릿 컨테이너라고 불렀으며 이후 JSP 규약이 발표될 때는 서블릿과 구분하는 의미에서 JSP가 실행 가능한 서버를 JSP 컨테이너 라고 불렀다. 하지마 이 후 거의 모든 엔진이 서블릿과 JSP를 동시에 지우너하면서 이 두 컨테이너를 구분하는게 무의미 해졌으며, 이 후 부터는 서블릿 컨테이너와 JSP 컨테이너를 웹 컨테이너 라고 부르기 시작했다.


3.4 JSP를 사용하는 이유

-.자바 언어를 기반으로 하고 있기 때문에 플랫폼에 상관없이 사용할 수 있다.
-.자바 언어에 대한 깊은 이해가 없더라도 빠르게 배울 수 있다.
-.대규모 어플리케이션을 구현 할 때 사용되는 스프링, 스트럿츠와 같은 프레임워크와 완벽하게 연동되며, 금융권에서 많이 사용하는 EJB기술과도 완벽하게 연동된다. 






'프로그래밍 > 웹 프로그래밍' 카테고리의 다른 글

HTML 기초  (0) 2016.02.21
비즈니스 로직(Business logic)?  (0) 2016.02.14
웹서버(Web Server) / 웹 서버 어플리케이션(WSA)  (0) 2016.02.14
웹 프로그래밍 기초  (0) 2016.02.14
ASP(Active Server Page)  (0) 2016.01.28
IIS란?  (0) 2016.01.25
Posted by GENESIS8

댓글을 달아 주세요


출처 : 위키백과 



액티브 서버 페이지(Active Server Page, 줄여서 ASP)는 마이크로소프트사에서 동적으로 웹 페이지들을 생성하기 위해 개발한 서버 측 스크립트 엔진이다. 최초 버전은 Windows NT 4.0 옵션 팩(1998 상반기)에 포함하여 인터넷 정보 서비스(IIS)에 추가되는 식으로 출시되었고, 나중에 윈도 서버(윈도 2000 서버의 최초 버전 이후로)의 무료 구성 요소로 포함되었다. ASP.NET이 ASP를 대체하고 있다.


ASP 2.0은 6개의 내장 객체들을 제공한다: Application, ASPError, Request, Response, Server, Session. 예를 들어, Session은 페이지 간의 변수의 상태를 유지하는 쿠키 기반의 세션을 나타낸다. 동적 스크립팅 엔진의 컴포넌트 객체 모델(COM) 지원은 ASP 웹사이트들이 DLL들 같은 컴파일 된 라이브러리들을 함수처럼 접근 가능하게 해 준다.


.asp 파일 확장자를 가진 웹페이지는 ASP를 사용하지만, 몇개의 웹 사이트들은 보안 목적으로 스크립팅 언어를 숨기는 경우도 있다 (예를들면 더 일반적인 .htm 또는 .html 확장자를 사용하기). .aspx 확장자를 가진 페이지들은, ASP에서 서버측 스크립팅 보다 더 빠르고 강력하게 해주는, ( 마이크로소프트의 .NET 프레임워크 기반의) ASP.NET으로 컴파일되었고, 구동 시에 해석되지만; ASP.NET 페이지들은 여전히 일부 ASP 스크립팅을 포함하고 있을 것이다. ASP.NET의 도입은 원천 기술에 대해서는 오랜 ASP용어를 사용하였다. 프로그래머들은 대부분의 ASP페이지를 VBScript를 사용하여 작성하였지만, 그 외에도 동적 스크립팅 엔진은 @Language 지시문이나 <script language="language" runat="server"> 구문으로 선택하여 사용 할 수 있다. JScript(마이크로소프트가 구현한 ECMAScript)가 보통 사용가능한 다른 언어이다. PerlScript(Perl의 파생언어)와 다른 것들도 타사 제공 형태로 동적 스크립팅 엔진에 설치해서 사용 가능하다.


마이크로소프트의 액티브 스크립팅 표준과 호환되는 어떠한 스크립팅 언어라도 ASP에서 사용할 수 있다. 기본 스크립팅 언어(고전 ASP에서)는 VB스크립트이다.: 브라우저가 웹 서버에서 ASP 파일을 요청하면 서버는 프로세서를 호출하고, 프로세서는 요청된 파일을 읽고 스크립트 명령을 실행하여 결과를 웹페이지 형태로 브라우저에 전송한다. 


1 <html>
2 <body>
3 <% Response.Write "Hello World!" %>
4 </body>
5 </html>

더 단순한 형태로는 다음과 같다.

1 <html>
2 <body>
3 <%= "Hello World!" %>
4 </body>
5 </html>

이 예는 "Hello World!"를 HTML 문서의 body로 출력한다.

여기에는 액세스 데이터베이스로 연결하는 방법에 대한 한 예가 있다.

<%
	Set oConn = Server.CreateObject("ADODB.Connection")
	oConn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("DB.mdb")
	Set rsUsers = Server.CreateObject("ADODB.Recordset")
	rsUsers.Open "SELECT UserID FROM Users", oConn,1,3
%>


ASP.NET

ASP.NET은 마이크로소프트사가 개발하여 판매하는 웹 애플리케이션 프레임워크이며 프로그래머들이 동적인 웹 사이트, 웹 애플리케이션, 웹 서비스를 만들 수 있게 도와 준다. 2002년 1월에 닷넷 프레임워크 버전 1.0과 함께 처음 출시되었으며 마이크로소프트의 액티브 서버 페이지 (ASP) 기술의 뒤를 잇는다. ASP.NET은 공통 언어 런타임 (CLR)을 기반으로 작성되며 프로그래머들이 닷넷 언어가 사용된 ASP.NET 코드를 기록할 수 있게 도와 준다. ASP.NET SOAP 확장 프레임워크는 ASP.NET 구성 요소가 SOAP 메시지를 처리할 수 있게 도와 준다.


http://www.taeyo.pe.kr/lecture/Dukyoung/DYsASP02.asp


1. ASP 란 무엇인가?

ASP 란 'Active Server Pages' 의 약자이며, 우리 말로 번역하자면
'동적으로 서버에서 작동하는 페이지' 정도로 해석될 수 있을 것 같습니다.
동적(動的, Active) 이라.. 그렇다면 반대로 '정적(靜的, static)' 인 페이지도 있다는 뜻일까요?
맞습니다. 정적인 페이지도 있습니다. 우리가 알고 있는 HTML 이 바로 그것입니다.
'다 좋은데.. 정적인건 뭐고 동적인건 뭔지 말을 해줘야 할거 아냐!!' 
라고 외치시는 분들을 위해(한문 공부를 하십셔~) 잠시 그 개념의 차이를 말씀 드리겠습니다.

아주 간단하지만 의미 있는 예를 하나 들어보도록 하지요.
페이지를 하나 만들어서.. 이 페이지를 보고 있는 '현재 시간' 을 보여주려고 합니다.
이것을 HTML 과 ASP 페이지로 하나씩 만들어 보도록 하겠습니다.
// 링크가 죽었지만 내용으로 충분하다

위에 보이는 두개의 페이지는.. 얼핏 보기에 똑같아 보입니다만 중대한 차이가 있습니다.
두 페이지의 '새로고침' 링크를 살포~시 클릭하시면 그 차이를 발견하실 수가 있습니다.
어때요? 발견하셨나요?
그렇습니다. HTML 페이지에서는 새로고침을 아무리 눌러도 현재 시간이 변하지 않습니다만,
ASP 페이지에서는 새로고침을 누를때마다 현재 시간이 바뀌는 것을 보실 수가 있습니다.

이유는 간단합니다.
HTML 은 언제 어느곳에서 보더라도 우리가 작성한 모습 그대로일 수 밖에 없습니다.
다시 말해, HTML 페이지 안에는 시간을 '2003-04-15 오전 10:08:07 입니다.'
라고 직접 입력할 수밖에 없다는 말씀입니다.
이렇게 하면 화면에 보여지는 시간이 현재 시간인 것처럼 보여지지만,
실제로는 미리 입력되어 있는 '이미 작성된 문자열' 에 불과하다는 것을 알 수 있습니다.
그렇기 때문에 HTML 을 변하지 않는, '정적(靜的, static)' 이라고 표현하는 것이지요.

좋습니다.. 그렇다면 ASP 는 과연 무언가 다른걸까요?
그렇습니다. ASP 는 HTML 과는 확실히 다릅니다. (두둥~~)

ASP 는 어떤 특별한 과정을 거쳐서, 작성자의 의도대로 HTML 을 바꿀 수 있는 것입니다.
우리는 지난 시간에 '서버' 와 '클라이언트' 를 공부하면서 HTML 의 작동 원리에 대해서 잠시 생각해 보았습니다. 기억이 나시는지요? (안나신다굽쇼? -_-a)
좋습니다. 친절한 설명을 위해서 HTML 의 실행 과정 그림을 한번 보도록 하겠습니다.

'클라이언트가 서버로 HTML 페이지를 요구하면 서버에서는 별다른 처리 없이 HTML 을 클라이언트의 웹브라우저로 보내준다' 는 것이 바로 HTML 의 처리 과정이었습니다.



ASP 도 HTML 과 비슷한 과정을 거칩니다만.. 중요한 하나의 과정이 중간에 추가됩니다.
다음 그림을 보면서 말씀드리도록 하겠습니다.



클라이언트가 서버로 페이지를 요구하는 것은 똑같습니다.
그런데 HTML 이 아닌 ASP 페이지를 요구하는 경우, 서버에서는 이것을 HTML 처럼 바로 돌려보내 주는 것이 아니라 ASP.DLL 이라는 특이한 친구를 실행시키고 나서,
그 결과물(그 결과로 작성된 HTML)을 클라이언트에게 돌려보내 준다는 것입니다.
이 한 가지의 과정의 추가로 인해서 HTML 과 ASP 는 엄청난 차이를 가지게 됩니다.

음.. 아직 잘 이해가 안가시나요...? 좋습니다.
그렇다면 앞에서 예를 들었던 '현재 시간' 을 표시하는 두 페이지의 소스를 비교해 보겠습니다.
다음의 내용을 유심히 보시기 바랍니다.

HTML
현재 시간은

2003-04-15 오전 10:08:07 입니다.
ASP
현재 시간은

<%=now%> 입니다.

전체 소스가 아닌 일부분의 소스만 올려놓았습니다. 그 이유는 HTML 과 ASP 의 차이를 말씀드리려는 데에는 이 소스만으로도 충분할 것 같네요. (사..사실은 귀찮아서... -_-a)

HTML 페이지에서는 보시다시피 시간을 직접 입력 해버렸습니다.
그러므로 위에서 말씀드렸던 것처럼 백날~ 새로고침을 해도 시간은 바뀌지 않습니다.

하지만 ASP 는 <%=now%> 라는 약간 낯선 형태의 무언가가 등장했습니다.
자세한 설명은 다음에 드릴 예정입니다만 이것의 의미를 간략하게 말씀드리자면,
'ASP 안에서 현재 시간을 의미하는 now 라는 함수를 호출하여 출력하세요' 라는 뜻이 됩니다.
(모든 HTML 태그가 '<' 로 열고 '>' 로 닫는 것과 마찬가지로, ASP 는 '<%' 로 열고 '%>' 로 닫아야 합니다. 이것은 ASP 문법의 기본이므로 반드시 알아두시기 바랍니다.)

때문에 페이지를 '새로 고침' 하면, HTML 페이지는 단순히 입력된 내용만을 전달해 주지만,
ASP 페이지는 페이지 안에 있는 ASP 소스(<%=now>)를 'ASP.DLL' 에 통과시킨 다음,
그 결과(현재 시간)를 HTML 형식으로 받아서 클라이언트에게 출력해 주게 되는 것입니다.

이 과정을 그림으로 표현하자면 다음과 같습니다.

어떻습니까? 이제 ASP 라는 친구가 조금은 친숙해 지셨나요?

그렇다면.. 이제 ASP 의 탄생 배경에 대해서 잠시 살펴보도록 하겠습니다.
(솔직히 이런 역사 시간 같은 이야기는 지루한 게 사실이지만, 그래도 언제, 누가, 어떻게 만들었는지 정도는 상식으로 알아두시는 것도 좋지 않을까요? ^^)

ASP는 마이크로소프트(Microsoft) 사에 의해서 1996년 7월 16일에 데날리(Denali) 라는 코드명으로 공식적으로 발표되었습니다. 이것의 베타 버전은 1996년 11월에 배포되었고, ASP 정식 버전 1.0 이 세상에 선보이게 된 것은 1996년 12월 12일이었습니다.
마이크로소프트 사에서 1997년 3월에 IIS 웹서버를 제공하면서부터 ASP 는 더욱 많이 알려지게 되었으며, 98년에는 IIS 4.0 과 퍼스널 웹 서버 4.0 (PWS 4.0)을 발표하게 됩니다.
이 둘은 ASP 버전 2.0을 지원했으며, ASP 1.0 에 비해 많은 성능 향상을 가져오게 됩니다.
(실제로 우리 나라에서 많은 개발자들이 ASP 에 관심을 가지게 된 때가 바로 이때였습니다.)
Windows 2000 이 배포되면서 마이크로소프트 사는 그 안에 IIS 5.0 과 ASP 3.0 을 포함하였습니다. 또한 IIS 5.0 은 Windows 2000 운영체제 안에 자연스럽게 통합 되었습니다.
(그래서 Windows 2000 을 설치하셨다면 좀 더 편하게 ASP 를 공부하실 수가 있습니다.) 

2. ASP 는 어디에 쓰이는 물건인가?

도대체 이 ASP 를 가지고 무엇을 할 수가 있을까요?
'이 홈페이지 너무 멋진데요' 라고 한마디 써주고 싶은데, HTML 로 만든 페이지에서는 아쉽게도 그것이 불가능한 것이지요. ASP 의 필요성은 바로 여기서 나타납니다.

ASP 페이지에서는 방문한 사람들(클라이언트)에게 글을 입력받아서 그것을 저장소 - 이것을 '데이터베이스' 라고 합니다 - 에 차곡차곡 저장한 후에, 클라이언트들이 그 페이지를 보여달라고 요청할때 그 저장소(데이터베이스)에 저장되어 있는 내용을 꺼내와서 보여주게 됩니다.
그렇기 때문에 ASP 로 만든 페이지에서는 새로운(최근에 작성된) 글을 보는 것이 가능합니다.

이런 '게시판' 기능 뿐 아니라.. ASP 가 할 수 있는 일은 상당히 다양합니다.
다음이나 세이클럽 같은 사이트에 가서 여러분은 아이디와 비밀번호를 입력하고,
그것이 맞을 때에는 사이트 안으로 로그인 해서 들어갈 수가 있습니다.
이런 회원 인증을 담당하는 페이지 역시 ASP 로 작성 가능합니다.


http://blog.daum.net/ssc1978/13852608



Active Server에서 제공하는 Web Page라는 뜻인데 여기서 Active Server란 마이크로소프트 웹 서버인 IIS(InternetInformation Server)안에 존재하는 Active Server Framework를 나타내는 것으로 주로 ActiveX Script를 처리하거나 DataBase와 연동하는 역할을 합니다. ASP는 하나 이상의 스크립트를 담은 일종의 HTML 페이지로서 사용자에게 보내지기 전에 일단 웹 서버에서 처리 과정을 거치게 됩니다. ASP파일은 일반 text파일로서 메모장 등에서 생성되는 파일과 같은 성질을 가지며 확장자는 asp입니다. 따라서 메모장에서 작성한 다음 확장자 .asp로 저장을 하면 됩니다. asp파일에는 HTML 태그와 JavaScript나 VBScript등의 스크립트 코드, 그리고 ASP 코드 등을 섞어 사용할 수 있습니다. JavaScript나 VBScript 등의 스크립트 코드는 <SCRIPT>,</SCRIPT>태그 사이에 놓입니다. ASP 코드는 <% ~ %>사이에 놓입니다. 왜 ASP를 사용하나요 나모나 HTML로 홈페이지를 만들어 본 사람들은 어느 정도 시간이 지나면 자기의 생각을 홈페이지에서 마음대로 구현할 수 없다는 것에 실망을 하게 될 것입니다. 자바스크립트도 해 보고 플래쉬도 해 보지만 역시 만족스럽지 못합니다. 이 때 눈을 돌리게 되는 것이 ASP라고 할 수 있지요. 물론 대신에 CGI나 PHP라는 말도 많이 듣게 되겠지만.....그러면 사람들은 왜 ASP를 사용하고 있을까요? 

1) 사용자와의 동적인 상호작용을 원하기 때문입니다. HTML은 기본적으로 정보를 보여주기만 합니다. 하이퍼링크를 통해 사용자가 요청을 하면 웹서버가 그 요청에 응답하여 원하는 웹 페이지를 보여주는 방식으로 작업이 진행되지요. 그것도 일종의 상호작용이라고 할 수는 있겠지만 웹 서버를 운영하는 사람과 사용자가 서로 어떤 정보를 주고 받는다든지 아니면 사용자들간에 서로 정보를 주고 받는다든지 하는 일은 기본적으로 불가능합니다. ASP는 HTML로 불가능한 이런 일들을 가능하게 해 줍니다.

 2) 서버측 자원을 사용해야 하는 경우입니다. 사용자로부터 어떤 내용을 입력받아 데이터베이스에 저장해야 할 경우와 같은 건데 이럴 경우는 반드시 ASP를 사용해야만 합니다. 예를 들어 게시판 작성, 파일 업로드, ID 인증 등과 같이 서버에 어떤 정보를 저장하거나 저장된 정보를 이용해 일을 하는 경우에는 ASP를 사용해야만 합니다. 왜냐하면 HTML은 원칙적으로 클라이언트에서 번역되는 문서이기 때문에 서버의 다른 자원에 접근할 수가 없기 때문입니다.

 3) 스크립트의 안정적인 실행을 위해서입니다. 자바스크립트를 예를 들어 볼까요? 자바스크립트도 날이 갈수록 버전이 높아지고 있습니다. v1.0, v1.1, v1.2, v1.3... 그러다보면 상위 버전의 자바스크립트를 삽입한 HTML문서가 어떤 웹 브라우저에서는 의도하는대로 번역이 되지 않는 사태가 벌어질 수도 있습니다. 이럴 경우 서버에서 실행되는 스크립트라면 서버에서 HTML형태로 번역된 후 넘겨지게 되니까 어떤 웹 브라우저에서라도 잘못될 염려가 없을 것입니다. 

4) 스크립트 소스를 감추기 위해서입니다. 클라이언트측 스크립트들은 HTML 속에 포함되어 서버에서 클라이언트로 전송된 다음 클라이언트의 웹 브라우저에서 번역됩니다. 따라서 사용자들은 소스보기를 통해 스크립트의 내용을 볼 수가 있습니다. 그러나, 서버측 스크립트를 사용함으로써 개발자는 자신의 독특한 알고리즘을 감출 수가 있습니다. 물론 이런 목적을 위해 ASP를 사용한다는 것을 좋다고 할 수는 없겠지만 이런 기술로 밥먹고 사는 사람들에게는 꼭 필요한 것이 아닐까요?
















'프로그래밍 > 웹 프로그래밍' 카테고리의 다른 글

HTML 기초  (0) 2016.02.21
비즈니스 로직(Business logic)?  (0) 2016.02.14
웹서버(Web Server) / 웹 서버 어플리케이션(WSA)  (0) 2016.02.14
웹 프로그래밍 기초  (0) 2016.02.14
ASP(Active Server Page)  (0) 2016.01.28
IIS란?  (0) 2016.01.25
Posted by GENESIS8

댓글을 달아 주세요


원문 출처 : 

http://www.terms.co.kr/IIS.htm

http://hackersstudy.tistory.com/16

http://w3svc.tistory.com/entry/IIS%EB%9E%80



IS[아이아이 에스]는 마이크로소프트의 윈도우NT용 인터넷 서버군(群)의 이름으로서, 여기에는 WebHTTPFTPGopher 등이 모두 포함되어 있다. IIS는 이미 넷스케이프나 마이크로시스템즈 등의 회사에서 선점하고 있는 인터넷 서버 시장을 마이크로소프트가 지배할 목적으로 내놓은 제품이다. 마이크로소프트는 IIS에 웹 사이트나 검색엔진을 만들고 관리하며, 데이터베이스를 이용한 웹기반의 응용프로그램 작성을 지원하는 일련의 프로그램들을 포함하였다. 마이크로소프트는, IIS가 윈도우NT 서버와 여러 가지 방법으로 밀접하게 통합되었으며, 그 결과 더 빠른 웹페이지 서비스가 가능해졌다고 주장하고 있다.

IIS를 구매하는 회사들은 웹페이지를 만드는데 마이크로소프트의 프론트페이지 제품을 사용할 수 있다. 웹 개발자들은 마이크로소프트의 ASP 기술을 이용할 수 있는데, 이는 액티브엑스 컨트롤을 내장하고 잇는 응용프로그램들이 웹페이지 내에 포함될 수 있다는 것을 의미한다. 개발자들은 또한 마이크로소프트의 ISAPI 인터페이스를 사용함으로써 서로 다른 사용자들을 위해 요구를 여과하여, 올바른 웹페이지를 받아볼 수 있도록 프로그램을 만들 수 있다. ASP와 ISAPI 프로그램들은 현재 많이 사용되고 있는 CGI 또는 SSI 프로그램들 보다 더욱 효율적으로 실행된다.

마이크로소프트는 인터넷 서비스 제공사업자의 마음을 끌만한 서버관리자용 특별 기능을 포함하였다. 그것은 단일 윈도우(또는 콘솔)로부터 모든 서비스들이나 사용자들을 관리할 수 있게된 것이다. 또한, 이 기능은 초기에 설치하지 않았어도 나중에 쉽게 그 요소를 추가할 수 있도록 설계되었으며, 관리용 윈도우는 개별 고객들의 사정에 맞게 조정될 수 있다.

IIS는 설치하기 쉽도록 설계된 보안기능을 제공하며, 이는 데이터베이스를 이용하고 트랜잭션 차원의 제어를 제공하는 마이크로소프트 트랜잭션 서버와 밀접하게 동작한다. IIS는 또한 오디오, 비디오 스트림을 전달하는 마이크로소프트의 NetShow도 지원한다.


IIS란 MS에서 Web Service를 목적으로 정의 한 서비스 모듈의 Windows방식 서비스의 명칭이다.

컴퓨터에 Web Service를 할수있는 통신포트를 개방해놓고 그 통신포트를 통하여 자신의 컴퓨터에 있는 정보, 자료, 파일등을 접근하는 사람으로 하여금 볼 수 있도록 하는 것을 Web Service라고 하는데, 이것을 하는 컴퓨터가 Web Server입니다.

 웹 서버란?

웹 서버는 클라이언트 컴퓨터의 요청을 받아들이고 이러한 요청에 대해 응답을 반환하는 특정 소프트웨어가 있는 컴퓨터입니다. 웹 서버를 사용하면 인터넷 또는 인트라넷 및 엑스트라넷을 통해 정보를 공유할 수 있습니다.


 IIS는 Internet Information Sevices(인터넷 정보 서비스) 의 약자 이며, 이크로소프트 원도우를 사용하는 서버들을 위한 인터넷 기반 서비스들의 모임

아파치 웹서버에 이어 세계에서 두번째로 가장 잘 알려진 웹서버입니다.

서버는 현재 FTP, SMTP, NNTP, HTTP/HTTPS를 포함하고 있습니다. 지금까지 IIS 8.0 버전이 나왔습니다.
(IIS 8.0 은 windwos server 2012, Windwos 8 부터 사용 가능합니다)

장점이자 단점인 마이크로소프트에서 제공하는 윈도우 OS에서만 사용이 가능하다는점.

IIS에서는 ASP 스크립트 언어를 사용 할 수 있다.

 

IIS 8.0 신규, 업데이트 기능

웹 서버 성능 비교
     (출처-http://www.gtcomm.net/blog/nginx-the-best-http-server/)

CPU Utilization // CPU 활용량
• IIS – 9 percent
• Nginx – 21 percent
• Apache – 26 percent

Peak Throughput // 단위시간 당 최대 정보 처리량
• IIS – 49,000 responses per second (r/s)
• Nginx – 23,000 r/s
• Apache – 14,000 r/s

Response Time // 응답 시간
• IIS – 2.8 milliseconds
• Nginx – 5.5 milliseconds
• Apache – 6.3 milliseconds


결론 : 짱 좋음


IIS 서버 Html 구축 하는법

OS : Windwos server 2012 R2 Datacenter

1.1 서버 관리자에서 역할 및 기능 추가

1.2 웹서버(IIS) 설치

 

2.IIS 관리자 실행

2.1 웹사이트 추가 클릭

2.2

(1)    사이트 이름 항목에는 추가 할 사이트에 원하는 이름을 적어준다. 
        관리자가 사이트들을 구별목적으로 사용되는 것이므로 별칭으로 적어두면 된다.

(2)    실제 경로 항목에서 웹사이트의 root로 설정할 디렉토리를 선택한다.

(3)    두 항목을 기재하였으면, 이제 확인을 누르고 대화상자를 닫는다. 
        웹 사이트 추가시에는 기본으로 “웹 사이트 즉시 시작” 항목에 체크가 되어 있어 확인을 누르면 웹사이트 추가와 동시에 서비스가 시작된다.

 

3.    사이트 추가가 완료 되었다면, 이제 IIS 관리자의 사이트 프레임 내에 방금 추가한 사이트가 등록된 것을 확인 할 수 있으며, "시작됨" 상태
        정상적으로서비스가 되고 있는 것을 확인 할 수 있다.

 

 

 

4.자, 그럼 이제 클라이언트에서 웹 브라우저로 접속하여 웹 서비스에 접속이 가능한지 확인을 해보자.root디렉토리에 만들어 놓은 Html 파일을 넣어놓고
브라우저를 열고 http://서버ip/change.html 이라고 주소를 입력해보면 만들어 놓은 html 파일이 열리는 것을 확인 할 수 있다.




'프로그래밍 > 웹 프로그래밍' 카테고리의 다른 글

HTML 기초  (0) 2016.02.21
비즈니스 로직(Business logic)?  (0) 2016.02.14
웹서버(Web Server) / 웹 서버 어플리케이션(WSA)  (0) 2016.02.14
웹 프로그래밍 기초  (0) 2016.02.14
ASP(Active Server Page)  (0) 2016.01.28
IIS란?  (0) 2016.01.25
Posted by GENESIS8

댓글을 달아 주세요