JSP 문서 만들기


이제 본격적으로 JSP라고 할 수 있는 것들을 배워 보겠습니다.
여러분의 컴퓨터에 JSP 프로그래밍 환경이 갖추어 지지 않았다면, 이전에 포스팅 해놓은 것들을 따라하면서 JSP 프로그래밍 환경을 구축하시기 바랍니다. JSP 프로그래밍 환경이 없으면 JSP를 실행 할 수 없겠죠?

2010/04/06 - [놀이터/글 창고] - 자바( Java )설치하기 & 환경변수( path ) 설정하기
2010/04/06 - [놀이터/글 창고] - 자바( JAVA ) 개발 환경 설치( IDE 설치 ) - 이클립스( Eclipse ) 설치하기 및 오류
2010/07/15 - [놀이터/글 창고] - 이클립스와 톰캣 설치 및 연동하기
2010/07/19 - [놀이터/글 창고] - JSP 프로젝트 생성 및 "Hello, world!" 프로그래밍

이전에 "Hello, World!" 프로그래밍을 해봤는데요. 사실 이것은 JSP 라고 하기가 뭐 한게, JSP 함수들을 이용하지 않고 단지 HTML문서를 JSP 파일로 돌려 본 것 뿐입니다. 그래서 오늘은 진짜 JSP라고 할 수 있는 기초 프로그래밍을 배워 보도록 하겠습니다.


JAVA 언어를 이용한 "Hello, World!"


 이전에 실행 해 봤던, "Hello, World!" 라는 소스를 기억 하시나요?
2010/07/19 - [놀이터/글 창고] - JSP 프로젝트 생성 및 "Hello, world!" 프로그래밍
위에서 말씀 드렸다 시피 이 소스는 JSP라기 보다는 HTML이라고 해야 더 정확 할 것입니다. 동적인 요소, 특히 JAVA 언어가 사용되지 않았기 때문이죠. 이제 여기에 JSP적 요소( JAVA 언어를 이용한 )를 추가한 "Hello, World!" 소스 코드를 작성해 보도록 하겠습니다.

소스는 다음과 같습니다.

<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!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>
<%    String str = new String("Hello, World!"); %>
<%= str %>
</body>
</html>


이전에 작성했었던 "Hello, World!" 소스와 달라진 부분이 있지요?

이전 "Hello, World!" 소스


바뀐 "Hello, World!" 소스


바로 <Body> 태그의 안쪽에 단순히 Hello, world! 라는 문자열만 있었던 부분이 자바 비스무리한 소스코드로 바뀌어 진 부분입니다. 출력되는 결과는 같습니다만, 표현하는 방식이 약간 다른데요. 전자는 HTML을 이용한 정적인 방식이고, 후자는 JSP를 이용한 동적인 방식이 되겠습니다.

JSP 코드의 출력 결과


더 설명을 하자면, JSP 소스 코드에는 HTML 코드 뿐만아니라 자바 프로그래밍 코드도 약간 들어가 있다는 것입니다. 바로 HTML 문서 중간에 <% %>로 둘러 쌓인 부분이 바로 자바 프로그래밍 부분인데요. 위에서는 문자열인 String 클래스를 생성자를 이용해 "Hello, World!" 라는 문자열을 만들어서 저장을 하고 있습니다. 여기까지는 자바 코드와 같은 패턴이네요.

다음은 <%= str %> 부분입니다. 원래 자바에서 콘솔에 문자열을 출력하는 메소드는 System.out.println("") 임을 자바를 배우신 분이라면 아실 겁니다. 하지만 JSP에서 출력이 되는 곳은 콘솔이 아니라 HTML을 출력하는 웹 브라우저입니다. 이 때 사용하는 방법이 <%= 변수 %> 를 사용하는 방법으로, 변수에 들어있는 내용이 문자열의 형태로 HTML 상에 출력이 되는 것입니다.

위 소스 코드를 설명해보면, str 이라는 변수에 "Hello, World!"라는 문자열 객체를 만들어서 가리키게 하고 있습니다. ( str이라는 변수에 "Hello, World!"라는 문자열을 저장하고 있다고 보시면 됩니다. ) 그 다음줄에서 <%= str %> 이라는 부분에 의해서 str 변수에 들어있는 문자열이 HTML 상으로 출력이 됩니다. 즉, str에 "Hello, World!" 라는 문자열이 들어 있으므로 <%= str %> 코드를 만나서 Hello, World 가 HTML로 출력이 되는 것입니다.

로그인 처리


JSP를 이용하는 이유가 바로 여기에 있는데요. 프로그래밍이 가능하다는 부분입니다. 만일 로그인한 사용자의 정보를 표현하고 싶을 때, 그 정보를 변수에 담았다가 요소요소에 사용 할 수 있습니다. 또, 회원의 등급에 따른 if 문의 사용으로 JSP 페이지를 다르게 표현 할 수도 있는 강력한 프로그래밍 가능성을 가지고 있습니다.

요약하면 JSP를 이용해서 좀 더 유연하고, 강력한 웹 페이지를 구성 할 수 있다는 말입니다.

JSP에 대한 더 자세한 내용은 차차 배워 가도록 하겠습니다. JSP를 배워서 게시판을 만들어 보는 것이 이번 스터디의 목적이니 잘 따라 오시고 좀 더 공부를 하시면 쇼핑몰이나 블로그 플랫폼, 홈페이지 정도를 만들 수 있는 실력까지 올라 가실 수 있을 겁니다. ^^


JSP 학습 추천 도서



 웹 서핑을 하면서 가장 보기 싫은 페이지가 어떤 페이지 일까요? 바로 모든 컨텐츠가 깨알 같은 글로만 이루어진 페이지일 것입니다. 게시판을 읽으면서도 글로만 되어 있는 게시물은 스크롤 다운 ( 그냥 읽지 않고 스크롤을 내려 버림 )의 대상이 되어 버리고 맙니다.  반면에 사진이 첨부되어 있어서 글을 읽느라 피곤해진 웹 서퍼들의 눈을 즐겁게 해주는 페이지의 경우에는 방문객이 좀 더 글에 관심을 주게 마련이지요. 이번에 알아 볼 태그는 바로 이런 사진을 웹 페이지에 담을 수 있게 해주는 이미지 태그입니다.



이미지 태그(img)의  기본 형식


 이미지 태그는 기본적으로 다음과 같은 형식을 갖습니다.

이미지 태그의 기본형식

이미지 태그의 기본형식


 <img src="주소"></img> 라고 쓰셔도 됩니다. 모든 태그는 여는 태그와 닫는 태그로 이루어져 있다고 배웠기 때문에 많은 분들이 이런 방식으로 쓰죠. 하지만 몇몇 특이한 태그들은 하나의 태그로만 존재 할 수 있습니다. 바로 <img /> 태그와 <br /> 태그 같은 것들입니다. 이런 태그들은 여는 태그와 닫는 태그 사이에 중요한 내용이 들어가지 않으며, 그 자체로 내용이기 때문에 간편하게 줄여 쓸 수 있습니다.

 이미지 태그에는 기본적으로 src 속성이 필요합니다. 인터넷에 올라와 있는 이미지를 가져다 쓸 경우에는 이미지의 주소가 필요합니다. ( 이 주소는 이미지를 우클릭해서 속성(R) 혹은 그림 정보 보기를 누르시면 알 수 있습니다. ) 여러분의 컴퓨터 안에 있는 사진을 html 페이지에

※ 이미지 주소에는 상대 경로와 절대 경로가 있는데 이것에 대해서는 나중에 포스팅을 따로 해드리겠습니다.
 



이미지 태그(img)의 속성 < alt : 이미지의 부가 설명 >


 이미지 태그에는 여러가지 속성이 있습니다. 그 중에 가장 중요하다고 할 수 있는 속성이 바로 alt 속성입니다. 이미지 태그는 의미가 있습니다. 예를 들어, 만리장성에 대한 이미지를 img 태그로 웹 문서에 넣었다면, 이 이미지는 만리장성이라는 의미로 사람들에게 보여집니다. 하지만 이미지가 깨졌거나 로드되지 않았을 때, 이 이미지를 설명 할 수 있는 기능이 필요합니다. 또 시각 장애인을 위한 웹 페이지 설명 시스템에서 이미지는 보여지는 것이기 때문에 이미지를 말로 설명 할 수 있는 기능이 필요 합니다.


티스토리의 이미지 태그 alt 옵션

티스토리의 이미지 태그 alt 옵션




 이 때 사용하는 이미지 태그의 옵션이 바로 alt 옵션입니다. 티스토리를 사용하시는 분이라면 텍스트 에디터에서 사진을 클릭 했을 때, 우측에 위와 같은 창이 뜨는 것을 볼 수 있습니다. 이 때, 대체 텍스트가 바로 alt 옵션을 지정해 주고 있습니다. ( 실제로 대체 텍스트에 글을 넣고 html로 본문을 변형해서 보시면 alt 옵션에 들어가 있는 것을 볼 수 있습니다.

 
<img src="www.asldkfasjldkf.com/" alt="대체 텍스트" />

실제로 위와 같은 태그를 HTML 연습장에서 실행을 시켜 보겠습니다. 이 때, src에 들어가는 주소는 임의의 존재하지 않는 주소이기 때문에 사진이 나오지 않습니다.


alt 옵션을 준 이미지 태그

alt 옵션을 주지 않은 이미지 태그

alt 옵션을 준 이미지 태그

alt 옵션을 준 이미지 태그



 alt 옵션을 집어 넣지 않았을 경우엔 그냥 소위 말하는 "엑박"이 뜹니다. ( 파이어 폭스에서는 엑박대신에 왼쪽 그림과 같은 모습으로 나오더군요. ) 하지만 alt 옵션을 준 경우에는 alt 옵션에 해당하는 텍스트가 이미지 태그 자리에 대신 출력이 됩니다.

 alt 옵션은 되도록이면 선택해 주는 것이 좋습니다. 이유는 웹 페이지가 제대로 로드 되지 않아도 본문을 잘 이해 할 수 있게 하며, 시각 장애인이나 다른 단말기에서도 적절하게 해석 될 수 있도록 부가적인 설명을 주는 옵션이기 때문입니다.




이미지 태그(img)의 속성 < title : 이미지의 부가 설명 >

<
 이미지 태그의 부가적인 속성 중에 title 태그가 있습니다. 여러분은 웹 사이트를 돌아다니면서 이미지가 있을 경우 마우스를 이미지 위에 올렸을 때, 네모난 텍스트 상자가 뜨고 그 안에 설명이 들어있는 것을 본 적이 있을 겁니다. 바로 title 옵션이 이런 기능을 담당하는데요.

 이 역시 이미지의 부가적인 설명을 나타내는데 사용됩니다. 시각 장애인용 웹 페이지 리더기에서도 이 title 속성을 읽어 주는 기능이 옵션으로 들어있다고 합니다.

<img src="http://sstatic.naver.com/people/portrait/201001/20100122151943157.jpg" title="소녀시대" />

위와 같은 태그를 태그 연습장에서 실행 시켜 봅시다. 그러면 사진이 하나 뜨게 됩니다. 그 사진 위에 마우스를 올리면..


이미지 태그 title 속성

이미지 태그 title 속성




 title 속성에 주었던 "소녀시대"라는 단어가 마우스 하단에 부가 설명으로 뜨게 됩니다. 사진이 잘 알아보기 힘들거나 좀 더 부가적인 설명을 줄 때 이 속성을 사용하면 좋을 것 같습니다. ( 검색 엔진의 키워드 필터링에 이 속성값이 영향을 미치는 지는 잘 모르겠습니다. 아마 Case by Case 가 아닐까 생각 되네요. )





이미지 태그(img)의 속성 < align : 이미지의 정렬 >


 워드 프로세서를 쓰다보면 정렬 기능을 많이 사용하게 됩니다. 글을 좀더 보기 좋게 나타내기 위해서는 정렬 기능은 꼭 필요합니다. 이미지 태그 역시 정렬을 할 수 있습니다. 이미지 태그의 정렬에는 5가지 옵션이 있습니다. 각 옵션과 설명은 다음과 같습니다.

 옵션 이름
 내용
align="right"
이미지가 오른쪽으로 정렬됩니다. 
 align="left"  이미지가 왼쪽으로 정렬됩니다.
align="top"
주변의 텍스트가 이미지 상단쪽에 표시 됩니다.
 align="middle" 주변의 텍스트가 이미지 중간에 표시 됩니다.
 align="bottom"  주변의 텍스트가 이미지 하단쪽에 표시 됩니다.


 역시 설명으로 하면 알아 듣기 힘들테니 각각 실제로 어떻게 표현되는지 실험해 보겠습니다.







 align 속성을 잘 이용해서 이미지를 본문의 적절한 위치에 배치하면 본문에 대한 방문자의 이해도를 높일 수 있을 겁니다. 솔직히 "top" 속성과 "middle", "bottom" 속성은 어디에 사용해야 할 지 잘 모르겠네요. ^^ 언젠간 사용 될 수 있으니 알아 두도록 하겠습니다. ^^

ps. 그리고 이미지의 align 속성을 지정해주지 않으면 기본적으로 bottom 속성으로 되는것 같습니다. 참고하시기 바랍니다. ^^




이미지 태그(img)의 속성 < width, height : 사진의 크기 조절>


 사진은 규격이 있습니다. 현상을 할 때, 반명함, 증명사진 등등 의 사이즈가 있는 걸 경험으로 알고 있습니다. 웹 페이지에 사용 되는 이미지 태그에도 이렇게 이미지의 크기를 조절 할 수 있는 기능이 있습니다. 바로 height 속성과 width 속성입니다. 영어 사전을 찾아보면 무엇을 의미하는지 알 수 있습니다.

<img src="http://sstatic.naver.net/search/img2/logo_naver_2.gif" width="200" height="200" />

 위 태그를 태그 연습장을 이용해서 실행해 보도록 하겠습니다. 그러면 다음과 같이 실행이 됩니다.



이미지 태그 옵션

이미지 태그 옵션



  평소에 보던 네이버 로고와 많이 다른 모습입니다. 원래는 보기 좋게 NAVER 라는 단어가 가로로 출력이 되는데, 정사각형 모양으로 늘어져서 보이네요. 그 이유는 width 속성과 height 속성을 이용해서 이미지의 크기를 200 * 200 으로 만들었기 때문입니다. 다시 말해서 이 이미지의 높이는 200px ( 픽셀 ) 이고 너비도 200px( 픽셀 )이라는 겁니다.

 원래 이미지를 적절한 크기로 줄이거나 늘리고 싶을 때, 사용하면 좋은 속성입니다. 실제 사용빈도도 굉장히 높은 옵션입니다.





이미지 태그(img)의 속성 < vspace, hspace : 사진의 여백 >

 마지막으로 그림에 여백을 주는 속성인 vspace와 hspace를 알아보도록 하겠습니다. 여백이라는 것은 주변의 텍스트나 다른 그림과 이미지 사이에 적절한 공간을 주는 것을 의미합니다. 다음과 같은 태그를 태그연습장에 실행을 해봅시다.


<img src="http://sstatic.naver.com/people/portrait/201001/20100122151943157.jpg" align="left" vspace="100" hspace="100" />
 똑바로 해 넌 정말 Bad boy 사랑보단 호기심뿐 그 동안 난 너 땜에 깜빡 속아서 넘어간거야 넌 재미없어 매너 없어 넌 Devil Devil 넌 넌 네 핸드폰 수많은 남자 한 글자만 바꾼 여자 내 코까지 역겨운 Perfume 누구 건지 설명해봐 넌 나 몰래 누굴 만나는 끔찍한 그 버릇 못 고쳤니 뛰어 봐도 손바닥 안인걸 You better run run run run run 더는 못 봐 걷어차 줄래 You better run run run run run 날 붙잡아도 관심 꺼둘래 Hey 더 멋진 내가 되는 날 갚아주겠어 잊지 마 You better run run run run run 딱 걸렸어 약 올렸어 Run Devil Devil Run Run 내 곁에서 살며시 흘깃 다른 여잘 꼭 훑어봐 나 없을 땐 넌 Super Playboy 고개 들어 대답해봐 넌 재미없어 매너 없어 넌 Devil Devil 넌 넌 You better run run run run run 더는 못 봐 걷어차 줄래 You better run run run run run 날 붙잡아도 관심 꺼둘래 Hey 더 멋진 내가 되는 날 갚아주겠어 잊지 마 You better run run run run run 딱 걸렸어 약 올렸어 Run Devil Devil Run Run 넌 재미없어 매너 없어 Run Devil Devil Run Run 얘 나 같은 애 어디도 없어 잔머리 굴려서 실망했어 난 걔네들 보다 더 대단해 너 그렇게 커서 뭐 될래 (까불지 말랬지) 널 사랑해 줄 때 잘 하랬지 You better run run run run run 더는 못 봐 걷어차 줄래 You better run run run run run 날 붙잡아도 관심 꺼둘래 Hey 더 멋진 내가 되는 날 갚아주겠어 잊지 마 You better run run run run run 이 넓은 세상 반은 남자 너 하나 빠져봤자 꼭 나만 봐줄 멋진 남자 난 기다릴래 혼자

 
 여백의 의미를 설명하기 위해서 align 속성을 left로 주었습니다. 위 글을 잘 읽어 보신 분이라면 의미를 아시겠죠? 다시 설명하자면, 이미지를 왼쪽 정렬하여 텍스트들이 여러줄에 걸쳐서 이미지를 지나가게 하는 속성입니다. 위 태그의 실행 결과는 다음과 같습니다.


이미지 태그 여백 옵션

이미지 태그 여백 옵션




이미지 주변에 여백이 생긴 것을 볼 수 있습니다. 그 여백 밖으로 텍스트 들이 지나가고 있구요. 이미지 바로 옆에 텍스트가 표시 되면 이미지를 보기도 힘들고 텍스트를 읽기도 어려울 수 있습니다. ( 가독성이 떨어진다고 해야하나요? ) 아무튼 이미지에 적절한 여백을 주는 것도 예쁜 웹 페이지를 만드는 방법 중 하나입니다.


이미지 태그(img)와 링크 태그(a)


 지난 번에 링크 태그에 대해서 알아 봤습니다.

 2010/05/03 - [6. 컴퓨터 공학/a. HTML/CSS] - 링크 태그 걸기

 그 중에 이미지 태그와 링크 태그에 대해서 언급을 했었습니다.

 이미지에 링크걸기

 글자에 링크를 거는 것 뿐만아니라 이미지에도 링크를 걸 수 있으며, 배너와 같은 곳에 적용할 수 있습니다. 이미지 태그와 링크 태그를 적절하게 사용해서 인터넷 게시판에 자신의 명함을 만들 수도 있겠네요.


 웹 페이지를 더욱 풍부하게 해 줬던 것이 바로 멀티미디어 입니다. 그 중에 가장 기본이 되는 것이 이미지 인데요. 이번 시간에 이미지 태그를 배웠으니 여러분의 블로그에 여러분 만의 배너를 만들어서 집어 넣어 보세요 ^^. 티스토리에서 제공하는 배너나 스킨을 자신의 입맛에 맛게 바꿔 나가는 것도 또 다른 재미랍니다. ^^




 요즘 주변을 보면 많은 사람들이 블로그를 하는 걸 볼 수 있습니다. 블로그가 점점 대중화 되어가고 있다는 증거겠지요. 초창기 블로거들은 지금처럼 포털 사이트에서 제공하는 블로그 서비스가 없었기 때문에 스스로 블로그를 설치해서 ( 설치형 블로그 ) 써야 했습니다. 그렇기 때문에 그들은 웹 언어인 HTML을 배우게 되었습니다.

 하지만 요즘은 가입형 블로그 서비스 ( 네이버 블로그, 티스토리, 이글루스 )가 블로거의 대다수를 차지하고 있기 때문에 HTML을 몰라도 블로깅을 하는데에 문제가 없습니다. 그럼에도 불구하고 여전히 블로거가 HTML 태그를 알아야 하는 몇가지 이유가 있습니다.



Girasoles para los amigos  / Sunflowers for the friends
Girasoles para los amigos / Sunflowers for the friends by Claudio.Ar (not too much online) 저작자 표시비영리동일조건 변경허락



1. 표현력

 첫 번째 이유는 바로 표현력입니다.  블로그는 기본적으로 웹에 내용을 배포하는 형태이니다. 모든 내용들이 HTML의 형태로 웹에 발행을 하게 됩니다. 물론 가입형 블로그 서비스에서는 스마트 에디터가 내용을 자동으로 HTML로 바꿔 주기는 합니다. ( 예를 들면 티스토리 글쓰기 화면에서 여러분은 그저 여러가지 버튼을 사용해서 글을 작성합니다. 마치 "워드 프로세서"를 사용하듯이 말이죠. 하지만 궁극적으로 그 내용들은 HTML로 변형되어 발행됩니다. )

 하지만 이렇게 스마트에디터에 기대어 글을 쓰기만 하면, 내가 원하는 것을 정확히 표현 할 수 없을 때가 많이 있습니다. ( 그렇기 때문에 대부분의 에디터가 직접 HTML을 편집 할 수 있는 기능을 제공합니다. 티스토리 에디터 역시 직접 HTML을 조작 할 수 있게 하죠. ) 블로거가 HTML 태그를 모르고 스마트 에디터에만 기댄다면 그 블로거의 표현 능력은 스마트 에디터의 표현 능력보다 못 한 상태가 됩니다. ( 최대한 잘 써봐야 스마트 에디터의 표현 능력까지 겠죠. )

 따라서 자신이 원하는 내용을 좀 더 정확하게 인터넷에 표현하기 위해서 블로거는 HTML 태그를 배울 필요가 있습니다.



Scientific FUTAB
Scientific FUTAB by Samyra Serin 저작자 표시비영리동일조건 변경허락



2. 디자인 편집 능력

 두 번째 이유는 디자인의 편집 능력입니다. 표현 능력의 연장선이라고 할 수 있는데, 가입형 블로그 서비스의 경우 ( 가령 네이버 블로그를 예로 들면 ) 종종 블로그의 디자인을 바꿀 수 없을 때가 많이 있습니다. 혹은 맘에 드는 블로그 스킨을 그냥 적용하는 정도 밖에 되지 않습니다.

 하지만 티스토리와 같이 스킨을 직접 편집 할 수 있는 블로그의 경우에는 HTML 태그를 알아야 수정하기가 편합니다. ( 아니라면 남이 올려놓은 스킨 편집 포스트를 보고 그냥 따라하는 정도 밖에 되지 않겠죠. ) 예를 들면 여러분의 블로그에 애드센스를 설치하려고 할 때, <table> 태그를 알아 두면 좀 더 멋진 디자인으로 설치 할 수가 있습니다. ( 본문 상단에 애드센스를 두개 삽입하는 것 처럼 )

 여러분의 블 로그를 좀 더 편하고 예쁜 디자인으로 바꾸려면 HTML 태그를 배워야 합니다.



Bigui, Beagle
Bigui, Beagle by ¡arturii! 저작자 표시비영리변경 금지



3. 표준의 중요성

 HTML은 표준이 있습니다. 모든 웹브라우저는 이 HTML 표준을 잘 판독하고 화면에 표시 할 수 있어야 합니다. ( 물론 IE를 비롯한 몇몇 웹 브라우저에는 독자적인 HTML 형식이 있을 수 있고, 모든 웹 브라우저가 HTML 표준을 만족하는 것은 아닙니다. ) 게다가 웹에 접속하는 기기가 PC나 노트북에서 모바일 기기로 옮겨 가면서 HTML 페이지가 모바일 기기에서도 읽힐 수 있을 필요성이 생겼습니다.
 
 다시 말하면 웹 표준에 맞추어서 작성된 HTML 문서는 모바일 기기에서도 잘 읽힙니다. 하지만 표준이 아닌 특정 웹 브라우저에서만 동작하는 웹 페이지는 모바일 기기에서는 동작을 안하거나 잘 못 동작 할 수 있다는 것입니다. ( 모바일 웹 브라우저는 표준에 맞게 제작이 될 테니까요 ^^ )

 즉, 모바일 기기를 통해 웹에 접속한 방문자를 위해서라도 HTML 표준에 맞는 글 작성이 필요합 니다.



Horta d'en Rahola
Horta d'en Rahola by . SantiMB . 저작자 표시비영리변경 금지



4. CSS나 javascript 를 배우기 위한 기본적인 지식

 HTML을 아시는 분들도 CSS나 javascript 라는 것에는 생소 할 수 있습니다. 역할을 간단히 말하자면 HTML은 웹 페이지의 구조, 즉, 사람의 몸이라고 할 수 있구요. CSS는 그 위에 입는 옷이라고 할 수 있습니다. javascript는 사람의 근육으로 어떤 동작을 할 수 있을지에 대한 역할을 수행합니다.

 사람이 어떤 동작을 하건, 어떤 옷을 입건 몸이이 없다면 아무것도 아니겠지요. 정확히 말하면 몸이 없으면 입을 수도 동작을 할 수도 없죠. 마찬가지입니다. HTML을 모르고서 CSS를 배울 수 없고 좋은 javascript 프로그래머가 될 수 없습니다.

 블 로그의 운영적인 측면에서 보자면, 블로그를 좀 더 이쁘게 ( CSS를 이용해서 ) 만들고, 좀 더 많은 기능들을 ( javascript를 이용해서 ) 구현하기 위해서는 HTML을 배워야 합니다.


Colours
Colours by Lincolnian (Brian) (family illness - back soon) 저작자 표시동일조건 변경허락


  좋은 블로그를 만들기 위해서 가장 중요한 것은 물론 컨텐츠입니다. 어떤 컨텐츠를 만들어 내느냐가 그 블로그에 가장 중요하고 필요한 요소이지만 HTML을 공부해서 좀 더 이쁜 블로그를 내 맘대로 만들 수 있는 능력도 좋은 블로그를 만들 수 있는 하나의 방법이 아닌가 생각됩니다.



꼬마낙타 태그 연습장

 HTML의 가장 기본이라고 할 수 있는 요소가 바로 링크입니다. 하이퍼 텍스트( Hyper Text ) 라는 말에서 알 수 있듯이 웹에서 모든 문서는 서로 링크라는 것으로 연결이 되어 있습니다. 그러면 링크란 무엇이며 링크 태그는 어떻게 사용하는 것일까요? 먼저 링크 태그는 HTML 페이지를 구성 할 때, 링크를 넣어 주는 역할을 하는 태그를 의미 합니다.


링크란?

 링크란 무엇일까요? 이것이 링크입니다.  --> http://plusblog.tistory.com/
 화살표 오른편에 있는 주소를 클릭하면 여러분은 저의 블로그로 돌아 올 수가 있습니다. ( 비슷한 예로 네이버 주소를 클릭해서 들어가게 만들 수도 있지요. 링크는 사전적으로 연결이란 뜻을 가지고 있는데, 웹 페이지에선 클릭을 해서 다른 페이지로 혹은 자기 자신의 특별한 곳으로 갈 수 있는 기능을 의미합니다.

 링크를 걸 수 있는 방법은 여러가지가 있습니다. 첫 번째로 블로그의 스마트 에디터가 있는데요. 티스토리를 예로 들면 글을 쓸 때, 쇠사슬 모양의 링크 버튼이 있습니다.

링크 태그 넣기 : 스마트 에디터

링크 태그 넣기 : 스마트 에디터


 1번 버튼을 누르면 2번이 확장되어 주소를 쓸 수 있는 창이 나오게 됩니다. 2번의 입력 창에 주소를 입력하면 본문에 링크가 삽입이 됩니다. 물론 이런 쉬운 방법이 있지만 HTML 태그를 이용해서 좀 더 강력하고 추가적인 정보를 입력 할 수가 있습니다.



링크 태그

 링크 태그의 기본적인 형태는 다음과 같습니다. 태그연습장을 열어서 연습해 보세요~


<a href="주소">꼬마낙타 블로그</a>
태그 실행 결과 : 꼬마낙타 블로그
따라해보기

 위 속 성에서 주소라는 부분에 연결을 시킬 주소를 써 넣습니다. 만약 href="http://www.naver.com/" 을 써 넣으셨다면 해당 링크 태그를 적용 시켰을 때, 네이버로 링크를 시켜주겠죠. 주의 하실 점은 <a src="주소"> 로 사용하지 않는 것입니다. 다른 태그들은 src 속성으로 주소를 접근하지만 a 엘리먼트는 href 로 접근하니 꼭 외워 두시기 바랍니다.
 


여는 위치

 태그 연습장을 열어서 다음을 연습합니다
.
<a href="주소" target="_blank">꼬마낙타 블로그</a>
태그 실행 결과 : 꼬마낙타 블로그
따라해보기

 이번에 추가로 볼 속성은 target 속성입니다. target 속성은 링크를 클릭했을때, 링크에 해당하는 html 문서( 혹은 이미지 혹은 비디오 등등... 링크가 걸린 대상 )가 새창에서 열릴 것인지 혹은 현재창에서 열릴 것인지를 결정하는 속성입니다. target 속성은 다음의 값들을 취할 수 있으며 각각 뜻을 가지고 있습니다.

 Target 값
 의미
 _blank 새로운 창을 만들어서 해당 링크를 새로운 창에 불러옵니다.
 _self
현재 창에 해당 링크를 불러옵니다. ( 현재 창이 바뀝니다. )
 _parent iframe 같은 엘리먼트에서 부모 프레임에 해당 링크를 불러옵니다. 
 _top 현재 창 전체에 불러옵니다. ( 프레임이 있을 경우 )

나머지는 조금 응용을 할 때 필요하고 _blank와 _self 정도를 알아두면 편리하게 웹 페이지 혹은 블로그를 꾸미실 수 있을 겁니다.



링크 태그에 추가적인 설명을 덧 붙일 수도 있습니다. 예를 들면, 마우스를 링크에 가져가면 해당 링크에 대한 약간 설명이 덧 붙여져서 나오는 것이지요
.
<a href="주소" title="설명">꼬마낙타 블로그</a>
태그 실행 결과 : 꼬마낙타 블로그
따라해보기

 이번엔 title 이라는 속성에 대해서 알아보도록 하겠습니다. title 은 img 태그에서도 쓰이는 속성으로 마우스를 가져 갔을 때, 부가 설명으로 뜨는 작은 메모 같은 것입니다. 위 태그를 태그연습장으로 실행시켜 보면,


 위 사진처럼 링크에 부가적인 설명이 붙게 됩니다. 링크의 내용( 여기서 꼬마낙타 블로그라는 글자 )이 너무 길어질 경우에는 간단하게 마우스를 가져가면 부가적인 설명이 뜨도록 하고 싶을 때, title 속성을 이용하면 유용합니다.



링크를 눌렀을 때, 바로 메일을 보낼 수 있게 하는 방법도 있습니다. 링크에 메일 보내기 기능을 사용하면 되는데요. 사용법은 간단합니다
.
<a href="mailto:intro200@naver.com" title="메일보내기">꼬마낙타 블로그</a>
태그 실행 결과 : 꼬마낙타 블로그
따라해보기

 태그를 위와 같이 쓰면 어떻게 될까요? 주소를 쓰는 href 속성안에 mailto: 라는 생소한 단어와 함께, 뒤에는 메일주소로 보이는 것이 쓰여져 있습니다. 눈치가 빠르신 분이라면 아셨겠지만 바로 웹 페이지에서 클릭 한번으로 메일을 보낼 수 있게 해주는 방법입니다.

 제 경우에는 태그연습장을 이용해서 위 태그를 돌려보니, Outlook 이 켜지네요. 아마 다른 분들도 ( 윈도우즈 운영체제를 사용하시는 분이라면 ) 아웃룩이 뜰 꺼라고 생각 됩니다. 다른 메일 관리 프로그램이 설치되어 있고, 그 프로그램이 기본 프로그램으로 설정되어 있다면 아마도 그 프로그램이 뜨겠죠. ^^



앞으로 배울 CSS ( 스타일 시트 ) 를 태그에 적용 시킬 수도 있습니다. 아직 이르지만 연습삼아서 한번 실행을 해 보세요
.
<a href="주소" title="CSS 적용" style="color:red">꼬마낙타 블로그</a>

 앞으로 HTML을 배운뒤 CSS라는 것을 배우게 될 텐데, 간단히 CSS를 적용 할 수 있는 속성이 바로 style 속성입니다. 이 style 속성 안에는 css 문법에 맞게 디자인 된 코드가 들어가게 되는데, 위 내용은 이 엘리먼트의 글자 색을 red ( 빨간색 ) 로 하겠다!! 라는 의미입니다.  css 는 생각보다 매우 강력한 도구이기 때문에 앞으로 웹 페이지를 디자인 할 때, 이 style 태그를 많이 사용하시게 될 겁니다.



링크 태그를 이용하면 글자 뿐만 아니라 이미지에도 링크를 걸 수가 있습니다. 예를 들면 네이버 글자가 쓰여 있는 그림을 클릭하면 네이버 홈페이지로 이동을 할 수있는 기능이 있습니다. 이것은 이미지 태그도 알아야 하는데, 별로 어렵지 않습니다. 이미지 태그에 대해서는 다음에 자세히 알려드리도록 하겠습니다.

<a href="http://www.naver.com" title="네이버"><img src="http://sstatic.naver.net/search/img2/logo_naver_2.gif" /></a>
태그 실행 결과 :

 위 이미지를 클릭하면 바로 네이버 홈페이지로 링크를 따라 가는 것을 볼 수 있습니다. 링크 태그의 가장 큰 장점이 바로 이것이 아닌가 생각되네요. 홈페이지 꾸밀 때, 배너를 클릭하면 홈페이지로 링크를 따라서 갈 수 있게 해놓면 좀 더 멋진 홈페이지를 만들 수 있을 겁니다.



마지막으로 링크를 자기 자신의 한 부분으로 돌리는 앵커 넣기 기능을 알려드리겠습니다. 웹페이지를 꾸밀 때, 한 페이지에 많은 내용이 들어가는 경우가 있습니다.
<a name="#앵커이름">앵커</a>
...
...
...
<a href="#앵커이름">잃어버린 앵커를 찾아서~</a>

   이 포스트에도 앵커를 걸어 놨습니다. 위 링크들을 클릭하면 해당 챕터로 이동하게 되구요. 앵커를 이용하면 웹 페이지의 특정 위치로 이동하기에 편하다는 장점이 있습니다. 좀 더 스마트한 웹 페이지를 만들고 싶으신 분들은 앵커를 사용해서 웹 페이지를 좀 더 구성지게 만들어 보세요.


 지금까지 링크 태그의 사용법과 특징들에 대해서 알아 봤습니다. 링크 태그만 알아도 정보로 가득한 웹 페이지를 만들수가 있으니 잘 알아 두시기 바래요. ^^

 


 HTML 파일을 만들면서 매번 HTML 소스를 코딩하고 파일로 저장을 해서 웹 브라우저로 열어야 하는 불편함이 있었습니다. 굉장히 번거롭죠. 하지만 이번에 소개해드릴 HTML 태그 연습장을 사용하면 불편함 없이 바로바로 태그의 결과를 볼 수 있습니다.

 일단 제시카님께서 제작하신 태그 연습장을 소개해 드리겠습니다. 

 [태그연습장보러가기]

  일단 겉 모습은 다음과 같이 생겼습니다.

 제시카님이 친절하게도 사용방법까지 잘 설명을 해주셨네요 ㅎ
 웹 생상표까지 볼 수 있는 아주 편리한 태그 연습장이었습니다. 나중에 시간이 되면 저도 멋진 태그 연습장을 하나 제작해서 배포해 볼까 합니다. ㅎㅎ


이전에 언급했듯이 웹 페이지는 HTML이라는 언어로 되어 있습니다. HTML은 웹 서버와 웹 브라우저가 대화를 할 때 사용하는 언어이며, 웹 페이지의 구조를 정의하는 언어입니다. 그러면 HTML을 배우는 첫 단계는 직접 HTML 파일을 만들어 보는 것으로 시작하겠습니다.


1. HTML 파일 만들기


 HTML파일을 만들기 위해서는 텍스트 에디터 프로그램이 필요합니다. 대표적인 텍스트 에디터 프로그램은 메모장입니다. 메모장을 실행시킵니다.



이제 다음과 같은 내용을 타이핑해 넣습니다.

<html>
<head>
   <title>연습 1</title>
</head>
<body>
<h1>Hello, World!! </h1>
<p>
 안녕하십니까 <br />
 지금부터 HTML을 배워보도록 하겠습니다.<br />
</p>
</body>
</html>


[파일] ->[저장] 이나 [Ctrl] + S 를 눌러서 저장을 하도록 합니다.


저장을 할 때 이름뒤에 “.html”을 붙입니다. 이렇게 하면 HTML 파일로 저장이 되어서 웹 브라우저가 읽을 수 있게 됩니다.



 그럼 저장한 경로에 가서 html 파일을 실행합니다. 그러면 여러분이 아까 작성했던 페이지가 웹 브라우저 상에 뜨게 됩니다.


 그러면 HTML 파일의 내용과 웹 브라우저가 해석한 모습을 대조하며 각각 어떤 역할을 하는지 알아 보도록 하겠습니다.



2. HTML 페이지의 구조
 1> 태그 
 Html 파일은 우선 태그들로 이루어져 있습니다. 태그는 ‘<’로 열어서 이름을 사용한 다음 ‘>’로 닫아 주는 형식을 말합니다. 아까 작성한 html 파일에서 <html>, <body> 등이 태그에 해당합니다. 태그는 화면에 직접적으로 출력되지는 않지만 출력되는 내용들의 특성을 명시합니다. 예를 들면, <h1>태그는 제목을 나타내는 태그입니다. <h1>태그로 둘러 쌓여 있는 “Hello, World!!”라는 말이 다른 부분보다 좀 더 크고 굵게 나타나는 것을 볼 수 있습니다.
 html이 웹 페이지의 구조를 나타내는 역할을 한다는 말은 웹 페이지를 제작 할 때 이 태그들을 모아서 조립하는 방식을 쓰게 됩니다.

2> HTML의 구조
 html은 <html>태그로 열어서 </html>태그로 닫게 됩니다. 기본 골격은 다음과 같습니다.


<head>태그와 </head>태그 사이에는 웹 페이지의 제목이나 스타일, 스크립트 등의 정의를 씁니다. <style>태그와 </style>태그 사이에는 html을 꾸밀 수 있는 css의 내용이 들어가게 됩니다. <script>와 </script> 사이에는 html을 동적으로 구성하고 싶을 때, javascript와 같은 스크립트의 정의가 들어가게 됩니다. <title>과 </title> 사이에는 웹 페이지의 제목이 들어갑니다.
 <body>와 </body> 사이에는 웹 페이지의 실질적인 내용이 들어가게 됩니다.





1. 웹

우리는 소위 “인터넷 중독”이 문제가 되는 세상에 살고 있습니다. 그 만큼 인터넷이 우리 생활과 점점 밀접하게 연관되고 있다는 것을 나타내는 것이 아닐까요? 자 그럼 이제 웹( Web )에 대해서 알아보도록 하겠습니다.

[그림 1] 웹이란 무엇인가?


 웹은 기본적으로 거미줄을 뜻하는 영어 단어입니다. 그렇다면 왜 거미줄을 뜻하는 단어가 인터넷을 통칭하는 단어로 쓰이게 되었을까요? 그것은 네트워크끼리 연결된 인터넷을 거시적으로 봤을 때 나타납니다. 인터넷은 수 많은 컴퓨터들과 네트워크들로 이루어져 있습니다. 복잡하게 얽힌 모습이 마치 거미줄 같다고 하여 웹이라는 명칭이 붙게 된 것입니다.

2. 웹과 HTML

 이러한 웹에서는 지금도 수 많은 데이터들이 오가고 있습니다. 여러분이 인터넷을 켜고 포털사이트에 접속을 하면 포털의 웹서버에서 여러분의 컴퓨터( 정확히 말하면 웹브라우저 )로 HTML이라는 파일이 전송되게 됩니다. 그렇다면 이제 HTML의 가장 원초적인 역할도 어느정도 설명이 됩니다. HTML은 Hyper Text Mark-up Language의 약자로 마지막 단어의 Language에서 알 수 있듯이 언어입니다. 즉 인터넷에서 서버와 클라이언트가 대화 할 때 사용되는 언어라고 할 수 있습니다. 
 

[그림 2] 웹브라우저와 서버의 대화



 

 다시한번 HTML을 이용한 웹 서버와 웹 브라우저의 대화 순서를 알아 보도록 하겠습니다.

[그림 3] 서버로의 접속


1) 먼저 여러분은 웹 브라우저를 통해서 어떤 사이트에 접속을 하게 됩니다. 이 사이트는 도메인이라는 인간이 알기 쉬운 문자열을 갖고 있습니다. ( 인간은 숫자보다는 문자열에 익숙하죠. 문자열에는 의미가 있기 때문입니다. ) 이 도메인은 ip주소라는 유일한( 이론상으론... )번호로 매핑이 됩니다. 웹 브라우저는 이 ip주소를 이용하여 웹 페이지가 필요하다는 요청을 합니다.


[그림 4] 요청한 서버의 응답


2) 이러한 요청을 받은 웹서버는 브라우저가 요청한 페이지 파일( html파일 )과 해당 파일에서 필요로하는 리소스들 ( 음악이나 동영상과 같은 미디어 파일이나 플래시 파일과 같은 기타 요소들 )을 웹 브라우저로 전송합니다.

[그림 5] 브라우저의 해석 및 화면 출력


3) 웹 페이지 파일과 리소스들을 받은 웹 브라우저는 HTML파일을 해석합니다. ( 파싱을 한다고 하나요?? ) HTML을 해석한 다음 표준에 의해 정의된 대로 화면에 출력을 해 줍니다. HTML파일 자체는 <HTML> </HTML>이나 <embed> </embed>와 같은 특정한 의미를 갖고 있는 태그들과 내용들로 이루어져 있습니다. 이런 의미들을 해석하고 우리에게 익숙한 웹페이지를 보여주는 작업을 브라우저가 하게 됩니다.

4) 해석을 마친 웹 브라우저는 해당 웹 페이지를 사용자에게 보여주게 됩니다. 이 때 보여지는 화면이 우리에게 익숙한 웹 페이지의 형태를 갖고 있습니다.

[그림 6] 여러 브랜드의 브라우저


 위에서 HTML을 웹 서버와 웹 브라우저가 대화에 사용하는 언어라고 정의했습니다. 다른 측면에서 HTML을 정의한다면, “웹 페이지를 구성하는 뼈대”라고 할 수 있습니다. 웹 서버와 브라우저의 대화 과정의 3번째 과정에서 HTML을 브라우저가 해석하는 단계가 있습니다. 이런 해석 방법은 w3c에 의해서 관리되고 있습니다. ( 표준이라고 하죠. 웹 브라우저라는 제품은 하나의 회사에서만 만드는 것이 아니라 여러 회사에서 각기 다른 제품을 만들기 때문에 표준이 필요하게 되었습니다. 만일 표준이 없다면 굉장히 혼란스러운 상황이 도래하게 되겠죠. )

[그림 7] W3C 의 홈페이지


 HTML에 대해서 어떠한 측면의 정의를 사용하던 웹을 공부하기 위해서 HTML을 공부하는 것이 많은 도움을 주는 것은 사실입니다. 




 스타일 시트(CSS)를 적용하는 방법은 CSS에 해당하는 내용을 HTML에 넣는 방법과, 태그의 옵션에 넣는 방법, 외부 파일로 만들어 참조 하는 방법 등이 있습니다.

1. 태그의 옵션으로 넣기

<p style="color:red">

</p>

위 소스처럼 태그의 옵션중 하나인 style의 값으로 css를 넣을 수 있습니다. 이 방식은 바로 적용되고, 사용하기도 쉽다는 장점이 있지만, 홈페이지의 규모가 커지면 소스가 굉장히 조잡하게 될 수 있다는 단점이 있습니다. 처음에 설계를 이런 방식으로 하더라도 나중에는 전부 없에는게 좋습니다.


2. html의 head에 넣기

 
<html>
   <head>
      <title>예제</title>
      <style type="text/css">
          p{
             color: maroon;
          }
      </style>
   </head>
<body>
   <p>
      색 바꾸기...
   </p>
</body>
</html>


위 방법처럼 HTML의 <head>부분에 <style>태그를 이용하여 css 부분을 만들어서 쓸 수가 있습니다. 위 소스대로 하면, 이 html파일에 있는 <p>태그로 둘러싸인 부분의 글자 색은 maroon이 되겠네요. 하지만 이 방법에도 단점은 있습니다. 홈페이지를 만들다 보면, html파일이 하나가 아닐 경우가 있습니다. 하지만 그 파일들의 스타일은 동시에 컨트롤 되어야 할 때가 있죠. 위 방법으로는 일일히 전부 파일마다 넣어 줘야 하며, 그 내용이 바뀔때에는 html 파일 개개를 찾아 다니면서 전부 수정을 해야 합니다.


3. 외부 파일로 css만들어 적용하기.

1. style.css
p{
   color : maroon;
}


2. test.html
<html>
<head>
   <title>예제</title>
     <link rel="stylesheet" href="style.css" type="text/css">
</head>
<body>
   <p>
      색바꾸기
   </p>
</body>
</html>


 <link rel="stylesheet" href="style.css" type="text/css"> 를 잘 보시기 바랍니다. href에 있는 스타일 시트 파일을 참조하겠다는 뜻이며, 해당 파일에 있는 스타일들이 해당 html파일에 적용 되게 됩니다. 이렇게 스타일 시트 파일을 따로 두는것이 html과 스타일을 분리하여 좀더 이해하기 쉽게 만드는 바람직한 습관입니다.



+ Recent posts