2017.05.31 18:08

 

안녕하셔요?

Object  instance 의 Copy 에 대해서 알아보려고 합니다.

Clone 이죠.

 

Object 를 "=" 을 사용해서 대입하면 주소값이 들어가므로 그 값들을 다른 instance로 복사하기 위한 작업입니다.

 

Key Point 는 "ICloneable" interface 를 구현한다는 것인데요.

바로 Source 를 보도록 하겠습니다.

 

 

  1. public class MyBuffer : ICloneable
  2. {
  3.     public int id;
  4.     public List<String> items;
  5.  
  6.     public MyBuffer()
  7.     {
  8.         id = 0;
  9.         items = new List<String>();
  10.     }
  11.  
  12.     public bool IsEmpty
  13.     {
  14.         get { return items.Count == 0; }
  15.     }
  16.  
  17.     public void Clear()
  18.     {
  19.         id = 0;
  20.         items = new List<String>();
  21.     }
  22.  
  23.     public MyBuffer Clone()
  24.     {
  25.         return (MyBuffer)this.MemberwiseClone();
  26.     }
  27.  
  28.     object ICloneable.Clone()
  29.     {
  30.         return Clone();
  31.     }
  32. }

 

 

이 녀석을 호출하는 것도 살펴봐야겠죠?

 

 

  1. public MyBuffer SomeFunction()
  2. {
  3.     MyBuffer myBuffer = new MyBuffer();
  4.     myBuffer.id = 0;
  5.     myBuffer.items.Add("AAA");
  6.     myBuffer.items.Add("BBB");
  7.     myBuffer.items.Add("CCC");
  8.     myBuffer.items.Add("DDD");
  9.     MyBuffer cloneBuffer = myBuffer.Clone();
  10.     myBuffer.Clear();
  11.     return cloneBuffer;
  12. }

 

 

글자 보기가 조금 그렇네요. ㅡㅡ;

Copy As Html 기능을 사용한건데 VisualStudio 테마으 글자 색을 따라가다 보니 저렇게 나오는 듯합니다.

CSS 를 한번 살펴봐야겠군요.

 

 

행복한 고수되셔요. ^^;

woojja ))*

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\













저작자 표시 비영리 변경 금지
신고
Posted by woojja
TAG .NET, CLONE

오래된 Error Message 를 소개하고자 합니다. ^^;

 

"Collection was modified; enumeration operation may not execute."

 

위 Message 는 한글 에러로는

"컬렉션이 수정되었습니다. 열거 작업이 실행되지 않을 수도 있습니다." 라는 에러로 나타납니다.

 

foreach (VB.NET 의 경우 For Each) 문은 IEnumerable, IEnumerable<T> 를 구현한 배열이나 컬렉션의 요소들을 반복하여 접근하는 작업을 합니다만

For Each 반복과정에서 배열이나 Collection 의 변경이 생기는 경우 내부에서 사용하는 iterator 가 무효화 되어 사용할 수 없게되어 InvalidOperationException 이 발생하게 됩니다.

 

따라서 For Each 작업을 하기 위해서는 For 문을 사용하거나

반복에 사용할 대상을 미리 List 로 취합한뒤 그 List 를 대상으로 작업을 하시기 바랍니다.

 

 

행복한 고수되십시요.

 

woojja ))*

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

 













저작자 표시 비영리 변경 금지
신고
Posted by woojja
2009.03.05 22:26

오늘 이시간부터는 본격적으로 프로그래밍에 필요한 사항들을 하나하나, 조목조목? 허접하게 짚어나가도록 하겠습니다.

먼저 변수에 대한 내용부터 시작하겠습니다.
변수란 무엇일까요?
쉽게 말하자면 프로그래밍에서 쓰이는 가지가지의 값들을 저장하는 공간이라고 생각하시면 될 듯합니다.

그런 변수는 Dim 문을 사용해서 선언을 할 수가 있습니다.

Dim woojja

이렇게 선언을 했을때 프로그램은 자연스레 woojja 라는 변수를 나중에 사용할 것이라고 알게 되고 변수의 크기만큼의 자리를 메모리에 준비를 하지요.
선언을 할때 다른 키워드를 사용하는 경우 Dim을 사용하지 않을 수도 있고
As 절을 사용함으로써 변수의 데이터 형식을 지정할 수 있습니다.

As 절을 사용하지 않는다면 Object 형으로 데이터 형식을 지정하게 되고요.

변수의 초기값을 지정하지 않으면 변수가 선언되는 코드가 처음 실행될때 해당 변수의 형식에 맞는 기본 초기값을 할당하게 됩니다.

Public Static newCustomer As Customer

만약 변수의 데이터 형식이 참조형식(추후에 다시 설명)일 경우 초기값은 Nothing 이 되며 As 절에 New 키워드를 포함함으로써 인스턴스를 만들수 있습니다.

Public Static newCustomer As New Customer


변수의 Scope
변수는 액세스 수준에 따라서 변수의 범위가 영향을 줄수 있습니다.

조건문, Loop 같이 블록 또는 프로시져 수준에서/모듈 또는 네임스페이스 수준의 범위 에서 참조할 수 있도록 할 수 있습니다.

첫번째 블락 사이일때는 변수 선언을 For문의경우 For와 Next 사이에 변수를 선언하고
두번째 sub나 Function 프로시져 내에 변수를 선언합니다. 이런 경우는 그 프로시져 내에서, 프로시져 내의 블락 내에서 참조가능하겠지요.
세번째 모듈이라 함은 클래스나 구조체를 말하며 그 내부에 선언한 변수는 모듈내의 모든 프로시져에서 접근가능하며 private키워드를 포함합니다.
네임스페이스내의 변수선언은 Friend 나 public 키워드를 사용해서 변수를 선언하면 되는 데 이에 대한 설명은 다시한번 이루어 지겠죠?.

이렇게 변수의 접근범위를 설정함으로써 OOP 의 장점을 살릴수 있고 범위를 좁힘으로써 외부의 악의의 코드로 부터 우리의 소스를 보호할 수 있을 것입니다.












저작자 표시 비영리 변경 금지
신고

'VB.NET' 카테고리의 다른 글

[VB.NET] Visual Basic 2005 Power Packs  (0) 2009.03.05
[VB.NET] VisualBasic.NET 키워드  (0) 2009.03.05
[VB.NET] 배열  (4) 2009.03.05
[VB.NET] 변수사용  (0) 2009.03.05
[VB.NET] As Customer와 As New Customer 의 차이...  (0) 2009.03.05
[VB.NET] Null Class  (0) 2009.03.05
Posted by woojja

오늘은 4번에 이어 간단히 설명하려 합니다.

저번에 .NET Framework 까지 간단히 설명을 했었는데요.


오늘은
Enterprise Server군
Building Block Service
그리고 이모든것들을 통합해서 개발할 수 있는 VisualStudio

에 대해서.. 간략히 설명하기로 하죠...

Enterprise server 군은...
저번에도 잠시 설명했던 것과 같이

.NET 을 이야기 할때 항상 함께 이야기가 나오게 되는 JAVA.
같은? 개념의 VM을 사용하지만 많은 차이점을 느끼게 하는 요소중의 하나가 Server군입니다.

두 VM 의 가장큰 차이점은 JAVA 는 JAVA 만을 위한 VM 이지만 CLR 의 경우 여러 Laguage 에서 사용할 수 있는 VM 이라는 것이겠구요.
여러기능을 가지고 있는 서버군들이 .NET Service를 위해 .NET 을 포커스로 맞추고 개발되어지고 있고 .NET을 뒷받침하고 있습니다.

Building Block Service 는 쉽게 이야기 해서 이미 만들어진 서비스라고 보시면 될 것이구요 예를 든다고 하면 Passport service를 예로 들수 있을 것을 것입니다.
회원들의 인증에 대한 서비스를 제공하지요
이런 서비스들이 구축되어지고 사용하므로써 실제 환경에서 고객, 기업, 사용자들이 원하는 개발을 하게될때 유연?(만드는 사람에 따라서 다르긴 하겠지만..)하고 쉽고 빠른 개발을 할 수 있을 것이며 원하는 모델에 가까운 결과물이 나올 수있을 것입니다.

그리고 마지막으로 지금까지 열거한 사항들(.NET Framework, .NET Server, Block Service ) 모두를 하나의 IDE 내에서 접근 가능하도록 통합 하고 각각의 요소들을 개발하는데 쉽고 빠른 개발을 할 수 있도록 도와주는 Visual Studio 가 있다고 말씀드릴수 있을 것입니다.
이런 VS 가 짱이라는 거죠. ^^


오늘 너무 간단히 짚고 넘어갔나요?
지난시간에 걍 확 해버리는 건데...

다음에는 좀 여유를 가지고 이야기 해 나갈 수있도록 하겠습니다.
요즘 프로젝트에 투입이 되서... 쬐끔 바쁠라 그러거든요...

그래도 열심히 적어보도록 하겠습니다. 텀이 길어지면 "이눔이 빠졌네... " 라기 보다 "요즘 플젝하니라 바쁘구나" 라고 생각해주삼... ^^


오늘도 행복한 하루되시구요.

고수되세요... 그럼 꾸뻑..


woojja ))*
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\












저작자 표시 비영리 변경 금지
신고
Posted by woojja
TAG .NET
이번까지는 간단하게 나마 닷넷 플랫폼에 대해서 짚어 보구요 다음 강좌부터는 아주 쉬운 VB 문법 및 VS IDE사용법?(VB.NET 문법이라고 따로 떼어놓고 이야기하기에는 너무나도 친숙한 ^^)에 대해서 부터 차근차근 밟아 나가도록 하지요.
문법은 그렇게 깊숙한 내용은 아니라서 그렇게 길게 할애하지는 않을 겁니다. ^^

그럼 시작해 보도록 하지요.

이 내용은 이번 스터디때 언급이 될 내용이니 한번 쭈~~욱 읽고 오시면 서로 이야기해나가는데 도움이 되리라 생각됩니다.

.NET Platform 은 아래와 같은 사항들로 구성되어있지요.
.NET Framework
Enterprise Server군
Building Block Service군
그리고 이모든것들을 통합해서 개발할 수 있는 VisualStudio

등입니다.

Windows는 왜 빠졌느냐?
포함이 안되기 때문이 아니라 중추적인 역할을 하지만 반드시 OS Windows 바탕위에서 구동하는 것은 아니라는 것을 간접적으루다가 말씀을 드리고자 살짜기 빼 놓은 것이니까 크게 오해하지 마시길... 당연히 Windows 가 함께 포함되어야 명실상부한 .NET Platform 이라고 할 수 있겠죠? ㅋㅋ

닷넷 프레임웍 부터 한번 살펴보죠. 닷넷 프레임웍의 바탕에는 CLR(Common Language Runtime) 이라고 불리우는 Java 의 JVM 에 해당하는 Virtual Machine 이 있습니다. CLS 를 바탕으로 제작이 되었고 CLI 란 .NET 환경에서 프로그래밍을 하려는 Language 들이 공통적으로 포함해야할 부분을 정의해 놓은 것인데 CLS 를 만족하는 Language는 닷넷플랫폼에서 구동된다고 할수 있겠죠? (우리들도 닷넷에서 구동되는 Language를 만들수 있다~~ 정말? ^^;)그리고 CLR은 각 OS 마다의 버전으로 구축되어 닷넷플랫폼을 시스템에 의존적이지 않게 하는 핵심적인 역할을 갖고 있습니다. 그리고 CLR 은 여러부분으로 나뉘어져 인터넷기반의 안전한 프로그램환경을 제공합니다. CLR 이 제공하는 부분은 나중에 깊게 설명이 될 것입니다.
(여러 책들을 보게되면 CLR, CLS, CLI 라는 말들이 나오게 되는데요 이 부분들은 상식을 쌓는다고 생각하시고 한번 찾아보세요... ^^)

CLR 위에는 .NET Class Library 라는 (쉽게 표현하자면 VC 의 MFC 라고 생각하시면 편리할 것입니다.) Hirachical 하게 구성되어서 프로그래밍을 하는데 있어서 쉽고 편리하고 막강한 프로그램을 구축할 수 있도록 해 줍니다. 이런 Class Library를 능숙하게 사용할 수 있도록 노력해야겠지요? 파워풀한 개발자가 될 수 있을 것입니다. (와자와자!!!)

Class Library 상단에는 XML 기반에서 데이터를 조작할 수 있게 하는 ADO.NET 객체들이 포진을 하고 있구요. 반드시 Database 와 연개한 프로그래밍을 하지 않는다고 하더라도 XML 을 이용하여 정보를 저장하고 사용하는데 이용이 될 것입니다.(Database를 사용한다면 당연히...)

그리고 User Interface를 담당하고 있는 Winform과 WebForm 이 있을 거구요 WebService 가 함께 구성하고 있습니다.

이러한 각각의 부분들은 각자의 스터디를 통해서 다시 어떤 세부사항들로 구성이 되는지 아시게 될겁니다.

이부분을 오늘 다 끝낼려구 했는데... 몇번에 나눠서해야겠네요.. 죄송해요... 차라리 스터디에 나오시면 허접한 말루다 설명해 드리면 더 쉬울듯도 한데...
요즘 준비하고 있는 것도 있고 나름대로 바쁜척하니라고...
조금조금씩이라도 자주자주 올려야 겠어요. 다음주부터는 더 열심히 올릴께요 이번주만 좀 봐주시와~~~아요.. ^^ 그럼 행복한 하루 되세요...



woojja ))*
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\













저작자 표시 비영리 변경 금지
신고
Posted by woojja
TAG .NET
맛봬기로 널려져 있는 문제점을 몇가지로 풀어보았습니다.

이러한 문제점을 해결하고자 무지막지한 넘이 나타났으니 그것이 닷넷입니다.
닷넷은 MS 의 비즈니스 모델이자 처음에 제가 긴 말들로 이야기했던 세상에 널려져 있던 전산환경에서의 문제점을 해결하고자 혜성같이?(혜성같이는 아니지만...) 나타난 하나의 기술입니다.
수많은 Device, 이질적인 환경에 적합하고, 개발하기 용이하고 수많은 사용자의 수많은 요구사항에 대응할 수있는, 그리고 기존에 존재하는 legacy system, application 과 함께 사용할 수 있도록 하는 기술인 것이죠.
JAVA 또한 같은 기술중의 하나라 할 수 있습니다. 하지만 MS의 .NET과는 조금 다른 차이점이 있다고 생각합니다. MS 는 인프라를 함께 구축해 나간다는 것이죠. 하나의 개발툴만이 아닌 하나의 플랫폼을 구축해 나간다고 할수 있습니다. MS 의 개발툴뿐만이 아니라 많은 서버군들, Office 제품군들 모두 닷넷이라는 방향성을 가지고 개발되어 나간다는 것입니다. 이런 제품들을 개발하기 위한 바탕기술들을 몇년전부터 발표하고 표준으로 만들고 있습니다. 이런 추진력 또한 고개를 설래설래 흔들게 하고 무시무시하게 느껴지도록 하는 것 같습니다.

이런 기반하에 구축된 MS 의 닷넷 플랫폼의 중심에 .NET Framework이 있고 BuidingBlock Service, 그리고 VisualStudio 가 있습니다.
그리고 우리는 VisualStudio 가 지원하는 언어중의 하나인 VisualBasic.NET 을 사용하고자 하는 것이구요.

vb.net, c#, asp.net, webservice, ... 등등을 그냥 단순히 바라보기 이전에 이러한 기술들이 어떻게 발생하게 되었나를 알고 있는 것 또한 이들에 접근하는데 약간의 도움이 될 듯 합니다.

이때 이런 독보적인 위치를 점령한 MS. 이것 또한 걱정이 아닐수 없습니다. 지금까지 수많은 제품의 독점판정으로 소송에 시달렸구요. 타 개발툴들과는 당연한 일이겠지만 경쟁구도를 갖을수 밖에 없었습니다. 그래서 약간의 생각을 바꾼거죠. (생각을 바꾸면 돈이 보인다~~ ^^)

"공개".

CLI 를 공개합니다.
그리고 VisualStudio를 많은 개발툴에 오픈을 하게 됩니다. 많은 개발자들을 기술표준에 끌어들일수 있고 다른 개발랭귀지 회사들은 자신의 툴을 VS 에 포함시키려고 할 것입니다.(Cobol이 그렇고 비록 컨트롤과 같은 유사한 형태지만 PowerBuilder 의 Datawindow 이 그렇습니다. Python.net, JVM 위에서 구동되는 것은 아니지만 JAVA Language를 사용하는 J# 또한... 이렇듯 많은 랭귀지를 포함하고 있습니다. ) 그럼 자연스레 수많은 다른 랭귀지를 사용하는 개발자를 VS 사용자로 끌어들일수 있고(파워빌더.NET을 만들어달라~달라달라... ^^;), 타 랭귀지개발사들과도 경쟁구도 보다는 한결 쉬운 구도가 되겠죠? 거기다 점점 닷넷의 영향력이 커진다면... VisualStudio 는 더 많이 팔리지 않을까? ^^(하기사 많은 기업들이 기존에 가지고 있는 고가의 Unix 기반 머신들을 한꺼번에 바꿀리 없고, 모두다 개발툴을 VS 로 바꿀리는 만무하지만, 이전의 환경보다는 나은 환경을 지원할 수있도록 기업들도 조금씩 바꾸어 나가려는(Webservice와 같은 기술로) 생각을 가지지 않을까 라는 저의 막연한 작은 소견...ㅋㅋ .NET Framework을 unix 머신에 포팅까지 하는 것을 보면^^)

지금까지 본격적으루다가 강의를 시작하기 전에 맛베기를 풀어봤습니다.
(이것도 너무길면 싫어하시지 않을까 라는 걱정에... ^^;)

강의를 이런식으로 진행을 해 나가는 것이 좋은지? 아니면
간단간단하게 요점만을 똑똑 끊어서 진행하는 것이 좋은지... 고민과 걱정이 많이 되네요.

10강정도로 생각하고 있다고 말씀을 드렸건만... 1차 강의를 어느정도의 내용을 가지고 할지 지금도 아리까리 합니다.

제머리 가지고 이만큼 쓰는 것. 장난 아니게 오래 걸리거든요... ^^

그럼 저는 고생할터이니 여러분은 행복한 휴일 보내시고 행복하세요... ^^


woojja ))*
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\












저작자 표시 비영리 변경 금지
신고
Posted by woojja
TAG .NET

나 자신이 보지 못했던 컴퓨터 환경에서부터 지금까지.. 아직도 널리퍼져있는 문제들이 어떤 것들이 있는지 부터 살펴보는 것이 좋을 듯하다.


#사용자들의 요구사항은 폭발적이다.
#웹은 이질적이다.
#서버메모리에 아무리 돈을 쏟아부어도 메모리 부족으로 죽는다.
#버전을 관리할 수가 없다.
#보안... 좀 몰래 들여다보지 좀 마라.
#지금까지 개발된 COM 은 어떻게 할 것인가? 상호운용되어야 한다.


지금 생각나는 것은 이정도 인것 같다. 아래 설명은 위 사항들에 대한 부연설명들이다.
읽기 귀찮으신 분은 걍 넘어가셔도 될듯 하다.(나 같은 단무지-단순무식 같은 사람들은 이런 장문은 읽기 귀찮다. 그런데 또 쓰자니... 읽는 사람 생각안하고 길게 쓰게 되드라... ㅡㅡ)


#######사용자들의 요구사항은 폭발적이다.
기술교과서에서 봄직한 집채만한 컴퓨터가 나오면서부터 항상 문제점은 발생하였을 터이고, 그 문제점은 개선되기 위해서 Hardware와 Software 의 기술은 계속해서 발전을 거듭했을 것이다. 거대한 계산기에서 퍼스널 컴퓨터로 발전을 하고
그러한 하나의 단세포생물 아메바와 같던 개인의 데스크 탑은 서로 얽이?昰?네트웍으로 연결되어 이젠 인터넷은 사람들의 생활 깊숙히 자리 잡았다. 데스크탑 뿐이겠는가? 우리 주위의 모든 기기들(휴대폰, 냉장고, 아파트마저도-기계는 아니지만...)은 모두 네트웍에 연결되어 사람들을 거미줄로 꽁꽁 묶어버리려 하고 있다... (컬럼쓰냐? ㅡㅡ;;;)

되지도 않는 말주변으로 이런 이야기를 하는 이유는 우리 생활이 점점더 발전을 하면서 발생되는 사람들의 요구사항이 기하급수적으로 늘어나는 것을 이야기 하기 위해서 이다. 사람들은 주위에 널려져 있는 네트웍을 사용하고 싶어할 것이고 모든 일을 네트웍을 통해서 쉽고 빠르게 해결하려 할 것이다. 사용자들이 사용하는 그 많은 데이터들을 일순간 처리하기위해 Hardware 또한 발전할 것이도 처리속도와 처리량은 기하급수적으로 늘어날 것이다. 또 네트웍을 사용하면서 언제 어디서든지 내가 원하는 곳에 연결할 수 있지만, 반대로 악의의 사용자에 의해 그 정보가 노출되기를 원하지는 않을 것이다. 이러한 요구사항은 기술의 발전을 낫고 개발자에겐 새로운 꽁수를 낫게한다. (고로 꽁수는 기술이다. 나만 그런가? ㅋㅋㅋ)
정보를 처리하기위해서 개발자들은 자신이 개발하는 데있어서 효율적인 언어를 선택해야 했고 다른 개발자들이 사용하는 언어를 폄하하기도 했다(아직도 그렇지... java가 최ㄱ오야... vb는 쓰레드 기능을 사용할 수 없어... VB는 쥐나 개나 다해... ㅡㅡ; 내가 쥐, 개란 말인가? )
세상의 개발자들이 꽁수로 처리할 수 있는 정보의 양은 한정되어있었고
그러한 꽁수를 줄여보고자 여러가지 기술들이 나타나게된다.

#######웹은 이질적이다.
그중에 하나가 MS 에 의해 명명된 대표적인 기술 COM 이다. (이미 알려진 기술을 멋진? 단어로 재 생산하지 않는가? 마치 자신이 탄생시킨 것처럼... 하긴 윈도우즈 진영만을 이야기 한다면 그 말도 맞지 않을까?. ^^)

이제 COM을 사용하면 개발자들은 처음부터 개발할 필요가 없어졌다. 획기적이지 않은가? 써드파티에서 만들어 놓은 컨트롤을 사다가 내 로직과 연결만 시켜놓으면 된다. 그 제품의 내부가 어떻게 구현되어있는지 알 필요도 없다.(우린 발생하는 버그에 제품을 욕하기도 한다... 어떤때는 버그에 못견딘나머지 인터넷을 뒤져 컨트롤을 만들어 버리곤 하지..ㅡㅡ;)

우리의 친구 비쥬얼베이직은 COM 의 상승세를 타고 무한히 발전하는 듯 보였다.(요놈만 잘해보좌~~)
잔머리도 많이 줄어드는 듯 했다.(사실 많이 줄었다. ㅡㅡ)

하지만 이러한 환상적인 COM 은 문제점 또한 가지고 있었다.
두가지나 된다고 한다.(완벽한줄 알았던 넘인데...)

한가지는 COM은 각각이 떨어져 있는 클라이언트/서버에서 동작한다는 것(최소한 얼마라도...)과 COM 의 내부 구현을 공유하는 것이 아니라 인터페이스를 통해 서로 통신한다는 점이다. 그렇기 때문에 COM 간의 통신을 위해서 특정 메카니즘을 구현하고 있어야 하고, COM 인터페이스는 구현하는 Language(VB, C++) 에 따라서도 다르다는 단점을 가지고 있다.
그래서 VB 로 제작된 COM을 C++에서 사용한다거나 C++로 만든 COM 혹은 JAVA 로 제작된 CORBA 를 사용하기 위해서는 별도의 Mapping? 을 통해서 그 차이점을 줄이는 작업을 별도로 해주어야만 한다.
이런 작업들로 추가적인 많은 작업을 하고 있다 (배보다 배꼽이 크다면... ㅡㅡ; 포기하고 같은 언어로 하시죠 라고 말한다. ㅡㅡ)

우리 개발자들.. 특히 우리는 이세상 많은 사용자들이 모두 윈도우즈만 사용했으면 좋겠다고 생각할 것이다. (아니 윈도우즈가 아니라 리눅스라도 좋다. 제발 하나만 써다오.)

(위를 보니 너무 많이 썼다. 아래 내용은 아시는 내용이 많을테니... 양을 줄이련다. ㅡㅡ;)

#######서버메모리에 아무리 돈을 쏟아부어도 메모리 부족으로 죽는다.
우리 서버는 많은 사용자들이 요구하는 수많은 데이터를 처리하느라 늘 바쁘다.
그런 서버에게 개발자는 친절히 메모리 할당과 해제를 친절히 능숙하게 해주어야할 기본적인 의무를 가지고 있음에도 불구하고... 잠시 음주코딩으로, 졸음 코딩으로 의무를 다하지 못하는 상황이 간혹 발생한다. 그로 인해 서버의 메모리 누수는 계속 발생하여 종래에는... "수고하셨습니다~~." 서버를 다시 켜게되며 이런 상황이 발생하지 않더라도 서버관리자는 추후에 발생할지도 모르는 서버의 살해사건방지를 위해 주기적으로 부팅시켜주는 일을 하고 있다.

#######버전을 제대로 관리할 수가 없다.
우리가 프로그램을 제작을 하게 되면 배포버젼을 제작하는 그 순간부터 발생하는 버그를 수정하게 되고 곧 새로운 버젼의 프로그램을 제작하여 Patch 하거나 새 제품을 출시하게 되는데 이때 이전 버전의 제품과 호환을 이루게 하는 것이 또 하나의 작업이 되게 된다. 때문에 버전을 관리하기 위한 표준적인 메카니즘이 필요하게 됐단다..

(거기다 COM 의 문제점인 DLL Hell 도 한몫 거들고 있다.-버전이야기 하니까 갑자기 생각나네...)

#######보안... 좀 몰래 들여다보지 좀 마라.
우리는 최근들어 인터넷을 통해서 많은 일을 하게 되었다. 업무를 보고, 인터넷뱅킹을 통해 현금을 송금하고, 물건을 구입하고 게임도 한다. 이때 보안은 필수적인 것이 될 것이다.
우리가 브라우져를 통해 설치하는 ActiveX 컨트롤은 그힘이 막강하여 한번 깔리게 되면 내 PC 를 내어주는 것이나 다름 없이 모든 권한들 가지고 내 PC를 제어?할 수 있다. 이것은 사용자에게 그리 좋은 것이 아니다. 그런 프로그램은 하는 역할에 합당한 권한이 주어져야 하기 때문이다. 특정 파일에 접근하여 쓰지는 못하되 읽을수만 있게 한다거나 하도록 설정하게 하는 방법이 필요하다.

#######지금까지 개발된 COM 은 어떻게 할 것인가? 상호운용되어야 한다.
우리는 그동안 환상적이었던(아직도 환상적이기는 한) COM을 많이도 만들었다. (내가 만든것 또한 Test 프로그램을 포함해서 너무 많이 만들지 안았나? ^^;) 이런 COM 을 일시에, 한번에, 무자비하게 다 없애 버릴수 있는가?
함께 써야 한다... 내가 만든 COM 을 사용할 수 있어야 한다.
돈주고 산 써드파티 컨트롤을 이젠 못쓰니 다른 버전으로, 또는 다른 제품으로 사달라고 하면 어떤 싸장님이 좋아하시겠는가? 기존에 산 써드파티 컨트롤을 쓸수 있는 사람을 당신 대신 구할수도 있지 않을까? ^^;












저작자 표시 비영리 변경 금지
신고
Posted by woojja
TAG .NET
이전버튼 1 이전버튼

티스토리 툴바