레이블이 비트인 게시물을 표시합니다. 모든 게시물 표시
레이블이 비트인 게시물을 표시합니다. 모든 게시물 표시

2009년 11월 5일 목요일

Log Class 설계

● 클래스:Log Class 설계

현재 상태를 사용자에게 정확하고 자세하게 알려줄 수 있는 유일한 도구이다.

 

로그라는 특성상 어느 곳에서든지 사용하기 편하도록 Singleton클래스를 상속받아 전역 단일체 클래스로 만들자

 

로그를 필요한 때에 남기지 못하고 또 정확하게 남기지 못하면 서버가 제대로 동작하고 있는지, 문제는 없는지에 대한 정보를 정확하게 파악할 수 없다.

 

체계 없이 남겨진 로그 정보는 실제 필요한 로그를 찾는데 시간이 오래 걸 릴 뿐만 아니라 그게 대한 정보가 부족해 결국 시스템 부하만 줄 뿐 기능상으로는 유명무실해 진다.

 

1. Log 클래스의 종류를 나누자

- 알림과 오류로 나눠 자신이 원하는 정보를 보다 빨리 찾을 수 있도록 설계 하고

2. Log 클래스의 중요도를 나누자

- 각 종류마다 중요도 LOW, NORMAL, HIGH, CRITICAL등 등급을 나누어 쉽게 정보의 중요성을 파악할 수 있게 하자

2-1. 아래 나와 있는 enumLogInfoType은 Log클래스에서 사용할 로그 정보의 분류를 나열한 것이다

enum enumLogInfoType

{

    LOG_NONE= 0x00000000,

    LOG_INFO_LOW= 0x00000001,

    LOG_INFO_NORMAL= 0x00000002,

    LOG_INFO_HIGH= 0x00000004,

    LOG_INFO_CRITICAL= 0x00000008,

    LOG_INFO_ALL= 0x0000000F,

    LOG_ERROR_LOW= 0x00000010,

    LOG_ERROR_NORMAL= 0x00000020,

    LOG_ERROR_HIGH= 0x00000040,

    LOG_ERROR_CRITICAL= 0x00000080,

    LOG_ERROR_ALL= 0x00000100,

    LOG_ALL= 0x000001FF

};

각 등급마다 16진수로 설정하고 OR 연산을 할 수 있도록 2의n승으로 증가시킨다.

- 로그를 저장할 매체 : 파일, 출력 창, 윈도우, DB, TCP, UDP로 분류

enum enumLogStorageType

{

    STORAGE_F ILE= 0x00000000,

    STORAGE_DB= 0x00000001,

    STORAGE_WINDOW= 0x00000002,

    STORAGE_OUTPUTWND= 0x00000003,

    STORAGE_UDP= 0x00000004,

    STORAGE_TCP= 0x00000005

};

위의 enumLogStorageType은 로그를 저장할 매체에 대한 선언이다.

 

로그의 부하로 인해 속도에 문제가 생길 수 있기 때문에 최소한의 처리(로그를 내부 Queue에 넣고 바로 반환)만 하고 내부적으로 틱 쓰레드를 사용하여 일정 시간마다 Queue에 들어있던 로그를 가져와 처리하도록 한다.

서비스 할 때에는 로그를 최소한으로 하여 사용해야 한다.

 

 

3.로그를 남기는 시점

3-1. 에러 로그의 경우 모든 경우에 로그로 남긴다.

- 쉽게 넘긴 작은 에러 하나가 정말 큰 버그를 부른다.

3-2. 일반적인 정보 로그의 경우

- 함수 시작 부분과 모든 패킷 처리 시작 부분에 남기는 것이 좋다.

- 이유는 만약 어떤 처리를 하다 이유 없이 서버 프로세스가 죽었을 경우에 쉽게 그 위치를 파악할 수 있다.

- 모든 함수와 패킷에서 로그를 남긴다면 실제 서비스할 때에는 엄청난 부하가 생길 것이다. 그래서 앞에서 정한 등급에 따라 일정 등급 이하의 정보를 로그로 남기지 않거나 정보 관련 로그는 아예 남기지 않도록 할 수 있다.

 

4.무엇을 로그로 남길 것인가

4-1. 로그가 어떤 함수에서 남겨졌는지 알아야 한다.

4-2. 누구에 의해서 로그가 남겨졌는지를 알아야 한다.

- 시스템일수도 있고 패킷을 받아 남기는 것이라면 패킷을 보낸 해당 클라이언트가 될 수도 있다.

4-3. 로그가 발생되는 시간을 남겨야한다.

4-4. 로그의 종류가 에러라고 하면 에러가 어떤 작업을 하다가 발생한 것인지 남겨야하고 종류가 알림이라면 함수의 인자나 받은 패킷의 프로토콜 내용을 남겨야 한다.

2009년 10월 14일 수요일

TCPWRAPER 를 이용한 보안

작업환경 : Redhat6.2k
=========================================================================

TCPWRAPER를 이용한 간단 보안임돠.
관리자가 선택적으로 접속하는 호스트를 막는 툴이라고나 할까염?!

/etc/hosts.allow
/etc/hosts.deny
그리고, 파일하나를 작성합니다.
/etc/hosts.check

============================== START ====================================

#!/bin/sh

################################ 변수정의부문

# 메일 수신자
mailto=root

# 화면출력 여부, 메일전송 여부
dsp=$1; msg=$2

# 접속자 정보 등
a=$3; c=$4; d=$5; h=$6; n=$7; p=$8; s=$9; u=$10

# 현재 시간
time=`date`

# 접속시도자 소속 서버의 finger 정보
finger=`/usr/bin/finger -l @$h 2> /dev/null`


################################ 화면 출력부문

if [ $dsp = Y ]
then

/bin/echo "

========================================
접속이 허용되지 않습니다.
========================================

Access Time : $time
Client host address : $a
Client information : $c
Client host name(or IP) : $h
Client host name : $n
Client user name : $un

"

fi


################################ 메일 송신부문

if [ $msg = Y ]
then

/bin/echo "

========================================
접속 거부자 상세정보
========================================

Access Time : $time
Access client host address : $a
Access client information : $c
The daemon process name : $d
Access client host name(or IP) : $h
Access client host name : $n
The daemon process id : $p
Server information : $s
Access client user name : $u

--------------------------------------------------------
                              Access client finger information
--------------------------------------------------------
$finger
---------------------------------------------------------
n" |
/bin/mail -s "tcp_wrapper report [$d]" $mailto

fi

============================= STOP ======================================

/etc/hosts.check 파일을 만든뒤,

chmod a+rx /etc/host_check

이렇게 실행가능하도록 합니다.
그담은 /etc/hosts.allow 파일을 자신의 환경에 맞게 적당하게 수정합니다.

============================= START =====================================

#
# hosts.allow This file describes the names of the hosts which are
# allowed to use the local INET services, as decided
# by the '/usr/sbin/tcpd' server.
#
# 메일을 모든 사람에게 허용
# in.smtpd: ALL
# telnet과 ftp는 같은 도메인에 속한 사람과 집에 있는 본인의 호스트
# 에만 허용
# telnetd, ftpd: LOCAL, linux.klug.org
# finger를 허용하되 누가 요청했는지 기록을 남긴다.
# fingerd: ALL: (finger @%h | mail -s "finger from %h" root)
#in.telnetd: 192.168.0., LOCAL, koug.net
#in.ftpd: 192.168.0., LOCAL, koug.net
#ipop3d: 192.168.0., LOCAL, koug.net
#in.smtpd: 192.168.0.,LOCAL, koug.net
#in.telnetd: ALL
#ipop3d: ALL
#in.smtpd: ALL
in.telnetd ipop3d in.smtpd:
                127.0.0.1
                211.209.69.103
                koug.net
                192.168.0.2
                : ALLOW
in.ftpd: ALL

================================= STOP ==================================

그리고, /etc/hosts.deny 파일을 수정합니다.
크게 건드릴것은 없습니다.

================================= START =================================

#
# hosts.deny This file describes the names of the hosts which are
# *not* allowed to use the local INET services, as decided
# by the '/usr/sbin/tcpd' server.
#
# The portmap line is redundant, but it is left to remind you that
# the new secure portmap uses hosts.deny and hosts.allow. In particular
# you should know that NFS uses portmap!
#ALL : ALL

#서비스: 거부주소: 쉘명령
#in.telnetd: ALL: twist ( /etc/hosts.check Y Y %a %c %d %h %n %p %s %u )
&
#ipop3d: ALL: twist ( /etc/hosts.check Y Y %a %c %d %h %n %p %s %u ) &
ALL : ALL EXCEPT LOCAL:
                twist ( /etc/hosts.check Y Y %a %c %d %h %n %p %s %u ) &

=============================== STOP ====================================

죽 보시면 크게 어려운건 없을듯하네염. 저두하는데염.__+)
hosts.allow에는 허용할 컴의 ip내지 domain을 쓰면 됩니다.
그리고 hosts.deny는 수정할 것이 거의 없습니다.
단, 메일받는 사람의 ID는 root 로 해놓았는데 원하는 ID로 하시면 됩니다.
이것이 어떻게 작동을 하느냐하면, 일단 허용되지 않는곳의 IP에서 telnet으
로 접속을 시도합니다. 그러면 바로 hosts.check가 실행됩니다.
그리고 접속을 시도한 컴에게 finger를 시도해서 정보를 메일로 관리자에게 보
냅니다.

이런 프로그램에 관심이 있으신분들은,
http://www.rootshell.com
를 들러보십시오. 전 잘........ --ㆀ

직접 테스트한 화면을 볼까염!
=========================================================================
[root@www /etc]# telnet 211.209.69.103
Trying 211.209.69.103...
Connected to 211.209.69.103.
Escape character is '^]'.


========================================
접속이 허용되지 않습니다.
========================================

Access Time : 금 5월 11 23:22:17 KST 2001
Client host address : 211.209.69.103
Client information : 211.209.69.103
Client host name(or IP) : 211.209.69.103
Client host name : paranoid
Client user name :


Connection closed by foreign host.
=========================================================================

메일을 받을 ID로 보내진 메일을 확인해볼까염!
=========================================================================

From root Fri May 11 23:22:17 2001
Date: Fri, 11 May 2001 23:22:17 +0900
From: root <root@koug.net>
To: root@koug.net
Subject: tcp_wrapper report [in.telnetd]



========================================
접속 거부자 상세정보
========================================

Access Time : 금 5월 11 23:22:17 KST 2001
Access client host address : 211.209.69.103
Access client information : 211.209.69.103
The daemon process name : in.telnetd
Access client host name(or IP) : 211.209.69.103
Access client host name : paranoid
The daemon process id : 12378
Server information : in.telnetd@211.209.69.103
Access client user name : Y0

--------------------------------------------------------
                              Access client finger information
--------------------------------------------------------

=========================================================================

세부적인것은 나름대로 공부하시기 바랍니다.

사용할 대몬프로그램의 이름을 앞에 써주고 형식은 같으니 변형해서 사용하시
면 됩니다.

Network 용어 정리

1) 네트워크 (network)

① 정보기술에서 말하는 네트워크는, 통신선로에 의해 서로 연결되어 있는 일련의 노드 또는 연결점 들을 의미.

② 네트워크는 다른 네트워크와 연결될 수 있고, 서브 네트워크를 포함.

③ 네트워크 형상이나 구성 : 버스형, 성형, 고리형 등.

네트워크의 공간적인 거리에 따라 구분 : LAN, MAN, WAN.

④ 특성

ⅰ) 데이터 전달 기술의 형식에 따라, (예) TCP/IP망, SNA망 등

ⅱ) 음성을 전송하는지 데이터를 전송하는지, 아니면 그 둘다를 전송하는지에 따라,

ⅲ) 누가 그 네트워크를 사용하는지에 따라, (예) 공공망이나 사설망 등

ⅳ) 통상적인 접속방법에 따라, (예) 다이얼업망, 교환망, 전용망, 가상접속망 등

ⅴ) 물리적인 링크의 형식에 따라, (예) 광섬유, 동축케이블, 구리선

⑤ 대형 전화망이나 인터넷과 같은 기간망을 쓰는 네트워크들은 다른 회사와 시설이나 교환망을 공 유함으로써 더 커다란 네트워크를 이룸.

 

2) 호스트 (host)

① 여러 가지 상황에서 사용되는데, 약간씩 다른 의미를 가지고 있다.

ⅰ) 인터넷에서 호스트

- 인터넷을 통해 다른 컴퓨터들과 쌍방향 통신이 가능한 컴퓨터.

호스트는 특정한 호스트번호를 갖는데, 이는 네트워크 번호와 합해져서, 고유의 IP 주소를 이루 게 됨. 호스트란 네트워크의 하나의 노드라고 볼 수도 있음.

ⅱ) IBM이나 기타 다른 메인프레임 컴퓨터 환경

- 하나의 메인프레임 컴퓨터(이런 컴퓨터를 '대형 서버'라 함).

메인프레임은 단말기가 부착되어 있으며, 메인프레임은 이 단말기에게 서비스를 제공하는 호스 트가 됨.

ⅲ) 그 외 다른 상황

- 자신보다 작거나 능력이 떨어지는 장치 또는 프로그램에게 서비스를 제공하는 장치나 프로그램 을 의미.

 

3) 포트 (Port)

• 모뎀과 컴퓨터 사이에 데이터를 주고받을 수 있는 통로, 컴퓨터에서 포트는 크게 두 가지 의미를 지닌다.

① 컴퓨터의 주변장치를 접속하기 위해 사용되는 연결 부분을 의미한다. 대개 소켓이나 플러그 등의 형태로 되어 있다. 정보가 드나드는 출입구로, 주로 프린터를 접속하기 위한 센트로닉스 등의 병렬포트와 기타 주변장치를 접속하기 위한 RS-232C 등의 직렬포트가 있다.

② 프로그래밍에서는 논리적인 접속장소를 뜻한다. 특히 TCP/IP를 사용할 때에는 클라이언트 프로그램이 네트워크 상의 특정 서버 프로그램을 지정하는 방법으로 사용된다. TCP/IP의 상위 프로토콜을 사용하는 응용프로그램 에서는 인터넷번호 할당 허가위원회(IANA)에 의해 미리 지정된 포트번호들을 가지고 있다. 이런 포트번호들은 '잘 알려진 포트들'이라고 불린다. 다른 응용프로그램 프로세스들은 접속할 때마다 포트번호가 새로 부여된다. 포트번호는 0부터 65536까지이며, 0부터 1023까지는 어떤 특권을 가진 서비스에 의해 사용될 수 있도록 예약되어 있다. HTTP서비스를 위해서는 대개 80번 포트가 지정된다.

포트번호는 1) 잘 알려진 포트(Well known ports): 0~1023, 2) 등록된 포트(Registered ports): 1024~49151, 3) 다이너민포트(Dynamic or Private ports): 49152~65535 으로 지정되어 있다.

4) 패킷 (Packet)

• 네트워크를 통해 전송하기 쉽도록 자른 데이터의 전송단위.

본래는 소포를 뜻하는 용어로, 소화물을 뜻하는 패키지(package)와 덩어리를 뜻하는 버킷(bucket)의 합성어이다. 우체국에서는 화물을 적당한 덩어리로 나눠 행선지를 표시하는 꼬리표를 붙이는데, 이러한 방식을 데이터 통신에 접목한 것이다. 즉, 데이터 전송에서 송신측과 수신측에 의하여 하나의 단위로 취급되어 전송되는 집합체를 의미한다. 전자우편이나 HTML·GIF 등 어떤 종류의 파일에도 적용할 수가 있다. 이때 분할된 각각의 패킷에는 별도의 번호가 붙여지고 목적지의 인터넷 주소가 기록되며, 에러 체크 데이터도 포함된다.

파일을 분할해서 전송하지만 수신하는 곳에서는 원래의 파일로 다시 재조립된다. 헤더와 데이터·테일러로 이루어져 있는데, 헤더에는 데이터가 전달될 주소와 순서 등이 기록되고, 테일러에는 에러 정보가 기록된다. 보통 2계층으로 내려가기 전까지 3·4계층의 데이터 단위는 패킷이라고 하고, 1·2 계층의 데이터 단위는 프레임이라고 한다. 일반적으로 128바이트가 표준이지만 32·64·256바이트와 옥텟 등 편의에 따라 크기를 바꿀 수 있다.

내부에 상대방의 주소를 갖고 있기 때문에 신뢰도가 높으며, 에러를 체크하는 등 고품질의 전송을 제공할 수 있는 장점이 있다. 또 통신망을 경제적으로 구성할 수 있고, 전송속도와 코드를 바꿀 수 있으므로 서로 다른 기종을 사용하는 사용자들끼리도 통신이 가능하다. 다양한 부가서비스도 가능하며, 국제적으로 표준화된 프로토콜을 사용하여 인터넷 상에서 데이터를 전송할 때 매우 효율적이다. 패킷형 단말기와 교환기 사이의 인터페이스에 사용되는 권장 프로토콜은 X.25이며, 비표준 단말기와의 인터페이스에는 X.3과 X.28이다.

5) 슬라이딩 윈도 (Sliding window)

• 두 개의 네트워크 호스트간의 패킷의 흐름을 제어하기 위한 방법이다.

TCP와 같이 데이터의 전달을 보증하는 프로토콜에서는 패킷 하나하나가 전달되었음을 확인 신호(acknowledgement, 이하 ACK)를 받아야하며, 만약 패킷이 중도에 잘못되었거나 분실되어 확인받지 못하는 경우, 해당 패킷을 재전송해야하는 필요가 있다. 슬라이딩 윈도는 일단 '윈도(메모리 버퍼의 일정 영역)'에 포함되는 모든 패킷을 전송하고, 그 패킷들의 전달이 확인되는대로 이 윈도를 옆으로 옮김(slide)으로서 그 다음 패킷들을 전송하는 방식이다.

슬라이딩 윈도는 아직 확인을 받지 않고도 여러 패킷을 보내는 것을 가능케 하기 때문에, 매번 전송한 패킷에 대해 확인을 받아야만 그 다음 패킷을 전송하는 방법(stop-and-wait)을 사용하는 것보다 훨씬 네트워크를 효율적으로 사용할 수 있다.

2009년 9월 3일 목요일

5th Study : SQL & XML

 

 

참고서적 : XML 원리와 응용

  저자 : 홍성용

출판사 : 한빛미디어

 

Review

 

 

이 책은 비추한다 -_-; 내가 아무리 이해력이 떨어진다 해도 책을 읽고 이해가 안되기는 처음이다...

보통 대학에서 이책으로 수업을 한다 듣고, 한빛도서라 이 책으로 스터디를 하였는데 이건.. 머.. 정말

한빛도서에 실망을 하게한 책이다. XML을 처음 공부 하려는 분들께서는 이 책은 쳐다도 보지 말고

다른 XML책을 찾아보길 권한다.

4th Study : MFC (Microsoft Foundation Class)

 

 

참고서적 : 윈도우 프로그래머를 위한 MFC 구조와 원리

  저자 : 서진택

출판사 : 한빛미디어

 

Review

 

MFC를 처음 접하는 사람에게는 권하지 않는다. 어느정도 MFC를 알고 사용해본 사람에게는 꼭 권하는

책이다. MFC내부에 대한 자세한 설명과 MFC에서 다루는 패턴들이 잘 나와있고 책의 말 그대로

구조와 원리를 잘 다룬 책이다. 나은 약간의 MFC를 알고 봤는데 그동안 등안시 해왔더 C++ 책을

꺼내들고 이책과 같이 봤다 -_-;; MFC는 C++의 상속과 객체지향적이기 때문에 어느정도 C++ 을

이해하고 보는것이 나을지도 모른다. 이 책을 볼때 "GOF의 디자인패턴" 책과 "열혈강의C++"책을 같이

병행해서 봤다. 이 책을 보고 구조와 원리를 알고 프로그래밍을 하면 많은 도움이 될것이다.

3rd Study : API (application programming interface)

 

 

참고서적 : 윈도우즈 API 정복 1, 2

  저자 : 김상형

출판사 : 한빛미디어

 

Review

 

이 책은 두말 할것 없다. 많이 알려져 있고 IT 업계에서 이 책을 안본 사람은 거의 없을 정도다.

1권과 2권으로 나누어져 있고 초급부터 중급까지의 API내용은 1권에 수록되어 있고 고급기법과

프로그래밍에 중요한 메모리, Thread 등등 2권에 자세하고 알기 쉽게 쓰여있다.

처음 API를 접하는 분은 일단 1권을 읽고 어느정도 이해되고 좀더 프로그래밍의 시스템쪽을 알고

싶은 분들은 2권을 사서 읽으시길 권한다.

이책의 저자가 운영하는 사이트 : http://www.winapi.co.kr/ 사이트에 가봐도 도움이 많이 될것이다.

2nd Study : Unix Systems Programming

 

 

참고서적 : Unix Systems Programming

  저자 : Kay A. Robbins (권상호 역)

출판사 : 정보문화사

 

Review

 

솔직히 이 책은.. 별로 인것 같다.. 원본은 좋을꺼 같은데 번역이 좀 말이 꼬여있고 처음 접하는 사람들

에게는 많은 어려움을 준다.. 물론 나만 그럴수 있지만.. 스터디 하는 내내 책 번역에 대한 않좋은 얘기만

주구장창 한것 같다 -_-;; 이 책이 추천 도서인것은 실무자나 어느정도 리눅스/유닉스 에 대한 Level이

높은 사람이 봤을 경우인것 같다. 처음 접하거나 아직 Level이 부족한 사람이 보기에는 더 헷갈릴뿐이다.

1st Study : Linux Programming

 

 

참고서적 : Beginning Linux Programming 4th Edition

  저자 : Neil Matthew (류광 역)

출판사 : 아이티씨(ITC)

 

Review

 

내가 제일 처음 리눅스를 접하게 된 책이다. 그동안 윈도우에 종속되어 있던 나를 리눅스의 새로운

세계로 이끌었다.. 리눅스란게 어떤것인지도 모른체 이름만 들어 왔는데.. 비트교육센터 전문가반

스터디와 강의를 통하여 리눅스를 어느정도 쓸 경지까지 이르렀다.. 이책이 많은 도움이 되었다.

첫 스터디인 만큼.. 이 두꺼운 책을 어떻게 5일 안에 스터디로 끝낼수 있을까.. 하는 의문과 설마..

하는 생각이 들었는데.. 우린 결국 5일 안에 끝내버렸다 -_-;; 이것이 비트의 힘인것 같다

처음 리눅스를 접해보는 분들에게.. 과감히 추천하는 책이다. 물론 나도 많은 도움을 받았다..

client/sever 교육 내용

▣ Client/Server 전문가 과정 교육내용

 
1 단계 : 프로그래밍 기반 기술 확립 단계
UNIX System
기본적인 UNIX 사용법 및 Make,Rcs, Gdb Utility등 UNIX에서 C언어 프로그램의 컴파일 및 버전 관리, 디버깅을 위한 Utility 및 기타 Utility를 학습 

Advanced System Programming

UNIX System의 파일 시스템 세부 개념 및 프로그램 세부 개념을 다루는 프로그래밍 기법 실습, Signal handling, Terminal I/O (Curses.H), Interprocess Communication(Pipe, fifo, System V IPC) 등

Software Design Methodology

효율적인 소프트웨어 개발을 위한 자료구조 이론 및 소프트웨어 설계 방법, 고급 코딩 스타일 가이드에 대해 학습
2 단계 : 고급 Programming 기술 확보 단계

Win32 API

Windows 운영체제의 기본적인 동작원리,C 언어를 이용하여 Windows에서. 동작하는 일반 프로그램을 제작하는 방법

Windows CE Programming

모바일 응용 디바이스를 위한 기본적인 프로그램의 기초 능력 배양, 문법과 활용 방법 익히기, Windows 프로그래밍, 네트워크 프로그래밍 학습

MFC Windows Programming

Visual C++ Developer Studio를 활용한 Windows 프로그램 작성 방법, MFC 클래스, Windows Message Map, Toolbar, User-Defined Message, View-Document Structure 및 Serialize 등의 기법

ActiveX/COM

COM 기반으로 현재의 인터넷 환경에 적합하게 설계된 ActiveX 기술에 대해 이해, Visual C++을 이용하여 Automation Server, ActiveX Control 등을 작성하는 방법
3 단계 : Network 기반 기술 확보 단계
Network Programming
네트워크 환경에서의 기본 구조 설계 방법, 소켓을 사용한 네트워크 프로그래밍

Network and System Security

RSA, DES, IDEA, ECC, MD4, MD5, SHA-1 등의 암호와 알고리즘 습득, 인증, 전자서명, 전자상거래, 방화벽 등의 보안 및 관련 프로그램 개발 기법
4 단계 : 데이터베이스 기반 기술 확보 및 네트워크 연동

XML & SQL Server

RDBMS의 이론 및 SQL 언어를 습득하고, XML의 개요와SQL 서버를 이용한 XML 처리 기법을 공부하고, 웹 서비스 등 최신 XML 응용분야 학습

Advanced Database

Oracle의 기본적인 사용법 및 관리의 기초, Visual Basic을 이용한 응용 프로그램 개발, IIS와 ASP를 이용한 웹과 데이터베이스 연동

Mobile Data Management

유비쿼터스/모바일 환경에서의 시스템 개발을 위한 여러가지 기술 이슈와 해결책에 대해 학습하며, 중요성이 증대되고 있는 P2P 시스템에 대해 학습
Project Design and Management
프로젝트 설계 및 진행 방법론, 시스템 설계 및 Software Engineering
5 단계 : 비트 프로젝트 (3개월)
- 이론 과정에서 습득한 기술을 활용하여 새로운 솔루션을 산출해보는 단계이다.
한 프로젝트 당 인원은 6명 내외로 구성되며, 아이템 선정, 핵심 기술 습득, 소프트웨어 개발 방법론에 입각한 단계별 작업, 프로젝트 완성, 최종 보고서 제출의 단계로 각 팀장의 지취하에 모든 조원들이 상호 협력하여 진행