cmm

CMM2 - 매뉴얼이 있는경우
CMM3 - 계획에 따라 하는경우
CMM4 - 예측하고 계획에 따라 하는 경우
CMM5 - 예측하는 별도의 조직으로 관리하는 경우



SW품질평가문서

품질관리를 위해서 항상 머리속에 담아두어야 하는 항목. 제품 품질특성(ISO9126)

  

               

신뢰성 (Reliability)

명시된    기간  동안  일정  수준    성능  

(무결,  에러피능,  영오류  화능,    자료  복구)

사용성

(Usability)

사용자의  장에서  용이  편리한  정도

(이해  쉬운  ,    쉬운  정도,  영하기  쉬운  정도)

이식성

(Portability)

  시스템  또는  랫폼에  손쉽게      있는       정도

(독립,  공통,  설치)

기능성 (Functionality)

요구사  맞는    기능을  발휘    정도 (완전,  정확,  보안)

유지보

(Maintainability)

개발  완료된  품을      보완    유지의  리한  정도

(분석,  변경이성,  확장)

 

효율성 (Efficiency)

특정한  에서    수행할      반응간과  자원의  

적정하게  용하는  웨어의  능력 (실행율성,  원효,  시험용)



프로세스 품질특성(ISO 12207)

  

               

 

 

일관성 (Consistency)

프로젝  진행이  이고  계획으로  되는  정도

표준활준수(Standardization) :  화된  법론  적용    방법론

상의  진행차를  하는  정도

도구활(Instrumentation) :  프로세  수행을    자동화된  

  활용  정도

 

 

 

생산성 (Productivity)

프로세  계획된  간과  자원의  범위    물을  생산내는

정도

생산량(Yield)  :  프로세스  생산하  계획  있는  산출  생산

여부

자원사(Resource Behavior) :  산출물의    소요된    정도

시간엄(Punctuality) :  주어진  환경  에서    시간  내에

프로세  수행  정도

 

 

품질보증의 정의

-       소프트어의   품질표를   달성   하여   개발자와   주자가   하는   일련의   적이고 체계적인    활동

-       사용자의     구사      만족하      생명         과정의     출물에      대해    (Validation), 검증(Verification),  가하  활동

 

 


보증  

 

사용자 삽입 이미지


'삽질로그' 카테고리의 다른 글

프리젠테이션에 도움이 되는 자료들  (1) 2007.12.27
현재폴더에서 도스창 실행  (0) 2007.10.22
기능점수(Function Point)산정 및 활용 방안  (0) 2007.08.22
80x15 배너이미지 만들기  (0) 2007.08.02
RSS 관리  (0) 2007.08.02

기능점수(Function Point)산정 및 활용 방안

발주지원센터 | 송기호(khsong@software.or.kr)

 

소프트웨어 프로젝트들은 환경,기술력, 자본, 개발규모 다양한 환경적인 요소들이 동반되기 때문에 소프트웨어 개발비용을 예측하는 것은 어려운 문제

 

최근 수년 동안 정보시스템 구축과 운영 사업의 증가로 국가예산에서 정보화예산이 차지하는 비중이 커짐에 따라 정보화 예산 관리의 과학화와 효율화를 위해 사업의 소요 비용을 초기에 보다 정확하고, 정밀하게 예측하는 것이 중요한 문제로 대두

이러한 문제점을 해결하기 위하여 기존의 본수(本數) 방식이나 스텝(step) 방식의 모호성과 부정확성을 보완하기 위하여 개발자 관점이 아닌 사용자 관점에서 사용기술과는 무관하게 소프트웨어 개발규모를 측정할 있는 국제 표준 기법인 기능점수(Function Point)방식을 기본 산정 방식으로 하는 대가기준에 대한 연구를 수행

 

소프트웨어개발비 산정의 현황

2004 2 소프트웨어규모산정 방식을 본수 방식에서 기능점수 방식 중심으로전환

기능점수방식으로 전환됨에 따라 합리적으로 규모를 수량화 있게 되었고, 이를 기반으로 사업초기 단계에서 개발비용을 예측할 수있는 근거가 마련

기획예산처에서는 좀더 근거 있고 합리적인 예산 반영을 위하여 소프트웨어개발비와 관련하여 예산 요구 자료를 기능점수방식으로 제출하도록 권고

하지만, 2004 소프트웨어개발비 산정방식을 본수에 기능점수 방식으로 전환 대다수의 기관에서 기능점수의 개념에 대한 이해 부족과 적용의 어려움으로 이를 활용 하지못하고 있는 실정

 

1. 소프트웨어사업대가기준 소개

정보통신부 고시로 규정하고 있는 소프트웨어사업 대가의 기준은 국가기관 등이 소프트웨어 개발, 데이터베이스 구축, 정보전략계획 수립 등의 정보화사업을 추진함에 있어 정보통신기술의 발전 사회적 여건변화에 유연하게 대처하고, 소프트웨어 산업과의 선순환적 구조를 가질 있도록 소프트웨어사업에 대한 예산수립이나 발주시 적정비용 등 을 산정하기 위한 기준을 제공하는 것을 목적

[ 1. 소프트웨어사업대가기준 구성 ]

구분

비용산정(방식

비용구성

소프트웨어개발비

기능점수

개발원가,직접경비,이윤

코드라인수

직접인건비,제경비,기술료,직접경비

투입인력과기간

유지보수시점에서 소프트웨어개발비의 10~15%

유지보수및재개발비

유지보수

 

재개발

 

시스템운용환경구축비

시스템운용환경설계비

공사비요율 기본설계비,실시설계비

시스템운용환경조성비

공사비

DB구축비

원시자료유형별데이터량

인건비,제경비,이윤,직접경비

ISP수립비

컨설팅지수

공수×(컨설팅지수)0.95 +10,000,000

 

소프트웨어개발비

소프트웨어개발비는 국제 표준인 ISO 12207 소프트웨어 개발 기본공정을 적용한 소프트웨어 개발의 단계별 공정을 수행하는데 필요한 개발원가와 직접경비 그리고 이윤의 합으로 구성

첫째는 소프트웨어개발규모에 의한 산정방식에 따라 소프트웨어개발비를 산정하는 방식이 있고, 번째는 Mam/Month방식으로 이미 우리에게 친숙한 투입인력과 기간에의한 산정방식으로 구분

또한 소프트웨어개발규모에 의한 산정방식은 기능점수 방식과 코드라인수(Line of Code) 방식으로 구분

 

[ 2. 소프트웨어개발원가 산정 방법 ]

소프트웨어개발원가 산정방법

 

산정(방법

개발규모에 의한 산정방법

기능점수

기능점수×기능점수단가×보정계수

코드라인수

코드라인수×코드라인수단가×보정계수

투입인력수와 기간에 의한 산정방법

 

투입인력수×투입기간×기술자등급별단가

소프트웨어 개발규모에 의한 산정 방식인 기능점수 방식과 코드라인수 방식은 개발하려는 소프트웨어의 개발 크기(기능점수, 코드라인수) 산정하고 여기에 단가(기능점수당 단가, 코드라인당 단가) 보정요소를 곱하여 산정하는 방식

 

2. 기능점수(Function Point) 산정 방법

기능점수 방식은 사용자 관점에서 소프트웨어 규모를 산정하는 방법으로, 주로 논리적 설계를 기초로 하여 소프트웨어가 사용자에게 제공하는 기능의 수를 수치로 정량화하고 소프트웨어의 규모를 산정하는 방식

기능점수 방식은 먼저 개발하려는 소프트웨어의 범위 경계를 설정하고 데이터기능(Data Function) 트랜잭션기능(Transaction Function) 도출한 복잡도 가중치를 적용하여 기능점수를 산출하는 방식

, 데이터기능점수와 트랜잭션기능점수의 합계를 [그림 1]에서와 같이 구한다음, 시스템의 특성에 따라 값을 보정함으로써 최종적인 소프트웨어의 기능점수를 계산하는 방식

데이터기능점수와 트랜잭션기능점수의 합을 보정전 기능점수라고 하고, 보정전 기능점수에 보정요소를 곱한 것을 보정기능점수라고도함

 

[그림 1. 데이터 기능과 트랜잭션 기능 기능점수 산정]

데이터기능

 

데이터기능점수는 내부 외부 자료 요구사항을 만족시키기 위해 사용자에게 제공되는 기능

내부논리파일(ILF: Internal Logical File) 외부연계파일(EIF: External Interface File)로 구성

내부논리파일은 응용시스템에서 유지되고 사용자가 식별 가능한 논리적으로 연관된 자료 제어정보(control information) 그룹

다시 말해서 내부논리파일의 기본적인 용도는 개발하려는 응용시스템의 내에서 단위프로세스(elementary process)에서 유지되는 데이터를 저장

외부연계파일은 개발하려는 응용시스템에서 참조되지만 다른 응용시스템에서 유지되며 사용자가 식별 가능한 논리적으로 연관된 자료 제어정보의 그룹

, 외부연계파일의 용도는 개발하려는 해당 응용시스템내의 단위 프로세스에서 참조되는 데이터를 저장

외부연계파일은 반드시 다른 응용시스템의 내부논리파일임.

데이터기능의 기능점수는 내부논리파일과 외부연계파일 모두 데이터요소유형(DET:Data Element Type)3) 레코드요소유형(RET:Record Element Type)4) 개수에 따라 [ 3] 같이 복잡도를 결정하고, 복잡도에 따라 [ 4] 같이 가중치를 정하여 기능별 기능수에 가중치를 곱하여 산정

 

[ 3. ILF/EIF 복잡도 ]

레코드요소유형(RET)

개수 

데이터요소유형(DET)의 개수

1~19

20~50

51이상

1

낮음

낮음

보통

2~5

낮음

보통

높음

6이상

보통

높음

낮음

[ 4. ILF/EIF 가중치 ]

복잡도

가중치

ILF

EIF

낮음

7

5

낮음

10

7

낮음

15

10

ㅁ데이터요소유형(DET): 사용자가 식별가능하고 반복적인 유일한 필드

ㅁ레코드요소유형(RET): ILF EIF안에서 사용자가 식별 가능한 데이터요소의 서브그룹

 

트랜잭션기능

데이터를 처리하기 위해 사용자에게 제공되는 기능

외부입력(EI: External Input), 외부출력(EO: External Output), 외부조회(External inQuiry) 가지 기능

외부입력은 응용시스템 외부에서 들어오는 데이터 제어정보를 처리하는 단위프로세스. 외부입력은 주로 내부논리파일을 유지하거나 변경하는데 사용

외부출력은 응용시스템 밖으로 데이터나 제어정보를 보내는 단위프로세스. 외부출력은 주로 데이터 제어정보의 조회 외에 처리 로직을 통해서 사용자에게 정보를 제공하는데 사용

처리 로직은 수학적 공식 계산식을 포함하거나 유도되는 데이터를 생성해야 함

외부조회는 응용시스템 외부에 데이터나 제어정보를 보내는 단위프로세스.

외부조회는 주로 데이터나 제어정보 조회를 통해 사용자에게 정보를 제공

트랜잭션기능의 기능점수는 외부입력, 외부출력, 외부조회 모두 참조파일유형(FTR: File Type Reference) 데이터요소유형(DET:Data Element Type) 개수에 따라 [ 5],[ 6] 같이 복잡도를 결정하고, 복잡도에 따라 [ 7] 같이 가중치를 정하여 기능별 기능수에 가중치를 곱하여 산정

 

[ 5. EI 복잡도 ]

참조파일

유형(FTR)

개수 

데이터요소유형(DET)의 개수

1~4

5~15

16이상

0~1

낮음

낮음

보통

2

낮음

보통

높음

3이상

보통

높음

낮음

[ 6. EO/EQ 복잡도 ]

레코드요소

유형(RET)

개수

데이터요소유형(DET)의 개수

1~5

6~19

20이상

0~1

낮음

낮음

보통

2~3

낮음

보통

높음

4이상

보통

높음

낮음

[ 7. EI/EO/EQ 가중치 ]

복잡도

가중치

EI/EQ

EO

낮음

3

4

낮음

4

5

낮음

6

7

ㅁ참조파일유형(FTR) : 트랜잭션 기능에 의해 읽히거나 유지되는 내부논리파일 또는 트랜잭션기능에 의해 읽히는 외부연계파일

 

3. 소프트웨어 개발비 산정을 위한 간이기능점수 모형

예산수립 시나 사업제안단계에서는 기능 수준만 도출해 내고 분석/설계단계에서 기능의 속성까지 상세하게 도출되므로, 속성의 개수(DET,RET, FTR 개수) 고려하여 기능의 복잡도와 가중치를 도출하는 것은 사업초기단계에 현실적으로 무리

따라서 소프트웨어사업대가기준에서는 사업초기 기능의 복잡도와 가중치를 결정하기 어려운 현실을 반영하여 [ 8] 평균복잡도가중치를 제시하여 보다 기능점수 방식을 사용하기 편리하게 유도

평균복잡도가중치는 기능이 도출되고 복잡도를 결정하는 단계를 생략하고, 제시된 평균복잡도 가중치를 바로 기능의 수에 곱하게 된다. 평균복잡도가중치란 과거 수행된 소프트웨어의 기능점수 산정결과를 통계분석하여 내부논리파일,외부연계파일, 외부입력, 외부출력, 외부조회에 적용된 복잡도에 대해 계산한 가중치들의 평균값

평균복잡도가중치의 적용은 예산수립단계 사업제안단계, 사업초기에 기능점수 산정에 필요한 자료가 충분하지 않은 경우 또는 정상적인 기능점수 산정 결과에 대한 검증이 필요한 경우 사용

평균복잡도 가중치를 사용한 기능점수 방식을 간이기능점수 방법이라함

[ 8. 2007년도 평균복잡도가중치 ]

유형

내부논리파일

외부연계파일

외부입력

외부출력

외부조회

가중치

7.4

5.5

3.9

5.1

3.8

따라서, 소프트웨어사업대가기준에서 제시하고 있는 기능점수 방식은 복잡도 적용방법에 따라 크게 국제기능점수사용자그룹에서 정의하는 정규기능점수법과 소프트웨어사업 대가기준에서 제시하는 간이기능점수법 가지로 구분

[ 그림 2. 정규기능점수법과 간이기능점수법 ]

4. 기능점수 활용 방안

기능점수 방식의 기본 정신은 사업초기에 개발하려는 소프트웨어의 범위와 경계를 식별하고 사용자관점에서 기능들을 도출하여 요구사항을 명확히 하고 이를 수치로서 정량화하는

구현하려는 소프트웨어 기능들의 목록과 이에 점수를 부여하여 소프트웨어의 개발규모를 정량화 한다는 것은 사업관리 측면에서는 범위관리, 일정관리, 형상관리에서 기능점수 목록을 활용하여 프로젝트 편성 변경통제를 강화

개발공정에서는 기존 산출물의 추가 보완을 통하여 기능점수를 상세 모형으로 유지관리가 가능

시험단계와 검수단계에서는 기능점수 목록이 기준선(Baseline)으로서 역할을 하며 프로젝트의 위험을 감소시키는 역할

가장 대표적으로 기능점수 모형이 활용되는 것은 요구사항관리(Requirement Management) 크게 향상

기능점수는 예산수립이나 사업의 제안 단계에서 요구사항을 정리 수 있으며, 이를 정량화 있기 때문에, 근거 있는 예산 사업비를 산정에 도움

만들어진 기능점수 목록은 소프트웨어개발사업의 관리에 중요한 수단으로 활용


'삽질로그' 카테고리의 다른 글

현재폴더에서 도스창 실행  (0) 2007.10.22
SW품질평가-ISO9126  (2) 2007.10.18
80x15 배너이미지 만들기  (0) 2007.08.02
RSS 관리  (0) 2007.08.02
자바에 사용되는 용어들  (0) 2007.07.26
사용자 삽입 이미지

80 x 15 사이즈의 배너(위의 배너이미지들 참고)를 제작해주는 곳이 있다.
http://www.lucazappa.com/brilliantMaker/buttonImage.php

무료로 자신의 배너를 쉽게 제작해보자.
위의 주소에 접속한뒤 왼쪽과 오른쪽의 설정을 통해서 간단한 배너를 생성할수 있다.
사용자 삽입 이미지

이번에 제작해본 배너이미지
사용자 삽입 이미지


'삽질로그' 카테고리의 다른 글

SW품질평가-ISO9126  (2) 2007.10.18
기능점수(Function Point)산정 및 활용 방안  (0) 2007.08.22
RSS 관리  (0) 2007.08.02
자바에 사용되는 용어들  (0) 2007.07.26
자바에 사용되는 용어들  (0) 2007.07.26

RSS 리더 프로그램

자신이 주로 방문하는 블로그 사이트는 RSS 리더 프로그램으로 관리 하는 것이 좋다.

아래의 RSS 리더 프로그램 중 마음에 드는것을 고르자.


구독만 해두고 읽지않는 경우가 많으므로, 하루중 일정시간을 RSS 피드 읽는 시간으로 할당해 두는 것이 좋다.

'삽질로그' 카테고리의 다른 글

기능점수(Function Point)산정 및 활용 방안  (0) 2007.08.22
80x15 배너이미지 만들기  (0) 2007.08.02
자바에 사용되는 용어들  (0) 2007.07.26
자바에 사용되는 용어들  (0) 2007.07.26
FCKeditor java 버전 설치  (0) 2007.07.26
클래스?
클래스란 객체의 특성을 정의하는 원형이다. 특정한 객체의 자료 구조와 접근 가능한 루틴의 정보를 표현하는 클래스를 개별 ... 하나의 클래스

란 하나의 패키지로 선언된 이름공간을 의미한다. 객체지향이란 그렇게 분리된 이름공간을 활용하는 것이다

서블릿이란?
웹 응용프로그램을 만드는 자바 기술로서 실행 결과값은 html 로 작성된다

보통 서블릿 서버, 서블릿 컨테이너, JSP 컨테이너, 웹서버 라는 등등의 말을 많이 사용합니다. 그렇지만 실제로 각각에 대한 정확한 의미를 알고 있는 경우는 드문데 각각의 의미를 살펴보면 다음과 같습니다.

서블릿서버 : 현재는 거의 사용되지 않는 말입니다. 공식적으로 사용되는 단어라기 보다는 우리나라에서 관습적으로 사용이 되고 있는 의미로 서블릿을 돌릴 수 있는 서버라는 의미입니다. 실제로 서블릿 컨테이너라는 말을 사용하는 것이 좋습니다. (초기에는 서블릿을 돌리기 위해서 아파치 등에 모듈로 연동을 해서 사용을 했기 때문에 이런 말이 생겨난 듯 합니다.)

서블릿 컨테이너 : 서블릿을 동작 시킬수 있는 환경을 제공하는 서버 프로그램입니다. 즉 HTTP 요청을 받아서 해당 서블릿을 동작을 시키고 그 결과를 사용자의 브라우저로 전달을 해줄 수 있는 기능을 제공합니다. 보통 컨테이너라고 하는 이유는 서블릿 프레임워크 안에서 동작을 하고 서블릿이 동작할 수 있는 환경을 제공해주며, 기타 필요한 작업등을 제공해주기 때문에 그렇게 얘기를 합니다. 즉 HTTP 파라미터 파싱 및 결과 전달 컨트롤, Forwarding, Redirecting 등의 기능을 컨테이너에서 제공을 해줍니다. 이때 서블릿 개발자는 자신이 만든 서블릿을 이 컨테이너에 등록을 하게 되고, 실제 동작을 컨테이너가 알아서 하게 되기 때문에 사용되는 언어입니다.

JSP 컨테이너 / 엔진: 실제로 JSP 컨테이너의 의미는 서블릿 컨테이너의 개념과 동일합니다. 그렇지만 조금 자세히 보면 실제로 JSP 컨테이너라는 것은 별도로 존재하지 않습니다. 실제로는 서블릿 컨테이너가 JSP 컨테이너가 됩니다. 그 이유는 JSP는 PHP/ASP와 같이 완전히 스크립트 형식으로 동작하지 않고 서블릿으로 변환이 된 이후에 실행되기 때문입니다. 그리고 JSP를 서블릿으로 컴파일을 해주는 것이 바로 JSP 엔진입니다. 다른 프로그램은 잘 모르겠지만 톰캣의 경우에는 JSP엔진이 바로 JSPServlet 입니다. 즉 JSP를 컴파일하고 동작을 시켜주는 것을 특정 서블릿이 담당하고 있습니다. 여기서 보면 JSP 자체가 완전한 서블릿으로 컴파일 되지 않는 다는 것을 알 수 있습니다. 즉 JSPservlet이 구동 할 수 있는 형태의 서블릿으로 바뀌게 됩니다. 그런 의미에서 보면 별도의 JSP 컨테이너가 있다고 할 수도 있을 것 같습니다.

서블릿특징
html의 정적인 문제점을 해결할 수 있는 동적인 특징을 갖는다.
자바언어로 작성되어 자바의 일반적인 특징을 모두 갖는다.
객체지향적이다.
다른 자바기술과 연동 가능하다. ( JDBC , EJB 등 )
container 라는 특별한 환경에서 실행된다.
Container 종류에 상관없이 작동된다. ( 플랫폼 독립적 )
프로세스 방식이 아닌 스레드 방식으로 실행된다.
Server Side에 적합한 자바기술이다.
보안모델 적용이 수월하다.
저장 파일의 확장자는 java 이고 컴파일된 바이트코드가 container 에서 실행된다.
웹 응용프로그램이기 때문에 브라우저를 통해서 요청한다.



Beans란?

Beans는 일종의 특정한 일을 독립적으로 수행하는 콤포넌트이다.
Beans는 크게 JavaBeans와 EJB(Enterprise JavaBeans)가 있는데, 두 가지는 콤포넌트라는 개념 외에는 많이 다르다.
JSP 문서에서는 JavaBeans와 EJB 모두 사용할 수 있다.
-JavaBeans 자체에 대해서 더 알고 싶은 분은 썬의 JavaBeans 스펙을 참고하기 바란다.

하나의 bean은 속성을 갖는 개체이다. 또한, bean은 그 속성의 값을 설정하고 얻는 방법도 갖고 있다. 뿐만 아니라, 속성을 제어하고 지정한 여러가지 일을 수행하는 방법들도 갖추고 있다. Bean은 한 프로그램에 전속하지 않는 독립적인 객체로서 다른 프로그램에서도 사용할 수 있다.

Bean의 정의는 클래스로서 표현되며 개별 bean은 정의된 클래스의 인스턴스로서 구별된다. 어떤 것도 bean으로 추상화될 수 있다.

왜 Beans를 사용하는가?

크게 세 가지 이유가 있다.

1)form을 통한 데이터 프로세싱이 매우 용이하다는 장점을 들 수 있다.
동적인 웹 페이지 생산의 중요한 요소는 클라이언트로부터 데이터를 입력받아 이를 처리하는 것인데, http 프로토콜을 사용하는 HTML은 GET 또는 POST 방법을 통해 이를 처리한다. JSP 문서에서는 간단하게 request.getParameter()를 통해 GET 또는 POST로 넘어오는 데이타를 전달받을 수 있지만 프로그래밍 코드가 지저분해지기 쉽다. 또한, request라는 JSP Engine(JSP 문서를 Servlet 코드로 변환시키는 일을 한다)이 내부적으로 사용하는 인스턴스를 참조하는 것도 어딘지 석연치 않다. 이후에 살펴보겠지만 beans를 사용하면 번잡한 form 제어를 우아하게 할 수 있다.

2)클라이언트의 데이터를 여러가지 범위에서 지속적으로 유지할 수 있다는 이유가 있다.
간단한 예를 들어보자. 쇼핑몰을 운영하는 사이트는 장바구니 개념이 구현되어야 한다. 소비자가 물건을 사이트에서 살피고 이를 장바구니에 담으면 이 정보는 소비자가 구입을 모두 끝마칠 때까지 유효해야 한다. 이런 장바구니를 구현하기 위해서는 다음의 세 가지 요건이 모두 잘 해결되어야 한다.

3)Beans를 사용하는 가장 중요한 이유는 컴포넌트 기반 개발을 하기 위한 것이다.
Beans를 잘 사용하면 보여주기와 구현하기를 분리하여 비즈니스 로직을 보다 잘 설계할 수 있다.


EJB
EJB는 스펙이다. 그것의 가장 토대가 되는 부분은 Javasoft에 의해 구현되어있으며, 이것을 바탕으로 EJB에 관심을 가진 여러 벤더들이 스펙의 나머지 부분을 구현하였고, 여기에 나름대로의 독특한 기술들을 첨가하여 어플리케이션 서버라는 이름으로 시장에 출시하였다 (물론, 어플리케이션 서버가 EJB 제품군만 있는 것은 아니다.). 그 종류는 세계적으로 40여가지에 이르며, 국내에서는 약 다섯 가지의 제품이 도입되어 어플리케이션 서버시장을 놓고 각축을 벌이고 있다.
EJB는 분산객체 기술에 기반을 둔 컴포넌트 모델이다. 따라서 EJB를 사용하기에 앞서 분산객체 기술에 대해 이해해야한다.
분산 객체 기술은 특정 컴퓨터에서 동작중인 객체를 가깝게는 같은 컴퓨터 내의 다른 프로세스로부터 멀게는 인터넷으로 연결된 원격지 컴퓨터들까지 일관된 방식으로 접근하여 이용할 수 있게 만드는 기술로써,  자바RMI나 CORBA, 그리고 MS 의 DCOM등이있으며, 이러한 분산객체 시스템은 3계층 아키텍처의 근간이된다.


EJB 서버(Server) - 컨테이너(Container) – 빈(Bean) 아키텍쳐
컨테이너는 각 유형의 빈을 위한 EJB객체들과 EJB홈들을 관리한다. 그리고 이것들이 빈 자원들을 관리하고 트랜잭션, 보안, 동시성 제어 및 네이밍 등의 주요 서비스를 적용받을 수있도록 도와준다. 빈은 실제로 우리가 접근하고자 하는 객체이다.
서버-컨테이너-빈의 순서는 상위로부터 하위로 내려가며 포함하는것-포함되는것의 순서로 배열한것인데, 상위는 하위에 대해 라이프 사이클을 관리하고, 동작환경을 제공한다.
빈과 컨테이너 사이에는 분명한 역할의 구분이 있지만, 사실 컨테이너와 서버 사이의 규약은 EJB 스펙에서 정의되지 않았다. EJB스펙에는 빈과 컨테이너 간의 규약에 대해서만 정의하고있는데, 사실상 서버 프로세스가 없이는 EJB는 구동되지 않는다. 이것은 프로그래밍을 약간만 해 본 독자라면 누구나 유추할 수있는 당연한 사실임에도 불구하고, 컨테이너 와 서버간의 규약을 명시하지 않은 것은 EJB컨테이너와 서버간의 역할경계를 불분명하게 만드는 원인이 된다. 이로인해 각 벤더들은 나름대로의 기술을 적용하여 서버와 컨테이너를 분리하였고, 사실상 서로 다른 벤더가 내놓은 EJB서버들과 그들의 컨테이너들은 호환이 거의 불가능한 특성을 갖게되었다. 도미노 효과처럼, 뒤에 나올 컨테이너 관리 빈은 컨테이너 종속적이라는 특성으로 인해, 다른 벤더의 컨테이너에 끼워넣기가 또한 거의 불가능하다.
실제의 개발에 있어서 서버와 컨테이너를 명확하게 구분해야 할 필요는 없다. EJB적인 모든 특징과 기능들은 컨테이너가 하고, 컨테이너를 담기위한 환경 및 여타의 미들웨어적 특성들은 EJB서버가 담당한다라고만 보면 일단은 충분하다. 보다 자세한 사항은 자신이 쓰고자 하는 제품의 벤더가 제공하는 매뉴얼을 참조해야한다.


엔터티 빈(Entity Bean)  - 세션빈(Session Bean) 아키텍쳐
여러분이 프로그래머라면 프로그램이 데이터와 로직으로 구성된다는 것을 알 것이다. 데이터는 영속적인 데이터와 일시적인 데이터로 나뉘어진다. 영속적이라는 것은 파일이나 데이터베이스등의 영구저장매체에 저장되고, 프로그램이 종료된 후에도 다시 로드하여 쓸 수있는 종류의 데이터이다. 반대로 일시적이라는 것은 프로그램 수행중에 변수에 저장되었다가 프로그램이 종료하고, 메모리상의 기억장소가 해제되는 순간에 사라지는 데이터이다. 이러한 일시적인 데이터들은 주로 로직의 진행에 필요한 것으로 로직의 일부로 보는 것이 더욱 타당하다. 이후 데이터라 하면 데이터베이스에 보관되는 영속적인 데이터를 칭하는것으로 이해해주기 바란다.

로직은 데이터의 조작과 처리를 말하며, 업무에 종속적인 로직과 독립적인 로직으로 나뉘어진다. 이러한 업무독립적인 로직들은 라이브러리화되어 대부분의 프로그램이 공유할 수있다. 그러나, 업무에 종속적인 로직은 일반적으로 그렇지못하다. 증권사에서 개발한 증권거래용 프로그램의 증권거래 라이브러리들을 물류회사의 물류관리업무나 일반기업의 인사관리에서 사용할 수는 없다.  이러한 업무종속적인 로직을 일반적으로 비즈니스 로직이라 칭한다. 객체지향 프로그래밍에서는 데이터를 가진 객체는 데이터를 외부와 교환하기위해 데이터 출납용 메소드를 함께 갖는 것이 권장된다. 이러한 데이터 출납용 메소드들은 업무의 흐름에 독립적인 로직을 갖는것으로, 객체지향 프로그래밍에서는 데이터의 일부로 보는 것이 타당하다.

엔터프라이즈 자바 빈의 종류는 두 가지가 있는데, 이는 엔터티 빈과 세션 빈이다.
이 중, 데이터베이스와 맵핑된 영속적인 데이터를 보관하고, 데이터베이스에 직접 접근하여 데이터를 출납하는 일은 엔터티빈이 맡는다.
세션빈은 비즈니스 로직을 포함한다. 이 구조는 EJB스펙에 지정된 것으로 EJB의 가장 핵심적인 프레임웍이다. 이것은 데이터와 비즈니스 로직의 분리를 통한 개발/유지/보수의 편의성 외에도 원거리 호출을 줄임으로써 어플리케이션의 수행성능을 향상시키는 효과도 포함한다.
물론, 서로의 영역을 넘어서 비즈니스 로직을 엔터티빈이 갖는다든지 데이터를 세션빈이 유지한다든지 하는 것도 얼마든지 가능하고, 클라이언트가 세션빈이 가질 로직을 몽땅 갖게되기도한다. 실제적으로 이러한 시도는 빈번하게 발생한다. 하지만, 이렇게 만들어진 어플리케이션은 이미 EJB를 사용하는 의미를 잃는다. 단지 자바와 RMI의 조합만을 이용하는 것일 뿐 EJB 어플리케이션이라고 볼 수가 없다. 결국, EJB가 주는 개발의 신속성과 유지보수의 편의성은 무시되고, EJB도 별 게 아니더라 라는 결과만을 얻게되는것이다.

엔터티 빈에서 제공하는 메소드를 이용하여 빈의 attribute를 변경하면, 이 변경은 Database의 해당 Table의 해당 Attribute에 자동으로 반영되는것이다. 이때, 엔터티 빈을 참조하는 쪽에서는 전혀 Database의 테이블 구조 및, DBMS와의 통신에 신경을 쓰지 않게된다.  DBMS와의 통신에 신경을 쓰지 않는다는 말은 SQL문을 전혀 사용할 필요가 없음을 의미한다.
그러나, 위에서 한 말은 엄밀히 말하면, 이미 만들어진 엔터티 빈을 사용하는 입장의 개발자에게는 100퍼센트 사실일 수 있겠지만, 아래에서 소개할 Bean managed 방식의 빈개발자는 데이터베이스와 객체를 매핑시키는 작업을 스스로 해 줘야만 하므로, 어쩔 수 없이 SQL을 다루게된다. Container managed방식의 경우라면, 매핑 작업을 EJB 서버의 벤더가 제공하는 툴이 대신해주므로, 엔터티 빈을 만드는 쪽이나, 사용하는 쪽이나 SQL을 전혀 사용할 필요가 없다.

커넥션 풀 ( Connection Pool)
풀이란것은 미리 일정량을 비축해두는 장소라고 보면 된다. 어플리케이션이 DBMS와 통신을 하기위해서는 DBMS와의 커넥션이 필요한데, 어플리케이션이 DB에 SQL을 던지고, 그 수행이 끝날때까지의 시간의 대부분은 DBMS와 커넥션을 맺는데 소요된다.
따라서, 미리 몇 개의 커넥션을 맺어서 커넥션 풀에 이것을 저장해두었다가 이를 필요로하는 객체에게 할당함으로써 수행성능을 향상시킬 수있다. 커넥션을 할당받은 객체는 이 커넥션을 통해 원하는 DB 오퍼레이션을 수행하고, 수행이 완료된 후엔 커넥션을 다시금 풀로 되돌린다. 커넥션은 무한히 쓸 수있는게 아니고, 그 수가 DBMS에 따라 제한되어있다. 만일 저장된 커넥션의 수보다 이를 요구하는 객체의 수가 더 많으면 커넥션을 할당받을 수 없는 나머지 객체들은 풀이 가진 커넥션에 여유가 생길 때까지 대기한다


UDDI
 UDDI 프로젝트는 웹 서비스의 상호 운용성과 채택(adoption)을 촉진시킨다. 이 프로젝트는 산업계와 비지니스 리더들 사이의 파트너쉽이고 IBM, Ariba, Microsoft에 의해 설립되었다. 지금 현재 300개가 넘는 기업들이 참여하고 있다. UDDI는 서비스 설명과 서비스 발견(discovery)에 대한 표준 기반의 스팩은 물론 인터넷 기반 구현을 제공한다. UDDI는 계속적으로 빠르게 진화하고 있으며 산업계의 지원을 받고있다. 이 스팩은 빠르게 개발되고 있다.

UDDI는 비지니스의 많은 문제점들에 관심을 기울이고 있다. 첫째, business-to-business (B2B) 인터랙션의 확장과 단순화에 기여한다. 다양한 고객과 많은 관계를 창출해야하는 제조사에게, UDDI는 각 표준과 프로토콜 별로 가상의 모든 인터페이스를 사용하여 매우 유연한 서비스 기술(description)을 지원한다. 예를 들어 전 세계의 모든 시장에 연결을 원하지만 방법을 모르고 있는 호주의 플라워 샵의 경우 UDDI는 이 방법을 제공한다. 이 스팩은 레지스트리에 플라워 샵을 나타내어 그들이 제공하는 비지니스와 서비스를 효율적이며 간단하게 발견할 수 있도록 한다.

공급자용 카탈로그 데이터 뿐만아니라 영수증 서비스, 포장, 선적, 보험관계자와 관계를 원하는 B2B 마켓플레이스 제공자에게 UDDI는 동적 발견과 관련 웹 서비스를 전체 비지니스 프로세스로 통합할 수 있도록 한다. UDDI는 비지니스 및 전자 서비스에 관한 정보에 대해 원스탑(one-stop) 쇼핑을 제공한다. UDDI에 비지니스 및 서비스 정보를 퍼블리쉬 하면 다른 것에 광범위하게 액세스 할 수 있다.

UDDI는 Extensible Markup Language (XML)와 Simple Object Access Protocol (SOAP) 같은 기존 표준에 기반하고 있다. UDDI를 따르는 모든 구현들은 UDDI 스팩을 지원한다. 공식 스팩은 회원들에 의해 공개적이고 포괄적으로 개발되었다. 앞으로 독립적인 표준 단체로 향후 개발 소유권을 넘기기 전에 세 개의 연속적인 버전을 만들고 구현하기 위함이다. UDDI Version 1 스팩은 2000년 9월, Version 2는 2001년 6월에 발표되었다. Version 3 스팩은 지금 개발중이며 2002년 중순에 발표될 예정이다. Version 1이 레지스트리에 대한 기초를 확립했다면 Version 2는 비지니스 관계 같은 기능을 추가했다. Version 3은 보안, 국제화, 레지스트리 상호운용성, 다양한 API 향상과 같은 웹 서비스의 지속적인 개발을 통해 툴링 향상을 목표로하고 있다.

'삽질로그' 카테고리의 다른 글

80x15 배너이미지 만들기  (0) 2007.08.02
RSS 관리  (0) 2007.08.02
자바에 사용되는 용어들  (0) 2007.07.26
FCKeditor java 버전 설치  (0) 2007.07.26
PCI-X 와 PCI-Express 의 비교사진  (0) 2007.07.12
클래스?
클래스란 객체의 특성을 정의하는 원형이다. 특정한 객체의 자료 구조와 접근 가능한 루틴의 정보를 표현하는 클래스를 개별 ... 하나의 클래스

란 하나의 패키지로 선언된 이름공간을 의미한다. 객체지향이란 그렇게 분리된 이름공간을 활용하는 것이다

서블릿이란?
웹 응용프로그램을 만드는 자바 기술로서 실행 결과값은 html 로 작성된다

보통 서블릿 서버, 서블릿 컨테이너, JSP 컨테이너, 웹서버 라는 등등의 말을 많이 사용합니다. 그렇지만 실제로 각각에 대한 정확한 의미를 알고 있는 경우는 드문데 각각의 의미를 살펴보면 다음과 같습니다.

서블릿서버 : 현재는 거의 사용되지 않는 말입니다. 공식적으로 사용되는 단어라기 보다는 우리나라에서 관습적으로 사용이 되고 있는 의미로 서블릿을 돌릴 수 있는 서버라는 의미입니다. 실제로 서블릿 컨테이너라는 말을 사용하는 것이 좋습니다. (초기에는 서블릿을 돌리기 위해서 아파치 등에 모듈로 연동을 해서 사용을 했기 때문에 이런 말이 생겨난 듯 합니다.)

서블릿 컨테이너 : 서블릿을 동작 시킬수 있는 환경을 제공하는 서버 프로그램입니다. 즉 HTTP 요청을 받아서 해당 서블릿을 동작을 시키고 그 결과를 사용자의 브라우저로 전달을 해줄 수 있는 기능을 제공합니다. 보통 컨테이너라고 하는 이유는 서블릿 프레임워크 안에서 동작을 하고 서블릿이 동작할 수 있는 환경을 제공해주며, 기타 필요한 작업등을 제공해주기 때문에 그렇게 얘기를 합니다. 즉 HTTP 파라미터 파싱 및 결과 전달 컨트롤, Forwarding, Redirecting 등의 기능을 컨테이너에서 제공을 해줍니다. 이때 서블릿 개발자는 자신이 만든 서블릿을 이 컨테이너에 등록을 하게 되고, 실제 동작을 컨테이너가 알아서 하게 되기 때문에 사용되는 언어입니다.

JSP 컨테이너 / 엔진: 실제로 JSP 컨테이너의 의미는 서블릿 컨테이너의 개념과 동일합니다. 그렇지만 조금 자세히 보면 실제로 JSP 컨테이너라는 것은 별도로 존재하지 않습니다. 실제로는 서블릿 컨테이너가 JSP 컨테이너가 됩니다. 그 이유는 JSP는 PHP/ASP와 같이 완전히 스크립트 형식으로 동작하지 않고 서블릿으로 변환이 된 이후에 실행되기 때문입니다. 그리고 JSP를 서블릿으로 컴파일을 해주는 것이 바로 JSP 엔진입니다. 다른 프로그램은 잘 모르겠지만 톰캣의 경우에는 JSP엔진이 바로 JSPServlet 입니다. 즉 JSP를 컴파일하고 동작을 시켜주는 것을 특정 서블릿이 담당하고 있습니다. 여기서 보면 JSP 자체가 완전한 서블릿으로 컴파일 되지 않는 다는 것을 알 수 있습니다. 즉 JSPservlet이 구동 할 수 있는 형태의 서블릿으로 바뀌게 됩니다. 그런 의미에서 보면 별도의 JSP 컨테이너가 있다고 할 수도 있을 것 같습니다.

서블릿특징
html의 정적인 문제점을 해결할 수 있는 동적인 특징을 갖는다.
자바언어로 작성되어 자바의 일반적인 특징을 모두 갖는다.
객체지향적이다.
다른 자바기술과 연동 가능하다. ( JDBC , EJB 등 )
container 라는 특별한 환경에서 실행된다.
Container 종류에 상관없이 작동된다. ( 플랫폼 독립적 )
프로세스 방식이 아닌 스레드 방식으로 실행된다.
Server Side에 적합한 자바기술이다.
보안모델 적용이 수월하다.
저장 파일의 확장자는 java 이고 컴파일된 바이트코드가 container 에서 실행된다.
웹 응용프로그램이기 때문에 브라우저를 통해서 요청한다.



Beans란?

Beans는 일종의 특정한 일을 독립적으로 수행하는 콤포넌트이다.
Beans는 크게 JavaBeans와 EJB(Enterprise JavaBeans)가 있는데, 두 가지는 콤포넌트라는 개념 외에는 많이 다르다.
JSP 문서에서는 JavaBeans와 EJB 모두 사용할 수 있다.
-JavaBeans 자체에 대해서 더 알고 싶은 분은 썬의 JavaBeans 스펙을 참고하기 바란다.

하나의 bean은 속성을 갖는 개체이다. 또한, bean은 그 속성의 값을 설정하고 얻는 방법도 갖고 있다. 뿐만 아니라, 속성을 제어하고 지정한 여러가지 일을 수행하는 방법들도 갖추고 있다. Bean은 한 프로그램에 전속하지 않는 독립적인 객체로서 다른 프로그램에서도 사용할 수 있다.

Bean의 정의는 클래스로서 표현되며 개별 bean은 정의된 클래스의 인스턴스로서 구별된다. 어떤 것도 bean으로 추상화될 수 있다.

왜 Beans를 사용하는가?

크게 세 가지 이유가 있다.

1)form을 통한 데이터 프로세싱이 매우 용이하다는 장점을 들 수 있다.
동적인 웹 페이지 생산의 중요한 요소는 클라이언트로부터 데이터를 입력받아 이를 처리하는 것인데, http 프로토콜을 사용하는 HTML은 GET 또는 POST 방법을 통해 이를 처리한다. JSP 문서에서는 간단하게 request.getParameter()를 통해 GET 또는 POST로 넘어오는 데이타를 전달받을 수 있지만 프로그래밍 코드가 지저분해지기 쉽다. 또한, request라는 JSP Engine(JSP 문서를 Servlet 코드로 변환시키는 일을 한다)이 내부적으로 사용하는 인스턴스를 참조하는 것도 어딘지 석연치 않다. 이후에 살펴보겠지만 beans를 사용하면 번잡한 form 제어를 우아하게 할 수 있다.

2)클라이언트의 데이터를 여러가지 범위에서 지속적으로 유지할 수 있다는 이유가 있다.
간단한 예를 들어보자. 쇼핑몰을 운영하는 사이트는 장바구니 개념이 구현되어야 한다. 소비자가 물건을 사이트에서 살피고 이를 장바구니에 담으면 이 정보는 소비자가 구입을 모두 끝마칠 때까지 유효해야 한다. 이런 장바구니를 구현하기 위해서는 다음의 세 가지 요건이 모두 잘 해결되어야 한다.

3)Beans를 사용하는 가장 중요한 이유는 컴포넌트 기반 개발을 하기 위한 것이다.
Beans를 잘 사용하면 보여주기와 구현하기를 분리하여 비즈니스 로직을 보다 잘 설계할 수 있다.


EJB
EJB는 스펙이다. 그것의 가장 토대가 되는 부분은 Javasoft에 의해 구현되어있으며, 이것을 바탕으로 EJB에 관심을 가진 여러 벤더들이 스펙의 나머지 부분을 구현하였고, 여기에 나름대로의 독특한 기술들을 첨가하여 어플리케이션 서버라는 이름으로 시장에 출시하였다 (물론, 어플리케이션 서버가 EJB 제품군만 있는 것은 아니다.). 그 종류는 세계적으로 40여가지에 이르며, 국내에서는 약 다섯 가지의 제품이 도입되어 어플리케이션 서버시장을 놓고 각축을 벌이고 있다.
EJB는 분산객체 기술에 기반을 둔 컴포넌트 모델이다. 따라서 EJB를 사용하기에 앞서 분산객체 기술에 대해 이해해야한다.
분산 객체 기술은 특정 컴퓨터에서 동작중인 객체를 가깝게는 같은 컴퓨터 내의 다른 프로세스로부터 멀게는 인터넷으로 연결된 원격지 컴퓨터들까지 일관된 방식으로 접근하여 이용할 수 있게 만드는 기술로써,  자바RMI나 CORBA, 그리고 MS 의 DCOM등이있으며, 이러한 분산객체 시스템은 3계층 아키텍처의 근간이된다.


EJB 서버(Server) - 컨테이너(Container) – 빈(Bean) 아키텍쳐
컨테이너는 각 유형의 빈을 위한 EJB객체들과 EJB홈들을 관리한다. 그리고 이것들이 빈 자원들을 관리하고 트랜잭션, 보안, 동시성 제어 및 네이밍 등의 주요 서비스를 적용받을 수있도록 도와준다. 빈은 실제로 우리가 접근하고자 하는 객체이다.
서버-컨테이너-빈의 순서는 상위로부터 하위로 내려가며 포함하는것-포함되는것의 순서로 배열한것인데, 상위는 하위에 대해 라이프 사이클을 관리하고, 동작환경을 제공한다.
빈과 컨테이너 사이에는 분명한 역할의 구분이 있지만, 사실 컨테이너와 서버 사이의 규약은 EJB 스펙에서 정의되지 않았다. EJB스펙에는 빈과 컨테이너 간의 규약에 대해서만 정의하고있는데, 사실상 서버 프로세스가 없이는 EJB는 구동되지 않는다. 이것은 프로그래밍을 약간만 해 본 독자라면 누구나 유추할 수있는 당연한 사실임에도 불구하고, 컨테이너 와 서버간의 규약을 명시하지 않은 것은 EJB컨테이너와 서버간의 역할경계를 불분명하게 만드는 원인이 된다. 이로인해 각 벤더들은 나름대로의 기술을 적용하여 서버와 컨테이너를 분리하였고, 사실상 서로 다른 벤더가 내놓은 EJB서버들과 그들의 컨테이너들은 호환이 거의 불가능한 특성을 갖게되었다. 도미노 효과처럼, 뒤에 나올 컨테이너 관리 빈은 컨테이너 종속적이라는 특성으로 인해, 다른 벤더의 컨테이너에 끼워넣기가 또한 거의 불가능하다.
실제의 개발에 있어서 서버와 컨테이너를 명확하게 구분해야 할 필요는 없다. EJB적인 모든 특징과 기능들은 컨테이너가 하고, 컨테이너를 담기위한 환경 및 여타의 미들웨어적 특성들은 EJB서버가 담당한다라고만 보면 일단은 충분하다. 보다 자세한 사항은 자신이 쓰고자 하는 제품의 벤더가 제공하는 매뉴얼을 참조해야한다.


엔터티 빈(Entity Bean)  - 세션빈(Session Bean) 아키텍쳐
여러분이 프로그래머라면 프로그램이 데이터와 로직으로 구성된다는 것을 알 것이다. 데이터는 영속적인 데이터와 일시적인 데이터로 나뉘어진다. 영속적이라는 것은 파일이나 데이터베이스등의 영구저장매체에 저장되고, 프로그램이 종료된 후에도 다시 로드하여 쓸 수있는 종류의 데이터이다. 반대로 일시적이라는 것은 프로그램 수행중에 변수에 저장되었다가 프로그램이 종료하고, 메모리상의 기억장소가 해제되는 순간에 사라지는 데이터이다. 이러한 일시적인 데이터들은 주로 로직의 진행에 필요한 것으로 로직의 일부로 보는 것이 더욱 타당하다. 이후 데이터라 하면 데이터베이스에 보관되는 영속적인 데이터를 칭하는것으로 이해해주기 바란다.

로직은 데이터의 조작과 처리를 말하며, 업무에 종속적인 로직과 독립적인 로직으로 나뉘어진다. 이러한 업무독립적인 로직들은 라이브러리화되어 대부분의 프로그램이 공유할 수있다. 그러나, 업무에 종속적인 로직은 일반적으로 그렇지못하다. 증권사에서 개발한 증권거래용 프로그램의 증권거래 라이브러리들을 물류회사의 물류관리업무나 일반기업의 인사관리에서 사용할 수는 없다.  이러한 업무종속적인 로직을 일반적으로 비즈니스 로직이라 칭한다. 객체지향 프로그래밍에서는 데이터를 가진 객체는 데이터를 외부와 교환하기위해 데이터 출납용 메소드를 함께 갖는 것이 권장된다. 이러한 데이터 출납용 메소드들은 업무의 흐름에 독립적인 로직을 갖는것으로, 객체지향 프로그래밍에서는 데이터의 일부로 보는 것이 타당하다.

엔터프라이즈 자바 빈의 종류는 두 가지가 있는데, 이는 엔터티 빈과 세션 빈이다.
이 중, 데이터베이스와 맵핑된 영속적인 데이터를 보관하고, 데이터베이스에 직접 접근하여 데이터를 출납하는 일은 엔터티빈이 맡는다.
세션빈은 비즈니스 로직을 포함한다. 이 구조는 EJB스펙에 지정된 것으로 EJB의 가장 핵심적인 프레임웍이다. 이것은 데이터와 비즈니스 로직의 분리를 통한 개발/유지/보수의 편의성 외에도 원거리 호출을 줄임으로써 어플리케이션의 수행성능을 향상시키는 효과도 포함한다.
물론, 서로의 영역을 넘어서 비즈니스 로직을 엔터티빈이 갖는다든지 데이터를 세션빈이 유지한다든지 하는 것도 얼마든지 가능하고, 클라이언트가 세션빈이 가질 로직을 몽땅 갖게되기도한다. 실제적으로 이러한 시도는 빈번하게 발생한다. 하지만, 이렇게 만들어진 어플리케이션은 이미 EJB를 사용하는 의미를 잃는다. 단지 자바와 RMI의 조합만을 이용하는 것일 뿐 EJB 어플리케이션이라고 볼 수가 없다. 결국, EJB가 주는 개발의 신속성과 유지보수의 편의성은 무시되고, EJB도 별 게 아니더라 라는 결과만을 얻게되는것이다.

엔터티 빈에서 제공하는 메소드를 이용하여 빈의 attribute를 변경하면, 이 변경은 Database의 해당 Table의 해당 Attribute에 자동으로 반영되는것이다. 이때, 엔터티 빈을 참조하는 쪽에서는 전혀 Database의 테이블 구조 및, DBMS와의 통신에 신경을 쓰지 않게된다.  DBMS와의 통신에 신경을 쓰지 않는다는 말은 SQL문을 전혀 사용할 필요가 없음을 의미한다.
그러나, 위에서 한 말은 엄밀히 말하면, 이미 만들어진 엔터티 빈을 사용하는 입장의 개발자에게는 100퍼센트 사실일 수 있겠지만, 아래에서 소개할 Bean managed 방식의 빈개발자는 데이터베이스와 객체를 매핑시키는 작업을 스스로 해 줘야만 하므로, 어쩔 수 없이 SQL을 다루게된다. Container managed방식의 경우라면, 매핑 작업을 EJB 서버의 벤더가 제공하는 툴이 대신해주므로, 엔터티 빈을 만드는 쪽이나, 사용하는 쪽이나 SQL을 전혀 사용할 필요가 없다.

커넥션 풀 ( Connection Pool)
풀이란것은 미리 일정량을 비축해두는 장소라고 보면 된다. 어플리케이션이 DBMS와 통신을 하기위해서는 DBMS와의 커넥션이 필요한데, 어플리케이션이 DB에 SQL을 던지고, 그 수행이 끝날때까지의 시간의 대부분은 DBMS와 커넥션을 맺는데 소요된다.
따라서, 미리 몇 개의 커넥션을 맺어서 커넥션 풀에 이것을 저장해두었다가 이를 필요로하는 객체에게 할당함으로써 수행성능을 향상시킬 수있다. 커넥션을 할당받은 객체는 이 커넥션을 통해 원하는 DB 오퍼레이션을 수행하고, 수행이 완료된 후엔 커넥션을 다시금 풀로 되돌린다. 커넥션은 무한히 쓸 수있는게 아니고, 그 수가 DBMS에 따라 제한되어있다. 만일 저장된 커넥션의 수보다 이를 요구하는 객체의 수가 더 많으면 커넥션을 할당받을 수 없는 나머지 객체들은 풀이 가진 커넥션에 여유가 생길 때까지 대기한다


UDDI
 UDDI 프로젝트는 웹 서비스의 상호 운용성과 채택(adoption)을 촉진시킨다. 이 프로젝트는 산업계와 비지니스 리더들 사이의 파트너쉽이고 IBM, Ariba, Microsoft에 의해 설립되었다. 지금 현재 300개가 넘는 기업들이 참여하고 있다. UDDI는 서비스 설명과 서비스 발견(discovery)에 대한 표준 기반의 스팩은 물론 인터넷 기반 구현을 제공한다. UDDI는 계속적으로 빠르게 진화하고 있으며 산업계의 지원을 받고있다. 이 스팩은 빠르게 개발되고 있다.

UDDI는 비지니스의 많은 문제점들에 관심을 기울이고 있다. 첫째, business-to-business (B2B) 인터랙션의 확장과 단순화에 기여한다. 다양한 고객과 많은 관계를 창출해야하는 제조사에게, UDDI는 각 표준과 프로토콜 별로 가상의 모든 인터페이스를 사용하여 매우 유연한 서비스 기술(description)을 지원한다. 예를 들어 전 세계의 모든 시장에 연결을 원하지만 방법을 모르고 있는 호주의 플라워 샵의 경우 UDDI는 이 방법을 제공한다. 이 스팩은 레지스트리에 플라워 샵을 나타내어 그들이 제공하는 비지니스와 서비스를 효율적이며 간단하게 발견할 수 있도록 한다.

공급자용 카탈로그 데이터 뿐만아니라 영수증 서비스, 포장, 선적, 보험관계자와 관계를 원하는 B2B 마켓플레이스 제공자에게 UDDI는 동적 발견과 관련 웹 서비스를 전체 비지니스 프로세스로 통합할 수 있도록 한다. UDDI는 비지니스 및 전자 서비스에 관한 정보에 대해 원스탑(one-stop) 쇼핑을 제공한다. UDDI에 비지니스 및 서비스 정보를 퍼블리쉬 하면 다른 것에 광범위하게 액세스 할 수 있다.

UDDI는 Extensible Markup Language (XML)와 Simple Object Access Protocol (SOAP) 같은 기존 표준에 기반하고 있다. UDDI를 따르는 모든 구현들은 UDDI 스팩을 지원한다. 공식 스팩은 회원들에 의해 공개적이고 포괄적으로 개발되었다. 앞으로 독립적인 표준 단체로 향후 개발 소유권을 넘기기 전에 세 개의 연속적인 버전을 만들고 구현하기 위함이다. UDDI Version 1 스팩은 2000년 9월, Version 2는 2001년 6월에 발표되었다. Version 3 스팩은 지금 개발중이며 2002년 중순에 발표될 예정이다. Version 1이 레지스트리에 대한 기초를 확립했다면 Version 2는 비지니스 관계 같은 기능을 추가했다. Version 3은 보안, 국제화, 레지스트리 상호운용성, 다양한 API 향상과 같은 웹 서비스의 지속적인 개발을 통해 툴링 향상을 목표로하고 있다.

'삽질로그' 카테고리의 다른 글

RSS 관리  (0) 2007.08.02
자바에 사용되는 용어들  (0) 2007.07.26
FCKeditor java 버전 설치  (0) 2007.07.26
PCI-X 와 PCI-Express 의 비교사진  (0) 2007.07.12
소프트웨어기술자 등급별 노임단가기준(2008)  (0) 2007.07.09

FCKeditor java 버전 설치
- 환경
O/S : Window XP Professional
Servlet Engine : Tomcat 5.0.28
Character Set : UTF-8
IDE Tool : Eclipse 3.2
FCKEditor Version : 2.3.1( http://prdownloads.sourceforge.net/fckeditor/FCKeditor_2.3.1.zip?download )FCKEditor.Java Version 2.3
( http://sourceforge.net/project/showfiles.php?group_id=75348&package_id=129511 )
1. editor 폴더를 생성하고 톰캣 컨텍스트의 루트를 editor 폴더 경로로 지정
2. fckeditor 다운로드
2-1. http://www.fckeditor.net/download/ 에서 다운로드
2-2. editor 폴더에 다운로드 된 압축 파일의 압축을 풉니다.
2-3. 압축을 풀면 나오는 디렉토리인 FCKeditor 폴더를 editor 하위 폴더로 되게끔 이동합니다.


3. 톰캣을 가동한 후 FCKeditor\_samples\default.html 을 실행하여 fckeditor 를 실행


4. 그러나 이미지 업로드를 할려고 서버 보기를 할 경우 에러가 발생합니다.


5. java 버전용 fckeditor 를 editor 폴더로 다운로드(FCKeditor-2.3.zip)
5-1. http://sourceforge.net/project/showfiles.php?group_id=75348&package_id=129511 에서 다운로드
5-2. editor 폴더에 다운로드 된 압축 파일의 압축을 풉니다.


6. 지정폴더\editor\FCKeditor-2.3\web 하위에 있는
_samples 폴더와 WEB-INF 폴더를 각각 이동.
6-1. 2번에서 만들어진 \editor\FCKeditor\_samples 폴더에
\editor\FCKeditor-2.3\web\_samples 폴더를 붙여넣기 합니다.
6-2.  \editor\WEB-INF 폴더에 \editor\FCKeditor-2.3\web\WEB-INF 폴더를 붙여넣기 합니다.


* 새로운 컨텍스트라면 web.xml 을 그대로 덮어씌운 후 복사하고,
기존에 컨텍스트에 다른 체계가 돌아가 있다면 web.xml 내용 중 <web-app> 부분을
기존 사용중인 컨텍스트에 web.xml 에 붙여넣기 합니다.
( load-on-startup 이 이미 있다면 숫자를 변경함 )

완료하면 폴더 구조는 다음과 같습니다.
( UserFiles 디렉토리는 사용자가 업로드한 이미지 저장 디렉토리입니다. )


* 톰캣 리스타트시에 콘솔 창에 다음과 같이 업로드 제한 파일 확장자 리스트가 나옵니다.
( web.xml 파일에 DeniedExtensionsFile 이란 param-name 으로 지정되어 있습니다. )


7. jsp 샘플을 실행
그러나 다음과 같이 fckeditor.html 파일을 찾을수 없다는 메시지가 뜹니다.


\editor\FCKeditor\_samples\jsp\sample01.jsp 내용을 보면
oFCKeditor.setBasePath( "/FCKeditor/" ) ;
위와 같은 부분이 있습니다.


컨텍스트의 루트 폴더가 FCKeditor 이라면 에러 없이 수행되었겠지만
루트가 editor 폴더로 지정되어 있으므로
oFCKeditor.setBasePath( "/editor/FCKeditor/" ) ;
위처럼 수정해주면 제대로 수행되는 것을 확인할수 있습니다.


7-3. 이미지 버튼을 눌러서 서버보기를 눌러보지만 4. 처럼 스크립트 오류가 발생합니다.


8. sample02.jsp 의 태그 라이브러리를 이용한 파일 브라우저 경로 수정
8-1. \editor\FCKeditor\_samples\jsp\sample02.jsp 를 보면 7. 처럼 fckeditor.html 을 찾을수 없다는 메시지가 뜹니다.
<FCK:editor id="EditorDefault" basePath="/FCKeditor/"
위 부분에서 basePath 를 현재 테스트 경로에 맞게끔
<FCK:editor id="EditorDefault" basePath="/editor/FCKeditor/" 로 수정 후 sample02.jsp 를 수정하면
에디터는 잘 나오나 역시 이미지 뷰어나 업로드 부분은 작동하지 않습니다.

sample02.jsp 에선 다음과 같이 브라우저 URL 과 업로드 URL 을 정의한 부분을 볼수 있습니다.
imageBrowserURL="/FCKeditor/editor/filemanager/browser/default/browser.html?Type=Image&Connector=connectors/jsp/connector"
linkBrowserURL="/FCKeditor/editor/filemanager/browser/default/browser.html?Connector=connectors/jsp/connector"
flashBrowserURL="/FCKeditor/editor/filemanager/browser/default/browser.html?Type=Flash&Connector=connectors/jsp/connector"
imageUploadURL="/FCKeditor/editor/filemanager/upload/simpleuploader?Type=Image"
linkUploadURL="/FCKeditor/editor/filemanager/upload/simpleuploader?Type=File"
flashUploadURL="/FCKeditor/editor/filemanager/upload/simpleuploader?Type=Flash"


editor 폴더 하위에 FCKeditor 폴더가 위치한 구조이니 /FCKeditor/editor... 부분 앞에
/editor/FCKeditor/editor... 형식으로 수정하고,


web.xml 의
<servlet-mapping>
 <servlet-name>Connector</servlet-name>
 <url-pattern>/editor/filemanager/browser/default/connectors/jsp/connector</url-pattern>
</servlet-mapping>
<servlet-mapping>
 <servlet-name>SimpleUploader</servlet-name>
 <url-pattern>/editor/filemanager/upload/simpleuploader</url-pattern>
</servlet-mapping> 


위 url-pattern 경로대로 Connector 부분과 UploadURL 을 현재 경로를 예를 들어 재구성하자면
다음과 같이 수정하여 sample02.jsp 을 작성하면 됩니다.
imageBrowserURL="/editor/FCKeditor/editor/filemanager/browser/default/browser.html?Type=Image&Connector=/editor/editor/filemanager/browser/default/connectors/jsp/connector"
linkBrowserURL="/editor/FCKeditor/editor/filemanager/browser/default/browser.html?Connector=/editor/editor/filemanager/browser/default/connectors/jsp/connector"
flashBrowserURL="/editor/FCKeditor/editor/filemanager/browser/default/browser.html?Type=Flash&Connector=/editor/editor/filemanager/browser/default/connectors/jsp/connector"
imageUploadURL="/editor/editor/filemanager/upload/simpleuploader?Type=Image"
linkUploadURL="/editor/editor/filemanager/upload/simpleuploader?Type=File"
flashUploadURL="/editor/editor/filemanager/upload/simpleuploader?Type=Flash"


위 URL은 web.xml 의 url-pattern 과 매핑된다는 점을 이해하셔야 합니다.
이런 특징을 통하여 경로를 판별할수 있습니다.


8-2. 이미지링크,플래쉬 브라우저 및 업로드가 제대로 동작하지 않을 경우...

8-2-1. browser.html 파일의 경로가 틀렸을 경우
basePath 만 수정한 후 위 8-1. 에서처럼 경로를 수정하지 않을 경우
다음과 같은 화면을 볼수 있습니다.


8-2-2. Connector 부분의 경로가 틀릴 경우
Connector 의 경로는 수정하지 않은채 browser.html 의 경로만 옳바르게 설정할 경우
다음과 같은 화면을 볼수 있습니다.


* Connector 의 경로는 web.xml 의 Connector 의 url-pattern 과 관련이 되어있습니다.
8-1. 에서 보신 web.xml 처럼 /editor/filemanager/browser/default/connectors/jsp/connector 으로
지정되어 있따면 Connector 의 주소는
http://서버url/컨텍스트명/editor/filemanager/browser/default/connectors/jsp/connector 이 됩니다.



위 화면처럼 파일을 찾을수 없다는 화면이 아닌 다른 화면이 나오게 되면 맞는 경로이므로
Connector 부분은 http://서버url/ 을 제외한 나머지 주소를 기술하면 됩니다.
( 8-1. 의 Connector 주소 설정 참조 )


* 옳바른 주소 설정에도 불구하고 위 화면에서처럼 Connector 을 브라우저에서 실행했을 때
다른 에러가 발생한다면 XML 을 생성하는 xalan 콤포넌트가 존재하는지 의심해봐야 합니다.


왜 에러가 발생하는지 보기 위한 테스트URL)
http: //서버url/컨텍스트명 /editor/filemanager/browser/default/connectors/jsp/connector?Command=GetFoldersAndFiles&Type=Image&CurrentPath=/


위 화면에서처럼
javax.xml.transform.TransformerFactoryConfigurationError: Provider org.apache.xalan.processor.TransformerFactoryImpl not found
에러가 발생한다면 Xerces-J-tools의 xalan.jar 를(http://www.apache.org/dist/xml/xerces-j/)

찾아 다운로드 하여 \WEB-INF\lib 폴더에 넣은 후 톰캣 재가동후 새로운 브라우저에서
테스트 URL 을 확인해보면 다음과 같이 에러 없이 XML 화면이 나오는 것을 확인할수 있습니다.


8-2-3. 업로드 URL 의 확인
Connector 와 마찬가지로 web.xml 의 SimpleUploader 의 url-pattern 의 영향을 받습니다.
위 web.xml 에선 url-pattern 이 /editor/filemanager/upload/simpleuploader 이므로
테스트 URL)
http://서버url/컨텍스트명/editor/filemanager/upload/simpleuploader 을 쳤을 경우 다음과 같은 화면이 나와야 정상입니다.


위 결과대로 나온다면 image,link,flash UploadUrl 을 설정하면 됩니다.( 8-1. 의 각 UploadUrl 확인 )


9. 테스트
이미지를 업로드하고, 목록에 정상적으로 출력된다면 모든 설치가 성공적으로 완료된 것입니다.


10. 샘플이 아닌 기존 체계에 fckeditor 를 적용할 경우.
태그 라이브러리 사용을 위한
<%@ taglib uri="http://fckeditor.net/tags-fckeditor" prefix="FCK" %> 를 페이지 상단에 삽입 하고,
<TEXTAREA></TEXTAREA> 부분에 sample02.jsp 의 <FCK:editor ~ </FCK:editor> 부분을 복사하여 붙여넣기 합니다.
기본 sample02.jsp 에는 <FCK:editor id="EditorDefault" 처럼 id 가 EditorDefault 로 되어있는데
만약 <TEXTAREA name = "contents" 와 같이 name 이 contents 였다면
<FCK:editor id="contents" 로 지정하면 받는 부분에서 contents 로 받을 수 있습니다.


예)
- \editor\board\create_form.jsp(UTF-8 로 작성)

<%@ taglib uri="http://fckeditor.net/tags-fckeditor" prefix="FCK" %>

<%@ page contentType = "text/html;charset=utf-8" %>
<HTML>
<HEAD>
<TITLE>글 입력 폼</TITLE>
<META http-equiv = "Content-Type" content = "text/html;charset=utf-8" />
<SCRIPT>
 function send()
 {
  create_form.submit();
 }
</SCRIPT>
</HEAD>
<BODY>
<FORM name = "create_form" method = "post" action = "./create.jsp">
 <FCK:editor id="contents" basePath="/editor/FCKeditor/"
  imageBrowserURL="/editor/FCKeditor/editor/filemanager/browser/default/browser.html?Type=Image&Connector=/editor/editor/filemanager/browser/default/connectors/jsp/connector"
  linkBrowserURL="/editor/FCKeditor/editor/filemanager/browser/default/browser.html?Connector=/editor/editor/filemanager/browser/default/connectors/jsp/connector"
  flashBrowserURL="/editor/FCKeditor/editor/filemanager/browser/default/browser.html?Type=Flash&Connector=/editor/editor/filemanager/browser/default/connectors/jsp/connector"
  imageUploadURL="/editor/editor/filemanager/upload/simpleuploader?Type=Image"
  linkUploadURL="/editor/editor/filemanager/upload/simpleuploader?Type=File"
  flashUploadURL="/editor/editor/filemanager/upload/simpleuploader?Type=Flash">
  This is some <strong>sample text</strong>. You are using <a href="http://www.fredck.com/fckeditor/">FCKeditor</a>.
 </FCK:editor>
</FORM>
<INPUT type = "button" onClick = "return send()" value = "전송">
</BODY>
</HTML>


- \editor\board\create.jsp(UTF-8 로 작성)

<%@ page contentType = "text/html;charset=utf-8" %>
<%
 String contents = request.getParameter("contents");

 contents = new String(contents.getBytes("8859_1"), "UTF-8");
%>
<HTML>
<HEAD>
<TITLE></TITLE>
<META http-equiv = "Content-Type" content = "text/html;charset=utf-8" />
</HEAD>
<BODY>
<%= contents %>
</BODY>
</HTML>


11. 몇가지 Tip.
11-1. 공백 값 입력을 방지하기 위해선 스크립트를 다음과 같이 수정합니다.

/**
 * 데이터 전송전 체크
 */
function send()
{
 var oEditor = FCKeditorAPI.GetInstance('contents') ;

 var div = document.createElement("DIV");
 
 div.innerHTML = oEditor.GetXHTML();

 if( isNull( div.innerText ) )
 {
  alert("내용을 입력하세요."); 
  oEditor.Focus();
  return false; 
 }

 create_form.submit();
}

/**
 * 정규표현식을 이용한 공백 체크
 */
function isNull( text ) 

 if( text == null ) return true; 

 var result = text.replace(/(^\s*)|(\s*$)/g, ""); 

 if( result ) 
  return false; 
 else 
  return true; 
}



11-2. 페이지 로딩시 바로 포커스를 주고 싶다면
\editor\FCKeditor\fckconfig.js 의 FCKConfig.StartupFocus 의 값을 true 로 변경하거나

태그라이브러리 옵션으로 startupFocus="true" 를 설정합니다.


11-3. 읽기 전용으로 변환하고 싶다면

var oEditor = FCKeditorAPI.GetInstance('contents') ;
oEditor.EditorDocument.body.contentEditable = false;
oEditor.EditorDocument.body.unselectable = true;


11-4. 기타 환경 설정은 fckconfig.js 파일을 참조하고 아래 사이트를 참조하시기 바랍니다.
http://sourceforge.net/forum/forum.php?forum_id=257180 ( fckeditor help 포럼 )
http://java.lin4u.com/my/index.php?category=&keyfield=title&keyword=fck&favorite ( 폰트 관련 참조 )
http://wiki.fckeditor.net/ ( fckeditor 위키 사이트 )

http://www.ghlab.com/blog/fckeditor/editor.zip ( 위 샘플들을 테스트한 컨텍스트 모든 파일들 )

출처 : Tong - 디트리히님의 자바관련통

사용자 삽입 이미지

PCI-X 와 PCI-Express 는 호환되지 않는다.

'삽질로그' 카테고리의 다른 글

자바에 사용되는 용어들  (0) 2007.07.26
FCKeditor java 버전 설치  (0) 2007.07.26
소프트웨어기술자 등급별 노임단가기준(2008)  (0) 2007.07.09
[펌]자격증정보  (0) 2007.07.09
오라클설정내용  (0) 2007.07.05

이전자료를 업데이트 했습니다.

SW기술자 등급별 일 노임단가
(단위:명,원,%)

구 분 2007년
조사인원
일 노임단가 전년대비
2006년도
2007년도
증가액 증가율
기술사

141

277,516

290,938

13,422

4.84

특급기술자

4,076

267,495

273,664

6,169

2.31

고급기술자

3,531

206,698

215,166

8,468

4.10

중급기술자

3,969

165,245

174,432

9,187

5.56

초급기술자

5,470

130,898

136,290

5,392

4.12

고급기능사

102

108,268

112,910

4,642

4.29

중급기능사

269

95,632

99,834

4,202

4.39

초급기능사

105

71,102

75,128

4,026

5.66

2006년 조사결과는 단순인원가중평균치임.(근무일 : 22.34일)
2007년 조사결과는 단순인원가중평균치임.(근무일 : 22.10일)

<시행일> 2008년 1월 1일부터

'삽질로그' 카테고리의 다른 글

FCKeditor java 버전 설치  (0) 2007.07.26
PCI-X 와 PCI-Express 의 비교사진  (0) 2007.07.12
[펌]자격증정보  (0) 2007.07.09
오라클설정내용  (0) 2007.07.05
관해난수(觀海難水)  (0) 2007.04.22

ITBANK멀티캠퍼스

자료 : http://www.itechtop.com

문의 : 02-3672-0009


뜨는 자격증, 지는 자격증

1500여종에 이르는 자격증 수에 못지않게 취득자 또한 1인 1자격증 시대라 할 만큼 자격증이 넘쳐나고 있다. 하지만 현재 자격증이 바라던 만큼의 가치를 갖고 있으며, 자격증 취득자가 현실적으로 원하는 취업이나 경력 향상에 도움이 되고 있을까? 물론 자격증만으로 이 모든 고민을 해결할 수 없다는 사실은 누구나 인정한다. 하지만 올바른 시각으로 자격증을 잘 활용한다면 그 가치는 충분하다. 이번 특집을 통해 IT 자격증의 현주소와 문제를 진단하고, 주목할 만한 자격증에는 무엇이 있는지 살펴본다. 지금 이 순간 IT 자격증을 준비하고 있다면 주목하기 바란다.


특집 1부. 1인 1자격증 시대의 자화상

박상훈│마이크로소프트웨어

자격증은 어떤 효용이 있을까. 실제 도움이 되기는 할까. 취업과 이직, 연봉과 관련해 거의 언제나 빠짐없이 등장하는 이 테마는 1500여 종에 이르는 다양한 자격증이 난립하면서 수많은 논쟁으로 이어지고 있다. 1인 1자격증 시대, 다른 사람들에게 뒤쳐지지 않기 위해 알아야 할 자격증 관련 흐름을 정리하고 자격증과 취업, 자격증과 연봉의 관계를 살펴본다.

한취업전문포탈 사이트가 국내 직장인 1932명을 대상으로 설문조사한 결과, 응답자의 63%가 한 가지 이상의 자격증을 갖고 있는 것으로 나타났다. 한국노동연구원이 발표한 자료에서도 국가기술자격 취득자 누계는 2002년까지 약 1767만 명으로, 지난 2004년 6월 현재 전체 경제활동인구 2358만명 가운데 75%가 1개 이상의 국가기술자격을 소지한 것으로 추정됐다. 2002년 이후 자격증 취득자 추세와 이 통계에 잡히지 않은 국제자격증 취득자를 포함하면 현재 우리들은 거의 1인 1자격증 시대를 살아가고 있다.

한편 자격증을 취득하지 않는 직장인 가운데 56.3%는 재직 중 자격증을 취득할 계획이 있다고 답했다. 주로 IT(34.1%)와 외국어(30.8%) 분야의 자격증을 선호했으며 경력 계발과 자기만족 등을 취득 이유로 꼽았다. 하지만 흥미로운 것은 응답자의 절반 이상인 57.1%가 직장생활 내에서는 ‘자격증의 활용도가 거의 없다’고 답한 사실이다. 유용하거나(27.6%) 연봉협상 시 중요한 영향을 미쳤거나 승진 시 가산점이 됐다(10.8%)는 응답은 소수에 그쳤다. 입사 시에도 별다른 영향이 미치지 못한 것(62.6%)으로 느끼고 있었다.

정리해보면 대다수의 직장인들은 자격증이 사회생활에 큰 도움이 되지 않는다는 사실을 알고 있지만 아이러니하게도 자기 자신은 새로운 자격증을 취득하려고 준비 중인 셈이다. 자격증 대중화 시대를 살고 있으면서도, 정작 자격증의 효용에 대해서는 서로 판이하게 다른 두 가지 시각이 공존하고 있는 현실, 이유가 무엇일까.

1200~1500여개 시행 중인 ‘자격증 천국’

현재 국내에서 취득할 수 있는 자격증은 국가자격증과 국가공인 민간자격증, 민간자격증 그리고 국제자격증 등 크게 네 가지로 구분된다. 국가자격증은 정부기관이 직접 시행, 주관하는 자격증으로 공무원 임용 시 가산점이나 학점 인정 등의 혜택이 주어진다. 국가공인 민간자격증이란 민간자격증 가운데 일정 요건을 갖춘 일부를 국가가 공인한 것으로, 국가자격증과 동일하게 취급받는다. 그리고 민간자격증은 민간 기업이나 단체가 시행, 주관하는 사설 자격증으로 수백 종에 달하는 것으로 알려져 있으며, 국제자격증은 주로 글로벌 벤더들이 운영하는 자격증으로 IT 분야에는 오라클, 시스코, MS, 썬 등이 대표적이다.

각 자격증별 종목 수는 <표 1>과 같다. 각종 기능사와 기사, 산업기사 등으로 구분되는 국가자격증은 2003년 11월 기준으로 27개 직무분야에서 총 637개 자격증이 시행되고 있으며 인터넷 정보검색사와 샵 마스터 등 국가공인 민간자격증은 46개가 운영 중이다. 국제자격증은 정확한 통계가 나와 있는 것이 없으며, 민간자격증은 조사기관에 따라 약 600여종으로 추정되고 있어, 현재 국내에서 시행되고 있는 자격증은 총 1200~1500여 종에 이른다.

국가자격증을 분야별로 보면 기계(19.6%), 금속(7.5%), 농림(6.6%) 분야의 자격증이 가장 많고, IT 관련 분야는 정보처리 분야 8개와 워드프로세서, 전자상거래운용사 등 기초 사무와 게임프로그래밍 전문가 등을 모두 포함해 20여 개로, 채 5%가 되지 않는다. 이러한 경향은 민간자격증도 마찬가지다. 지난 2003년 발표된 『민간자격 관리체제의 구축방안 연구』 보고서에 따르면 총 546개 민간자격증 가운데 119개가 보건과 사회복지사업 관련 자격증이었으며 95개는 사업 서비스업 관련 자격증으로 집계됐다. 통신업 관련 자격증은 단 2개에 불과했다.

이처럼 국가자격증 가운데 IT 분야의 자격증을 찾아보기 힘든 이유는 지난 1974년 국가기술자격법 제정 당시 중화학 공업과 건설 산업에 필요한 인력을 공급하기 위해 기계, 금속, 토목, 건축 분야의 자격증을 우선적으로 시행했기 때문이다. 이러한 현상은 지금까지 계속돼 중화학공업 위주의 자격증이 유지되고 있는데, 이 때문에 전자, 정보처리, 통신 등 IT 분야의 자격증은 급변하는 기술 수준을 따르지 못해 활용도가 떨어지고 있다는 지적을 받고 있다.

국가자격증과 민간자격증이 IT 자격증을 마련하는데 소극적으로 대응하는 사이 오라클과 시스코, 썬, MS 등 주요 기술 업체들과 CIW, ISACA, ISC2 등의 단체들은 다양한 국제 IT 전문 기술 자격증 70~100여 종을 국내에서 시행하고 있다.

<표 1> 국내 시행 중인 자격증

구분 국가자격 민간자격 국제자격증
국가기술자격법과
개벽법에 의한 국가자격
국가공인 민간자격 비공인 민간자격
종목수 국가기술자격법에
의한 622개 종목
(한국산업인력공단 601종목,
대한상공회의소 21종목),
개별법에 의한 120개 종목
자격의 검정·
검정과목·응시자격 등
검정수준이 국가자격에 상당하다고 판단하여 2004년 2월 현재 국가에서 인정한 46개 종목
민간자격 검정기관에서 시행하여 실시하는 자격시험으로 정확한 통계는 없으나 한국직업능력개발원에서는 약 600여 개로 추정 주요 해외 업체와 단체에서 시행하는 자격증을 국내에서 시행하는 것
IT
관련
종목
워드프로세서,
전자상거래관리사,
전자상거래운용사,
컴퓨터활용능력,
컴퓨터운용사,
정보통신설비사,
정보처리산업기사/
기사/기능사,
정보관리기술사,
정보기술산업기사 등
E테스트 프로세셔널, 정보시스템감리사,
PC활용능력평가시험,인터넷정보검색사,
리눅스마스터, 정보기술자격,
네트워크관리사 등
소비자상담사,
노인복지사,
심리상담사 등
시스코의 CCNA,
CCDA, CCNP,
오라클의 CCP, OCM,
썬의 SCJP, SCJD,
MS의 MCSE, MCSA를
비롯해 C/W, ISACA,
ISC2 등의 단체가
시행하는 자격증등
혜택 국가공인자격증 혜택 부여 법적으로 공인된 헤택 없음.
자사 취업시 일부 혜택 있음

곤두박질치고 있는 국가자격증

지금의 국가자격증 체계는 지난 1999년에 큰 폭의 변화를 시도한 이후 현재까지 이어져 오고 있다. 당시 기술계와 기능계로 구분돼 있던 직무분야를 통합해 <그림 1>과 같이 단순화하고, 자격 등급도 8단계에서 5단계로 간소화시켰다. 특히 학력보다 산업현장 경력을 우대한다는 취지에 따라 응시요건에서 산업현장 경력 연수를 줄였으며 일본과 IT 자격증을 상호 인증(APEC)한 것도 이 즈음이다.

그러나 이러한 개선에도 불구하고 지난 1999년을 기점으로 국가기술자격 취득자 수는 매년 감소하고 있다. 주로 고급 기술자격인 기술사와 실무를 담당하는 기능사 등급의 자격 취득자가 급감하고 있는데, 기술사의 경우 지난 1999년 취득자가 2041명이었던 것이 2002년에는 1382명으로 줄어들었다. 기능사 자격증 취득자도 한해 47만 명에 육박했으나 2002년에는 32만 명 수준으로 떨어졌다.

이러한 경향은 IT 분야의 자격증에도 공통적으로 나타나고 있다. 대표적인 IT 국가자격증인 정보처리기능사의 경우 2000년 27만 명이 원서를 접수했지만 매년 3만 명씩 줄어들어 2003년에는 19만 명까지 감소했다. 특징적인 것은 정보처리기사의 원서 접수자와 최종 합격자 수가 큰 폭으로 증가하고 있는 점이다(<표 2>). 이것은 4년제 대학 졸업자들이 취업을 위해 대규모로 기사 자격증 취득에 나섰기 때문인데, 정보처리기사 자격증의 실효성이 높아서라기 보다는 청년실업이 심각해지면서 학점 인정과 가산점 등 국가자격증의 혜택을 노린 수요로 해석된다.

전문가들은 국가자격증 제도의 출발점과 최근의 운영실태를 보면서 현재의 자격증 체계가 새로운 트렌드를 반영하기에는 자격증 종목이 너무 단순하다고 지적한다. 특히 IT 분야의 경우 워드프로세서 자격증, 전자상거래관리사 자격증, 컴퓨터활용능력 자격증 등 기초적인 자격증에 집중돼 있고 오픈소스나 임베디드, 유비쿼터스, 보안 등 최신 IT 기술의 흐름을 반영한 자격증을 효과적으로 내놓지 못하고 있다. 이에 따라 정부가 마련한 대안이 국가공인 민간자격증 제도이다.

<그림 1> 현재의 국가기술자격의 등급별 응시자격

민간자격증, 수백 종 가운데 진주찾기

국가공인 민간자격증 제도는 지난 1997년에 자격기본법이 제정되면서 시작됐다. 새로운 분야의 자격증을 발굴하고 민간자격을 활성화하기 위한 제도로, 국가자격증의 커리큘럼이 다양하지 못하고 최신 기술 트렌드를 반영하지 못하는 문제를 일정 부분 해소해 줄 것으로 기대를 모았다. 이들 민간자격증은 국가자격증과 동일한 효력을 발휘하기 때문에 수험자들의 큰 관심을 모았는데, 유통관리사 자격증의 경우 기사자격과 마찬가지로 30학점을 인정해 주기 때문에 편입준비에 이용되기도 했다.

이에 따라 지난 2001년에만 게임프로그래밍전문가, 멀티미디어전문가, 게임디자인전문가, 게임시나리오전문가, 애니메이션전문가, 게임그래픽디자인전문가, 웹디자인기능사 등 다양한 IT 자격증이 선보였다. 당시 큰 주목을 받았던 게임 개발과 멀티미디어 분야에서 집중적으로 신설됐음을 알 수 있다. 특히 올해 국가공인을 받은 리눅스마스터는 국제자격증이 담당하던 영역을 국내 자격증을 대체하기 위한 시도라는 평가를 받았다.

그러나 일부 사례를 제외하면 국가공인 민간자격증 제도 역시 IT 기술의 빠른 흐름을 반영하지 못하고 있다. 국가공인을 신청하는 자격증을 종목별로 구분해 보면 스포츠·건강 분야가 가장 많고 컴퓨터 정보기술은 매년 18~20건 수준에 머물러 있다. 이 가운데 실제 공인을 받은 경우는 2001년 이후 연간 5~7건에 머물러 있으며 그나마 IT 분야는 한두 건에 불과하다. 매년 이전 심사에서 탈락된 자격증이 다시 신청하는 경우도 많아 새로운 커리큘럼을 육성한다는 당초 취지를 무색케 하고 있다.

한편 민간자격증 수가 폭증하면서 이를 둘러싼 소비자들의 피해도 증가하고 있다. 한국소비자보호원이 발표한 『통신판매로 구입한 자격증 교재 관련 소비자 상담 및 피해구제 건수』 보고서에 따르면 2002년 총 1074건에서 2003년 1180건으로 9.9% 증가한 것으로 나타났다. 이 가운데 IT 관련 자격증이 연관된 것은 전자상거래관리사가 유일했으며 그것도 환불 관련된 것이어서 IT 자격증을 이용한 사기 시도가 많지는 않는 것으로 보인다.

그러나 이와 같은 일련의 사건들은 민간자격증에 대한 전반적인 불신을 키웠으며, 국가자격증의 보완재로서 제자리를 찾는데도 실패해 IT 업계의 수요를 만족시킬 만한 자격증이 많지 않다는 것이 전문가들의 중론이다. 최근 몇년 사이 국제자격증에 대한 관심이 높아지고 있는 것도 이런 현실에 대한 반작용이었다.

<표 2> 정보처리기사 연도별 합격자 추이

년도 원서접수자 최종응시자 최종합격자 합격률
2003 154652 114988 45744 39.8%
2002 116299 87805 34379 39.2%
2001 102008 73783 21114 28.6%
2000 85403 59705 14507 24.3%
1999 76830 62594 13013 20.8%
96~98 141854 108960 16480 15.1%
92~95 143819 108569 20371 18.8%
84~91 124607 101287 20014 19.8%
77~83 8010 6204 1557 25.1%

<표 3> 2005년 현재 국가공인민간자격증 현황
이름 등급 자격관리자 유효기간
E-TEST Professional 1,2,3,4급 삼성SDS 03.2.17~07.2.16
정보시스템관리사   한국전산원 03.2.17~07.2.16
PC활용능력평가시험(PCT)   피씨티 03.2.17~07.2.16
인터넷정보검색사 전문가, 1, 2급 한국정보통신산업협회 03.2.17~07.2.16
리눅스마스터 1, 2급 한국정보통신산업협회 05.1.15~07.1.14
네트워크관리사 2급 한국정보통신자격협회 04.1.20~08.1.19
PC정비사 1, 2급 한국정보통신자격협회 05.1.15~07.1.14
정보기술자격(ITQ)시험 A, B, C급 한국생산성본부 04.1.20~08.1.19
공무원정보이용능력평가(NIT)   한국정보문화진흥원 05.2.17~09.2.16
디지털정보활용능력(DIAT) 초, 중, 고급 한국정보통신대학교 05.2.17~09.2.16
정보보호전문가(SIS) 1급 한국정보보호진흥원 04.1.20~06.1.19
2급 한국정보보호진흥원 05.2.17~07.2.16
컴퓨터운용사   대한상공회의소 00.12.22~05.12.21

<표 4> 국가공인 민간자격증 취득자 현황
자격증 취득자수
인터넷정보검색사 전문가 70
1급 9,289
2급 161,696
PC활용능력평가시험(PCT) A 113
B 4306
정보시스템관리사   76
정보기술자격(ITQ)(A, B, C급)   131661
네트워크관리사 2급   4910
E-TEST Professional 1급 7438
2급 22401
3급 19924
4급 14935
공무원정보이용능력평가(NIT)   126
디지털정보활용능력(DIAT) 고급 12
중급 283
초급 617
377,857

출처│한국직업능력개발원, 2003년 6월 기준

국제자격증, 맹신은 금물

국내에 국제자격증이 처음 도입된 것은 노벨 공인 네트워크 전문가 자격증인 CNE(Certified Novell Engineer)가 시행된 지난 1989년이다. 이후 MS, 오라클, 시스코, HP, 썬, IBM 등이 자사의 국제자격증을 국내에 선보였으며 쓰리콤, 로터스, 인텔, 인포믹스, 노텔, SAP, 리버스톤, 스니퍼 등도 선별적으로 자격증 프로그램을 운영하고 있다(<표 5>).

국제자격증은 초기에 협력업체나 관련업계 종사자 위주로 운영했으나 외국계 기업의 국내 진출이 활발해지고 이들 기업이나 협력업체 취업 시 이점을 기대하는 수요가 몰리면서 최근엔 취업준비생들이 주로 취득할 만큼 응시대상이 다양해졌다. 특히 MS와 시스코는 국내 대학에 정규 교과과목을 개설하고 자격증을 취득하도록 지원하는 방식으로 학생층 공략에 가장 성공한 사례로 유명하다.

그러나 일반에 알려진 인식과 달리 국제자격증에 대해서는 체계적인 통계가 없다. 무엇보다 밴더별로 취득자 수 공개를 꺼리고 있는데다, CIW(Certified Internet Webmaster)의 경우 이를 취득하면 연간 12% 연봉 인상을 받을 수 있는 것으로 홍보하고 있지만 미국 국내에 국한된 이야기이거나 공신력 있는 검증이 이루어진 바가 없다. 국내에서는 이들 업체의 협력사 자격을 취득할 때 해당 IT 벤더의 자격증을 소지한 직원이 일정 인원 이상 필요하고, 이 때문에 회사 차원에서 전략적으로 취득한 경우가 많아, 개별 취득자들이 어떤 혜택을 보았는지 통계를 뽑기가 쉽지 않다.

대신 지난 2003년 말에 발표한 IDC 보고서 『Worldwide and US IT Certification Forecast and Analysis, 2003~2007』는 국제자격증의 흐름을 읽을 수 있는 단초를 제공한다. 당시 IDC는 자격증 벤더와 교육기관, 시험 대행기관 등 28개 주요 업체들에 대한 심층 인터뷰를 통해 이 보고서를 작성했다. 이에 따르면 주요 IT 벤더들은 과거의 기술 중심 자격증에서 탈피해 역할과 업무 기반의 자격증을 소개하는데 주력하고 있다. MS가 보안전문가를 겨냥해 출시한 MCSE-Security와 MCSA-Security가 대표적인 사례이며 HP도 지난 2003년 이후 채널과 협력사를 겨냥한 여러 가지 신규 자격증들을 선보이고 있다.

국제자격증을 작업 역할별로 구분하면 가장 많은 것은 시스템 운영(Operation System) 분야로 서버와 윈도우, 유닉스, 리눅스 등 운영체제 기술에 초점이 맞춰져 있다(<그림 2>). ComTIA의 Linux+, 썬의 CSSA, MS의 MCSE 등이 대표적이다. 일반(General)은 초보 IT 직원들을 겨냥한 자격증으로, ComTIA의 A+와 MS의 MCP 등을 꼽을 수 있다. 네트워킹은 네트워크 인프라를 다루는 분야로, 시스코의 CCIE, 노텔의 CSS, 노벨의 CNE, 노벨의 CAN, ComTIA의 Network+ 등이 여기에 속한다. 애플리케이션 개발은 일반적인 프로그래밍의 영역으로 썬의 자바2 플랫폼 기반 자격증들이 대표적이다.

자격증을 난이도에 따라 초급, 중급, 고급으로 나눠보면 <그림 3>과 같다. 당초 IDC는 2001~2002년 IT 업계의 침체로 이 분야에 대한 신규 진출자가 줄어들면서 초보자용 자격증 비율이 다소 감소할 것으로 전망했다. 그러나 2003년 초보 자격증 보유자는 미약하지만 약간 증가했다.

IDC는 그 원인을 대규모 해외 아웃소싱으로 설명했다. 인도와 아태지역으로 대규모 아웃소싱을 단행하면서 이들이 대거 초보자용 IT 자격증 취득에 나선 것이라는 분석이다. 실제로 인텔은 인도에서 500명 규모의 신규 채용을 단행했으며 시스코는 2100명, SAP는 500명을 채용해 소프트웨어 개발을 맡겼다. MS와 오라클은 각각 500명과 2400명 규모의 신규 인력을 인도에서 채용했다. 해외 아웃소싱은 애플리케이션 개발, 기술 통합, 제품 개발, 테스팅 등 복잡한 업무까지 확대되고 있어 이러한 경향은 당분간 계속될 것으로 보인다.

<그림 2> 역할별 국제자격증 구분


<표 5> 국내 IT 업체들의 자격증 프로그램

업체 자격증 대상
시스코 CCNA/CCNP 네트워크 초보 입문자/500노드 이상의 네트워크 전문가
  CCDA/CCDP 중소규모/500노드 이상의 네트워크 설계 전문가
  CCIP 시스코 인프라와 액세스 솔루션 전문가
  CCIE 인터네트워킹 숙련도를 측정하는 시스코 최고 전문가
  CCSP 가상사설망, 침입탐지시스템 등 보안부문 전문가
CompTIA A+ 국제적으로 인정받는 PC 정비사
  Network+ 네트워크에 대한 일반적인 지식을 갖춘 초보자
  Linux+ 리눅스 초보자
  IT Project+ IT 프로젝트 관리자
  Security+ 초보 보안 관리자
HP HPCP/Advanced HPCP 유닉스 시스템 기반의 네트워크 전문가
CIW CIW Associotes/ 인터넷 기술 전문가
  Professional / Master  
Sair Linux LPIC 리눅스 관리자
Sair/GNU LCP 특정 벤더에 종속적이지 않은 리눅스 엔지니어
MS MCSA 윈도우 2000과 닷넷 서버 플랫폼 관리자
  MCSE 윈도우 2000 기반 인프라 구현 전문가
  MCDBA SQL 서버 DB 관리자
  MCSD MS 플랫폼 기반 기업용 솔루션 개발자
  MCAD VS와 XML 웹 서비스 툴을 이용한 개발자
  MCT MS 공인 강사
오라클 OCP-DBA 초보 오라클 관리자
  OCM 오라클 전문가
  OCAD 오라클 디벨로퍼를 이용한 개발자
SCJP 초보 자바 개발자
  SCJD 실무 개발능력이 입증된 자바 개발자
  SCEJ 최고 수준의 자바 응용 프로그램 개발자
  SCNA 솔라리스와 유닉스 환경의 네트워크 관리자
  SCSA 스토리지 전문가
  SCD J2EE를 이용한 애플리케이션 개발자
ISACA CISA 전산 정보 감사 전문가
ISC2 CIPPS 기업 정보 자산 보호 전문가

미국내 국제자격증의 해외 진출 동향은 곧 국내 자격증 시장에도 직접적인 영향을 미친다. 오라클이 지난 해 2월에 ERP 전문가 자격증인 ‘OES(Oracle E-business Specialist)’를 국내에 선보인 것을 비롯해 주요 글로벌 IT 벤더들이 국내에 자사의 최신 자격증 프로그램을 선보이고 있는 것은 아태지역 시장을 중심으로 자격증의 해외진출 계획을 마련하라고 했던 충고했던 IDC 보고서와 완벽하게 일치하는 것이다. 자국내 자격증 시장의 불황 타계책으로 해외 진출을 적극 검토하는 것으로 해석할 수 있다.

한편 2003년 한해 동안 가장 많은 자격증 취득자를 배출한 업체는 MS인 것으로 나타났으며 시스코와 썬, ComTIA가 그 뒤를 이었다. 전세계 자격증 시험시행 횟수는 2000년 3500만 회를 기점으로 급격히 줄어들어 2003년에도 전년 대비 20% 가량 감소한 260만 회에 머물렀다.

IDC는 향후 가장 주목할 만한 자격증 분야로 보안을 꼽았다. 보안은 최근 가파른 성장세를 보이는 분야인데, 특히 금융권의 경우 단 한 번의 보안 사고로도 치명적인 영향을 받을 수 있어 큰 관심을 갖고 있다. 벤더 중립적인 CISSP을 비롯해 ComTIA의 Security+, MS의 MCSE-Security, MCSA-Security 등이 대표적이다. 일부에서는 벤더 중립적인 보안 자격증의 수가 많다고 지적하지만 시장이 지원할 수 없을 정도가 되면 경쟁력이 없는 자격증은 자연스럽게 도퇴될 것으로 전망된다.

스토리지 역시 주목받고 있다. 기업 IT 관리자들은 SAN(Storage Area Networks)을 비롯해 복잡한 스토리지 환경을 능숙하게 다룰 수 있는 전문가가 부족하다고 호소하고 있다. 이에 따라 EMC의 POA(Proven Operator Associate)나 브로케이드의 CSD(Certified SAN Designer) 등 스토리지 분야의 자격증은 향후에도 꾸준히 수요가 늘 것으로 전망된다.

취업엔 ‘플러스’, 연봉엔 ‘글쎄(?)’

지금까지 국가자격증과 국가공인 민간자격증, 민간자격증, 그리고 국제자격증에 대해 현황을 중심으로 살펴봤다. 이들 자격증들은 국가자격증의 경우 취득하는데 평균 7개월에 21만 7000원의 비용이 소요되고(한국노동연구원 발표), 국제자격증은 일반적으로 이보다 훨씬 많은 비용이 소요되기 때문에 그 효용을 둘러싸고 논쟁이 계속됐다. 특히 자격증과 연봉, 자격증과 취업률의 관계는 자격증의 효용을 판단하는 바로미터였다. 이에 대해서는 그동안 찬반논란이 많았는데 실제 연구보고서에서도 그 결과가 엇갈리고 있다.

지난 2003년 중앙고용정보원이 발표한 『자격증이 임금에 미치는 영향을 조사한 보고서』에 따르면 전체적으로 자격증 취득자가 비자격자보다 월 평균 40만 7000원 가량 임금을 더 받는 것으로 나타났다(<표 6>). 이 보고서는 전국 5만 가구 총 7만 1368명을 조사한 것이다. 여기서는 국가자격체계에 대한 부가가치도 계산했는데, 자격증 취득자가 더 받는 금액은 한 달 기준 1890억 원, 연간 2조 2600억 원이므로, 국가자격체계를 유지하는데 들어가는 비용 317억 원과 비교하면 엄청난 사회적인 부가가치를 창출하는 것이라고 주장했다.

흥미로운 것은 직종별 연봉에의 영향을 평가한 내용이다. 보건의료직에서 가장 임금 차이(+84%)가 큰 반면 웹 디자이너(-34%), 컴퓨터 시스템 설계사(-136%), 시스템 운영 관리자(-30%) 등 일부 IT 관련직종에서는 오히려 자격증 보유자의 임금이 낮게 나타났다. 보고서는 이런 현상에 대해 직업에 필요한 특정 자격이 없는 직종이기 때문이라고 분석했는데, 이는 곧 국가자격증 가운데 IT 실무에 도움이 되는 자격증이 없다는 의미와도 같은 것으로 해석된다.

반면 지난 해 5월에 한국노동연구원이 발표한 『자격과 노동시장 연구』에 따르면 자격증은 취업에는 도움을 주지만 임금에는 의미있는 효과를 주지 못하며, 그 효과도 점차 감소하는 추세인 것으로 나타났다. 이는 학교를 마친 졸업자와 중퇴자 8623명을 조사한 것인데, 자격증 보유자의 경제활동 참가율은 76.4%로 자격증 미보유자 64.6%에 비해 11% 가량 높았다. 자격증이 취업이나 구직활동 등 노동시장에 참가하는데 유리하게 작용했다는 것이다.

그러나 자격증이 임금에 주는 효과에 대해서는 대체로 남성이 여성보다 임금이 높으며 연령과 근속, 학력, 근로시간이 늘어날수록 임금이 높아지는 일반적인 임금함수의 특성을 나타냈다. 임금에 미치는 다양한 요인들을 통제하고 자격증의 임금 프리미엄이 있는지를 조사했을 때는 의미있는 상승효과가 나타나지 않았다. 보고서는 자격증의 임금효과가 2002년을 기점으로 마이너스로 돌아서 현재는 사실상 효과를 상실한 것으로 결론내렸다(<그림 4>).

이 밖에도 자격증과 임금의 상관관계에 대해 서로 다른 해석을 제시한 보고서는 매우 다양하다. 그러나 이들 보고서가 공통적으로 지적하는 것은 현행 자격증 제도가 취업 상태의 직장인들의 능력 개발을 유도하는 기능이 매우 미약해 직무수행에 필요한 능력을 향상시키는 수단으로는 제대로 기능하지 못하고 있으며 임금에 미치는 영향도 점차 감소하고 있다는 점이다. 특히 대졸 취업준비생을 중심으로 고학력자의 자격 취득률이 높아지면서(앞서 살펴본 <표 2> 참조) 자격증의 시장성이 크게 저하되고 있으며 노동 시장과 기술의 변화를 효과적으로 반영하지 못하고 있다는 부분도 반복해서 지적되고 있다.

그러나 자격증에 대한 이러한 평가가 곧 자격증 무용론으로 연결되는 것은 아니다. 이들 보고서의 또 다른 공통적인 결론은 자격증이 취업에 일정 정도 긍정적인 영향을 미치고 있다는 것이다. 특히 전문가들은 새로운 기술 트렌드를 반영한 자격증에 주목할 필요가 있다고 조언하는데, 이들은 이미 시장이 형상된 이후에 개설되고 취득자가 많지 않아 희소성이 있다는 점 등을 근거로 들었다. 단, 아직 국가공인을 받지 못한 민간자격증이라면 충분하게 옥석을 가릴 필요가 있다.

<표 6> 자격증이 임금에 미치는 영향


<그림 3> 숙련도에 따른 자격증 취득자 분포
출처│ IDC, 2003



<그림 4> 자격증이 임금효과

자격증 활용 전략을 세워라

지금까지 국내에서 시행 중인 자격증의 현황과 임금, 취업률에 미치는 영향 등을 살펴봤다. 자격증의 효용에 대해서는 의문을 갖고 있지만 가까운 장래에 취득할 계획을 갖고 있는 우리나라 직장인들의 이중적인 관점은 사실 지금까지 살펴본 것처럼 자격증 제도의 한계에서 출발했다고 보는 것이 옳다. 짧지 않은 시간과 적지 않은 비용, 부단한 노력이 필요한 자격증, 이것을 직장 생활에 더 효과적인 ‘수단’으로 활용하기 위해 더 치밀한 자격증 전략이 필요한 것도 이 때문이다.

'삽질로그' 카테고리의 다른 글

PCI-X 와 PCI-Express 의 비교사진  (0) 2007.07.12
소프트웨어기술자 등급별 노임단가기준(2008)  (0) 2007.07.09
오라클설정내용  (0) 2007.07.05
관해난수(觀海難水)  (0) 2007.04.22
전자렌지 요리법  (0) 2007.03.16

+ Recent posts