관리 메뉴

새로운 시작, GuyV's lIfe sTyle.

닷넷 게시판 만들기 Part 10 - asp.net 을 시작하기 전에 - 태그 본문

ⓟrogramming/asp.net 게시판

닷넷 게시판 만들기 Part 10 - asp.net 을 시작하기 전에 - 태그

가이브 2011. 1. 19. 18:05

1. 닷넷 개발환경 준비, 테스트
2. 닷넷 알아보기 [7/7]
3. asp.net 컨트롤 [1/..]


[3장을 시작하며]
이때까지 닷넷의 웹 플랫폼(웹에서 사용)인 asp.net 에 대해, 웹에 대한 기본. 네임스페이스,클래스,메서드의 이용법을 닷넷을 개발한 Microsoft 의 공식 문서인 MSDN에서 찾는 방법, 가져다쓰는 방법을 아주 약간 해봤습니다.


강의 진행 방식에 대해 고민을 조금 했는데, 얼마나 길어질지, 짧아질지 모르겠지만 이 글을 쓰기 전에 생각했던 "닷넷 공부를 시작하는 방법"에 맞추기로 했습니다. 만드는 결과물보다 만들어가는 과정을 함께 하면서 컴퓨터 소프트웨어를 직접 만드는 "프로그래밍"을 시작하는데 조금이나마 도움이 되시길 바랍니다. :)

혹시 편한 말로 진행함에 있어서 불쾌감을 느끼신다면, 그저 조금 편한 스타일로 진행하려는 의도이며, 게시물의 양을 줄이기 위함이니 양해해주시기 바랍니다. ^^; 오타도 양해해주시구요..



2장을 마무리하며 앞에서 여러분들을 암기의 노예로 만들지 않겠다는 말을 했다. 그 방법이 좀 서툴지 모르겠으나, 거짓은 결코 아니니 이번 asp.net 컨트롤도 하나하나 외우지 말고 재밌게 읽겠다는 약속을 하고 함께 타이핑 하며 시작하기로 하자.

잠시, 복습 문제를 하나 내어드릴까 한다.

"웹 프로그래밍에서, 결과물은 죽었다 깨어나도 [_________]이다." 
이 지문에서 괄호 안에 들어갈 영문 4자는?

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

답은 HTML 이다.

웹 프로그래밍의 결과물은 죽었다 깨어나도 HTML임에 다시 한번 더 상기하시길 바란다. 매우 중요하다. ^____^

그러므로, 기본적으로 웬만한 <tag>들은 모두 섭렵해주시기 바란다. 간단한 개념이다.

태그는 총 3가지 형태로 나눌 수 있다.

<abc> : 혼자 노는 태그
<abc>..</abc> : 내용이 있는 태그
<abc><oo></oo></abc> : 특정 태그안에 있어야 하는 태그

이러한 태그는 모두가 0개 이상의 "속성"을 가질 수 있다. (없을 수도 있다)
그 속성에는 "값"이 있는 것과 없는 것으로 나눈다.
그리고 속성의 구분은 스페이스 1칸이상 띄워주거나 개행문자로 구분한다.

<태그명 속성>
<abc 속성="속성값">
<abc 속성1="속성값1" 속성2="속성값2">

용어를 사용해보면,

태그 : 엘리먼트(Element, 요소)
속성 : 어(애)트리뷰트(Attribute, 속성)
(속성)값 : (어트리뷰트) 밸류(Attribute Value, 값)

이렇게 부르기도 한다.
(강의에서는 태그,속성,속성값 이라 칭하겠다. 필요시 영문 표기법도 사용하겠다.)

태그 관련한 내용은 다루지 않겠다. 태그에 대해 모른다면, 진행중에 특정 태그가 나오면, 해당 태그를 찾아보고 어떤 기능을 하는 태그인지 따로 알아보며 함께 접목해주길 바란다.


단순하게 설명하자면, asp.net 에서 컨트롤(Control)이라 하면, 그 결과물이 <태그>일 뿐이다.


오늘은 첫 시간이므로, 재미없겠지만 이론 위주의 얘기를 할 수 밖에 없겠다.

프로그래밍에서 (UI, 유아이)컨트롤이라고 하면 일반적으로 눈으로 볼 수 있고, 마우스나 키보드로 그것을 조작할 수 있는 것을 말한다. 

쉽게, 로그인을 하거나, 검색을 하기 위해 쳐 넣는 컨트롤을 asp.net 에서는 텍스트박스 컨트롤(TextBox)이라고 부르며, 단순히 텍스트를 표시하기 위한 컨트롤은 레이블 컨트롤(Label)이라고 부르는 등, 우리가 웹을 돌아다니며 보는 수많은 컨트롤들이 태그로 만들어지는 것이다.

이것들은 당연하겠지만 asp,php,jsp 등등 할 것 없이 무엇으로 제작하든 HTTP로 전송하는 Web은 태그로 구성되고, 모두 같은 방법으로 전송되어진다.

이런 목적의 정보를 전달하는 태그는 일반적으로 <form>..</form> 태그내에 존재하고 있으며, 이 태그내에 있는 값을 모두 모아 (1)특정 페이지로 (2)어떠한 형식으로 넘기게 되는 것이다.

<form action="(1)" method="(2)">

<input type="어쩌고저쩌고">
<select>..</select>

<input type="submit">
<input type="image">

</form>

(1)에 <form>..</form>에서 값을 던져줄 대상이 되는 페이지주소(절대경로,상대경로)이다.
(2)에 던져줄 방식이다. get, post  2가지가 있다.

<form action="http://www.naver.com" method="get"> or
<form action="http://www.naver.com" method="post">
..
</form>

이렇게 던져주면 된다. 그럼 http://www.naver.com 은 무조건 그 값을 받으며 해당 페이지가 열려야 한다. 싫어도 받아야 한다. 웹은 요청을 무조건 받아줄 의무가 있으니까. 받고나서 거부를 하더라도 말이다. 그래서 뉴스에 나오는 "디도스(DDOS)"라는 공격이 가능하다.

이 action="" 속성의 값은 절대경로가 아닌, 일반적으로 상대경로를 많이 사용한다. 알아보기 쉽기 때문이다.

예로, http://127.0.0.1/member.aspx 페이지에서, 값을 받아서 저장하고 싶다고 생각하자.

<form action="member_ok.aspx">
<form action="/member_ok.aspx">
<form action="../member_ok.aspx">
<form action="/proc/member_ok.aspx">
<form action="../proc1/member_ok.aspx">

..
</form>

만약 해당 상대경로의 member_ok.aspx 페이지가 존재한다면, 절대 오류가 발생하지 않는다. 물론, HTML에게도 가능하다. 단, HTML은 페이지로 넘어오는 값의 형태가 POST일 때, 받을 수가 없다는 단점이 있다.

<form>..</form> 태그에 대해서도 조금 언급을 해 봤는데,
프로그래밍은 대부분, (1)사용자의 입력(2)어찌 저찌 요리하여 (3)결과를 내는 목적이 있다.
<form>..</form>태그는 (1)을 하기 위해. 그리고 aspx는 (2)를 해서 (3)을 하기 위한 과정이다. 그런 후 (3)을 예쁘게 꾸며주거나, 눈에 보기 좋게 정리해주는 것이 HTML이라고 보면 된다.

(1),(3)은 HTML과 asp.net 의 합작이라고 보시면 되고, (그러나 엄밀히, HTML의 역할이다)
(2)는 전적으로 asp.net 의 역할이라고 보자.

그래서, 게시판, 카운터 등 값을 저장하는 따위의 특수한 행위는 HTML자체로만 해결할 수 없다.
(여기서 HTML이라고 하면, HTML의 구성요소인 css, javascript, 태그를 모두 포함한다)

왜 (1),(3)이 엄밀하게는 HTML의 역할이라 하는 이유는 차차 알게 될 것이다.


컨트롤을 공부하기 전에, 다시 말씀드리지만 여러분이 꼭 확신하고 넘어가야 할 것은,


1. 결과물은 죽었다 깨어나도 HTML 이다.
   (asp.net 과 관련이 없다!)
2. 입력값을 받는 폼태그(<form>...</form>)는 HTML에서의 그 태그이다.
   (asp.net의 컨트롤 결과물 역시 태그문일 뿐이다.)


이 두가지 정도이다.

다음 파트가 나오기 전에, <form></form> 태그가 어떤 것들이 있는지 예습을 하고 넘어간다면 좀 더 쉽게 다음 파트를 읽을 수 있을 것이다. (웹을 돌아다니다가 회원가입 등을 작성할 때 입력 값을 받는 모든 형식을 알고 있다면 해당되지 않겠지만 말이다)



다음에 계속..
반응형
Comments