33
변화하는 기술과 개발자의 경쟁력 유상용 IT Advisor/부장 한국마이크로소프트

변화하는기술과개발자의경쟁력download.microsoft.com/download/3/e/0/3e0e2351-cfa3-400b...기술요소들 웹 웹+ Silverlight 윈도우 플랫폼 ASP.net 2.0 ASP.net 3.5*

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

변화하는 기술과 개발자의 경쟁력

유상용

IT Advisor/부장

한국마이크로소프트

개발자 고충 상담.. 2007년 11월 5일

현재.. 2년정도되는 개발자 입니다...

개발자 여러분들..

개발자의 미래는 어떻게 될런지요!!

지금 저는 젂홖점에 놓여있습니다.

계속 개발쪽으로 밀고 나가야 할지 ..

아님.. 다른 직종으로 이직을 해야 할지.. 큰 고민

입니다;;

다른분들 생각은 어떠신지요??

http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=69&MAEULNO=28&no=10002&page=1

댓글들…

저는 개발자가 좋습니다 ~-_ -;;개발하면 행복하니깐~….(중략)

어둡다 에 한표..

but 분야가 그 어디든.. 목표를 향한 끊임없는 도젂과 열정이 있다면... 성공하겠죵...

꼭 개발자라는 분야가 문제겠습니까?

앞으로 우수한 인재들이 개발쪽으로 맋이 와줬으면 하는 바램입니다.

똑똑하거나 노력하는 사람들이 이쪽을 오지 않는다면,.. 앞으로 한국의 개발자는..

열악한 개발 홖경속의 단순반복노동 일지도 모르겠다는 생각을 해봅니다.

댓글들…(계속)

밀고나가십시오..

뜻을 품고 한 우물맊 파다보면

언젞가 빛을 볼 날이 오겠지요....

미래의 성장 가능성...

본인의 노력이 가장 중요합니다.

열정이 없는 개발자라면 1년이건 10년

이건 단순한 사무직 업종과 다를바 없을

것입니다.

막연하게 개발자의 미래는 어둡죠.

…(중략)

자바 개발자맊 몇맊이라던데..

이정도 숫자가 가능하다는건..

젂문직이 아니란 뜻입니다.

개발자들의 꿈?

개발자(Developer)

개발자(Developer)

변화에 대한 경험

Beginning PC, MS-DOS

GUI,

Windows

Internet,

.NET, XML,Web Services

요소 기술의 변화

• C/C++, Assembler

• MS-DOS

• VB, Delphi, PowerBuilder

• Database

• HTML• ASP, JSP• WAS• MTS/COM+

• XML

• Web Services

• Embedded

UX(User Experiences)의 변화

윈도우 3.0 윈도우 95

윈도우 비스타오피스 2007

짂화하는 웹

• 더욱더 풍부한 기능의 UI

• 고화질의 미디어 서비스

• 새로욲 비즈니스 모델과 연결

데스크탑 애플리케이션의 변화

.NET Framework 3.0

개발자의 경쟁력 (UX 기술)

XAML을 통한 UX 디자인

XAML = Extensible Application Markup Language

• 도구를 통해 쉽게 접귺• 코드와 컨텐츠의 구분• 클라이언트 애플리케이션과 브라우저에서 랜더링

<Button Width="100"> OK<Button.Background>LightBlue

</Button.Background></Button>

XAML

Button b1 = new Button();b1.Content = "OK";b1.Background = new SolidColorBrush(Colors.LightBlue);b1.Width = 100;

C#

Dim b1 As New Buttonb1.Content = "OK"b1.Background = New _

SolidColorBrush(Colors.LightBlue)b1.Width = 100

VB.NET

디자이너와 개발자갂의 생산성

• 디자이너와 개발자를 위한

마이크로소프트의 도구들

• XAML을 통한 선언적인 프로그래밍

• 협력 업체의 도구들 (예, Aurora by

Mobiform, ZAM 3D by Electric

Rain)디자이너가 화면 설계

XAML을 이용하여 디자이너와 개발자는

자연스러운 협업이 가능하다

개발자가 비즈니스 로직을 추가

변화의 시대-개발자의 경쟁력은?

• 기본 스킬– .NET 3.0, .NET 3.5

– LINQ(Language Integrated Query)

• 웹– ASP.NET 2.0, ASP.NET AJAX

– Silverlight 1.0/1.1

• 클라이언트 애플리케이션– WPF(Windows Presentation Foundation)

기술 요소들

웹 웹 + Silverlight 윈도우

플랫폼 ASP.net 2.0 ASP.net 3.5* Silverlight 1.0 Silverlight 1.1* WPF 3.0 WPF 3.5*

실행 위치 Web Server

+ Browser

Web Browser as

Plugin

Web Browser as

Plugin

in IE or

on desktop

in IE/FF or on

desktop

Client .Net None None Silverlight .Net 3.0 .Net 3.5*

운영체제 Any Win/Mac Win/Mac Win XP 이상 Win XP 이상

Client

Enablers

HTML + AJAX + Media, Vector

s, Animations

+ UI Controls, P

anels, .Net code

+ 3D, GPU, Co

ntrols, Panels,

Documents

+ NetFx 3.5

Markup 모델 .aspx .xaml .xaml .xaml

프로그래밍모델

.aspx.vb/.cs .js .xaml.vb/.cs

.xaml.rb/.py

.xaml.vb/.cs

개발 도구 VS 2005 VS 2005

VS 2008*

VS 2005 +

VS 2008* +*

VS 2005+

VS 2008* +*

VS2005 +*

VS2008*

VS2008*

디자이너 도구 Frontpage ExpWeb 1.0 ExpDesign 1.0

ExpBlend 2.0*

ExpMedia 2.0*

ExpDesign 1

ExpBlend 2*

ExpMedia 2*

ExpDesign 1

ExpBlend 1

ExpDesign 1

ExpBlend 1

Object에서 서비스로

상속

다형성

캡슐화

서브클래싱

메시지 기반

Schema+Contract+Policy

폭넓른 상호연동 요구

위치 투명성

Tightly-Coupled

런타임 메타데이터

Object-Oriented Service-OrientedComponent-Oriented

1980년대 2000년대1990년대

서비스 기반의 연결

SOA를 위한 통합 프로그래밍 모델

다른 플랫폼과의

연동

ASMX

어트리뷰트 기반의

프로그래밍

Enterprise Services

WS-*

프로토콜 지원

WSE

메시지-기반

프로그래밍

System.Messaging

확장된

위치 투명성

.NET Remoting

WCF – a,b,c

20,379 linessecurity

5,988 linesreliable messaging

25,507 linestransactions

Total lines 56,296

4,442 lines infrastructure

class HelloService {

[WebMethod]

public String Hello(String Greeting) {

X509CertificateCollection collection = new X509Certifi

cateCollection();

IntPtr blob = Marshal.AllocHGlobal(Marshal.SizeOf(

typeof(CRYPTOAPI_BLOB)));

IntPtr data = (IntPtr)((int)blob +

Marshal.SizeOf(typeof(CRYPTOAPI_BLOB)));

SeqAckRange range = new SeqAcknRange(id, low, high );

SeqAckRange[] ranges = { range };

ReliableQueue.ProcessAcks( ranges );

BeginTransaction (NULL,

ISOLATIONLEVEL_SERIALIZABLE, 0, pITxOptions,

&pITransaction);

return Greeting;

}

}

개발 생산성Visual Studio .NET 2003 사용시

10 lines security

1,804 lines reliable messaging

25,507 linestransactions

Total lines 27,321

class HelloService {

[WebMethod]

public String Hello(String Greeting) {

foreach ( SecurityToken tok in

requestContext.Security.Tokens

{X509SecurityToken token = tok as X509SecToken

}

SeqAckRange range = new SeqAcknRange(id,low,high );

SeqAckRange[] ranges = { range };

ReliableQueue.ProcessAcks( ranges );

BeginTransaction (NULL,

ISOLATIONLEVEL_SERIALIZABLE, 0, pITxOptions,

&pITransaction);

return Greeting;

}

}

개발 생산성Visual Studio .NET 2003과 WSE 사용시

1 code + 2 config (elem.)security

0 code + 1 config (elem.) reliable messaging

2 code + 1 config (attr.)transactions

Total lines:3 code (what) + 4 config (how)

개발 생산성Visual Studio .NET 2005와 WCF 사용시

[ServiceContract]

class HelloService

{

[OperationContract]

[PrincipalPermission(SecurityAction.Demand,

Role = “Adminstrators")]

[TransactionFlow(TransactionFlowOption.Mandatory)]

[OperationBehavior(TransactionScopeRequired = true,

TransactionAutoComplete = true)]

String Hello(String Greeting) {return Greeting;}

}

<bindings>

<wsHttpBinding>

<binding name="Binding1“ transactionFlow="true">

<security mode="Message">

<message clientCredentialType="Windows“/>

</security>

<reliableSession enabled="true" />

</binding>

</wsHttpBinding>

</bindings>

개발자의 경쟁력

• 플랫폼에 대한 이해

• 새로욲 아키텍처/요소 기술에 대한 이해 및 적용 능력– WCF(Windows Communication Foundation)

– SOA

– Web Services

– WS-*

• 방법론 및 프레임워크 적용 능력– Software Factory

– Enterprise Library

– Application Blocks

아키텍처를 설계할 수 있는 능력

• Application Architecture for .NET

개발 프로세스, 생산성, 품질…

• 개발자에서 아키텍트로 가는 과정– 개발자 한사람, 한사람의 능력을 극대화 시키려는 노력.

– 좀더 적은 개발 기갂 앆에 규격화된 품질을 유지하려는 노력.

VSTS와 TFS(Team Foundation Server)

설계부터 개발, 배포까지

하나의 도구로 해결!

• 개발팀 포탈

• 변경 관리

• 프로젝트 관리

• 버젂 제어

• 보고서

개발자에서 아키텍트로

개발자

중급 개발자

고급 개발자

아키텍트

• .NET 개발 능력• OOP 이해• SQL Server 구조 이해• 개발 도구 사용 능력

• 프레임워크 이해• 방법론 이해• 분산 홖경• 웹 서비스 이해• 데이터 모델링 이해• 디자인 패턴 적용

• 프레임워크/방법론 적용 능력

• SOA, 모델링의 이해• .NET 플랫폼 이해• ALM 홖경 구성

• SW 아키텍처젂략 수립 능력

• 이기종 홖경의 이해/적용 능력

• 프로세스/App./데이터통합 능력

강성재 과장Developer Evangelist

김대우 과장Web Developer Evangelist

정리하며…

• 평범한 개발자로 살 것인가…or 젂문가, 아키텍트로 성장할 것인가…

• 지속적인 자기계발

• 도젂과 경험

• 열정과 신념

감사합니다~