본문 바로가기

Web

웹프로그래밍 기반 지식

1. 웹프로그래밍 언어 작동원리 :

1) 인터프리터 :


웹프로그래밍에 사용되는 일반적인 언어(php, asp, jsp)는 인터프리터로 되어있으며

"해석기"가 코드를 한줄씩 해석하여 사용자가 이해할수 있는 문서인 HTML로 변환해 준다.

인터프리터는 컴파일러보다 가벼우며 융통성이 좋아 웹에서 사용하기에 적합하다.


2) 2Tier ,  3Tier(단계, 계층) :

2Tier : Server(웹서버 : Asp, jsp, php) / Client(사용자 : HTML)   
 
3Tier : Server(웹서버 : Asp, jsp, php) / Client(사용자 : HTML) /
          + Component(별도의 기능과 함수를 모아 컴파일한 모듈(프로그램))         (ex. Active X)



3) 웹사이트 작동 구조 :

웹서버 + 웹언어 해석기 + DB서버


(ex. IIS + ASP + MSSQL,         Apache + PHP + MYSQL,       Iplanet + JSP + ORACLE )



2. 웹프로그래밍 언어의 종류와 성격

1) asp (Active Server Page) :

asp 는 MS에서 개발된 웹프로그래밍 언어이다.

비주얼 베이직과 거의 비슷하며 웹언어중 코드를 가장 이해하기 쉽다.

asp 는 웹에서 정보를 주고받기 위한 5가지 객체를 가지고 있다.

Request 객체 : 서버쪽에 정보를 요청 하여 받아내도록 하는 객체
Response 객체 : 서버쪽에서 사용자가 보이는 화면으로 정보를 뿌려 주는 객체
Server 객체 : 서버에 위치하는 다른 객체를 사용할 수 있도록 하는 객체
Application 객체 : 서버가 끊길때까지 정보를 가지고 있는 객체
Session 객체 : 사용자가 로긴하고 로그아웃 할때까지 사용자정보를 가지고 있는 객체


2) php (Personal Hypertext Preprocessor) :

php 는 모든것이 함수로 되어 있어 사용하고 이해하기 편리하다.

오픈소스이다.

C 언어 기반이다.


3) jsp (Java Server Pages) :

Java 언어를 기반으로 하는 스크립트 언어이다.

Java 는 클래스를 중심으로 한 서블릿과 Java Beans 컴포넌트를 이용하여 다양한 기능을 구사할 수 있다.

따라서 Java 의 기능을 아는것이 매우 중요하다.

확장성이 좋아 어느 운영체제에서도 사용할 수 있다.


4) .net(닷넷)  ,   EJB(Enterprise Java Beans) :

기존의 스크립트 언어와 함께 각 기능들을 모듈화 하여 사용할 수 있도록 만들었다. (Component 제작)



3. 데이터 베이스 용어

1) 테이블(table) :

데이터베이스의 하나의 개체를 의미한다.    (ex. 회원)




2) 칼럼(Column) :

테이블 내부의 세로줄을 지칭한다. (ex.  이름,  주민번호,  회사,  전화번호 , 가입경로, 기입일)


3) 레코드(Record) :

테이블 내부의 가로줄 한줄 즉 정보를 의미한다.
(ex.
 홍길동  ****** - *******  A회사   010-2345-****  네이버를 통해  2006-01-01
)

레코드 셋은 레코드들의 묶음을 의미한다.


4) 쿼리문 :

SQL 이라고 하며 질의어라 한다.

데이터를 조회(Select), 수정(Update), 삭제(delete), 저장(insert) 한다.

(ex.
- 조회
select 이름,회사 from 회원 where 가입일='2006-01-01'
해석 : 회원 테이블에서 가입일이 2006-01-01 인 사람의 이름과 회사정보를 조회하라.

- 삭제
delete from 회원 where 가입일='2007-04-01'
해석 : 회원 테이블에서 가입일이 2007-04-01 인 회원을 지워라.

- 수정
update 회원 set 전화번호='011-2345-****' where 주민번호='******-*******'
해석 : 회원 테이블에서 주민번호가 ******-******* 인 회원의 전화번호를 011-2345-**** 로 수정하라.

- 저장
insert into 회원 (이름,주민번호,회사,전화번호,가입경로,가입일)
value ('주몽','******-*******','LK그룹','010-2222-****','지인을 통해','2007-04-11')
해석 : 회원 테이블에 새로운 정보를 저장하라.                                                                    )



4. 데이터 베이스와의 연결

1) asp 에서 msssql 서버 데이터 가져오기

- 데이터 베이스 연결정보
StrConn = "Provider=SQLOLEDB;Data Source = DB서버명;
              Initial Catalog=DB명:User ID =DB접근계정명;Password=DB접근 패스워드;"

해석 : StrConn 변수에 데이터 베이스 연결 정보를 담는다.
         Data Source 에는 DB 서버명을,      Initial Catalog 에는 DB명(IP주소)을,   계정과 비밀번호를 입력한다.
         데이터 베이스 관리시스템인 DBMS 에는 여러개의 DB를 만들어 관리할 수 있으므로 DB명을 지정해준다.
         DB에 따라 ID, Password 를 별도로 부여하며 권한을 줄수 있으므로 미리 변수에 담아놓는다.

- 데이터베이스 연결 객체 선언
set Conn = server.CreateObject("ADODB.Connection")

해석 : server 객체의 CreateObject 메소드를 사용하여 데이터 베이스 연결을 하겠습니다 라고 정의하며
         연결객체 Conn 을 만든다.           (set : 새로운 객체를 선언)

- 데이터 베이스 연결
Conn.open StrConn

해석 : Conn이라는 데이터 베이스 연결객체의 메소드 open 을 이용해 변수에 지정된 DB연결 정보를 연결한다.

- 데이터 베이스 실행을 통한 레코드셋으로 받기
Dim sql
sql="select * from 테이블명"
set Rs = Conn.execute(sql)

해석 : Dim sql (sql 이라는 변수를 선언한다)  sql 에 쿼리문("select * from 테이블명")을 담는다.
         set Rs (Rs 라는 객체를 선언한다)    Rs 객체는 Conn 이라는 위에서 만든 객체의 메소드 execute 를 통해
         sql 의 변수에 저장된 쿼리문을 실행시켜 레코드 셋을 받는다.


2) php 에서 mssql 서버 데이터 가져오기

- 데이터 베이스 연결정보
$hostname = DB서버 IP
$user_id = 권한이 있는 DB접근 ID
$password = 패스워드
$DbName = DB명

해석 : php 에서는 $문자가 붙으면 변수이다.
         데이터 베이스에 접근하기 위하여 서버IP, ID, Password, DB명을 변수에 저장한다.

- 데이터 베이스 연결설정
$Conn = MSSQL_CONNECT($hostname, $user_id, $password);

해석 : php 에서는 MSSQL_CONNECT 라는 함수가 데이터 베이스와의 연결을 시켜준다.

- 데이터 베이스 연결
mssql_select_db($DbName, $Conn);

해석 : php 는 데이터 베이스 DB명을 선택하게 하는 함수를 별도로 가지고 있다.

- 데이터 베이스 실행을 통한 레코드셋으로 받기
$sql = "select * from 테이블명"
$Rs = mssql_query($sql, $Conn)

해석 : sql 변수에 쿼리문을 저장한 다음 mssql_query 함수를 이용하여 데이터를 받아와 Rs에 저장한다.
        

3) jsp 에서 mssql 서버 데이터 가져오기

- 데이터 베이스 연결정보
Class.forName("com.microsoft.jdbc.sqlsever.SQLSeverDriver");
String strUrl = "jdbc:microsoft:sqlserver:서버아이피:databasename=DB명";
String strUser_id = 권한이 있는 DB접근 ID;
String strPassword = 패스워드;

해석 : 기본적으로 클래스를 사용한다.   기능을 사용하려면 먼저 클래스를 선언해야 한다.
         Class.forName()  파라미터의 클래스를 사용
         com.microsoft.jdbc.sqlsever.SQLSeverDriver 는 sqlserver 를 사용하기 위한 클래스
         문자열로 선언된 strUrl, strUser_id, strPassword 에 (IP, DB명), ID, Password 를 대입한다.

- 데이터 베이스 연결설정
Connection Conn = DriverManager.getConnection(strUrl, strUser_id, strPassword);

해석 : DriverManager 객체의 getConnection 메소드를 사용해 연결객체 Conn 을 생성한다.

- 데이터 베이스 연결
Statement stmt = Conn.createStatement();

해석 : 생성된 연결객체 Conn 의 createStatement() 메소드를 실행하여 SQL 쿼리를 생성, 실행하여 결과를 가져오게 할 작업 영역을 stmt 객체를 만든다.

- 데이터 베이스 실행을 통한 레코드셋으로 받기
String strSql = "select * from 테이블명"
Result rs = stmt.executeQuery(strSql);

해석 : 문자열로 선언된 strSql 변수에 쿼리문을 담고 stmt 객체의 executeQuery() 메소드를 사용해 실행하여
         rs 객체에 저장하다.



6. 쿠키와 세션

사용자가 사이트에 접속하면 접속정보가 생긴다.  (ex. 로그인 정보,   구매물품 등등)

세션 : 접속정보를 서버가 가지고 있음

쿠키 : 접속정보를 사용자의 PC에 텍스트 파일로 저장



위 글은 냐하님(ttaeseung)의 글
웹기획 이해하기 - 강좌15. 웹기획자 입장에서 웹프로그래밍 이해하기 글을 참조하여서 작성하였습니다.

http://blog.naver.com/ttaeseung/120036872378