전체 글 1274

Active Directory의 재발견..(1. DRM)

사실 얼마전까지만 해도 Microsoft Active Directory는 사용자 정보 디렉토리로 관리하고 윈도우즈 클라이언트가 도메인에 로그인하게 해주고, 이메일 주소정도 관리해주고, LDAP정도로 쓸 수 있는 솔루션으로 알았다. 여기와서, Active Directory(이하 AD)가 많이 언급되길래 자료를 좀 찾아봤더니.. 이건 간단한 Directory솔루션이 아니라, OA환경을 위한 Infrastructure 솔루션이다. 업무 시스템에 대한 SSO, 웹 SSO,DRM,프린터,PC관리, 원견 PC 정책 관리 등등 할 수 있는게 정말 많다. 먼저 DRM을 보면 Acive Directory Right Management Service라는 이름으로 제공된다. 문서나 파일또는 이메일에 까지 Digital Si..

ASP.NET WebForm and MVC

ASP.NET을 보다 보니까는 프로그래밍 모델이 두개가 있다. 하나는 ASP.NET에서 전통적으로 사용되어 오던 WebForm이라는 모델이고, 두번째는 이번에 추가된 MVC모델이다. WebForm은 자바의 JSF처럼 Custom Control을 이용하여 디자인 하고, Control에서 나오는 이벤트를 기반으로 프로그래밍 하는 모델이다. ASP.NET MVC는 자바의 Structs나 Spring MVC처럼 Model-View-Control의 개념을 가지고 있다. ASP.NET MVC는 UI 프로그래밍을 HTML과 스크립트를 통해서 해야 하고, 그래서 조금 더 자유스로운 웹 개발이 가능하다. WebForm은 컨트롤들이 잘되어 있어서, 프로그래밍이 놀라울만큼 편하다. 양쪽다 구조적으로는 바탕에 ASP.NET ..

간만에 산 원서 바꾸예정

간만에 원고를 하나 샀습니다.사실 이책이 아니라 c# and .net 이라는 책을 살려했눈데 서점에 없더군요. 그래서 민만해 보이는 원서하나들고 (포장이되오있어 내용을 못보는 관계로) 아이폰으로 잽싸게 아마존 검색 해보니 서평이 좋아서 41000원이나 주고샀습니다 몇년만에 제 돈으로 전공서 산거 같네요 버스안에서 한시간만에 읽었다는... 리 포스트 몇일전 스마트 폰으로 쓴건데 버스에서 멀미나서 못 올리다 지금 올립니다.오늘 반품했어여.. 그나저나 폰에서 블로그질은 할게아니군요 iPhone 에서 작성된 글입니다.

CLR 메모리 구조 (노트)

CLR 메모리 참고 자료 http://www.simple-talk.com/dotnet/.net-framework/understanding-garbage-collection-in-.net/ 에 있는데, JVM이 client모드와 server모드가 있듯이 workstation 모드와 server 모드 두개를 가지고 있다. (current and synchronous). 간략하게 정리하자면 concurrent mode는 JVM의 concurrent GC 모드와 유사하게 pause time을 최소화하는 것이고 주로 desk ap에서 응답 시간 위주로 튜닝하고자할때 사용되고, synchronous 모드는 JVM의 Thoughput collector와 비슷한 원리 같은데, pause를 주더라도 collection을..

자바개발자가 본 .NET 프레임웍

.NET 프레임웍이란? MS에서 개발한 프레임웍으로 개발 환경 : 다양한 컴파일 환경과, C#,VB등의 언어를 지원하고 있다. 개발 프레임웍 다양한 라이브러리들을 제공한다. ASP.NET과 같은 MVC기반의 웹개발환경 WebForm과 같은 웹 UI환경 WPF와 같은 클라이언트 UI개발 WCF와 같은 통신 프레임웍 ADO.NET과 같은 DB 접근용 개발 프레임웍등을 제공한다. 런타임 프레임웍 : 자바와 유사하게, Virtual Machine과 같은 런타임환경을 지원한다. 이다. .NET 프레임웍의 런타임 동작 방식 .NET으로 만들어진 프로그램은 컴파일된후 .exe 파일로 존재하는데, 이 exe 파일은 실제 실행 파일이 아니라 자바의 .class 파일 처럼 Machine에 종속적이지 않은 byte code..

ApplicationDomain

.NET에는 Application Domain이라는 개념이 있는데, 사실 시스템의 장애에서 가장 중요한것은 장애의 발생을 막는것도 중요하지만, 장애가 다른 애플리케이션으로 전파되지 않도록 막는것이다. OS에서는 Process가 가장 작은 단위로 별도의 주소 공간, 별도의 Thread 공간을 가지고 가지기 때문에 일반적으로 Process가 가장 작은 Isolation 단위이다. .NET에서는 이를 확장해서 ApplicationDomain이라는 개념을 사용하는데, 하나의 Process를 ApplicationDomain이라는 논리적인 단위로 나눠서 관리하고, 하나의 Application이 하나의 ApplicationDomain 위에서 동작된다. 각 Application Domain은 독립된 주소 공간과 Thr..

새노트북이 왔습니다.

이번 회사는 노트북을 한대밖에 안주는 관계로.(?) 집에서 작업용으로 노트북을 한대 구입했습니다. 기존의 맥을 팔고 한 10만원 보태서 구매했습니다. 집에 있는 맥북은 와이프 전용이 되어 버렸고.. 집에서 공부겸 잔업겸으로 전용 노트북이 한대 필요했거든요.. 주문하려도 몇가지 고민좀 하다가 주문 당일 되니까는 I3 코어 모델이 나와서 구매했습니다. I3 치고는 싼건지.. 아니면 델이 싼건지는 잘 모르겠습니다만, 삐까뻔쩍한게 기분은 좋습니다. 키보드 터치도 마음에 들구요. 카메라도 달렸군요. 출장가면 유용하겠습니다. 포트들을 보니까는 약간 싼티가 납니다. ㅜㅡ 전체적으로 메탈 소재라서 지금은 멋집니다만, 나중에 기스나고, 지문 묻으면 장난 아니겠군요. 오늘 매우 피곤한데, 그래도 개봉이라도 해보고 잘라고 ..

사는 이야기 2010.05.10

Microsoft Sync Framework (MSF)

오늘 제안 관련해서 잠깐 살펴본 내용인데, MS에는 MSF라는 프레임웍이 있다. 무엇인가 하니, 두개의 DataSource를 동기화 시켜주는 것이다. Outlook client와 Win Phone 동기화 시켜주는것, ITunes에서 컨텐츠 동기화와 같은 동기화가 대표적인 예이다. MSF는 소스 데이타스토어(이하 DS)에서 타겟 DS로 데이타를 동기화 시켜주는데, 기본적인 원리 자체는 소스 DS의 Item들에 Time stamp 등을 달아서, SRC와 DES을 비교하여 동기화를 해주고, 만약에 Confliction이 발생하면 Call back에 정의된 Rule에 따라서 Confliction을 처리해주게 된다. 간단한거 같은데, 왜 MSF가 필요하냐? 일단 구조를 보면, 데이타를 가지고 오고 비교하기 위한 ..

ildasm (C# 디컴파일러)

C#에도 자바의 JAD와 비슷하게 디컴파일툴이 있는데, ildasm.exe라는 도구이다. *.exe 파일을 ildasm을 통해서 디컴파일 해보면 어셈블리코드로 대략 어떤 작업을 하고 있는지 볼 수 있다. (Reverse engineering할때 유용할듯) 사용방법은 프로그램 > 시작 > Visual Studio Folder > Visual Studio Command Prompt를 실행한 후 ildasm 을 치면 GUI 툴이 뜬다. 파일메뉴에서 EXE 파일을 열면 된다. 보고싶은 메서드를 더블 클릭하면 어셈블리 코드를 보여준다. 아래는 간단한 HelloWorld.cs를 디어셈블해본 내용 HelloWorld.cs using System; using System.Collections.Generic; using..

IIS의 Asynchronous 처리.

확인을 좀 해봐야알겠지 IIS의 Request 처리 메카니즘은 Java 기반의 WAS 보다 뛰어난것 같다. 일단 Asynchronous IO 처리라는 것이 되는데, 이는 WebLogic Server에서 최근에 추가된 Future Servlet과 유사한듯 하다. 보통 WAS는 Request를 받으면, 해당 Request를 처리하는 Thread가 Allocation이 되고, Response를 보낼때 까지 Thread를 잡고 있는데, DB나 외부 시스템을 호출하는 IO가 있을 경우 IO 처리 시간동안 Thread를 점유하는 비효율적인 메카니즘이 생겨나고, 이는 실제 처리할 수 있는 Request 수를 줄인다. 이를 보강하는 방법인 일단 Request를 받은 후에, 처리가 완료될때까지 Thread를 Releas..

IIS Process 구조

IIS 6.0 기준이고, 5.0은 구조가 다르다. HTTP.SYS 라는 커널 레벨의 디바이스드라이버에서 HTTP Request를 받는다. 어떤 AP인지 식별한 다음에, AP POOL에서 W3WP.EXE를 Invoke해서 사용한다. W3WP.EXE에서 aspnet_isapi.dll을 호출하여, 컴파일된 ASP의 DLL을 수행한다.일반적인 웹서버 아키텍쳐와 같은데, 각 Request를 Thread가 아니라 Process가 핸들링 하는 형태이고 상용 WAS와 유사하게 AP별로 POOL을 나눠서 관리하고, POOL별로 AP을 디플로이 할 수 있다. 참고 : http://dotnetslackers.com/articles/iis/ASPNETInternalsIISAndTheProcessModel.aspx

오늘 상무님께 들은 재미있는 커리어 이야기..

오늘 상무님께서 담배피러가자고 하셔서 따라갔다가 재미있는 이야기를 하나 들어서 정리해 봅니다. 직장생활이 마치 보잉 747의 이륙 과정과 같다고 하더군요. 30대에는 이륙 준비를 위해서 연료를 채우는 시기랍니다. 이때 커리어, 자기 관리, 인맥들을 해놓은 사람들은 준비가 된것입니다. 40대가 되면 활주로에 서게되는데 이때 30대에 준비해놓은 사람들은 이륙해서 50대에 하늘로 비행을 하는겁니다. (정상에서 만납시다!!) 라는 메세지와 함께 이륙하는거지요. 준비를 해놓지 못한 사람은 40대에 이륙하지 못하고, 브레이크를 잡거나 (계속 활주로에 머물러 있는 겁니다. 기존 회사에 남아 있는 건데, 이것도 뒤에서 비행기 오면 비켜줘야져..) 아니면 계속 액셀 밟아서 낭떨어지로 떨어지거나 시궁창에 쳐박히는 겁니다...

사는 이야기 2010.05.04

비지니스맨에게 유용한 무료 아이폰앱 3개.

아무래도 직장인이다보니, 스마트폰이 일하는데 매우 유용합니다. 그중에 비지니스에서 가장 밀접하게 사용되는게 Task 관리와 연락처 관리 등인데. 괜찮은 무료 앱이 있어서 소개합니다. 첫번째로 명함 스캔앱입니다. Camcard lite로 http://itunes.apple.com/kr/app/id364514190?mt=8 에서 다운 받을 수 있습니다. 명함을 사진찍으면 바로 연락처로 등록할 수 있게 해줍니다. 주소나, 이름, 이메일,연락처들을 자동 인식하는데, 인식률이 상당히 높습니다. 요즘 애용하고 있습니다. 두번째는 Task 관리 도구입니다. Awesome note, Franklin Covey(플랭클린 플래너의 앱버전),Infomant등 여러가지 테스트해봤는데, Task 관리도구는 간단하고 직관적인 것..

MS SQL Replication 아키텍쳐

MS SQL은 데이타 베이스간의 실시간 데이타 복제를 위해서 "Replication"이라는 기능을 제공한다. 딱 보면, Oracle의 Golden Gate, IBM의 Info sphere, Quest의 Shareflex,MySQL의 geo replication 과 비슷한 CDC 기능이다. Replication 방식은 크게 두가지로 나뉘어 지는데, Snapshot replication과 TransactionalReplication이다. Snapshot Replication 이 복제 방식은 간단하게 생각하면 Source 데이타 베이스의 내용을 Export해서 Target에 Import하는 개념으로 생각하면 된다. 데이타 베이스에 대한 복제를 시작하기 전에 초기 데이타를 적재 하거나, 또는 업무가 없을때 데이..

알아두면 편리한 MS 오피스 2010 기능-OneNote

MS에 근무하는 지라.. 일단 최신 MS 제품으로 업무를 보고 있습니다. Win7 EE에 오피스 2010인데... 유용한 기능이 하나 있어서 소개해둡니다. 일 성격상 여러 웹문서를 봐야하고 각종 노트와 메모를 해야 하는데, 예전에는 FreeNote등을 사용했습니다. 오피스2010에는 OneNote라는 것이 등장했는데, 이놈이 물건이더군요.. 1. 웹페이지를 노트에 그대로 저장할 수 있다. 웹페이지에서 Print를 누르고, Print To OneNote하면, 해당 페이지를 이미지 처리해서 One Note에 그대로 저장해줍니다. 북마크 할필요도 없고, 여러 Comment를 첨부할 수 있어서 매우 유용합니다. 2. 저장소를 네트웍으로 해서 어디서나 사용이나 공유가 가능 OneNote의 저장소를 PC가 아니라 ..

새직장 출근2일째...

오늘이 새직장 출근 2일째입니다. 새로 옮긴 직장은 다름이 아니라 Microsoft Korea입니다. 컨설팅에서 엔터프라이즈 고객을 대상으로하는 아키텍트롤을 맏고 있습니다. 자바만 하던놈이 왠 MS냐? 하실 수 있으실텐데... 여러 이유가 있겠지만 일단 블로그상을 통해서 밝힐 수 있는 이유는 다들 아시겠지만, 현재 기술의 선도는 더이상 IBM,SUN,Oracle과 같은 벤더 보다는 Twitter,FaceBook,Google,Apple등 서비스 영역에서 이루어지고 있습니다. 엔터프라이즈 기술에 기반을 둔 저로써는 엔터프라이즈+서비스를 모두하고 있는 Microsoft가 하나의 선택이 됩니다. 자바는 할만큼 했다? 10년 했으니 오래한것 같기는 합니다. :) 물론 새로운 기술이 계속 나오고 있으니, 할만큼 했..

사는 이야기 2010.04.27

Time to move on ... (옮길때가 되었습니다.)

오늘 제임스고슬링이 Oracle(Sun)을 떠난다는 글이 블로그에 포스팅이 되었더군요. 저도 옮길때가 된거 같습니다.(me too!!) :) 마침 고슬링 글이 올라올때랑 비슷해서 인용해보았습니다. ^^ 98년부터 자바쪽에 몸담고 일을 했는데, 이제 O社를 떠사서 다른쪽으로 넘어갑니다. 고슬링 말처럼 저역시 "do more harm than good" 입니다. 정확한 이유를 이야기 하는건 무의미 합니다. 10년 넘게 자바쪽의 경력으로 "자바스터디 조대협"이라는 이름으로 활동했습니다. 10년전에 만들었던 자바 커뮤니티 사이트 자바스터디, JCO 등의 백그라운드를 가지고 있는 이름이었기 때문에 이를 모두 버리는 결정이 쉽지는 않았습니다. 다만 좋은 이유만 밝힌다면, 이제 아키텍트로써 기술에 종속되지 않고 시스..

사는 이야기 2010.04.12

ROA (REST 아키텍쳐)의 완성

고객사 차세대 아키텍쳐에 대한 Blue Print를 Research하다가 NoSQL (Cassandra, HBase)등을 reference했는데, 결과적으로 ROA 아키텍쳐의 완성은 NoSQL DBMS가 있어야 하는게 아닌가 싶다. 보고용 Article을 좀 쓰다가 정리가 안되서 blog에 포스팅하는데, ROA에서 문제는 기존의 RDBMS는 ROA의 Resource구조와 맵핑이 잘 안된다. ROA는 1 resource가 하나의 저장소에 저장되는 형태가 좋은데, (하나의 ROW라던지). RDBMS는 여러개의 Table에 걸쳐서 데이타가 나누어 저장되고, Key 구조도 FK를 이용하거나해서 복합 키가 생겨 버려서 Key 정의에도 모호성이 보인다. 반면에 NoSQL DB, 특히 Column형 DB는 Key &..

분산데이타 베이스 Cassandra vs HBase 에 대한 짧은 의견

http://www.roadtofailure.com/2009/10/29/hbase-vs-cassandra-nosql-battle/comment-page-1/ Cassandra의 센터간 데이타 복제에 대한 자료를 찾다가 발견했는데, Cassandra 소개 페이지에 들어가보면 inter-data-center 복제가 가능하다고 명시되어 있다. 그런데 위의 링크된 문서를 보니 방식이 Coordinator가 변경된 내용을 실시간으로 복제하는 방식이다. 문제는 전제 조건이 센터간 Fiber 망을 사용하는 low latency 환경이라야 하는것.. 이래서야 센터간의 망 구축 비용이 더 들테니까는 PASS, 거기에 아직 검증된 사례가 없다. 반면에 HBase의 경우 Golden Gate와 같은 CDC나 MySQL ge..

아파치 분산 데이타 베이스 Cassandra 소개

Introduction of Cassandra 카산드라는 구글의 BigTable 컬럼 기반의 데이타 모델과 FaceBook에서 만든 Dynamo의 분산 모델을 기반으로 하여 제작되어 Facebook에 의해 2008년에 아파치 오픈소스로 공개된 분산 데이타 베이스 입니다. 기존의 관계형 데이타 베이스와 다르게 SQL을 사용하지 않는 NoSQL의 제품중의 하나이며, 대용량의 데이타 트렌젝션에 대해서 고성능 처리가 가능한 시스템이다.(High-Scale). 노드를 추가함으로써 성능을 낮추지 않고 횡적으로 용량을 확장할 수 있다. 얼마전에 트위터도 MySQL에서 Cassandra로 데이타베이스를 전환하였다고 한다.. 자바로 작성되었음에도 불구하고, 데이타베이스라는 명칭에 걸맞게 여러 프로그래밍 언어를 지원합니다..

세계를 못 따라가는 한국 IT 기술들..

요즘 하는 프로젝트가 글로벌 스케일의 시스템 아키텍쳐를 잡고 있습니다. 쉽게 이야기 하면 수천만명이 사용하는 시스템에 대해서 여러 국가에 데이타센터에 서버를 두고 하나의 서비스처럼 이용하게 해주는 것입니다. 페이스북,트위터 같은 서비스들이 되겠군요. 이미 제 블로그에서도 오래전부터 이야기 했지만, 엔터프라이즈 기술들은 이미 이런 SNS 쪽에 비해서 기술이나 트렌드를 못 따라가는 것 같고.. 오늘 하고 싶은 이야기는 전세계의 서비스는 High Scale 시스템이다.(동시에 아주 대용량의 트렌젝션을 처리하는 시스템), Geo Replication이다. (대륙간 클러스터링 및 데이타 동기화) 등에 대해서 이야기 하는데.. 한국에는 정작 이런 사례나 기술이 전무하다는 겁니다. 작은 땅떵어리에서 IDC 여러개에 ..

Cassandra 분산 데이타 베이스

오늘 Facebook에 이어서 Twitter도 MySQL에서 Cassandra 데이타베이스를 사용한다는 기사를 봤습니다. http://www.ciobiz.co.kr/news/articleView.html?idxno=2064 아마 오라클의 MySQL 인수와 관련이 있지 않는가 하는 생각도 듭니다. 예전 천리안,하이텔 PC통신 시절에는 RDBMS가 대용량의 게시물 처리에 맞는 성능을 내지 못해서 ISAM과 같은 파일 시스템 기반의 데이타 저장 구조를 가졌던 것을 기억합니다. Facebook이나 Twitter도 상당히 많은 양의 트렌젝션을 가지고 있는 SNS 사이트중 하나입니다. (거의 대표급이라고 봐야져..) SNS는 복잡한 RDBMS 연산이 필요 없습니다. 오라클과 같은 관계형 데이타베이스의 복잡한 JOI..

[연재] 2010년 IT 트랜드-2.가상화 기술의 본격화

사실 가상화 자체는 나온지 오래된 기술이다. 세삼스럽게 이런 구닥다리 기술이 작년에 이어 올해에도 계속 주목 받는 이유는 무엇일까? 몇가지 원인을 꼽을 수 있는데, ① 그린 IT의 필요성 ② 클라우드의 발전 ③ 기술의 현실성 그린 IT는 이산화탄소 배출양을 줄이기 위해서 전기 사용량을 줄인다는 개념을 포함하는데 더욱 쉽게 말하면 서버 운영에 들어가는 비용을 줄이겠다는 것이다. 보통 데이타 센터의 서버는 평상시 CPU 사용률이 30~40%정도 밖에 안된다. 나머지는 잘못된 용량 산정이나 Peak Time에 대한 대비이다. 가상화를 사용하면 하드웨어 자원을 유동적으로 배정해서 이 자원의 사용률을 80~90%까지 극대화 할 수 있어서 하드웨어 자원에 대한 비용을 절약할 수 있고, 전기료와 하드웨어를 설치할 공..