게시판 본문 COM / COM+ by VB 6.0 - Read Only
re: 역할 기반 보안에 대한 문의 |
---|
작성자: 송원석
작성일시: 2003-04-07 21:45,
조회수: 3,332
|
안녕하세요? 송원석 입니다. ^_^
제 글을 관심있게 읽어주셔서 감사합니다. 그리고 말씀하신 부분에 대한 제 의견을 말씀드리면 이렇습니다. 우선 항상 모든 컴포넌트를 구성 요소 서비스에 등록할 필요는 없다고 생각합니다. 조금 더 솔직하게 제 의견을 말씀드린다면 그것은 절대로 피해야만 할 행동이라고 생각합니다. 그 이유는 간단한데요, 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 | 2003-11-04 | 5,617 | ||
25 | 2003-11-04 | 3,178 | ||
24 | 2003-11-04 | 3,299 | ||
23 | 2003-12-09 | 3,194 | ||
22 | 2003-12-09 | 3,053 | ||
21 |
나그네 |
2003-11-19 | 805 | |
20 |
nero |
2003-11-19 | 770 | |
19 | 2003-11-01 | 3,099 | ||
18 | 2003-11-01 | 3,191 | ||
17 | 2003-10-18 | 3,140 | ||
16 | 2003-10-18 | 3,463 | ||
15 |
감사드립니다. [1] |
2003-10-21 | 3,029 | |
14 |
원초순 |
2003-09-20 | 892 | |
13 | 2003-09-20 | 3,141 | ||
12 | 2003-06-21 | 4,046 | ||
11 | 2003-06-21 | 3,778 | ||
10 | 2003-06-24 | 3,105 | ||
9 | 2003-06-24 | 3,354 | ||
8 | 2003-05-20 | 3,560 | ||
7 | 2003-05-20 | 3,334 | ||
6 | 2003-05-21 | 3,225 | ||
5 | 2003-05-23 | 3,325 | ||
4 | 2003-04-07 | 3,179 | ||
2003-04-07 | 3,332 | |||
2 | 2003-04-08 | 3,189 |