[STL] 15. VC++ 10에 추가된 새로운 컨테이너 forward_list – 사용편

C++0x 2011. 6. 21. 09:30 Posted by 알 수 없는 사용자

STL의 컨테이너를 사용해보았다면 forward_list라고 해서 딱히 어려운 부분은 없습니다. 다만 forward_list이 단 방향 리스트라는 것과 다른 컨테이너에서는 지원하는 기능이 일부 없다는 것을 잘 숙지해야 합니다.

 

필요한 헤더 파일

forward_list는 이름과 같은 ‘forward_list’라는 헤더 파일을 포함해야 합니다.

#include <forward_list>

 

 

[예제] forward_list를 사용하여 요소 추가, 순회, 삭제하기

#include "stdafx.h"

#include <iostream>

#include <forward_list>

 

using namespace std;

 

 

int main()

{

           forward_list< int > flist;

 

 

           cout << "flist에 추가한 요소들 출력" << endl;

           // 추가하기

           auto iter = flist.before_begin();

           for( int i = 0; i < 5; ++i )

           {

                     iter = flist.insert_after( iter, i );

           }

                    

           // 순회

           for( iter = flist.begin(); iter != flist.end(); ++iter )

           {

                     cout << *iter << endl;

           }

 

           cout << endl;

           cout << "flist의 요소들 중 일부를 삭제한 후 남은 요소들 출력" << endl;

           // 순회 하면서 일부 요소 삭제

           auto prev_iter = flist.before_begin();

           iter = flist.begin();

           while( iter != flist.end() )

           {

                     if( 3 == *iter )

                     {

                                iter = flist.erase_after( prev_iter );

                                continue;

                     }

                     ++prev_iter;

                     ++iter;

           }

 

           // 순회

           for( iter = flist.begin(); iter != flist.end(); ++iter )

           {

                     cout << *iter << endl;

           }

 

           return 0;

}

 

< 결과 >


 

위 예제를 보면 아시겠지만 forward_list std::list에 비해 성능 면의 이점을 가지고 있지만 사용 측면에서는 조금 불편한 점이 좀 있습니다. 그러나 C와 비슷한 성능을 내고 싶은 경우에는 좋은 선택 기가 될 수도 있습니다.

 


참고

http://msdn.microsoft.com/ko-kr/library/ee373568.aspx

[STL] 14. VC++ 10에 추가된 새로운 컨테이너 forward_list – 소개편

C++0x 2011. 6. 14. 09:30 Posted by 알 수 없는 사용자

앞에까지는 STL의 알고리즘에 추가된 것들을 다루었는데 이번에는 컨테이너 하나를 소개하겠습니다. 사실 이 컨테이너는 저도 얼마 전까지만 하더라도 새로 추가 된지 몰랐습니다.^^;

 

새로 추가된 컨테이너의 이름은 forward_list입니다.

이름을 들어보니 대충 어떤 컨테이너인지 감이 오시죠?^^ 네 이 컨테이너는 기존의 list 컨테이너와 비슷한 종류의 컨테이너입니다.

 

 

forward_list를 만든 이유

표준 라이브러리(STL)에는 이미 리스트(std::list) 라이브러리가 있습니다. 이것은 쌍 방향 리스트입니다. list는 사용하기는 편하지만 사용 메모리나 처리 속도에 조금 아쉬운 점이 있습니다. 또 대 부분의 상황에서 쌍 방향 리스트가 필요한 경우보다는 단 방향 리스트만으로 충분한 경우가 자주 있습니다. 이런 이유로 C++0x에서는 단 방향 리스트를 추가하기로 했습니다.

 

 

forward_list의 설계 방침

1. 특별한 이유가 없다면 forward_list는 기존의 list의 설계에 맞춘다.

2. 설계 상의 선택 기가 여러 개인 경우 성능(속도와 사이즈)을 최우선 한다(C의 구조체로 구현하는 경우와 비교하여 Zero Overhead로 한다).

3. std::list insert eraseforward_list에서도 제공할 수 있지만 구현이 복잡해지고 성능 측면에서 좋지 않으므로 제공하지 않는다.

4. 다른 STL의 컨테이너들에 있는 size 함수를 제공하지 않는다. 이유는 요소 수를 보존하는 멤버를가지고 있으면 C언어에서 구현한 것과 비교해서 불필요한 메모리를 사용한다. 만약 이런 멤버를 가지고 있지 않으면서 size 함수를 지원하면 호출할 때마다 모든 요소를 세어야 하므로 계산량이 O(N)이 된다(그런데 유저는 다른 컨테이너와 같이 size의 계산량이 작을 것이라고 생각할 수 있다). 또 이미 unordered와 같은 연상 컨테이너도 기존의 요소를 만족하지 않고 있다.

 

 

STL list 컨테이너와 다른 점

forward_list는 기존의 list와 아래와 같은 점이 다릅니다.

1. forward_list는 단 방향 리스트(singly-linked-list)이다. 각 요소는 그 다음 요소를 가리키는 포인터를 하나만 가지고 있다(list은 양 방향 리스트).

2. (단 방향 리스트이므로) list에 비해서 메모리를 작게 사용한다. 이것은 각 요소의 메모리만이 아닌 컨테이너 그 자체의 사이즈도 작다. int 형에 대해서 list 12바이트라면 forward_list 8바이트이다(64비트에서는 각각 24, 16).

3. list에 비해 삽입/삭제 속도가 더 빠르지만 그 차이는 크지는 않다

4. 한 방향으로만 이동할 수 있다.

5. 삽입과 삭제는 지정한 요소의 다음 요소만 가능하다.

 

 

forward_list의 멤버 리스트

기능

멤버

대입

assign

반복자

befor_begin

 

cbefore_begin

 

begin

 

end

 

cbegin

 

cend

비었는지 조사

empty

현재 크기(size)

지원 안함

사이즈 변경

resize

모두 삭제

clear

선두에 추가

push_front

선두 요소 삭제

pop_front

선두 요소 참조

front

삽입

insert_after

삭제

erase_after

조건 삭제

remove

 

remove_if

중복 요소 삭제

unique

교환

swap

병합

merge

정렬

sort

반전

reverse

 

[STL] 13. <algorithm>에 추가된 새로운 함수들 minmax_element

C++0x 2011. 5. 30. 09:00 Posted by 알 수 없는 사용자

C++03까지의 STL에는 데이터셋에서 가장 작은 요소를 찾을 때는 min_element, 가장 큰 요소를 찾을 때는 max_element를 사용하였습니다.

그런데 만약 최소와 최대를 동시에 찾을 때는 어쩔 수 없이 min_element max_element를 각각 호출해야 하는 불필요한 불편한 점이 있었습니다.

 

C++0x에서는 이런 불편함을 개선하기 위해 한번에 최소와 최고를 찾아주는 minmax_element 알고리즘이 새로 생겼습니다.

 

 

minmax_element

template<class ForwardIterator>

    pair< ForwardIterator, ForwardIterator >

        minmax_element( ForwardIterator _First, ForwardIterator _Last );

template<class ForwardIterator, class BinaryPredicate>

    pair< ForwardIterator, ForwardIterator >

        minmax_element( ForwardIterator _First, ForwardIterator _Last, BinaryPredicate _Comp );

 

minmax_element 알고리즘에는 조건자를 사용하는 버전과 조건자를 사용하지 않은 버전 두 가지가 있습니다. 데이터셋의 자료형이 유저 정의형(class struct를 사용한)이라면 조건자가 있는 버전을 사용합니다.

 

< 예제 코드 >

#include <iostream>

#include <algorithm>

using namespace std;

 

 

int main()

{

           int Numbers[10] = { 50, 25, 20, 7, 15, 7, 10, 2, 1, 3 };

          

           pair<int*, int*> MinMaxValue = minmax_element( &Numbers[0], &Numbers[10] );

 

           cout << "최소 값 : " << *MinMaxValue.first << endl;

           cout << "최대 값 : " << *MinMaxValue.second << endl;

          

           return 0;

}

 

< 결과 >


 

[STL] 11. <algorithm>에 추가된 새로운 함수들 is_heap, is_heap_until

C++0x 2011. 5. 11. 09:00 Posted by 알 수 없는 사용자

is_heap is_heap_until는 앞서 소개했던 is_sorted, is_sorted_until과 비슷한 알고리즘입니다. 차이가 있다면 is_heap is_heap_until는 정렬이 아닌 Heap을 다룬다는 것만 다릅니다.

 

is_heap은 데이터셋이 Heap으로 되어 있는지 아닌지, is_heap_until는 데이터셋에서 Heap이 아닌 요소의 첫 번째 위치를 반환합니다.

 

is_heap

template<class RandomAccessIterator>

    bool is_heap(

        RandomAccessIterator _First,

        RandomAccessIterator _Last

    );

template<class RandomAccessIterator, class BinaryPredicate>

    bool is_heap(

        RandomAccessIterator _First,

        RandomAccessIterator _Last,

        BinaryPredicate _Comp

    ); 

 

 

is_heap_until

template<class RandomAccessIterator>

    bool is_heap_until(

        RandomAccessIterator _First,

        RandomAccessIterator _Last

);

template<class RandomAccessIterator, class BinaryPredicate>

    bool is_heap_until(

        RandomAccessIterator _First,

        RandomAccessIterator _Last,

        BinaryPredicate _Comp

);

 

 

is_heap is_heap_until는 각각 조건자를 사용하는 버전과 사용하지 않는 버전 두 개가 있습니다. 조건자를 사용하지 않는 경우는 operator< 를 사용합니다.

 

 

그럼 is_heap is_heap_until을 사용한 아주 간단한 예제 코드를 봐 주세요^^

#include <iostream>

#include <algorithm>

using namespace std;

 

 

int main()

{

           int Numbers1[10] = { 50, 25, 20, 7, 15, 7, 10, 2, 1, 3 };

           int Numbers2[10] = { 50, 25, 20, 7, 15, 7, 10, 6, 11, 3 };

           int Numbers3[10] = { 50, 25, 20, 7, 15, 16, 12, 3, 6, 11 };

          

          

           bool IsResult = false;

           IsResult = is_heap( &Numbers1[0], &Numbers1[10], [](int x, int y) { return x < y; } );

           cout << "Numbers1 Heap인가 ? " << IsResult << endl;

 

           IsResult = is_heap( &Numbers2[0], &Numbers2[10], [](int x, int y) { return x < y; } );

           cout << "Numbers2 Heap인가 ? " << IsResult << endl;

 

           IsResult = is_heap( &Numbers3[0], &Numbers3[10] );

           cout << "Numbers3 Heap인가 ? " << IsResult << endl;

 

           cout << endl;

           int* NumIter = is_heap_until( &Numbers2[0], &Numbers2[10], [](int x, int y) { return x < y; } );

           cout << "Numbers2에서 Heap되지 않은 첫 번째 위치의 값 : " << *NumIter << endl;

 

           return 0;

}

 

< 결과 >

 

 

 

ps : 자료구조 Heap에 대해서 잘 모르시는 분들은 아래의 글을 참고해 주세요

http://blog.naver.com/ctpoyou/105423523


 

팀장에게 TFS 구성보여주고 얻어먹기 ~.

 

팀장 : "TFS 구성 어렵자나?"

: "쉬운데요.."

팀장 : " ? 거짓말? 설치문서봐봐"

: "VSS 대신 쓰실건데 보세요~ 정말 마우스 몇번으로 끝남다~ ㅋㅋ"

팀장 : " 이거봐라? (이누무가 좋아 ㅋㅋ 점심내기해야징 아싸~)진짜? 그럼 오늘 점심 산다~ (ㅋㅋ 설치문서에도 계정이며, 어쩌구 하던데 ㅋㅋ) 아니면 네가 ~"

: "ㅋㅋ OK~(아싸 점심값 벌었다~~~요즘 점심값 6000원인뎅 ㅋㅋㅋ)"

 

. 이제 그럼 앞의 대화처럼 TFS 2010 구성편을 알아보겠습니다. 정말 쉽냐?

정말 쉽습니다. 그래야.. 팀장에게 점섬을 얻어 먹을수 있겠죠? ^_^

 

그럼 설치 전에 Visual Studio 2010 구성을 조금 보도록 하겠습니다.

 

구성 방식

용도

Basic

기본적인 구성요소를 이용하여 팀 프로젝트에 꼭 필요한 소스제어 기능을 사용할 수있으며, 작업항목추적을 통하여 요구사항 정의등을 할 수 있습니다.

Standard Single Server

하나의 서버에 기능 구성요소를 모두 설치하고 협업을 위한 SharePoint, 보고서를 사용하기 위하여 SQL Reporting Services등을 구성합니다.

Advanced

하나 이상의 서버에서 SQL SharePoint 등을 설치하고 구성합니다.

Application – Tier Only

Visual Studio Team Foundation Server 2010 응용 프로그램 개층만 구성합니다.

Upgrade

기존의 Visual Studio Team Foundation Server 업그레이를 구성합니다.

 

5가지로 구성되어 있습니다. 여기서 Visual SourceSafe 구성할 경우 Basic으로 구성하면 됩니다. 기본으로 구성하면 앞에서 팀장과 이야기한 얻어먹기 내기를 이길 있는 것입니다.

 

바로 따지지도 묻지도 않고, SQL SharePoint 걱정없이 구성을 마무리 합니다.

 

앞에서 설치를 완료 했다면. 설치 마지막에 "Lunch Team Foundation Server configuration Tool"  보셨을 것입니다. 거기서 바로 "Configure" 하면 다음과 같은 화면이 나타납니다.

 

 

여기서 왼쪽 메뉴의 "Basic" 선택합니다.

 

그럼 옆에 설명이 나오는데 그것은 영어이므로 패스 합니다.( 영어 울렁증~ .)

 

"Basic" 선택하고 영어를 한번 읽고 바로 아래 "Start Wizard" 선택해서 구성을 시작합니다.

환영한다고 하면서 이제 기본 구성 마법사를 시작하려 합니다. 영어는 언제나 그렇듯.. 영어 울렁증으로 특별한 내용이나 주의 사항이 없으면 패스 하겠습니다.(한글은 언제쯤일가 .)

"Next" 선택하고 다음으로 넘어갑니다.

 

? SQL 묻는 질문을 하는데요.. 여기서 겁먹지 마시고 "Next" 하시면 됩니다. 일반적으로 SQL 없는 기업의 경우 Visual SourceSafe 사용하는 회사라면 일단 맛보기로 SQL Express 사용하는 것도 좋습니다. ^.^ 만약 있다면…..

 

두번째 "Use an existing SQL Server Instance" 선택해서 SQL 선택할 있습니다.

 

그렇지만. 여기서 첫번째를 그냥 선택합니다. 첫번째를 선택하면 SQL Express 자기가 알아서 설치를 합니다. 신경 쓸것 없다는….. 것입니다.

 

 

.. 보니.바로 확인 하라는 화면이 표시됩니다. 별로 특별한 없이 마우스 몇번 클릭 했드만 기본 구성 하려고 하니 검토해 달라는 화면입니다. 정말 한것도 없는데 벌써 검토하라니..

설치 문서에 있는 많은 계정과 SharePoint 같은 것은 어디갔을까?

 

(~~ 팀장 여기서 얼굴에서 당했다. 점심값 하는 모습이 떠오릅니다. 푸헐~ 아싸~)

 

팀장 제발 바로 아래 메뉴에서 Checks에서 걸려라 하는 마음이 간절할 것입니다.

 

하지만. 여기서 "Next" 또는 "Verify" 선택을 합니다. 겁먹지 마십시요.

설치전 하드웨어 요구사항과 IIS,.NET 무사히 설치 했다면 절대 문제 생기지 않습니다.

 

모두 문제 없다는 화면이 드디어 표시됩니다.

(이화면에서 Warning 화면은 제가 일부러 본것입니다 ㅋㅋ 변명은 .)

 

모두 문제 없다면 "Configure" 선택합니다. 그럼 자기가 알아서 합니다.

 

계정? SQL 지가 합니다.(SQL 설치 때문에 조금 시간이 걸릴 있습니다. 너무 걱정하지 마십시요.^^)

 

 

모두 설치 완료 됐습니다. 이제 "Next" 하면 끝입니다.

 

 

"Close" 하는 동시에 팀장님을 한번 보시면서, "오늘 점심은 쟁반짜장에 탕수육입니다." 라는 멘트를 한번 날려 주시면 됩니다.

 

그럼 이제 TFS 2010에서는 설정 됐어~~ 하면서 다음의 화면이 표시됩니다.

 

 

ㅎㅎ 이제 모두 끝난 것입니다. 한거 없죠?? 이제 팀장님이 사주는 점심 먹으로 가시면 됩니다.

 

그럼 이제 다음은 이것을 사용하는 방법을 알아 보겠습니다. ^.^


VS TFS 2010 설치편 - 설치전 IIS, .NET 설치

Team Foundation Server 2010. 5. 4. 09:00 Posted by 알 수 없는 사용자

 

팀장에게 VS TFS 설치보여주기 - IIS & NET

 

Visual Studio TFS 2010 설치하기저 IIS 설치부터 보겠습니다.

 

여기서는 다음과 같은 사양을 기준으로 합니다.

 

 - Windows Server 2008 이상

 - Workgroup 네트워크 환경 (AD 설치환경은 아닙니다.)

 

 

일단 서버 관리자를 실행합니다. 시작-> 관리도구-> 서버관리자 입니다.

 

 

 

서버 관리자에서 이제 IIS 닷넷을 설치합니다.

 

우선 IIS 입니다. 서버 관리자 왼쪽 트리메뉴에 역할을 선택합니다.

 

 

오른쪽에서 역할 추가가 있습니다.

 

그럼 역할 추가 마법사가 표시됩니다. - 절대 놀라지 마시고, "다음" 선택합니다.

 

이제 웹서버(IIS) 선택합니다.

이제 다음을 선택합니다.

 

그럼 웹서버 소개창이 뜹니다.

여기서 읽어보시고 "다음" 선택하십시요.

 

그럼 이제 웹서버에서 추가 기능을 선택하는 것이 표시됩니다.

 

 

여기서 2번째 응용 프로그램 개발을 확인하고 몇가지를 추가해 줍니다.

 

 

여기서 ASP.NET .NET 확장성을 추가해 줍니다. 그리고 다음.. 조금 아래로 내려가면

"성능" 있는데 여기서 "동적 콘텐츠 압축" 선택해 줍니다.

 

 

다음 설치 확인 창이 표시도고, 이상 없다면 "설치" 선택합니다.

설치가 완료 되면.. 이제 다음 .NET 설치합니다.

 

.NET 뭔지 .NET 3.5 설치되어야 합니다. Visual Studio 2010 .NET 4.0 까지 지원하는데 4.0 자기 설치 시에 설치합니다. 그럼 .NET 3.5 "서버 관리자"에서 왼쪽 메뉴에서 "기능" 선택합니다

 

 

기능의 오른쪽에 "기능추가" 있습니다.

 

 

여기서 기능 추가 마법사가 표시되고, 첫번째 "NET Framework 3.5.1기능" 선택합니다.

놀라지 마십시요. 여기서 새로운 창이 하나 표시됩니다.

선택하면 "추가 기능 마법사" 창이 표시됩니다.

 

 

여기서 "필요한 기능 추가" 선택합니다. 다음 "다음" 선택합니다.

설치 확인 창이 표시되고 "설치" 선택하면 설치를 시작합니다.

 

그럼 설치 필요한 것은 모두 끝났습니다.

 

VS TFS 2008 보다 쉽죠?? (물론 복잡한계정이나 기타 등등은 소스 관리 + @ 기능을 원한다면.. 계정도 알아두면 매우 매우 좋습니다. ^_^)

 

여기 까지는 그냥 Windows 기능에서 필요한 기능만 설치했습니다. 별다른 것은 없습니다.

 

ㅎㅎ 이제 다음은 TFS 2010 설치편 입니다. 설치도 정말 쉽습니다. 정말??? 다음에~~ Soon 입니다요~


 

이번에는 두번째로 프로젝트를 만들거나 새롭게 cs 또는 vb 파일을 추가할 도움이 되는 것입니다.

 

바로 프로젝트를 생성할 나타나는 화면입니다.

 

 

여기서 우리는 그냥 해당하는 프로젝트를 선택합니다. 그리고 프로젝트 만들기를 하는데 VS 2008에서는 .NET 플랫폼의 선택 기능이 있었습니다. VS 2010에서는 다른 보다 우선 설치된 템플릿과 기존에 만들었던 템플릿들 온라인 템플릿으로 나우어 집니다. 첫번째인 Recent Templates 최근에 만들었던 것으로 여러분들이 기존에 만들었던 템플릿을 불러옵니다.

 

이렇게 기존에 만들었던 템플릿을 가져와서 템플릿을 이용하여 다시 만들수가 있습니다. 다음은 설치된 템플릿입니다.

설치된 템플릿은 여러분들 설치한 VS 2010 언어에 맞추어 템플릿이 표시됩니다.

 

 

 

바로 이렇게 표시가 되죠.^^ 그렇다면.. 바로 위에 있는 Enable loading of per user extensions 틀릭하면 도구상자의 옵션 대화상자를 열고 안에 있는 Extension Manager 메뉴를 호출합니다. 여기서 "Automatically check.." 하면 자동으로 자기가 템플릿 관련 확장을 체크하여 업데이트를 합니다.

 

 

 

다음이 온라인 템플릿입니다. 템플릿은 온라인상에서 템플릿을 불러오는데 바로 사용자를 추가로 새롭게 템플릿을 만든 것을 지원하는 것입니다. 바로 사이트에 있는 내용을 가져오는 것입니다.

 

http://visualstudiogallery.msdn.microsoft.com/en-us

 

 

화면은 이렇게 나오는데 왼쪽 템플릿 메뉴에 여러 목록이 있는데 목록에 해당하는 것을 선택하면 선택한 것만 표시됩니다.

  

 

 

물론 기존의 VS 2008 있는 .NET 선택할 있게 되어있는 것은 그대로입니다. 하나 추간된 것은 왼쪽의 Sort by라고 하는 부분이 추가되어 정렬도 있습니다. Sort by VS 2008에서는 없는 것입니다.

 


.NET 선택 시에는 2.0 버전부터 선택할 있으며(이건 당근이죠 ^^) 그외 .NET 버전도 선택할 있습니다.

 

여기 More Frameworks 부분입니다. 그러면 닷넷 프레임 워크 홈페이지로 이동을 합니다. 주소는

http://msdn.microsoft.com/en-us/netframework 이쪽으로 이동을 하여 추가적인 닷넷 프레임워크를 지원합니다. 사이트에는 지금까지의 닷넷을 다운로드 받을 있도록 하고 있습니다.(예를 들어 SharePoint 2010 개발하기 위하여는 최소한 .NET Framework 3.5 이상을 선택해야 합니다.)

 

이제 이번 글의 하이라트라고 있을까요? Search 입니다.

 

 

부분은 IE 에서 많이 보셨거나 Windows Desktop Search 사용해 보신 분은 이거~ 하실 겁니다.

바로 VS 프로젝트 템플릿을 찾아주는 역활을 합니다. 제가 여기서 C 라고 입력하면 C 관련된 템플릿이 표시됩니다.

 

cs 하면 C#관련 내용일 것입니다. 이것이 중요한 것은 중간에 파일을 추가할 class 파일을 추가 할때 어떨가요? 해당 프로젝트에서 클래스 하나 추가할 때에도 도움이 됩니다.(사실 중간에 강의 하거나 갑자기 class 파일 하나 만들때 가끔 어디 있는지 못찾을 때가 .)

 

바로 생각외로 도움이 것입니다.(사실 정말 도움이 됩니다 ㅋㅋㅋ)

 

오늘은 VS 에서 새롭게 프로젝트를 생성하거나 중간에 프로젝트를 추가 또는 class 이나 cs 또는 aspx파일을 같은 것을 추가하는 대화 상자를 봤습니다. 사실 여기서 집고 넘아가는 것은 개발자에게 파일을 찾기, 또는 추가 할때 위치가 어디 있는지 갑자기 당황 스럽거나 또는 기존에 만들었던 템플릿을 다시 만들고자 할때 쉽고 빠르게 만들 있도록 도와 준다는 것입니다.

 

한가지 확실히 도움을 받습니다. 프로젝트 파일을 추가할 경우 저는 C# , C++, Modeling 같이 있으며 Web Services파일등이 있을 추가하려고 하는 파일을 쉽게 찾아서 추가 한다는 것입니다. 정말 편리합니다. 이것을 조금 유식하게(?) 하면 바로 생산성 향상 측면으로 볼수 있을 겁니다.

 

그럼 다음 번에는 실제 코딩과 관련 있는 부분을 보겠습니다.

Visual Studio 2010 출시에 따른 SharePoint Developer Tools

SharePoint 2010 2010. 4. 14. 09:00 Posted by 알 수 없는 사용자

결론은 그다지 큰 변화는 없습니다. (VS 2010, SharePoint 2010 RC 한글로 테스트했습니다.)

 

프로젝트 템플릿이 추가될 예정이지만 출시 버전에는 예전과 동일합니다. 이전 버전의 화면은 생략하겠습니다.


프로젝트 항목들도 크게 바뀐 것은 없지만 Workflow Association Form, Workflow Initiation Form이 빠져버렸습니다. 좀 지켜봐야 할 것 같습니다.


일반 웹 파트 소스 코드는 기존에는 클래스의 생성자와 CreateChildControls, RenderContents 메서드가 있었고 base 메서드를 호출해주었는데 출시 버전에서는 달랑 CreateChildControls 메서드만 아래 그림처럼 제공해줍니다.



SharePoint Explorer 의 모습도 변화 없다는 것을 확인할 수 있습니다.

RC 버전에서 본격적으로 준비를 해야 하지 않나 생각됩니다.

 출시도 되었으니 계속 블로깅 하도록 하겠습니다.






 

'SharePoint 2010' 카테고리의 다른 글

Client Object Model - .NET  (1) 2010.05.14
SharePoint 2010 LINQ to SharePoint  (1) 2010.05.12
SharePoint 2010 Server Object Model  (0) 2010.02.12
SharePoint 2010 데이터 기술  (0) 2010.02.11
SharePoint 2010 Event Receiver  (0) 2010.02.10

SharePoint 2010 Server Object Model

SharePoint 2010 2010. 2. 12. 09:00 Posted by 알 수 없는 사용자

SharePoint의 여러 어셈블리를 직접 호출하는 경우로 웹 파트와 관리자 유틸리티, 이벤트 등에서 사용이 가능합니다. 참조할 수 있는 부분은 SDK MSDN을 참고해 볼 수 있습니다.

 

이번 시간에서는 이전 버전에서도 살펴본 SPSite, SPWeb, SPList, SPListItem 등에 대한 내용을 서버 머신에서 돌아가는 WPF 응용 프로그램에서 액세스 해봅니다.

 

WPF 응용 프로그램을 생성합니다. 프로젝트 이름은 ServerOMWPF 라고 생성합니다.


지금은 대상 프레임워크가 4.0으로 되어 있습니다. 리스트 박스와 버튼을 추가해서 사이트의 목록이름을 리스트박스에 표시되게 해봅니다. 디자인 화면은 아래와 같습니다.



프로젝트에 Microsoft.SharePoint.dll

C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\ISAPI 밑에서 참조 추가합니다.


Get Item 버튼을 클릭해서 아래와 같이 코드를 작성합니다.
아래 코드는 SharePoint 사이트의 목록들의 이름을 리스트 박스에 추가하는 내용입니다.

프로젝트를 빌드하면 에러 나는 것을 알 수 있습니다. 특별한 코드가 아닌데도..,

서버 머신위에서 구동하는 Server Object Model의 응용 프로그램은 .NET Framework 3.5에서 구동되면서 X64, Any CPU로 설정되어야만 합니다. 그래서 에러를 만나게 됩니다.

Web Part, Visual Web Part 등은 별도 수정하지 않아도 됩니다.



프로젝트 속성에서 Application 메뉴에서 Target Framework3.5로 지정합니다.



Build 메뉴에서 Plaform Target“Any CPU”로 설정합니다.



프로젝트를 빌드하고 실행해봅니다. 그러면  Server Object Model을 이용한 간단한 WPF 프로그램의 결과를 아래와 같이 확인이 가능합니다.

 

 

 

개체 모델은 SDK MSDN을 참조할 수 있으며 다음 블로그에서 계속 알아보겠으며 위에서 간단하게 Server Object Model을 액세스하는 예와 실행하는 방법을 알아보았습니다.

 

SharePoint 2010 데이터 기술

SharePoint 2010 2010. 2. 11. 09:05 Posted by 알 수 없는 사용자

이전 버전에서는 SharePoint 관련 개체와 데이터를 액세스하는 것은 서버 측면에서는 SharePoint Server Object Model CAML 을 사용하고 원격 클라이언트에서는 SharePoint Web Service를 이용했습니다. SharePoint Web Service CAML 의 사용이 쉽지 않았고 개발하기가 불편했습니다.

 

SharePoint 2010에서는 아래 그림처럼 클라이언트 측면에서 Client Object Model 을 제공하고 있으며 REST 기반의 액세스가 가능합니다. 서버 측면에서는 CAML 대신 LINQ를 사용할 수 있게 되었습니다.



이전 버전과 비교해서 생산성이나 접근할 수 있는 부분이 다양해서 아주 유용하게 사용할 수 있습니다.

 

Server Object Model을 알아보면 SharePoint 머신 위에서 구동되는 웹 파트, 이벤트, 관리자 프로그램, 배치 프로그램 등이며 SharePoint 어셈블리를 직접 호출할 수 있다는 것이 Server OM입니다.

 

LINQ는 목록의 수 많은 항목 중에서 조건에 맞는 항목을 가져오고 원하는 정렬을 시키려고 하면 CAML이라는 XML을 직접 구성하고 SPQuery 라는 클래스를 통해 넘겨주어야 했습니다. 그래서 별도로 SharePoint MVP가 만든 CAML Builder 라는 도구가 유용하게 사용되었습니다. 2010 환경에서도 CAML은 사용이 가능합니다만 LINQ는 알고 있는 것처럼 쿼리 식으로 개체를 데이터처럼 액세스 할 수 있습니다. 웹 파트 등에 사용하면 아주 유용하다는 생각이 팍 드실 겁니다.

 

Client OM은 서버 머신 위가 아닌 원격 클라이언트에서 동작되는데 SharePoint 개체나 데이터를 원격 클라이언트에서 접근할 수 있다는 것입니다.

생성할 수 있는 유형은 .NET, Silverlight, Javascript 를 통해 접근할 수 있습니다. SharePoint 2010에서는 Silverlight 환경이 기본적으로 구비되어 있으며 Silverlight 웹 파트도 기본적으로 생성되어 있습니다. Client OM을 사용할 수 있는 내용으로 Silverlight 웹 파트를 생성해서 접근할 수 있습니다.

 

REST 기반 API 는 기존 웹 서비스보다 더 간단하게 사용이 가능하며 개체로 접근을 손쉽게 할 수 있습니다. ADO.NET Data Services 를 이용해서도 SharePoint 개체와 데이터를 액세스 할 수 있습니다.

 

 

SharePoint 2010 데이터 기술을 알아보았고 다음 블로그부터 하나씩 구체적으로 알아보도록 하겠씁니다.

SharePoint 2010 Event Receiver

SharePoint 2010 2010. 2. 10. 09:00 Posted by 알 수 없는 사용자

항목을 추가하고 삭제하는 경우 이벤트 코드를 작성해야 할 필요가 있습니다. 이전 버전에서도 마찬가지로 클래스를 상속하여 Feature Object Model을 통해 작업을 했지만 수작업이 필요했습니다. Visual Studio 2010을 통해 새로워진 Event Receiver에 대한 부분을 이번 시간에 알아 보도록 하겠습니다.

 

HJ 라는 공지 사항이 있습니다. 간단히 삭제가 안되게 Event 코드를 작성해봅니다.

Visual Studio 2010 SharePoint 프로젝트중 Empty 프로젝트를 생성합니다. 이름은 EventDemo라고 합니다.

EventDemo 프로젝트를 오른쪽 클릭하여 새 항목을 하나 추가합니다. 새 항목은 아래와 같이 Event Receiver를 선택합니다.


Name
은 기본값을 그대로 하고 Add를 선택합니다. 그럼 해당 사이트에 연결하여 어떤 이벤트로 할 것인지와 어떤 목록인지, 어떤 이벤트 인지를 그래픽적으로 선택하게 됩니다.



이벤트 종류는 단순 List Item Event 뿐만 아니라 여러 가지가 나와 있습니다.


List Item Events
Announcements를 선택하고 “A item is being deleted”를 선택합니다.


마침을 선택하면 Feature가 생성되는 것을 확인 할 수 있습니다.

Feature의 활성, 비활성 이벤트를 어떻게 만드냐 하면 Feature1을 오른쪽 클릭하면 아래와 같이 Add Event Receiver를 볼 수 있습니다. 여기서 생성은 하지 않습니다.



EventReceiver1 폴더 아래의 Elements.xml을 살펴봅니다. 다 제대로 구성된 것을 확인할 수 있습니다. (이제부터는 특정 공지사항에만 이벤트를 적용시킬 수 있습니다. ^^)



마침을 선택했을 때의 코드는 아래와 같이 생성되어 있습니다. Deleting만 선택했기 때문에 이벤트 메서드는 하나만 생성되어 있습니다.



간단히 코딩을 해서 HJ 라는 공지사항에 글을 삭제하지 못하도록 해봅니다.



위의 코딩은 이전 버전의 스타일이며 2010에서는 추가로 뒤에서 다룰 Dialog Framework 으로 에러 핸들링을 할 수 있습니다.

 

EventDemo 프로젝트를 오른쪽 클릭하여 Deploy를 선택하고 완료 후 HJ 공지사항의 항목을 새로 추가합니다. 그러면 아래와 같이 결과 페이지를 확인할 수 있습니다.



Visual Studio 2010에서 만든 Event Receiver가 잘 동작되는 것을 확인했으며 Visual Studio 2010을이용해서 보다 더 생산성 있게 작업이 가능하다는 것을 알 수 있습니다.

 

'SharePoint 2010' 카테고리의 다른 글

SharePoint 2010 Server Object Model  (0) 2010.02.12
SharePoint 2010 데이터 기술  (0) 2010.02.11
SharePoint 2010 Feature  (0) 2010.02.09
SharePoint 2010 Visual Web Part  (0) 2010.01.21
SharePoint 2010 Web Part 생성  (0) 2010.01.19

SharePoint 2010 Feature

SharePoint 2010 2010. 2. 9. 09:05 Posted by 알 수 없는 사용자

앞의 블로그에서 Web Part에 대한 내용을 살펴보았는데 솔루션 탐색기에 보면 Feature 폴더가 생겨 있는 것을 알 수 있습니다. 그리고 Web Part 폴더 항목을 보면 Elements.xml 파일이 있는 것도 알 수 있습니다.

실제로 2007 버전부터 Feature가 사용되었으며 개발자들이 생성할 경우는 수작업을 해주어야만 했습니다. 2010에서는 수작업이 많이 줄어든 모습을 알아보도록 하겠습니다.

 

이번 시간에는 xml 파일에 속성을 추가해보고 Feature Designer를 살펴보도록 하겠습니다.

Visual Studio 2010 SharePoint 프로젝트의 Visual Web Part를 이용해서 Feature Designer를 알아봅니다.

프로젝트 이름을 FeatureDemo Empty 프로젝트를 생성하면 아래와 같이 솔루션 탐색기를 살펴볼 수 있습니다. Empty 프로젝트라 Features 폴더 밑에는 아직 아무것도 없습니다.


Visual Web Part 항목을 하나 추가합니다. 그러면 솔루션 탐색기는 아래 그림과 같이 변경됩니다.



Feature1
을 오른쪽 클릭해서 이름을 VisualWPFeature로 변경합니다. VisualWPFeature을 오른쪽 클릭하면 View Designer를 메뉴를 클릭 해 볼 수 있습니다.



Title
에 해당하는 제목을 FeatureDemo 라고 변경합니다. 설명에는 간단한 설명을 나열합니다. Scope는 사이트 컬렉션 또는 웹 등에서 보여주는 범위를 지정할 수 있습니다. 여기서는 Site로 지정합니다. 왼쪽에는 Package Explorer 가 나와 있습니다.

 

 

자 그럼 다른 쪽의 Feature 관련 내용을 알아봅니다. 솔루션 탐색기의 FeatureDemo 프로젝트를 오른쪽 클릭하고 속성을 선택하면 왼쪽에서 SharePoint 메뉴를 확인 가능합니다.




아래쪽 Edit Configuration에서 보면 Default, No Activation을 볼 수 있으며 Default를 선택하고 View 버튼을 클릭해봅니다.



배포 단계를 알 수 있으며 Activate Features 내용을 확인할 수 있습니다. No Activation은 배포후비활성화로 활성화 옵션이 없다는 것을 알 수 있습니다. 여기서는 Active Deployment Configuration에서 No Activation을 선택합니다.

 

FeatureDemo 프로젝트를 오른쪽 클릭하고 Deploy를 선택합니다. 배포가 완료되고 나면

Output 창에서 아래와 같은 배포 단계 결과를 확인할 수 있습니다. 현재 Feature는 비활성화 되어있기 때문에 단계에서 누락되어 있다는 것을 확인 가능합니다.



해당 사이트로 이동해서 사이트 설정의 사이트 컬렉션 기능으로 이동해보면 비활성화되어 있는 것을 아래와 같이 확인 가능합니다.



간단히 Feature Event Handler, Web Part 등의 작업시 이전 버전과는 수작업이 많이 필요 없다는 것을 살펴보았습니다. 앞으로 계속 보시게 될 겁니다.


SharePoint 2010 Visual Web Part

SharePoint 2010 2010. 1. 21. 09:00 Posted by 알 수 없는 사용자

Visual Studio 2010에서 새롭게 제공되는 Visual Web Part를 생성해서 배포, 테스트하는 예를 알아보도록 하겠습니다.

이전버전의 웹 파트는 디자인하기가 시간이 걸리는 작업이며 AJAX 기능을 구현하려고 해도 설정과 코딩이 필요합니다. 하지만 Visual Studio 2010에서 Visual Web Part를 이용하면 얼마나 쉽게 생성할 수 있는지 알아보겠습니다.

Visual Studio 2010에서 프로젝트를 생성하면서 Empty SharePoint Project에서 새 항목을 추가하면서 Visual Web Part를 추가해도 되고 별도로 Visual Web Part 프로젝트를 통해서 생성해 됩니다.

 

Empty SharePoint Project는 해보았으니 새롭게 Visual Web Part 를 구성해보겠습니다.

프로젝트 이름은 VisualWPDemo 라고 하고 OK을 선택합니다.


SharePoint Customization Wizard에서는 OK를 선택합니다.

생성된 프로젝트의 솔루션 탐색기를 보면 새 항목으로 Visual Web Part 항목이 추가된 것을 알 수 있습니다. Visual Web Part에서는 Web Part와 항목이 동일한데 ascx ascx.cs가 들어가 있는 것을 확인할 수 있습니다.


그리고 VisualWebPart1.cs에서는 ascx 컨트롤을 CreateChildControls에서 로딩하는 것을 아래 그림에서 알 수 있습니다.


개발자들이 ascx에서 데이터바인딩과 디자인, AJAX 등에 대한 구현을 하면 일반 웹 파트와 동일하게 사용자 정의 컨트롤(ascx) Controls에 추가되어 처리됩니다.

 

자 그럼 데이터 바인딩과 AJAX를 가미해서 배포해보도록 하겠습니다.

AJAX 웹 파트를 위한 복잡한 web.config 구성 작업은 필요 없습니다.

디자인은 아래 그림에서처럼 AJAX UpdatePanel 안에 DropDownList GridView를 배치하고 GridView는 디자인을 적용했습니다.



ascx.cs
코딩은 생략하겠습니다. 일반적인 ADO.NET 이라..,

 

결과는 아래와 같습니다. 간단하게 AJAX 기능과 컨트롤의 디자인을 적용된 것을 확인 할 수 있습니다.


SharePoint 2010 개발 중에서 Visual Web Part에 대한 내용을 알아보았습니다.

일반 웹 파트 개발과 병행해서 사용하면 좋을 듯 합니다.

SharePoint 2010 Web Part 생성

SharePoint 2010 2010. 1. 19. 09:00 Posted by 알 수 없는 사용자

이전 블로그에서는 개발 환경 테스트 개념으로 간단한 Web Part를 생성해보았는데

여기서는 데이터베이스 연동과 여러 기능을 붙여 좀더 구체적으로 Web Part를 생성해보겠습니다.

 

말씀드릴 내용은 MOSS 2007에서 했던 내용과 동일한 내용입니다. Hello World는 너무 간단하여 데이터베이스 연동과 속성 노출 등을 구성해봅니다.

다음 블로그에서는 VS 2010에서의 SharePoint 지원 내용으로 Visual Web Part AJAX를 가미해서 보다 더 쉽고 강력하게 개발하는 내용을 다뤄보겠습니다.

 

완성된 모습은 아래와 같습니다. 텍스트 상자에 카테고리 ID를 입력하고 버튼을 누르면 해당 제품 이름과 가격 리스트가 표시되며 속성을 노출해서 카테고리 ID 기본값을 입력할 수 있습니다.


새로운 프로젝트를 생성합니다. SharePoint Empty 프로젝트를 선택하고 이름은 SP10WP 라고 지정합니다.



SharePoint Customization Wizard에서는 http://sp10:8090으로 선택합니다.



솔루션 탐색기에서 추가 > 새 항목> 웹 파트를 새로 추가합니다. 이름은 ProductsWP라고 합니다.


생성된 웹 파트 항목의 솔루션 탐색기 구조는 아래처럼 구성되어 있습니다.


Feature Package가 포함되어 있으며 디자이너를 통해 편집이 가능하며 향후 구체적으로 다루어 보겠습니다.

ProductsWP 폴더는 Elements.xml ProductsWP.cs, ProductsWP.webpart로 구성되어 있습니다.

Elements.xml Feature의 구체적인 파일로서 웹 파트 위치나 URL 등을 지정할 수 있습니다.

ProductsWP.webpart는 웹 파트의 메타데이터를 나타내는 파일입니다.

ProductsWP.cs 는 코딩으로 컨트롤과 데이터바인딩, 속성 등을 정의하는 파일입니다.

 

코드에서는 구체적으로 보지 말고 RenderContents, OnLoad 메서드만 보도록 하겠습니다.

해당 메서드에서는 화면에 입력 폼을 구성하고 데이터베이스 연동하여 데이터 바인딩을 해주는 내용입니다.


OnLoad 에서 컨트롤을 생성해주는 내용입니다. Web Part 항목에서는 디자이너를 제공하지 않아 직접 아래와 같이 생성해야 합니다.

속성 노출에 대한 내용은 아래와 같습니다.



위의 실제 결과는 아래 그림과 같습니다.



Hello World
보다 좀 더 발전된 웹 파트를 VS 2010 환경하에서 생성하고 테스트해보았습니다. 코드가 상당히 손이 많이 가고 디자인하기 좀 곤란한 측면이 있습니다. 하지만 어떤 경우에서는 위와 같이 생성해야 할 듯 합니다. 다음에 다룰 내용은 Visual Web Part AJAX로 더 손쉽고 강력하며 디자인이 지원되는 모습을 알아보도록 하겠습니다.

VS 2010 기능 소개 01 인텔리 센스 기능의 변화

Visual Studio 2010 2009. 11. 17. 02:25 Posted by 알 수 없는 사용자

 

ㅎㅎ 요즘 여기 저기서 경고를 하는(?) 말과 함께.. 열심히.. 글을 써 보도록 하겠습니다.
없는 글 솜씨 이지만.. 잘 봐쥐십시요 ^.^
 /) /)
(^.^)
(사실 백수가 뭐하겠습니까  .ㅠ 글이라도 써야 할듯)

 

첫번째 주제 인텔리 센스 ~~ NO~. Smart Intellisense 라고 불러주세요.~~~


제가 여러분들에 소개할 VS 2010의 기능을 몇가지 소개 하려 합니다.
처음에는 개발자들이 정말 좋아할 만한 것입니다. 듀얼 모니터? 네 그건 다음에 잠시 이야기하고..(그건 이미 널리 널리 알려졌으르로. ㅎㅎㅎ) 저는 첫번째 인텔리 센스에 대한 이야기를 하려 합니다.
인텔리 센스.. 네 컴퓨터 영화 에서 보면.. 우리의 주인공들이 키보드를 치는데.. 오~~ 오타 없이 그 짧은 시간에 촤~악~ 코딩 or 타이핑을 합니다. 오~~ 멋있습니다. 그럼.. 저요?? 전. 오타쟁이 입니다.(ㅠ.ㅠ)

 

VS 2010에서 개발자들이 좋아할 기능 중에 하나는 인텔리 센스~~ 쟁이가 좋아졌다는 것입니다. 그렇다면.. 정말 한번 코딩을 해봐야 하겠죵.^^ 네 해보시면.. 일단 개발자를 매일 코딩할 때 정말 좋

았던것은... 네 바로 오타를 줄일 수 있는 인텔리 센스~~ 기능을 이용한 코딩을 해보는 것입니다. 그것도 VS 2010의 쓰~ 마~ 아 ~ 트 인텔리 센스를.. 이용한.. 코딩이니다.


Visual C++에서의 인텔리 센스는 완전 환상으로 변경 되었는데 이것은 VSTS 2010 다른 블러그에 다 잘하시는 분들 있으므로 Pass 이고.. 전 일단 정말 편한지 부터 보는 것으로 하겠습니다.

간단히 ASP.NET 에서 Helloworld 부터 한번 출력해보겠습니다.(개발자들이라면 한번 해보는 "안녕 " 이죵 ㅋㅋㅋ)

ASP.NET 프로젝트에서 Default.aspx에서 버튼과 라벨을 이용해서 한번 출력을 해보는데..

여기서 라벨 컨트롤 ID를 변경하여 lblHello라고 변경하고 코딩을 한다고 해보겠습니다.

기존의 VS 2008에서 인텔리 센스는? 걍.. 처음부터 lbl 까지 쳐야 내가 생각한 lblHello 나오지

않을까요?

그렇다면 여기서 VS 2010에서는....

Hello라고 치면 어떨까요???(허~~~ 거 억~~ 정말??)

 

정말로 먼가 나타났습니다... 오~~~~~~~~ 인텔리센스가 스마트 해졌당~~ 라고 하면 어떨까요?

ㅋㅋ 네 제가 스마트라고 했는데.. 이렇게 코딩할 때 Smart Intellisense 라고 합니다.

즉 해당되는 연상단어만 쳐도 인텔리센스에 표시되어 쉽게 코딩을 할 수 있는 것입니다.

정말 똑똑해 진거죠?? (오 정말 기득해지지 아니한가???? 오냐 이뻐해주마 VS 2010)


ㅋㅋ 이로써 앞으로 오타쟁이에서 조금 벗어나지 않을까 합니다. 왜냐? 오타 하나 찾기 위하여 참 많은 삽질(?) 했던 기억이 있는데 이런 오토를 줄일 수 있거나 개발을 할때 타이핑의 속도를 빠르게 할 수 있다는 것은 .. 그 만큼 소스 코드를 오류 없이 빠르게 완성할 수 있고 완성이 끝나면.. 다음 일을 할 수 있다는 것입니다.(난 퇴근이다.~~~ ㅎㅎㅎ 짤릴려낭 ㅠ.ㅠ) 

정리하면 오늘 소개한 스마트 인텔리 센스를 이용하여 코딩의 시간을 단축할 수 있다는 것인데, 그 만큼 오류 없이 코딩을 하여 개발의 생산성에 도움을 주는 훌륭한 기능입니다.

그럼 다음에는 다른 것을 조금 더 알아보겠습니다.
 

 

몽당연필과 함께 하는 VSTS 2010 모델링 1/4

Architect Development 2009. 11. 17. 02:05 Posted by 알 수 없는 사용자

 

안녕하세요. ^^

 

그 동안 바쁘다는 핑계로.. 소원 했던 글쓰기를 다시 합니다. 제가 이 글을 쓰는 시점에서는 Visual Studio 2010 버전이 드디어 베타 2를 기준으로 합니다.

 

첫번째로 드디어 모델링에 대한 것을 이야기 하게 되었습니다.

모델링.. 기존에 사용하고 계시는 모델링 도구는?? 어떤것이였나요? 저는 대 부분 Visio로 UML을 하거나, XP화면을 직접 그리는 것을 했습니다. 여러분들은 그 외 다른 도구들을 사용하실거나, 저와 비슷할 거라 생각합니다. 또는 더 오래되신 분들은 별도의 프로그램등을 이용하여 S/W 모델링을 하실거라 생각합니다.(대 부분 별도의 프로그램이 많을 것이란 예상을 합니다^^)

 

모델링은 정확히 우리가 만들고자 하는 플랫폼을 정확히 그림을 그린 다음, 사용자의 요구사항에 맞는 부분을 글이 아닌 그림을 이용하여 표시하고, 개발자들에게는 그 사항에 맞는 부분을 그림으로 표현하여 실제 만들고자 하는 솔루션으로 한눈에 알아보기 쉽게 그리는 것입니다.

 

Microsoft의 VS 2005의 아키텍쳐 버전은 사실 이 부분을 충실히(?) 지켰고 실제 응용 프로그램 개발에 필요한 부분일 모델링 할 수 있었지만, 그것을 대중적으로 하기에는 조금 부족했다 할 수 있습니다.

여기서 대중적이란 실제 프로젝트에서 사용하는 것은 UML로 그리고 문서화하고, 개발자는 클래스 다이어그램을 그리거나 이미 그린것을 참고로 개발하는 환경이였습니다.

그렇다고 실제 문서화한 UML 처럼 응용 프로그램들이 개발되었다고 장담은? 네 저 역시 실제 프로젝트를 해보면 절대 하지 말라고 하는 코딩 부터 하고 난 다음 설계를 하는 방법을 쓰거나 설계는 하지 않고 넘어 경우, 또는 설계는 설계, 개발은 개발로 설계와 다른 산출물(응용 프로그램)이 나오는 일을 많이 헀습니다.(조금 부끄럽습니다 ㅠ.ㅠ)

 

이제 VS 2010 에서는 모델링에서 일반적으로 사용한 UML을 지원하게 됩니다. 기존의 모델링은 대중적인 것이 부족했다면 이번 Visual Studio은 현재 우리가 하고 있는 업무에 도움이 되는 것을 지원하고 있습니다.

 

Visual Studio 2010에서 모델링을 위하여 이제 VS 2010을 실행하여 프로젝트를 만듭니다.

프로젝트는 File-> New -> Project  선택합니다.

 

선택하면 프로젝트를 만들 수 있는 창이 뜨며 이곳에서 왼쪽 메뉴에의 "Rectnt Templates" 에서 "Modeling Prjects"를 선택합니다.



 

선택하면 프로젝트를 만들 수 있는 창이 뜨며 이곳에서 왼쪽 메뉴에의 "Rectnt Templates" 에서 "Modeling Prjects"를 선택합니다.

 

이 화면에서 각각의 정보를 입력합니다. 

 

이름 : BookshoppingMallUML

Location : 특정위치

Solution :  Default

Solution Name : BookshoppingMall 

 

이제 여기에서 새로운 UML 모델을 그릴 것을 추가합니다. 추가는 첫번째는 Use Case를 추가하여 사용자의 요구사항에 맞는 그림을 그립니다.

그 다음이 중요 포인트 입니다. 무엇인지?? 한번 보시죠.



이제 여기에서 새로운 UML 모델을 그릴 것을 추가합니다. 추가는 첫번째는 Use Case를 추가하여 사용자의 요구사항에 맞는 그림을 그립니다.
그 다음이 중요 포인트 입니다. 무엇인지?? 한번 보시죠.


 

네 바로 유스케이스 다이어그램으로 통해 제가 그려 보았는데 잠시 힌트를 드리자면..

다이어그램을 그린 것을 작업항목에 바로 연결할 수 있다면 어떻게 될까요??

네 Architect 개발에서 그림을 그린것을 작업항목에 연결하여 TFS 서버와 연결할 수 있고, 이 작업항목은 기존에 알고 있는 TFS의 작업항목이라면??? 이것이 Architect 개발의 시작점 입니다. 뭐?

바로 UML로 그린 다음 이것을 작업 항목으로 연결하는 것이 시작점 입니다.

 

정말 그런지는 바로 다음 화면에서 확인 가능합니다.



 

액터를 그려서 그 액터에 해당하는 작업항목을 생성할 수 있습니다. 앞에서 제가 설명한 그대로 인거죠?

(액터가 졸라맨이 아닌... 이쁘장한 그림으로 ㅎㅎㅎ 옛날엔 졸라맨 이였는뎅 ㅋㅋㅋ)

 

그렇다면 이게 시작점 이라고 했습니다. 네 여기서 제가 몇가지 더 그린다음 이제 TFS와 연결하고 이것을 작업항목으로 연결하려 합니다.

연결하여 작업하는 것은 2번째에 하기로 하고, UML 설계를 것을 TFS 저장한다는 것은 이제 문서화하기 설계된 것도 TFS 저장소에 저장하고 이를 언제든지 활용할 있으며, UML이라는 대중적인 지원으로 이제 Visual Studio 에서도 모델링을 이용한 설계를 하고 바로 개발 까지 이여야 있습니다. 그럼 이제 다음으로 넘어가 2번째 부분을 하는데.. 이건 .Soon 입니다.^^

바로 올리겠습니다. TFS 연동한 모습을. ㅎㅎㅎ 금주에 다시~~