728x90

마이크로소프트가 닷넷을 비롯한 자신들의 플랫폼, 프레임워크 뿐만 아니라 리눅스 진영을 비롯하여 여러 오픈 소스 과제에 적극 참여하는 건 더이상 새로운 소식이 아닙니다. 오히려 거대 IT 기업들 중에서 마이크로소프트만큼 열린 정책으로 생태계를 지원하고 있는 곳이 있을까 싶을 정도입니다. 이런 기조하에서 근래에 발표했던 멀티 플랫폼 코드 에디터인 비주얼 스튜디오 코드(Visual Studio Code)는 하나의 방점을 찍고 있다해도 고개가 끄덕여 집니다.


마이크로소프트는 이 코드 에디터의 멀티 플랫폼에 대한 지원을 넘어서 아예 비주얼 스튜디오 코드를 깃허브에 오픈소스로 공개했습니다. 사실 비주얼 스튜디오가 ATOM 기반으로 만들어졌기 때문에 어느 시점엔가 오픈소스화를 하지 않을까 싶은 생각은 여러 분들이 했습니다만 생각보다 빨리 공개가 된 것 같아서 무척 고무적입니다. 벌써부터 많은 풀 리퀘스트와 이슈 들이 리포팅 되고 있어 비주얼 스튜디오 코드의 코드(?)품질이 더 급격히 좋아지지 않을까 기대해 봅니다~!






Visual Studio Code - GitHub [바로가기]

Visual Studio Code 공식 웹사이트 [바로가기]



728x90
728x90
마이크로소프트는 다년간 개발자 에코시스템(Eco-system)을 위해 많은 투자를 해 왔습니다. 윈도우 운영체제는 여전히 PC 시장의 대부분을 차지하고 있고 PC 기반의 소프트웨어 개발은 큰 변화 없이 시장의 많은 요구를 받고 있습니다. 그런데 최근 모바일과 스마트 기기가 시장의 새로운 주류로 떠오르면서 전통적인 마이크로소프트 개발자 커뮤니티에 파열음이 일어나기 시작했습니다.

애플이 공급하는 iOS 플랫폼에서의 개발은 높은 광고 수익과 앱내수익(In-App Purchase)를 보여주고 있을 뿐 아니라 안드로이드 단말 역시 최근 많은 시행착오를 통해 애플리케이션을 통한 광고 혹은 앱내수익이 많이 올라가고 있는 추세입니다. 마이크로소프트는 이런 시장 변화에 대응하기 위해 윈도폰7과 윈도폰8, PC 기반의 운영체제에 큰 변화를 가져올 것으로 기대되는 윈도8과 윈도8.1 을 지속적으로 출시하며 적극적인 움직임을 보이고 있습니다.


마이크로소프트 환경 기반의 소프트웨어 개발을 생각한다면 우리가 빼놓을 수 없는 것이 바로 비주얼 스튜디오(Visual Studio)입니다. 일반에게 공개된 가장 최신 버전은 비주얼 스튜디오 2013 버전으로 기존 2010 버전이나 2008 버전이 가지고 있던 불편함에 대한 개선과 새로운 닷넷 프레임워크와 그 변화에 걸맞는 다양한 기능 개선으로 마이크로소프트 기술을 근간으로 개발 업무를 하는 분들에게 Get It 아이템이 된지 오래입니다.

하지만 비주얼 스튜디오를 비롯하 개발도구는 생각보다 비싼 시장 가격이 형성되어 있습니다. 보통 회사에서는 볼륨 기반의 계약이나 MSDN 프로그램, BizSpark 와 같은 기업 지원 프로그램을 이용하여 개발 도구를 공급받기 때문에 상대적으로 비싸다는 생각을 하기 힘들수도 있습니다. 하지만 개인 개발자나 특정 프로그램을 통해 지원을 받기 힘든 경우에는 단품 개발 툴을 구입하는 방법밖에 없을 때도 있습니다.


마이크로소프트는 새해를 맞이하여 새로운 프로모션들을 많이 진행하고 있습니다. 운영체제 정식 출시 전에 충분히 사용자 층을 확보하고 개발자 그룹 / 커뮤니티가 보다 적극적으로 새로운 플랫폼 향으로 개발을 하는 것은 무척 중요합니다. 초반의 시장 분위기 장악은 물론이고 지속적인 선순환 구조를 만들기 위해 개발자 커뮤니티의 지원은 필수적일 수 밖에 없습니다. 

조그만 기업을 설립하고 새로운 서비스 개발을 진행하고 있거나 개인 개발자로서 적정한 금액으로 개발도구의 정식 사용권을 획득하려는 분들에게 마이크로소프트는 비주얼 스튜디오 20% 할인이라는 강수를 들고 나왔습니다. 어떤 선택을 할 것인지는 개인의 몫입니다. 그 선택이 옳던 그르던간에 본인이 무언가를 창조하는 개발자라면 "왜?" 에 대해서 보다 깊은 생각을 해봐야 할 것 같습니다.

개발자와 IT기업을 위한 Visual Studio 2013 할인 행사 살펴보기 [바로가기]



 
728x90
728x90
최근 클라우드 컴퓨팅이 큰 화두입니다. 구글의 Back-end 시스템이 이미 클라우드로 구동되고 있다는 사실은 너무나 많이 알려진 사실이지요. 국내의 대기업들도 너도나도 클라우드 컴퓨팅에 뛰어 들고 있지만 세계적인 IT 벤더들의 발걸음을 따라가기는 무척 힘든 상황입니다.

마이크로소프트가 클라우드 컴퓨팅에 대응하기 위해서 제공하고 있는 서비스의 이름이 바로 Azure 입니다. Azure 는 웹 서비스로의 Role 뿐만 아니라 일반적인 어플리케이션을 위한 Worker Role 을 제공하고 Storage Service 를 통하여 Back-end 의 데이터베이스 기능까지 충실하게 제공하고 있는 클라우드 플랫폼 입니다.

시대적 흐름에 맞추어 닷넷 개발자 분들도 Azure 에 대응하는 스킬을 익혀둘 필요가 있을 것 같습니다. 저역시 이제 시작하는 단계이지만 Azure 에 올려 서비스 할 수 있는 웹, 워크의 개발을 하나씩 살펴보면서 실제 Azure 환경에 포팅하는 것까지 한번 포스팅을 통해서 공유해 볼까 합니다.

개발환경의 준비 : 비주얼 스튜디오 2010 또는 비주얼 스튜디오 2008 서비스팩 1

비주얼 스튜디오에는 Azure 개발환경이 기본적으로 포함되어 있지 않습니다. 비주얼 스튜디오에서 Azure 개발을 시작하기 위해서는 별도로 제공되는 플러그인을 설치하여 개발환경에 템플릿을 추가해 주어야 합니다. NoPD 는 비주얼 스튜디오 2010 을 사용하고 있으나 비주얼 스튜디오 2008을 쓰시는 분들도 서비스팩 1 으로 업데이트를 하면 동일하게 진행할 수 있습니다.


[ 다운로드 링크 : http://tinyurl.com/2a5qnrt ]

Azure 프로젝트 만들기

Azure Tools 를 다운로드 받아 설치하면 비주얼 스튜디오의 템플릿에 Cloud 라는 항목이 추가 된 것을 확인하실 수 있습니다. Cloud 항목 아래에는 Windows Azure Cloud Service 라는 하나의 템플릿만 존재하고 있습니다. Azure 개발은 Visual C# 으로만 제공하는 것일까요? NoPD 의 경우 Visual C# 만 설치한 상태라 이 부분은 잘 판단이 안됩니다만 다른 닷넷 언어가 안되지는 않을거라 생각됩니다.


프로젝트와 솔루션의 이름을 지정하고 확인을 누르면 아래와 같은 창을 만나게 됩니다. Azure 는 Role 이라는 이름으로 프로젝트를 구분짓고 있습니다. Role 이라는 것은 Azure 클라우드 플랫폼에서 구동되는 하나의 어플리케이션이라고 보면 됩니다. Web 형태의 서비스인지(Web Role) 아니면 데몬과 같은 백그라운드 어플리케이션인지(Worker Role) 등에 따라 Role 이 나뉘게 됩니다. 개발하려는 프로젝트의 성격에 따라 항목을 선택해 주면 됩니다.


우리는 솔루션 단위로 프로젝트를 생성하고 개발하기 때문에 솔루션 안에는 여러가지의 Role 이 있을 수 있습니다. 왼쪽에 나열된 항목들 중 필요한 Role 을 모두 우측의 빈 리스트 박스로 이동시켜 주면 프로젝트에서 해당 Role 을 사용할 수 있게 됩니다.

- NoPD -
728x90
728x90
C# 3.0 에서 새롭게 도입된 Lambda 표현식을 사용하면 코드를 정말 간단하게 표시할 수 있는 장점이 있습니다. 델리게이트가 세상에 처음 나타난 이래 이는 정말 많은 프로그램과 개발자들에게 형언할 수 없는 아름다운 생활을 할 수 있는 "기회"를 주었습니다. 물론... 기회에는 반대급부가 따랐지만 말이죠.. 쿨럭... 여튼... 아래의 간단한 세가지 코드를 보면서 코드가 아름다워지는 광경을 한번 보도록 하겠습니다.

Named 메서드의 사용
IEnumerable<string> filteredList = cities.Where(StartsWithL);

public bool StartsWithL(string name)
{
    return name.StartsWith("L");
}

자주 보시던 스타일의 코드입니다. cities 어레이에 들어 있는 값들 중 L 로 시작하는 값을 얻어오는 코드지요. string 클래스의 확장 메서드인 Where 의 도움을 받아 StartsWithL 메서드가 Where 절의 역할을 하고 있습니다.

익명 Delegate의 사용

별도로 메서드를 만들어서 호출하는 것도 나쁘지 않습니다만 이왕이면 코드를 간결하게 유지하기 위해 익명 Delegate를 많이들 사용하실 겁니다. Named 메서드 사용하던걸 익명 Delegate 로 바꿔보겠습니다.

IEnumerable<string> filteredList = cities.Where(
            delegate(string s)
            {
                return s.StartsWith("L");
            }
일단 메서드가 하나 줄어서 기분이 좋습니다 ^^; 익명 Delegate 를 이용해서 위처럼 간단하게 inline 으로 처리를 할 수 있습니다. 그런데 코드가 지저분한 것이 별로 보기가 좋지 않습니다. 이를 람다 표현식으로 바꾸어 보도록 하겠습니다

Lambda 표현식의 사용

IEnumerable<string> filteredList = cities.Where(s => s.StartsWith("L"));
아주 깔끔하게 한줄러 코드를 줄였습니다. 닷넷이 제공하는 컴파일러는 생각보다 똑똑해서 s 라는 변수가 당연히 cities의 타입을 따라간다는 것을 알고 있습니다. 인텔리센스도 실시간으로 당연히 잘 동작하겠지요.

- NoPD -
728x90

+ Recent posts