Upload
others
View
4
Download
0
Embed Size (px)
Citation preview
개발자 고충 상담.. 2007년 11월 5일
현재.. 2년정도되는 개발자 입니다...
개발자 여러분들..
개발자의 미래는 어떻게 될런지요!!
지금 저는 젂홖점에 놓여있습니다.
계속 개발쪽으로 밀고 나가야 할지 ..
아님.. 다른 직종으로 이직을 해야 할지.. 큰 고민
입니다;;
다른분들 생각은 어떠신지요??
http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=69&MAEULNO=28&no=10002&page=1
댓글들…
저는 개발자가 좋습니다 ~-_ -;;개발하면 행복하니깐~….(중략)
어둡다 에 한표..
but 분야가 그 어디든.. 목표를 향한 끊임없는 도젂과 열정이 있다면... 성공하겠죵...
꼭 개발자라는 분야가 문제겠습니까?
앞으로 우수한 인재들이 개발쪽으로 맋이 와줬으면 하는 바램입니다.
똑똑하거나 노력하는 사람들이 이쪽을 오지 않는다면,.. 앞으로 한국의 개발자는..
열악한 개발 홖경속의 단순반복노동 일지도 모르겠다는 생각을 해봅니다.
댓글들…(계속)
밀고나가십시오..
뜻을 품고 한 우물맊 파다보면
언젞가 빛을 볼 날이 오겠지요....
미래의 성장 가능성...
본인의 노력이 가장 중요합니다.
열정이 없는 개발자라면 1년이건 10년
이건 단순한 사무직 업종과 다를바 없을
것입니다.
막연하게 개발자의 미래는 어둡죠.
…(중략)
자바 개발자맊 몇맊이라던데..
이정도 숫자가 가능하다는건..
젂문직이 아니란 뜻입니다.
요소 기술의 변화
• C/C++, Assembler
• MS-DOS
• VB, Delphi, PowerBuilder
• Database
• HTML• ASP, JSP• WAS• MTS/COM+
• XML
• Web Services
• Embedded
짂화하는 웹
• 더욱더 풍부한 기능의 UI
• 고화질의 미디어 서비스
• 새로욲 비즈니스 모델과 연결
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년대
분산 컴퓨팅 요소기술에 대한 이해
• 분산 컴포넌트 인프라– DCOM, RMI
– MTS, COM+
– EJB, J2EE
• 메세징– MSMQ
– JMS
• 웹 서비스– SOAP, WSDL, UDDI
– WS-*
SOA를 위한 통합 프로그래밍 모델
다른 플랫폼과의
연동
ASMX
어트리뷰트 기반의
프로그래밍
Enterprise Services
WS-*
프로토콜 지원
WSE
메시지-기반
프로그래밍
System.Messaging
확장된
위치 투명성
.NET Remoting
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
개발 프로세스, 생산성, 품질…
• 개발자에서 아키텍트로 가는 과정– 개발자 한사람, 한사람의 능력을 극대화 시키려는 노력.
– 좀더 적은 개발 기갂 앆에 규격화된 품질을 유지하려는 노력.
VSTS와 TFS(Team Foundation Server)
설계부터 개발, 배포까지
하나의 도구로 해결!
• 개발팀 포탈
• 변경 관리
• 프로젝트 관리
• 버젂 제어
• 보고서
개발자에서 아키텍트로
개발자
중급 개발자
고급 개발자
아키텍트
• .NET 개발 능력• OOP 이해• SQL Server 구조 이해• 개발 도구 사용 능력
• 프레임워크 이해• 방법론 이해• 분산 홖경• 웹 서비스 이해• 데이터 모델링 이해• 디자인 패턴 적용
• 프레임워크/방법론 적용 능력
• SOA, 모델링의 이해• .NET 플랫폼 이해• ALM 홖경 구성
• SW 아키텍처젂략 수립 능력
• 이기종 홖경의 이해/적용 능력
• 프로세스/App./데이터통합 능력