소프트웨어 301

Azure Services

마이크로소프트의 클라우드 플랫폼인 Azure Services Platform이 작년 10월 처음 공개된 이후 지난 3월 MIX를 거치면서 많은 기능이 추가되었고 5월을 지나면서 몇 가지 추가된 기능들이 있어 소개하고자 한다. 1. Azure Services Platoform은 라이선스를 파는 제품이 아니라 서비스 형태로 제공되는 것이며, 이의 구성 요소 가운데 클라우드 OS에 해당하는 Windows Azure에 추가된 기능으로 배포될 위치를 지정할 수 있는 Geo-Location 지원 기능이 있다. 이는 나의 서비스가 어느 곳에 위치한 데이터센터에 배포되어 서비스를 제공할 것인지를 서비스 생성시에 지정할 수 있는 것으로 현재는 아래 그림에서와 같이 북미 북부 혹은 남부 정도만 선택할 수 있다. 2. 지난..

ASP.NET 2.0 프로젝트의 특정 폴더의 설명

l App_Browsers 폴더 각 브라우저를 식별하고 기능을 확인하기 위해 ASP.NET에서 사용하는 브라우저 정의 파일을 포함합니다. l App_Data 폴더 Microsoft Access 데이터베이스(.mdb 파일), XML 파일, 로컬 파일에 저장된 기타 데이터 등을 포함합니다. 응용 프로그램을 실행하는데 사용되는 사용자 계정(예: 로컬 ASPNET 계정)에는 이 폴더에 대해 파일을 읽거나 쓰고 만들 수 있는 권한이 부여됩니다. 웹 사이트관리 도구와 다양한 ASP.NET 응용 프로그램 기능(예: 멤버 자격 및 역할에 대한 공급자)은 App_Data 폴더에만 사용되도록 구성되었습니다. l Bin 폴더 이전 버전의 Visual Studio와 마찬가지로 컴파일된 코드를 포함합니다. Bin 폴더의 코드가..

.NET Assembly

.NET Assembly 닷넷을 어느정도 공부해본 사람들은 어셈블리(assembly)에 대한 말을 많이 듣게 되는데, 닷넷 어셈블리가 무엇인지, 어떻게 사용하는 것인지 한번 생각해 보도록 합시다. 어셈블리란 무엇인가 1. 어셈블리는 코드들의 논리적인 묶음이다. 2. 어셈블리는 물리적으로 DLL또는 EXE로 존재한다. 3. 한 개의 어셈블리는 한 개이상의 파일을 포함할 수 있다. 4. 어셈블리안에는 어떤 형태의 파일도 포함될 수 있다(예: 텍스트 파일, 이미지파일등) 5. 작성된 소스코드가 어셈블리로 묶여지지 않다면, 다른 어플리케이션에서는 이용할 수가 없다. 6. 어셈블리파일엔 자체정보를 가지고 있는데 이를 어셈블리 메니페스트(Manifest)라 한다. 어셈블리 메니페스트(manifest)에 대해 1. ..

연산자 오버로딩 - 인덱스

class Point { public int x; public int y; public Point(int x, int y) { this.x = x; this.y = y; } public override string ToString() { //(x,y)값 return String.Format("({0},{1})",x,y); } // + 연산자 메서드 public static Point operator +(Point pt1, Point pt2) { return (new Point(pt1.x + pt2.x, pt1.y + pt2.y)); } // - 연산자 메서드 public static Point operator -(Point pt1, Point pt2) { return (new Point(pt1.x - p..

자바스크립트 HTML에서 주석문 달지말자!

흔히 HTML상에서 자바스크립트나 다른 스크립트 언어를 사용할 경우 주석문을 처리해주는 경우가 많다. 물론 다른 스크립트의 경우 충분히 사용할 이유가 있지만 자바스크립트의 경우 그야말로 접근성만 떨어뜨리는 일이다. 사실 HTML에서 주석문으로 처리해준 이유는 자바스크립트를 정상적으로 해석하지 못하는 브라우저들이 스크립트 구문을 그냥 출력해버리는 것을 막기위한 방법으로 사용되어왔지만 현재 사용되는 브라우저중에 자바스크립트가 지원되지 않는 브라우저는 거의 없으며 만약 지원이 되지 않더라도 스크립트가 출력되지는 않는다. 오히려 주석문 보다는 로 스크립트를 감싸줄것을 권한다. 자바스크립트는 해석하지 못하더라도 HTML를 해석할 수 있는 브라우저라면 ( 그것도 해석안되면 그건 웹브라우저 자격이 없을테니 말이다. ..

웹브라우즈별 data URI scheme 테스트

제가 필요해서 몇가지를 테스트를 해 보았습니다. 즉 이미지를 http://cfile21.uf.tistory.com/image/24083B4E56E668962FDD6D"target_resize_image[]" onclick="image_window(this)" style="cursor: pointer;" src="http://cfile29.uf.tistory.com/image/2535F43B56E66896122587" height="100" width="100"> 위의 이미지는 data:image/gif;base64 의 이미지를 src 에 바로 넣어 준 경우 입니다. 위의 경우 사용가능 한 웹 브라우즈는 FF 계열(크롬, 오페라, 사파리 등) IE 8 >= 에서만 가능하였고 그 외 웹 브라우즈에서는 엔팍으..

jQuery Selector 를 이해해 보자.

강력한 jQuery Selector. javascript 의 원래 문법에 비해 너무도 강력한 css style 의 selecting 을 지원한다. 하지만 css 엔진을 이용하는 것이 아니고, 원래의 javascript 접근방식으로 재해석하여 동작하는 것이므로, jQuery 가 어떻게 selecting 해 올지 예상하는것이 필요하다. 그렇지 않으면 모든 dom 객체를 수십번 훑는 막장 코드가 나올지도 모른다. 일단 js 에서 dom 객체를 선택하는 방법을 생각해 보자. document.name getElementById() getElementsByName() getElementsByTagName() getElementsByClassName() getElementsByClassName() 의 경우 최신의 몇..

C#에서의 데이터형

값형과 레퍼런스형 비교 닷넷에서 제공하는 데이터형은 변수가 어떤 값을 갖느냐에 따라 분류 값(value) 형 변수가 실제 데이터 값을 직접 가지고 있는 경우 값(value) 형은 스택(stack) 메모리 공간에 저장되며, 할당 연산을 했을 때 별도의 메모리 영역에 할당 레퍼런스(reference) 형 변수가 실제 데이터 값이 있는 곳을 가리키는 값을 갖는 경우 레퍼런스(reference) 형은 힙(heap) 메모리 공간에 저장 할당 연산을 했을 때 힙 메모리 공간을 가리키는 레퍼런스 변수 값 사이에서 할당이 일어남 IntObj r1 = new IntObj(); 스택(Stack)데이터 값을 임시로 저장하는 메모리 영역으로, 보통 메서드의 인자, 메서드 안에 선언한 변수들이 스택 공간에 할당 힙(Heap)일..

닷넷 3.5를 이용한 디자인 패턴의 구현 (4)

이름에 짐작할 수 있듯이, Observer 패턴은 오브젝트의 상태를 관잘하는 데 사용된다. 이 패턴이 약간 변형된 패턴이 출판 (Publish)과 구독(Subscribe)이다 관찰 대상 오브젝트는 어떤 이벤트 혹은 이벤트들을 "출판"하고 이들을 주시하고 있던 오브젝트들(관찰자들)은 발생한 이벤트를 "구독"한다. 이것을 좀 더 단순화하기 위해, 두 패턴을 모두 Observer 패턴이라고 부를 것이다. 사실 이 두 가지 패턴의 차이는 보는 관찰 시점의 차이일 뿐이다. 쉽게 얘기해서, '당신이 나를 관찰하고 있나요? 와 내가 당신이 구독하려는 나의 이벤트를 출판하고 있나요? 의 차이와 같다. 전자는 나를 보는 관점이 타인이 시점이고 후자는 자신의 시점에서 일어나는 이벤트를 관찰하게 된다. Observer 패턴..