게시판 본문 COM / COM+ by VB 6.0 - Read Only

re: 역할 기반 보안에 대한 문의
작성자: 송원석
작성일시: 2003-04-07 21:45,  조회수: 3,145
안녕하세요? 송원석 입니다. ^_^

제 글을 관심있게 읽어주셔서 감사합니다. 그리고 말씀하신 부분에 대한 제 의견을 말씀드리면 이렇습니다.


우선 항상 모든 컴포넌트를 구성 요소 서비스에 등록할 필요는 없다고 생각합니다. 조금 더 솔직하게 제 의견을 말씀드린다면 그것은 절대로 피해야만 할 행동이라고 생각합니다. 그 이유는 간단한데요, COM+ 는 만능이 아니기 때문입니다. ^_^;;;

최근들어 COM+ 에 대한 관심이 높아지고 있습니다. 그 이유중에 하나는 .NET 때문이기도 하지요. 아무튼 이 문제를 좀더 생각해 보기 위해서는 본질적으로 COM+ 가 무엇인가를 먼저 생각해봐야 할 것 같습니다.

과연 COM+ 는 무엇일까요? 어떠한 기능들을 제공해주는 서비스일까요? 지금 이 글의 전후를 감안하여 제 나름대로 간단히 요약을 해본다면, 일반 개발자들은 비교적 개발하기 어려운 특정 몇몇 유용한 기능을 간단한 룰만 지킨다면 손쉽게 구현할 수 있도록 그 기반을 제공해주는 서비스라고 말할 수 있다고 생각합니다. 그리고 COM+ 는 그 구현 방법으로 COM 컴포넌트를 사용하도록 제시하고 있는 것이구요. 폭넓은 의미에서 이러한 서비스를 구현한 제품을 일반적으로 Application Server 라고 말하곤 합니다.


그럼 COM+ 의 관점에서 봤을 때 위에서 얘기한 '일반 개발자들은 비교적 개발하기 어려운 특정 몇몇 유용한 기능' 이란 구체적으로 어떠한 기능들을 말하는 것일까요?

가장 유명한 것이 자동 트렌젝션 (Auto Transaction) 입니다. 지면 관계상 자세히 말씀드리기는 힘들겠지만 요점은 트렌젝션 관리를 손쉽게 해준다는 것이죠. 또다른 비슷한 기능으로는 분산 트렌젝션 (Distributed Transaction) 이 있습니다. 즉, 하나의 프로그램이 여러개의 데이타베이스를 사용하는 경우에도 전 데이타베이스에 걸친 트렌젝션을 별 노력없이도 구현할 수 있게 해준다는 것입니다.

적시 활성화 (Just-In-Time Activation) 라는 기술은 메모리에 로드는 되어 있지만 현재 사용하지는 않고 있는 개체의 인스턴스를 사용자 모르게 강제로 제거했다가 사용자가 사용하려고 하면 재빨리 만들어서 제공해주는 기술로 서버의 부족한 자원을 절약할 수 있게 해주는 기술입니다.

개체 풀링 (Object Pooling) 도 있습니다. 이것은 데이타베이스 연결 풀링 (Connection Pooling) 을 생각하시면 됩니다. 단지 풀링되는 대상이 데이타베이스 연결이 아닌 컴포넌트의 인스턴스들이라는 점만 틀립니다. 이 밖에도 제 글에도 있듯이 역할 기반 보안이라든가 LCE 컴포넌트 등등 꽤나 다양한 기능들이 제공되고 있지요.


그러나 컴포넌트를 사용하여 이 기능들을 구현할 때 명심하셔야 할 점은 이 기술들을 구현하기 위해서 컴포넌트가 요구되는 것이지 컴포넌트를 사용하기 위해서 이 기술들이 생겨난 것이 아니라는 점입니다. 다시말해 이러한 기능이 필요하지도 않음에도 불구하고 COM+ 를 사용하는 것은 시간적인 측면에서 보나 기술적인 측면에서 보나 일종의 낭비라는 것입니다.

그리고 대부분 그런 경우에는 성능 향상은 커녕 오히려 역효과를 가져옵니다. 예를 들면 이런 경우를 생각해 볼 수 있겠네요. 흔히 컴퓨터에 새로운 기능을 부여하기 위해서 프로그램을 설치한다고 생각해 보시기 바랍니다. 그러나 설치하고 나서 한두번 쓰고 말 프로그램이라면 사용해보고 나서 얼른 제거해 버리는 것이 바람직하겠지요. 혹은 이 프로그램이 좋다더라 저 프로그램이 좋다더라 하는 말만 듣고서 10 여가지 프로그램을 마구 깔아서 사용한다면 컴퓨터의 성능은 더 나빠질 뿐입니다. (흠... 제가 예를 알맞게 든건지 모르겠네요. ^_^;;;)

즉 COM+ 는 위에서 말씀드린 기능이 필요할 때, 그러나 그런 기능들을 밑바닥에서 부터 제작할 기술이 부족하거나 시간이 부족하거나 (대부분의 경우 ^_^;;;) 할 때 미리 제공되어지는 기술로써 선택하는 것이고, 이때 COM+ 의 가장 중요한 룰이 적용되는 것입니다. 바로 컴포넌트를 사용하여 COM+ 서비스와 인터페이스를 하는 것이죠.

그런데 가끔 실무 현장에서 보면 위와 같은 기술이 필요하지도 않음에도 불구하고 무조건 컴포넌트를 COM+ 에 올려서 사용하는 경우를 보게 됩니다. 트렌젝션 기능을 사용하는 것도 아니고, 적시 활성화도 사용하지 않습니다. VB 로 만든 컴포넌트라 개체 풀링도 되지 않고, 그렇다고 기타 다른 기능을 사용하는 것도 아니죠. 그저 단지 COM+ 에 즉, 구성 요소 서비스에 등.록.만 해놓고 있을 뿐입니다.

물론 대부분의 경우 이렇게 한다고 해도 큰 문제는 없습니다 그러나 불필요한 일임에는 틀림없습니다. 그리고 관리하기에도 무척 불편하지요. 오히려 COM+ 카탈로그 공간만 낭비될 뿐입니다. 가장 최악의 경우는 룰을 지키지 않은 컴포넌트를 등록하여 사용하면서 설정은 COM+ 기능을 사용하도록 해놓는 경우입니다만, 여기에서는 그 이야기는 생략하도록 하겠습니다.

결국 제 결론은 '알맞은 곳에만 써야 한다'. 이구요, 그 알맞은 곳이란 '위와 같은 기능이 필요할 때'입니다. 물론 저도 아직 여러모로 부족한 점이 많기 때문에 제가 드린 말씀중에서도 논리에 맞지 않는 부분이 있을 수도 있지만 제 개인적인 주장은 이렇습니다. ^_^


그리고 말씀하신 직접 제작한 컴포넌트에 관한 말씀은 제 생각에는 권한 설정 문제인것 같습니다. 사이트 겔럭시라고 해서 별다른 특수 기능을 구현한 것은 아니고 그 본질은 직접 제작하신 컴포넌트와 동일합니다. 한번 DLL 파일의 등록 정보에서 보안 부분을 살펴보시기 바랍니다. Everyone 에 '읽기'나 '실행' 권한이 설정되어져 있는지 등등을 점검해보시면 됩니다.

일반적으로 Web 을 통해서 호출되어지는 DLL 은 IUSR_머신이름 계정의 권한으로 실행되고 이 계정은 본질적으로 Guest 그룹에 속하므로 적절한 권한 설정이 없으면 말씀하신 것과 같은 오류가 발생하게 됩니다. ^_^


감사합니다.

IP 주소: 165.213.1.1
전체 276 건의 게시물, 12 페이지로 구성된 COM / COM+ by VB 6.0 게시판의 11 페이지입니다.
게시물
26

re: 감사합니다. 상세 구현 예상 방법입니다..

송원석

2003-11-04 5,218
25

re: 감사합니다..

saint74

2003-11-04 2,967
24

re: 아하! 이제야 이해가 가는군요. ^_^ [1]

송원석

2003-11-04 3,117
23

늦었지만.. ^^^

ryangchi

2003-12-09 3,016
22

re: 늦었지만.. ^^^

송원석

2003-12-09 2,863
21

re: RDS를 사용하여 사원인증을 쿼리하려고 하는데...

나그네

2003-11-19 805
20

re: RDS를 사용하여 사원인증을 쿼리하려고 하는데...

nero

2003-11-19 770
19

internet server error: object/module net found

saint74

2003-11-01 2,898
18

re: internet server error: object/module net found [1]

송원석

2003-11-01 3,005
17

COM+ 와 .Net Class.

sowey

2003-10-18 2,960
16

re: COM+ 와 .Net Class.

송원석

2003-10-18 3,277
15

감사드립니다. [1]

sowey

2003-10-21 2,841
14

안녕하세요. 파일 큐브 괜찮네요.

원초순

2003-09-20 892
13

re: 안녕하세요. 파일 큐브 괜찮네요.

송원석

2003-09-20 2,943
12

구성요소 서비스 에러 문제 입니다.

ㅜ.ㅜ

2003-06-21 3,848
11

re: 구성요소 서비스 에러 문제 입니다. [1]

송원석

2003-06-21 3,584
10

re: 감사합니다. ^^;

ㅜ.ㅜ

2003-06-24 2,923
9

re: 감사합니다. ^^;

송원석

2003-06-24 3,158
8

[Q] 헤메다 이곳까지..죽을꺼 같아요. dll

몬나니

2003-05-20 3,370
7

re: [Q] 헤메다 이곳까지..죽을꺼 같아요. dll

송원석

2003-05-20 3,143
6

re: 성의있는 답변에 감사드립니다..Err Check

몬나니

2003-05-21 3,036
5

re: ASP 에서 사용하기 위한 컴포넌트 개발시 주의할 점

송원석

2003-05-23 3,140
4

역할 기반 보안에 대한 문의

김종필

2003-04-07 2,988

re: 역할 기반 보안에 대한 문의

송원석

2003-04-07 3,145
2

감사합니다..많은 도움이 되었습니다~~[냉무]^^

김종필

2003-04-08 3,004