BLOG ARTICLE 홈페이지 | 18 ARTICLE FOUND

  1. 2009.09.03 인터넷 포토샵
  2. 2009.03.18 HTML FORM
  3. 2009.03.12 HTTP 접속

아래 세 화면을 보면 새로이 발표된 이미지 편집 툴처럼 보인다. 포토샵과 같은....

이미지 편집 툴은 맞다. 그러나 포토샵처럼 윈도우즈에서 설치 후 실행되는 게 아니라 웹브라우저에서 실행되는 이미지 편집 프로그램이다. 단 플래시 최신 버전을 지원하는 웹브라우저이어야 한다. 이 말은 플래시 최신버전을 지원하는 웹브라우저를 가지고 있다면 윈도우즈나 리눅스 또는 맥OS 등과 같은 운영체제에 관계없이 이미지 편집을 웹에서 할 수 있다는 의미이다. 자세히 둘러보지는 않았지만 아마도 Flex Builder를 이용해 개발한 사이트로 보인다.

최근 웹기반 오피스 시장을 놓고 시장에 먼저 진입한 구글과 후발주자 마이크로소프트가 각축(?)을 벌이고 있는데 이미지 편집까지 웹에서 가능한걸 보면 이제는 모든 프로그램들이 웹기반으로 옮겨가는 것은 대세인것 같다.

아래 화면은 모질라 파이어폭스를 이용 전체화면 모드로 로 각 사이트에 접속한 것이다. 이 화면만 보면 정말로 일반 윈도우즈에서 실행되는 프로그램같다. 하지만 F11 키를 누르면 파이어폭스 화면으로 복귀한다.

참고로 브라우저에 설치된 플래시 플레이어의 버전이 9 인 경우 올드버전 경고 문구가 뜨거나 플래시 플레이어 10 버전을 설치하라는 걸로 봐서는 플래시 플레이어 10 부터 안정적으로 돌아가는 것으로 보인다.

SumoPaint



SplashUp



Pixlr



위 각 화면은 차례로 아래 주소로 접속했을 때 보이는 화면이다. 한번 클릭해보길...

http://www.sumo.fi/products/sumopaint/index.php
http://www.splashup.com/splashup/
http://www.pixlr.com/editor/

다음 화면들은 각각 Windows, MacOS X, Solaris 10 세 운영체제에서 이용 가능한 다양한 브라우저로 SumoPaint 사이트에 접속한 화면이다. 대부분 브라우저에 관계없이 잘 돌아가나 Linux (Ubuntu 9.04) 에서는 무슨 문제인지 화면이 뜨질 않았다. 나중에 다시 한번 접속해보고 그 결과를 블로그에 올려 놓도록 하겠다.

01234


012


0





'홈페이지 > 인터넷' 카테고리의 다른 글

xampp를 이용 간단하게 APM 설치하기  (0) 2010.08.31
AND

HTML FORM

홈페이지/HTML 2009. 3. 18. 10:56

FORM 태그

HTML에서 사용자로부터 일정한 형식의 정보를 입력받기 위해서는 <FORM> 태그를 사용해야 한다. 이 태그는 반드시 </FORM> 태그와 쌍을 이룬다. <FORM> 태그는 단독으로 사용할 수 없으며 <INPUT />, <SELECT> ~ </SELECT>, <TEXTAREA> ~ </TEXTAREA> 등과 같은 각종 입력 태그들을 조합하여 사용해야 한다. 다음 프로그램 "formTag.html"은 <FORM> 태그의 기본적인 사용 예를 보여준다.

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>
<FORM ACTION="action.jsp" METHOD="GET" NAME="myform">
    이름 : <INPUT TYPE="TEXT" NAME="name" /><BR/>
    비밀번호 : <INPUT TYPE="PASSWORD" NAME="pass" /><BR/>
    <INPUT TYPE="SUBMIT" VALUE="로그인" />
</FORM>
</body>
</html>

사용자 삽입 이미지

formTag.html 실행결과


위 예를 보면 <FORM> 태그에 ACTION과 METHOD 속성을 볼 수 있다. ACTION 속성에는 입력된 자료를 전달받아 실행할 프로그램 이름을 지정해 준다. 이 예에서는 "action.jsp" 프로그램을 실행하도록 지정되었다. 다음으로 METHOD 속성에는 GET 또는 POST 값을 지정할 수 있다. METHOD 속성은 HTML 폼으로부터 입력된 데이터를 ACTION 속성에 정의된 프로그램으로 전달할 때 어떻게 전달할 것인가 그 방법을 정의해주는 속성이다. GET과 POST의 차이점은 다음 표를 참조하기 바란다.

METHOD

특징
GET - Query String 형태로 데이터가 전달되므로 전달 내용을 사용자가 확인할 수 있다.
- 전달되는 내용의 크기에 한계를 가지므로 대용량의 데이터를  전달할 수 없다.
POST - 표준 입출력을 통해 데이터가 전달되므로 사용자가 확인할 수 없다. 따라서 로그인과 같이 보안을 유지할 필요가 있을 때 사용할 수 있다.
- 전달되는 내용의 크기에 한계가 없으므로 파일 업로드 등의 경우에도 사용할 수 있다.

NAME 속성은 하나의 HTML 내부에 여러 개의 FORM 태그가 사용됐을 경우 각각을 구분하기 위해 사용되는 속성으로 그 값은 사용자가 임의로 줄 수 있다. 그러면 FORM 태그와 함께 사용되는 각종 입력 태그들에 대해서 살펴보자.

INPUT 태그

<INPUT> 태그는 <FORM> 태그와 함께 사용되는 태그 중 가장 기본이 되는 태그로 </INPUT> 태그 없이 단독으로 사용된다. <INPUT> 태그에는 다양한 속성이 있다. 먼저 NAME 속성에 대하여 살펴보자. NAME 속성은 입력폼을 구성하는 각 요소들을 구분하기 위한 속성으로 프로그램 실행 시 중요한 역할을 하는 속성이다. 이 속성의 값은 사용자에의해 정의된다. 또 다른 속성으로 TYPE 속성이 있다. 이 속성은 각 요소들의 형태을 지정해주는 속성으로 그 내용은 다음 표와 같다.

Type 특징
TEXT 한 줄짜리 입력창을 표시한다.
PASSWORD TEXT와 유사하지만 입력되는 내용을 화면에 '*'로 표시한다.
RADIO 원형 모양의 창에 점이 찍히는 라디오버튼을 표시한다.
CHECKBOX 사각형 모양의 창에 체크 표시가 되는 체크박스를 표시한다.
BUTTON 버튼을 표시한다.
SUBMIT 각각의 폼에 입력된 데이터를 가지고 Action 속성에 지정된 프로그램을 실행하도록 하는 버튼을 표시한다.
RESET 클릭하면 폼에 입력된 값을 초기화 하는 버튼을 표시한다.
FILE 파일 업로드를 위한 입력창과 파일검색 버튼을 표시한다.


또한 <INPUT> 태그에는 SIZE, MAXLENGTH, VALUE, CHECKED 등의 속성이 있다. SIZE 속성과 MAXLENGTH 속성은 TYPE 속성의 값이 TEXT, PASSWORD 인 경우 함께 사용되며 각각 입력창의 크기와 입력 가능한 최대 글자수를 지정한다. 또한 VALUE 속성은 TEXT, PASSWORD, BUTTON, SUBMIT, RESET와 함께 사용되며 TEXT, PASSWORD에서는 창에 표시될 초기값을 지정하고 출력하며, BUTTON, SUBMIT, RESET에서는 버튼 위에 표시될 문자를 지정한다. 마지막으로 CHECKED 속성은 RADIO, CHECKBOX와 함께 사용되며 라디오버튼 또는 체크박스가 기본적으로 선택된 상태가 되도록 하기위해 사용된다.

속성 관련 Type 의미
Size Text, Password
표시 가능한 문자의 개수로 창의 크기 지정
Maxlength 창에 입력 가능한 최대 문자
Value
Text, Password 창에 표시될 초기값 지정
Button, Submit, Reset 버튼 위에 표시될 문자 지정
Radio, Checkbox 각 항목에 대해 프로그램으로 전달될 실제 값 지정
Checked Radio, Checkbox 기본적으로 선택된 상태 지정
Name
HTML의 모든 태그를 구분하기 위한 고유 값을 지정하며 JSP 프로그램에서 파라메터로 처리


다음 프로그램 "inputTag.html"은 다양한 <INPUT> 태그의 예를 보여주고 있다.

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>입력 폼</title>
</head>
<body>
<form name="form" method="get" action="exam7-2.php">
<table border="0" cellpadding="2" cellspacing="0">
    <tr>
        <td width="80">
            <p align="right">
            <font size="2">아이디</font>
            </p>
        </td>
        <td width="195">
            <p><font size="2">
            <input type="text" name="id" maxlength="20"
                value="아이디를 입력하세요" />
            </font>
            </p>
        </td>
    </tr>
    <tr>
        <td width="80">
            <p align="right"><font size="2">비밀번호</font></p>
        </td>
        <td width="195">
            <p><font size="2">
            <input type="password" name="pass" maxlength="20" />
            </font>
            </p>
        </td>
    </tr>
    <tr>
        <td width="80">
            <p align="right"><font size="2">성별</font></p>
        </td>
        <td width="195">
            <p><font size="2">
            <input type="radio" name="gender" checked />남자
            <input type="radio" name="gender" />여자
            </font>
            </p>
        </td>
    </tr>
    <tr>
        <td width="80">
            <p align="right"><font size="2">취미</font></p>
        </td>
        <td width="195">
            <p><font size="2">
            <input type="checkbox" name="hobby" checked />여행
            <input type="checkbox" name="hobby" />독서
            </font>
            </p>
        </td>
    </tr>
    <tr>
        <td width="80">
            <p>&nbsp;</p>
        </td>
        <td width="195">
            <p><font size="2">
            <input type="submit" value="저장" />
            <input type="reset" value="취소" />
            <input type="button" value="버튼" />
            </font>
            </p>
        </td>
    </tr>
</table>
</form>
</body>
</html>

사용자 삽입 이미지

inputTag.html 실행결과


TEXTAREA 태그

<TEXTAREA> 태그는 게시판 글올리기에서와 같이 여러줄을 입력할 수 있는 입력창을 표시한다. <TEXTAREA> 태그는 </TEXTAREA> 태그와 함께 사용되며 두 태그 사이에 위치한 내용을 화면에 표시한다. <TEXTAREA> 태그 역시 다양한 속성을 가지고 있으며 그 중 몇가지 속성에 대해 살펴보겠다. 먼저 입력창의 크기를 지정하는 ROWS, COLS 속성이 있다. ROWS 속성은 입력창의 높이를 지정하며 COLS는 폭을 지정한다. 또한 이 태그 역시 NAME 속성을 가지며 이 속성의 의미는 <INPUT> 태그의 그것과 같다.

다음 프로그램 "textareaTag.html"은 <TEXTAREA> 속성의 예를 보여준다.

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>입력 폼</title>
</head>
<body>
<form name="form" method="get">
<table border="0" cellpadding="2" cellspacing="0">
    <tr>
        <td width="80">
            <p align="right">
            <font size="2">아이디</font>
            </p>
        </td>
        <td width="195">
            <p><font size="2">
            <input type="text" name="id" maxlength="20"
            value="아이디를 입력하세요"/>
            </font>
            </p>
        </td>
    </tr>
    <tr>
        <td width="80">
            <p align="right"><font size="2">메세지</font></p>
        </td>
        <td width="195">
            <p><font size="2">
            <textarea name="msg" cols="25" rows="3">메세지 영역</textarea>
            </font>
            </p>
        </td>
    </tr>
    <tr>
        <td width="80">
            <p>&nbsp;</p>
        </td>
        <td width="195">
            <p><font size="2">
            <input type="submit" value="저장"/>
            <input type="reset" value="취소"/>
            <input type="button" value="버튼"/>
            </font>
            </p>
        </td>
    </tr>
</table>
</form>
</body>
</html>

사용자 삽입 이미지

textareaTag.jap 실행결과


프로그램에서 "<textarea name="msg" cols="25" rows="3">메세지 영역</textarea>"의 내용에 의해 가로 25 자 세로 3 줄 짜리 텍스트 영역이 만들어 졌으며 이 영역에 "메세지 영역"이라는 내용을 기본으로 출력하고 있다.

SELECT 태그

<SELECT> 태그는 펼침목록 또는 리스트 형태의 입력폼을 표시한다. 이 태그는 </SELECT> 태그와 함께 사용되어야 한다. 이 태그 역시 다른 태그들과 마찬가지로 NAME 속성을 가진다. 또한 SIZE 속성을 가지는데 값이 1이면 펼침목록 형태로 출력되며 값이 2 이상이면 리스트박스 형태로 출력된다. <SELECT> 태그는 단독으로 사용될 수 없으며 <SELECT> 태그와 </SELECT> 태그 사이에 열거하려는 각각의 목록을 <OPTION> ~ </OPTION> 태그 사이에 써 줘야한다. <OPTION> 태그는 VALUE 속성과 SELECTED 속성을 가진다. VALUE 속성은 해당 목록이 선택됐을 때 프로그램으로 전달할 값을 지정해 주며, SELECT 속성은 라디오버튼 및 체크박스에서의 CHECKED 와 같은 의미를 가진다.

다음 프로그램 "selectTag.html"은 <SELECT> 태그를 사용한 예를 보여주고 있다.

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>SELECT</title>
</head>
<body>
<form name="form" method="get">
<table border="0" cellpadding="2" cellspacing="0">
    <tr>
        <td width="55">
            <p align="right"><font size="2">직업</font></p>
        </td>
        <td width="150">
            <p><font size="2">
            <select name="job">
                <option value="1">회사원</option>
                <option selected value="2">학생</option>
                <option value="3">자영업</option>
                <option value="4">주부</option>
                <option value="5">무직</option>
            </select>
            <input type="submit" value="확인"/>
            </font>
            </p>
        </td>
    </tr>
</table>
</form>
</body>
</html>

사용자 삽입 이미지

selectTag.html 실행결과


프로그램의 실행결과를 살펴보면 <option>~</option> 태그에 열거된 내용들이 펼침목록에 표시되었으며 "SELECTED" 된 항목인 "학생"이 기본적으로 선택되었다.

'홈페이지 > HTML' 카테고리의 다른 글

HTTP 접속  (0) 2009.03.12
AND

HTTP 접속

홈페이지/HTML 2009. 3. 12. 19:58
쿠키와 세션을 공부하기 전에 다음의 경우를 생각해 보자. 우리가 전화로 여행사를 통하여 항공기 좌석을 예약한다고 가정하자. 우선 항공기 예약을 하려면 통화 중인 여행사 직원에게 원하는 날짜 및 시간, 목적지 등과 함께 자신의 간단한 신상을 제공할 것이다. 그러면 여행사 측에서 고객에게 예약번호를 부여한 후 항공기 예약을 완료하게 되고 전화를 끊는다. 그러나 사정이 생겨 후에 예약 내용을 변경하거나 취소 하려면 여행사에 전화를 걸어 자신의 예약번호 또는 이름, 주민등록번호와 같이 자신이 누구임을 밝힐 수 있는 정보를 고객이 여행사에 먼저 알려 줘야 한다. 그래야 항공기의 예약을 변경 또는 취소할 수 있기 때문이다. 만약 여행사에 전화를 걸어 예약과 관련된 정보(예약번호, 이름, 주민등록번호 등)를 알려주지 않고 무작정 예약을 변경 또는 취소한다고 하면 여행사 직원은 너무나도 당연한 얘기지만 올바른 처리를 할 수 없을 것이다.


사용자 삽입 이미지

항공편 예약 처리 과정


사용자 삽입 이미지

예약항공편 변경 처리 과정



http 접속은 사용자(클라이언트 또는 웹브라우저)로부터 웹 서버로 접속 요구가 시작되면 서버가 접속을 요구한 클라이언트로 데이터(일반적으로 HTML)를 보내기위해 연결을 설정한다. 그 후 데이터를 전송하고 데이터가 전송되면 그 연결을 지속적으로 유지하지 않고 자동으로 끊는다. 그 후 서버는 또 다른 접속 요구를 기다리고 위와 같은 방법으로 다른 클라이언트로부터의 접속요청을 처리한다. 다음 그림은 http 접속 과정을 나타낸 것이다.

사용자 삽입 이미지

http 접속 절차


이 방법은 연결이 지속적으로 유지되는 것에 비해 서버 및 네트워크의 부하를 많이 줄일 수 있지만 서버와 클라이언트 사이에 지속적인 정보를 유지하기가 어렵다.

Daum(http://www.daum.net)을 예를 들어보자. Daum에서 웹메일을 이용하기 위해서는 로그인을 해야한다. 이 때 로그인이 성공적으로 이루어지면 웹메일을 이용할 수 있는 화면으로 이동하여 메일읽기, 메일보내기 등 다양한 서비스를 이용할 수 있다. 이 때 각 서비스는 메뉴화면에서 해당 메뉴를 클릭함으로써 이용할 수 있다. 그러나 서비스를 이용하기 위해 메뉴를 클릭한다는 것은 이미 로그인 이라는 하나의 http 접속 주기(요청, 연결, 전송, 해제)를 완료하고 새로운 접속을 요청하고 있음을 의미한다. 즉 이 상황은 앞의 예에서 전화를 걸어 항공기 예약을 마친후 나중에 어떠한 사정으로 인하여 예약을 변경하는것에 비유될 수 있다. 따라서 로그인 후 각종 서비스를 이용하기위해 클릭을 하여 서버로 새로운 접속을 요구하게 되면 서버는 접속을 요구한 사용자가 어떤 사용자인지를 파악할 방법이 없습니다. 이를 위해서는 전화를 통한 예약 변경시 전화를 걸어 예약번호와 같은 자신의 정보를 직원에게 알려주는 것과 같은 방법으로 사용자가 서버에게 자신을 알릴 수 있는 어떤 정보를 알려줘야 한다. 바로 이러한 일련의 작업은 쿠키 또는 세션이라 불리는 기술을 통해서 구현할 수 있다.


'홈페이지 > HTML' 카테고리의 다른 글

HTML FORM  (0) 2009.03.18
AND