달력

11

« 2008/11 »

  •  
  •  
  •  
  •  
  •  
  •  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 30
  •  
  •  
  •  
  •  
  •  
  •  
2008/11/30 23:58

Socket Class General .NET2008/11/30 23:58


필요한 네임스페이스

System.Net, System.Net.Sockets

 

System.Net.Sockets.Socket 클래스의 특징

- 클라이언트 응용프로그램과 서버 응용 프로그램에서도 소켓으로 사용 가능

- 동기, 비동기 동작을 모두 사용가능

 

endpoint

- 네트워크 케이블의 양 끝(종단점)

- 네트워크에 대한 읽기, 쓰기를 수행

 

클라이언트와 서버 응용 프로그램은 소켓 연결을 통해서 통신하고 바이트 스트림을 주고 받는다. 다른 소켓으로 메시지를 보내기 위해서는 응용 플로그램을 제공하는 PC의 아이피 주소와 소프트웨어의 프로세스 식별자를 알아야 한다.

PC에서 소프트웨어 프로세스 식별자는 포트라고 하는 고유한 숫자를 사용.

따라서 응용 프로그램에서 연결의 반대편 끝에 있는 다른 소켓에 메시지를 전달하려면 상대편 IP주소와 응용 프로그램의 포트 번호를 알아야 한다.

 

닷넷 프레임워크에서는 소켓의 기능을 System.Net.Sockets.Socket 클래스로 제공.

인터넷을 사용하는 소켓 응용 프로그램을 작성하므로 AddressFamily.InterNetwork를 사용한다.

 

[소캣구성]

소켓 객체를 생성하고 사용하기 위한 Socket 클래스의 생성자

public Socket(AddressFamily addressFamily, SocketType socketType, ProtocolType protocolType)

 

소켓 객체의 생성자는 3가지 열거형 AddressFamily, SocketType, ProtocolType을 인자로 받으며 각 열거형은 System.Net.Sockets 네임스페이스에 정의되어 있다.

 

AddressFamily 열거형

- Socket 객체가 주소를 풀이하기 위해 사용하는 주소 지정 스키마를 정의.

- 여기서는 인터넷을 사용하므로 AddressFamily.InterNetWork를 사용.

 

SocketType 열거형

- 소켓의 종류를 지정, 가장 많이 사용되는 소켓의 종류는 SocketType.Stream

- Stream은 양방향 연결 기반 바이트 스트림을 제공.

 

ProtocolType 열거형

- 소켓이 통신을 하기 위해 사용하는 저수준 프로토콜의 종류를 지정.

- TCP, AddresssFamily.InterNetwork를 사용해야 함.

 

) 소켓객체의 인스턴스를 생성

Socket mySocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

 

[원격서버에 연결하기]

Socket클래스의 Connect()를 사용하여 원격서버에 연결.(동기적 시도)

Connect() 메소드의 서명

- public void Connect( EndPoint remoteEP);

 

Connect() 메소드 인자

- System.Net.EndPoint 클래스의 인스턴스

- EndPoint 클래스는 추상 클래스로 네트워크 주소를 의미한다

- EndPoint 클래스의 하위 클래스는 System.Net.IPEndPoint

- Connect() 메소드를 사용할 때는 연결하려는 원격 서버의 IP 주소와 포트 번호를 포함한 IPEndPoint 객체를 인자로 사용해야 함.

 

IPEndPoint객체의 2가지 생성자

public IPEndPoint(long address, int port);

public IPEndPoint(IPAddress address, int port); (가장 자주 사용함)

저작자 표시 비영리 변경 금지
Posted by -세티-
2008/11/30 23:54

HttpWebRequest - 웹 화면 가져오기 General .NET2008/11/30 23:54


using System;
using System.Text;
using System.Data;
using System.Net;
using System.IO;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

//클래스를 생성하빈다.
public partial class XXXX_PrintData
{
    // 페이지 로드 이벤트에서 ViewWebPage함수를 호출한다.
    protected void Page_Load(object sender, EventArgs e)
    {
        ViewWebPage();
    }

    //HttpWebRequest, HttpWebResponse, StreamReader 객체를 생성.
    public void ViewWebPage()
    {
        HttpWebRequest objWebRequest = null;
        HttpWebResponse objWebResponse = null;
        StreamReader objStreamReader = null;

        NetworkCredential networkCred = new NetworkCredential("", "");
        CredentialCache networkCache = new CredentialCache();

        string strUrl = "";

        objWebRequest = (HttpWebRequest)WebRequest.Create(strUrl);
        networkCache.Add(new Uri(strUrl), "Basic", networkCred);
        objWebRequest.Credentials = networkCred;
        objWebResponse = (HttpWebResponse)objWebRequest.GetResponse();
        objStreamReader = new StreamReader(objWebResponse.GetResponseStream(), Encoding.GetEncoding(949));

        string strLine = string.Empty;
        string strBody = string.Empty;
        while (objStreamReader.Peek() != -1)
        {
            strLine = objStreamReader.ReadLine();
            this.viewPrintTable.InnerHtml += strLine + "\r\n";
        }
    }

    private string Chr(int p)
    {
        throw new Exception("The method or operation is not implemented.");
    }

    private void StreamReader(Stream stream, object p)
    {
        throw new Exception("The method or operation is not implemented.");
    }
}

저작자 표시 비영리 변경 금지
Posted by -세티-
2008/11/30 23:47

DAS General Tech.2008/11/30 23:47

1. DAS (direct-attached storage) ; 직접 연결 저장 장치

DAS는 컴퓨터나 서버에 직접 연결된 컴퓨터 저장장치로서, 특별한 고려가 되어 있지 않는 한 다른 장치에서 직접 접근이 불가능하다. DAS의 대안으로서 NAS 또는 SAN 등이 있다. 개별 컴퓨터 사용자의 경우에는 하드디스크 드라이브가 DAS의 대표적인 형태가 될 것이다. 그러나 기업용 사용자들을 위한 저장장치는 여러 대의 컴퓨터에서 공유할 수 있어야 하고, 사용자들은 보다 효율적이며 관리하기 쉬운 장치를 선호하는 경향이 있다.

 

2. SAN (storage area network) ; 스토리지 전용 네트웍

SAN[]은 대규모 네트웍 사용자들을 위하여 서로 다른 종류의 데이터 저장장치를 관련 데이터 서버와 함께 연결하는 특수목적용 고속 네트웍(또는 서브네트웍)이다. 대체로, SAN은 한 기업의 전체 컴퓨팅 자원을 연결해 놓은 네트웍의 일부가 된다. SAN은 대개 IBM S/390 메인프레임과 같은 다른 컴퓨팅 자원에 아주 근접하여 밀집해 있게 되는 것이 보통이지만, 그러나 백업이나 기록의 영구보관 저장을 위해 ATM이나 SONET 등과 같은 광역통신망 기술을 이용하여 원거리에 있는 장소로 확장될 수도 있다.

SAN은 서로 다른 종류의 저장장치들이 네트웍 서버를 통한 모든 사용자들에 의해 공유될 수 있도록 서로 연결되어 있는 시스템이다. SAN IBM의 광섬유인 ESCON과 같은 기존의 통신기술을 이용하거나, 새로운 파이버 채널 기술을 이용할 수도 있다. SAN 시스템 통합 기술을 가진 일부 회사들은, 이것을 하드디스크나 CD-ROM 플레이어와 같이 서로 다른 종류의 저장 장치들에 의해 공유될 수 있는 PC의 공통 저장 버스에 비유하기도 한다.

SAN은 디스크 미러링, 백업 및 복원, 영구보관 및 영구보관용 데이터의 검색, 한 저장장치에서 다른 저장장치로 데이터 이동, 그리고 네트웍 상의 서로 다른 서버들 간에 데이터의 공유 등을 지원한다.

 

3. NAS (network attached storage)

NAS[나쓰]는 네트웍에 접속되도록 특화된 파일서버이다. 이것은 이더넷이나 TCP/IP와 같은 전통적인 LAN 프로토콜을 사용하며, 오직 유닉스의 NFS와 도스/윈도우의 SMB와 같은 파일 입출력 요청만을 처리한다.

 

4. Fibre Channel ; 파이버 채널

파이버 채널은 컴퓨터 장치들 간에 최고 1 Gbps의 속도로 데이터를 전송하기 위한 기술이다 (4 Gbps의 전송 속도는 현재 제안되어 있는 상태이다). 파이버 채널은 특히 컴퓨터 서버를 공유 저장장치에 연결하거나, 저장 콘트롤러와 드라이브들을 서로 연결하는데 적합하다. 파이버 채널은 서버와 클러스터 저장장치 들간의 전송 인터페이스보다 3배 이상 빠르기 때문에 SCSI를 대체할 것으로 예상된다. 이것은 또한 장치들간에 서로 10 km 정도 떨어져 있어도 될 만치 더욱 유연하다. 거리가 더 멀어지면 물리적인 전송 매체로서 광섬유가 필요하다. 그러나, 파이버 채널은 동축케이블과 일반 전화용 연선을 사용해도 동작한다.

파이버 채널은 점대점 접속, 스위치와 루프 인터페이스, 그리고 SCSI와의 연동, IP 및 기타 여러 가지 프로토콜 등을 제공한다.

제작회사들과 초창기 고객들은 파이버 채널을 RAID를 포함한 공동의 저장장치를 가지고 있는 여러 대의 서버를 서로 연결하는데 사용할 계획을 가지고 있다. 파이버 채널 저장장치, 스위치, 허브, 및 서브시스템을 제공하거나 제공할 계획을 가지고 있는 공급회사들로는 컴팩, 데이터제너럴, , EMC, IBM, Storage Technologies, StorageTek, 그리고 썬 마이크로시스템즈 등이 있다.

파이버 채널은 일련의 표준에 명기되어 있으나, ANSI X3.230-1994 ISO 14165-1 Fibre Channel Physical and Signalling 표준에 주로 정의되어 있다.

 

5. SCSI (small computer system interface)

SCSI[스쿠지]PC와 디스크드라이브, 테이프드라이브, CD-ROM 드라이브, 프린터, 스캐너 등과 같은 주변장치를, 이전의 인터페이스보다 더 빠르고 더 유연하게 통신할 수 있도록 해주는 인터페이스로서, ANSI 표준으로 발전하고 있다. 애플 컴퓨터에서 개발되었고, 아직도 매킨토시에서 사용되고 있으며, 현재의 SCSI 세트들은 병렬 인터페이스이다. SCSI 포트는 오늘날 대부분의 PC에 장착되어 있으며, 거의 모든 주요 운영체계에 의해 지원된다.

빠른 데이터 전송속도 외에, SCSI는 이전의 병렬 데이터 전송 인터페이스보다 더 융통성이 있다. 최근의 SCSI 표준인 16 비트 버스용 울트라-2 SCSI는 데이터를 최고 80 Mbps 속도까지 전송할 수 있다. SCSI버스의 폭에 따라 다르기는 하지만, 하나의 SCSI 포트에 7~15개의 주변장치를 줄줄이 이어서 접속시킬 수 있다. 이 방식은 모든 주변장치들을 수용하기 위해 각각의 장치에 별도의 카드를 갖는 대신에 하나의 회로기판이나 카드로 충분하기 때문에, 노트북과 같은 휴대용 컴퓨터의 이상적인 인터페이스로 여겨지고 있다. PC 카드의 형태로 되어 있는 하나의 호스트 어댑터는 한 대의 랩톱 컴퓨터를 위한 SCSI 인터페이스를 지원할 수 있으며, 다른 장치들이 사용되는 중에도 프린터가 접속되어 있는 병렬 포트와 외장 모뎀이 달린 직렬 포트의 사용을 자유롭게 한다.

비록 주변 장치들은 모든 등급의 SCSI를 지원하지 못하지만, SCSI 표준은 일반적으로 이전의 인터페이스와 호환성을 유지하면서 발전하고 있다. 말하자면, 구형장치를 최신의 표준을 지원하는 신형 컴퓨터에 장착했을 때 속도는 다소 느리지만, 그런대로 잘 동작할 것이라는 얘기이다.

지금 SCSI-1으로 불리고 있는 원래의 SCSI, 현재 광범위하게 지원되고 있는 SCSI-2로 진화했다. SCSI-3는 일련의 기본 명령어들과, 특정 장치 형태의 요구에 맞춘 부가적이고 특화된 명령어셋으로 구성된다. SCSI-3 명령어셋의 모음은 SCSI-3 병렬 인터페이스 뿐 아니라, 추가적인 병렬 및 직렬 프로토콜들을 위해서도 사용된다.

광범위하게 적용된 SCSI 표준은, 최고 전송속도 80 Mbps를 내기 위해 40 MHz 클록속도를 사용하는 울트라-2 이다. 이것은 저압 차동 신호, LVDS를 사용함으로써 케이블 거리를 최장 12 m까지 늘릴 수 있게 한다. SCSI의 초기형태는 끝에 접지로 종말 처리한 단일 케이블을 사용했다. 울트라-2 SCSI는 두 개의 케이블 사이에서 다른 전압으로 표현되는 데이터를 두 개의 케이블 상에 신호를 보내는데, 이렇게 함으로써 더 긴 케이블을 지원할 수 있게 한다. 저압차동은 전력소모와 제조원가를 낮춘다.

최근의 SCSI 표준은 클록속도와 함께 동작할 수 있게 함으로써, 최고 속도를 80 Mbps에서 160 Mbps로 증가시킨 울트라-3 이다. 이 표준은 때로 울트라160/m이라고 불리기도 한다. 울트라160/m을 지원하는 신형 디스크드라이브는 더 빠른 데이터 전송속도를 제공할 것이다. 울트라160/m은 또한 전송된 데이터의 무결성을 보장하기 위한 CRC SCSI 네트웍을 테스트하기 위한 도메인 검증 기능을 포함한다.

현존하는 SCSI 표준들을 다음의 표에 정리, 요약하였다.

 

기 술 명 칭

케이블 대길 (m)

최고속도 (MBps)

부착 가능한 장치수

SCSI-1

6

5

8

SCSI-2

6

5~10

8 또는 16

Fast SCSI-2

3

10~20

8

Wide SCSI-2

3

20

16

Fast Wide SCSI-2

3

20

16

Ultra SCSI-3, 8-bit

1.5

20

8

Ultra SCSI-3, 16-bit

1.5

40

16

Ultra-2 SCSI

12

40

8

Wide Ultra-2 SCSI

12

80

16

Ultra-3 (Ultra160/m) SCSI

12

160

16

저작자 표시 비영리 변경 금지
Posted by -세티-
2008/11/30 23:45

Basic CSS syntax General Web2008/11/30 23:45

작성일: 2006년 12월 20일
네이버 블로그에 있던 개인 자료를 옮겨온 것입니다.

http://www.html.net에 있는 CSS강좌 내용을 설명 다 빼고 코드만 정리한 것 입니다.
Basic CSS syntax

<body bgcolor=#FF0000>

body { background-color: #FF0000 }

 

 

(출처 : http://www.html.net)

 

 

 

Mothod1 : In-line(the attribute style)

<html>

   <head>

      <title>Example</title>

   </head>

<body style=background-color:#FF0000>

<p>This is a red page</p>

</body>

</html>

 

 

Method2:Internal(the tag style)

<html>

  <head>

    <title>Example<title>

    <style type="text/css">

      body {background-color: #FF0000;}

    </style>

  </head>

  <body>

    <p>This is a red page</p>

  </body>

</html>

 

 

 

Method 3:External(link to a style sheet)

<link rel=stylesheet type=text/css href=style/style.css />

 

 

Colors and backgrounds

Color

h1{ color: #ff0000 }

 

 

background-color

body { background-color: ##ffcc66 }

h1{

color: #990000;

background-color:#fc9804;

}

 

 

Background images

body{

         background-color: #FFCC66;

         background-image: url(butterfly.gif);

}

h1

{

        color: #990000;

        background-color: #FC9804;

}

 

 

Repeat background image[background-repeat]

Background-repeat: repeat-x

Background-repeat: repeat-y

Background-repeat

Background-repeat: no-repeat

 

body{

         background-color: #FFCC66;

         background-image: url(butterfly.gif);

         background-repeat: no-repeat;

}

h1

{

        color: #990000;

        background-color: #FC9804;

}

 

 

Lock background image(background-attachment)

background-attachment: scroll;

background-attachment: fixed;

body {

         background-color: #FFCC66;

         background-image: url(butterfly.gif);

         background-repeat: no-repeat;

         background-attachment: fixed;

}

h1 {

        color: #990000;

        background-color: #FC9804;

}

 

 

Place background image(background-position)

background-position: 2cm 2cm

background-position: 50% 25%

background-position: top right

body {

         background-color: #FFCC66;

         background-image: url(butterfly.gif);

         background-repeat: no-repeat;

         background-attachment: fixed;

         background-position: right bottom;

}

h1 {

        color: #990000;

        background-color: #FC9804;

}

background: #FFCC66 url("butterfly.gif") no-repeat fixed right bottom;

 

 

Fonts

Font-family

h1{ font-family: arial, verdana, sans-serif }

h1 { font-family: Times New Roman, serif }

 

Font style

h1{ font-family: arial, verdana, sans-serif }

h1 { font-family: Times New Roman, serif; font-style: italic; }

 

Font variant

h1{ font-variant: small-caps }

h1 { font-variant: normal; }

 

Font weight

p { font-family: arial, verdana, sans-serif; }

td{ font-family: arial, verdana, sans-serif; font-weight: bold; }

 

Font size

h1 { font-size: 30px }

h2 { font-size:12pte }

h3 { font-size: 120% }

h4 { font-size: 1em }

 

p {

     font-style: italic;

     font-weight: bold;

     font-size: 30px;

     font-family: arial, sans-serif;

}

 

p{

     font: italic bold 30px arial sans-serif;

}

 

Text

Text-indention[text-indent]

p{

    text-indent: 30px;

}

 

Text-alignment[text-align]

th{

      text-align: right;

}

td{

      text-align: center

}

p{

      text-align: justify;

}

 

Text decoration[text-decoration]

h1 {

      text-decoration: underline;

      text-decoration: overline;

      text-decoration: line-through;

}

 

Letter-space[letter-spacing]

h1{

      letter-spacing: 6px;

}

p{

      letter-spacing: 3px;

}

 

text-transformation

h1{

      text-transform: uppercase;

}

li{

      text-decoration: capitalize;

}

 

Links

pseudo-class

a{

             color: blue;

}

a:link {

      color: blue;

}

a:visited{

      color: red;

}

 

pseudo-class: link

a:link{

      color: #6699cc;

}

 

pseudo-class: visited

a:visited{

      color: #660099;

}

 

pseudo-class: active

a:active{

      background-color: #FFFF00;

}

 

pesudo-class: hover

a: hover

{

      color: orange;

      font-style: italic;

}

 

Identification and grouping of elements (class and id)

<p>Groups for white wine:</p>

<ul>

<li><a href=ri.htm class=whitewine>Riesling</a></li>

<li><a href=ch.htm class=whitewine>Riesling</a></li>

<li><a href=pb.htm class=whitewine>Riesling</a></li>

</ui>

 

<p>Groups for red wine:</p>

<ul>

<li><a href=ri.htm class=whitewine>Riesling</a></li>

<li><a href=ch.htm class=whitewine>Riesling</a></li>

<li><a href=pb.htm class=whitewine>Riesling</a></li>

</ui>

 

a {

      color: blue;

}

a.whitewine{

      color: #FFBB00;

}

a.redwine{

      color: #800000;

}

 

Group of elements(span and div)

span.benefit{

      color: red;

}

 

<p>Early to bed and early to rise makes a man

<span class=benefit>healthy</span>

<span class=benefit>wealthy</span>

<span class=benefit>wise</span>

</p>

 

Grouping with <div>

<div id=democrats></div>

<div id=republicans></div>

 

#democrats{

      background: blue;

}

#republicans{

      background: red;

}

 

 

The box model

 

 

<h1>Article: 1</h1>

<p>All human beings are bone free and equal in dignity and rights.

They are endowed with reason and conscience and should act towards one another in a sprit of

brother in a spirit of brotherhood

</p>

 


Margin and Padding

Examples of margins 

body{

      margin-top: 100px;

      margin-right: 40px;

      margin-bottom: 10px;

      margin-right: 70px;

}

 

body{

      margin: 100px 40px 10px 70px

}

 

body{

      margin: 100px 40px 10px 70px

}

p{

      margin: 5px 50px 5px 50px

}

 

Set padding in an element

h1{

      background: yellow;

      padding: 20px 20px 20px 80px

}

h2{

      background: orange;

      padding-left: 120px;

}

 

 

Borders

The Width of borders[border-width] à border-width

 

Examples of border-width

 

The color of borders[border-color] à rgb(123123) or #123456 or yellow

 Colors

 

 

Types of borders[border-style]

Different types of borders

 

Height and width

Setting the width[width]

div.box{

             width: 200px;

             border: 1px solid black;

             background: orange;

}

 

Setting the height[height]

div.box{

             height: 500px;

             width: 200px;

             border: 1px solid black;

             background: orange;

}

 

Floating elements(floats)

#picture{

      float: left;

      width: 100px;

}

 

<div id=picture>

    <img src=bill.jpg alt=Bill Gates>

</div>

<p>causes naturals et antecedentes, idciro etiam nostrarum voluntatum</p>

 

The property clear

#picture{

      float: left;

      width: 100px;

}

.floatstop{

      clear: both;

}

 

Positioning of elements

h1{

      position: absolute;

      top: 100px;

      left: 200px;

}

 

Relative positioning

#dog1{

      position: relative;

      left: 350px;

      bottom: 150px;

}

#dog2{

      position: relative;

      left: 350px;

      bottom: 150px;

}

#dog3{

      position: relative;

      left: 350px;

      bottom: 150px;

}

 

Layer on layer with z-index(Layers)

#ten_of_diamonds {

             position: absolute;

             left: 100px;

             bottom: 100px;

             z-index: 1;

}

 

#jack_of_diamonds {

             position: absolute;

             left: 115px;

             bottom: 115px;

             z-index: 2;

}

 

#queen_of_diamonds {

             position: absolute;

             left: 130px;

             bottom: 130px;

             z-index: 3;

}

 

#king_of_diamonds {

             position: absolute;

             left: 145px;

             bottom: 145px;

             z-index: 4;

}

 

#ace_of_diamonds {

             position: absolute;

             left: 160px;

             bottom: 160px;

             z-index: 5;

 

 


저작자 표시 비영리 변경 금지

'General Web' 카테고리의 다른 글

XML 이란?  (1) 2008/12/22
사용자 인터페이스 디자인에 활용되는 10가지 유용한 기술  (0) 2008/12/17
Basic CSS syntax  (0) 2008/11/30
CSS1 - 1. 기본개념  (0) 2008/11/30
W3C 표준 DOM  (0) 2008/11/30
[HTML] Box Model  (0) 2008/08/06
Posted by -세티-
2008/11/30 23:42

CSS1 - 1. 기본개념 General Web2008/11/30 23:42

작성일 : 2006년 12월 31일
옮긴일 : 2008년 12월 21일

전에 네이버 블로그에 있던 자료를 옮겨 왔습니다.

Cascading Style Sheets

- CSS는 웹 문서에 스타일을 추가하기 위한  간단한 메커니즘이다.

 

CSS1

- Cascading Style Sheet 레벨1을 정의.

 

1. “learning CSS” 에 사용자를 위한 메일링 리스트, 책, 교육서 등이 있다.

2.  Web style sheets page에 스타일쉬트를 위한 배경 정보가 있다.

 

 

1. 기본개념

H1{ color: blue }

- 단일 CSS Rule.

- 선택자(H1)과 선언(color:blue)로 구성됨.

- 선언의 경우 속성(color)과 값(blue)로 구성됨.

 

선택자(Selector)는 HTML 문서와 스타일 쉬트를 연결함, 모든 HTML Element는 Selector가 될 수 있다.

 

스타일 쉬트 예)

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>CSS 스터디</title>

    <link rel="Stylesheet" type="text/css" href="
http://style.com/cool" title="Cool" />
    <style type="text/css">
        @import url(
http://style.com/basic);
        H1{ color: blue }
    </style>

</head>
<body>
    <form id="form1" runat="server">
    <div>

       
<H1>Head Line is blue</H1>
        <P Style="color:green">While the paragraph is green.</P>
    </div>
    </form>
</body>
</html>

 

(스타일 쉬트와 결합하는 방법)

1. Link Element를 이용하여 외부 스타일 쉬트와 연결

2. HEAD Element 내에 STYLE Element를 지정

3. CSS @import 기술로 스타일 쉬트 도입

 

1.2 그룹으로 묶기

스타일 쉬트의 크기를 줄이기 위해 선택자를 콤마로 분리하여 그룹으로 묶어서 관리할 수 있음.

H1, H2, H3 { font-family: helvetica }

다음과 같은 방법으로도 가능

H1{

       font-weight: bold;

       font-size: 12pt;

       line-height: 14pt;

       font-family:  helvate;

       font-variant: normal;

       font-style: normal;

}

 

1.3 Inherits

- 디폴터 문서를 정의하기 위한 방법

 

코드 예)

BODY{ color: black; background: url(texture.gif) white; }

- 이미지가 없으면, 배경색이 백색으로 됨.

일부 스타일의 속성들은 parent element로 부터 child element로 전달되지 않는다.

P{ font-size:10pt } or p { line-height: 120% }

 

1.4 선택자와 클래스

- element에 대한 점진적인 제어를 향상시키기 위해 'CLASS' 라는 새로운 어트리뷰트가 있음.

- Body element내의 모든 element들은 class화 될 수 있고 class는 스타일쉬트에 지정될 수 있음.

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="
http://www.w3.org/1999/xhtml" >
<head>
    <title>제목 없음</title>
    <style>
    Body
    {
        color: green; background: url("150989main_image_feature_598_ys_full.jpg") white;
    }
   
   
H1.cls
    {
        font-size:20pt; color:#00FF00
    }
    </style>
</head>
<body>
   
<h1 class="cls">녹색을 표현하는 방법</h1>
</body>
</html>

 

전달받은 Rule들은 class화된 element에 적용된다. class들은 selector들을 생략하고 사용할 수 있다. 예를 들어서 다음과 같은 표현이 가능하다.

예) .cls{ font-color: green }

selector마다 하나의 클래스만 지정하는 것도 가능하다.

 

1.5 ID as Selector

- 아이디를 사용할 경우 '#'으로 시작한다.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="
http://www.w3.org/1999/xhtml" >
<head>
    <title>제목 없음</title>
    <style>
    Body
    {
        color: green; background: url("150989main_image_feature_598_ys_full.jpg") white;
    }
   
    H1.cls
    {
        font-size:20pt; color:#00FF00
    }
   
   
#z98y { letter-spacing: 0.3em }       // 아이디만 판별
    H1#z98y{ letter-spacing: 0.5em }    // 엘리먼트(H1)과 아이디(z98y) 모두 판별
    </style>
</head>
<body>
    <h1 class="cls">녹색을 표현하는 방법</h1>
   
<p id="z08y">Wide Text</p>
</body>
</html>

 

스타일 쉬트는 문서의 구조에 잘 맞게끔 설계되어 있으므로 아이디만 가지고 판별하는 방법은 피하는게 좋다.

 

1.6 복합 선택자

- H1{ color: blue }, EM{ color: red } or H1 EM{ color: red }

- 위에서 가장 뒤에 나오는 선택자를 복합 선택자라고 한다.

- 복합 선택자는 빈 칸을 기준으로 구분하여 지정

- 다음과 같은 조합으로도 검정하는 것이 가능하다.

 

코드 예1)

DIV P { font: small sans-serif }
.reddish H1 { color: red }
#x78y CODE { background: blue }
DIV.sidenote H1 { font-size: large }

 

코드 예2)

H1 B, H2 B, H1 EM, H2 EM { color: red }

 

H1 B { color: red }
H2 B { color: red }
H1 EM { color: red }
H2 EM { color: red }

 

1.7 Comment

EM{ color: red } /* red, 적색 */

저작자 표시 비영리 변경 금지

'General Web' 카테고리의 다른 글

사용자 인터페이스 디자인에 활용되는 10가지 유용한 기술  (0) 2008/12/17
Basic CSS syntax  (0) 2008/11/30
CSS1 - 1. 기본개념  (0) 2008/11/30
W3C 표준 DOM  (0) 2008/11/30
[HTML] Box Model  (0) 2008/08/06
2. xml 문서의 생성과 CSS를 이용한 XML 문서 출력  (0) 2008/04/11
Posted by -세티-

이번에는 두 개의 다른 값 중에서 하나를 선택하는 것에 대해 알아본다.

대표적인 문법은 If.....then 이라는 것이 있다.

 

우리가 프로그램을 만들다보면 둘 중에 하나를 선택해야 하는 경우가 있다.

 

예를 들어...

회원 가입시 가입자가 남자라면 남자를 선택해야 하고 여자라면 여자를 선택해야 하는데...

이 선택된 값이 무엇이냐에 따라 결과를 보여주고 데이타베이스에 저장해야 한다.

이런 상황에서 가장 유용하게 많이 쓰는 것이 If.....then 이다.

 

그것의 예제를 만들어 보도록 하겠다.

먼저 하나의 텍스트 박스 컨트롤을 폼에 드래그 하고 버튼을 만든다.

그것의 디자인은 아래의 그림과 같다.



 

다음에는 버튼을 더블 클릭하여 코드 비하인드 페이지로 이동한다.

텍스트 박스 컨트롤의 ID는 Textbox1 이다. (변경하지 않았다면...)

텍스트 박스 내부의 값을 변수에 할당하기 위해 다음과 같이 코딩을 한다.

 

Dim strTxt As String

strTxt = TextBox1.Text

 

이제 기본 준비가 되었다.

우리가 출력할려고 하는 것은 텍스트 박스안에 "남자" 라는 글자를 입력하면 메시지 팝업이 "남자라고 글을 남겼습니다." 라는 메시지를 출력할 것이고, 이와는 다르게 "여자" 라는 글을 남긴다면 "여자라는 글을 남겼습니다." 라는 메시지를 출력할려고 하는 것이다.

 

두 가지의 선택 입력에 따라 메시지 결과를 다르게 보여주는 것이 목적인데 이런 상황에서 If...Then은 유용하게 쓰인다.

 

다음과 같이 코딩을 한다.

 

If strTxt = "남자" Then
   MsgBox("남자라고 글을 남겼습니다.")
Else
    MsgBox("여자라고 글을 남겼습니다.")
End If

 

이제 F5키를 이용하여 폼을 읽어본다.

그리고 텍스트 박스에 값을 입력해 본다.

 



 

이제 확인을 클릭하고 다시 여자라는 글을 입력해 본다.

아래의 결과가 그것이다.

 



 

 

이 예제를 통해 If....then 이 무엇인지를 살펴보았다.

그런데 왠지 뭔가를 덜 닦은 기분이 드는 관계로 약간 더 완벽을 기하기 위해 If..... then 에 조건을 조금 더 추가해 보고자 한다. ^^;

 

위에서 제시한 코드를 말로 풀어보면...

텍스트 박스에 입력된 데이터를 strTxt라는 변수에 할당한다.

만약에 strTxt라는 string 데이타 타입의 변수 값 "남자"가 텍스트 박스에서 입력된 글자인 "남자" 와 같으면 "남자라고 글을 남겼습니다." 라는 메시지를 출력하고 그 외의 것은 무조건 "여자가 글을 남겼습니다." 라는 조건이다.

 

즉... 저 텍스트 박스에 "남자" 라는 이외의 단어를 입력하면 무조건 메시지 박스는 "여자라고 글을 남겼습니다." 라고 출력하게 되어 있다. 이래서 컴퓨터는 바보다....^^;

 



따라서 조건을 약간 수정하여....

텍스트 박스에 입력된 문자가 남자 또는 여자가 아닌 다른 그 외의 것이라면 정상적으로 입력하라는 메시지를 출력할 계획이다.

그 메시지는 이렇게 될 것이다.

 

"남자 또는 여자 라는 단어 외에는 입력할 수 없습니다."

 

이제 조건을 수정하도록 하겠다.

 

If strTxt = "남자" Then
   MsgBox("남자라고 글을 남겼습니다.")
ElseIf strTxt = "여자" Then
   MsgBox("여자라고 글을 남겼습니다.")
Else
   MsgBox("남자 또는 여자라는 단어 외에는 입력할 수 없습니다.")
End If

 

이 조건을 사람의 언어로 설명하면....

입력 값이 남자라면 메시지를 출력한다.

남자라는 입력 값외의 값 중에 여자라는 입력 값이 있으면 메시지를 출력한다.

이 두 가지 이외의 것은 모두 다른 메시지를 출력한다.

가 된다.

 

이제 이것의 결과를 실행해 보자.

다시 중성이라는 단어를 입력하고 결과를 보면 아래의 그림과 같다.

 



 

이상으로 If....then 에 대해 살펴보았다.

저작자 표시 비영리 변경 금지
Posted by -세티-

앞에서는 두 개의 값을 조합하여 계산하는 것을 해봤다.

이번에는 두 개의 값을 비교하는 연산자에 대해 알아본다.

비교 연산자라고도 하는데 이 비교 연산자에는 아래의 것들이 존재한다.

 

= (equal) , <>(not equal to), >(grater than), <(less than),

>=(greater than or equal to), <=(less than or equal to)

 

equal은 두 개의 값 A, B를 기준으로 하는데... 두 개의 값이 다르다면 false, 같으면 true 라는 Boolean 값을 return 한다.

 

not equal to는 역시 A, B값이 서로 다르면 true를 return 하지만 A와 B가 같으면 false를 return한다.

 

grater than은 A가 B보다 크다고 가정했을 때 A > B가 되면 true를 return 하지만 반대로 A < B라면 false를 return 한다.

 

less than은 A가 B보다 작다고 가정할 때 A > B가 되면 false를 return 하고 A < B 일 경우엔 true를 return 한다.

 

greater than or equal to 의 경우 A값이 B보다 크거나 같다고 가정할 때, A >= B 가 되면 true를 return 하지만 B >= A일 경우에는 false를 return 한다.

 

마지막으로 less than or equal to은 B가 A보다 크거나 같은 경우, A <= B라면 true를 return 하지만 그 반대의 경우인 A >= B가 된다면 false를 return 한다.

 

이것의 예제 코드는 다음과 같다.

 

Dim A As Double = CDbl(Textbox1.Text)
Dim B As Double = CDbl(Textbox2.Text)

MsgBox(A > B)
MsgBox(A < B)
MsgBox(A = B)

참고로 Textbox1.Text 라는 부분을 CDbl()이라는 메서드안에 할당한 이유는 그것의 최초 입력이 Text 형식의 데이타 타입이기 때문이다.

 

앞에서 설명했듯이 각각의 변수는 그에 맞는 값만 받아들 일 수 있다.

우리가 계산을 적용하기 위해서는 값이 숫자이어야 하고 또 그것을 할당받는 변수 또한 마찬가지로 숫자 타입이어야 한다.

Double이라는 데이타 타입은 소수점을 포함한 숫자의 형태를 받아들 일 수있다.

그래서 변수의 타입을 Double로 한 것이다.

그러나 윈도우 폼에서 키보드를 통해 입력하게 될 숫자는 컴퓨터 입장에서는 Text에 불과하다.

따라서 Text 형태의 입력받은 값을 데이타 타입을 숫자로 변경해야 하고, 그러기 위햐서는 컴퓨터와 약속된 룰인 CDbl()를 사용하여 그것을 변수가 할당받을 수 있는 숫자의 형태로 변경하는 것이다.

저작자 표시 비영리 변경 금지
Posted by -세티-

1 + 2의 값은 3이다.

이것을 코드로 표현하면

 

Dim plusValue As Integer = 1 + 2 가 된다.

 

더하기 와 같은 정수 연산자로는 빼기( - ), 곱하기( * ), 나누기( / )가 존재한다.

 

+ : addtion

- : substraction

* : multipication

/ : division

 

같은 실습예제를 통해 정수연산의 결과를 확인하고자 한다.

 



 

이번에는 두 개의 값을 입력받아 정수를 계산하는 윈도우 폼을 만들어 보는 것을 한다.

먼저 아래의 그림처럼 2개의 라벨과 2개의 텍스트 박스 그리고 하나의 버튼을 폼에 드래그 한다.


 

다음으로 버튼 부분을 마우스로 더블 클릭한다.

Button1_Click 메서드 영역에 아래의 코드를 입력한다.

아래는 그것의 코드 이다.

 

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

 

        Dim intTxtBox1 As Integer
        intTxtBox1 = TextBox1.Text

 

        Dim intTxtBox2 As Integer
        intTxtBox2 = TextBox2.Text

 

        Dim addtion As Integer = intTxtBox1 + intTxtBox2
        Dim substraction As Integer = intTxtBox1 - intTxtBox2
        Dim multipication As Integer = intTxtBox1 * intTxtBox2
        Dim division As Integer = intTxtBox1 / intTxtBox2

 

        MsgBox("덧셈값: " & addtion & ", 뺄셈값: " & substraction & ", 곱셈값 : " & multipication & ", 나눗셈 : " & division)

 

    End Sub

 

 

F5키를 눌러서 결과를 확인해 본다.

첫번째 값과 두번째 값에 각각 4+2를 입력해 보겠다.

 

그것의 결과는 아래와 같다.


저작자 표시 비영리 변경 금지
Posted by -세티-
2008/11/30 00:18

세티가 정리한 VB.NET(3) General .NET2008/11/30 00:18


이번에는 변수의 그룹들을 저장하기 위해 변수를 어떻게 사용하는가에 대해 알아보고자 한다.
변수는 프로그램에서 각기 다른 데이타 타입을 저장하기 위해 사용된다.
변수는 하나의 값을 기준으로 저장한다. 우리가 1 부터 10까지의 값을 저장하기를 원한다면 아래와 같은 방식으로 코딩을 해야 한다.

Dim a1 As Integer
Dim a2 As Integer
Dim a3 As Integer
Dim a4 As Integer
Dim a5 As Integer
Dim a6 As Integer
Dim a7 As Integer
Dim a8 As Integer
Dim a9 As Integer
Dim a10 As Integer

a1 = 1
a2 = 2
a3 = 3
a4 = 4
a5 = 5
a6 = 6
a7 = 7
a8 = 8
a9 = 9
a10 = 10

매우 노가다 스럽다. 그나마 10개 니깐 저런식으로 코딩이 가능하지만 만약 100개라면??
또한 값이 굉장히 복잡한 로직의 결과라면?
이렇게 반복되는 여러 개의 같은 타입의 값을 변수에 저장하는 알맞은 방법이 있다.

그것은 바로 array라고 불리는 배열을 사용하는 방법이다.
배열을 만드는 방법은 아주 간단하다.

아래의 코드를 살펴보자.

Dim intArray() As Integer

먼저 변수이름의 뒤에 괄호를 넣는다.
여기에 많은 값을 저장하기를 원한다면 괄호안에 그 크기 만큼 숫자를 넣어주면 된다.
위의 예제에서는 10개를 저장했으므로 이것을 배열에 적용하면 코드는 아래와 같다.

Dim intArray(10) As Integer

여기에 값을 할당해 보도록 하겠다.

intArray(0) = 1
intArray(1) = 2
intArray(2) = 3
intArray(3) = 4
intArray(4) = 5
intArray(5) = 6
intArray(6) = 7
intArray(7) = 8
intArray(8) = 9
intArray(9) = 10

위의 코드 보다 훨씬 짧아졌다. 변수의 선언도 단 한줄이면 말끔하게 해결된다.
저 괄호안에 있는 숫자를 element 라고 칭한다.
정리를 하자면 하나의 변수를 선언하고 그 뒤에 ()를 넣은 다음 괄호안에 element를 넣어주면 되는 것이다.
만약 저렇게 나열해서 코딩을 하기 귀찮다면 아래의 예제와 같은 방법으로도 가능하다.

Dim intArray() As Integer = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }

위의 코드 처럼 코딩을 하게 되면 변수의 size를 넣어주지 않아도 앞에서 부터 차례대로 값이 intArray 변수에 할당되게 된다.그래서 굳이 size를 적어주지 않아도 된다.
array 변수를 이용한 직접 코딩을 해보도록 하겠다.

먼저 첫번째 예제를 코딩한 결과이다.




결과를 출력하기 위해 모두 MsgBox를 10개 만들었다. 이건 너무 노가다 임에 틀림없다.
이번에는 두 번째 코드를 가지고 결과를 확인해 보겠다. 


Cint()
라는 부분에 숫자를 배열의 숫자를 할당하면 할당된 값이 출력된다.
참고로 배열은 0부터 시작한다. 그래서 1이라는 값이 출력되는 것이다. 

for 문을 이용하여 출력하는 예제는 각자 해보길 바란다.

저작자 표시 비영리 변경 금지
Posted by -세티-
2008/11/30 00:15

세티가 정리한 VB.NET(2) General .NET2008/11/30 00:15

이번에는 단어와 텍스트를 가지고 어떻게 String Data Type을 사용하는지 알아보고자 한다.

문자열(String)이란 무엇인가?
하나의 스트링은 하나의 글자 또는 숫자 그리고 빈 공간과 같은 것들의 조합이다.
스트링 변수에 문자를 할당해 보도록 한다.

Dim strStringA As String = "스트링 문자열" 

문자를 String 변수에 할당 하고자 할 때는 할당할 문자를 quotation mark("")안에 문자를 넣어야 한다. 이렇게 문자가 할당된 변수를 또 다른 변수를 이용하여 할당할 수 있다.

Dim strStringB As String = ""
strStringB = strStringA

위의 코드를 살펴보면 먼저 새로운 스트링 변수 strStringB를 선언하고, 아무런 문자도 없는 빈 공간의 ""를 할당한다. 그럼 strStringB는 빈 공간을 가지게 되고 이것에 변수 strStringA를 할당하면 strStringA라는 변수가 가진 "스트링 문자열" 이라는 값을 strStringB가 가지게 된다.

또한 ampersand(&)를 이용하여 문자를 만들 수 있다.
먼저 두 개의 변수를 선언해야 하는데 a, b 라는 이름으로 만들도록 하겠다.

Dim a As String
Dim b As String

이라고 선언한다.

그리고 Dim a As String = "Hello " 라는 문자열을 할당한다.
또한 Dim b As String = "World" 라는 문자열을 할당한다.
이 전의 강의에서 값을 가지는 변수는 변수에 할당될 수 있으며 그것은 값 처럼 된다고 말했다.

이 두개를 할당 받을 새로운 변수 c를 선언한다.

Dim c As String

이제 문자열 값을 가지는 두 개의 변수를 새로 선언한 변수 c에 할당한다.

c = a & b
이것의 결과는 다음과 같다.

"Hello World"

Web Form을 이용하여 직접 코딩해 보도록 하겠다.
먼저 비주얼 스튜디오를 열고 Form을 하나 생성한다.
다음에 마우스로 더블 클릭하고 Code View로 이동한다.
Form1_Load라는 영역에 위의 예제를 붙여 넣는다. 

Public Class Form1 
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

Dim a As String = "Hello"
Dim b As String = " World"
Dim c As String = ""
c = a & b
MsgBox(c) 
End Sub
End Class

이것을 build하면 아래의 그림과 같은 결과가 리턴된다.


텍스트가 메시지 박스안에 출력된 모습을 볼 수 있을 것이다.

저작자 표시 비영리 변경 금지

'General .NET' 카테고리의 다른 글

세티가 정리한 VB.NET(4) - 변수와 연산자  (0) 2008/11/30
세티가 정리한 VB.NET(3)  (0) 2008/11/30
세티가 정리한 VB.NET(2)  (0) 2008/11/30
세티가 정리한 VB.NET(1)  (2) 2008/11/30
익명 메서드(Anonymous Methods)  (0) 2008/11/30
Nullable 타입  (0) 2008/11/30
Posted by -세티-
2008/11/30 00:09

세티가 정리한 VB.NET(1) General .NET2008/11/30 00:09

작성일 : 2006년 1월 20일
옮긴일 : 2008년 12월 22일

변수는 프로그래밍 언어에서 중요한 컨셉입니다.
변수는 하나의 값을 저장하는 이름입니다.

컴퓨터 프로그램을 생성할 때 숫자라던가 단어, 사람의 이름과 같은 것을 저장하기 위해 변수를 사용할 수 있다.
그럼 정보를 전달하는데 왜 변수를 사용하는가? 직접 그 값을 사용하면 되는것을?
변수는 하나의 값이 될 수도 있다.
변수를 사용하면 다음과 같은 것들이 가능하다.

[변수]=[값]

제리 = 제리의 갯수 (예 : jelly = 6)
캔디 = 캔디의 갯수 (예 : candy = 5)

따라서 책상은 총 11개의 무언가를 가지게 된다. 제리와 캔디는 각각의 자신의 갯수를 가지고 있다.
책상 = 제리 + 캔디 

이 때... 나는 캔디의 갯수를 변경하기를 원한다. 따라서 candy의 갯수를 6으로 변경했다.
책상은 총 12개의 무언가를 가지게 되지만 책상 = 제리 + 캔디 라는 로직이 변하지는 않는다.
제리와 캔디는 변수로서 값을 가지고 있기 때문이다.
이런 편리함이 변수를 사용해야만 하는 하나의 예 가 되는 것이다.

하나의 변수를 사용하기 위한 3가지 스텝이 있다.

1. 변수선언
2. 변수할당
3. 변수사용

1번의 것은 내가 사용하고자 하는 변수의 타입을 컴퓨터에게 알리는 절차를 말한다.
2번의 것은 하나의 값을 고정시키기 위해 변수에게 주는 것이다.
3번의 것은 변수에 할당된 값을 되찾아 오는 것을 말한다. 

1. 변수선언

하나의 변수를 사용하고자 할 때 어떤 Data Type을 사용할 것인가를 결정하고 있어야 한다.
Dim과 Askeywords를 사용하는 하나의 변수를 선언한다.

 Dim aNumber As Integer

 위의 코드를 해석하자면

"컴퓨터야!! 나는 aNumber라는 변수를 사용하고 싶단다. 그 변수에는 숫자들을 저장하고 싶단다."

 위의 aNumber라는 변수에는 단지 숫자만 저장할 수 있다.
왜냐면 숫자만 담겠다고 지정했기 때문이다. 그것은 Integer라는 부분에 의해서 그렇게 된 것이다.
만약에 하나의 단어를 입력하고 싶다면??? 그것은 String 이라는 이름으로 불리는 Data Type을 지정해 주면 된다.

 Dim aWord As String

위의 코드를 사람의 언어로 표현하면 다음과 같다.

"컴퓨터야...~ 나는 aWord라는 변수에 String을 담고 싶단다..^^ "

 만약 42.5 와 같은 소수점이 붙은 숫자를 담고 싶다면...?? 그냥 Integer에 담는다..??
그건 안된다.
왜냐면...사람들은 그냥 저것을 숫자라고 하면 알아듣지만 컴퓨터는 바보다.

따라서 저게 숫자는 숫자인데 '그냥 숫자가 아닌 소수점이 붙은 숫자다.' 라고 알려줘야 된다는 것이다. 따라서 컴퓨터에게 '이건 소수점으로 된 숫자야..' 하고 말해주는 표현은 아래와 같다.

Dim aDouble As Double

또 다른 표현이 있다.
우리는 친구들과 가끔 이야기를 하다보면 예/아니오 로만 답하시오... 라는 말들을 가끔 듣게 된다.
그것은 자질구해한 이야기를 듣기 귀찮을 때 주고 하게 되는데...
컴퓨터에게도 그런 방식으로 이야기를 할 수 있다.

예/아니오는
컴퓨터에서 True/False 라고 표현한다. 조금더 세련된 말로는 참/거짓 이 되는 것이다.
이런 것을 표현하기 위해 변수에 값을 담아야 하는데, 이런 값을 담고 있는 변수의 데이타 타입을 Boolean 이라고 한다.
이것을 사용하겠다고 컴퓨터에게 말해줘야 하는데 아래와 같은 표현법을 사용한다.

Dim YesorNot As Boolean

이것을 다시한번 친숙한 사람의 언어로 표현하면...

"컴퓨터야..~~ 나는 예/아니오 라는 값을 담고 싶어. 나에게 변수라는 그릇을 다오~!! 그것의 데이타 타입은 Boolean 이란다."
가 되는 것이다.

이런 변수에 대해 그리고 데이타 타입에 대해 보다 자세한 것을 보고 싶다면 아래의 주소로 가보면 된다.

http://msdn.microsoft.com/vbasic/learning/newtodevelopment/variables/datatypes/


2. 변수할당

위에서 변수를 선언했으니 이 변수에 무언가를 담아야 하겠다.
변수라는 밥 그릇을 달라고 했으니 밥이라도 담아야 하는데 어떻게 담는가???
그것은 바로 = 을 사용해서 담게 된다.
이것은 보다 세련된 언어로 표현하면 "할당" 이라고도 한다.

그럼 위 에서 선언한 변수들 중의 하나에 값을 담아보자.

Dim aWord As String = "Hello"

 이것을 마찬가지로 친숙한 사람의 언어로 표현하면...
"aWord라는 String이라는 데이타 타입 변수에 Hello라는 단어를 할당한다." 가 된다.

3. 변수의 사용

비주얼 스튜디오가 있다면 Form1_Load라는 곳에다가 다음의 코드를 넣는다.

Dim
anInteger As Integer = 100
Dim aSingle As Single = 3.141592
Dim aString As String = "Hello"
Dim aBoolean As Boolean =
True

그리고 다음의 코드를 이용하여 결과를 확인해 본다.

MsgBox(anInteger)
MsgBox(aSingle)
MsgBox(aString)
MsgBox(aBoolean)

MsgBox()
라는 녀석은 메시지 박스를 띄우도록 컴퓨터 내부에 이미 코딩되어져 있다.
저 () 안에 값을 할당한 변수를 넣으면 MsgBox()는 변수가 가지는 값을 출력해 주게 되는 것이다.
MsgBox()라는 것을 흔히 메소드 라고도 이야기 하는데 아무튼... 메시지 박스를 띄우기 위해 컴퓨터와의 약속이라고 생각하면 쉽다.

자동차의 방향을 바꾸기 위해선 핸들이 필요하다.
핸들이라는 이름은 방향을 바꾸기 위한 나와 자동차와의 약속이다.
마찬가지고 내가 메시지 박스를 띄우기를 원한다면 MsgBox()라는 약속된 녀석을 이용하면 되는 것이다. 아무 부담 없이 말이다.^^

저작자 표시 비영리 변경 금지

'General .NET' 카테고리의 다른 글

세티가 정리한 VB.NET(3)  (0) 2008/11/30
세티가 정리한 VB.NET(2)  (0) 2008/11/30
세티가 정리한 VB.NET(1)  (2) 2008/11/30
익명 메서드(Anonymous Methods)  (0) 2008/11/30
Nullable 타입  (0) 2008/11/30
DataTable.NewRow  (0) 2008/11/30
Posted by -세티-
2008/11/30 00:06

익명 메서드(Anonymous Methods) General .NET2008/11/30 00:06


익명 메서드(Anonymous Methods)

- 메서드를 통해 처리하는 내용을 인라인의 형태로 처리하는 방법을 제공
- delegate를 통해 메서드를 호출하는 경우 호출할 수 있는 메서드의 타입을 델리게이트를 생성하면서 선언하고, 이벤트가 발행하였을 경우에 델리게이트를 통해 선언된 메서드를 호출, 작업처리 

using System;
using System.Collections.Generic;
using System.Text; 

namespace SimpleDelegateSample
{

    delegate int AnyDelegate();

    class Program
    {
        public static void AnyMethod(AnyDelegate ad)
        {
            Console.WriteLine(ad());
        }

        static void Main(string[] args)
        {
            int x = 10;
            int y = 20;
            AnyDelegate ad = delegate{ return x * y; };
            AnyMethod(ad);
        }
    }
}

 

코드 설명

1. Main()를 실행

2. int 타입의 x, y변수에 각각 10과 20이라는 값을 할당.

3. ad라는 변수를 선언하고 데이터 타입을 AnyDelegate(사용할 메서드의 타입)로 한다.

4. delegate를 사용하여 상단에 선언된 AnyDelegate()가 해야 할 일을 구현하고 ad에 할당한다.

5. AnyMethod()ad를 전달한다. 이 때 adAnyDelegate 타입이다.

6. 인자로 전달된 ad를 콘솔에서 실행하고 결과를 확인한다.

저작자 표시 비영리 변경 금지

'General .NET' 카테고리의 다른 글

세티가 정리한 VB.NET(2)  (0) 2008/11/30
세티가 정리한 VB.NET(1)  (2) 2008/11/30
익명 메서드(Anonymous Methods)  (0) 2008/11/30
Nullable 타입  (0) 2008/11/30
DataTable.NewRow  (0) 2008/11/30
닷넷2.0을 시작하며...  (0) 2008/07/22
Posted by -세티-
2008/11/30 00:04

Nullable 타입 General .NET2008/11/30 00:04


.NET Framework CTS(Common Type System)에 정의된 타입

- 값 타입(Value Type), 참조 타입(Reference Type)

- 이전에는 값 타입에 Null을 할당할 수 없었다.

- C#2.0에서는 값 타입에도 Null 저장이 가능해짐.(Nullable 타입)

- 컬럼의 타입이 정수형이므로 Null을 입력할 수 있도록 프로그램으로 처리.

using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleCshapStudy
{
    class MakeNullable
    {
        static void Main(string[] args)
        {
            Nullable<int> x = new Nullable<int>(123);
            if (x.HasValue)
            {
                Console.WriteLine(x.Value);
            }
        }
    }
}

저작자 표시 비영리 변경 금지

'General .NET' 카테고리의 다른 글

세티가 정리한 VB.NET(1)  (2) 2008/11/30
익명 메서드(Anonymous Methods)  (0) 2008/11/30
Nullable 타입  (0) 2008/11/30
DataTable.NewRow  (0) 2008/11/30
닷넷2.0을 시작하며...  (0) 2008/07/22
세티의 닷넷강좌를 다시 살리겠습니다.  (0) 2008/07/22
Posted by -세티-
2008/11/30 00:02

W3C 표준 DOM General Web2008/11/30 00:02

작성일 : 2006년 9월 30일

DOM
은 문서 객체 모형이라고 말하며, HTML의 구조에 접근하는 방법

Document.layers 층에 접근하기 위해 document.all 또는document.getElementById 사용

 

W3C의 표준 – document.getElementById

 

 

 

계층적 구조(Tree 구조)

 

<HTML> - 문서의 TOP(document 문서 하위)

<HEAD> - <HTML>의 꼬리표

, HTML 문서의 최정상은 document 가 된다.

 

 

DOM을 이해하기 위한 도형

 

(부모)

|

|

형제1---- ----형제2

|

|

아이1------------ 아이2

 

 

1. parentNode : 나를 기준으로 부모 마디에 접근.

   - document.getElementById("myElement").parentNode

 

2. childNode : 나를 기준으로 NodeList를 반환

- document.getElementById("나").childNodes

- document.getElementById("나").childNodes.item(0)

- document.getElementById("나").childNodeds[0] 와 동일

 

3. firstChild : 첫번째 마디에 대한 접근

- document.getElementById("나").firstChild

- document.getElementById("나").childNodeds[0] 와 동일

 

4. lastChild : 마지막 마디에 대한 접근

- document.getElementById("나").lastChild

- document.getElementById("나").childNodes.item(document.getElementById("나").childNodes.length)과 동일

 

5. previousSibling : 아이1로 접근

- document.getElementById("나").previousSibling

 

6. nextSibling은 아이2에 접근

   - document.getElementById("나").nextSibling


저작자 표시 비영리 변경 금지

'General Web' 카테고리의 다른 글

Basic CSS syntax  (0) 2008/11/30
CSS1 - 1. 기본개념  (0) 2008/11/30
W3C 표준 DOM  (0) 2008/11/30
[HTML] Box Model  (0) 2008/08/06
2. xml 문서의 생성과 CSS를 이용한 XML 문서 출력  (0) 2008/04/11
xml과 10가지 설계목표  (0) 2008/04/11
Posted by -세티-
2008/11/30 00:01

IF, InnerJoin, CASE 적용 프로시저 General Tech.2008/11/30 00:01


ALTER Procedure KOSTA_Web_Detail_List

 @PostCode Char(5)
 , @Gender Char(1)

AS
DECLARE @SQL Varchar(1000)

SET @SQL = '
 SELECT
  KU.sabun -- 사번
  , KU.korname -- 성명
  , K.PostName -- 부서명
  , P.PName -- 직위명
  , KU.gender --성별
  , KU.hp  -- 핸드폰
  , I.itemName -- 취미명
  , KU.itemday -- 취미요일
  , KU.itemtime  -- 취미시간
  ,
    CASE KU.contracttype -- 계약여부
   WHEN ''0'' THEN ''무''
   WHEN ''1'' THEN ''유''
    END AS contracttype
 
 FROM
  KUserInfo AS KU JOIN KDuty AS K
  ON  (KU.PostCode = K.PostCode)
  JOIN  Position AS P
  ON  (KU.PCode = P.PCode)
  Join POS_USER AS PU
  ON (KU.sabun = PU.sabun)
  Join  Items AS I
  ON  (PU.itemCode = I.itemCode)'

 IF(@PostCode <> '' AND @Gender <> '')

 BEGIN
  SET @SQL = @SQL + ' WHERE
   KU.PostCode = '+ @PostCode +' and KU.gender = '+ @Gender +''
 END

Execute(@SQL)

저작자 표시 비영리 변경 금지
Posted by -세티-
2008/11/30 00:00

DataTable.NewRow General .NET2008/11/30 00:00

private void MakeDataTableAndDisplay()
{
    // Create new DataTable and DataSource objects.
    DataTable table = new DataTable();

    // Declare DataColumn and DataRow variables.
    DataColumn column;
    DataRow row; 
    DataView view;

    // Create new DataColumn, set DataType, ColumnName and add to DataTable.    
    column = new DataColumn();
    column.DataType = System.Type.GetType("System.Int32");
    column.ColumnName = "id";
    table.Columns.Add(column);
 
    // Create second column.
    column = new DataColumn();
    column.DataType = Type.GetType("System.String");
    column.ColumnName = "item";
    table.Columns.Add(column);
 
    // Create new DataRow objects and add to DataTable.    
    for(int i = 0; i < 10; i++)
    {
        row = table.NewRow();
        row["id"] = i;
        row["item"] = "item " + i.ToString();
        table.Rows.Add(row);
    }
 
    // Create a DataView using the DataTable.
    view = new DataView(table);

    // Set a DataGrid control's DataSource to the DataView.
    dataGrid1.DataSource = view;
}

저작자 표시 비영리 변경 금지

'General .NET' 카테고리의 다른 글

익명 메서드(Anonymous Methods)  (0) 2008/11/30
Nullable 타입  (0) 2008/11/30
DataTable.NewRow  (0) 2008/11/30
닷넷2.0을 시작하며...  (0) 2008/07/22
세티의 닷넷강좌를 다시 살리겠습니다.  (0) 2008/07/22
닷넷 전용 어셈블리  (0) 2008/04/27
Posted by -세티-