'2012/02'에 해당되는 글 2건

  1. 2012.02.27 Apache Cassandra 를 윈도우 서비스로 등록하기 (1)
  2. 2012.02.24 .Net Framework 이란? (1)
기타2012.02.27 16:25

Cassandra를 Live 서비스에 올리려고 하니 OS가 가동중일때 항상 실행이 되어야 합니다.

윈도우 서비스로 등록을 하고, 자동시작으로 설정하면 운영하기 편합니다.

예를 들어 설치된 폴더가 D:\apache-cassandra-1.0.7 이라면 다음처럼 설정 하시면 됩니다.

1. D:\apache-cassandra-1.0.7\bin\daemon 으로 폴더를 만듭니다.

2. http://www.apache.org/dist/commons/daemon/binaries/windows/ 에서 최신 바이너리 를 다운 받습니다. prunsrv 라는 데몬입니다.

3. 압축을 풀면 prunsrv.exe 가 보입니다. 이 파일을 D:\apache-cassandra-1.0.7\bin\daemon\prunsrv.exe 가 되도록 복사 하세요.(만약에 64비트 운영체제이면 amd64폴더에 있는 prunsrv 파일을 사용하셔야 합니다.)

4. command 창을 실행하고, D:\apache-cassandra-1.0.7\bin\cassandra.bat install 이라고 명령합니다. 이러면 윈도우 서비스에 등록이 됩니다.

5. 서비스에 등록이 되었는지 확인 하려면 [시작]-[실행] services.msc 로 서비스 목록을 조회하면 cassandra 라는 서비스가 보입니다.

6. cassandra 를 더블클릭하고 [시작] 을 시켜주세요. 그리고 시작 옵션을 [자동]으로 변경하면 윈도우가 재부팅되어도 곧바로 실행됩니다.

* 이미 memtable 이 여러파일로 생성이 된 경우 서비스 실행중에 접속이 되지 않을수 있습니다. 이건 커맨드창에서 카산드라를 바로 실행해도 마찬가지 입니다. 서비스 시작후 몇초에서 몇십초 이상 기다린후 재접속 해 보세요.

그렇지 않으면 D:\apache-cassandra-1.0.7\bin\daemon\cassandra-stdout.yyyy-mm-dd.txt 파일을 baretail 과 같은 로그 뷰어로 볼수도 있습니다. 로그에서 Listening for thrift clients... 가 떨어져야 접속이 되는것 아시죠? :)
저작자 표시 비영리 동일 조건 변경 허락
신고
Posted by dotnetpower
VB.NET2012.02.24 18:20
갑자기 닷넷프레임워크가 무었인지 되짚어보기로 했습니다.

.Net Framework 가 발표된 초기 문서인 Microsoft .Net Framework 제품개요 입니다. (http://www.microsoft.com/Korea/MSDN/netframework/technologyinfo/overview/ )

뭔가 복잡하고 어렵게 설명이 되어 있습니다. 그중에 제일 이상한 부분은 이처럼 JAVA와 비교해서 엄청 나은 성능이다 라는 부분입니다. 
Sun에서 제공하는 Java Pet Store의 .NET 기반 구현인 .NET Pet Shop에서 성능은 J2EE 버전보다 28배나 높고 지원되는 동시 사용자 수는 6배나 많으며 CPU 사용률은 1/6밖에 되지 않습니다. 
물론 당시에는 그럴수 있었겠죠. 예전에 자바 문제가 많았죠.. 하지만 이러한 문장은 처음 닷넷프레임워크를 접하는 사람들에게 혼동을 줄수 있을것 같네요. 

현재는 닷넷이나 자바나 둘다 랭귀지의 성숙도가 높아져서 속도차이는 비슷하지 않을까요? 물론 언어마다 특정 기능부분에서 우위가 있긴 합니다만, 전체적으로 몇배가 더 빠르다고 할수는 없을것 같습니다.  

그럼 정의와 정리를 해보겠습니다.
 

위키에는 다음처럼 정의하고 있습니다.
닷넷 프레임워크(.NET Framework)는 마이크로소프트에서 개발한 윈도 프로그램 개발 및 실행 환경이다. 네트워크 작업, 인터페이스 등의 많은 작업을 캡슐화하였고, 공통 언어 런타임(Common Language Runtime)(CLR)이라는 이름의 가상 머신 위에서 작동한다.
아... 그래도 어렵습니다.

도대체 닷넷 프레임워크가 뭘까요? 쉽게 말하면 프로그램이 돌아가도록 지원해주는 뼈대 역할을 해 주는것 이라고 보면 됩니다. 소프트웨어 프레임워크는 복잡한 문제를 해결하거나 서술하는데 사용되는 기본 개념 구조입니다. 뼈대, 골조, 프레임워크 라고 하는데, 이러한 범위가 폭넓은 용어를 특정 무엇으로 지칭하는 버즈워드(buzzword) = 유행어 라고도 할수 있습니다.




닷넷프레임워크는 빌드, 배포, 웹서비스, 웹어플리케이션 등이 동작하게 하는 공통 환경입니다. 그리고 BCL(Base Class Library)를 포함하고 있는데, 이 클래스 라이브러리는 파일을 제어 하거나 데이터베이스에 접근하거나 네트워크를 제어 할수 있는 기능이 포함되어 있습니다.


위 그림은 1.1 버전의 BCL 입니다. 웹, 윈폼, 데이터, XML 등 다양한 라이브러리들이 존재 합니다. 이러한 기능들이 닷넷 프레임워크에 새롭게 나타난게 아니라 기존 Win32 API 들을 닷넷에 맞게 재구성 했다고 보시면 됩니다. 닷넷 이전에도 DB 관련 프로그램을 VB나 C++ 로 만들었죠. C++의 MFC도 어떻게 보면 BCL이라고도 할수 있겠네요.

대부분의 기능들이 이미 클래스로 만들어져 있어서 개발자는 해당 클래스 라이브러리를 사용하면 되는것입니다. 간편하죠? 하지만 좀 다른 UI나 기능을 구현하려면 직접 구현을 해야 하는데 보통 3rd Party 제품을 많이 사용하죠. 실제로 개발자가 자료구조와 알고리즘을 직접 만들어서 개발하는 경우는 드뭅니다. JAVA도 마찬가지 입니다. 대부분 클래스를 가져다 쓰지요, 하지만 닷넷 프레임워크보다 추상클래스가 많아서 직접 구현해야 하는 경우가 많습니다.

그럼 여기서 잠깐 이 문제를 짚어보겠습니다. 왜 한국 IT는 자바가 판을 칠까?
지극히 개인적인 생각입니다만, 지금은 아니지만 예전(10년전)에는 닷넷에 기본적으로 제공되는 클래스 라이브러리가 자바에 없지만 개발자가 직접 구현하기에 어려움이 없었고, 있다고 하더라도 오픈 마인드가 강한 자바 개발자들 끼리 서로 클래스를 공유하면서 자바의 부족한 부분을 채웠고 MS 제품은 비싸다는 인식이 강해서 납품 받는 기업입장에서는 입찰방식이라 납품하는 업체는 단가가 낮은 자바로 밀어 넣지 않았을까? 하는 생각입니다. 자바개발자분들 고생 많이 하셨습니다. (__)
이런 생태속에서 자연스럽게 자바쪽은 오픈소스 프로젝트가 성장하고, 닷넷쪽은 자체 기술력만으로 버텨왔던것 같습니다.


정리 하자면 .Net Framework 구조는 다음과 같습니다.

공통 언어 기반(Common Language Infrastructure)
CLI를 둔 목적은 compile-time과 run-time에 언어에 종속적이지 않은 플랫폼을 제공하기 위해서입니다. 예외처리, 가비지 콜렉션, 보안 등을 위한 소프트웨어 컴퍼넌트를 포함하고, CLI 가 구현된것이 CLR 입니다.


공통 언어 런타임(Common Language Runtime)
소스코드를 컴파일 하면 어셈블리가 되는데, 이 어셈블리가 CLR 위에서 동작합니다. 즉, CLR에 의해 관리되어 지는것이죠. CLR은 다음과 같은 구성요소가 있습니다.

 - 공통 타입 시스템(Common Type System)
 - 공통 언어  스펙(Common Language Specification)
 - JIT 컴파일러(Just-In-Time Compiler)
 - 가상 실행 시스템(Virtual Execution System)   


... 내용이 길어 조금씩 수정하고 있습니다.(현재 2012-03-07 두번 업데이트 하였습니다.)

혹시 위 글에 오류가 있으면 알려주시면 수정하도록 하겠습니다.



 
저작자 표시 비영리 동일 조건 변경 허락
신고
Posted by dotnetpower

티스토리 툴바