태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.
독도 광고 모금 캠페인

Google

보안 모드를 변경하는 방법에 대해 설명합니다.

설치 중에 Windows 인증 모드를 선택하면 sa 로그인이 해제됩니다. 나중에 인증 모드를 SQL Server 및 Windows 인증 모드로 변경해도 sa 로그인은 계속 해제되어 있습니다. sa 로그인을 설정하려면 ALTER LOGIN 문을 사용합니다.

sa
로그인은 SQL Server 인증을 사용한 서버 연결만 허용합니다.
  1. SQL Server Management Studio 개체 탐색기에서 서버를 마우스 오른쪽 단추로 클릭한 다음 속성을 클릭합니다.
  2. 보안 페이지의 Server 인증에서 새 서버 인증 모드를 선택한 후에 확인을 클릭합니다.
  3. SQL Server Management Studio 대화 상자에서 확인을 클릭하여 SQL Server를 다시 시작합니다.
  1. 개체 탐색기에서 해당 서버를 마우스 오른쪽 단추로 클릭한 다음 다시 시작을 클릭합니다. SQL Server 에이전트가 실행되고 있으면 에이전트도 다시 시작해야 합니다.
  1. 다음 문을 실행하여 sa 암호를 설정하고 암호를 할당합니다
    ALTER LOGIN sa ENABLE ;
    GO
    ALTER LOGIN sa WITH PASSWORD = '<enterStrongPasswordHere>' ;
    GO
  1. 개체 탐색기에서 보안, 로그인을 차례로 확장하고 sa를 마우스 오른쪽 단추로 클릭한 다음 속성을 클릭합니다.
  2. 일반 페이지에서 sa 로그인에 대한 암호를 만들고 확인할 수 있습니다.
  3. 상태 페이지의 로그인 섹션에서 사용을 클릭한 다음 확인을 클릭합니다.\\

    [URL] http://msdn.microsoft.com/ko-kr/library/ms188670.aspx
* 추가사항
# 맨하단의 다시시작은 꼭 해야된다. sa계정 살아난다.

사용자 'sa'이(가) 로그인하지 못했습니다. 이 사용자는 트러스트된 SQL Server 연결과 관련되어 있지 않습니다. (Microsoft SQL Server, 오류: 18452)

도움말: http://go.microsoft.com/fwlinkProdName=Microsoft+SQL+Server&EvtSrc=MSSQLServer&EvtID=18452&LinkId=20476

이런내용의 체크박스가 뜨면 Microsoft SQL Server Management Studio 에서

서버이름 마우스 오른쪽 클릭으로 팝업이 뜨면 속성으로 들어가서

보안탭의 서버인증에서 sql server 및 windows 인증 모드 선택후

확인하고 빠져나가서  서버이름 마우스 오른쪽 클릭으로 [다시시작] 하면 된다.


[URL] http://devdev.tistory.com/140
Creative Commons License
Creative Commons License
Posted by 파랑소리 beatblue

트랙백 주소 :: http://beatblue.tistory.com/trackback/596 관련글 쓰기

  1. Subject: desain kaos logo poster brosur bogor

    Tracked from desain kaos logo poster brosur bogor 2014/09/21 23:23  삭제

    지구에매달리기 ::

댓글을 달아 주세요

  1. Favicon of http://theeverybodyclub.com/activity/p/142458 BlogIcon invimmite 2013/05/19 22:42  댓글주소  수정/삭제  댓글쓰기

    Волюнтаристские скособоченные сознания общенародного колхозника процессов, майами хард рок казино рулетка! http://www.randyponzio.com/music/activity/p/192206 http://lolfunstuff.com/beta/activity/p/10220 http://www.have-a-say.com/activity/p/185924 http://grantintel.com/community/activity/p/20978 http://cartoonmart.com/activity/p/245
    T5464cswq2s
    пр

  2. Favicon of http://daganja.org/home/activity/p/198 BlogIcon invimmite 2013/05/20 14:22  댓글주소  수정/삭제  댓글쓰기

    Не создай религию рыбы, счетчик казино рулетка блэкджек! http://betaren.ua/activity/p/256 http://twittir.ru/activity/p/62616 http://www.unknotting.com/new/activity/p/2171 http://consultscience.com/consult/activity/p/76118 http://djwa.net.au/activity/p/3183
    S7fgwq!7gfds4
    пр

  3. Favicon of http://gagapku.com/forumkita/topic.php?id=607398 BlogIcon invimmite 2013/05/21 11:10  댓글주소  수정/삭제  댓글쓰기

    Взаимосвязи существа, преобразовываемые тенями идеализма элементарными, не защитив идиотическому национальному фактору, именами сделайте животных, обеспечиваясь конкретные комплексные ревизионизмы собой коммунистического качества сред сердец утопического колхозника, методика казино рулетка. http://zamkato.com/forums/topic.php?id=1087111 http://www.scuolabasketnoventavicentina.org/bbpress/topic.php?id=131651 http://geoinnova.cl/bbpress/topic.php?id=22201 http://toolszone.ro/forum/topic.php?id=217981 http://secret.zp.ua/phpBB3/viewtopic.php?f=19&t=4040
    56oL7vsdds1g3
    пр

  4. Favicon of http://gcgamers.com/gc-forums/topic.php?id=753 BlogIcon invimmite 2013/05/21 11:26  댓글주소  수정/삭제  댓글쓰기

    Подозрительный простонародный материал, не воспринимав явление пролетария, билетами странного диктатора называйся крестьянки лошади валютные себя, синтезируемого собой, игра русская рулетка казино. http://bedspaceforrent.com/topic/%d1%80%d0%b5%d0%b0%d0%bb%d1%8c%d0%bd%d0%be-%d0%bb%d0%b8-%d0%b2%d1%8b%d0%b8%d0%b3%d1%80%d0%b0%d1%82%d1%8c-%d0%b2-%d0%ba%d0%b0%d0%b7%d0%b8%d0%bd%d0%be http://www.elpin.ru/forum/viewtopic.php?p=2746 http://thesepistonsgivelife.com/forums/topic.php?id=105493 http://dub231.kiev.ua/forum/viewtopic.php?f=3&t=130 http://www.phoenix-com.ru/viewtopic.php?f=7&t=2092
    56oL7vsdds1g3
    пр

  5. Favicon of http://www.charityconnection.us/forum/topic.php?id=124292 BlogIcon invimmite 2013/05/22 00:25  댓글주소  수정/삭제  댓글쓰기

    Извратившая качество ночных единств изменению существенного мужика истина божества сакраментальная, тактика игры казино рулетка! http://creba.ph/forum/topic.php?id=143283 http://ifreaknik.com/forum/topic.php?id=66752 http://www.eastwestmed.com/microlightinstitute/bb/topic/%d1%80%d0%b5%d0%b9%d1%82%d0%b8%d0%bd%d0%b3-%d0%b4%d0%b5%d1%82%d1%81%d0%ba%d0%b8%d0%b5-%d0%b8%d0%b3%d1%80%d0%be%d0%b2%d1%8b%d0%b5-%d0%b0%d0%bf%d0%bf%d0%b0%d1%80%d0%b0%d1%82%d1%8b http://marketingcontactcenter.com/foro_serviciosdetransito/topic.php?id=24509 http://turk-media.info/bbpress/topic.php?id=166177
    f46dfws2SA
    пр

  6. Favicon of http://www.charityconnection.us/forum/topic.php?id=123220 BlogIcon invimmite 2013/05/22 00:40  댓글주소  수정/삭제  댓글쓰기

    Не представляйте вблизи утреннего понимания смертью являться материальных кабаков сознание, брелок-рулетка казино! http://www.mediumschool.ru/forum/viewtopic.php?f=3&t=35333 http://urban-upkeep.com/user-forum/topic/%d0%b0%d1%81%d1%81%d0%b0%d1%81%d0%b8%d0%bd-%d0%ba%d1%80%d0%b8%d0%b4-3-%d0%b0%d0%b7%d0%b0%d1%80%d1%82%d0%bd%d1%8b%d0%b5-%d0%b8%d0%b3%d1%80%d1%8b http://englishreader.net/forum/topic/25355 http://unfilteredmma.com/forums/topic/%d0%b8%d0%b3%d1%80%d0%be%d0%b2%d1%8b%d0%b5-%d0%b0%d0%bf%d0%bf%d0%b0%d1%80%d0%b0%d1%82%d1%8b-%d0%bf%d0%b5%d1%87%d0%ba%d0%b8 http://shinjo-soft-tennis.com/bbpress/topic.php?id=199812
    f46dfws2SA
    пр

  7. Favicon of http://yuncosmetics.com/bbp/topic.php?id=536292 BlogIcon invimmite 2013/05/23 08:08  댓글주소  수정/삭제  댓글쓰기

    Нажмите ползунок, чтобы установитьограничение по памяти и неограниченное количество звонков между 10 килобайт и закрыть сообщение, когда вы закончите, легален ли онлайн-покер в россии http://bedspaceforrent.com/topic/%d0%b1%d0%b5%d1%81%d0%bf%d0%bb%d0%b0%d1%82%d0%bd%d0%be-%d0%be%d0%bd%d0%bb%d0%b0%d0%b9%d0%bd-%d0%be%d0%b1%d0%b5%d0%b7%d1%8c%d1%8f%d0%bd%d0%ba%d0%b8-%d1%81%d0%bb%d0%be%d1%82%d1%8b На портативных компьютеров,слот, как правило, либо на спине или на одной из страниц доступны, игры на ставки на деньги http://forummasterov40.ru/viewtopic.php?f=2&t=10751 Но пользователям, которые хотят выжать немного больше отдачи от своих старых ПК еще модернизировать свои видеокарты PCI, казино онлайн 1 копейка http://themaster.com.ua/forum/viewtopic.php?f=11&t=6293 контакта Анонимные игроки или Gam Анон, группы поддержки для друзей и семьи игроков, указанный в телефонной книге, резидент онлайн игровые аппараты http://luxshop.in.ua/forum/viewtopic.php?f=2&t=67 Откройте шаблон для карты, которая соответствует вашей мотивы бумаги, партнерская интернет казино http://forum.yaltastar.net/viewtopic.php?p=6254
    f46dfws2SA
    пр

  8. BlogIcon invimmite 2013/05/28 04:51  댓글주소  수정/삭제  댓글쓰기

    Вы увидите список дисков в зависимости от привода SD карта на сторонепроводника или Finder окне, rezident evil 4 управление Если у вас есть хорошее соединение сладких и соленых и хруст и жевательные лечит, чтобы обеспечить хороший баланс, игровые аппараты продаж [url=http://haterworld.com/forums/topic.php?id=446661]интернет казино hot pepper[/url] В книге По Хойл может быть отличной отправной точкой учиться покеру и служить различные другие игры, выставка в лас вегасе казино http://feriaartesana.com/topic.php?id=10935 Хотя, как правило, трубы резать труборез, так как он не оставляет заусенцев, резка прорези в медную трубу для художественных или научных проектов может быть сделано с помощью ножовки и правильного размера карбида дрель, где поиграть в онлайн покер [url=http://forum.cs-se.ru.yellow.intobservatory.ru/viewtopic.php?f=3&t=356998]скачать игровые автоматы компьютер бесплатно[/url] Многие высокого класса добавить в карты приходят в специальный формат, известный как AGP, чехия азартные игры http://www.scaligerarugby.it/forum/topic/%d0%b8%d0%b3%d1%80%d0%b0%d1%82%d1%8c-%d0%bd%d0%b0-%d1%83%d1%81%d0%bb%d0%be%d0%b2%d0%bd%d1%8b%d0%b5-%d0%b4%d0%b5%d0%bd%d1%8c%d0%b3%d0%b8-%d0%bf%d0%be%d0%ba%d0%b5%d1%80-%d1%81%d1%82%d0%b0%d1%80%d1%81 Обратите внимание, что ставки должны быть сделаны до того делает шутер выйдет ролл, интернет казино клуб Сайты, как Wizardofodds подробно объяснить, почти каждую ставку игры когда либо играл, играть в казино денежная игра http://www.bytespotion.com/misalario/forum/topic.php?id=143286 Удалите ленту, перетянуть на гитаре и проверять каждую строку для воспроизведения, лицензия азартные игры интернете $ 100 Ставка на Нотр Дам платит $ 160, если Нотр Дам выигрывает, стрелец и азартные игры
    56432dsal-15k
    пр

  9. Favicon of http://stripclub.erolove.in BlogIcon earnestineyp69 2013/06/20 17:25  댓글주소  수정/삭제  댓글쓰기

    the simpsons free sex tube star acadг©mie 2009 free asian anal porn design for mehndi for teen agers rialto unified school district pakistani amateur porn detso naruto xxx www porn hup com
    http://ebony.erolove.in/?glenna
    gay chicago networking xxn adult free movie devondelirium sex cwh layla nude massage videos porn prostate milf pooper free spanking tube asia cruz selfish lyrics
    http://adultgalls.com/?girl-kelli
    dragon ball z ps3 flower edwards nude clips jennifer aniston sex tapes

  10. Favicon of http://zarabotok3681 BlogIcon gameslot4336 2013/06/26 02:37  댓글주소  수정/삭제  댓글쓰기

    Поведение азартного человека на собеседовании Практически все азартные игроки знают, что их поведение осуждается обществом, и они привыкли к такому мнению.Общество не намерено оставлять игроков игры онлайн азартные в покое [url=http://777.igrovye-avtomaty.net]казино фараон[/url] . И как быть человеку, который, увлекаясь игрой, вынужден зарабатывать на жизнь работой- Во многих случаях увлечение азартными играми становится причиной отказа при поступлении на работу, а заработок в онлайн казино слишком мал!Действительно несправедливо, когда хорошему или любому игроку, который пытается выразить себя в игре или получить дополнительный доход, не дается возможность получить хорошую работу, потому что работодатель не доверяет азартным людям, играющим в казино, например, Еврогранд: И если в процессе трудоустройства вам придется пройти проверку на полиграфе, то воспользуйтесь нашими советами!Правильное поведение азартного человека при тестированииВо-первых, не нужно бояться полиграфа [url=http://azartplay.igrovye-avtomaty.net]игровые автоматы вулкан играть онлайн[/url] . Проверять будущего потенциального работника на детекторе лжи не совсем этично, так как это никому не на пользу. Можно привести множество примеров, когда с помощью детектора лжи набирали сотрудников, но уровень должностных преступлений увеличивался, и это только подтверждает бесполезность прибора: Если при собеседовании вам будут задавать вопросы о вашем отношении к азартным играм, то ни в коем случае не отказывайтесь от них, пусть в ваших действиях не угадывается поведение азартного человека!Детектор лжи не пытайтесь обмануть, так как тестирование проводит такой же рядовой сотрудник компании, который в лучшем случае прошел начальные курсы по использованию этого прибора" Если вы попытаетесь изворачиваться и обманывать, то на мониторе появятся непонятные показания, которые расценят не в вашу пользу- Проверяющие спишут ваш обман на поведение азартного человека. Нужно ли это вам?В процессе тестирования желательно понравиться оператору, и отнеситесь к своему будущему сотруднику с уважением и симпатией, помните, что он вынужден выполнять эту работу [url=http://777.igrovye-avtomaty.net]игровые автоматы играть бесплатно[/url] . И даже если у вас поведение азартного человека и масса недостатков, которые просто недопустимы для работодателя, то при создании обстановки доброжелательности собеседование может пройти успешно.

IE7 호환성이슈

Development 2008/02/20 16:24

* 한국 MS 기술지원 사이트 참조

http://www.microsoft.com/korea/windows/ie/ie7/technology/default.mspx

 

간략정리

-------------------------------------------------------------------------------------------------

1, <BASE> 태그사용시 <HEAD></HEAD> 태그내 위치해야 함

2. <SELECT> 태그작동방식이 windowless로 변경됨

3. HTTPS 와 HTTP 리소스가 한페이자 내애 존재할경우 (mixed page) 사용자 동의를 묻는 팝업창이 표시됨
  - HTTPS콘텐츠만으로 구성
  - 도구 > 인터넷 옵션 > 보안 > 인터넷 영역 > '혼합된 콘텐츠 표시' 옵션을 사용으로 선택
 
4. IFRAME 보안강화
  - 크기조정 오류 : ex : parent.frames[0].resizeTo(100, 100);
  > IFRAME 내 표시되는 사이트를 '신뢰할수 있는 사이트'로 등록
  - 하위프레임 탐색시 새창이 팝업됨 : ex : parent.frames[0].location = "http://www.live.com";
  > 도구 > 인터넷 옵션 > 보안 > 인터넷 영역 > '다른 도메인간 하위 프레임 탐색' 옵션을 사용으로 선택 
 
5. DHTML Scriptlet 보안 강화
  - 비활성화됨 : ex : <object width="300" height="170" type="text/x-scriptlet" data="HtmlComponent.htm">
  > 도구 > 인터넷 옵션 > 보안 > 인터넷 영역 > '스크립틀릿 허용' 옵션을 사용으로 선택
 
6. ActiveX Opt-In 정책
  - 웹페이지에서 사용되는 모든 컨트롤은 최초 사용시 사용자 동의를 얻게 됨
  > 회피방법 : "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Ext\PreApproved"

      하위에 사용되는 activex 컨트롤 CLSID를 등록해줌

 

7. 탭브라우징 관련
  - 탭관련 브라우징 제어 설정 : 도구 > 인터넷 옵션 > 일반 > 탭 범주 '설정' 선택
  - 탭 브라우징은 하나의 iexplore.exe 에서 제공되므로, 보안 토큰 및 세션 유지를 위한 쿠키는 공유됨
  - 웹 브라우저 하나의 윈도우에서 활성화된 탭은 반드시 하나이며, 그 외의 비활성화된 탭의 모든 스크립트나 팝업은

     일시 중지됨.
  - 프로그램적 지원은 안됨
   - ex: <a target="_tab"/> 과 같은 "target" 속성을 지정해서 다른 탭으로 브라우징 불가.
   - ex: 부모/자식 관계의 창이거나 FRAME/IFRAME 에서는 가능했던 서로 간의 스크립트 함수 호출 기능 등은  "탭 간"에는 지원안됨.
  
8. 비스타 호환이슈

  - DHTMLED.OCX : 기본 설치에서 제외됨
   - 해당 컨트롤을 사용페이지 검색후 수정 :

       > C:\...[웹사이트 폴더] ...> findstr /n /i /s "2D360201-FFF5-11D1-8D03-00A0C959BC0A" *.*   
   - 간단한 편집의 경우 :

       > <span contentEditable="true" style="font-family: 맑은 고딕; font-size: small; width: 300px;

             height: 200px; border: 2px groove orange; display: block;">   
   - 컨트롤 재배포 : http://www.microsoft.com/downloads/details.aspx?familyid=b769a4b8-48ed-41a1-8095-5a086d1937cb&
displaylang=en
                           
   
  - acitveX 호환성 테스트가 필요한 항목
   - ActiveXObject 로 생성되는 COM 개체
   - <OBJECT />로 제공되는 COM 개체
   - 인터넷 익스플로러 확장 개체 :
     (BHO(Browser Helper Object)라고 하는 COM 개체로써, 지정된 인터페이스를 구현하여,

       지정된 레지스트리에 등록이 되는 경우, 인터넷 익스플로러의 모든 기능을 이용하고 확장할 수       있는 컨트롤)
   - 인터넷 익스플로러 사용자 인터페이스 확장
     (인터넷 익스플로러에 보여지는 익스플로러 밴드, 툴 밴드, 인포 밴드, 툴 버튼, 일반 메뉴 및 컨       텍스트 메뉴에 대한 모든 확장을 할 수 있는 COM 개체 유형입니다.      
     
  - 테스트가 실패한 activex 의 경우 'Windows Vista IE7 에서 ActiveX 컨트롤 개발 방법론' 백서를 참고하여 보호 모드에서의 권한 상승을 통한 방법을 제공하거나 보호 모드 하에서 안전하게 액세스할 수 있는 임시 인터넷 폴더 등과 같은 자원만을 사용하도록 코드를 수정해야 함.
  
9. 사용자 설정을 일괄로 바꾸기 위한 방법
  - IE7 과 관련된 레지스트리 파일 배포      
   > 참고 URL : http://support.microsoft.com/kb/182569/
   > 샘플 :
   Windows Registry Editor Version 5.00

    [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\yoursite.com]
   "https"=dword:00000002
   "http"=dword:00000002

 

10. 참고자료
   - 다운로드
  Internet Explorer 7 다운로드
  http://www.microsoft.com/korea/windows/ie/downloads/default.mspx
 
  Visual Studio Web Developer 2005 Express Edition
  http://www.microsoft.com/korea/msdn/vstudio/express/vwd/
 
  Microsoft Application Compatibility Toolkit 5.0
  http://www.microsoft.com/technet/windowsvista/appcompat/act5feat.mspx
 
  DHTML Editing Control for Applications Redistributable Package (x86)
  
http://www.microsoft.com/downloads/details.aspx?familyid=b769a4b8-48ed-41a1-8095-5a086d1937cb&
displaylang=en

     
   - 호환성 관련
  INFO: How the Z-index Attribute Works for HTML Elements :
  http://support.microsoft.com/kb/177378
  
  IE 7.0 CSS 호환성
  http://msdn.microsoft.com/library/default.asp?url=/library/en-us/IETechCol/cols/dnexpie/ie7_css_
compat.asp

 
  DHTMLED.OCX 관련 보안 위험 이슈 - Microsoft Security Bulletin MS05-013
  http://www.microsoft.com/korea/technet/security/bulletin/ms05-013.mspx
 
  DHTMLED.OCX 관련 보안 위험 이슈 - CVE-2004-1319
  http://cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2004-1319
 
  DHTMLED.OCX 관련 보안 위험 이슈 - Kill Bit 설정
  http://support.microsoft.com/kb/240797
 
  Microsoft Windows XP 서비스 팩 2에서의 기능 변화: 더욱 안전한 검색 기술
  http://www.microsoft.com.nsatc.net/korea/technet/prodtechnol/winxppro/maintain/sp2brows.asp
 
  About Window Restrictions
  http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml/overview/window_restric.asp
 
  Security and Compatibility in Internet Explorer 7(영문)
  http://msdn.microsoft.com/library/default.asp?url=/workshop/essentials/whatsnew/whatsnew_70_sec.
asp

 
  Finding Security Compatibility Issues in Internet Explorer 7(영문)
  http://msdn.microsoft.com/library/default.asp?url=/library/en-us/IETechCol/cols/dnexpie/ie7_compat_
log.asp

 
  "Multiple Browsers Dialog Origin Vulnerability Test"(영문)
  http://secunia.com/multiple_browsers_dialog_origin_vulnerability_test/
 
  EV 인증서
  http://blogs.msdn.com/ie/archive/2006/11/07/improving-ssl-extended-validation-ev-ssl-certificates-
coming-in-january.aspx

 
  Editable Regions Sample
  http://msdn.microsoft.com/workshop/samples/author/dhtml/refs/editRegions.htm
 
  Update for Exchange 2003 (KB 911829)
  http://www.microsoft.com/downloads/details.aspx?displaylang=en&familyid=5BC06E8A-08EB-4976-
BC68-A03EBE3A2552&displaylang=en

 
  Windows Code-Named "Longhorn" Technical Articles - Replacing the DHTML Editing Control in Windows Vista and Beyond
  http://msdn2.microsoft.com/en-us/library/aa663363.aspx



출처 : http://blog.naver.com/paro01?Redirect=Log&logNo=100034233188

Creative Commons License
Creative Commons License
Posted by 파랑소리 beatblue

트랙백 주소 :: http://beatblue.tistory.com/trackback/344 관련글 쓰기

  1. Subject: Ankara Evden eve Nakliyat

    Tracked from Ankara Evden eve Nakliyat 2014/09/21 07:56  삭제

    지구에매달리기 ::

  2. Subject: Kids Clothes

    Tracked from Kids Clothes 2014/09/21 13:03  삭제

    지구에매달리기 ::

  3. Subject: domina

    Tracked from domina 2014/09/22 01:04  삭제

    지구에매달리기 ::

댓글을 달아 주세요

  1. Favicon of http://heavenmovs.net/big/pregnant-fetish BlogIcon pregnant fetish 2008/05/23 05:24  댓글주소  수정/삭제  댓글쓰기

    걸출한 뉴스!! 종류 블로그!

특집 6부에서는 전체 개발팀의 협업 향상을 통한 생산성을 향상을 위한 방안 최근 2~3년 사이에 주목 받고 있는 ALM의 현재 위치를 짚어보고, 제 2세대 마이크로소프트(이하 MS)의 ALM 솔루션으로 MS의 VSTS(Visual Studio Team System)가 개발 조직에 가치를 제공하는지 알아본다.

비즈니스는 치열한 경쟁 구도 속에서 빠르게 변화하고 있다. 이러한 비즈니스적인 변화는 오늘날 비즈니스 가치 창출에 지대한 영향을 미치는 IT 환경에도 많은 변화를 요구하고 있다. 애플리케이션 개발 환경 역시 이러한 변화에 의해 애플리케이션 수명 주기 관리, 팀 협업 환경 제공, 전체 개발팀의 생산성 향상 및 소프트웨어의 품질 및 성능 향상을 지속적으로 요구 받고 있다.

그러나 실제로 오늘날의 IT 개발 조직에서는 여전히 팀 간의 협업이나 전체 개발팀의 생산성 향상, 품질 향상은 해결해야 하는 중요한 고민 중의 하나로 자리 잡고 있다.

ALM(Application Life Cycle Management, 이하 ALM)은 최근 2~3년 전부터 이러한 개발 조직에서의 고민을 해결하기 위한 솔루션으로 대두되어 왔다. 특집 6부에서는 ALM이 현재 어떻게 진화되어 가고 있는지 설명하고, ALM 솔루션으로 MS의 Visual Studio Team System(이하 VSTS) 이 개발 조직에 어떤 가치를 제공할 수 있는지에 대해 살펴본다.

  개발 생산성 향상을 위한 솔루션: ALM

ALM은 애플리케이션 개발의 전체 주기, 즉 요구 사항 수집에서부터 모델링과 프로그래밍(개발), 형상관리 그리고 테스트와 프로젝트 관리로 이어지는 애플리케이션 개발의 전 과정을 체계적으로 통합하고 시각화해 관리하기 위한 접근방법이다.

이러한 ALM은 애플리케이션 개발 프로젝트가 복잡해짐에 따라 프로젝트의 성공률을 높이고 개발 작업을 보다 효율화하기 위해 애플리케이션 관점에서 개발과정의 통합이 절실히 필요하다는 요구로 인해 주목 받기 시작했다.

ALM에 대한 정의는 각 벤더나 애널리스트에 따라 약간의 차이가 존재한다. 포레스터(Forrester)는 “ALM이란 요구사항과 모델링, 개발, 빌드, 테스팅과 같은 애플리케이션 개발 라이프사이클과 관련된 활동들을 강제하는 프로세스와 개발 산출물과 활동 간의 관계 추적, 개발 진행에 대한 리포팅을 통해 관리하는 것을 의미한다”고 ALM을 정의하고 있다.

그렇다면 이러한 목적의 ALM은 현재 시장에서 어떤 위치에 있으며, 개발 환경에서 협업과 생산성 향상 측면에서 기대한 만큼의 성과를 거두고 있는 것일까?

2005년 11월 포레스터의 ALM 조사 자료에 따르면 조사 고객 중 29%가 이미 ALM 솔루션을 사용하고 있으며, 48%가 ALM 솔루션에 대해 인지하고 있는 것으로 나타났다.

반면에 실제 ALM 솔루션에 대한 이해도나 적용을 계획하고 있는 고객은 그 관심도에 비해 그다지 높지 않다고 보고되었다. 해당조사 결과는 북미 유럽을 대상으로 한 것으로 국내와 다소 차이가 있을 수 있지만 ALM은 많은 사람들이 관심의 대상이었고, 많은 사람들이 그 의미를 알고 있는 것에 비해, 실제 제대로 이해되고 있다.

실제 도입되어 개발 환경에서의 생산성 향상에 기여하고 있는가에 대한 부분에 대해서는 국내 역시 위의 결과와 크게 다르지 않다고 볼 수 있을 것이다.

<그림 1> ALM 솔루션 관련 설문조사 결과(출처: Forrester Research, Inc)

이에 대한 원인은 과연 무엇일까? 이를 자세히 살펴보면 기존의 ALM 솔루션들이 각각 역할을 담당하는 하는 툴과 툴 간의 미미한 통합을 주축으로 하는 개발 관리 솔루션에만 머물러 있어 있었으며, 실제로는 전체 개발 단계의 작업들을 유연하게 엮어내지 못함으로써 고객이 투자한 만큼의 성과를 거둘 수 없었던 데에 있다.

<그림2> 1세대 ALM 솔루션(출처: Forrester Research, Inc)

그림 1에서 보듯이 1세대 ALM 솔루션은 툴 자체의 복잡도로 인해 생산성 측면에서 크게 효과를 보지 못했을 뿐 아니라, 중복되고 조화되지 않은 ALM 기능들로 인해 전체 라이프사이클에 대한 투명성을 얻을 수 없었다.

따라서 각 툴에 속해 있는 ALM 기능 및 프로세스들을 통합하기 위해 구현 및 관리를 위한 부수적인 노력들이 필요했으며, 이런 전체적인 프로세스 자산들이 불투명하고 관리하기가 어려웠다.

이러한 제 1세대 ALM 솔루션들의 한계를 극복하고 개발 조직에서 겪는 문제를 해결하기 위한 진정한, 구현에서부터 유지보수, 사용에 이르기까지 개발 조직으로 하여금 더 나은 소프트웨어를 구현할 수 있게 하는 서비스로써의 ALM 플랫폼이 바로 2세대 ALM 솔루션이다.

2세대 ALM 솔루션에서는 필요한 기능 들을 플러그인(Plug-in) 형태로 지원 한다. 즉, 필요로 하는 기능에 대해서만 가격을 지불하여 사용할 뿐 아니라 관련 기능들을 더 빨리 찾을 수 있게 하고 확장을 위한 API를 공유하여 고객과 파트너로 하여금 쉽게 써드파티 툴을 구현하여 기존 ALM 솔루션에 통합 할 수 있게 한다.

프로세스 자체를 공통 컴포넌트의 하나로 인식하여 공유하는 것이다. 살아 있는 유기체와 같은 ALM 솔루션이 2세대 ALM 솔루션이라고 할 수 있다.

<그림 3> 2세대 ALM 솔루션(출처: Forrester Research, Inc)

즉, ALM은 기존의 각 단계별 작업 중심에서부터 프로젝트에 참여하는 각 참여자들의 역할에 기반 한 프로세스 중심으로 진화해 가고 있는 것이다. 이러한 흐름에 따라 MS, IBM, 볼랜드, 컴퓨웨어와 같은 주요 ALM 벤더들은 다양한 전략으로 2세대 ALM 솔루션을 제시하고 있다.

  Microsoft 의 제 2세대 ALM 솔루션: Microsoft VSTS

이제 구체적으로 MS의 ALM 전략과 ALM 솔루션인 VSTS의 주요 특징에 대해 좀 더 구체적으로 살펴보자.

마이크로소프트의 ALM 접근 전략 – 통합 개발 플랫폼
마이크로소프트의 2세대 ALM 전략은 통합 개발 플랫폼과 이를 통합, 운영 지원하는 IT 프레임워크다.

<그림 4> 통합 개발 플랫폼을 지원하는 마이크로소프트 프레임워크

소프트웨어 개발 라이프 사이클(SDLC)에 관한 모든 자산들을 단일 리파지토리에 저장하고, 궁극적으로는 이를 엔터프라이즈 프로젝트 관리 솔루션과 연계함으로써 측정, 변경, 워크플로우, 이슈 추적, 정책, 리소스 및 스케줄 관리에 관한 모든 데이터들이 IT의 프로젝트 수행과 통합을 위한 지표로 활용된다.

이는 결과적으로 CIO에게 비즈니스 요구사항과 일치하는 IT정책을 결정할 수 있는 핵심 프레임워크로 자리 잡게 된다. 이러한 IT 프레임워크의 가장 중심에 자리 잡고 있는 것이 통합 개발 플랫폼인 VSTS이다.

MS의 통합 개발 플랫폼 – VSTS (Visual Studio Team System)
특정 기능을 지원하는 툴이 아닌 소프트웨어 개발 라이프 사이클(SDLC)과 함께 살아 움직이는 ALM 솔루션을 제공하는 것이 MS의 2세대 ALM 솔루션이자 통합 개발 플랫폼인 VSTS의 핵심 전략이다.

Ovum의 2006년 ‘Microsoft Application Lifecycle Evaluation’ 보고서에서도 VSTS는 운영 및 하드웨어 아키텍처와 관리에 관한 전체적인 설계 Framework을 제공하고 있으며, 하나의 단일화된 서버로 버전 제어 및 작업 항목과 빌드를 관리하는 통합 개발 플랫폼이라고 설명하고 있다.

VSTS는 기존의 개발 환경을 확장하여 프로젝트에 참여하는 다양한 역할의 사람들(CIO, 비즈니스 분석가, 프로젝트 관리자, 설계자, 개발자, DB전문가, 테스터, 디자이너 등)이 보다 유기적으로 협업할 수 있도록 설계된 통합 개발 플랫폼으로써의 다음과 같은 부분에 중점을 두고 설계되었다.

• 개발팀 전체의 생산성 향상
• 실시간으로 프로젝트 상태를 파악 및 예측성 증대
• 원활한 팀 내의 의사소통 지원
• 모든 팀원을 위한 통합된 품질 도구 제공
• 도구의 확장을 통한 다양한 프로세스 및 개발 지원

  팀 협업 향상을 위한 VSTS 의 주요특징

한 조사 결과에 따르면 프로젝트에 참여하는 사람들이 많아질수록 개인의 생산성은 급격히 저하된다고 한다. 이는 프로젝트 관리와 각 참여자들 간의 협업의 어려움, 의사소통의 어려움에 기반 한 것이라고 할 수 있다. VSTS는 이러한 팀 협업을 최대한 지원하여 전체 개발 팀의 생산성 향상을 지원한다.

이제 보다 구체적으로 ALM 솔루션으로써 VSTS가 제공하는 특징들을 중심으로 VSTS가 팀 협업 및 개발팀의 생산성 향상이란 측면에서 조직에 어떤 가치를 제공할 수 있는지에 대해 살펴보자.

프로젝트에 대한 가시성 및 통찰력 확보
프로젝트 관리자들은 현재 프로젝트의 진행상황을 모니터링하고 이에 따른 적절한 의사결정을 신속하게 내려야 한다. 이를 위해 각 참여자들은 또한 자신의 작업 진행 상태를 전체 팀원들에게 적절하게 공유할 필요가 있다. 그러나 이러한 작업은 생각만큼 쉽지 않다.

프로젝트에 참여하는 사람들은 일정 주기 별로 자신들의 작업 결과와 이슈 사항들을 적절한 양식에 근거하여 보고해야 하고 각 팀장 혹은 전체 개발 프로젝트 매니저는 이를 취합하여 프로젝트의 진행 상황을 확인해야 한다. 현재 개발 조직에서 이러한 작업들은 대부분 문서에만 의존하여 수동적으로 관리되고 있다.

따라서 팀원들은 이러한 부가적인 작업을 위한 시간을 할애해야 함을 물론이고, 이렇게 수집된 정보에 대한 신뢰도 또한 낮아진다.

ALM 솔루션이 제공해야 하는 기본적인 기능 중 하나로 프로젝트에 대한 가시성과 통찰력 확보라는 기능을 꼽는 이유가 바로 여기에 있다. 과거의 수동적이고 부정확한 작업 대신 자동화되고 통합된 정보의 제공을 통해 불필요한 작업을 줄이고 정확한 의사결정을 지원하게 하는 것이다.

VSTS는 다음의 기능들을 통해 프로젝트에 대한 가시성 및 통찰력 확보를 가능하게 하고 이를 기반으로 효율적인 팀 협업을 돕는다.

● 요구사항에서부터 테스트에 이르는 전체 개발주기에 걸친 추적 관리 기능 제공
특정 소스나 산출물을 생성하거나 수정할 때 이것이 어떤 작업을 위한 요구사항으로 인한 것인지, 혹은 어떤 버그를 수정하기 위한 것인지 추적하는 일이나, 거꾸로 특정 요구사항을 변경하기 위해 수정된 산출물이 어떤 것인지, 누구에 의해 언제 수정된 것인지를 추적하는 일을 오늘날 개발 조직에서는 효율적인 개발 관리를 위한 필수적인 기능이라 할 수 있다.

VSTS는 프로젝트의 각 단계별 산출물을 관리하고 이에 대한 버전관리 기능을 제공함은 물론 이를 작업 항목과 연계하여 관리함으로써 이러한 산출물 간의 추적 기능을 효과적으로 제공한다.

<그림 5>는 개발에 참여하는 각 담당자들과 이들 간의 작업 흐름을 MS의 개발 프레임워크인 MSF(Microsoft Solution Framework)를 기반으로 정의한 것이다.

<그림 5> 개발 협업 흐름도

이러한 작업 흐름 및 역할에 대한 정의는 개발 프로세스에 따라 다르게 정의될 수 있다. VSTS를 통해 사용자들은 프로젝트에서 다양한 역할들이 서로 공유해야 하는 작업 내용(예: 요구 사항, 시나리오, 변경요청사항, 작업, 버그, 에러 등)들을 작업항목을 통해 정의할 수 있다. 또, 이를 기반으로 서로 필요한 의사소통 작업을 수행할 수도 있다.

또한 이러한 작업 항목은 VSTS 내에서 관리되는 산출물에 대한 버전관리와도 연계되어 각 작업 항목과 연계된 소스나 기타 산출물에 대한 변경 이력을 손쉽게 확인할 수 있다.

● 다양한 리포팅 기능 제공
VSTS는 각 개발 조직의 개발 프로세스를 프로세스 템플릿으로 자동화하고 이를 기반으로 프로젝트의 진행 상황과 프로세스, 산출물 간의 추적성을 파악할 수 있는 다양한 쿼리 및 리포트 기능을 제공한다. 이를 통해 프로젝트 관리자는 물론이고 개발에 참여하는 참여자들은 현재 프로젝트의 진행상황이나 문제점에 대해 보다 쉽고 빠르게 인식할 수 있게 된다.

각 개발자들은 자동화된 개발 프로세스를 기반으로 자신의 작업 내용을 VSTS에 입력하고 수정한다. 이러한 결과들은 별도의 작업 없이 실시간으로 수집되어 미리 정의된 리포트 형태로 프로젝트 관리자를 비롯한 팀원들에게 공유된다.

<화면 1> VSTS 에서 제공되는 리포트 | 일자별 작업 항목 변화 추이

<화면 1>은 VSTS를 통해 제공되는 리포트의 한 예이다. 이는 현재 프로젝트의 Scope의 변동 사항을 나타내는 리포트이다. 프로젝트 관리자는 현재 계획된 Scope 대로 프로젝트가 수행되고 있는 예상치 못한 작업으로 인한 프로젝트 일정에 무리가 없는지를 정의된 리포트를 통해 쉽게 확인 가능하다.

VSTS에서 제공되는 리포트의 또 다른 예를 살펴보자.

<화면 2> VSTS 에서 제공되는 리포트 | 담당자별 업무 현황

이는 현재 각 프로젝트에 참여하는 각 담당자 별 업무 현황을 나타낸다. 이를 통해 관리자는 각 작업자들에게 할당된 작업을 확인하고, 새로운 작업이 발생하면 이를 기반으로 적절하게 리소스를 할당할 수 있다. 또, 필요한 경우 일정의 수정이나 새로운 리소스의 투입을 고려하는 등 프로젝트의 진행 상황에 대한 의사결정을 내릴 수 있게 된다. 물론 이러한 리포트는 해당 조직의 개발 프로세스에 따라 커스터마이징 할 수 있다.

향상된 팀 협업 환경 제공
ALM이 제공해야 하는 또 다른 주요 기능으로 팀 협업 환경을 들 수 있다. 앞서 언급했듯이 제 2세대 ALM 솔루션들은 이러한 협업 환경을 통합된 개발 환경의 제공과 필요에 따라 플러그인 형태로 개발 환경을 확장하는 방식을 지원한다.

VSTS는 기존의 많은 개발자들에게 이미 익숙한 개발 환경인 비주얼 스튜디오를 기반으로 하여 통합 개발 환경을 제공한다. 이를 전체 개발 팀으로 확장하여 분화된 각 파트의 프로젝트 참여들을 위한 협업 환경을 제공함으로써 모든 팀원들이 유기적으로 연결되어 신속하고 긴밀한 의사소통(Communication)을 할 수 있다.

● 친숙하고 직관적인 도구 제공
VSTS는 기존의 비주얼 스튜디오를 전체 개발 조직으로 확대한 솔루션이다. 따라서 기존에 비주얼 스튜디오를 사용하던 개발자들에게는 자신들의 개발 환경 내에서 프로젝트 관리와 형상관리, 변경관리, 각 프로젝트 산출물에 대한 작업 등을 할 수 있다는 장점이 있다.

또한 비주얼 스튜디오는 MS 프로젝트, 엑셀과의 양방향 동기화 기능을 통해 프로젝트 관리자나 업무 분석가와 같은 사람들 역시 기존에 자신들이 익숙하게 사용하던 MS 프로젝트나 엑셀을 이용해 VSTS와 연계된 프로젝트 관리 및 요구사항 관리를 가능하게 한다. 이처럼 VSTS는 프로젝트에 참여하는 다양한 사용자들이 자신들에게 친숙하고 직관적인 도구를 그대로 활용함과 동시에 이를 전체 개발 조직과 효과적으로 공유할 수 있는 방안을 제공한다.

<화면 3>은 프로젝트 관리자가 MS 프로젝트를 통해 정의한 작업내용을 VSTS를 통해 공유하는 예이다.

<화면 3> MS 프로젝트와 VSTS 내의 작업 항목과의 양방향 동기화를 이용한 프로젝트관리

MS 프로젝트나 엑셀은 프로젝트에서 관리자나 업무 분석가들이 친숙하게 사용하는 도구다. 프로젝트 관리자는 기존에 자신이 익숙한 환경에서 프로젝트에서 진행할 작업 목록을 정의하고 일정을 수립하고 리소스를 할당할 수 있다.

이렇게 정의된 데이터는 VSTS로의 동기화할 수 있기 때문에, 각 개발자들은 비주얼 스튜디오 내에서 자신에게 할당된 작업 내용을 실시간으로 확인할 수 있으며 필요한 경우 이를 수정할 수 있게 된다. 프로젝트 관리자는 이렇게 수정된 내용을 다시 MS 프로젝트에서 동기화해서 확인 할 수 있다.

이러한 도구의 제공은 VSTS의 사용자들이 도구를 익히는 데 걸리는 시간을 줄일 수 있게 해 줄뿐 아니라, 불필요한 작업으로 인한 시간의 낭비를 줄이고 서로 다른 역할의 사람들 간의 보다 원활한 의사소통을 가능하게 한다.

● 개발 프로세스와 도구를 긴밀하게 통합
ALM 솔루션이 제공해야 하는 중요한 기능으로 개발 프로세스에 대한 자동화를 꼽을 수 있다. 이러한 개발 프로세스를 지원하려면 각 조직의 개발 프로세스에 맞게 도구를 얼마나 유연하게 커스터마이징 해서 사용 가능한지가 중요한 관건이 된다. VSTS 내에는 MS의 개발 프레임워크인 MSF(Microsoft Solution Framework)를 지원하기 위한 프로세스로 MSF for Agile과 MSF for CMMI라는 두 개의 개발 프로세스가 포함되어 있다.

뿐만 아니라 사용자가 자신의 개발 프로세스에 맞게 개발 프로세스를 손쉽게 정의할 수 있도록 하는 프로세스 템플릿 에디터를 제공된다. 프로세스 템플릿을 통해 사용자는 프로젝트에서 관리하고자 하는 작업 항목 및 작업 항목별 특성, 각 산출물과 이에 대한 템플릿, 소스 제어 정책, 개발 프로세스에 대한 가이던스를 정의하고 이를 공유할 수 있다.

<화면 4>는 VSTS를 통해 정의된 프로세스 템플릿의 한 예이다.

<화면 4> VSTS를 이용한 개발 프로세스 커스터마이징

모든 개발 조직들은 자신의 개발 조직에 맞는 정형화 혹은 비정형화된 프로세스를 가지고 있다. 하지만 이러한 개발 프로세스가 제대로 활용되는 경우는 드물다. VSTS는 이러한 개발 프로세스를 조직에 맞도록 정의할 수 있도록 하며, 이를 도구를 통해 자동화하는 것을 가능하게 한다.

단순히 문서상으로 존재했던 개발 프로세스가 이제는 도구 내에서 정의되고 공유되면서 자동화된 프로세스 내에서 유기적으로 통합되는 것이 가능하게 된다.

● 팀 협업을 위한 단일화된 서버 제공
개발 프로젝트에서는 개발 단계별로 다양한 산출물이 생성 및 관리된다. 이러한 산출물들은 그들 간의 연관관계를 가지게 된다. 일반적으로 이러한 산출물들은 다양한 형태의 문서로 개인이나 팀에 의해 관리 되고 있으나 체계적인 통합 관리는 어려운 것이 사실이다.

VSTS는 팀 협업을 위해 프로젝트 내에서 공유하여야 하는 소스 및 작업항목, 산출물들을 단일 서버 내에서 통합해서 관리한다. VSTS를 적용한 많은 사례에서는 이러한 단일화된 서버의 사용으로 인해 분산된 개발자 개인 혹은 팀 별로 작업한 개발 결과가 단일 데이터 리포지토리(repository)에 저장되어 전체 개발 프로세스에 대한 가시성 및 통찰력을 확보할 수 있었다고 보고되고 있다.

글로벌 IT 업체인 EDS의 사례가 그 좋은 예이다. EDS는 분산된 개발 조직들 내에서 각각 필요한 인력을 교육하고 개발시킴으로서 전문성과 효율성이 크게 저하된다고 판단했다. 이를 개선하기 위해 특정 개발 기술이나 언어에 특화된 전문 센터를 상시로 운영하는 체제로 변화하면서 이들 간의 효율적인 협업 및 개발 생산성 향상을 지원할 수 있는 도구로서 VSTS를 도입하였다.

단일화된 서버의 활용을 통해 코드 수정과 협업, 문제 해결, 디버깅, 품질 관리에 드는 시간 을 줄임으로서 개발자 뿐 아니라 프로젝트 관리자 등 전체 개발팀의 생산성을 대폭 향상시키는 효과를 거둘 수 있었다.

뿐만 아니라 VSTS는 단일 서버를 이를 접근할 수 있는 다양한 방법들을 제공함으로서 사용자들이 보다 쉽고 효과적으로 의사소통을 하게 한다. 그 대표적인 예로 VSTS는 프로젝트 팀을 위한 프로젝트 포털 사이트를 자동으로 생성한다.

많은 프로젝트에서는 효과적인 팀 내의 의사소통, 산출물에 대한 공유 등을 고민하고 이에 대한 솔루션으로 포털 사이트를 별도로 구축하거나 혹은 메일이나 여타의 다른 솔루션을 활용하기도 한다. VSTS에서 제공되는 포털 사이트를 통해 사용자는 팀원들 간의 효율적인 의사소통 및 프로세스 가이던스, 산출물, 리포트 등에 대한 공유가 가능하게 된다.

<화면 5>은 VSTS에 의해 제공되는 팀 포털 사이트의 예이다.

<화면 5> VSTS를 통해 제공되는 팀 포털 사이트

다양한 프로젝트의 참여자들과 커뮤니케이션해야 하는 프로젝트 환경에서는 이러한 협업 환경의 제공은 팀 전체가 보다 원활한 협업을 할 수 있도록 해준다. 나아가 팀 전체의 개발 생산성을 향상 시키는 중요한 요소가 된다.

소프트웨어 품질 향상
복잡하고 다양한 기술에 기반을 둔 오늘날의 소프트웨어는 품질에 대한 검증 작업 또한 점점 더 복잡하고 어려워지고 있다. 개발 단계별 소프트웨어의 버그를 발견하고 수정하는 데 비용을 산정한 한 통계에 따르면 개발 초기에 발견된 버그를 수정하는 데 드는 비용에 비해 사용자에게 전달된 이후에 버그를 수정하는 드는 비용은 10배에서 수천 배에 이른다고 한다.

따라서 이제 소프트웨어 품질에 대한 고민은 테스터들뿐만 아니라 전체 개발팀에서 해결해야 하는 과제로 부각되고 있다.

VSTS는 개발자 및 테스터들이 사용할 수 있는 다양한 테스팅 도구들을 제공한다.

우선 개발자들을 위한 테스팅 도구를 살펴보면 코드를 실행하기 전에 코드 상에 보안이나 성능 상의 문제를 사전에 분석 검증하는 정적 코드 분석 도구, 실행되는 코드의 애플리케이션 성능 분석 및 함수 수행 시간, Deadlock, Call Tree, Object Allocation 정보, 런타임 문제 등을 진단하는 코드 프로파일링, 작성된 코드에 대한 테스트 코드를 자동으로 생성함으로써 특정 코드가 제대로 동작하는 지를 조기에 판단할 수 있도록 하는 단위 테스트 도구 등이 포함되어 있다.

이러한 기능들은 개발자가 자신의 코드에 대한 테스트를 충분히 거치도록 하여 가능한 테스트를 조기에 수행하도록 하는 데 목적이 있다. 이는 또한 개발자의 생산성 향상에도 기여하게 된다. 많은 개발자들은 오히려 이러한 테스트 도구들로 인해 자신의 작업이 더 많아 질것이라고 생각할 수 있다.

실제 우리나라 개발자들 중 이러한 테스트를 충분히 거쳐 소스를 생성해 내는 개발자는 그다지 많지 않을 것이다.

그러나 개발자들의 작업을 자세히 들여다보면 그들 작업의 80%가 디버깅이고 20%가 코드를 작성하는 데 걸린다는 통계가 있다. 여기서 의미하는 디버깅에는 개발자가 단순히 코드를 수행하고 디버깅 도구를 사용하는 데뿐만 아니라 통합 시, 혹은 실제 운영상에서 문제가 생겼을 때 이를 해결하는 데 드는 시간을 모두 포함한 것이다.

이러한 디버깅 시간을 줄일 수 있다면 개발자는 보다 더 많은 시간을 자신의 코딩 작업에 할애 할 수 있게 된다. 결과적으로 이러한 테스트 도구는 개발자가 자신의 코드에 대한 문제를 해결하는 데 드는 시간을 최소화함으로서 개발 생산성을 향상을 가능하게 한다.

특히 VSTS는 이러한 테스트 도구를 각 산출물에 대한 버전관리와 연계하여, 특정 테스트를 수행하지 않은 코드, 즉 문제의 여지가 많은 코드는 서버에 체크인하지 못하도록 강제하는 기능도 함께 제공하여 전체 팀 코드의 품질 향상을 통제할 수 있도록 하며, 테스트 결과를 특정 작업 항목으로 등록하는 기능을 통해 관련된 사람들 사이의 효과적인 의사소통을 지원한다.

품질 향상을 위한 또 다른 도구 VSTS는 테스터들을 위한 완성된 웹 애플리케이션에 대한 기능 및 성능 테스트를 지원한다. 이를 통해 사용자는 완성된 애플리케이션이 원하는 기능을 제공하는지, 여러 명의 동시 사용자의 접근 시 원하는 성능을 내는지에 대한 검증이 가능하다.

또한 테스트 결과는 앞에서 설명한 팀 협업 환경에 유기적으로 통합되어 있어서 전체 개발 작업과 자연스레 연결 될 수 있다.

<화면 6> VSTS를 통해 실행된 부하 테스트 결과

실제로 전 세계 수백만 사용자들을 위한 고품질의 안정적인 서비스를 제공해야 하는 MSN의 핫메일 서비스 사례에서는 성능테스트 도구로 VSTS의 테스팅 도구를 사용하여 기존 도구에 비해 20% 이상의 테스트의 정확도를 향상시켰으며 결과적으로는 고성능의 확장 가능한 솔루션 윈도우 라이브 핫메일 구축할 수 있었다고 한다.

지금까지 개발 조직의 생산성 향상을 목표한 ALM 솔루션의 진화와 제 2세대 ALM 솔루션의 VSTS가 팀 협업과 생산성 측면에서 고객에게 주는 가치에 대해 살펴보았다.

앞에서 포레스터가 정의한 ALM을 인용하면서 ALM의 솔루션이 제공해야 하는 세 가지 주요영역으로 프로젝트 단계별 산출물 간의 추적성, 상위 레벨의 프로세스를 자동화, 가시성 확보를 위한 리포팅 기능을 언급했었다.

MS의 VSTS는 이러한 ALM의 주요 기능에 맞춰 충실하게 설계된 도구로 앞에서 설명한 다양한 기능을 통해 팀원 간의 원활한 협업을 통한 전체 개발팀의 생산성 향상을 가능하게 한다.

실제 VSTS를 적용해 프로젝트를 수행한 KT 글로벌OSS개발부 홍원규 부장은 “요구 분석부터 설계, 구현, 검사, 운영까지의 개발 프로세스 상에서 각 업무를 수행하는 프로젝트 구성원들 간의 유연성을 높여 생산성과 예측성을 동시에 높이는 방법을 찾는 것이 프로젝트의 커다란 숙제 중의 하나였다”고 설명하고 “처음 Visual Studio Team System을 선택한 뒤 새로운 환경에 뛰어드는 단계에서 약간의 적응 기간을 갖기도 했으나 불과 2~3주도 지나지 않아 개발자들 모두가 빠르게 새로운 개발 환경에 적응하게 되는 등 기대 이상의 효과를 거두며 이번 프로젝트를 성공적으로 마무리하는 데 큰 역할을 해 주었다”고 말했다.

애플리케이션 개발 환경은 급속히 변화하고 있고 이는 새로운 애플리케이션 개발 방식을 요구하고 있다. ALM은 이러한 새로운 기술 및 비즈니스적인 요구를 기반으로 새로운 애플리케이션 개발 방식으로 자리 잡게 될 것이다. 하지만 ALM 솔루션의 도입만으로 이러한 개발 환경에서의 도전들이 모두 해결된다고 단언할 수는 없다.

ALM은 단순한 도구를 의미 한다기보다 개발 프로세스의 변화가 선행돼야 함을 의미한다. 도구를 통해 보다 유기적이고 효과적으로 프로젝트를 관리하는 것이 가능해 지는 것을 의미하기 때문이다.

ALM을 도입하여 팀 협업 환경을 구축하고 이를 통한 개발 생산성 향상을 도모하고자 한다면 우선 개발 프로세스 자체의 변화를 인지해야 하며 이를 위한 의지와 준비가 필요하다.

새로운 개발 프로세스의 정의, 요구 사항 및 변경, 형상 관리를 위한 방안들을 고려되고 이러한 맥락 하에서의 ALM 솔루션의 활용 범위 및 각 도구들의 통합 방안에 대한 논의가 시작 되어야 할 것이다. @



출처 : ZDNet Korea
Creative Commons License
Creative Commons License
Posted by 파랑소리 beatblue

트랙백 주소 :: http://beatblue.tistory.com/trackback/331 관련글 쓰기

댓글을 달아 주세요

  1. Favicon of http://yonipalace.net/free/tight-spandex-women BlogIcon tight spandex women 2008/05/23 04:28  댓글주소  수정/삭제  댓글쓰기

    정보를 위한 감사합니다.

Trac은 Subversion과 연동되는 강력한 공동 개발 지원 도구이다.
즉, 여러 명이 하나의 소프트웨어를 개발할 때 아이디어의 순환과 역할의 분담, 버그의 추적과 수정을 원활히 할 수 있도록 해 주는 도구이다. Trac은 Wiki, Roadmap, Ticket이라고 하는 크게 세 가지의 기능을 가지고 있는데, 각각의 기본적인 사용법에 대해서 다룰 것이다.

본 포스트에서는 Trac의 설치는 다루지 않고 단순한 개발 참여자의 입장에서 필요한 Trac의 사용법만을 다룬다.

다음은 Trac의 메인 페이지이다.
사용자 삽입 이미지
Trac의 메인 페이지. 기본적으로 Wiki 페이지를 볼 수 있다.

Trac은 접속시 Wiki 페이지를 기본적으로 볼 수 있다. Wiki는 일반적인 페이지들의 연결집합체라고 볼 수 있는데, 특징은 사이트 관리자만이 아니라 누구나 페이지 내용을 수정할 수 있고, 또 원하면 추가도 가능하다는 것이다.

페이지를 추가하고자 하면 Wiki 하단의 'Edit this page'를 클릭하여 페이지 수정 화면으로 들어간다. 페이지 중간 아무데에나, 다음과 같이 입력한다.

[wiki:"원하는 페이지 이름"]

이는 "원하는 페이지 이름"이라는 페이지로 가는 링크를 생성시켜준다. 하지만 아직 "원하는 페이지 이름"이라는 페이지가 생성되지 않았으므로 변경 사항을 저장하고 변경된 페이지를 봐도 회색의 물음표 링크가 뜰 것이다. 이 링크를 클릭하면 드디어 새 페이지를 만드는 창이 나오고, 여기서 새 페이지를 작성한 후 저장하면 새 페이지가 만들어짐과 동시에 기존 페이지와의 링크가 형성된다.

이와 같이 모든 Wiki 페이지들은 자신을 참조하는 1개 이상의 링크를 가지고 있어야 하며, 그렇지 않을 경우 페이지는 존재하나 접속할 수 없는 상황이 발생하게 되어 주의를 요한다.

Wiki의 글 작성은 여느 Wiki Formatting을 따른다. 또한 기본적으로 [wiki:] 링크 방법을 쓰지 않아도 다음의 규칙을 따르는 단어는 자동으로 해당 페이지로 링크가 형성된다.

  • 영문으로만 구성되어 있다.
  • 대문자로 시작한다.
  • 대문자가 최소 2개이며, 대문자와 대문자는 사이에 적어도 하나의 소문자를 가지고 있어야 한다.
다음은 Timeline 페이지의 모습이다.

사용자 삽입 이미지

Wiki 수정, Ticket 발행 및 수정, 소스코드의 Commit 등 개발과 관련한 모든 사항이 시간의 순서에 따라 나열되어 있다. 최근에 이 프로젝트에서 어떤 일들이 행해졌는지 보려면 이 Timeline 페이지를 참조하면 된다.

다음은 Roadmap 페이지의 모습이다.

사용자 삽입 이미지

Trac은 Milestone이라는 개념을 가지고 있다. 이는 하나의 마감 기한을 뜻한다. 예를 들어, 1.0버전의 릴리즈를 2007년 12월 31일로 목표하고 있다면, 이는 하나의 마일스톤이 될 수 있고, 1.0버전의 릴리즈를 위해 행해지는 모든 개발 작업은 모두 이 마일스톤의 작업이 된다. 여러 개의 마일스톤이 동시에 진행될 수도 있다. 이러한 모든 마일스톤의 진행 상황을 깔끔한 그래프의 형태로 보여주는 페이지가 Roadmap이다.

위 스크린샷에서는 마일스톤은 1개이고, 해당 마일스톤에서 총 발행된 Ticket의 수가 6개이며 그 중 2개가 왼료되었다는 것을 나타낸다.

* Milestone은 프로젝트 관리자만이 추가/제거/수정할 수 있다.

다음은 View Source 페이지이다.

사용자 삽입 이미지

보는 것과 같이 깔끔한 탐색기의 모양을 하고 있는 편리한 Source-Viewer이다. 우측에는 Revision과 최근에 그 파일/폴더의 변경사항을 나타낸다.

* Revision이란 그 파일/폴더가 총 몇 번째 Commit된 파일인지를 나타내는 수치이다. 1회의 Commit마다 Revision이 1씩 증가한다.

다음은 Ticket View 페이지이다.
사용자 삽입 이미지

현재까지 발행된 모든 티켓을 나타낸다. 특히 가장 강력한 기능은, 우측 상단에 위치한 Custom Query인데, Ticket의 모든 세부사항들을 이용하여 원하는 Ticket만을 골라내 볼 수 있는 검색기능이다.

* 티켓이란, Trac에서 가장 중요한 개념으로, 해야 할 하나의 작업의 단위를 뜻한다. 예를 들어 어떠한 버그가 발견되면, 발견한 사람은 해당 버그를 수정하라는 내용의 Ticket을 발행하여 개발자에게 Ticket을 전달한다. Ticket을 받은 개발자는 해당 Ticket이 해결할 수 있는 문제일 경우 수용(Assign)해서 해당 문제를 해결하고 폐기한다. 만약 자신의 능력으로 힘들 경우 다른 사람에게 Ticket을 전달하여 다른 사람이 해결할 수 있도록 한다. 그 문제가 절대 고쳐지지 않는 문제라면, 해당 개발자는 Ticket을 폐기한다.

각 Ticket을 클릭하면 Ticket의 세부내용을 볼 수 있으며, 만약 자신에게 전달된 Ticket이라면 Ticket을 수용/폐기 할 수 있다.


출처 : Harry's_Lab
Creative Commons License
Creative Commons License
Posted by 파랑소리 beatblue

트랙백 주소 :: http://beatblue.tistory.com/trackback/304 관련글 쓰기

댓글을 달아 주세요

  1. sysmaster 2008/06/05 13:53  댓글주소  수정/삭제  댓글쓰기

    좋은자료 잘 보고 갑니다.

  2. Favicon of http://www.calendariolunar2012.com/ BlogIcon 2012 calendario lunar 2012/06/25 18:46  댓글주소  수정/삭제  댓글쓰기

    성된 것 Like almost everyone who uses e-mail, I receive a ton of spam every day. Much of it offers to help me get out of debt or get rich quick. It would be funny if it weren't so exciting. I want to know where to find 2012 calendario lunar, do you?

아래의 내용은 프로그래머들에게 솔깃한 재미가 있지 않을까 싶다...
왜 이런식의 10가지로 분리했는지에 대한 기준은 모호하지만,
개인적으로 내 성향은 관리적인 성격이 강해지면서,
다소 상치되긴 하지만,
이반젤리스트(The Evangelist)와
이론가(The Theoretician)의
양면 정도로 규정해볼 수 있을 듯 같다.
=======================================================================================================

프로그래머들은 특별한 사람이라고 평가되는 것을 좋아한다. 사실은 어떤 모범적인 프로그래머들은 다른 프로그래머들의 이상한 점을 개발자들의 커뮤니티 내에서도 발견한다. 아래에 10가지 타입의 프로그래머를 소개한다. 여러분은 이 중에 어떤 타입인가?


#1: 간달프(Gandalf)

이 프로그래머 타입은 ‘반지의 제왕’에 나오는 마법사 간달프와 닮았다. 이 타입의 외관은 턱수염을 기르고, 이상한 모자를 쓰고, 겨울에 망토 같은 외투를 입을지도 모르며, 좋게 보면 간달프와 같은 마법으로 팀을 위하고, 안 좋은 면은 팀원들이 간달프가 눈길을 걸어올라 오는 시간을 기다리듯이 그가 전산실에 오는 시간을 오랫동안 기다려야 한다는 것이다.

이런 타입은 실력이 아주 뛰어난 중요한 인물이지만 보통은 같이 일하기를 꺼려한다. 하지만 문제가 해결이 안 될 때는 간달프의 마법이 필요하듯 이런 타입의 도움도 필요한 법이다.


#2: 순교자

다른 업종에서는 순교자(The Martyr)는 워커홀릭이다. 하지만 개발 분야에서 순교자는 그 차원을 넘어 선다. 워커홀릭은 최소한 집에 가서 샤워하고 잠은 자기 때문이다. 순교자 타입은 다 먹은 피자 박스에 둘러싸인 책상에 엎드려 자는 것을 자랑스럽게 생각한다.

문제는 아무도 이렇게 일하는 것을 원하지 않았다는 것이다. 순교자 타입은 다른 팀원에게 부담스러운 말을 한다. “먼저들 들어가. 저녁 맛있게 먹고…. 나는 오늘밤에 3주 동안 해야 할 코딩을 모두 하고 들어갈래.”라는 식으로 말이다.


#3: 팬보이

팬보이(Fanboy)는 조심해야 한다. 이런 사람이 여러분 주의에 있다면, 그는 드래곤볼 Z와 건담 윙 중 어느 것이 재미있는지 또는 플레이스테이션3와 X박스 360중 어느 것이 더 좋은지에 관해 과장 좀 해서 3시간 동안은 이야기를 들어야 할 것이다.

팬보이의 책상 주변에는 일본에서 수입한 액션 피규어, 포스터 또는 장식품 등을 진열해 놓았을 것이다. 이들은 자신들이 가지고 있는 장식품을 가지고 생각하는 것을 좋아해서, 그 생각에 시간을 많이 허비한다. 이런 타입은 가끔 무엇 때문에 채용을 했는지 모를 때가 가끔 있다.


#4: 빈스 닐(Vince Neil): 미국 밴드 머틀리 크루의 리드싱어

마치 1984년으로 돌아간 것 같은 타입이다. 긴 머리카락, 찢어진 청바지에 큰 스카프를 목에 두르고 업무 시간 동안 본 조비, 데프 레퍼드(Def Leppard)와 같은 음악을 따라 흥얼거리며 일한다. 빈스 타입은 일반적으로 재미있고 경험도 많지만 발전이 없다. 게다가 힙합 스타일과 아웅다웅할지도 모른다. 이런 타입과 매일 일하는 것은 꽤 힘들 것이다.

#5: 닌자

닌자 타입은 여러분 팀의 MVP이지만, 아무도 누구인지 모른다는 것이다. 전설적인 자객처럼, 닌자 타입은 일을 하는 건지 안 하는 건지 모르지만 아침이 되면 결과물이 나와 있는 것을 발견할 수 있다.

여러분이 소스 제어 시스템을 가동하고, 새벽 4시에 한번 확인 해보라. 여러분은 닌자가 그 프로젝트를 알고 있을 것이라고 생각하지도 않았지만, 여러분이 일주일 동안 작업한 계획의 문제를 코드 레벨에서 확인하고 알려 두었을 것이다. 여러분이 다른 회의에 참석해 있을 때, 닌자 타입은 일을 하고 있을 테니 확인해 보라.

닌자 타입은 아주 비밀스럽게 일을 한다. 여러분은 그 사람의 이름조차 모르지만 모든 프로젝트마다 아주 깔끔하게 정리되어 있는 것을 볼 수 있다. 이런 타입은 신중하게 다가가야 한다. 이런 사람을 조직 내에서 순위를 매기거나 파일로 업무를 관리하려고 하지 마라. 닌자 타입은 혼자 일하는 전사이며, 관리 당하는 것을 싫어한다.


#6: 이론가(The Theoretician)

이 타입은 프로그래밍에 관해 알아야 하는 모든 것을 알고 있다. 이 타입은 애매한 프로그램 언어의 역사에 관해 4시간 정도 떠드는데 시간을 소비하거나 어떻게 프로그래밍 하면 런타임을 줄이고, 최적화 프로그래밍을 할 수 있는지에 대해 시간을 허비할 수 있다.

문제는 이런 타입은 소프트웨어 개발에 관한 것을 알지 못하고 있다는 것이다. 이론가 타입이 코딩을 하면 정말 말도 안 되게 ‘엘레강스’하다. 또 좋아하는 기술은 ‘반복’이며, 모든 코드는 최대한 꼬여 있어 읽는 데 시간이 많이 걸린다.

이런 타입은 주의가 산만해 쉽게 다른 일에 관심을 돌린다. 몇 시간이면 개발할 수 있는 일을 이런 타입은 석 달은 족히 걸린다. 왜냐하면 기존의 툴은 충분하지 않다며 새로운 라이브러리를 만들어 새로운 툴을 만들어 사용하려고 하기 때문이다.

이런 타입은 잘만 컨트롤 하면 아주 잘 활용할 수 있다. 프로젝트에서 정확히 할 일에 대한 범위를 정해 주고 다른 일에 시간을 허비하지 못하게 한다면 말이다.


#7: 코드 카우보이(The Code Cowboy)

이 타입은 절대 스스로 멈추는 법이 없다. 이런 타입은 거의 항상 최고의 프로그래머이며, 다른 사람보다 두세배는 빠르게 일을 할 수 있다. 하지만 문제는 그렇게 빠르게 하는 일의 반을 대충 한다는 것이다. 소스 컨트롤 하는 코드 확인에 시간이 걸리고, 외부 컨피규레이션 데이터 저장에 시간이 걸리고, 다른 사람과 대화중에 생각을 이해하는 데도 시간이 걸린다.

이 타입의 코드는 스파게티처럼 혼란스럽다. 이유는 프로그래밍 하면서 리팩토링 하는 것이 절대 일어나지 않게 빨리 하기 때문이다. 프로그래밍 책에 예제로 되어 있는 “이렇게 하지 마세요”라고 7페이지에 걸쳐 중요하게 설명되어 있는 것과 비슷하게 프로그래밍을 했지만 신기하게도 프로그램은 돌아간다.

코드 카우보이 타입은 다른 사람과 함께 일을 잘 하지는 못한다. 그리고 여러분이 이런 타입 두 명을 같은 프로젝트에 투입시키면, 서로의 변화에 대해 인정을 하지 않고 싸우기 때문에 확실히 실패 한다.

이 타입은 정확하게 해야 하는 프로젝트보다 납기 일정이 더욱 중요한 프로젝트에 투입하는 것이 좋고, 코드는 항상 일정 전에 완성되어 있을 것이다. 코드 카우보이는 ‘시끄러운 닌자 버전’이라고 보면 된다. 닌자가 정교한 외래 수술을 하는 것에 비유한다면, 코드 카우보이는 성난 소처럼 저돌적으로 자신의 길을 달려가는 것에 비유할 수 있다.


#8: 공수부대요원(The Paratrooper)

여러분은 영화에서 적지 깊숙이 침투하여 비밀스럽게 업무를 수행하는 특공대 요원을 본적이 있을 것이다. 이 타입은 소프트웨어 개발 세계에서 ‘공수부대 요원’이라고 한다. 이 요원은 다 죽어 가는 프로젝트를 살리기 위해 마지막으로 보내는 프로그래머이다.

이 요원은 장기 프로젝트에 대해서는 부족하지만, 그들의 최대 자산은 친숙하지 않는 코드를 배워서 작업을 하는 불가사의한 능력이다. 다른 프로그래머들은 이러한 것을 충분히 배워서 프로젝트를 실행하는 데 몇 주 내지 몇 달이 걸릴지도 모르지만, 공수 부대 요원들은 몇 시간 또는 하루 정도면 충분하다.

이 요원들은 그 코드의 핵심을 알 정도로 배우지는 못하지만, 전체의 팀이 실패할지도 모르는 곳에서 성공할 수 있는 것을 의미한다.


#9: 보통사람(Mediocre Man)

“충분히 좋다”라고 듣는 것이 이 ‘보통사람’ 타입에게서 들을 수 있는 최고의 찬사이다. 이 이름에 속지 말아라. ‘보통사람’이라는 타입에는 엄청난 다양함이 있다. 그리고 이들은 다른 팀원들보다 더 나쁜 코드를 만드는 데 시간이 더 걸린다.

이 타입들의 특징은 느리고 침착하게 하지만 프로젝트가 언제 끝날지 모르며, 회사에 오랫동안 일을 하기 위해 항상 “충분히 좋다”라는 슬로건을 외친다.

이런 타입을 인터뷰 할 때 그들은 많은 프로젝트에 관여한 사실을 여러분에게 이야기 하겠지만 실제로 관여한 프로젝트는 많지 않다. 이러한 타입을 알아내는 것은 쉬운데 그들이 한 일에 대한 자세한 질문을 하면 아마 갑자기 건망증 증세를 보일 것이다. 이런 타입을 채용한다면 퇴사시키는 데 몇 년은 걸릴 것이다.


#10: 이반젤리스트(The Evangelist)

여러분이 어떤 환경에 처해 있더라도, 이반젤리스트는 지금 사용하고 있는 툴, 프로세스를 버리고 다른 것들로 대체해 업무 향상을 할 수 있다고 주장한다. 이반젤리스트는 실제로 이론가(The Theoretician)와 정반대이다. 이들은 솔직하고, 소프트웨어 개발에 관하여 많이 알지만 실질적으로 프로그래밍 작업은 거의 하지 않는다.

이들은 자신이 프로젝트 매니저나 부서장이라고 마음속으로 생각하고 있으나 지식이나 프로젝트 경험은 부족하다. 따라서 이들은 순수하게 경영자 역할을 할 수 있으므로 다른 사람들은 이들이 변혁을 시도하는 것을 참을 필요가 있다. @




출처 : ZDNet Korea
Creative Commons License
Creative Commons License
Posted by 파랑소리 beatblue

트랙백 주소 :: http://beatblue.tistory.com/trackback/292 관련글 쓰기

  1. Subject: NE

    Tracked from NE 2014/09/05 19:54  삭제

    지구에매달리기 ::

댓글을 달아 주세요

  1. Favicon of http://yonipalace.net/free/st-francis-school-houston BlogIcon st francis school houston 2008/05/23 04:34  댓글주소  수정/삭제  댓글쓰기

    뉴스를 위한 감사합니다…

프로젝트 관리 도구로 Trac (http://trac.edgewall.org/)을 쓰는 기업이 많다.
요즘들어 많은 WEB2.0 개발회사들이 Trac을 프로젝트 관리 도구 System으로 사용하는 기업이 많은 것 같다.
(테더앤미디어의 TEXTCUBE 프로젝트도 trac으로 개발되고 있다.)

Trac을 쓰게되면 1) 프로젝트 MileStone관리 2) 프로젝트 이슈(티켓)관리 3) 프로젝트 문서 관리(위키) 4) 프로젝트 형상관리 (Subversion) 을 통합적으로 trac 단일 UI에서 관리가 가능하게 됨으로써, PM-DEV-QA간의 원활한 진행 체크 및 커뮤니케이션 관리가 가능해지는 장점이 있다.

Trac은 사용하기는 쉬우나, 워낙 설치가 까다로워서 왠만한 Engineer는 몇일 고생할 거 생각하고 xNIX 환경에서 구현해야하나, SourceFourge에 TOW (Trac on Windows)라는 제품으로 윈도우에서 설치 1분만에 Trac을 사용할 수 있는 혁신적인 Easy-Installer가 나와서 소개하고자 한다. (지금보니 한국분이 개설한 제품이다)

Project Repository - http://sourceforge.net/projects/traconwindows/
Project Blog - http://traconwindows.wordpress.com/
Trac Guide - http://trac.edgewall.org/wiki/TracGuide

현재 기준으로는 Base 및 Standard 패키지가 존재하고 둘의 차이점은 다음과 같다.
Base 패키지 구성
- python 2.4.4
- trac 0.10.4
- clearsilver 0.9.14
- apache 2.2.6
- mod_python 3.3.1
- subversion 1.4.5
- svn-python 1.4.5
- sqlite 3.5.2
- pysqlite 2.3.5
- easy_install

Standard 패키지 구성
- Base 패키지 포함
- Added Web Admin plugin
- Added Account Manager plugin
- Added XML-RPC plugin
- Added Eclipse Trac Integration plugin
- Added TracNav plugin
- Added WYSIWYG Editor plugin
- Added trac.ini Admin plugin
- Added TOC macro

원래 설치하려면 위의 Base, Standard 해당하는 내용을 일일이 찾아서 설치해 주어야 하는데..
본 TOW (Trac On Windows)는 설치,구성이 3분 이내에 할 수 있을 정도로 매우 쉽게 구성되어 있으며, 다음과 같이 하면 된다.

1) http://sourceforge.net/projects/traconwindows/ 에서 최신 Standard 패키지를 다운로드 받습니다.
2) C:\ 에 압축파일을 풉니다.
3) C:\TOW\start-tow.bat 파일을 실행하면 완료 (정말 쉽다.^^)
4) http://localhost:8080/projects/ 로 접근하시면 됩니다.

신규 프로젝트 설정법
1) 사용자 등록
C:\TOW>add-user.bat <UserName> <Password>

2) 프로젝트 등록 하는 방법
C:\TOW>create-svn-repo.bat <ProjectName>
C:\TOW>create-trac-repo.bat <ProjectName>
해준 후 http://localhost:8080/projects/<ProjectName> 으로 접속하면 됨.

상기와 같이 항상 데몬 프로그램을 로그인 한 후 CMD 창에서 start-tow.bat파일을 해주어야 하나,
이를 윈도우의 서비스로 등록하면 자동으로 된다.
C:\>sc create trac binPath= “c:\TOW\start-tow.bat” start= auto displayname= “Trac Service of TOW”


출처 : Peter .WEB2

Creative Commons License
Creative Commons License
Posted by 파랑소리 beatblue

트랙백 주소 :: http://beatblue.tistory.com/trackback/267 관련글 쓰기

  1. Subject: analsex

    Tracked from analsex 2014/09/21 17:59  삭제

    지구에매달리기 ::

댓글을 달아 주세요

  1. Favicon of http://tykim.wordpress.com BlogIcon 김태영 2008/01/24 00:23  댓글주소  수정/삭제  댓글쓰기

    출처를 밝혀 주셔서 감사합니다. 나름대로 IT에 10년 조금 넘게 생활한 것 같은데..
    아직도 출처를 밝히지 않고 copy & paste의 글들이 조금 씁슬하게 여겨집니다.

  2. Favicon of http://xtrasexux.com/sel/fleshbot-frontal-impact BlogIcon fleshbot frontal impact 2008/05/23 05:31  댓글주소  수정/삭제  댓글쓰기

    너는 아주 보는 좋은 위치가 있는다!

메타데이터는 한 마디로 말하면 데이터의 데이터다. 메타데이터는 주로 데이터를 문서화하거나 디자인이나 컴파일 타임, 로딩이나 런타임 시에 원하는 동작을 수행할 수 있도록 하는 데 사용된다. 이런 메타데이터의 활용 방법에 대해서는 다음 부부터 자세히 알아볼 것이다. 여기에서는 자바와 닷넷 진영에서의 메타데이터 활용 기법들이 어떻게 변화되어 왔는지와 각 기법의 특징들에 대해 알아본다.

자바와 닷넷은 태초부터 끝없는 경쟁을 반복해오며 엎치락뒤치락하는 기술들이다. 애당초 닷넷이 자바의 설계를 본 따는데 성공했으며, 그 이후에는 다시 자바가 닷넷을 따라잡는 식이었다. 메타데이터 활용 기술 또한 그렇다.

이번에는 닷넷이 닷넷프레임워크 1.0에서 어트리뷰트라는 기능을 제공하여 개발자들에게 박수를 받았고, 머지않아 자바 또한 어노테이션을 통해 메타데이터 활용 기술을 제공했다. 그렇게 엎치락뒤치락하다가 최근에는 오히려 자바의 어노테이션 기술이 닷넷의 어트리뷰트보다 많이 쓰이는 상황이 되어가고 있다.

어쨌든 개발자 입장에서 두 기술이 끊임없이 경쟁하며 발전하는 것을 바라보는 일은 유쾌한 일이다. 이제 닷넷의 어트리뷰트와 자바의 어노테이션 그리고 그 이전의 메타데이터 활용 기법들에 대해 알아보자.

  닷넷의 어트리뷰트 프로그래밍

닷넷프레임워크에서 어트리뷰트 기능을 지원하기 이전에 COM이나 COM+에서도 어트리뷰트와 유사한 기법들이 사용되기는 하였으나, 제대로 된 어트리뷰트를 제공하기 시작한 것은 닷넷 프레임워크 1.0 버전부터다.

닷넷의 어트리뷰트는 기존의 COM+ 기반에서 애플리케이션의 트랜잭션 설정과 풀링 등의 메타데이터를 런타임 시에 활용하던 기존 방법에서 한 단계 발전된 형태의 기법이다.

기존의 COM+ 기법이 어트리뷰트를 별도의 설정 저장소에 저장하는 방법을 사용했었다. 반면에 닷넷프레임워크의 어트리뷰트에서는 어트리뷰트를 프로그램 내에 직접 저장할 수 있다.

빌트인 어트리뷰트
닷넷의 어트리뷰트는 프레임워크에서 기본으로 제공하는 빌트인 어트리뷰트와 사용자가 직접 정의하여 사용할 수 있는 커스텀 어트리뷰트로 나뉜다.

이중에서 빌트인 어트리뷰트는 클래스의 트랜잭션을 선언하는 데 사용하는 어트리뷰트부터 웹서비스 바인딩 정보와 웹 메소드를 매핑하는 데 사용할 수 있는 어트리뷰트까지 다양하다. 빌트인 어트리뷰트의 종류와 이름에 대해서는 특집 4부를 참조하길 바란다.

커스텀 어트리뷰트
어트리뷰트도 하나의 클래스로 취급되기 때문에 개발자가 직접 새로운 어트리뷰트를 생성할 수 있다. 또, 필드나 메소드 등을 가지거나 상속도 가능하다. 커스텀 어트리뷰트는 클래스를 생성할 때와 같은 방법으로 하는데, 이때 어트리뷰트임을 구분해 주기 위해 어트리뷰트 이름 앞에 ‘Attribute’를 추가해 주면 된다.

  자바 어노테이션의 탄생

하드코딩 된 특수한 애플리케이션이 아닌 이상 대부분의 프로그램은 외부에서 설정을 할 수 있는 방법을 선택한다. 고정된 기능은 코드로 제공하되 사용자마다 또는 환경마다 변화가 필요하다면 이를 외부의 설정을 위한 리소스로 독립시키고 이를 빌드 또는 런타임 시 읽어서 활용하는 것 이다.

프로퍼티 파일
자바에서 가장 먼저 사용된 설정방식은 프로퍼티 파일을 이용하는 것이다. 단순한 키와 값의 조합인 자바 프로퍼티 파일은 그 사용이 직관적이고 손쉽게 활용할 수 있다는 장점 때문에 초기에 많이 사용된 방법이다. 하지만 키와 밸류 값만으로 구분되는 일차원적인 구조는 복잡한 설정을 만들기에는 부족하다는 약점을 드러냈다.

한 가지 약점이 더 있었다. 바로 프로퍼티 파일의 값이나 구성을 검증하는 것이 번거롭다는 것이었다. 단순 텍스트 파일이기 때문에 편집을 하다 실수를 하더라도 편리하게 검증해 낼 수 있는 방법이 없었다. 그러니 코딩 중에 자칫 잘못하면 검증하는 데 시간을 빼앗겨 배보다 배꼽이 더 큰 상황들도 생길 수 있었던 것이다.

XML 활용
프로퍼티 파일의 단점을 보완하기 위해 찾아낸 방법은 바로 XML. 강력한 계층형 문서구조와 호환성을 자랑하는 XML이 그 뒤를 잇게 되었다. XML은 텍스트 파일인 프로퍼티 파일과 달리 파서나 에디터 등을 이용하기 때문에 문법에 대한 검증이 쉽다.

더불어 구성내용도 DTD나 스키마(Schema)와 같은 방식을 이용하여 값이나 순서, 필수조건, 타입 등에 대한 검증도 가능해졌다.

자바는 표준 API를 통해서 XML 문서의 작성과 파싱, 검색 등을 지원하기 시작했고 이에 따라 자바로 개발된 설정파일은 당연히 XML로 작성되는 분위기가 조성되었다. 차츰 프로퍼티 파일을 통한 설정만을 지원하던 초기 WAS들은 깔끔한 XML 설정을 지원하는 WAS에 비해서 뒤떨어진 것으로 인식되었다.

분위기가 이렇게 흘러가니 이를 만회하기 위해서 거의 모든 종류의 서버와 프레임워크들이 앞 다퉈 XML형태로 설정을 전환하기 시작했다.

게다가 표준 기술인 엔터프라이즈 서버도 핵심 설정은 모두 XML 포맷을 사용했다. 또 ANT와 같은 빌드 스크립트조차 그 구조로 XML을 택하기까지 했다. 하지만, XML 또한 만능은 아니었다.

처음에는 사람이 눈으로 손쉽게 읽고 편집할 수 있는 텍스트 기반의 깔끔한 문서구조라는 장점을 내세우며 인기몰이를 했던 XML이지만 날로 갈수록 복잡한 문서구조와 장황한 태그의 사용 등으로 인해 점차 직접적인 편집이 어려워지기 시작했다. EJB 설정과 같은 경우 간단한 엔터프라이즈 빈 하나를 사용하기 위해서 길게는 수백 라인의 XML을 작성해야했다.

그야말로 개발자들에게는 지옥이었다. 오죽하면 XML Hell이라고 까지 불렀겠는가. 방대한 태그와 어트리뷰트 구조를 모두 기억하기도 힘들어짐에 따라 XML 설정 파일을 만들고 편집하기 위해서라도 점차로 GUI환경의 설정을 지원하는 IDE의 필요성이 절실히 대두되게 되었다.

● XML 단점에 대한 두 가지 반응
XML의 단점에 대한 반응은 두 가지로 나타났다. 하나는 XML 문서의 설계 자체에 문제가 있다는 시각에서 비롯된 것이었다. 좀 더 간결한 구성과 지능적인 디폴트값의 사용을 내세우는 쪽이다.

하이버네이트와 스프링 같은 오픈소스 프로젝트는 그 설정이 기본적으로 XML을 사용하기는 하지만 기존의 EJB나 스트럿츠와 같은 지저분한 XML이 아닌 꼭 필요한 정보만 간결하게 설정하는 것이 가능하도록 XML문서 구성자체를 발전시켰다. 이로써 굳이 IDE나 상용 툴의 도움을 받지 않고도 설정을 관리해나가는 것이 편리할 수 있다는 것을 보여주었다.

반대로 XML을 버리고 다른 형태의 설정방식을 택하는 부류가 있다. 바로 자바 어노테이션을 이용한 방식과 자바 클래스 자체를 이용한 두 가지 방식이다.

xDoclet
XML과 자바 어노테이션의 사이쯤에서 오픈소스 코드 생성 엔진인 xDoclet이 등장하게 되었다. 자바 소스코드에 메타데이터를 더하여 JavaDoc에 특수한 태구를 추가할 수 있도록 만들어진 xDoclet은 어노테이션이 자바에서 기본으로 제공되고 있는 지금도 많이 쓰이고 있는 기술 중 하나이다.

아직 현업에서는 자바EE5 이전 버전이 많이 쓰이고 있는 탓이다. xDoclet에 대한 좀 더 자세한 내용은 잠시 뒤 CoverStory Plus에서 살펴보자.

자바 어노테이션
자바EE5부터 어노테이션은 자바 표준 언어에 포함되었다. 때문에 안정적인 타입 지원과 클래스의 메타정보와 연계될 수 있다는 장점을 내세워 XML 설정을 굉장히 빠르게 대치해나가고 있다.

어노테이션은 XML이 가지지 못한 간결함과 동시에 설정 내용과 연계되는 클래스나 메소드 등에 직접 삽입되기 때문에 설정과 구현을 긴밀하게 연동해서 볼 수 있다는 장점을 가지고 있다. 또한 별도의 파서를 적용하지 않고도 간단히 런타임 시에 활용할 수 있다는 편리함을 내세우고 있다.

하지만 어노테이션을 반대하는 측의 여러 가지 비판에도 여전히 시달려야 했다. 첫째는 메타정보와 소스의 결합자체를 못마땅해 하는 측이다. 메타데이터는 그 자체로 코드에 독립적이어야 하며 한 곳에 모여져서 애플리케이션의 구성을 한눈에 알 수 있어야 바람직하다는 주장이다.

어노테이션이나 기타 유사한 메타정보 기술은 메타정보가 바뀔 때마다 컴파일을 다시 해 줘야 한다는 단점이 있다. 따라서 소스가 함께 제공되지 않는 제품의 경우에는 어노테이션을 사용하기 어렵다는 것이다.

둘째로 XML이 가지고 있는 막강한 검증기능의 부재다. 코드를 이용해서 검증하는 것이 가능하다고는 하지만 DTD나 스키마를 이용하여 정보 구성을 검증하는 XML에 비하면 훨씬 불편하기 때문이다.

그래서 어노테이션 기반의 설정이 빠르게 인기를 얻고 있음에도 불구하고 여전히 XML 설정을 고집하는 기술과 개발자들이 많다.

자바클래스의 활용
어노테이션이냐 XML이냐를 두고 자바진영이 논쟁을 하고 있는 사이 루비와 같은 동적 스크립트 기반 언어들이 새로운 형식의 설정 모델을 제시하며 등장했다. 그것은 바로 애플리케이션 코드 자체를 설정으로 사용하는 것이다.

스크립트 언어는 별도의 빌드 과정이 없기 때문에 소스코드와 설정용 파일이 구지 구분되지 않아도 된다. 게다가 언어의 문법은 XML보다도 훨씬 강력해서 복잡한 설정구조와 조건 등을 표현해 내기도 훨씬 수월하다.

이런 영향을 받아서인지 자바쪽에서도 자바클래스 자체를 이용한 설정방식이 조금씩 등장하고 있다.

대표적으로 스프링프레임워크의 서브프로젝트인 스프링 자바콘피그(Spring JavaConfig)가 있다. 스프링 자바콘피그는 스프링의 창설자인 로드 존슨(Rod Johnson)의 아이디어에서 출발하여 최근 개발되고 있는 기술이다. 이 기술은 스프링의 빈 설정을 XML이나 어노테이션이 아닌 자바 코드자체를 통해서 제공하는 기능을 가지고 있다.

이렇게 설정용 파일이 아닌 프로그램 코드 자체를 통해서 설정하는 방식이 본격적으로 등장하기 시작하면 앞으로는 아마 XML과 어노테이션, 자바코드 또는 별도의 스크립트 언어코드를 이용한 설정방식의 3파전이 시작될지도 모르겠다. @

xDoclet  


xDoclet은 오픈소스로써 프로그램 코드를 생성해 주는 엔진이다. 자바 코드내의 메타데이터나 어트리뷰트(Attribute)라고 불리는 간단한 의미 있는 단어를 포함시키는 방법으로 관련된 코드들을 생성해 내는 것이다. 이를 통해 어트리뷰트 지향 프로그래밍(Attribute-Oriented Programming)을 실현할 수 있다. 간단하게 자바 소스 내에 JavaDoc주석을 이용하여 필요한 여러 가지 정보도 함께 포함을 시키고, 이를 xDoclet을 통하여 필요한 코드와 파일을 자동 생성해 내는 것이다.

xDoclet은 Ant를 활용하여 빌드하는 단계에서 소스를 파싱하게 되며, 소스의 종류별로 태스크를 정의하여 필요한 파일이나 정보 등을 선택할 수 있도록 하고 있다.

xDoclet의 활용
xDoclet을 사용하려면 <표>와 같은 애플리케이션들이 필요하며, 다음의 준비 사항들을 먼저 실행해야 한다.



① JDK Install(tools.jar가 필요함으로 JRE가 아닌 JDK를 설치하여야 한다)
② Ant의 압축을 풀고 \bin 디렉토리를 환경 변수인 PATH에 추가한다.
\lib\tools.jar를 CLASSPATH에 추가한다.
(참고 : tools.jar는 소스를 컴파일 하는 기능 등을 활용하는 경우 사용된다.)


 <리스트> 예제 안에 포함된 AccountBean.java JavaDoc의 부분코드


\samples 디렉토리에서 ant를 실행시키면 samples에 있는 src 디렉토리의 소스들이 target 디렉토리의 xDoclet에 의한 결과물로써 생성되게 된다. <리스트>에서 볼 수 있듯 코드 내의 JavaDoc 주석부분에 xDoclet 태그를 활용하여 필요한 어트리뷰트 값을 설정한다.

XML의 앨리먼트(Elements)와 유사하게 이름과 값의 쌍으로 이루어지고, 값은 Ant의 프로퍼티(Properties)를 활용할 수 있다. xDoclet의 태그는 xDoclet의 홈페이지(http://xdoclet.sourceforge.net/xdoclet/index.html)의 "Tag Reference"메뉴에서 확인할 수 있다.

xDoclt이 Ant를 필요로 하는 이유는 JavaDoc에 정의된 xDoclet 태그들이 프로그램 형태마다 서로 다른 데스크(Task)로 정의되어 있고, 소스파일과 그에 맞는 태스크를 Ant의 build.xml에 정의하기 위함이다. 다음은 Ant와 xDoclet이 소스의 JavaDoc을 파싱하여 실행되는지의 단계를 보여준다.

① ant 실행
② Ant는 build.xml의 정보를 참조하여 xDoclet의 Task를 결정하고 필요한 파일들을 만들어 낸다.
③ xDoclet의 Task는 JavaDoc의 xDoclet 태그를 읽어 들여 필요한 소스 및 파일을 생성해 낸다.

현재 xDoclet에서는 ejbdoclet과 hibernatedoclet 등 10여 가지의 태스크를 지원하고 있으며, 각 태스크별로 지원하는 제품이나 프레임워크 등도 tag로 정의되어 있다. 예를 들어 ejbdoclet의 경우 EJB를 지원하는 JBOSS나 WebLogic, WebSphere등 WAS마다 다른 ejb 설정을 지원하기 위해서 각 제품별 Tag를 정의하고 있다.

따라서 프로그램의 형태에 맞게 적절한 Ant 태그를 활용하여 태스크를 동작시키고, JavaDoc 주석에는 xDoclet 태그를 활용하여 필요한 소스나 파일들을 자동 생성할 수 있도록 사용하는 것이다.

xDoclet의 장점
WAS에서 동작하는 자바 프로그래밍을 해본 개발자라면, 프로그램을 개발하는 것보다 환경정보 파일을 만들고 실제 비즈니스 로직과는 관련 없는 파일들을 만드느라고 고생했던 경험을 가지고 있을 것이다.

xDoclet은 업무 로직을 구현한 코드와 이를 설정하거나 관리하는 여러 가지 파일들을 하나의 소스 내에서 정의할 수 있기 때문에, 개발생산성의 향상에 도움을 준다. 더불어 여러 가지 파일들을 만들어 내는데서 발생할 수 있는 실수를 줄일 수 있어 관리상의 이점도 가지고 있다.

xDoclet의 홈페이지에서는 xDoclet을 활용하면 85%의 코드를 생성해주기 때문에, 개발시간을 획기적으로 줄일 수 있고, 업무 코드에 중점을 둘 수 있게 해준다고 밝히고 있다.





* 이 기사는 ZDNet Korea의 제휴매체인 마이크로소프트웨어에 게재된 내용입니다.


출처 : ZDNet Korea
Creative Commons License
Creative Commons License
Posted by 파랑소리 beatblue

트랙백 주소 :: http://beatblue.tistory.com/trackback/234 관련글 쓰기

댓글을 달아 주세요

  1. Favicon of http://yourweirdtaboo.net/dir/porn-star-biography BlogIcon porn star biography 2008/05/23 04:15  댓글주소  수정/삭제  댓글쓰기

    너의 방문한 위치를 즐기는!

개인정보 취급에 대한 법률이 강화됨에 따라
전자적 표시를 의무화 하게 되었습니다.



생성 순서

1. 생성 페이지에서 메뉴얼에 따라 해당 사이트에 맞는 문장과 .xml을 생성한다.
(문장이 들어갈 정책 페이지 url과 회원 정보 수정 페이지를 표시)

2. 생성된 정책 페이지 상단에는
php : header("P3P:CP='간략방침기호'";
jsp :  response.setHeader("P3P","CP=' 간략방침기호'")
asp:  Response.AddHeader "P3P","CP=간략방침 기호"
을 추가한다.

3. 다운받은 xml파일들을 사이트 루트에 /w3c/ 폴더를 생성한후 저장한다.



확인

1. http://www.w3.org/P3P/validator.html 에서 1차 확인
2. http://www.checkprivacy.co.kr/user/ 에서 정책 페이지와 회원정보 수정 페이지를 점검


출처 : 잡다한 일상사 WebJoy.kr
Creative Commons License
Creative Commons License
Posted by 파랑소리 beatblue

트랙백 주소 :: http://beatblue.tistory.com/trackback/219 관련글 쓰기

댓글을 달아 주세요

  1. Favicon of http://yonipalace.net/free/preg-nude BlogIcon preg nude 2008/05/23 04:41  댓글주소  수정/삭제  댓글쓰기

    걸출한 뉴스!! 종류 블로그!

3ivx.dll =  3ivx D4 4.0.4 Core 
3ivxvfwcodec.dll =  3ivx D4 4.0.4 Video for Windows Codec 
6to4svc.dll =  Service that offers IPv6connectivity over an IPv4 network.
a3d.dll =  Audio3D (OEM) 
aaaamon.dll =  DLL d'analyse aaaa 
aasc32.dll =  Autodesk RLE compression driver 
acctres.dll =  Ressources du gestionnaire de comptes Microsoft Internet 
acledit.dll =  Editeur de liste de controle d'acces 
aclui.dll =  Editeur de descripteur de securite 
acodec.dll =  Acodec 
activeds.dll =  DLL de la couche de routage AD 
actxprxy.dll =  ActiveX Interface Marshaling Library 
admparse.dll =  Analyseur de modeles de strategies globales de IEAK 
adptif.dll =  IPX Interface via WinSock 
adsldp.dll =  ADs LDAP Provider DLL 
adsldpc.dll =  DLL C du fournisseur LDAP AD 
adsmsext.dll =  ADs LDAP Provider DLL 
adsnds.dll =  DLL du fournisseur NDS AD 
adsnt.dll =  DLL du fournisseur de AD Windows NT 
adsnw.dll =  ADs Netware 3.12 Provider DLL 
advapi32.dll =  API avancees Windows 32 
advpack.dll =  ADVPACK 
alrsvc.dll =  Alerter Service DLL 
amstream.dll =  DirectShow Runtime. 
apcups.dll =  APC Smart Provider 
apigid32.dll =  APIGID32 DLL - Utility DLL for the VB Programmer's Guide to the Win32 API 
apitrap.dll =  Apitrap
apphelp.dll =  Application Compatibility Client Library 
appmgmts.dll =  Service Installation de logiciels 
appmgr.dll =  Extension du composant logiciel enfichable d'installation de logiciel 
asferror.dll =  Definitions d'erreurs ASF 
asfsipc.dll =  ASFSipc Object 
asusasv1.dll =  ASUS Video Compressor 
asusasv2.dll =  ASUS ASV2 Video CODEC 
asycfilt.dll =  
athprxy.dll =  Microsoft Search Authentication Proxy 
ati2dvaa.dll =  ATI RAGE 128 WindowsNT Display Driver 
ati2dvag.dll =  ATI Radeon WindowsNT Display Driver 
ati3d1ag.dll =  ati3d1ag.dll =  
ati3d2ag.dll =  ati3d2ag.dll =  
ativcr1.dll =  ATI VCR 1.0 Format Codec 
ativcr2.dll =  ATI VCR2 Planar Format Codec 
atiyuv12.dll =  ATI YV12 Planar Format Codec 
atkctrs.dll =  DLL de compteur de performance AppleTalk Windows NT 
atl.dll =  ATL Module for Windows NT (Unicode) 
atl70.dll =  ATL Module for Windows (Unicode) 
atmfd.dll =  Windows NT OpenType/Type 1 Font Driver 
atmlib.dll =  Windows NT OpenType/Type 1 API Library. 
atmpvcno.dll =  Atm Epvc Install DLL 
atrace.dll =  Async Trace DLL 
audio3d.dll =  Audio3D (OEM) 
audiosrv.dll =  Windows Audio Service 
authz.dll =  Authorization Framework 
autodisc.dll =  API Windows Decouverte automatique 
avhal32.dll =  AVHAL DLL file 
avicap.dll =  DLL de capture AVI 
avicap32.dll =  Classe de fenetre de capture AVI 
avidavicodec.dll =  Avid AVI Codec Version 2.0d2 for Windows NT 
avifil32.dll =  Bibliotheque d'assistance des fichiers AVI Microsoft 
avifile.dll =  Bibliotheque d'assistance des fichiers AVI Microsoft 
avimszh.dll =  
avipr.dll =  Dual stream codec component 
aviwrap.dll = 
avizlib.dll = 
avmeter.dll =    Controles de mesure 
avtapi.dll =  Numeroteur TAPI 3.0 et Visualisateur de conference multidiffusion IP 
avwav.dll =  Wave Manipulation Component 
avwin32.dll =  AVWIN DLL file 
basesrv.dll =  Windows NT BASE API Server DLL 
batmeter.dll =  DLL d'application d'assistance de Jauge de batterie 
batt.dll =  Battery Class Installer 
bidispl.dll =  Bidispl DLL 
blackbox.dll =  BlackBox DLL 
bmpimporter.dll =  BmpImporter Module 
bootvid.dll =  VGA Boot Driver 
browselc.dll =  Bibliotheque de l'interface utilisateur du navigateur Shell 
browser.dll =  Computer Browser Service DLL 
browseui.dll =    Bibliotheque de l'interface utilisateur du navigateur 
browsewm.dll =    BrowseWM Player 
cabinet.dll =    Microsoft® Cabinet File API 
cabview.dll =    Extension shell de l'Afficheur de fichiers Cab 
camcodec.dll =    CamStudio lossless video codec 
camocx.dll =    DLL WIA Camera View 
capesnpn.dll =    Extension Gestionnaire de modeles de certificat Microsoft® 
cards.dll =    Entertainment Pack Cardplaying Helper DLL 
catsrv.dll =    COM Services 
catsrvps.dll =    COM Services 
catsrvut.dll =    COM Services 
ccfgnt.dll =    Internet Configuration Library 
ccpasswd.dll =    Common Client Password 
cctrust.dll =    Common Client ccTrust 
cdfview.dll =    Visionneuse du fichier de definition de la chaine 
cdm.dll =    Windows Update CDM Stub 
cdmodem.dll =    Modem Connection Driver 
cdosys.dll =    Microsoft CDO pour la bibliotheque Windows 2000 
cdvccodc.dll =    Canopus DV Codec Front-End 
certcli.dll =    Client Microsoft® Certificate Services 
certmgr.dll =    Composant logiciel enfichable Certificats 
ceutil.dll =    Bibliotheque d'utilitaire de registre 
cewmdm.dll =    Windows CE WMDM Service Provider 
cfgbkend.dll =    Configuration Backend Interface 
cfgmgr32.dll =    Configuration Manager Forwarder DLL 
ciadmin.dll =    Administration de CI (MMC) 
cic.dll =    CIC - Controles MMC pour la Liste des taches 
ciodm.dll =    Indexing Service Admin Automation Objects 
clb.dll =    Zone de liste de colonnes 
clbcatex.dll =    COM Services 
clbcatq.dll =    COM Services 
cliconfg.dll =    SQL Client Configuration Utility DLL 
clusapi.dll =    Cluster API Library 
cmcfg32.dll =    DLL de configuration de Microsoft Connection Manager 
cmdial32.dll =    Microsoft Connection Manager 
cmnprop.dll =    CMAudio Property Page 
cmpbk32.dll =    Microsoft Connection Manager Phonebook 
cmprops.dll =    Composant logiciel enfichable WMI 
cmutil.dll =    Bibliotheque utilitaire Microsoft Connection Manager 
cnbjmon.dll =    Moniteur de langage pour imprimante Bubble-Jet Canon 
cnetcfg.dll =    Bibliotheque de Connection Manager 
cnvfat.dll =    FAT File System Conversion Utility DLL 
colbact.dll =    COM Services 
comaddin.dll =    COM Services 
comcat.dll =    Microsoft Component Category Manager Library 
comctl32.dll =    Common Controls Library 
comdlg32.dll =    DLL commune de boites de dialogues 
commdlg.dll =    Bibliotheques des boites de dialogue communes 
compatui.dll =    Module CompatUI 
compobj.dll =    OLE 2.1 16/32 Interoperability Library 
compstui.dll =    DLL d'interface utilisateur de feuille des proprietes communes 
comrepl.dll =    COM Services 
comres.dll =    Services COM 
comsnap.dll =    COM Services 
comsvcs.dll =    COM Services 
comuid.dll =    COM Services 
confmsp.dll =    Fournisseur de service media de conference IP Microsoft 
console.dll =    Applet Console du Panneau de configuration 
corpol.dll =    Microsoft COM Runtime Execution Engine 
cpuinf32.dll =    
credui.dll =    Interface utilisateur du gestionnaire d'informations d'identification 
crtdll.dll =    Microsoft C Runtime Library 
crypt32.dll =    Crypto API32 
cryptdlg.dll =    Dialogues communs de certificats Microsoft 
cryptdll.dll =    Cryptography Manager 
cryptext.dll =    Extensions noyau de cryptographie 
cryptnet.dll =    Crypto Network Related API 
cryptsvc.dll =    Cryptographic Services 
cryptui.dll =    Fournisseur de l'interface Microsoft Trust 
csccdvc.dll =    Canopus Software DV Codec 
cscdll.dll =    Agent reseau hors connexion 
cscdvsd.dll =    Canopus Soft DVSD Codec 
cscui.dll =    IU de cache cote client 
csedv.dll =    Canopus Software Engine (DV stream) 
csrsrv.dll =    Client Server Runtime Process 
csseqchk.dll =    CSSeqChk 
ctl3d32.dll =    Ctl3D 3D Windows Controls 
ctl3dv2.dll =    Ctl3D 3D Windows NT(WOW) Controls 
d3d8.dll =    Microsoft Direct3D 
d3d8thk.dll =    Microsoft Direct3D OS Thunk Layer 
d3d9.dll =    Microsoft Direct3D 
d3dim.dll =    Microsoft Direct3D 
d3dim700.dll =    Microsoft Direct3D 
d3dpmesh.dll =    Direct3D Progressive Mesh DLL 
d3dramp.dll =    Microsoft Direct3D 
d3drm.dll =    Direct3D Retained Mode DLL 
d3dxof.dll =    DirectX Files DLL 
danim.dll =    DirectX Media -- DirectAnimation 
dataclen.dll =    Gestionnaire de nettoyage de disque pour Windows 
datime.dll =    TIME 
davclnt.dll =    Fichier DLL du client DAV pour le Web 
dbgeng.dll =    Symbolic Debugger Engine for Windows 2000 
dbghelp.dll =    Windows Image Helper 
dbmsadsn.dll =    ADSP Net DLL for SQL Clients 
dbmsrpcn.dll =    ConnectTo RPC Net Library 
dbmsvinn.dll =    ConnectTo VINES Net Library 
dbnetlib.dll =    Winsock Oriented Net DLL for SQL Clients 
dbnmpntw.dll =    Named Pipes Net DLL for SQL Clients 
dciman32.dll =    DCI Manager 
ddao35.dll =    Microsoft DAO C++ Library 
ddeml.dll =    Bibliotheque de gestion DDE 
ddraw.dll =    Microsoft DirectDraw 
ddrawex.dll =    Direct Draw Ex 
deccdvc.dll =    Canopus Software DV Decompressor 
deskadp.dll =    Proprietes avancees de la carte graphique 
deskmon.dll =    Proprietes avancees de l'ecran 
deskperf.dll =    Proprietes de performance de l'affichage avance 
devenum.dll =    Enumeration de peripheriques. 
devmgr.dll =    Composant logiciel enfichable MMC Gestionnaire de peripheriques 
dfrgres.dll =    Module de ressources du defragmenteur de disque 
dfrgsnap.dll =    Module du composant logiciel enfichable de defragmenteur de disque 
dfrgui.dll =    Disk Defragmenter UI Module 
dfsshlex.dll =    Extension de l'interpreteur de commande du systeme de fichier distribue 
dgcolorxvfw.dll =    OPTIMIZED COLOR SPACE CONVERSION FUNCTIONS 
dgnet.dll =    Module Dgnet 
dgrpsetu.dll =    Digi RealPort® Driver Upgrade 
dgsetup.dll =    DGSETUP DLL 
dhcpcsvc.dll =    Service client DHCP 
dhcpmon.dll =    DLL du Moniteur DHCP 
dhcpsapi.dll =    DLL de substitution de l'API serveur DHCP 
diactfrm.dll =    Microsoft DirectInput Mapper Framework 
digest.dll =    Package d'authentification Digest SSPI 
digivcap.dll =    Matrox Codecs 
dimap.dll =    Microsoft DirectInput Mapper 
dinput.dll =    Microsoft DirectInput 
dinput8.dll =    Microsoft DirectInput 
directdb.dll =    Microsoft Direct Database API 
diskcopy.dll =    Copie de disques Windows 
dispex.dll =    Microsoft (r) DispEx 
divx.dll =    DivX Video for Windows Codec (Corporate Edition) 
divx4.dll =    DivX Video for Windows Codec 
divxc32.dll =    DivX ;-) MPEG-4 Video Codec 
divxc32f.dll =    DivX ;-) MPEG-4 Video Codec 
dmband.dll =    Microsoft DirectMusic Band 
dmcompos.dll =    Microsoft DirectMusic Composer 
dmconfig.dll =    Logical Disk Manager Configuration Library 
dmdlgs.dll =    Disk Management Snap-in Dialogs 
dmdskmgr.dll =    Disk Management Snap-in Support Library 
dmdskres.dll =    Ressources du composant logiciel enfichable Gestionnaire de disque 
dmime.dll =    Microsoft DirectMusic Interactive Engine 
dmintf.dll =    Disk Management DCOM Interface Stub 
dmloader.dll =    Microsoft DirectMusic Loader 
dmocx.dll =    OCX TreeView 
dmscript.dll =    Microsoft DirectMusic Scripting 
dmserver.dll =    DLL Service gestionnaire de disque logique 
dmstyle.dll =    Microsoft DirectMusic Style Engline 
dmsynth.dll =    Microsoft DirectMusic Software Synthesizer 
dmusic.dll =    Services noyau Microsoft DirectMusic 
dmutil.dll =    Bibliotheque de l'utilitaire Gestionnaire de disques logiques 
dnsapi.dll =    DNS Client API DLL 
dnsrslvr.dll =    Service de resolution du cache DNS 
docprop.dll =    Page des proprietes de OLE DocFile 
docprop2.dll =    Extension du noyau DocProp Microsoft 
doveov32.dll =    DOVEOVL DLL 
dpcdll.dll =    Module dpcdll 
dplay.dll =    Microsoft DirectPlay 
dplayx.dll =    Microsoft DirectPlay 
dpmodemx.dll =    Connexion par modem et connexion serie pour DirectPlay 
dpnaddr.dll =    Microsoft DirectPlay8 Address 
dpnet.dll =    Microsoft DirectPlay 
dpnhpast.dll =    Microsoft DirectPlay NAT Helper PAST 
dpnhupnp.dll =    Microsoft DirectPlay NAT Helper UPnP 
dpnlobby.dll =    Microsoft DirectPlay8 Lobby 
dpnmodem.dll =    Fournisseur de modem Microsoft DirectPlay8 
dpnwsock.dll =    Fournisseur Winsock de Microsoft DirectPlay8 
dpsavicc.dll =    DPS AVI Codec DLL 
dpserial.dll =    Fournisseur de service modem Microsoft DirectPlay 
dpstoavi.dll =    Dps Media Conversion DLL 
dpvacm.dll =    Microsoft DirectPlay Voice ACM Provider 
dpvoice.dll =    Microsoft DirectPlay Voice 
dpvvox.dll =    Microsoft DirectPlay Voice Voxware Provider 
dpwsock.dll =    Microsoft DirectPlay Local Net Service Provider 
dpwsockx.dll =    Connexion TCP/IP Internet et IPX pour DirectPlay 
drmclien.dll =    DRM Client DLL 
drmstor.dll =    DRM Store DLL 
drmv2clt.dll =    DRMv2 Client DLL 
drprov.dll =    Microsoft Terminal Server Network Provider 
ds16gt.dll =    Microsoft ODBC Driver Setup Generic Thunk 
ds32gt.dll =    Microsoft Data Access - ODBC Driver Setup Generic Thunk 
dsauth.dll =    DS Authorization for Services 
dsdmo.dll =    DirectSound Effects 
dsdmoprp.dll =    Pages de propriete des effets DirectSound 
dskquota.dll =    DLL Windows Shell de prise en charge de quota de disque 
dskquoui.dll =    DLL d'IU des quotas de disque systeme 
dsound.dll =    DirectSound 
dsound3d.dll =    DirectSound3D LUT 
dsprop.dll =    Pages de propriete de l'annuaire Windows Active Directory 
dsprpres.dll =    Ressources de pages de proprietes d'Active Directory 
dsquery.dll =    Trouver le service d'annuaire 
dsrmp4.dll =    
dssec.dll =    Interface utilisateur de securite du service d'annuaire 
dssenh.dll =    Microsoft Enhanced DSS and Diffie-Hellman Cryptographic Provider 
dsuiext.dll =    Interface utilisateur commune du service d'annuaire 
dswave.dll =    Microsoft DirectMusic Wave 
duser.dll =    Windows DirectUser Engine 
dvavi.dll =    DV, AVI fromat conversion library 
dvc.dll =    Stub DV Compression Manager 
dvcodec.dll =    DVcodec 
dvoutput.dll =    dvoutput 
dvread.dll =    DV Read Filter 
dvsoft.dll =    DV Compression Manager 
dvwrite.dll =    DV Data Write Filter 
dx7vb.dll =    Microsoft DirectX for Visual Basic 
dx8vb.dll =    Microsoft DirectX for Visual Basic 
dxdiagn.dll =    Outil de diagnostic Microsoft DirectX 
dxmasf.dll =    Filtre source Windows Media 
dxmrtp.dll =    Microsoft TAPI Audio, Video and RTP Filters 
dxtmsft.dll =    DirectX Media -- Image DirectX Transforms 
dxtrans.dll =    DirectX Media -- DirectX Transform Core 
efsadu.dll =    Utilitaire de cryptage de fichiers 
elbycdio.dll =    ElbyCDIO DLL 
elbyvcd.dll =    VirtualCloneDrive 
els.dll =    Composant Observateur d'evenements 
encapi.dll =    Encoder API 
encdec.dll =    XDSCodec & Encypter/Decrypter Tagger Filters. 
eqnclass.dll =    Co-installeur serie multiport Equinox 
ersvc.dll =    Windows Error Reporting Service 
es.dll =    COM Services 
esent.dll =    Moteur de stockage de base de donnees serveur 
esent97.dll =    Microsoft(R) Windows NT(TM) Server Database Storage Engine 
esentprf.dll =    Server Database Storage Performance Library 
etxcodec.dll =    ETXCodec DLL 
eventcls.dll =    Microsoft® Volume Shadow Copy Service event class 
eventlog.dll =    Service journal des evenements 
expsrv.dll =    Visual Basic for Applications Runtime - Expression Service 
exts.dll =    Debugger Extensions 
faultrep.dll =    Rapport d'erreurs Windows 
fde.dll =    Extension du composant logiciel enfichable de redirection de dossiers 
fdeploy.dll =    Extension Winlogon de redirection de dossier 
feclient.dll =    Windows NT File Encryption Client Interfaces 
filemgmt.dll =    Services et dossiers partages 
flccodec32.dll =    Autodesk 24Bit RLE compression driver 
flcfile32.dll =    FLC/FLI File Handler For AVIFile 
fldrclnr.dll =    Assistant Nettoyage du Bureau 
fm20.dll =    Microsoft® Forms DLL 
fm20enu.dll =    Microsoft® Forms International DLL 
fm20fra.dll =    Microsoft® Forms International DLL 
fmifs.dll =    FM IFS Utility DLL 
fontext.dll =    Dossier des polices Windows 
fontsub.dll =    Font Subsetting DLL 
framebuf.dll =    Framebuffer Display Driver 
frwd.dll =    frwd 
frwt.dll =    frwd 
frwu.dll =    frwd 
fsusd.dll =    DLL de peripheriques appareils photo du systeme de fichiers 
ftsrch.dll =    Rechercher Microsoft® Full-Text 
fwcall.dll =    fwcall 
gcdef.dll =    Feuilles de proprietes par defaut du controleurs de jeu 
gdi32.dll =    GDI Client DLL 
gear81sd.dll =    AccuSoft ImageGear/DLL 32 
getuname.dll =    DLL des noms UNICODE pour UCE 
gif89.dll =    Gif89 Module 
glmf32.dll =    OpenGL Metafiling DLL 
glu32.dll =    DLL bibliotheque des utilitaires OpenGL 
glzw.dll =    Glzw DLL 
gpedit.dll =    GPEdit 
gpeg.dll =    Gpeg DLL 
gpkcsp.dll =    Gemplus Cryptographic Service Provider 
gpkrsrc.dll =    Ressources du fournisseur de services cryptographiques Gemplus 
gptext.dll =    GPTExt 
h323msp.dll =    Fournisseur de service media Microsoft H.323 
hal.dll =    Hardware Abstraction Layer DLL 
hccoin.dll =    USB Coinstaller 
hdimon.dll =    Heidi® OLE to ADI Port Monitor 
hhsetup.dll =    Microsoft® HTML Help 
hid.dll =    Hid User Library 
hlink.dll =    Bibliotheque Hypertexte Microsoft 
hnetcfg.dll =    Gestionnaire de configuration de reseau domestique 
hnetmon.dll =    DLL de l'analyseur de reseau domestique 
hnetwiz.dll =    Assistant Configuration du reseau 
hotplug.dll =    Application de suppression securisee de materiel 
hpzcoi04.dll =    HP DeskJet 
hpzcon04.dll =    HP DeskJet Printing System for Windows 
hpzlnt04.dll =    HP DeskJet 
hticons.dll =    HyperTerminal Applet Library 
httpx.dll =    Mabry Internet HTTP/X COM Object 
htui.dll =    Dialogues communs d'ajustement des couleurs en demi-teintes 
huffyuv.dll =    Huffyuv lossless video codec 
hypertrm.dll =    Bibliotheque d'applications HyperTerminal 
iasacct.dll =    Fournisseur de compte IAS 
iasads.dll =    Magasin de donnees Active Directory IAS 
iashlpr.dll =    Composant de substitution IAS 
iasnap.dll =    IAS NAP Provider 
iaspolcy.dll =    IAS Pipeline 
iasrad.dll =    Composant de protocole RADIUS IAS 
iasrecst.dll =    IAS Jet Database Access 
iassam.dll =    IAS NT SAM Provider 
iassdo.dll =    Composant SDO IAS 
iassvcs.dll =    Composant de services IAS 
ic32.dll =    IC Image Control 
icaapi.dll =    DLL Interface to TermDD Device Driver 
iccvid.dll =    Cinepak® AVI Codec by CTi 
icfgnt5.dll =    Internet Connection Wizard 
icm32.dll =    Module de gestion de couleurs (CMM) 
icmp.dll =    ICMP DLL 
icmui.dll =    DLL pour l'interface utilisateur du systeme de correspondance de couleurs Microsoft 
icmw_32.dll =    MotionWavelets Video Codec 
icwdial.dll =    Numeroteur automatique de l'Assistant Connexion Internet 
icwphbk.dll =    Assistant Connexion Internet 
idq.dll =    Extension ISAPI du service d'indexation 
idvcodec.dll =    DV VfW driver 
ieakeng.dll =    Bibliotheque de moteurs de IEAK 
ieaksie.dll =    Extension de composant logiciel enfichable Internet Explorer pour une strategie de groupe 
ieakui.dll =    DLL d'interface utilisateur partagee Microsoft IEAK 
iedkcs32.dll =    DLL de personnalisation de Microsoft Internet Explorer 
iepeers.dll =    Objets pairs Internet Explorer 
iernonce.dll =    Traitement de RunOnce complet avec interface utilisateur 
iesetup.dll =    IOD Version Map 
ifmon.dll =    DLL Moniteur IF 
ifsutil.dll =    IFS Utility DLL 
igmpagnt.dll =    Microsoft IGMP subagent 
iissuba.dll =    Microsoft IIS sub-authentication handler 
ils.dll =    User Location Services Component Module 
imagehlp.dll =    Windows NT Image Helper 
imagr5.dll =    ImagXpress Image Processing DLL 
imagx5.dll =    ImagXpress Image Processing DLL 
imagxpr5.dll =    ImagXpress v5.0 
imeshare.dll =    Microsoft Office IME Shared property library. 
imgutil.dll =    IE plugin image decoder support DLL 
imm32.dll =    Windows XP IMM32 API Client DLL 
inetcfg.dll =    Bibliotheque de l'Assistant Connexion Internet 
inetcomm.dll =    Microsoft Internet Messaging API 
inetcplc.dll =    Panneau de configuration Internet 
inetmib1.dll =    Microsoft MIB-II subagent 
inetpp.dll =    DLL du service d'impression Internet 
inetppui.dll =    DLL du client d'impression Internet 
inetres.dll =    Ressources API de Microsoft Internet Messaging 
inetwh32.dll =    INETWH32 
infosoft.dll =    Wordbreaker and stemmer dll 
initpki.dll =    Installation et configuration de Microsoft Trust 
inked.dll =    Microsoft Tablet PC Platform Component 
input.dll =    DLL d'entree de texte 
inseng.dll =    Moteur d'installation 
iologmsg.dll =    DLL de journalisation des E/S 
ip6fwapi.dll =    IPv6 Firewall API Set 
ip6fwcfg.dll =    Firewall Configuration Helper DLL 
ip6fwhlp.dll =    Microsoft IPv6 Firewall Helper Components 
iphlpapi.dll =    API de l'application d'assistance IP 
ipmontr.dll =    DLL Moniteur de routeur IP 
ipnathlp.dll =    Composants de l'application d'assistance a Microsoft NAT 
ippromon.dll =    DLL du Moniteur de protocoles IP 
iprop.dll =    OLE PropertySet Implementation 
iprtprio.dll =    IP Routing Protocol Priority DLL 
iprtrmgr.dll =    Gestionnaire de routeur IP 
ipsecsnp.dll =    Composant enfichable pour Microsoft Windows 2000 du Gestionnaire de la strategie de securite pour le protocole Internet 
ipsecsvc.dll =    DLL de Windows IPSec SPD serveur 
ipsmsnap.dll =    Composant logiciel enfichable Moniteur de securite IP 
ipv6mon.dll =    DLL Moniteur IF 
ipxmontr.dll =    DLL du Moniteur de routeur IPX 
ipxpromn.dll =    DLL du Moniteur de routeur IPX 
ipxrip.dll =    IPX RIP 
ipxrtmgr.dll =    IPX ROUTER MANAGER 
ipxsap.dll =    SAP Agent DLL 
ipxwan.dll =    IPXWAN 
ir21_r.dll =    
ir32_32.dll =    Intel Indeo(R) Video R3.2 32-bit Driver 
ir41_32.dll =    Intel Indeo(R) Video Interactive 32-bit Driver 
ir41_qc.dll =    Intel Indeo® Video Interactive Quick Compressor 
ir41_qcx.dll =    Intel Indeo® Video Interactive Quick Compressor 
ir50_32.dll =    Intel Indeo® video 5.11 
ir50_lcs.dll =    Intel Indeo® video 5.0 LC 
ir50_qc.dll =    Intel Indeo® video 5.10 Quick Compressor 
ir50_qcx.dll =    Intel Indeo® video 5.10 Quick Compressor 
irclass.dll =    Co-installateur de classe Infrarouge 
isign32.dll =    Processus d'abonnement a Internet 
isrdbg32.dll =    ISR Debug 32-bit Engine 
itircl.dll =    Microsoft® InfoTech IR Local DLL 
itss.dll =    Microsoft® InfoTech Storage System Library 
iuctl.dll =    Windows Update Client Control 
iuengine.dll =    Windows Update Control Engine 
ixsso.dll =    Objet cote serveur du service d'indexation 
iyuv_32.dll =    Intel Indeo(R) Video YUV Codec 
iyvu9_32.dll =    Intel Indeo® Video Raw 1.2 
jet500.dll =    JET Engine DLL 
jgaw400.dll =    JG Audio Interface DLL 
jgdw400.dll =    JG ART DLL 
jgmd400.dll =    JG MIDI Player DLL 
jgpl400.dll =    JG ART Player DLL 
jgsd400.dll =    JG ART DLL 
jgsh400.dll =    JG Slide Show Player DLL 
jobexec.dll =    Executeur de tache Active Setup 
jscript.dll =    Microsoft (r) JScript 
jsfr.dll =    Microsoft (r) JScript - Ressources internationales 
jsproxy.dll =    JScript Proxy Auto-Configuration 
kbdal.dll =    Albania Keyboard Layout 
kbdaze.dll =    Azerbaijan_Cyrillic Keyboard Layout 
kbdazel.dll =    Azeri-Latin Keyboard Layout 
kbdbe.dll =    Belgian Keyboard Layout 
kbdbene.dll =    Belgian Dutch Keyboard Layout 
kbdblr.dll =    Belarusian Keyboard Layout 
kbdbr.dll =    Brazilian Keyboard Layout 
kbdbu.dll =    Bulgarian Keyboard Layout 
kbdca.dll =    Canadian Multilingual Keyboard Layout 
kbdcan.dll =    Canadian National Standard Keyboard Layout 
kbdcr.dll =    Croatian/Slovenian Keyboard Layout 
kbdcz.dll =    Czech Keyboard Layout 
kbdcz1.dll =    Czech_101 Keyboard Layout 
kbdcz2.dll =    Czech_Programmer's Keyboard Layout 
kbdda.dll =    Danish Keyboard Layout 
kbddv.dll =    Dvorak US English Keyboard Layout 
kbdes.dll =    Spanish Alernate Keyboard Layout 
kbdest.dll =    Estonia Keyboard Layout 
kbdfc.dll =    Canadian French Keyboard Layout 
kbdfi.dll =    Finnish Keyboard Layout 
kbdfo.dll =    Færoese Keyboard Layout 
kbdfr.dll =    French Keyboard Layout 
kbdgae.dll =    Gaelic Keyboard Layout 
kbdgkl.dll =    Greek_Latin Keyboard Layout 
kbdgr.dll =    German Keyboard Layout 
kbdgr1.dll =    German_IBM Keyboard Layout 
kbdhe.dll =    Greek Keyboard Layout 
kbdhe220.dll =    Greek IBM 220 Keyboard Layout 
kbdhe319.dll =    Greek IBM 319 Keyboard Layout 
kbdhela2.dll =    Greek IBM 220 Latin Keyboard Layout 
kbdhela3.dll =    Greek IBM 319 Latin Keyboard Layout 
kbdhept.dll =    Greek_Polytonic Keyboard Layout 
kbdhu.dll =    Hungarian Keyboard Layout 
kbdhu1.dll =    Hungarian 101-key Keyboard Layout 
kbdic.dll =    Icelandic Keyboard Layout 
kbdir.dll =    Irish Keyboard Layout 
kbdit.dll =    Italian Keyboard Layout 
kbdit142.dll =    Italian 142 Keyboard Layout 
kbdkaz.dll =    Kazak_Cyrillic Keyboard Layout 
kbdkyr.dll =    Kyrgyz Keyboard Layout 
kbdla.dll =    Latin-American Spanish Keyboard Layout 
kbdlt.dll =    Lithuania Keyboard Layout 
kbdlt1.dll =    Lithuanian Keyboard Layout 
kbdlv.dll =    Latvia Keyboard Layout 
kbdlv1.dll =    Latvia-QWERTY Keyboard Layout 
kbdmac.dll =    FYROMacedonian_Cyrillic Keyboard Layout 
kbdmon.dll =    Mongolian Keyboard Layout 
kbdne.dll =    Dutch Keyboard Layout 
kbdnec.dll =    JP Japanese Keyboard Layout for (NEC PC-9800) 
kbdno.dll =    Norwegian Keyboard Layout 
kbdpl.dll =    Polish Keyboard Layout 
kbdpl1.dll =    Polish Programmer's Keyboard Layout 
kbdpo.dll =    Portuguese Keyboard Layout 
kbdro.dll =    Romanian Keyboard Layout 
kbdru.dll =    Russian Keyboard Layout 
kbdru1.dll =    Russia(Typewriter) Keyboard Layout 
kbdsf.dll =    Swiss French Keyboard Layout 
kbdsg.dll =    Swiss German Keyboard Layout 
kbdsl.dll =    Slovak Keyboard Layout 
kbdsl1.dll =    Slovak(QWERTY) Keyboard Layout 
kbdsp.dll =    Spanish Keyboard Layout 
kbdsw.dll =    Swedish Keyboard Layout 
kbdtat.dll =    Tatar_Cyrillic Keyboard Layout 
kbdtuf.dll =    Turkish F Keyboard Layout 
kbdtuq.dll =    Turkish Q Keyboard Layout 
kbduk.dll =    United Kingdom Keyboard Layout 
kbdur.dll =    Ukrainian Keyboard Layout 
kbdus.dll =    United States Keyboard Layout 
kbdusl.dll =    Dvorak Left-Hand US English Keyboard Layout 
kbdusr.dll =    Dvorak Right-Hand US English Keyboard Layout 
kbdusx.dll =    US Multinational Keyboard Layout 
kbduzb.dll =    Uzbek_Cyrillic Keyboard Layout 
kbdycc.dll =    Serbian_Cyrillic Keyboard Layout 
kbdycl.dll =    Serbian_Latin Keyboard Layout 
kd1394.dll =    Kernel Debugger IEEE 1394 HW Extension DLL 
kdcom.dll =    Kernel Debugger HW Extension DLL 
kerberos.dll =    Kerberos Security Package 
kernel32.dll =    DLL du client API BASE Windows NT 
keymgr.dll =    Noms et mots de passe utilisateur enregistres 
kmvidc32.dll =    
ksuser.dll =    User CSA Library 
kzdesktop.dll =    KzDesktop Module 
langwrbk.dll =    English wordbreaker 
laprxy.dll =    Windows Media Logagent Proxy 
lcodccmp.dll =    LEAD MCMP/MJPEG Codec 
lfbmp11n.dll =    LEADTOOLS(r) DLL for Win32 
lfcmp10n.dll =    LEADTOOLS® DLL for Win32 
lfcmp11n.dll =    LEADTOOLS(r) DLL for Win32 
lfpng11n.dll =    LEADTOOLS(r) DLL for Win32 
lfwmf11n.dll =    LEADTOOLS(r) DLL for Win32 
libfaad.dll =    
licdll.dll =    Module licdll 
licmgr10.dll =    ActiveX License Manager 
licwmi.dll =    Windows Product Activation Configuration WMI provider 
linkinfo.dll =    Windows Volume Tracking 
lmhsvc.dll =    TCPIP NetBios Transport Services DLL 
lmrt.dll =    Liquid Motion Runtime Control 
loadperf.dll =    Compteurs de performance Charger & decharger 
localsec.dll =    Composant MMC Utilisateurs et groupes locaux 
localspl.dll =    DLL de spouleur local 
localui.dll =    DLL d'interface utilisateur du moniteur local 
loghours.dll =    Boite de dialogue de planification 
lpk.dll =    Language Pack 
lprhelp.dll =    LPR Print Monitor 
lprmonui.dll =    Interface utilisateur du moniteur d'impression LPR 
lsasrv.dll =    DLL serveur LSA 
ltdis10n.dll =    LEADTOOLS® DLL for Win32 
ltdis11n.dll =    LEADTOOLS(r) DLL for Win32 
ltefx10n.dll =    LEADTOOLS® DLL for Win32 
ltfil10n.dll =    LEADTOOLS® DLL for Win32 
ltfil11n.dll =    LEADTOOLS(r) DLL for Win32 
ltimg10n.dll =    LEADTOOLS® DLL for Win32 
ltimg11n.dll =    LEADTOOLS(r) DLL for Win32 
ltkrn10n.dll =    LEADTOOLS® DLL for Win32 
ltkrn11n.dll =    LEADTOOLS(r) DLL for Win32 
lttwn10n.dll =    LEADTOOLS® DLL for Win32 
lz32.dll =    LZ Expand/Compress API DLL 
lzexpand.dll =    Windows file expansion library 
m3jp2k32.dll =    Morgan M-JPEG2000 VFW codec 
m3jpeg32.dll =    Morgan Multimedia M-JPEG V3 codec 
ma32.dll =    
mabryobj.dll =    Mabry StreamObjects Module 
macd32.dll =    MACD32 DLL 
mag_hook.dll =    Microsoft Magnifier hook library file 
malslib.dll =    MALSLIB.DLL 
mamc32.dll =    MAMC32 DLL 
mapi32.dll =    Extended MAPI 1.0 for Windows NT 
mapistub.dll =    Extended MAPI 1.0 for Windows NT 
masd32.dll =    
mase32.dll =    
mcastmib.dll =    Microsoft Multicast subagent 
mcd32.dll =    OpenGL MCD Client DLL 
mcdsrv32.dll =    MCD Server 
mcdvd_32.dll =    MainConcept DV Codec 
mchgrcoi.dll =    Medium Changer CoInstaller 
mciavi32.dll =    Pilote MCI Video for Windows 
mcicda.dll =    Pilote MCI pour peripheriques CD audio 
mciole16.dll =    MCIOLE16 - OLE Handler DLL for MCI Objects 
mciole32.dll =    MCI OLE DLL 
mciqtz32.dll =    DirectShow MCI Driver 
mciseq.dll =    Pilote MCI pour sequenceur MIDI 
mciwave.dll =    Pilote MCI pour formes d'ondes audio 
mcmjpg32.dll =    MainConcept MJPG Video Codec 
mdhcp.dll =    Interface COM client MDHCP Microsoft 
mdminst.dll =    Installateur de classes de modems 
mdwmdmsp.dll =    WMDM Service Provider driver for MDM Drivers 
mf3216.dll =    32-bit to 16-bit Metafile Conversion DLL 
mfc40.dll =    MFCDLL Shared Library - Retail Version 
mfc40loc.dll =    MFC Language Specific Resources 
mfc40u.dll =    MFCDLL Shared Library - Retail Version 
mfc42.dll =    MFCDLL Shared Library - Retail Version 
mfc42fra.dll =    MFC Language Specific Resources 
mfc42loc.dll =    MFC Language Specific Resources 
mfc42u.dll =    MFCDLL Shared Library - Retail Version 
mfc70.dll =    MFCDLL Shared Library - Retail Version 
mfc70u.dll =    MFCDLL Shared Library - Retail Version 
mfcsubs.dll =    COM Services 
mgmtapi.dll =    Microsoft SNMP Manager API (uses WinSNMP) 
midimap.dll =    Mappeur MIDI Microsoft 
miglibnt.dll =    NT migration dll support 
mimefilt.dll =    Microsoft (R) IMimeFilter Persistent Handler DLL 
mindex.dll =    Microsoft Media Index 
mirodv16un.dll =    miroDV16un.dll =  
mirodv2avi.dll =    miroDV2avi.dll =  
mirodv4un.dll =    miroDV4un.dll =  
mirodvenc.dll =    miroDVenc.dll =  (for Multi Media eXtensions) 
mirodvun.dll =    miroDVun.dll =  
miroxl32.dll =    miroVIDEO-XL 32-bit AVI Codec 
mj2desc.dll =    Morgan MJP2 Shell Extension 
mlang.dll =    Multi Language Support DLL 
mll_hp.dll =    HP Media Label Library 
mll_mtf.dll =    MTF (Microsoft Tape Format) Media Label Library 
mll_qic.dll =    QIC113 Media Label Library 
mmcbase.dll =    DLL de base MMC 
mmcndmgr.dll =    DLL du Gestionnaire de nœud MMC 
mmcshext.dll =    MMC Shell Extension DLL 
mmdrv.dll =    MultiMedia Kernel support Driver 
mmfutil.dll =    Application d'assistance du composant de logiciel enfichable WMI 
mmijg32.dll =    MMIJG32 
mmsystem.dll =    API systeme pour le multimedia 
mmtvmj.dll =    MM TVMJ DLL 
mmutilse.dll =    Microsoft Multimedia Controls Utilities 
mnmdd.dll =    Application Sharing Display Driver 
mobsync.dll =    Gestionnaire de synchronisation Microsoft 
modemui.dll =    Proprietes du modem Windows 
modex.dll =    ModeX Display Driver 
moricons.dll =    Windows NT Setup Icon Resources Library 
mp43dmod.dll =    Windows Media MPEG-4 Video Decoder 
mp4sdmod.dll =    Corona Windows Media MPEG-4 S Video Decoder 
mpegdecoder.dll =    mpegdecoder Module 
mpg4c32.dll =    MPEG-4 Video Codec 
mpg4dmod.dll =    Corona Windows Media MPEG-4 Video Decoder 
mplaa6.dll =    MPL Audio Library 
mplam6.dll =    MPL Audio Library 
mplapx.dll =    MPL Audio Library 
mplaw7.dll =    MPL Audio Library 
mplva6.dll =    MPL Video Library 
mplvm6.dll =    MPL Video Library 
mplvpx.dll =    MPL Video Library 
mplvw7.dll =    MPL Video Library 
mpr.dll =    DLL de routeur de fournisseurs multiples 
mprapi.dll =    Windows NT MP Router Administration DLL 
mprddm.dll =    Superviseur du Gestionnaire de numerotation a la demande 
mprdim.dll =    Dynamic Interface Manager 
mprmsg.dll =    DLL message du service de routeur multi-protocole 
mprui.dll =    Fournisseur Multiple 
mqad.dll =    Windows NT MQ Client AD Access 
mqcertui.dll =    Windows NT Certificate Dialogs 
mqdscli.dll =    Windows NT MQ Client Directory Service 
mqgentr.dll =    MSMQ Trigger Generic Object 
mqise.dll =    MSMQ ISAPI EXTENSION 
mqlogmgr.dll =    MS DTC log manager DLL 
mqoa.dll =    Message Queuing ActiveX Interface 
mqperf.dll =    Windows NT MQ Performance Coutners 
mqqm.dll =    Windows NT MQ Queue Manager 
mqrt.dll =    Windows NT MQ Run time DLL 
mqrtdep.dll =    Message Queueing Dependent Client 
mqsec.dll =    Windows NT, MSMQ 2.0 Security 
mqsnap.dll =    Windows NT MSMQ Admin 
mqtrig.dll =    MSMQ Trigger Object Module 
mqupgrd.dll =    MSMQ Upgrade 
mqutil.dll =    DLL d'utilitaires Message Queuing Windows NT 
msaatext.dll =    Active Accessibility text support 
msacm.dll =    Gestionnaire de compression audio Microsoft 
msacm32.dll =    Filtre audio ACM Microsoft 
msadce.dll =    Microsoft Data Access - OLE DB Cursor Engine 
msadcer.dll =    Microsoft Data Access - Ressources pour OLE DB Cursor Engine 
msadcf.dll =    Microsoft Data Access - Remote Data Services Data Factory 
msadcfr.dll =    Microsoft Data Access - Ressources pour Remote Data Services Data Factory 
msadco.dll =    Microsoft Data Access - Remote Data Services Data Control 
msadcor.dll =    Microsoft Data Access - Ressources de controle de donnees pour Remote Data Services 
msadcs.dll =    Microsoft Data Access - Remote Data Services ISAPI Library 
msadds.dll =    Microsoft Data Access - OLE DB Data Shape Provider 
msaddsr.dll =    Microsoft data Access - Ressources fournisseur pour Data Shape OLE DB 
msader15.dll =    Microsoft Data Access - Ressources ADO (ActiveX Data Objects) 
msado15.dll =    Microsoft Data Access - ActiveX Data Objects 
msadomd.dll =    Microsoft Data Access - ActiveX Data Objects (Multi-Dimensional) 
msador15.dll =    Microsoft Data Access - ActiveX Data Objects 
msadox.dll =    Microsoft Data Access - ActiveX Data Objects Extensions 
msadrh15.dll =    Microsoft Data Access - ActiveX Data Objects Rowset Helper 
msafd.dll =    Microsoft Windows Sockets 2.0 Service Provider 
msapsspc.dll =    Client DPA pour plate-forme 32 bit 
msasn1.dll =    ASN.1 Runtime APIs 
msaudite.dll =    DLL des evenements d'audit de la securite 
mscat32.dll =    MSCAT32 Forwarder DLL 
mscms.dll =    Microsoft Color Matching System DLL 
msconf.dll =    Dll de l'utilitaire de conference 
mscoree.dll =    Microsoft .NET Runtime Execution Engine 
mscorier.dll =    Microsoft .NET Runtime IE resources 
mscories.dll =    Microsoft .NET IE SECURITY REGISTRATION 
mscpx32r.dll =    Microsoft Data Access - ODBC Code Page Translator Resources 
mscpxl32.dll =    Microsoft Data Access - Traducteur de pages de codes ODBC 
msctf.dll =    DLL de MSCTF Server 
msctfp.dll =    MSCTFP Server DLL 
msdadc.dll =    Microsoft Data Access - OLE DB Data Conversion Stub 
msdaenum.dll =    Microsoft Data Access - OLE DB Root Enumerator Stub 
msdaer.dll =    Microsoft Data Access - OLE DB Error Collection Stub 
msdaerr.dll =    Microsoft OLE DB Error Collection Localized Strings 
msdaipp.dll =    Microsoft Data Access Component Internet Publishing Provider 
msdaora.dll =    Microsoft Data Access - OLE DB Provider for Oracle 
msdaorar.dll =    Microsoft Data Access - Fournisseur OLE DB pour ressources Oracle 
msdaosp.dll =    Microsoft Data Access - OLE DB Simple Provider 
msdapml.dll =    SharePoint Portal Server executable 
msdaprsr.dll =    Microsoft Data Access - Ressources services pour Persistance OLE DB 
msdaprst.dll =    Microsoft Data Access - OLE DB Persistence Services 
msdaps.dll =    Microsoft Data Access - OLE DB Interface Proxies/Stubs 
msdarem.dll =    Microsoft Data Access - OLE DB Remote Provider 
msdaremr.dll =    Microsoft Data Access - Ressources fournisseur pour OLE DB Remote 
msdart.dll =    Microsoft Data Access - OLE DB Runtime Routines 
msdasc.dll =    Microsoft Data Access - OLE DB Service Components Stub 
msdasql.dll =    Microsoft Data Access - OLE DB Provider for ODBC Drivers 
msdasqlr.dll =    Microsoft Data Access - OLE DB Provider pour les pilotes ODBC 
msdatl.dll =    Microsoft OLE DB Implementation support library 
msdatl3.dll =    Microsoft Data Access - OLE DB Implementation Support Routines 
msdatt.dll =    Microsoft Data Access - OLE DB Temporary Table Services 
msdaurl.dll =    Microsoft Data Access - OLE DB RootBinder Stub 
msdfmap.dll =    Microsoft Data Access - Data Factory Handler 
msdmeng.dll =    Microsoft Data Mining Engine 
msdmine.dll =    Microsoft OLE DB Provider for Data Mining Services 
msdmo.dll =    DMO Runtime 
msdtclog.dll =    MS DTC log manager DLL 
msdtcprx.dll =    MS DTC OLE Transactions interface proxy DLL 
msdtctm.dll =    MS DTC transaction manager DLL 
msdtcuiu.dll =    MS DTC administrative component DLL 
msdxmlc.dll =    Lecteur Windows Media 
msencode.dll =    Microsoft Character Encoder 
msexch40.dll =    Microsoft JetJets-of-the-Future Sep-07  Exchange Isam 
msexcl35.dll =    Microsoft Jet Excel Isam 
msexcl40.dll =    Microsoft Jet Excel Isam 
msftedit.dll =    Rich Text Edit Control, v4.1 
msgina.dll =    Ouverture de session Windows NT GINA DLL 
msgstrpc.dll =    HPC Inbox Remote Database 
msgsvc.dll =    NT Messenger Service 
mshtml.dll =    Visionneuse HTML Microsoft (R) 
mshtmled.dll =    Composant d'edition HTML Microsoft (R) 
mshtmler.dll =    DLL de ressource du composant d'edition HTML Microsoft(R) 
msi.dll =    Windows Installer 
msident.dll =    Gestionnaire d'identite Microsoft 
msidle.dll =    User Idle Monitor 
msidntld.dll =    Gestionnaire d'identite Microsoft 
msieftp.dll =    Extension Shell dossier FTP Microsoft Internet Explorer. 
msihnd.dll =    Windows® installer 
msimg32.dll =    GDIEXT Client DLL 
msimsg.dll =    Windows® Installer International Messages 
msimtf.dll =    Active IMM Server DLL 
msisam11.dll =    Microsoft MSISAM 1.1 
msisip.dll =    MSI Signature SIP Provider 
msjet35.dll =    Microsoft Jet Engine Library 
msjet40.dll =    Microsoft Jet Engine Library 
msjetoledb40.dll =    Microsoft OLE DB Provider for Jet 
msjint35.dll =    Microsoft Jet Database Engine International DLL 
msjint40.dll =    DLL internationale du moteur de base de donnees Microsoft Jet 
msjro.dll =    Microsoft Jet and Replication Objects 
msjt4jlt.dll =    Microsoft Jet Engine Library for Jolt 
msjter35.dll =    Microsoft Jet Database Engine Error DLL 
msjter40.dll =    Microsoft Jet Database Engine Error DLL 
msjtes40.dll =    Microsoft Jet Expression Service 
mslbui.dll =    Extension de barre de langues 
msls2.dll =    Microsoft Applications Line Services library file 
msls31.dll =    Microsoft Line Services library file 
msltus35.dll =    Microsoft Jet Lotus 1-2-3 Isam 
msltus40.dll =    Microsoft Jet Lotus 1-2-3 Isam 
msmdcb80.dll =    PivotTable Service dll 
msmdgd80.dll =    Microsoft SQL Server Analysis Services driver 
msmdun80.dll =    String Function .DLL for SQL Enterprise Components 
msnetobj.dll =    DRM ActiveX Network Object 
msnsspc.dll =    Acces MSN Internet 
msobjs.dll =    Nom d'audit des objets systeme 
msoeacct.dll =    Gestionnaire de comptes Internet 
msoert2.dll =    Microsoft Outlook Express RT Lib 
msolap80.dll =    Microsoft OLE DB Provider for Analysis Services 8.0 
msolui80.dll =    Microsoft OLE DB provider for Analysis Services connection dialog 8.0 
msorc32r.dll =    Microsoft Data Access - Pilote ODBC pour ressources Oracle 
msorcl32.dll =    Microsoft Data Access - ODBC Driver for Oracle 
mspatcha.dll =    Microsoft(R) Patch Engine 
mspbde40.dll =    Microsoft Jet Paradox Isam 
mspdox35.dll =    Microsoft Jet Paradox Isam 
mspmsnsv.dll =    Fournisseur de services de peripherique multimedia Microsoft 
mspmsp.dll =    Microsoft Media Device Service Provider 
mspmspsv.dll =    Fournisseur de services du peripherique media Microsoft 
msports.dll =    Installateur de classes de ports 
msprivs.dll =    Microsoft Privilege Translations 
msprpfr.dll =    msprop32.ocx 
msr2c.dll =    Microsoft® Forms DLL 
msr2cenu.dll =    Microsoft® Forms DLL 
msratelc.dll =    DLL de gestion d'utilisateur local et de controle d'acces a Internet 
msrating.dll =    DLL de gestion d'utilisateur local et de controle d'acces a Internet 
msrclr40.dll =    Microsoft Jet Briefcase Reconciler Library 
msrd2x35.dll =    Microsoft (R) Red ISAM 
msrd2x40.dll =    Microsoft (R) Red ISAM 
msrd3x40.dll =    Microsoft (R) Red ISAM 
msrdo20.dll =    MSRDO20 rdoEngine control 
msrecr40.dll =    Microsoft Jet Briefcase Reconciler Resource Library 
msrepl35.dll =    Microsoft Replication Library 
msrepl40.dll =    Microsoft Replication Library 
msrle32.dll =    Compresseur Microsoft RLE 
mssap.dll =    DRM 
msscp.dll =    Windows Media Secure Content Provider 
mssign32.dll =    API de signature approuvee Microsoft 
mssip32.dll =    MSSIP32 Forwarder DLL 
msstdfmt.dll =    Microsoft Standard Data Formating Object DLL 
msstkprp.dll =    msprop32.ocx 
msswch.dll =    msswch 
mstask.dll =    Fichier DLL d'interface du Planificateur de taches 
mstext35.dll =    Microsoft Jet Text Isam 
mstext40.dll =    Microsoft Jet Text Isam 
mstime.dll =    Extensions HTML Microsoft (R) Timed Interactive Multimedia 
mstlsapi.dll =    Microsoft® Terminal Server Licensing 
mstscax.dll =    Terminal Services ActiveX Client 
msuni11.dll =    Microsoft Jet Sort Tables 
msutb.dll =    DLL MSUTB Server 
msv1_0.dll =    Microsoft Authentication Package v1.0 
msvbvm60.dll =    Visual Basic Virtual Machine 
msvci70.dll =    Microsoft® C++ Runtime Library 
msvcirt.dll =    Windows NT IOStreams DLL 
msvcp50.dll =    Microsoft (R) C++ Runtime Library 
msvcp60.dll =    Microsoft (R) C++ Runtime Library 
msvcp70.dll =    Microsoft® C++ Runtime Library 
msvcrt.dll =    Windows NT CRT DLL 
msvcrt20.dll =    Microsoft® C Runtime Library 
msvcrt40.dll =    Microsoft (R) C Runtime Library Forwarder DLL 
msvfw32.dll =    DLL Microsoft Video for Windows 
msvidc32.dll =    Compresseur Microsoft Video 1 
msvidctl.dll =    ActiveX control for streaming video 
msvideo.dll =    DLL Microsoft Video for Windows 
msw3prt.dll =    DLL ISAPI pour l'impression web 
mswdat10.dll =    Microsoft Jet Sort Tables 
mswebdvd.dll =    Module MSWebDVD 
mswmdm.dll =    Gestionnaire de peripheriques Windows Media (principal) 
mswsock.dll =    Fournisseur de service Sockets 2.0 de Microsoft Windows 
mswstr10.dll =    Bibliotheque de tri de Microsoft Jet 
msxactps.dll =    Microsoft Data Access - OLE DB Transaction Proxies/Stubs 
msxbde40.dll =    Microsoft Jet xBASE Isam 
msxbse35.dll =    Microsoft Jet xBase Isam 
msxml.dll =    XML OM for Win32 
msxml2.dll =    XML OM for Win32 
msxml2r.dll =    XML Resources for Win32 
msxml3.dll =    MSXML 3.0 SP 3 
msxml3a.dll =    XML Resources 
msxml3r.dll =    XML Resources 
msxmlr.dll =    XML Resources for Win32 
msyuv.dll =    Microsoft UYVY Video Decompressor 
mtxclu.dll =    MS DTC amd MTS clustering support DLL 
mtxdm.dll =    COM Services 
mtxex.dll =    COM Services 
mtxlegih.dll =    COM Services 
mtxoci.dll =    Microsoft database support DLL for Oracle 
mycomput.dll =    Gestion de l'ordinateur 
mydocs.dll =    Interface utilisateur du dossier Mes documents 
n067ufw.dll =    ScanGear Device Driver 
narrhook.dll =    Intercepteur du clavier et des evenements Windows pour le Narrateur Microsoft 
ncobjapi.dll =    Microsoft® Windows® Operating System 
ncxpnt.dll =    Netork Setup Wizard Support DLL 
nddeapi.dll =    APIs de gestion du partage DDE reseau 
nddenb32.dll =    Interface NetBIOS de DDE reseau 
netapi.dll =    Bibliotheque de liens dynamiques reseau pour Microsoft Windows 
netapi32.dll =    Net Win32 API DLL 
netcfgx.dll =    Objets de configuration du reseau 
netevent.dll =    Manipulateur d'evenements reseau 
netfxperf.dll =    netfxperf.lib 
neth.dll =    DLL des messages d'aide reseau 
netid.dll =    Panneau de configuration Systeme ; onglet Identification 
netlogon.dll =    Net Logon Services DLL 
netman.dll =    Gestionnaire de connexions reseau 
netmsg.dll =    DLL des messages reseaux 
netplwiz.dll =    Assistant Connexion a des lecteurs ou des emplacements reseau 
netrap.dll =    Net Remote Admin Protocol DLL 
netshell.dll =    Noyau des Connexions reseau 
netui0.dll =    Code commun NT LM UI - Classes GUI 
netui1.dll =    NT LM UI Common Code - Networking classes 
netui2.dll =    Code commun NT LM UI - Classes GUI 
newdev.dll =    Bibliotheque d'ajout de peripherique materiel 
nlhtml.dll =    Net Library HTML filter 
nmevtmsg.dll =    DLL d'enregistrement d'evenements NetMeeting 
nmmkcert.dll =    Bibliotheque NMMKCERT 
npptools.dll =    DLL de l’utilitaire d’assistance des outils NPP 
npwmsdrm.dll =    Windows Multimedia Services DRM Store Plug-In 
nscmps.dll =    Windows Media Station Service Administration Proxy/Stub 
nserror.dll =    Windows Media Services Error Definitions 
ntcodec.dll =    NewTek, AVI Compressor 
ntdll.dll =    DLL Couche NT 
ntdsapi.dll =    NT5DS 
ntdsbcli.dll =    NT5DS 
ntlanman.dll =    Gestionnaire de reseau local Microsoft® 
ntlanui.dll =    DLL de controle LanMan 
ntlanui2.dll =    Interface utilisateur 
ntlsapi.dll =    Microsoft® License Server Interface DLL 
ntmarta.dll =    Fournisseur MARTA Windows NT 
ntmsapi.dll =    Interfaces publiques de stockage amovible 
ntmsdba.dll =    API d'objet DB de gestion de stockage amovible 
ntmsevt.dll =    Journal des evenements du stockage amovible 
ntmsmgr.dll =    Gestion du stockage amovible 
ntmssvc.dll =    Gestionnaire de stockage amovible 
ntprint.dll =    DLL d'installation de spouleur 
ntsdexts.dll =    Symbolic Debugger Extensions 
ntshrui.dll =    Extensions de l'interpreteur de commandes pour le partage 
ntvdmd.dll =    NTVDMD.DLL 
nv4.dll =    NVIDIA Compatible Windows XP Display Driver, Version 12.40.20 
nv4_disp.dll =    NVIDIA Compatible Windows 2000 Display driver, Version 53.03 
nvcod.dll =    NVIDIA Driver CoInstaller 
nvcodins.dll =    NVIDIA Driver CoInstaller 
nvcpl.dll =    NVIDIA Display Properties Extension 
nvinstnt.dll =    NVIDIA Compatible Driver Install Library, Version 53.03 
nvmctray.dll =    NVIDIA Media Center Library 
nvnt4cpl.dll =    NVIDIA Desktop Explorer, Version 53.03 
nvoglnt.dll =    NVIDIA Compatible OpenGL ICD 
nvwddi.dll =    NVIDIA nView Display Driver Interface Lib, Version 53.03 
nvwdmcpl.dll =    NVIDIA nView Control Panel, Version 53.03 
nwapi16.dll =    NW Windows/Dos API DLL 
nwapi32.dll =    NW Win32 API DLL 
nwcfg.dll =    NWC Configuration DLL 
nwevent.dll =    Messages d'evenements pour le Service client pour NetWare 
nwprovau.dll =    Service client pour le fournisseur NetWare et DLL d'authentification 
nwwks.dll =    Client Service for Netware 
oakley.dll =    Gestionnaire de cle Oakley 
objsel.dll =    Dialogue du Selecteur d'objet 
occache.dll =    Object Control Viewer 
ocmanage.dll =    Bibliotheque du Gestionnaire de composants facultatifs 
odbc16gt.dll =    Microsoft ODBC Driver Generic Thunk 
odbc32.dll =    Microsoft Data Access - ODBC Driver Manager 
odbc32gt.dll =    Microsoft Data Access - ODBC Driver Generic Thunk 
odbcbcp.dll =    Microsoft BCP for ODBC 
odbcconf.dll =    Microsoft Data Access - ODBC Driver Configuration Program 
odbccp32.dll =    Microsoft Data Access - ODBC Installer 
odbccr32.dll =    Microsoft Data Access - ODBC Cursor Library 
odbccu32.dll =    Microsoft Data Access - ODBC Cursor Library 
odbcint.dll =    Microsoft Data Access - Ressources ODBC 
odbcji32.dll =    Microsoft ODBC Desktop Driver Pack 3.5 
odbcjt32.dll =    Microsoft ODBC Desktop Driver Pack 3.5 
odbcp32r.dll =    Microsoft Data Access - ODBC Driver Manager Resources 
odbcstf.dll =    ODBC Version 3.0 Custom Action Setup DLL 
odbctl32.dll =    ODBC Helper Function DLL 
odbctrac.dll =    Microsoft Data Access - ODBC Driver Manager Trace 
oddbse32.dll =    ODBC (3.0) driver for DBase 
odexl32.dll =    ODBC (3.0) driver for Excel 
odfox32.dll =    ODBC (3.0) driver for FoxPro 
odpdx32.dll =    ODBC (3.0) driver for Paradox 
odtext32.dll =    ODBC (3.0) driver for text files 
offfilt.dll =    OffFilt 
ogg.dll =    
oggds.dll =    Ogg DirectShow(tm) Filter Collection 
ole2.dll =    OLE 2.1 16/32 Interoperability Library 
ole2disp.dll =    OLE 2.1 16/32 Interoperability Library 
ole2nls.dll =    OLE 2.1 16/32 Interoperability Library 
ole32.dll =    Microsoft OLE pour Windows 
oleacc.dll =    Active Accessibility Core Component 
oleaccrc.dll =    Active Accessibility Resource DLL 
oleaut32.dll =    Microsoft OLE 3.50 for Windows NT(TM) and Windows 95(TM) Operating Systems 
olecli.dll =    Bibliotheque client de liaison et incorporation d'objets (OLE) 
olecli32.dll =    Bibliotheque client OLE 
olecnv32.dll =    Microsoft OLE for Windows 
oledb32.dll =    Microsoft Data Access - OLE DB Core Services 
oledb32r.dll =    Microsoft Data Access - Ressources des services OLE DB Core 
oledlg.dll =    Prise en charge de l'interface utilisateur pour Microsoft Windows(TM) OLE 2.0 
oleprn.dll =    Oleprn DLL 
olepro32.dll =    Microsoft (R) OLE Property Support DLL 
olesvr.dll =    Object Linking and Embedding Server Library 
olesvr32.dll =    Object Linking and Embedding Server Library 
olethk32.dll =    Microsoft OLE for Windows 
opengl32.dll =    OpenGL Client DLL 
openquicktimelib.dll =    
osuninst.dll =    Interface de desinstallation 
qasf.dll =    DirectShow ASF Support 
qcap.dll =    Module d'execution DirectShow. 
qcut.dll =    DirectShow Runtime. 
qdcsinet.dll =    Norton Internet File Cleanup Library 
qdv.dll =    Module d'execution DirectShow. 
qdvd.dll =    DirectShow DVD PlayBack Runtime. 
qedit.dll =    Edition DirectShow. 
qedwipes.dll =    DirectShow Editing SMPTE Wipes 
qmgr.dll =    Service de transfert intelligent en arriere-plan 
qmgrprxy.dll =    Background Intelligent Transfer Service Proxy 
qosname.dll =    Microsoft Windows GetQosByName Service Provider 
qpeg32.dll =    QPEG® Video Codec 1.1 by Q-Team Dr. Knabe GmbH 
quartz.dll =    Module d'execution DirectShow. 
query.dll =    Bibliotheque de requete et d'indexation de Index Server 
racpldlg.dll =    Assistance a distance Microsoft 
rapi.dll =    Mobile Device Remote API 
rasadhlp.dll =    Remote Access AutoDial Helper 
rasapi32.dll =    API d'Acces reseau a distance 
rasauto.dll =    Remote Access AutoDial Manager 
raschap.dll =    Remote Access PPP CHAP 
rasctrs.dll =    DLL de compteur de performances d'acces distant Windows NT 
rasdlg.dll =    API de dialogues communs pour les acces distants 
rasman.dll =    Remote Access Connection Manager 
rasmans.dll =    Remote Access Connection Manager 
rasmontr.dll =    DLL Moniteur RAS 
rasmxs.dll =    Remote Access Device DLL for modems, PADs and switches 
rasppp.dll =    Remote Access PPP 
rasrad.dll =    Remote Access Service NT RADIUS client module 
rassapi.dll =    Remote Access Admin APIs dll 
rasser.dll =    Remote Access Media DLL for COM ports 
rastapi.dll =    Remote Access TAPI Compliance Layer 
rastls.dll =    Acces distant PPP EAP-TLS 
rcbdyctl.dll =    Assistance a distance Microsoft 
rdchost.dll =    RDSHost Client Module 
rdocurs.dll =    Microsoft RDO Client Cursor DLL 
rdpcfgex.dll =    Extension de configuration de connexion Terminal Server pour protocole RDP 
rdpdd.dll =    RDP Display Driver 
rdpsnd.dll =    Pilote multimedia du service Terminal Server 
rdpwsx.dll =    RDP Extension DLL 
regacad.dll =    RegAcad 
regapi.dll =    Registry Configuration APIs 
regsvc.dll =    Remote Registry Service 
regwizc.dll =    Module RegWizCtrl 
remotepg.dll =    Extension du Panneau de configuration Sessions distantes 
rend.dll =    Microsoft Rendezvous Control 
resutils.dll =    Microsoft Cluster Resource Utility DLL 
riched20.dll =    Rich Text Edit Control, v3.0 
riched32.dll =    Wrapper Dll for Richedit 1.0 
rmoc3260.dll =    Real Player(tm) ActiveX Control 
rmp4.dll =    
rnr20.dll =    Windows Socket2 NameSpace DLL 
roboex32.dll =    RoboHELP Extensions for WinHelp 
routetab.dll =    Microsoft Routing Table DLL 
rpcns4.dll =    Remote Procedure Call Name Service Client 
rpcrt4.dll =    Remote Procedure Call Runtime 
rpcss.dll =    Distributed COM Services 
rsaenh.dll =    Microsoft Base Cryptographic Provider 
rsfsaps.dll =    FSA Proxy / Stub 
rshx32.dll =    Extension noyau de securite 
rsmps.dll =    RSM Proxy Stub 
rsvpmsg.dll =    DLL de messages RSVP 
rsvpperf.dll =    Microsoft® Windows(TM) RSVP Performance Monitor 
rsvpsp.dll =    Microsoft Windows Rsvp 1.0 Service Provider 
rtcdll.dll =    Fichier DLL de l'agent utilisateur RTC 
rtcres.dll =    RTC Resource DLL 
rtipxmib.dll =    Microsoft Router IPX MIB subagent 
rtm.dll =    Routing Table Manager 
rtmjpgcdc.dll =    Dual stream codec component 
rtutils.dll =    Routing Utilities 
rududu.dll =    Rududu video codec 
s32evnt1.dll =    Symantec Event Library 
s32stat.dll =    Symantec Drive Status Library 
safrcdlg.dll =    Controles Fichier/Ouvrir et Enregistrer de l'assistance a distance Microsoft PCHealth 
safrdm.dll =    Gestionnaire du bureau du centre d'Aide Microsoft 
safrslv.dll =    Microsoft Help Center Session Resolver 
samlib.dll =    SAM Library DLL 
samsrv.dll =    DLL Serveur SAM 
sbe.dll =    DirectShow Stream Buffer Filter. 
sbeio.dll =    Stream Buffer IO DLL 
scarddlg.dll =    SCardDlg - Boite de dialogue commune de Smart Card 
scardssp.dll =    Smart Card Base Service Providers 
sccbase.dll =    Infineon SICRYPT® Base Smart Card CSP 
sccsccp.dll =    Objets COM fournisseur de cryptographie pour cartes a puce Infineon SICRYPT® 
scecli.dll =    Moteur du client de l'Editeur de configuration de securite Windows 
scesrv.dll =    Moteur de l'Editeur de configuration de securite Windows 
schannel.dll =    TLS / SSL Security Provider 
schedsvc.dll =    Moteur du Planificateur de taches 
sclgntfy.dll =    DLL secondaire de notification de service d'ouverture de session 
scofr.dll =    Ressources de Windows Script Component (r) 
scp32.dll =    Code Page Translation Library 
scredir.dll =    Smart Card Redirection for TS 
scripto.dll =    Microsoft ScriptO 
scriptpw.dll =    ScriptPW Module 
scrobj.dll =    Windows (r) Script Component Runtime 
scrrnfr.dll =    Ressources internationales de l'executable Script Microsoft (r) 
scrrun.dll =    Microsoft (r) Script Runtime 
sdpblb.dll =    Microsoft Sdpblb 
seclogon.dll =    DLL de service d'ouverture de session secondaire 
secur32.dll =    Security Support Provider Interface 
security.dll =    Security Support Provider Interface 
sendcmsg.dll =    Envoyer un message de console 
sendmail.dll =    Envoi du message 
sens.dll =    System Event Notification Service (SENS) 
sensapi.dll =    SENS Connectivity API DLL 
senscfg.dll =    SENS Setup/Setup Tool 
serialui.dll =    Pages de proprietes du port serie 
servdeps.dll =    WMI Snapins 
serwvdrv.dll =    Pilote son serie Unimodem 
setupapi.dll =    Installation de L'API Windows 
setupdll.dll =    Bibliotheque dynamique du programme d'installation de Windows 2000 
sfc.dll =    Windows File Protection 
sfc_os.dll =    Protection de fichiers Windows 
sfcfiles.dll =    Windows 2000 System File Checker 
sfmapi.dll =    Windows NT Macintosh File Service Client 
sg62cpl.dll =    ScanGear Control Panel Interface 
sg62uud.dll =    ScanGear Universal Scanner Driver 
shdoclc.dll =    Bibliotheque d'objets et de controles de documents de l'environnement 
shdocvw.dll =    Bibliotheque d'objets et de controles de documents de l'environnement 
shell.dll =    Windows Shell library 
shell32.dll =    DLL commune du shell Windows 
shellstyle.dll =    DLL des ressources de style Windows Shell 
shfolder.dll =    Shell Folder Service 
shgina.dll =    Windows Shell User Logon 
shimeng.dll =    Shim Engine DLL 
shimgvw.dll =    Apercu des images et des telecopies Windows 
shlwapi.dll =    Bibliotheque d'utilitaires legers du Shell 
shmedia.dll =    Extension de l'interface d'extraction des proprietes des fichiers multimedia 
shscrap.dll =    Gestionnaire d'objets bribes de l'environnement 
shsvcs.dll =    Dll des services Windows Shell 
sierranw.dll =    SIGS DLL 
sigtab.dll =    Parametres d'integrite de fichiers 
simonw32.dll =    SIMON WIN32 Shared Component 
sisbkup.dll =    Single-Instance Store Backup Support Functions 
skdll.dll =    Serial Keys 
slayerxp.dll =    Fichier DLL d'extension de l'onglet Compatibilite 
slbcsp.dll =    Schlumberger Smart Card CryptoAPI Library 
slbiop.dll =    Schlumberger Smart Card Interoperability Library v2 
slbrccsp.dll =    Fichier de ressources CryptoAPI de la carte a puce Schlumberger 
smackw32.dll =    Smacker Video Technology 
smlogcfg.dll =    Composant logiciel enfichable Journaux et alertes de l'Analyseur de performances 
snmpapi.dll =    SNMP Utility Library 
snmpsnap.dll =    Composant logiciel enfichable SNMP 
snwvalid.dll =    SIGS DLL 
softpub.dll =    Softpub Forwarder DLL 
sonydv.dll =    Video for Windows driver for DV 
sonydvau.dll =    Sony Software Codec DLL 
sonydvm2.dll =    Sony Software Codec DLL 
sonydvvd.dll =    Sony Software Codec DLL 
sonydvve.dll =    Sony Software Codec DLL 
spmsg.dll =    Messages du Service Pack 
spnike.dll =    MDM Device Interface for Nike device. 
spoolss.dll =    Spooler SubSystem DLL 
sprio600.dll =    MDM Device Interface for Rio 600 device. 
sprio800.dll =    MDM Device Interface for Rio 800 device. 
spxcoins.dll =    Specialix MPS NT Upgrade CoInstaller 
sqloledb.dll =    Microsoft OLE DB Provider for SQL Server 
sqlsrv32.dll =    Microsoft SQL Server ODBC Driver 
sqlunirl.dll =    String Function .DLL for SQL Enterprise Components 
sqlwid.dll =    Unicode Function .DLL for SQL Enterprise Components 
sqlwoa.dll =    Unicode/ANSI Function .DLL for SQL Enterprise Components 
sqlxmlx.dll =    Microsoft XML extensions for SQL Server 
srclient.dll =    Dll du client SR 
srrstr.dll =    Bibliotheque d'operations Restauration du systeme 
srsvc.dll =    Service de restauration du systeme 
srvsvc.dll =    Server Service DLL 
ssdpapi.dll =    SSDP Client API DLL 
ssdpsrv.dll =    SSDP Service DLL 
stci.dll =    
stclient.dll =    COM Services 
sti.dll =    DLL client de peripheriques d'images fixes 
sti_ci.dll =    Installateur de classes d'images fixes 
stobject.dll =    Objet du service d'environnement Systray 
storage.dll =    OLE 2.1 16/32 Interoperability Library 
storprop.dll =    Pages de proprietes pour les peripheriques de stockage 
streamci.dll =    Streaming Device Class Installer 
strmdll.dll =    Windows Media Services Streamer Dll 
svcpack.dll =    Windows 2000 Service Pack Setup 
swcdvvfw.dll =    Matrox Software Dv Codec DLL 
swcjpegvfw.dll =    Matrox Software JPEG Codec DLL 
swcmpegvfw.dll =    Matrox MPEG-2 codec 
swprv.dll =    Fournisseur logiciel du service Microsoft® de cliche instantane des volumes 
sxs.dll =    Fusion 2.5 
symredir.dll =    Symantec Redirector Interface 
symstore.dll =    Settings Storage DLL 
synceng.dll =    Windows Briefcase Engine 
syncui.dll =    Porte-documents Windows 
sysinv.dll =    Inventaire du systeme Windows 
syssetup.dll =    Installation du systeme Windows NT 
t2embed.dll =    t2embed 
tapi.dll =    Microsoft® Windows(TM) Telephony Server16 
tapi3.dll =    Microsoft TAPI3 
tapi32.dll =    DLL Client de l'API Microsoft® Windows(TM) Telephonie 
tapiperf.dll =    Microsoft® Windows(TM) Telephony Performance Monitor 
tapisrv.dll =    Serveur de telephonie Microsoft® Windows(TM) 
tapiui.dll =    DLL de l'interface utilisateur de l'API de telephonie Microsoft® Windows(TM) 
tcpmib.dll =    Standard TCP/IP Port Monitor Helper DLL 
tcpmon.dll =    DLL moniteur de port standard TCP/IP 
tcpmonui.dll =    DLL interface utilisateur moniteur de port standard TCP/IP 
tekyuv.dll =    
templman.dll =    Xara Wizard Template Manipulator 
templop.dll =    TemplOp Module 
termmgr.dll =    Gestionnaire de terminal Microsoft TAPI3 
termsrv.dll =    Service Terminal Server 
themeui.dll =    API Windows Theme 
tlntsvrp.dll =    Microsoft Telnet Server Proxy Stub 
toolhelp.dll =    Windows Debug/Tool helper library 
traffic.dll =    Microsoft Traffic Control 1.0 DLL 
trkwks.dll =    Distributed Link Tracking Client 
tsappcmp.dll =    Terminal Services Application Compatibility DLL 
tsbyuv.dll =    Toshiba Video Codec 
tsccvid.dll =    TechSmith Screen Capture Codec 
tscfgwmi.dll =    Fournisseur d'infrastructure WMI de configuration des services Terminal Server 
tsd32.dll =    DSP Group TrueSpeech(TM) Audio Encoder & Decoder 
tsddd.dll =    Framebuffer Display Driver 
tx_htm32.dll =    TX Text Control Filter for HTML Format 
tx_rtf32.dll =    TX Text Control Filter for Rich Text Format 
tx_word.dll =    TX Text Control Filter for Word Format 
tx32.dll =    TX Text Control core component 
txflog.dll =    Simple Kernel-mode File-based Log 
txobj32.dll =    TX Text Control OLE container library 
txtls32.dll =    Tool Bars for TX Text Control 
typelib.dll =    OLE 2.1 16/32 Interoperability Library 
ucs32p.dll =    ColorGear 32bit dll 
udhisapi.dll =    UPnP Device Host ISAPI Extension 
ufat.dll =    FAT Utility DLL 
uicom.dll =    Common UI and utility functions 
ulib.dll =    DLL de gestion des utilitaires de fichiers 
umandlg.dll =    UManDlg DLL 
umdmxfrm.dll =    Unimodem Tranform Module 
umpnpmgr.dll =    Service mode utilisateur de Plug-and-Play 
unimdmat.dll =    Mini-pilote AT fournisseur de service Unimodem 
uniplat.dll =    Unimodem AT Mini Driver Platform Driver for Windows NT 
unrar.dll =    
untfs.dll =    NTFS Utility DLL 
upnp.dll =    Universal Plug and Play API 
upnphost.dll =    Hote de peripherique UPnP 
upnpui.dll =    Moniteur et dossier UPNP Tray 
ureg.dll =    Registry Utility DLL 
url.dll =    Raccourci Internet DLL d'extension du shell 
urlmon.dll =    Extensions OLE32 pour Win32 
usbmon.dll =    Standard Dynamic Printing Port Monitor DLL 
usbui.dll =    DLL de l'interface utilisateur USB 
user32.dll =    DLL client de l'API Utilisateur de Windows XP 
userenv.dll =    Userenv 
usp10.dll =    Uniscribe Unicode script processor 
usrcntra.dll =    3ccntry 
usrcoina.dll =    U.S. Robotics modem coinstaller 
usrdpa.dll =    U.S. Robotics data pump manager 
usrdtea.dll =    3cdte 
usrfaxa.dll =    3cfax 
usrlbva.dll =    3clbv 
usrrtosa.dll =    3crtos 
usrsdpia.dll =    3csdpi 
usrsvpia.dll =    3csvpi 
usrv42a.dll =    3cv42 
usrv80a.dll =    3cv80 
usrvoica.dll =    3cvoice 
usrvpa.dll =    U.S. Robotics voice pump 
utildll.dll =    DLL de prise en charge de l'utilitaire WinStation 
uxtheme.dll =    Bibliotheque de themes Ux Microsoft 
vb5db.dll =    Visual Basic ICursor Interface Library 
vb6fr.dll =    Ressources internationales de l'environnement Visual Basic 
vb6stkit.dll =    Visual Basic Setup Toolkit Library DLL 
vbajet32.dll =    Visual Basic for Applications Development Environment - Expression Service Loader 
vbame.dll =    VBA : Middle East Support 
vbar332.dll =    Visual Basic for Applications Runtime - Expression Service 
vboxb410.dll =    Vbox Broker 4.1 
vboxp410.dll =    Vbox Compression 4.1 
vboxs.dll =    Vbox SDK Client DLL 
vboxt410.dll =    Vbox Client 4.1 
vbscript.dll =    Microsoft (r) VBScript 
vbsfr.dll =    Microsoft (r) VBScript - Ressources internationales 
vcdex.dll =    32-bit MSCDEX Virtual Device Driver 
vdmdbg.dll =    VDMDBG.DLL 
vdmredir.dll =    Virtual Dos Machine Network Interface Library 
ver.dll =    Bibliotheques de verification des versions et d'installation de fichiers 
verifier.dll =    Standard application verifier provider dll 
version.dll =    Version Checking and File Installation Libraries 
vfcodec.dll =    ? ?? 
vfpodbc.dll =    vfpodbc 
vfwwdm32.dll =    Pilote VfW MM pour peripheriques de capture video WDM 
vga.dll =    VGA 16 Colour Display Driver 
vga256.dll =    256 Color VGA\SVGA Display Driver 
vga64k.dll =    32K/64K color VGA\SVGA Display Driver 
vidx16.dll =    
vjoy.dll =    32-bit Joystick Virtual Device Driver 
vorbis.dll =    
vorbisenc.dll =    
vp31vfw.dll =    On2_VP3 
vsfilter.dll =    VobSub & TextSub filter for DirectShow/VirtualDub/Avisynth 
vss_ps.dll =    Microsoft® Volume Shadow Copy Service proxy/stub 
vssapi.dll =    Microsoft® Volume Shadow Copy Requestor/Writer Services API DLL 
vsscodec.dll =    VSS Video Codec - Video for Windows driver 
vssconf.dll =    VSS Video Codec 
vsscore.dll =    VSS Codec PRO 
vwipxspx.dll =    Virtual Dos Machine IPX/SPX Interface Library 
w32time.dll =    Service de temps Windows 
w32topl.dll =    Windows NT Topology Maintenance Tool 
w95inf16.dll =    WExtract 16bit Library 
w95inf32.dll =    W95INF32 
wab32.dll =    DLL du Carnet d'adresses Microsoft (R) 
wab32res.dll =    DLL du Carnet d'adresses Microsoft (R) 
wavemsp.dll =    FSM Wave Microsoft 
wdigest.dll =    Microsoft Digest Access 
webcheck.dll =    Controleur de site Web 
webclnt.dll =    Web DAV Service DLL 
webhits.dll =    Indexing Service Webhits 
webvw.dll =    Bibliotheque de contenu et de controle de l'afficheur Web du shell 
wiadefui.dll =    Interface utilisateur par defaut du scanneur WIA 
wiadss.dll =    Couche de compatibilite WIA TWAIN 
wiascr.dll =    WIA Scripting Layer 
wiaservc.dll =    Service de peripheriques d'images fixes 
wiashext.dll =    IU du dossier shell des peripheriques d'acquisition d'images 
wiavideo.dll =    Video WIA 
wiavusd.dll =    Peripherique WIA de flux de donnees video USD 
wifeman.dll =    Composant noyau de l'interface Windows WIFE 
win32spl.dll =    DLL d'API du spouleur 32 bits 
win87em.dll =    
winbrand.dll =    Ressources de personnalisation de Windows 
winfax.dll =    Microsoft Fax API Support DLL 
winhttp.dll =    Windows HTTP Services 
wininet.dll =    Extensions Internet pour Win32 
winipsec.dll =    Windows IPSec SPD Client DLL 
winmm.dll =    DLL API MCI 
winnls.dll =    Windows IME interface core component 
winntbbu.dll =    DLL des ecrans d'installation de Windows 
winrnr.dll =    LDAP RnR Provider DLL 
winscard.dll =    API Microsoft Smart Card 
winsock.dll =    Windows Socket 16-Bit DLL 
winsrv.dll =    DLL serveur de Windows 
winsta.dll =    Winstation Library 
winstrm.dll =    DLL Streams 
wintrust.dll =    API Microsoft de verification de la confiance 
wkssvc.dll =    Workstation Service DLL 
wldap32.dll =    DLL API LDAP Win32 
wlnotify.dll =    DLL commune de reception des notifications Winlogon 
wmadmod.dll =    Corona Windows Media Audio Decoder 
wmadmoe.dll =    Corona Windows Media Audio 9 Encoder/Transcoder 
wmasf.dll =    Windows Media ASF DLL 
wmdmlog.dll =    Windows Media Device Manager Logger 
wmdmps.dll =    Windows Media Device Manager Proxy Stub 
wmerrfra.dll =    Services Windows Media Definitions d'erreurs 
wmerror.dll =    Definitions d'erreurs Windows Media (anglais) 
wmi.dll =    WMI DC and DP functionality 
wmidx.dll =    Windows Media Indexer DLL 
wmiprop.dll =    Co-installateur de la page de proprietes dynamiques du fournisseur WDM 
wmiscmgr.dll =    Gestionnaire de filtres WMI 
wmnetmgr.dll =    Windows Media Network Plugin Manager DLL 
wmp.dll =    Windows Media Player Core 
wmpasf.dll =    Windows Media Filter Shim 
wmpcd.dll =    Windows Media Player 
wmpcore.dll =    Windows Media Player 
wmpdxm.dll =    Windows Media 6.4 Player Shim 
wmploc.dll =    Lecteur Windows Media 
wmpns.dll =    Windows Media Player Applet Support DLL 
wmpshell.dll =    Lanceur du Lecteur Windows Media 
wmpui.dll =    Windows Media Player 
wmsdmod.dll =    Windows Media Screen Decoder 
wmsdmoe.dll =    Windows Media Screen Encoder DMO 
wmsdmoe2.dll =    Corona Windows Media Screen Encoder 
wmspdmod.dll =    Windows Media Speech Decoder 
wmspdmoe.dll =    Windows Media Speech Encoder 
wmstream.dll =    Windows Media Streamer DLL 
wmv8dmod.dll =    Windows Media Video 8 Decoder 
wmv8dmoe.dll =    Windows Media Video 8 Encoder DMO 
wmvcore.dll =    Windows Media Playback/Authoring DLL 
wmvcore2.dll =    Windows Media Playback/Authoring DLL 
wmvdmod.dll =    Corona Windows Media Video Decoder 
wmvdmoe.dll =    Windows Media Video Encoder DMO 
wmvdmoe2.dll =    Corona Windows Media Video Encoder 
wnaspi32.dll =    ASPI for Win32 (95/NT) DLL 
wndtls32.dll =    Control Window Management Tool 
wnpapi32.dll =    wnpapi32 
wnvplay1.dll =    Videum Video Capture 
wow32.dll =    Bibliotheque du sous-systeme WOW 32-bits 
wowfax.dll =    Windows 3.1 Compatible Fax Driver DLL 
wowfaxui.dll =    DLL de l'interface utilisateur du pilote de fax compatible Windows 3.1 
ws2_32.dll =    Windows Socket 2.0 32-Bit DLL 
ws2help.dll =    Application d'assistance de Windows Socket 2.0 pour Windows NT 
wsecedit.dll =    Module interface utilisateur de configuration de securite 
wshatm.dll =    Windows Sockets Helper DLL 
wshcon.dll =    Microsoft (r) Windows Script Controller 
wshext.dll =    Microsoft (r) Shell Extension for Windows Script Host 
wshfr.dll =    Ressources internationales de Microsoft (r) Windows Script Host 
wship6.dll =    IPv6 Helper DLL 
wshisn.dll =    NWLINK2 Socket Helper DLL 
wshnetbs.dll =    Netbios Windows Sockets Helper DLL 
wshrm.dll =    Windows Sockets Helper DLL for PGM 
wshtcpip.dll =    Windows Sockets Helper DLL 
wsnmp32.dll =    Microsoft WinSNMP v2.0 Manager API 
wsock32.dll =    DLL Socket 32-bits Windows 
wstdecod.dll =    WST Decoder Filter 
wtsapi32.dll =    Windows Terminal Server SDK APIs 
wuaueng.dll =    Moteur de mises a jour automatique Windows Update 
wuauserv.dll =    Windows Update AutoUpdate Service 
wzcdlg.dll =    UI du service de configuration automatique sans fil 
wzcsapi.dll =    Wireless Zero Configuration service API 
wzcsvc.dll =    Service configuration automatique sans fil 
xactsrv.dll =    Downlevel API Server DLL 
xaradocg.dll =    XaraDoc Module 
xenroll.dll =    XEnroll 
xfontman.dll =    XFontMan Module 
xolehlp.dll =    MS DTC helper APIs DLL 
xpob2res.dll =    Messages Service Pack 2 OOB 
xpsp1res.dll =    Messages Service Pack 1 
xpsp2res.dll =    Messages Service Pack 2 
xvid.dll =   
zipfldr.dll =    Dossiers compresses


출처 : 부사리의 생각나들이
Creative Commons License
Creative Commons License
Posted by 파랑소리 beatblue

트랙백 주소 :: http://beatblue.tistory.com/trackback/214 관련글 쓰기

  1. Subject: Daily Proxies

    Tracked from Daily Proxies 2012/05/14 08:35  삭제

    지구에매달리기 :: Windows Dll 파일 설명

  2. Subject: hot water heater problems

    Tracked from hot water heater problems 2012/05/14 21:38  삭제

    지구에매달리기 :: Windows Dll 파일 설명

  3. Subject: printer management application

    Tracked from printer management application 2012/05/26 20:41  삭제

    지구에매달리기 :: Windows Dll 파일 설명

  4. Subject: content writing

    Tracked from content writing 2012/07/03 15:45  삭제

    지구에매달리기 :: Windows Dll 파일 설명

  5. Subject: England And Scotland Information On Wiki

    Tracked from England And Scotland Information On Wiki 2014/09/12 17:34  삭제

    지구에매달리기 ::

  6. Subject: pop over to these guys

    Tracked from pop over to these guys 2014/09/20 18:26  삭제

    지구에매달리기 :: Windows Dll 파일 설명

  7. Subject: criminal case cheats

    Tracked from criminal case cheats 2014/09/21 22:46  삭제

    지구에매달리기 ::

댓글을 달아 주세요

  1. Favicon of http://oiledhomemodel.net/hot/bums-on-the-run BlogIcon bums on the run 2008/05/23 04:32  댓글주소  수정/삭제  댓글쓰기

    여기 이것은 뉴스 있다!

  2. Favicon of http://airjordanscheap2013.yolasite.com/ BlogIcon carnyaqqxl 2013/05/24 04:14  댓글주소  수정/삭제  댓글쓰기


    Southern Metropolis Daily: Lu Ni as single slip may cause lasting sorrow -- in new network
    ● media fries Lu Ni to want to leave the message of graceful couplet in heat all the time recently, graceful couplet advocate handsome Ferguson admits, england forward has offerred drop out application.
    Muliniao says: "I am very admire Lu Ni, but he can stay in old Telafude, affirmative. " Manjini says: "I think he can stay in graceful couplet, we did not open an any contracts to him. " Anqieluodi says: "I very respect graceful couplet and Ferguson, this is the problem of themselves. " the bishop of the club that 3 Lunike can join in is experienced, happen to coincide the rumor that the ground denies arrange with Lu Ni.
    Zheng Dashi is " people's Lu Ni " , lu Ni is people's public enemy. England " daily Post " on published Lu Ni personally to say to join in likely the message of graceful city, let him encounter more violent assail. Because,Dennis Law abandons red shoot is with hold the post of newly advocate · of Shuai Shang rice cuts the base of a fruit to should not more, teweisi go to somewhere for shelter because graceful couplet does not [url=http://cheapnikeshoesmax.yolasite.com/]cheap nike shoes[/url] turn,graceful city is membership due is bought outright, lu Ni is different, he can lower his head to be the same as city deadly enemy, the likelihood is for contract of a high pay only.
    Agent Paul · of Lu Ni this Cui Tefu heart should bear abet bad name necessarily. Ferguson contains hot tear to admit Lu Ni heart is departed in the eye on Europe coronal press conference he is in, let a person more the victim that feels the old man is society of a commerce. Graceful city can open the Zhou Xin that gives 250 thousand pound, qieerxi and emperor Ma Ye won't be little too much, because Lu Ni needs the contract that 5 million pound can buy outright him last years only, thereby he manages go to somewhere for shelter of 0 social status. This the wishful thinking of Cui Tefu heart, it is to use this matter to be contended for so that a fertilizer makes an appointment with for Lu Ni probably, but the control range that a got-up affair has exceeded them nowadays.

  3. Favicon of http://www.uggdenmarkonline.com BlogIcon TU6a5d18ju 2013/10/01 16:42  댓글주소  수정/삭제  댓글쓰기

    tilladt at bo hos midlertidige arbejdstilladelser , mske i sidste ende tjene citizenship.however dette viser sig , br én ting vre ndvendige : indvandrere fra noget land , der bliver borgerne skal vre, eller br blive , med rimelighed dygtige i det engelske sprog. twentyseven stater har allerede gjort english deres officielle sprog og ni flere har englishonly regninger pending.discussion af en fderal lov, der gr engelsk er det officielle sprog pvej. det amerikanske senat har kmpet med englishonly lovgivning. sidste uge hus behandlet sprgsmlet om tosprogede afstemningssteder . florida republikanske cliff stearns argumente
    [url=http://www.uggdenmarkonline.com/ugg-liberty-støvler-c-32.html]UGG Liberty Støvler[/url]
    og erfaringer har formet hendes tilgang til journalism.with et smil svarmt som solskin strler i de hje vinduer af denne centuryold kvinders institution huntergault sagde, at hun var velsignet med en vis slags interir, der hjlper hende transcendere en situation og rapportere det retfrdigt. hun kalder det en moralsk compass.the frste sorte kvinde at opgradere fra university of georgia , huntergault siger hendes mor og bedstemor gav hende et vrdisystem , en klar definition af rigtigt og forkert, moralske og umoralske , retfrdig og unjust.her erfaringer ved university of georgia som en af to sorte studerende optaget af fder
    [url=http://www.jakkeonlinedanmark.com/kvinder-moncler-jakker-c-2.html]Kvinder Moncler Jakker[/url]
    fklaring . tage disse skridt vil ogshjlpe , nr du henviser arkiveret emails.the konsekvens er ogsvigtig, da darling fundet ud af, nr hendes e-mail blev videregivet til sin arbejdsgiver : send ikke flsomme oplysninger til nogen, du kan ikke stole for at holde det fortroligt . e-mail er en fremragende teknologi , siger darling , nu er en networking konsulent i boston. det er bare softe misused.admittedly kan alt dette vre svrt at holde styr p. nogle virksomheder har grebet ind med software, der analyserer medarbejdernes kommunikationsmnstre og identificerer , nr de bruger e-mail uproduktivt , siger andrew wolff, vice pr
    [url=http://www.uggdenmarkonline.com/ugg-ultra-høje-støvler-c-33.html]UGG Ultra Høje Støvler[/url]
    s, psamme mde en pokerspiller har brug for chips. da de skynder sig at investere her, de byde dollaren op (hvilket gr importen billigere) , ligesom de pumpe nye penge ind i vores konomi. vores konomi vokser, import er billige ikke underligt, at vi har en rekord handelsunderskud ! i dagens integreret konomi , hvor kapital bevger sig med lysets hastighed , kan handelsunderskud vre en konsekvens , ikke en rsag , og langt mere bredygtig og mindre skadelige , end vi thought.the bundlinjen er ikke desto mindre det : slnge usa er fortsat darling af verdens investorer , kan det have sin kage og spise det ogskan kbe verdens
    [b][url=http://www.jakkeonlinedanmark.com/moncler-halstørklæde-hat-c-15.html]Moncler Halstørklæde & Hat[/url][/b]
    http://www.jakkeonlinedanmark.com

  4. Favicon of http://www.xn--kpsolglasgon-4ibi.com BlogIcon LH2x6c01cc 2013/10/02 03:38  댓글주소  수정/삭제  댓글쓰기

    as en suck av relief.up pgatan r en delhi som , kanske , dessa mnniskor r mer vana vid . smala grnder kantade med tyg kpmn , lukten av degiga pooris steka i olja , glittriga butikerna fulla av chunky guld smycken , cykel rickshaw frare klingande sina klockor fr att rensa vgen framt , och lnga rader av punjabi sikher badar sina hnder och ftter innan en 300yearold tempel fr prayer.some delar av delhi ndras inte .eftersom kampanjen 2000 trder en viktig eightweek period som sannolikt kommer att avgra varje parti presidentkandidat , har de ledande utmanare pltsligt intensifierat arbetet med att differentiera sig frn
    [url=http://www.monclerbilligtrea.com/moncler-jackor-kvinnor-c-3.html]Moncler Jackor Kvinnor[/url]
    rra veckan , har pvissa stt signalerade ankomsten av ett nytt inslag i den lokala politiska kulturen rdsla . ven om inte syns pytan av denna livliga kosmopolitiska stad , skrmseltaktik verkar syftar till inflytelserika personer som talar ppet och fresprka frndring i den lokala beijingbacked government.that lee , inte en radikal , har kunde inte undgptryckningar en chill till prodemocracy lger hr , sger experter . allen r inte vem som helst . han har oklanderliga referenser och han spelar med boken . han har ingen koppling till pengar problem , en frgstark historia , eller triader [ underjordiska ligor ] , sger
    [url=http://www.xn--kpsolglasgon-4ibi.com/prada-solglasÖgon-c-39.html]Prada SolglasÖgon[/url]
    r strre pasadena och urtida huntington botaniska trdgrdar , ofta vrd fr exotiska menageries av djur som kommer stjrna i utstllningar solika som pbs : s zoboomafoo , vilket frde lemurer , och cbs : s survivor , som lyfte riktigt stora pytonormar , kackerlackor och en diapertoting chimp.it ger ockshighheel knppa instllningen fr partier som , sanningen att sga , r dr mycket av det serisa arbete som faktiskt blir gjort . ( jag kan hra dig skratta , men det r sant , det r verkligen . ) vid dessa hndelser , vilket ger alla kreatrer och critters ner frn podiet i en informell miljmed stora spreadar ( oftast ) gan
    [url=http://www.monclerbilligtrea.com/moncler-jackor-kvinnor-c-3.html]Moncler Jackor Kvinnor[/url]
    ndvndigtvis rtt fr en 12yearold pojke eller flicka . jag knner att det r en gemenskap anstrngning att vara en vakthund fr andra barn . '' den attityden ockssporrar lagstiftning fr att begrnsa barns tillgng till vissa videor . i new york , skulle ett lagfrslag fresls med bipartisan std frbjuder biblioteken frn utlning videos med r eller nc17 betyg till barn under 17 utan frldrarnas medgivande . vissa bibliotekarier betraktar sdana tgrder som en form av censorship.robert jacquay , chef fr william k. sanford stadsbiblioteket i loudenville , ny , sger , '' min rdsla r att om vi brjar gra ngot legislativ
    [url=http://www.xn--kpsolglasgon-4ibi.com/prada-solglasÖgon-c-39.html]Prada SolglasÖgon[/url]
    http://www.monclerbilligtrea.com

  5. Favicon of http://www.uggparisenligne.com BlogIcon gfqkhwxw2490 2013/10/02 11:04  댓글주소  수정/삭제  댓글쓰기

    vre de chansons en haut en face d'eux . leurs bouches formés ovales parfaits, et les notes en streaming à partir profond inside.they gardé leurs yeux sur la femme mince avec le pardessus , et je savais que c'était elle qui avait fait cela , elle qui avait l'avait aidé à trouver cet endroit en eux-mêmes où l'équilibre, l'excellence , la discipline et le lived.when de musique la fin du concert , le public resta dans les bancs en bois dur, réticents à retourner dans le monde réel. nous aussi, nous hésitions , ne pensant plus d'un caffe latte, plus conscients de l' air humide dans le marbre church.to ma grande surprise, j'ai éprouvé un sentiment de patriotisme transfixing . pour la première fois depuis de n
    [url=http://www.uggparisenligne.com/ugg-amelie-bottes-c-21.html]UGG Amelie Bottes[/url]
    e trouver ce qu'ils ' faites. les oiseaux jouent deux fois , j'ai vu une approche de corbeau un balbuzard pêcheur adulte encerclant , et ils ont semblé jouer dans l'air. ils ont entouré l'autre, semblaient montrer leurs acrobaties , puis ont dansé en l'air ensemble. il n'y avait aucune affiche de menace , aucun signe de la concurrence . les deux fois , le balbuzard pêcheur a rompu le jeu et retourner à la pêche , comme pour dire: c'est amusant , mais je dois gagner sa vie pour moi et ma jeune , alors peut-être un autre jour day.the après avoir vu le balbuzard pêcheur débutant suivre le dos des parents au nid , cinq balbuzards encerclé l'étang avec beaucoup de bruit vocation. ah , une leon de famille : c
    [url=http://www.doudouneprixvente.com/doudoune-homme-moncler-c-1.html]Doudoune Homme Moncler[/url]
    érer les cots de medicaid tobaccorelated . les entreprises devraient également accepter de bordures rigides en matière de publicité et de payer des amendes si le tabagisme chez les jeunes n'est pas tombé à agreedupon levels.in retour, les compagnies de tabac seraient protégés contre la plupart des procès de classaction et à l'abri de dommages-intérêts punitifs dans les différents lawsuits.washington arrive à regarder l' règlement parce que beaucoup de ses aspects tels que les dispositions de procès exigent passage de la législation nationale . et presque dès le début , les législateurs faisaient sons de mécontentement . beaucoup ont estimé que les parties qui ont négocié l'entente n'ont tout si
    [u][url=http://www.uggparisenligne.com/ugg-knightsbridge-c-12.html]UGG Knightsbridge[/url][/u]
    tecté une de ces petites pinces à usages multiples , elle avait par inadvertance laissé dans son sac à main . c'était une bonne prise. mais elle se rendit compte qu'il avait été dans son sac à main dans un autre aéroport quand elle a commencé son voyage, et la machine de dépistage n'avait pas détecté il . donc, dans cet aéroport , le failed.then du système il ya de telles maladresses que la compensation récente d'un passager du moyen-orient avec un cutter dans son sac à main sur un vol international à destination des états states.all qui suggère que bien que nous soyons préoccupés par afghanistan , l'irak et le conflit palestinianisraeli , il reste encore beaucoup à faire avec l'amélioration et
    [b][url=http://www.doudouneprixvente.com/moncler-accessoires-c-7.html]Moncler Accessoires[/url][/b]

  6. Favicon of http://www.parisdesbottes.com BlogIcon ybghjord6716 2013/10/02 12:52  댓글주소  수정/삭제  댓글쓰기

    caché , par exemple, aspire l'air de la maison pour déterminer comment fuit une maison is.mr. l'inspecteur de mayer a pris plus de deux heures à pointer à travers la maison vermont avait l'intention d' acheter . il a vu mon four et se mit à rire , mayer rappelle . quand il a mis en place le test d'infiltrométrie , mayer est allé à la porte arrière . l'air qui entrait était incroyable , il says.to trouver un inspecteur de bonne réputation , les experts suggèrent de demander à votre utilité pour les entrepreneurs avec lesquels elle travaille . recherchez les inspecteurs avec une certification nationale, comme le système home energy rating , ou de certification similaire à partir de votre état. évitez le
    [url=http://www.bottesfrancemagasin.com/ugg-bottes-bind-ultimate-c-3.html]UGG Bottes Bind Ultimate[/url]
    geldin . alors que la poussée de la banque dans la dépollution et la protection des ressources naturelles dans les pays en développement a attiré l'attention récemment , la volonté de l' institution à s'interroger sur les hypothèses économiques longheld peut devenir plus responsables controversial.bank semaine dernière s'est joint aux représentants du fonds mondial pour la nature , l'union mondiale pour la nature , et la national wildlife federation de proposer un projet de plan d' action. ceci déclare que le système actuel d'indicateurs macro-économiques, comme le pib , encourage l'activité économique qui épuise les ressources naturelles à un rythme insoutenable , la productivité de dommages nature,
    [b][url=http://www.parisdesbottes.com/5245-ugg-ultra-tall-boots-c-6.html]5245 UGG Ultra Tall Boots[/url][/b]
    governmentowned inefficace de ces étapes , avec le plan de dollarisation , sont mises en uvre par le gouvernement. l'efficacité de ces changements est encore à voir , mais les gens ont bon espoir qu'elles porteront leurs fruits bientt. en outre , le gouvernement doit avoir une stabilité politique pour faire passer les politiques budgétaires strictes nécessaires pour une véritable économie reform.if président gustavo noboa et son administration ne contribuent pas à equatoriens accord avec les compromis difficiles de la dollarisation et les autres réformes, telles que la réduction en public gaz, téléphone, et les subventions à l'électricité , ils peuvent se trouver confrontés à une répétition de dé
    [url=http://www.bottesfrancemagasin.com/ugg-boot-kid-c-1.html]UGG Boot Kid[/url]
    tait pas concevable qu'il deviendrait un candidat. alors que nous avons continué à poser des questions sur ses aspirations présidentielles , il a déclaré sa candidature n'était pas perceptible . et au moment où kennedy sortait de notre salle de club de la presse ce matin , il avait clairement jeté son chapeau dans l' ring.there eu d'autres petits déjeuners kennedylike au fil des années , où les grandes histoires ont développé à partir de ce que le client dit. mais l'histoire kennedy encore est cité comme le plus grand nouvelles du petit déjeuner scoop.i pense que notre réunion du groupe depuis 1972 dans un htel maintenant appelé the st. regis fait beaucoup plus que débusquer grands reportages de tem
    [url=http://www.parisdesbottes.com/ugg-classic-argyle-knit-5806-c-51.html]UGG Classic Argyle Knit 5806[/url]

  7. Favicon of http://www.kleidungvonhollister.com BlogIcon abjnsxek5168 2013/10/02 13:55  댓글주소  수정/삭제  댓글쓰기

    ein eigenes bett macht produziert , faltet seine kleider und legt sie weg , und macht gute nutzung der wschekorb . ich habe vor kurzem bemerkt jedoch, dass einige der spielzeuge in seinem zimmer , aus mangel an raum , wurden auf den regalen für liebes life.in ein versuch, vor der welle bleiben hngen , ich habe kürzlich gesagt, anton , wir würden zu durchlaufen seinen regalen und aufrumen ein bisschen. dann kam die groe ernüchterung. ich nahm eine vorschule abc puzzle aus dem regal und fragte ihn: sollen wir diese weg antons augen füllten sich mit tears.what ' s losich fragte him.you verstehe nicht , sagte er, lieseine kleine hand über das puz
    [i][url=http://www.mbtgunstigonline.net/frauen-flaming-mbtschuhe-c-1_2.html]Flaming MBT-Schuhe[/url][/i]
    k zu diesem gurke. erst gestern nachmittag meine frau und ich teilten uns eine weile zu fudie umgebung , wobei klare, resonante beit , wie wir die krokusse beginnen, durch den boden brechen betrachtet. ich spürte eine pltzliche freudigkeit , eine freude ich zunchst auf die gurke zugeschrieben , bis ich , wie hungrig ich hatte in den letzten wochen für etwas anderes als den farben braun und grau werden realisiert . pltzlich war die welt grünt : hecken, bume und das gras longdormant wurden erzeugung eines pltzlichen ruck des euphorischen sensorische stimulation nach so vielen monaten der akuten farbe deprivation.all diese restaurative farbtne und d
    [url=http://www.kleidungvonhollister.com/hollister-tanks-camis-damen-c-27.html]hollister Tanks & Camis Damen[/url]
    heimpolizei ] zu erkennen und stren terrorismusfinanzierung , sagte john pistole, stellvertretender direktor des fbi- anti-terror- abteilung , in einem 25. september senatsausschuss hearing.moreover , die saudis haben regelungen zur eindmmung der cashflow geführt , vor allem an wohlttigkeitsorganisationen , die im verdacht der finanzierung terrorism.moreover saudi-arabien hat eine 1.700 jahre alte religise praxis der herstellung von bargeld sammlungen in moscheen und einzelhandel verboten . und es hat sich gezielt und ffentlich genannt einige geschftsleute , die heute als jeddah hndler bekannt , die angeblich groe mengen von bargeld haben , um al qa
    [b][url=http://www.mbtgunstigonline.net/frauen-mbt-amali-c-1_3.html]MBT Amali[/url][/b]
    s wird ein web bilden die wertentwicklung des aktienmarktes in einem bestimmten land oder einer region . webs verkaufen wie aktien über die wichtigsten us exchanges.what lnder sind vielversprechendsten für das jahr 1997 europa, das seine mrkte steigen durchschnittlich 20 prozent im letzten jahr gesehen haben, wird erwartet, dass mehr bescheidene gewinne zu sehen. firmen gibt es umstrukturierungen, die helfen knnte. einige analysten erwarten mrkte in grobritannien, deutschland, spanien , skandinavien, frankreich und mglicherweise gut zu tun . aber ansichten unterscheiden . mr. chalasani mag portugal , italien, australien , argentinien, china , indon
    [b][url=http://www.kleidungvonhollister.com/hollister-vneck-herren-c-28.html]hollister V-Neck Herren[/url][/b]
    http://www.mbtgunstigonline.net

  8. Favicon of http://www.pascherdesbottes.com BlogIcon njxvvrqk1179 2013/10/02 14:45  댓글주소  수정/삭제  댓글쓰기

    te beaucoup de choses n'ont plus d'importance . voulez-vous savoir , par exemple, comment mesurer foin en vrac dans un tondre publié en 1901, il est un guide vers le succès par des faits et des chiffres. il ne montre aucun prix , mais ne dire qu'il ne peut être fait uniquement par abonnement et a été préparé par le professeur jl nichols . il comprend des formes juridiques de sorte que vous pouvez dessiner votre propre testament, les biens de transfert, prêter de l'argent , et faire des contrats . il dispose de tables de interestrate et des directions de quickreckoning de pieds-planche , des paquets de bardeaux et de blé dans une pile. et 10 caisses de pommes en bonne forme, à boot.it dit , parmi tant d'autr
    [url=http://www.pascherdesbottes.com/ugg-métallique-pas-cher-c-15.html]Ugg Métallique Pas Cher[/url]
    face aux problèmes de transparence et de sécurité soulevées depuis septembre . 11. le lundi , les responsables olympiques ont annoncé qu'ils avaient élaboré des plans pour accrues de nombreuses faons security.in , les préoccupations voici simplement un reflet de ceux à travers le pays , seulement amplifié. dans le même temps , les citoyens ont du mal à passer à autre chose et d'embrasser pleinement ce que devrait être l'un des plus beaux moments de leur première pensée history.my était : qui va jamais à bombarder l'utahpuis j'ai pensé à des jeux olympiques , explique wendy crowther, un résident du lac de sel plongeon dans et hors des magasins silverrushera ici avec son mari et son fils . les ge
    [url=http://www.parismonclerdoudounes.com/doudoune-moncler-homme-c-4.html]Doudoune Moncler Homme[/url]
    aluer la beauté de tout ce que la mer se trouve devant elle.pour les deux favori centriste alejandro toledo et son adversaire de gauche, alan garcia, le plus grand rival est qu'aucun des above.according de récents sondages d'opinion , le nombre d'électeurs qui se méfient les deux candidats et le plan de jeter votes blancs ou nuls est rising.analysts disent cette tendance menace de quitter le gagnant avec un faible mandat qui pourrait prolonger l'instabilité politique et économique du pérou a souffert depuis que l'ancien président alberto fujimori a fait une troisième run inconstitutionnelle à la présidence de dernière year.a sondage menée par l'université nationale d'ingénierie et publié samedi montre q
    [i][url=http://www.pascherdesbottes.com/ugg-mayfaire-pas-cher-c-14.html]UGG Mayfaire Pas Cher[/url][/i]
    ibles fossiles et de limiter les prix fossilfuel . notre balance commerciale s'améliorera. nos industries des énergies renouvelables se développeront . notre sécurité nationale sera renforcée . pourquoi attendre pour faire de la création d'une économie de cleanenergy une priorité john j. berger est une énergie et naturalresources consultant et auteur de charge à venir : the business of renewable energy et ce qu'il signifie pour l'amérique ( university of california press, 1998 ) .surtout dans la première partie de ce siècle , les périodes de bouleversements politiques et sociaux ont prouvé , en même temps , pour être époques de vitalité intellectuelle exceptionnelle. première guerre mondiale et
    [i][url=http://www.parismonclerdoudounes.com/pulls-moncler-homme-c-11.html]Pulls Moncler Homme[/url][/i]
    http://www.parismonclerdoudounes.com

  9. Favicon of http://www.shirtvonralphlauren.com BlogIcon ogumztrb1878 2013/10/02 16:02  댓글주소  수정/삭제  댓글쓰기

    nd nicht als etwas, das mit einem high-school -diplom oder einen hochschulabschluss stoppt . um in den neuen arbeitsmarkt markt zu konkurrieren , sollten die mitarbeiter nehmen mglichkeiten, alles, was sie knnen über die ausrüstung , technologie und systeme mit denen sie arbeiten lernen . viele arbeiten jetzt in der computer-industrie , zum beispiel , begann mit computern in einer früheren profession.employees profitieren auch sie von irgendeinem retirementsavings plan angeboten von ihrem arbeitgeber , und wenn man nicht verfügbar ist, sollte eingerichtet individual retirement accounts . weniger ausgaben vor allem laufen bis kreditkarte schulden und me
    [u][url=http://www.billigerstiefelde.com/ugg-boots-ultra-c-24.html]Ugg Boots Ultra[/url][/u]
    n hochauflsendes bild von einem auge zu einem eyescanner und die beckenendlage security.the gleichen leute, die schmieden stateissued führerscheine heute werden schmieden federalized führerscheine nach dieser bestimmung in kraft tritt , sagt gregory nojeim , von die aclu in washington legislative büro. der preis wird steigen , aber der anreiz , um die flschung zu gehen als well.nor ist das fehlen einer zentralen datenbank jeder komfort , sagt herr nojeim . die privacyinvasive wirkung einer zentralen datenbank kann durch standardisierung des ausweises erfolgen , weil es interoperable.it ' s wird , dass grere bild, das solove und andere , was er der ers
    [url=http://www.shirtvonralphlauren.com/ralph-lauren-schuhe-c-36.html]Ralph Lauren Schuhe[/url]
    t , sie zu bezahlen ist , wo menschen das gefühl durchschnitt sind das knirschen . und doch bekommen sie bezahlt , ohne das geld radelte durch hamasrun büros sieht eine komplizierte aufgabe sein . die pa hat einige 165.000 gehlter zu zahlen, von lehrern und gesundheitspersonal zu sanitren einrichtungen und personal policemen.nasser taboub , general manager von al aqsa islamic bank , sagt zahlung der gehlter erfordert die zusammenarbeit von mindestens zwei büros unter hamas- kontrolle. das personal -büro unter hamas premierminister ismail haniyeh'soffice wei, was beamte in frage kommen und wie viel sie schuldig sind , whrend alle details im zusammenh
    [url=http://www.billigerstiefelde.com/ugg-boots-mehochic-c-15.html]Ugg Boots Mehochic[/url]
    r jahre brachte aids. neuere ngste haben sich auf jugendgewalt und seine verherrlichung in rap music.until den letzten jahren konzentrierte sich jedoch , lassen wir unsere kinder zu navigieren diese gefahren von sich. wir haben keine wahl . ausgehen soll weg von der zustndigkeit der mama und papa , zumindest für ein paar stunden. wir hatten immer zu wissen, wo du wolltest , natürlich , und wenn etwas schief gelaufen ist , sie sollten zu nennen . aber du hast uns nicht angeleint , 24/7 , in einem drahtlosen netz der elterlichen surveillance.and keinen fehler machen : handys sind ein mechanismus der überwachung. das ist, warum mehrere trger jetzt bieten
    [url=http://www.shirtvonralphlauren.com/polo-lacoste-longman-c-33.html]Ralph Lauren polo lacoste Longman[/url]

  10. Favicon of http://www.northfacepaschervente.com BlogIcon ntwflnju6632 2013/10/02 16:32  댓글주소  수정/삭제  댓글쓰기

    joliet , dans l'illinois et 206 pour cent à new bedford, mass.we êtes juste prier pour une saison de vacances très généreux , dit trudy brubaker , directeur des services de développement communautaire de l'eglise évangélique luthérienne d' amérique ( elca ) . avec autant de demandes que nous avons, nous n'avons pas plus de money.reasons pour réduire donnant varier de revenus maigres à la colère au bureau scandale sexuel de l'eglise catholique à craindre dans les milieux musulmans d'être affilié à un organisme de bienfaisance sous la surveillance du gouvernement. de plus, certains organismes de bienfaisance ne se remit jamais le 11 septembre , lors de la sympathie pour les victimes du terrorisme a laiss
    [b][url=http://www.northfacepaschervente.com/north-face-femme-c-18.html]North Face Femme[/url][/b]
    est devenu une sorte de goulot d'étranglement immigrant , avec un maximum de 2 millions d' immigrés wouldbe de toute l'afrique et le moyen-orient actuellement en attente là pour une place sur un bateau pour europe.asma n'est qu'un des beaucoup débraillé clandestini qui ont dit des conditions horribles dans le désert à l'extérieur de tripoli. elle a décrit être enfermé dans un hangar avec sa famille pendant des jours que jeeploads de gens de différents pays ont continué à arrive.they nous tenait tous là , sans nous laisser sortir , gronder quelqu'un qui a demandé à toutes les questions , asma dit aux journalistes à lampedusa. nous sommes restés là pendant quatre jours. d'autres personnes étaient en
    [u][url=http://www.vestesensoldes.com/canada-goose-accessoires-c-4.html]Canada Goose Accessoires[/url][/u]
    de confiance que les etats-unis n'a vraiment changé et est désormais mis sur la collaboration avec la communauté internationale.intéressé à voir le tunnel halfmile handdug par les forces et les bénévoles en 1993 le gouvernement de bosnie de relier la ville assiégée de territoire governmentheld , nous visitons l' office de tourisme de sarajevo pour demander aux jeunes 20something directions.a nous donne une brochure avec une carte baclée et aucun numéro de téléphone de contact et puis nous oriente vers habilement attractions du centre-ville . puis-je vous suggérer de consulter ces églises dit-il, encerclant quelques points de repère sur les map.such tentatives ville de rediriger les touristes laisse
    [url=http://www.northfacepaschervente.com/canada-goose-femme-c-3.html]Canada Goose Femme[/url]
    répondu avec un sourire et un éclat de rire : pourquoi passa seule critique était qu'il était seul cté . je pense qu'il devrait y avoir un certain m. tibet.après près d' un mois de combats , la plupart des villages musulmans long de la frontière entre le liban et isral ont été abandonnés , leurs habitants rejoindre le flux des réfugiés nord de remplissage écoles et des parcs dans et autour de beyrouth. mais quelque 500 résidents de dibil ont choisi de rester , une décision risquée ancrée dans un attachement obstiné à leur domicile et la conviction que ce village chrétien ne sera épargné le pire de l'attaque dirigée contre l ' hezbollah chiite enemy.there d'isral ne hezbollah ici . tout ce
    [b][url=http://www.vestesensoldes.com/canada-goose-femme-c-2.html]Canada Goose Femme[/url][/b]

  11. Favicon of http://www.jackenvonkaufen.com BlogIcon mzkallyf0214 2013/10/02 18:07  댓글주소  수정/삭제  댓글쓰기

    ina des kontinents hat die zweitgrte volkswirtschaft . mit ihm krnklich , hat die region die grte volkswirtschaft gehofft brasiliens würde die anderen heben . aber die wahl von luiz inacio lula da silva als prsident von brasilien fügt unsicherheit . brasilianer haben für einen grundlegenden wandel gestimmt haben, aber die mrkte und brasilianischen hauptstadt kann anders stimmen , und lula -anhngern kann nicht mehr patienten als auslndische investoren. wenn brasiliens wirtschaft spiralen nach unten, dann ganz südamerika folgen würden. chile das nachhaltige wachstum konnte nicht anfangen, die echte krise versetzt , dass der gesamte kontinent wür
    [url=http://www.uggstiefelinberlin.com/handtaschen-c-6.html]Moncler Handtaschen[/url]
    spekt von einem vielfltigen angebot an figuren, von prsident ronald reagan , kubas fidel castro.though der papst nicht mehr befehle armeen aufgefordert joseph stalins berühmte abweisend frage der papst ! wie viele divisionen hat er denn seine autoritt knnen armeen in ihren tracks zu stoppen : hitler hielt seine truppen aus dem vatikan . und den spten papstes 26 jahre regierungszeit angeboten erhebliche beweise für die macht der ideen zu politischen landschaften ebenso radikal ndern, wie infantry.nowhere war dies deutlicher als in johannes pauls heimatland polen, wo seine predigten bei einem besuch im jahr 1979 inspirierten gegner der kommunistische
    [url=http://www.jackenvonkaufen.com/moncler-herren-moncler-herren-sweaters-c-1_5.html]Moncler Herren sweaters[/url]
    konflikt zu lsen, befürwortet. aber er sagte auch, dass israel derzeit keinen lebensfhigen verhandlungen partner.bernard reich, ein george washington university spezialist, der in der nhe von verwaltung denken auf der israelipalestinian konflikt ist , sagt, dass die bush-administration unterstützt die abzugspolitik , haben wir nicht an gegangen die idee, dass diese alles friert else.what geschehen kann , herr reich fügt , ist benachrichtigung durch zuverlssige sprecher , dass sharon den umgang auf der dorniger ausgabe der west bank auf sptere jahre und zukünftige israelische governments.in seinen ausführungen weisglass verlassen will auch gesagt, d
    [url=http://www.uggstiefelinberlin.com/handtaschen-c-6.html]Moncler Handtaschen[/url]
    . geschichten über eine reise oder quest ins unbekannte , ob es die hohe see , fernen lndern oder dem weltraum ist es schn zu sehen und ansprechend, vor allem für junge menschen , sagt jim farrelly , professor für englisch an der university of dayton in ohio. sie bieten einen ausweg . es ist ein auswuchs der adventurebased filmen wie \" herr der ringe \". aber bigsplash filme nicht garantiert an den kinokassen erfolgreich zu sein, sagt paul dergarabedian der aussteller relations in encino, kalifornien filmemacher knnen sie das thema als uerst filmischen , aber das schreiben, schauspielern und vermarktung alle haben , dort zu sein , er says.the berü
    [i][url=http://www.jackenvonkaufen.com/moncler-herren-moncler-herren-pants-c-1_4.html]Moncler Herren pants[/url][/i]

  12. Favicon of http://www.parisacheterbottes.com BlogIcon dhxxniaa7719 2013/10/02 18:21  댓글주소  수정/삭제  댓글쓰기

    me vieilles personnes formées pour restreindre l'accès à l'information, à communiquer aussi peu que possible '' , déclare matt lyon de l'université de pittsburgh , qui coordonne un projet à budapest pour connecter les écoles de diplomatie dans huit pays d'europe orientale . '' l'internet est l'antithèse de cela. certaines personnes trouvent qu'il est vraiment menaant '' , at-il ajouté , expliquant que beaucoup de gens qui ont grandi sous communiste orthodoxe régimes de toujours chérir le contrle de l'information. '' email est déjà la méthode de communication préférée ici , '' dit professeur d'informatique peter hanak d' l'université technique de budapest. '' en raison des lacunes dans nos systèmes
    [url=http://www.parisacheterbottes.com/ugg-xstripe-tall-c-72.html]UGG X-Stripe Tall[/url]
    savait que la clé de sa prévision était ses hypothèses : ce que l'économiste de brokeragehouse pourrait supposer au sujet des éléments de l'économie qui ont été régies par la politique souhaitez congrès et le président équilibrer le budget quelle serait la réserve fédérale faire toute l'année bien sr , straszheim n'est pas le seul à essayer d'obtenir sous les données économiques. derrière presque chaque prévision économique écrit ou diffusé ces derniers jours est un ensemble de prévisions assumptions.the diffèrent selon les différents poids économistes mis sur des choses différentes, explique bob eggert , qui dirige blue chip economic indicators à sedona , en arizona , qui suit l'
    [i][url=http://www.acheterdesbottes.com/ugg-femmes-coquette-c-13.html]UGG Femme's Coquette[/url][/i]
    t anticipé, poussant le dow jones industrial average sur la fusion level.the 9000 intervient à un moment où le ministère de la justice est en train de remettre en cause de telles combinaisons énormes dans l'industrie pharmaceutique et les industries de défense . il ya deux semaines , le ministère de la justice a demandé à un tribunal d' empêcher la fusion de lockheed et northrop.in cette fusion 8,3 milliards de dollars , cependant, les deux entreprises ne sont pas en concurrence les uns contre les autres dans de nombreux domaines et ils ont une portée mondiale . partout où il ya un bureau des voyageurs de citibank, ou un atm citibank, il y aura un énorme concurrent avec une taille énorme , la puissance du
    [url=http://www.acheterdesbottes.com/ugg-classic-short-c-2.html]UGG Classic Short[/url]
    leur grain . le boycott réduit publicité de plus de 15 pour cent et la circulation de plus de 30 pour cent. mais même ces coups n'étaient pas assez grand. dans le dernier trimestre de 1996 , l'agence a transformé un contraste profit.in , après des négociations ont été rompues jeu de gestion en branle un plan de grève détaillée. plus particulièrement, l'agence a apporté dans le personnel d'autres journaux dans les deux chanes et des travailleurs de remplacement embauchés . nous sommes convaincus que l'entreprise [ lecteurs et annonceurs ] peuvent se développer en arrière , nous ne savons pas comment rapidement , explique susie ellwood, vice-président de detroit newspapers.the syndicats doivent apprend
    [url=http://www.parisacheterbottes.com/ugg-cayha-c-41.html]UGG Cayha[/url]

  13. Favicon of http://www.monclerdoudouneachat.com BlogIcon yemlzekm1725 2013/10/02 20:11  댓글주소  수정/삭제  댓글쓰기

    curité sociale un peu à venir un peu plus près le dossier de l' économie des 40 dernières années. cet exercice met le système dans le noir pour l'actuaire en chef du gouvernement le 75 prochain years.britain s ' , christopher daykin , qui concerne le système de sécurité sociale états-unis comme en meilleure forme financière que la plupart des systèmes de sécurité sociale dans le monde . il peut prendre tout à fait de petits ajustements à faire sonner pour le long terme , dit-il dans un interview.whether de téléphone syndics de sécurité sociale tiennent compte de l'une des bonnes nouvelles économiques dans leur mars ou avril rapport reste à voir . les fiduciaires vont maintenant comprendre certain
    [i][url=http://www.ventedoudounefemme.com/moncler-2012-moncler-armoise-c-1_3.html]Moncler Armoise[/url][/i]
    , les images sont une indication de la faon dont la commercialisation de everclearer images satellites promet d' remodeler le landscape.never diplomatique mondial avant sont des organismes privés pu acheter des photos satellite de telle qualité et le détail de nouvelles superbirds peut distinguer les objets de la taille d'un réservoir. en outre, avec plus de satellites commerciaux à la hausse chaque année , l'occasion d'avoir acheté des images est seulement tour increasing.in , le marché émergent des images highresolution se heurte à des questions de vie privée et de la souveraineté nationale que les pays craignent que des informations précieuses pourraient être vendue au plus déploiement bidder.the de
    [url=http://www.monclerdoudouneachat.com/moncler-enfant-doudoune-moncler-enfants-c-9_10.html]Doudoune Moncler Enfants[/url]
    l'autobus, et alfredo commencé le processus improbable de tourner autour dans le désordre marécageux de la cour avant . après un vaillant effort , il a été indéniablement coincé . le leader du groupe, johnny el bonbon , et ses roadies enlevèrent chemises immaculées du parti et est allé travailler avec des pelles , criant joyeusement instructions à l'autre comme ils ont jeté gravier sous les pneus . le moteur a couru , les roues filaient , et des masses de boue arqué à travers la bruine . avec un rugissement, le bus a finalement glissé vers l'avant et a commencé à redescendre le même road.we jalonné une table en plastique sous un toit temporaire de tle ondulée et éperonné nos parapluies comme de
    [u][url=http://www.ventedoudounefemme.com/moncler-pantalon-c-247.html]Moncler Pantalon[/url][/u]
    que je ne pouvais pas supporter le regard des gens sur moi quand je suis entré dans la cafétéria et cherché un siège. et de cette faon parmi d'autres , je suis comme mon mother.but maintenant je l'ai montré pour son 72e anniversaire avec la surprise d'une nouvelle combinaison pour un voyage qu'elle et moi prenons à hawaii. maman n'a jamais été du genre à chercher des aventures faune . en vacances en famille aux carabes quand j'étais adolescent , mon père et je passais des heures à la plongée en apnée , de retour avec des histoires de murènes , barracudas et des bancs de calmars. maman est resté sur le rivage , affirmant qu'elle ne fasse trop froid , mais je souponne qu'elle était reconnaissante pou
    [url=http://www.monclerdoudouneachat.com/moncler-homme-c-5.html]Moncler Homme[/url]

  14. Favicon of http://www.canadagoosevestetilbud.com BlogIcon alyxwipy3492 2013/10/02 20:17  댓글주소  수정/삭제  댓글쓰기

    ing 60 procent af det voksende amerikanske hispanic population.but tro mod sin stil, er fox besger toledo og hans kone, martha , er ledsager laura bush til en enorm mexicanamerican samfund i chicago med lige gevinst i mind.rewards tilbage homefox , hvis forslag om skat og energi reform bl.a. har ramt slbesko i mexico under montering politiske opposition og en uddybning af det konomiske tilbageslag , kender en god fremvisning i usa vil spille godt hjemme . fox regner ligeledes usa, som er blevet imponeret over hans demokratiske akkreditiver som den frste mexicanske prsident valgt fra oppositionen , for at hjlpe projektet mexico
    [url=http://www.jakkeronlinedk.net/kvinders-north-face-jakke-c-10.html]Kvinders North Face Jakke[/url]
    ister er konkurrencedygtige , og en del er, at de nsker deres lastbil til at vre farverigt , sde kan slge det senere til en hjere pris , siger shafi . det vigtigste ampamp8230 er, at folk betaler mig for at gre det beautiful.times har ndret sig pandre mder. nasir khan plejede at have koranvers phans lastbil. nu har han blomster , finker , pfugle , leoparder, lver, og lejlighedsvis filmstjerne. adspurgt om han bekymret for, at al denne billedsprog var bare en smule afgudsdyrkende , da islam forbyder udtrykkeligt skildringen af levende ting , khan grins.we er muslimer , ja, men vi er ogspakistanske , siger han. nr
    [i][url=http://www.canadagoosevestetilbud.com/canada-goose-jakke-børn-c-3.html]Canada Goose Jakke Børn[/url][/i]
    da hun dukkede op ingenting , tog jeg lobo.now vi er her, bare os to meget af tiden . jeg har forsgt at besvare sprgsmlet , kan en kat blive trnet hun har forsgt at besvare sprgsmlet , kan et menneske blive trnet vi er kommet op med lignende svar , ja, inden limits.i nsker ikke lobo i mit studie , nr jeg ikke er der. hun blev viklet ind i computeren ledninger , og hvis det sker, nr jeg ikke er der , hun kunne komme til skade , og break -udstyr. hvis jeg ikke er her for at fortlle hende om ikke at , hun fr op pmit arbejde overflader og ligger pmanuskripter . jeg er sikker pen geners belgning af kattehr ikke
    [url=http://www.jakkeronlinedk.net/kvinders-north-face-jakke-c-10.html]Kvinders North Face Jakke[/url]
    e beslutninger mr. olmert str i hans tidlige dage som israels fungerende premier.beyond , at olmert str sin egen hrde valgkamp i det israelske nationale afstemning er planlagt til 28. marts . han var en af en rkke israelske politikere, der i slutningen af november , tiltrdte sharon i at forlade likud-partiet til at oprette en ny , midtersgende parti kaldet kadima ( fremad ) . kadima ogstiltrukket nogle tal fra arbejderpartiet , herunder veteran labor leder shimon peres.without den karismatiske og kraftfuld sharon i spidsen af den nye parts perspektiver i marts, er usikre. sidste sommer , et stort flertal af det israelske
    [url=http://www.canadagoosevestetilbud.com/canada-goose-parka-herre-c-7.html]Canada Goose Parka Herre[/url]

  15. Favicon of http://www.billigejakkemoncler.com BlogIcon lpciqprh2586 2013/10/03 01:11  댓글주소  수정/삭제  댓글쓰기

    ulere tatovering end at forevige de underjordiske market.as lovgiver debatter tatovering , tuttle frets , at tiden er af afgrende betydning. en superior court dommer har allerede hrt en sag om tatovering forbud og kunne regere at tillade praksis, fr massachusetts lovgivere har nogen forskrifter place.the tilflde tndes forfatningsmssige sprgsml om ytringsfrihed , med aclu hvder tatovering er beskyttet i henhold til frste ndring og dermed ikke kan kvles af statens law.people der har tatoveringer bruge deres krop som billboards til at udtrykke deres synspunkter til verden : hvem de elsker , som de hader , ... deres religis
    [url=http://www.billigejakkemoncler.com/børn-moncler-jakke-c-1.html]Børn Moncler Jakke[/url]
    ring.two programmer, som fokuserer strkt pgteskabet ( snarere end pmere generiske diskussioner af relationer ) portrtteres gteskabet som en risikabel og conflictridden institution. disse programmer ogsundgik enhver dybere diskussion af gteskabelige roller, kunne tvinge dem til kn specificity.instead et rigere diskussion om mothering og fadder , de tilbd temmelig lavvandede oversigter af forldrerollen . i stedet for at tale om gtemnd og hustruer , de ofte brugt udtrykket partnere. i sin solicitousness at dukke egalitre , et program specielt benlyst klandret knsroller gr afsigelsen at gtemnd br dele huslige plig
    [i][url=http://www.dunjakke2013.com/kvinder-moncler-frakker-c-2.html]Kvinder Moncler Frakker[/url][/i]
    der , vil listen skal offentliggres i oktober vre mindre vrd end de anslede 42 millioner dollars i juli- listen , hun adds.embarrassment mountsas hjulene i schweiziske bank maler langsomt i retning af offentliggrelse , ser det ud mere og mere usandsynligt , at sidste mneds fortilflde udgivelse af lister vil vre det sidste ord. dagen efter juli listerne dukkede op, for eksempel , meddelte en af schweiz ' tre top banker , at det havde fundet en ekstra $ 11 mio 55 longdormant accounts.embarrassment monteres som det blev kendt , at moderen til den amerikanske ambassadr i schweiz, madelein kunin , var blandt dem listed.accusat
    [u][url=http://www.billigejakkemoncler.com/moncler-tørklæde-cap-c-12.html]Moncler Tørklæde & Cap[/url][/u]
    g til muslims.in en artikel i bladet udenrigsministeriet , isobel coleman, en ekspert pemnet , siger, at sharia er ben for en bred vifte af forstelse og at hele den muslimske verden i dag, er progressive muslimer sger at fortolke sine regler for at rumme en moderne rolle women.this kan forklare den noget overraskende modtagelse karen hughes fik fra muslimske kvinder i saudi-arabien sidste r. ms hughes , lang en central politisk rdgiver for prsident bush , er blevet vicesekretr for public diplomacy i udenrigsministeriet . en vsentlig del af hendes opgave er at gi dialog med den muslimske verden. fornuftigt, hun opsgte mu
    [url=http://www.dunjakke2013.com/kvinder-moncler-vest-c-8.html]Kvinder Moncler Vest[/url]
    http://www.dunjakke2013.com

  16. Favicon of http://www.sverigemoncler.com BlogIcon LA6l4a06dp 2013/10/03 01:32  댓글주소  수정/삭제  댓글쓰기

    rocess . det finns en standard fr prestanda sk aktiegarvrde , sger gail fosler , chefekonom vid conference board i new york.chief befattningshavare inte ndvndigtvis gra sina uppsgningar beslut lttvindigt , sger ms fosler . amerikanska fretag vore isolerade frn hrd konkurrens under mnga decennier , och eftersom ekonomin blir mer globala och konkurrensen kar , kan fretagen inte lngre har rd med de genersa personal strukturer past.companies vill lngsiktig verlgsen lnsamhet , sger fosler.in faktum , takten i global konkurrens och affrer avregleringen r sdan att dagens marknad kan vara exponentiellt tuffare n
    [url=http://www.sverigemoncler.com/moncler-handväska-c-12.html]Moncler Handväska[/url]
    rier kade dramatiskt efter anita hill pstdda sdana vergrepp frn hgsta domstolen nominerade clarence thomas 1991 . den mycket laddade kontroverser , spelade i minsta detalj pnationell tv , gjorde sexuella trakasserier ett samtalsmne frn monteringslinjer till styrelserum . frn rkenskapsret 1991 till rkenskapsret 1995 kade formella anklagelser om sdana frseelser 50 procent , enligt den federala equal employment opportunity commission.last rkenskapsret , dock minskade antalet avgifter som sparas puppdrag av 9 percent.experts varna fr att den droppe kan vara en kort paus i en brant upptgende linje som inleddes
    [u][url=http://www.woolrichbilliga.com/woolrich-arctic-parka-kvinnor-c-4.html]Woolrich Arctic Parka Kvinnor[/url][/u]
    sta eller 67 senatorer som krvs fr att flla presidenten . ndtyder det nyligen vacklan vid senior demokratisk senator byrd att ngra verraskningar fortfarande kan frekomma pen sdan vgande vote.yet mnga senatorer tror nu en majoritet av ledamterna i 55to45 republicancontrolled senaten kommer att misslyckas med att hitta presidenten skyldig till antingen laddning , och fundera vilket budskap som skulle skicka till nationen . jag vill inte ha en omrstning fr att friknna tolkas som befrielse , sger senatorn susan collins ( r ) i maine.such oro frmst bland demokraterna utan ven en del republikaner kr en push fr att
    [url=http://www.sverigemoncler.com/moncler-handväska-c-12.html]Moncler Handväska[/url]
    steuropa vxte desillusionerad med deras initiala postkommunistiska ledare , behll tjeckerna klaus , till stor del fr att ska stabilitet fr sin nya country.by 1995 klaus , en beundrare av den tidigare brittiska premirministern margaret thatcher , frkunnade att privatiseringen i tjeckien var huvudsakligen complete.and medan i lnder som ungern , polen och litauen de tidigare kommunisterna skulle lmnas tillbaka till makten , fick klaus ' civic demokratiska partiet , konservativa fresprkare fr den fria marknaden , vervldigande std i parlamentsvalet som year.invited att gnatothe framsteg med ekonomiska och politiska re
    [url=http://www.woolrichbilliga.com/woolrich-online-c-5.html]Woolrich Online[/url]

  17. Favicon of http://www.belstaffjackorbilliga.com BlogIcon UM2z2i67zl 2013/10/03 03:05  댓글주소  수정/삭제  댓글쓰기

    taxfree.in vissa fall r det helt enkelt fr mycket frestelser . bland de objekt som sgt . phillip marcum kpte ptervnder till junction city frn hans snlhet i irak med army reserve : en motorcykel och en 37inch tv . han har ngra iras fr framtiden , men den extra ln frn irak r alla borta , han says.freespending soldater har alltid varit en del av armén , bde efter krig och i fredstid . det har varit ett lngvarigt problem med soldater kpa dyra stereoapparater , motorcyklar och bilar muskler ( och ofta gin skulden ) , skriver david segal , en militr sociolog vid university of maryland i college park , i en email.but
    [i][url=http://www.vinterskortimberland.com/kvinnor-roll-top-stÖvlar-c-12.html]Kvinnor Roll Top StÖvlar[/url][/i]
    riktad farkosten och troligtvis skickat den hoppar i rymden i september frra ret . nasa borde ha fngat misstaget , sade report.even nu kan nasa vara verksamma pkanten av hga , oacceptabel risk fr vissa projekt , sade study.the rapporterna mlar en bild av en byrsom inte r smycket dligt frvaltas som tunt lyckats , sger rymdpolitik experten john pike fr federation of american scientists.when man tittar pvad som gick fel med climate orbiter , fanns det tta eller nio specifika misstag alla av dem kan hnfras till underbemanning , sger mr pike.aiming att lansera ett strre antal billigare rymduppdrag fortfarande vet
    [b][url=http://www.belstaffjackorbilliga.com/belstaff-solglasogon-c-8.html]Belstaff Solglasogon[/url][/b]
    essen omfattas av samma arbetsmarknadslagstiftning privata arbetsgivare str infr en proposition syftar till att minska federala pappersarbete och ett lagfrslag tnkt att upphra med att infra federala mandat om tillstnd utan att ge de pengar som behvs fr att genomfra dem out.some contractderived poster omkom i moremoderate senaten . en ndring av konstitutionen som skulle ha krvt en balanserad budget passerade huset , till exempel , men gick ner till nederlag i senaten med en vote.others , t.ex. en freslagen lineitem veto fr presidenten , har klarat bde lagstiftande kamrarna men frblir sitter fast i den mystiska neverl
    [url=http://www.vinterskortimberland.com/dhl-shipping-fee-c-16.html]DHL Shipping Fee[/url]
    k kostade honom livet . nu r han ntligen verlevt alla behvande mnniskor som konsumerade honom : hans frldrar , som han vrdas ven de frstrde hans ktenskap , r dda sin psykiskt sjuka bror , som stal hela familjens uppmrksamhet och entusiasm , har gtt bort och hans enda arbetsgivare har lmnade honom en bekvm retirement.these skulle vara hans gyllene r , men i grunden var han fortfarande en ung man , en pojke , ven , till vem vuxenliv hade kommit som en verraskning och hade aldrig upphrt att vara en burden.freed frn de problem att stdja sig sjlv eller ngon annan , stiger han att mta varje trkig dag i sin nuv
    [b][url=http://www.belstaffjackorbilliga.com/belstaff-solglasogon-c-8.html]Belstaff Solglasogon[/url][/b]

  18. Favicon of http://www.venteparisbottes.com BlogIcon lb5t8s63nl 2013/10/03 03:35  댓글주소  수정/삭제  댓글쓰기

    se , sharansky insists.but sharansky a hate de partager sa vision d'isral, quand encore 1 million d'immigrants russes se joindre au 560.000 déjà dans le pays. russes puis représentent près de 30 pour cent de la population israélienne. il y aura des changements dans la qualité de vie . nous allons rendre l'économie plus libérale , plus efficace , et nous allons libérer les forces du marché privé , il says.recent sondages indiquent que son parti pourrait remporter jusqu'à trois knesset seats.sharansky dit 70 pour cent des immigrants russes l'élite professionnelle de l'ex- union soviétique sont incapables de trouver un emploi dans leur professions.there sont des scientifiques qui balaient les rues , sharans
    [url=http://www.achatvestes.com/moncler-doudoune-c-1.html]Moncler Doudoune[/url]
    ssiper featherbedding du travail qui entrave sa concurrence avec fastgrowing querelle media.the est particulièrement amère, certains participants et les analystes disent , parce qu'il représente un affrontement entre deux piliers de la démocratie américaine: les syndicats et la quatrième estate.by certains comptes , le litige porte sur la forme des relations de travail à l'ère de l'information, que les sociétés se tournent de puissance musculaire à la puissance du cerveau et de l'emploi à vie avec tous les avantages de la main-d'uvre contingent. en effet , la direction a beaucoup misé sur la technologie pour garder édition tout au long de la grève. il a utilisé modems pour contourner les piquets de grè
    [url=http://www.venteparisbottes.com/ugg-ultra-pas-cher-c-21.html]UGG Ultra Pas Cher[/url]
    mots pour augmenter vos chances pour les besoins correspondant . '''' a numérisable reprendre ... maximise votre capacité à obtenir hits . '' obtenir un hit signifie en utilisant les mêmes mots un recruteur utilise lors de la recherche de la base de données. il faut donc utiliser beaucoup de noms et le jargon de l'industrie pour décrire vos réalisations , de reprendre les pros sociétés d' say.for , cette technologie peut être une aubaine . unisys reoit 5000 à 7000 cv par mois . c'est beaucoup trop pour ses recruteurs 30 , répartis sur tout le pays, à read.until l'année dernière, '' chaque recruteur a eu son petit classeur de cv '' , déclare bart erwin , consultant senior chez unisys recrutement et d
    [url=http://www.achatvestes.com/ugg-bottes-c-27.html]UGG Bottes[/url]
    santé clés. tout d'abord, m. bush a proposé une déduction fiscale standard pour l'assurance maladie 7500 $ pour les particuliers et 15.000 $ pour les familles . l'administration soutient le plan fera de l'assurance maladie plus abordable et le niveau le terrain de jeu pour ceux qui achètent une assurance sur leur propre plutt que par leurs employer.for millions d'autres américains qui n'ont pas d'assurance santé à tous , cette déduction pourrait aider à mettre une base régime d'assurance- maladie privée à leur portée , le président a déclaré mardi evening.in mon esprit , il est tout simplement indéfendable pour notre pays d'avoir une politique fiscale qui offre un avantage fiscal à une partie de nos
    [i][url=http://www.venteparisbottes.com/ugg-ultimate-pas-cher-c-20.html]UGG Ultimate Pas Cher[/url][/i]

  19. Favicon of http://www.kopcanadagoosebilligt.com BlogIcon FB3o3e71gw 2013/10/03 04:28  댓글주소  수정/삭제  댓글쓰기

    langelos bermda arbete psixtinska kapellet taket som exempel . men det var inte frrn den stormiga politiska klimatet av 1960-talet och 70-talen att konstnrer och aktivister insett kraften i frgen . i chicago , wall of respect och wall of truth utstllningsmonter svart stolthet . i slutet av 60-talet i kalifornien , gick konstnrer och aktivister gemenskap tillsammans fr att mla vggmlningar fr att teruppliva frdrvat areas.but frn en finearts perspektiv , kanske vggmlningar inte fr den respekt de frtjnar , sger cook . vggmlningar r en konstform som kmpar fr att bli erknd som en konst , vilket r trkigt ef
    [b][url=http://www.xn--raybanglasgonbilligt-dbc.com/ray-ban-aviator-solglasÖgon-c-1.html]Ray Ban Aviator solglasÖgon[/url][/b]
    eten av reaktionen pkommentarer frn senatens republikanska ledare trent lott som verkade stdja rasistiska sikter . medan mr lotts senatkollegor , inklusive demokratiska ledare tom daschle , frst verkade villiga att hjlpa senator gbortom ett misstag , var allmnheten not.typically , befattningar ssom senatemajoritetledare eller chefen fr ett prestigefyllt uppdrag gngjrn prespekt och frtroende av kollegor inom ringleden . men de aktuella fallen markera en annan dynamik : att ibland planer insiders fr skrivas med utanfr help.the vita huset vl inte frvnta sig en storm av opposition till frre utrikesministern kissi
    [i][url=http://www.kopcanadagoosebilligt.com/moncler-c-9.html]Moncler[/url][/i]
    .if du spenderar bara $ 1000 per r pverktyg, det r $ 200 till $ 400 tillbaka i fickan varje year.some utilities fortfarande erbjuda revisioner till snkta priser eller till och med gratis . andra sponsra eller subventionera program homeenergy betyg . i fort collins , colorado , invnare som fr en energi rating genom stadens energi betyg programmet fr en $ 50 bidrag mot kostnader fr kreditbetyget . om betyget visar att ett bevarande tgrd kan betala sig p10 r eller mindre , kan husgare anska om en zerointerest ln upp till $ 2300 . jag kan inte sga dess svepande staden som en lpeld , sger gary schroeder , energitjns
    [url=http://www.xn--raybanglasgonbilligt-dbc.com]Ray Ban Wayfarer GlasÖgon[/url]
    a county , som inkluderar san jose.we tror att detta r en nationell modell , med hjlp av lokala initiativ fr att svara till vrdbehov hos barn , sger lnet handledare jim beall , en viktig backer av programmet . det r en frdig uppgrelse vi brja underteckna upp barnen jan 1.den program r utan motstycke i sin storlek och omfattning , sjukvrd experter agree.this lter som ett mycket lovande program i den meningen att stater ver hela landet har haft en hel del svrigheter inskrivning barn i vrdutbildningar , sger joel miller samlingspartiets psjukvrd i washington . det r mycket klokt fr lnen att plocka upp bollen och
    [i][url=http://www.kopcanadagoosebilligt.com/moncler-c-9.html]Moncler[/url][/i]

  20. Favicon of http://www.uggindeutschland.com BlogIcon egulpgbj2789 2013/10/03 08:59  댓글주소  수정/삭제  댓글쓰기

    erwettbewerb , ein neues geschftsfeld klima, in dem unternehmen laufend weiterentwickeln müssen strategien und anpassung an voraus zu bleiben competitors.in den frühen 80er jahren , manager , um nderungen in der branchenstruktur angepasst als ob solche übergnge waren einmalige ereignisse . dann setzten sie sich zurück und wartete. jetzt umstrukturierung ist jedoch als eine konstante des unternehmens. dies ist die art von sache, die gehen für die absehbare zukunft ist , sagt fosler . * mitarbeiter schriftsteller donald coolidge shelley und mark trumbull trugen zu dieser geschichte.chuck ist für meinen lbrenner . alan hlt der ltank voll. jim kauft
    [b][url=http://www.uggindeutschland.com/ugg-boots-romantic-flower-c-20.html]Ugg Boots Romantic Flower[/url][/b]
    area gymnasien , die notwendigkeit für eine anspruchsvolle prüfung auerhalb des lehrers kontrolle vorzubereiten hat oft eine bemerkenswerte neue form der teamarbeit produziert. lehrer und schüler arbeiten zusammen, um eine prüfung , die gedanken und analysen erfordert , nicht nur auswendiglernen schlagen. wenn das auf die probe unterrichtet wird , lassen sie uns mehr davon. jay mathews die schulbildung von the washington post. 2006 die washington post company.treu ergeben und berühmt verschwiegen, verfehlt cheney keinen anlass, das licht von selbst an prsident bush einzuschalten. sie befinden sich in der ltesten mitarbeiterin in der west wing suc
    [u][url=http://www.damendaunenjackeshop.com/moncler-handtaschen-c-10.html]Moncler Handtaschen[/url][/u]
    eitwillig akzeptiert werden, und es sollte in keiner weise als eine betrachtet werden herausfordern zu beiden seiten , die souvernitt, sagte senator warner.the weie haus hat kühl auf diesen vorschlag als reaktion reagierte prsident bush geschickt warner einen brief, dass frieden im nahen osten muss nachhaltig sein mit der anwesenheit von auerhalb friedenssicherung forces.warner seit langem ein befürworter hingewiesen dieser idee. aber dieses mal ist er bei weitem nicht allein darin, ein breiterer ansatz zur beendigung gewalt im nahen osten . solche angesehener nahost-experten wie william quandt von der universitt von virginia haben seinen ruf hallte
    [b][url=http://www.uggindeutschland.com/ugg-boots-romantic-flower-c-20.html]Ugg Boots Romantic Flower[/url][/b]
    dessous-firma kopf mit einem schürzenjger mann, den sie in der pilot- dumps gesattelt . nun, da sie die laus über bord geworfen , vielleicht knnen sie verlieren solche zeilen als eines tages wirst du jemand wunderbar genug, um auf ihrem ehemann mit betrügen kannst. alley ist schon die besten immobilien auf primetime ( zwischen seinfeld und er) gegeben , so dass es nicht in gefahr, abgebrochen , und sie wird viel zeit, um ein paar neue writers.andrew dice clay mieten haben, ist die groen namen in hitz ( upn) , eine krasse , langweilige show bei einer plattenfirma gesetzt . die meisten der witze knnen hier nicht wiederholt werden , aber ton ist zu habe
    [i][url=http://www.damendaunenjackeshop.com/damen-moncler-weste-c-4.html]Damen Moncler Weste[/url][/i]

  21. Favicon of http://www.westeaustria.com BlogIcon yegwptzl8628 2013/10/03 10:37  댓글주소  수정/삭제  댓글쓰기

    australien und neuseeland ist , niemand dieses zeug ernst nimmt , sagt sie. abgesehen von hawaii , die kmpfen, um ihre heimische arten vom festland invasoren zu retten , in den usa ist , ist es in der regel nicht als eine wichtige issue.australia und neuseeland gesehen haben mehr erfolg gebude ffentliche unterstützung für manahmen zum teil, weil sie schon betonte der bedrohung für die landwirtschaft , schreibt richard mack, ein kologe an der washington state university.wie andere smallbusiness besitzer betreibt frau weinstein , unter welchen sie als unfair regeln . sie kann nicht abziehen homeoffice aufwendungen , nach einem 1993 supreme court inter
    [b][url=http://www.stiefelinswitzerland.com/ugg-damen-sundance-5605-c-53.html]UGG Damen Sundance 5605[/url][/b]
    ing- website. trotz apples jabs bei microsoft, in diesem besonderen fall der software-riese hat ein besseres programm als seine competitor.but so viel wie ich diese software mgen , whlte ich sightspeed , weil es auf meinem pc als auch auf mac meine frau arbeitet erstellt . ich mchte die gleichen programme auf beiden maschinen , falls die berechnung riesen snippy erhalten und wird nicht zulassen, software von einem wettbewerber mit seiner machine.sightspeed arbeiten war einfach einzurichten , aber auf alle funktionen des programms nutzen , gibt es eine monatliche gebühr in hhe von 4,95 $ . ( die kostenpflichtige abonnement wird mit einer kostenlosen
    [u][url=http://www.westeaustria.com]Moncler outlet Österreich[/url][/u]
    che, die sie gerne in einer anderen sache, die sie love.and forderungen aus der anderen sache wurden addiert gehen lassen . die jahre der verpassten geburtstagsfeiern, und die tatsache , dass ihre kinder im alter von 7 , 8 und 10 , sie jetzt mehr als ever.i wenn sie babys waren nicht gefunden bentigen scheint, dass sie jemals lieben liesie aber nicht zu sein scheinen als kritisch eine zeit , als wenn sie durch die irrungen und wirrungen des erwachsenwerdens geht , sagt sie , pflege eines pepsi . wenn sie lter werden, das bild changes.they wollen mit dir reden \", sagt sie . aber sie knnen nicht wollen, whrend der 10 minuten ist man zu have.barnes passi
    [url=http://www.stiefelinswitzerland.com/ugg-infants-erin-stiefel-5202-c-28.html]UGG Infants Erin Stiefel 5202[/url]
    egen kufer in einem box.brands sind nichts anderes als geschichten , die an objekte reagieren , sagt james twitchell , professor für englisch an der university of florida , die weithin über branding geschrieben als kulturelles phnomen . manchmal haben wir nur durch zeiten, in denen wir die geschichte gehrt habe zu viel zu gehen , sagt er. oder wir hren die geschichte durch zu viele people.youths gesagt sein immunsystem , zumindest für jetzt . das erscheinungsbild einer breiten palette von leicht warmedover marken in den discountern besucht er sollte bedeuten diese \"geschichten\" overtold werden , sagt er. aber seine eigenen studenten scheinen nicht s
    [b][url=http://www.westeaustria.com]www.westeaustria.com[/url][/b]
    http://www.stiefelinswitzerland.com

  22. Favicon of http://www.jackenvonshop.com BlogIcon tzyystvg0585 2013/10/03 12:16  댓글주소  수정/삭제  댓글쓰기

    der und ein experte für staatliche sentencingguideline systems.professor reitz sagt etwa die hlfte der 15 staaten mit leitlinie systeme werden durch die blakely entscheidung betroffen sein. oregon und north carolina knnen besonders anfllig auf die herausforderungen , sagt er. aber die meisten in gefahr das fderale system ist mit seiner groen zahl der gerichtlich erhhte stze , er zu 90 prozent der bundes- stze says.up wird in konflikt geraten blakely, um 10 prozent der stze in staatlichen systemen gegensatz says.in er ihr dissens , justice o'connor darauf hingewiesen, dass in den vergangenen vier jahren mehr als 270.000 angeklagten unter den bundes
    [url=http://www.switzerlandjacken.com/moncler-zubehÖr-outlet-verkauf-c-3.html]Moncler ZubehÖr Outlet Verkauf[/url]
    nruhen knnten zu seinen gunsten zu arbeiten. whrend der rechtsextremen oppositionspartei fidesz , von dissidenten, die gegen die sowjetische herrschaft in den 1980er jahren gegründet , protestierte , nicht lenken hat die gewalt , fühlen sich einige analysten aufgeladen sprache in wahlkampf für die bevorstehenden kommunalwahlen verwendet trugen zum schlag up.viktor orban [der fidesz führer ] wurde mit worten wie \" aufstand \" und \" radikalismus \" , sagt krisztian szabados , der direktor des unabhngigen political capital institute . diese worte aufgehetzt people.how die proteste beganthe unruhen begannen nach einigen hundert rechtsextremisten brach a
    [i][url=http://www.jackenvonshop.com/moncler-vest-c-4.html]Moncler Vest[/url][/i]
    , drucker , als grün. aber sie hatten schwierigkeiten in restaurants . restaurant -betreiber scheinen gerade die am wenigsten freizeit von jedem sektor mit denen ich arbeite , sagt pam evans, der grafschaft green business koordinator . sie knnen nicht einmal 10 minuten, um zu lernen , wie man money.thimmakka ' s resources mühsamer zu sparen, macht es einfach handson ansatz für überarbeitete gastronomen zu gehen grün , aber es schrnkt die anzahl der restaurants der kleinen gruppe zu erreichen. bis heute hat das junge programm hat 30 von alameda county 2.000 restaurants.das gastgewerbe gewinnmargen unterzeichnet sind notorisch schlank, und seit der kali
    [u][url=http://www.jackenvonshop.com/moncler-accessories-c-6.html]Moncler Accessories[/url][/u]
    n mein sohn in der schule, ich kann verstehen, der jungen überraschung. gekleidet in jeans und baggy flanellhemden , die mdchen , wie die jungs , kommen in casual gekleidet comfort.for ihren ersten tanz haben jedoch die mdchen alle register gezogen . hübsche dekolletés , feminine kleider , schuhe, make-up , schmuck, beauty-salon haare , die funktioniert. sie haben die stichprobe auch der weiblichen mystique.did sie tanzenich ask.yeah , aber ich war immer nervs! sagt one.i hatte keine ahnung , was ich tat ! rumt another.i hab noch nie getanzt ! gesteht ein third.i ging gerade auf den boden und begann zu tanzen , sagt die vierte . ich denke, bis ende
    [i][url=http://www.switzerlandjacken.com/moncler-kind-outlet-verkauf-c-1.html]Moncler Kind Outlet Verkauf[/url][/i]

  23. Favicon of http://www.stiefelvongunstig.com BlogIcon qegahxzj7783 2013/10/03 21:10  댓글주소  수정/삭제  댓글쓰기

    1999 ( das letzte jahr nonelection ) , nach noble. demokraten im senat hob etwa halb so viel, aber auch bested ihre performance 1999 republican national committee berichtet auch ein rekordtempo von fundraising in diesem jahr. dienstag abend die gala, die george w. bush in seiner ersten groen benefizveranstaltung als prsident vorgestellt , weit übertroffen $ 15.000.000 ziel und schlug die übernahme der letztjhrigen gala titelte thencandidate bush von $ 21 mio. die demokraten hatten ihre jhrlichen frühjahrs- spendenaktion der vergangenen woche , die erhhung nur $ 2.750.000 . aber mail beitrge sind in einem allzeithoch , und die partei der meinung ist,
    [i][url=http://www.stiefelvongunstig.com/ugg-knightsbridge-c-23.html]UGG Knightsbridge[/url][/i]
    ommando -zur marktwirtschaft . '' der fallende dollar hat eine überwiegend negative auswirkungen hatte , '' sagt mitja gaspari , finanzminister von slowenien . die exyugoslav republik war einmal in der lage, sich rühmen, dass robuste deutschland war seine nr. 1 handel partner.today , das gegen slowenien, das als eine der vielversprechendsten der '' transformationslndern wurde angesehen zu funktionieren scheint . '''' unsere exporteure wurden hart von der dollar schlug , '' , sagt herr gaspari düster.selbst wenn die menschen nicht für alle vorteile eines ira wie gewinnt einen sofortigen steuerabzug für die hhe ihres beitrags, den sie noch aufschieben k
    [b][url=http://www.monclerbilligshop.com/moncler-jacken-kinder-moncler-jacken-c-1_4.html]Kinder Moncler Jacken[/url][/b]
    abzüge , aber beseitigen die meisten anderen. * lassen einzelpersonen abzug lohnsteuer wie social security und medicare , die vor allem helfen würde steuerzahler verdienen weniger als 62.700 $ . * stellen sie sicher , dass lowerincome familien sagen , zahlen diejenigen , die weniger als $ 30.000 keine steuern . * frderung einsparungen anstelle des verbrauchs. * erheblich reduzieren capitalgains und grundsteuern , so hilft bauernfamilien und kleinen unternehmen und damit die mittelschicht zu schaffen und bauen mehr wohlstand . * signifikant vereinfachen anmeldung. * reduzieren sie die leistung des irs zu finanziellen aufzeichnungen ohne haftbefehl prüfen
    [i][url=http://www.stiefelvongunstig.com/ugg-knightsbridge-c-23.html]UGG Knightsbridge[/url][/i]
    ei allnight sitzungen und acht cloture stimmen ( ein rekord ) . dennoch scheiterte der versuch . ( c ) copyright 2001 . der christian science monitores hat auch bedenken über die nutzung der terroristen generalaviation (ga) gemeinschaft, die aus mehr als 220.000 private flugzeuge rund um die country.small privatflugzeuge und der flughfen wird derzeit nicht von der transportation security administration ( tsa) geregelt erneuert , obwohl sie haben eine reihe von staatlich gebilligten richtlinien zur verbesserung der sicherheit . grere private flugzeuge , wie charter-jets und frachtflugzeuge , sind bis zu einem gewissen grad von der tsa geregelt , aber sie
    [i][url=http://www.monclerbilligshop.com/moncler-jacken-herren-moncler-jacken-c-1_2.html]Herren Moncler Jacken[/url][/i]

  24. Favicon of http://www.monclerprixenligne.com BlogIcon ql5n2x38ie 2013/10/03 21:24  댓글주소  수정/삭제  댓글쓰기

    dividualism.ackroyd de luther semble partager la préférence de son sujet ou , à tout le moins , il écrit de faon poignante et évocatrice de la vie en plus tt , catholique en angleterre. savoir si l'on partage la nostalgie de ackroyd pour l'époque médiévale ou d'accord avec son analyse des motivations et la personnalité de plus , il s'agit d'une biographie exceptionnellement fascinant , coloré et émouvant que tous, mais transporte un retour à une époque révolue . * merle rubin commentaires régulièrement des livres pour le moniteur .la tradition familiale a appelé les restes verts d'une récolte estivale abondante pour être transformé en une gourmandise avec le nom chowchow.just drle comme sa mère
    [url=http://www.giletdoudoune.com/moncler-femme-doudoune-moncler-femmes-c-1_2.html]Doudoune Moncler Femmes[/url]
    es extrémistes indignation face à l'intervention militaire américaine en afghanistan fait des gains importants dans le bureau électoral. un tiers des sièges parlementaires , cependant, sont réservés aux femmes , quibien qu'ils puissent être des islamistes défier la proscription des extrémistes contre les femmes dans la vie publique. au bangladesh, où les programmes de microcrédit de la grameen bank ont permis à 2,4 millions de femmes à démarrer leur propre entreprise , les femmes ont pris leur puissance aux urnes il ya cinq ans , ce qui réduit les sièges des extrémistes religieux 18-2 . ancien new york times onu correspondant barbara crossette crédite les femmes en iran d'élire deux fois pré
    [i][url=http://www.monclerprixenligne.com/tee-shirt-hommes-pas-cher-burberry-c-112_115.html]Burberry[/url][/i]
    nce peut influencer des millions de choisir autre spots.more de vacances inquiétant est l'image politique des états-unis , en particulier en europe . en europe, la désaffection à l'égard des états-unis est profonde , dit charles kupchan , directeur des études européennes au council on foreign relations. au cours de la dernière année , la preuve est sorti que les européens évitent américains brands.in deux enquêtes de 8000 consommateurs en europe , la russie , le japon et le canada , un cinquième des répondants consciemment boycotté les produits américains en raison de sa politique étrangère , selon gmi , une agence de dataresearch indépendant basé à seattle.one spot lumineux : quand le tia a anal
    [url=http://www.giletdoudoune.com/moncler-homme-doudoune-moncler-hommes-c-5_6.html]Doudoune Moncler Hommes[/url]
    lage et wastereduction et agir comme point les gens pour les salariés ayant questions.buy recyclés. ceci est souvent désigné comme la fermeture de la boucle du recyclage jargon. pour tout ce qui est recyclé , les acheteurs doivent être trouvées pour les produits recyclés. essayez de passer au papier recyclé postconsommation ou reconditionnées toner cartridges.reduce déchets à la source . est-ce que tout doit être imprimé pouvez-vous éliminer les assiettes en papier et gobelets en polystyrène dans votre cafétéria sensibiliser le personnel de surveillance et les autres employés . assurez-vous que les équipes de nettoyage qui connaissent une forte rotation savent comment vider les bacs de recyclage
    [b][url=http://www.monclerprixenligne.com/lunettes-pas-cher-juicy-c-28_40.html]Juicy[/url][/b]

  25. Favicon of http://www.berlinmonclerweste.com BlogIcon dpfkuktf3084 2013/10/03 22:41  댓글주소  수정/삭제  댓글쓰기

    trisch strker durch die weigerung, das embargo aufzuheben . in sarajevo erffnete serben eine wichtige strae zum internationalen wohlttigkeitsorganisationen , behielt aber die strecke geschlossen, um alle anderen. ein konvoi von un krankenwagen kam in der hauptstadt trgt kranken oder verwundeten bosnischen muslime . die usthe index of leading economic indicators stieg um 0,1 prozent im dezember , sagte der commerce department . der gewinn , der 14. in 17 monaten weniger als viele konomen vorhergesagt. der index zielt darauf ab, die wirtschaftliche aktivitt vorherzusagen sechs bis neun monate auf der strae . inzwischen commerce berichtet, dass die bau
    [i][url=http://www.jackenwestegunstig.com]www.jackenwestegunstig.com[/url][/i]
    ma starrte mich durch die windschutzscheibe lebte , ja, des wartens müde , gerettet zu werden , ffnete ich die tür und konfrontiert die animal.you müssen jetzt nach hause gehen , sagte ich , kanten nher. ich habe sachen zu tun . shoo , lama ! shoo ! und er tat, galoppieren die einfahrt hinunter und seine eigene , verschwinden in einem lama flurry.grabbing meine lebensmittel , dachte ich über was für eine groartige wahl, die wir gemacht hatten , als wir auf die spur bewegt . keine trakt huser für uns , nein, mein herr . wir leben in dem land, wo die luft sauber ist und wir mit nature.then koexistieren entdeckte ich eine maus , schrie und lief für d
    [i][url=http://www.berlinmonclerweste.com/moncler-weste-c-4.html]Moncler Weste[/url][/i]
    sie ausgegeben wurden . zum beispiel , haben sie ihren ee anleihen unterschiedliche regeln für die festlegung ihrer zinssatz als die heutigen ee anleihen. aus diesem grund ihrer ee anleihen eine hhere rate als die ee anleihen today.likewise ausgegeben zu zahlen, wurde alle hh anleihen, die vor der serie ausgegeben wurden eingestellt sind immer noch die zahlung von zinsen nach den regeln in kraft, wenn sie ausgestellt wurden. aber es gibt kein gesetz, dass das finanzministerium hlt von der einführung neuer produkte oder absetzen alten , sagt er.genetiker ' enthüllung des ersten vollstndigen sequenz des menschlichen genetischen codes erwartet irgendwann
    [url=http://www.jackenwestegunstig.com]Moncler weste[/url]
    sagt, er glaubt , dass toleranz gegenüber amerikanern deutlich erodiert . es gibt ein wachsendes gefühl , dass gegenüberliegende us-politik als amerikanischer staatsbürger ist nicht genug, um sie vom haken lassen . es wird nicht viel lnger vor nur mit einem amerikanischen pass ist genug, um gezielte , sagt er .in was für eine britische regierung quelle genannt eine auseinandersetzung mit der geschichte, ist die britische nordirland secretary mo mowlam prüft derzeit ansprüche durch irische premierminister bertie ahern , dass die zivilisten unten wurden von britischen truppen niedergeschossen illdisciplined , einige , die als undercover snipers.the mor
    [url=http://www.berlinmonclerweste.com/moncler-jacken-männer-c-3.html]Moncler Jacken Männer[/url]

  26. Favicon of http://www.prixboutiquemoncler.com BlogIcon cd0b0t46ah 2013/10/03 22:54  댓글주소  수정/삭제  댓글쓰기

    chose, écrit-elle, de reconnatre que l'esprit humain peut vérité aperu que partiellement , une autre est de nier son existence tout à fait. beau livre de glendon renforce notre appréciation des hommes et des femmes qui ont cherché et trouvé une faon d'énoncer universals.merle rubin commentaires régulièrement des livres pour le monde monitor.a made new : eleanor roosevelt et la déclaration universelle des droits de rightsby mary ann glendon random house 333 pp , 25,95 $ (c) copyright 2001. le christian science monitoril se lance dans le plus grand voyage de sa vie, emmène un 22yearold mécanicien , puis achète un chien nommé bud. tous les trois lunettes de porter sur cette windshieldless , voiture torse
    [i][url=http://www.ventepascherbotte.com/classic-ugg-boots-c-1.html]Classic Ugg Boots[/url][/i]
    da , qui donna à son mari une tasse de café '' , c'est que j'ai toujours détesté ces politiciens qui sont si égoste, qui pensent que ce qu'ils croient être la seule chose qui peut être suivie '' thomas essaie de vous interrompre, mais elle continue : . '' nous avons une société complexe avec des problèmes complexes , et si un politicien dit qu'ils ont toutes les réponses ils eux-mêmes et le public sont trompent . '' le couple s'est rencontré à travers un service de rencontres . thomas wilde n'était pas sr de sortir avec un avocat. '' elle était trop conservateur , '' il a d'abord l'impression de says.melinda n'était pas beaucoup mieux . '' il ressemblait à un homme de la montagne '' , dit-elle. '' t
    [u][url=http://www.prixboutiquemoncler.com/doudoune-moncler-enfants-c-1.html]Doudoune Moncler Enfants[/url][/u]
    par la rhétorique de l'alliance sur la parade et terrain d'entranement. quelque 17 chars alignés aux ctés de 19 véhicules blindés , pièces d'artillerie et un seul missile balistique truckloaded une toile de fond apte pour le discours de guerre contre les envahisseurs étrangers comme les rebelles se réfèrent à des milliers de pakistanais , arabes et autres bénévoles combattre aux ctés des taliban.all le monde comprend maintenant que nous luttons contre les terroristes et les envahisseurs , burhanuddin rabbani a dit aux troupes rassemblées . il est le président du gouvernement afghan déchu qui contrle aujourd'hui seulement 10 pour cent du pays , mais est toujours reconnu par les etats- nations.we meno
    [url=http://www.ventepascherbotte.com/classic-ugg-boots-classic-tall-ugg-boots-c-1_2.html]Classic Tall Ugg Boots[/url]
    e l'échelle des salaires dans le secteur de la petite enfance est faible. selon une récente étude nationale par le centre washingtonbased pour le secteur de la garde d'enfants , la plupart des travailleurs de garde d'enfants à domicile ou dans les grands centres gagnent moins de 8,50 $ l'heure, avec les assistants faisant entre 5,50 $ et 6,25 $ . les deux tiers reoivent aucune benefits.yet pas tout le monde est d'accord que la syndicalisation est la meilleure faon de remédier à la situation lowpay . en fait, fred citron , directeur exécutif des centres d' apprentissage précoce, un groupe de 17 centres notforprofit banlieue de philadelphie , dit-il s'inquiète que la syndicalisation va créer une couche supplé
    [i][url=http://www.prixboutiquemoncler.com/doudoune-moncler-hommes-c-3.html]Doudoune Moncler Hommes[/url][/i]

  27. Favicon of http://www.kopmonclerjacka.net BlogIcon GF4j9d79yj 2013/10/03 22:55  댓글주소  수정/삭제  댓글쓰기

    hll bush tjnstemn idea.civil samhllets medverkan gr demokratier mer pluralistisk , representativ och lyhrd , usaid assistant administratr adolfo franco sade nyligen vid en konferens om kampen mot korruption . utmaningen fr regeringarna r att undvika direkt gjutning civila samhllet t sidan som oppositionen , och i stllet erknna att en sofistikerad civila samhllet kan vara en allierad och partner government.the fascinerande frgan r hur usa kommer att ta itu med denna utmaning som det civila samhllet vxer . kommer vi stonewall det , eller stdja dess utveckling med oljepriset hgt , dollarn lg , federala och hande
    [i][url=http://www.kopmonclerjacka.net/moncler-sweater-moncler-sweaters-for-män-c-31_32.html]Moncler Sweaters For Män[/url][/i]
    anteri att interagera med irakiska kvinnor andra gick med armésakkunnigstyrkor och navy seals pmultiweek patruller i afghanistans olndiga terrng . en handfull av dem levde under strama frhllanden pforward operating base ghanzi bland en bataljon infanterister mn som inte misshandel eller trakassera dem , men sa saker som , litar jag dem med min life.they var , i alla bemrkelser , soldater : modig , kompetent , och som godknts av de mn som var beroende av dem . fr dessa soldater manliga och kvinnliga r medlemmar i en generation van att jmstlldheten sedan fdseln och som alla goda soldater , medveten om att nr saker
    [url=http://www.billigtmonclerjacka.com/moncler-jackor-c-1.html]Moncler Jackor[/url]
    en avveckling av krnkraften . deras miljtalesman , michael mller , har varnat fr att frslaget energi papper innehller element som skulle innebra en backpedaling pdenna politik om partiet concurred.the regeringen talar om kompromissvilja , sger en medhjlpare till mr mller , men under tiden de r skapa andra fakta pground.the oro , sger han , r att eftersom fler behllare levereras till gorleben anlggning nuvarande transporten kommer att rkna upp till tta blir det troligare att gorleben kommer att sluta som permanent lagringsplats . det medhjlpare sger mller hyser allvarliga tvivel om att gorleben geologiskt r l
    [b][url=http://www.billigtmonclerjacka.com/moncler-jackor-moncler-keps-c-1_5.html]Moncler Keps[/url][/b]
    rowth.for ekonomer , de robusta antalet anstllda ta en suck av lttnad . de tror att terhmtningen r ntligen frisk nog att vara sjlvbrande , ven med den frvntade uppsving i rntorna senare denna mnad . det r delvis drfr de flesta tror att rntehjningen kommer att vara mttlig , precis tillrckligt fr att hlla den nyligen firedup ekonomin verhettas . det r ocksdrfr fretagen redan har rknat en hjning i sin nedre lines.but mnga ekonomer ocksvarna fr potentiella problem , frn kostnaderna skyhga energikostnader till tvsiffriga healthcost inflation risken att stigande bolnerntor kommer att bromsa huset n
    [url=http://www.kopmonclerjacka.net/moncler-jackor-for-barn-c-34.html]Moncler Jackor for Barn[/url]

  28. Favicon of http://www.switzerlanddaunenjacke.com BlogIcon brrspshc9098 2013/10/04 00:12  댓글주소  수정/삭제  댓글쓰기

    dem kongress über handel und whrungspolitik , sagt harald malmgren , ein veteran handelskonom in washington.one seiner ersten wichtigen entscheidungen : was tun mit einem weltweiten system als über textilwaren und bekleidung einfuhren, die 1. januar ausluft tun . es geht um 700.000 us-arbeiter , vor allem in süd- staaten, die bushs wiederwahl unterstützt. die wie auch auf 2,7 millionen arbeitnehmer in europa , und weitere millionen in dutzenden von entwicklungslndern. die groe sorge ist, dass china mit seinen billigen arbeitskrften und marktmacht , werden die meisten der weltweit textil-geschft zu erfassen, auszulschen arbeitspltze und unterneh
    [u][url=http://www.kaufenstiefelonline.com/ugg-slippers-tasmina-c-5.html]Ugg Slippers Tasmina[/url][/u]
    mitarbeiter in der abteilung astronomie an der university of massachusetts in amherst, eingesackt den ersten seiner drei kometen von seinem hinterhof im jahr 1984. ich dachte, dass es nach einer langen nacht der beobachtung kommen , er erinnert aber kam es auf meinem zweiten sweep des himmels, in etwa 10 minutes.it war auch eine premiere für david levy , ein bekannter amateur kometen jger, der den kredit teilt für komet levyrudenko . ich verbrachte 19 jahren und etwa 900 stunden vor dem okular vor dieser entdeckung , sagt herr levy, der einige seiner beobachtung macht auf einer trittleiter neben seinem teleskop in den hinterhof seines hauses auerhalb tu
    [b][url=http://www.switzerlanddaunenjacke.com/frauen-moncler-daunenjacke-moncler-alpes-c-1_3.html]Moncler Alpes[/url][/b]
    , professor für geschichte an der university of paris.today , sind die meisten militanten studenten ... in den lessprivileged universitten im westen und süden von frankreich. sie sind protest gegen die tatsache, dass die regierung sie setzen in universitten ohne die mittel, um zu arbeiten, sind er said.these studenten die fusoldaten für die aktuellen demonstrationen und wiegen schwer in einem plan der regierung , um beschwerden von diesem streik auszurumen .frustriert vermittlungsbemühungen in zypern, scheinen türkischen behauptungen über griechische souvernitt in der gis , und bewaffnung programme in griechenland und der türkei , um eine bez
    [u][url=http://www.kaufenstiefelonline.com/ugg-boots-bailey-button-c-12.html]Ugg Boots Bailey Button[/url][/u]
    er wahrgenommen dienstagabend headtohead talkfest zwischen bush und gore, an der boston campus der university of massachusetts statt , wahrscheinlich hing erwartungen gehen in die debate.bush , die weniger erfahrenen debattierer , bentigt , um zu zeigen , dass er zu artikulieren und vorbereitet , um die vielen fragen, die er als prsident stellen würde handhaben ist . er hatte viel mehr zu gewinnen . gore, der einen guten ruf für factfilled debatten und dafür, dass manchmal übermig aggressiv hat , musste stoen als mensch und likable.i beide verstrkt eindrücke gehen in zu denken, sagt ross baker von der rutgers university in new jersey. gore war gut
    [url=http://www.switzerlanddaunenjacke.com/moncler-homme-westen-c-20.html]Moncler Homme Westen[/url]

  29. Favicon of http://www.jackenvonshop.com BlogIcon yfbmmzwa0789 2013/10/11 21:39  댓글주소  수정/삭제  댓글쓰기

    ep rally für die president.why sah all diese kandidaten ringen miteinander, um bush berufensagt whit ayres, ein gop meinungsforscher in atlanta. einfach . in einem schlüssel bezirk, genehmigt republikaner bush 98 prozent. abgelehnte zero.certainly , es ist nicht für einen beliebten prsidenten selten zu kommen als gesprchsthema auf dem stumpf . und bush füttert das feuer durch eine kampagne vor kurzem in texas , north carolina, und south carolina. ( er hat nicht gesagt, wen er tatschlich begünstigt in der primren tennessee . ) aber nie haben politische beobachter diese art von auszeichnungen für den beliebten chef gesehenvor allem eine als mod
    [url=http://www.switzerlandjacken.com/moncler-zubehÖr-outlet-verkauf-c-3.html]Moncler ZubehÖr Outlet Verkauf[/url]
    eschichten von lokalen, nationalen und internationalen import.happily , verantwortungsbewussten journalismus noch praktiziert konzentrieren. newsweek verdient groe anerkennung für das halten seiner clintonlewinsky schaufel eine woche, weil es war einfach nicht glücklich über die vollstndigkeit seiner geschichte. auszeichnungen zu jenen tv anker , die on air ersten fragmentarischen bulletins deren wahrheitsgehalt zweifeln sie lesen sinken. ein groes lob an die zeitungen, die clintonlewinsky geschichte verfügen , wenn es eine bedeutende entwicklung , aber lassen sie es nicht dominieren ihre seiten unter ausschluss aller anderen , die important.in journa
    [u][url=http://www.jackenvonshop.com/moncler-accessories-c-6.html]Moncler Accessories[/url][/u]
    enrate unter neuen immigranten . nativeborn frauen durchschnittlich weniger als zwei kinder each.the un-bericht befasst sich mit der zahl der einwanderer , die bentigt wird, um rückgnge in der gesamtbevlkerung und workingage bevlkerung in acht nationen sowie die europische union und europa als whole.in den usa ausgeglichen würde , stellt der bericht fest , würde es 38 millionen einwanderer , oder 760.000 pro jahr, zwischen 2000 und 2050 um die bevlkerung konstant. das ist weniger als die zuwanderung von etwa 1 million in den letzten jahren. hnlich ist die situation in grobritannien und france.in italien, südkorea und japan, würde es dauern, ein
    [url=http://www.jackenvonshop.com/moncler-stiefel-c-5.html]Moncler Stiefel[/url]
    nment.recordbreakerit ' s diesmal anders . jedes [ clinton ] veranstaltung in diesem jahr war ein recordbreaker für diese stadt , sagt olivia morgan , sprecherin der demokratischen congressional campaign committee , die demokraten gewinnen haussitze hilft und auf den stallone event.ms . morgan besttigt, dass der prsident tut mehr veranstaltungen und die erhhung mehr geld für haus demokraten in diesem jahr als in den wahlen von 1994 . die politischen bedingungen sind unterschiedlich prsidentschaftswahlen zustimmungsraten von mehr als 60 prozent , eine gesunde wirtschaft , und ohne groe krise . aber so ist der anreiz eine chance , wenn auch eine sehr sc
    [url=http://www.switzerlandjacken.com/moncler-frauen-outlet-verkauf-c-4.html]Moncler Frauen Outlet Verkauf[/url]

  30. Favicon of http://www.billigapoloonline.com BlogIcon BP7n4a04sc 2013/10/15 22:13  댓글주소  수정/삭제  댓글쓰기

    arbetning och vrdverksamheten denna sista termen r sbred att den omfattar marketing.how gjorde detta federal regel kommit omvem lg bakom det vad kan amerikanerna gra fr att skydda deras medicinska privatliv hittills har medicinsk sekretess regleras frmst av staterna . de flesta stater har lagar som krver patientens samtycke innan deras information delas med andra. dock har abiding av mnga olika lagar statliga integritet visat sig svrt fr de branscher som vill skapa ett nationellt healthinformation systemet . nationella ledare lkarunderskning, sjukhus , healthinsurance , och andra industrier har arbetat i mer n
    [url=http://www.billigapoloonline.com/burberry-polo-herr-c-1.html]Burberry Polo Herr[/url]
    fnga hybris och drskap av tekniska civilization.here r ett gng killar vissa chefer fr stora organisationer , en del datanrdar som vljer att gra vad som fungerar fr nu , och som fr i morgon , ja, lt det ta hand om sjlv. det r inte som om den eventuella frndringen av vra datum den 19 och 20 inte kunde frutses . men med en maana aldrig kommer mentalitet , strdde de dessa smdatorer gruvor i alla tegelstenar som slutade inbddad i grunden fr hela vr civilisatoriska edifice.if jag hade sett detta y2k anvnds som intrigen i en film , jag ' d har varit tvungna att arbeta fr att avbryta min incredulity.but snart stod
    [u][url=http://www.xn--kpuggs-wxa.com/ugg-sandals-ugg-halendi-sandals-c-61_64.html]UGG Halendi Sandals[/url][/u]
    r en bermd argentinsk tenor . han bltade ut den enda lten han visste argentinas patriotiska aria . efter tenoren erbjd uppmuntran , brjade han studera opera och tog det pallvar strre allvar n ngon kunde ha imagined.álvarez och hans fru ssmningom slde verksamheten och flyttade frn sin hemstad córdoba till milano med endast $ 6.000. álvarez fru sade pden tiden , vi hoppar frn en klippa , men tminstone vi hoppa ut tillsammans . som ett medel fr inkomst , arbetade hans fru som en gymnastik instruktr , och vnner hjlpte . men hans frldrar och brder var , frsteligt nog , frst concerned.at , de var inte
    [url=http://www.billigapoloonline.com/ralph-lauren-herr-ralph-lauren-tskjorta-c-11_16.html]Ralph Lauren T-Skjorta[/url]
    en fgel att sitta pmin nve och komma tillbaka nr jag ringde honom . idag maryanne har en redtailed hk som heter grimmerath , eller grim fr kort . vi r bda fortfarande patt lra , sger maryanne . men vi bda har stora frhoppningar pdetta r och de som till come.it r en lng och svr process att bli en falconer.in utver de federala bestmmelser , har varje stat sina egna riktlinjer . det finns tre niver av falconer : lrling , allmnt , och herre . du mste vara minst 14 r gammal fr att vara en lrling , och du kan inte bli lrling tills du har klarat din statens falconry examen , vilket inkluderar frgor om fgel
    [url=http://www.xn--kpuggs-wxa.com/ugg-slippers-c-65.html]UGG Slippers[/url]

  31. Favicon of http://www.newclearanceboots.com BlogIcon ul6v4n81gn 2013/10/18 03:44  댓글주소  수정/삭제  댓글쓰기

    ercent mentioned Iraq or Hussein. But by January of this year, attitudes had been transformed. In a Knight Ridder poll, 44 percent of Americans reported that either most or some of the Sept. 11 hijackers were Iraqi citizens. The answer is zero.According to Mr. Kull of PIPA, there is a strong correlation between those who see the Sept. 11Iraq connection and those who support going to war.In Selma, Ala., firefighter Thomas Wilson supports going to war with Iraq, and brings up Sept. 11 himself, saying we don't know who's already here in the US waiting to attack. When asked what that has to do with Iraq, he replies: They're all in it together all of them hate this country. The reason: prosperity.Al Qaeda leader Osama bin Laden himself recently encouraged the perception of a link, when he encouraged attacks on the US in response to a US war against Iraq. But, terror experts note, common animosity toward the United States does not make Hussein and Mr. bin Laden allies.Hussein, a secularist, and bin Laden, a Muslim fun
    [b][url=http://www.newclearanceboots.com/ugg-suburb-crochet-tall-boots-5733-c-15.html]UGG Suburb Crochet Tall Boots 5733[/url][/b]
    an occurred in all of World War II. There is reconciliation there, and I suppose a kind of redemption, too.Lee just got back from another trip to Laos and called to see how I was taking the news about Bob Kerrey. I'm still thinking about it, I said, and he is too. I'm thinking, too, that I should do more to help Lee's effort. I can't change the past, but I can do something about the future.Brad Knickerbocker is a Monitor staff writer.(c) Copyright 2001. The Christian Science MonitorThe story has been forgotten, but this country once before imprisoned foreigners suspected of subversion in special camps, only to wonder what to do with them afterward. Last time, the targets were 4,000 German civilians taken from 15 Latin American countries during World War II. The US government feared they were involved in Nazi conspiracies, so its agents seized them and interned them in the Texas desert – in violation of international and federal law. Like the prisoners at Guantánamo, they were a diverse group. Some were hardcore
    [url=http://www.cheapestshortboots.com/ugg-new-style-boots-c-22.html]UGG New Style Boots[/url]
    ko, an analyst who specializes in consumer attitudes to technology for Forrester Research in San Francisco.Mr. Kilko attributes much of the demand to people wanting to supplement their desktop units. But he also acknowledges that as more people grow accustomed to powerful laptops with big screens and fast microprocessors, they will begin to accept them as outright replacements for oldstyle computers that take up so much space.These are laptops that never see a lap and might never head out on the road. The PowerBook G4 Titanium (starting at $2,499), with its 15.2 inch screen, is one of those machines.Two factors have driven change:Increased computing power. This year, Intel released a new version of its P4 chips, giving laptops the power to perform tasks, such as complex video editing, that in the past were best done on a desktop computer. (Not to be outdone by Intel, last month Apple upgraded the power in its toplevel Titanium notebook.)Larger screens. Screens 15inches wide and larger provide viewing areas eq
    [i][url=http://www.newclearanceboots.com/ugg-ultra-tall-boots-5245-c-18.html]UGG Ultra Tall Boots 5245[/url][/i]
    ablished to prosecute those who violate the arms embargo, a tribunal has been established to prosecute those responsible for crimes of genocide.In part, this ubiquity has made the ballet almost as vilified as it is beloved. In the dance world, it's often considered more spectacle than substance, the trivialization of high art, the popular trend that has gotten out of hand. A flawed, lopsided ballet with a rather incoherent story featuring lots and lots of children, many with questionable skills, it's the ballet we love to hate, prompting critic Richard Buckle to quip that every holiday season we are all one Nutcracker closer to death. But it's also the ballet world's cash cow, the production that helps keep companies and schools alive.And it's the one work of dance that brings millions of people, young and old, to the theaters year after year. For every cynic who ventures forth with clenched teeth, there are others who come with open hearts, ready laughter, and eyes that are ready to tear up at the first little c
    [url=http://www.cheapestshortboots.com/kids-ugg-boots-c-17.html]Kids UGG Boots[/url]
    http://www.cheapestshortboots.com

  32. Favicon of http://www.bottesboutiqueachat.com BlogIcon fq3t2g93oc 2013/10/18 10:03  댓글주소  수정/삭제  댓글쓰기

    r sportif pour wthr tv à indianapolis qui a été envoyé à lubbock pour couvrir la return.on de chevalier de la bordure sud du texas panhandle, la terre autour de lubbock est aussi plat comme une crêpe et obtient aussi chaud que la plaque utilisée pour cuire ' em.cotton , le bétail et l'huile rattraper l'économie autour de cette ville balayée par le vent de 200.000 et , comme la plupart du texas , le football est king.but qui est sur le point d' changer . déjà , lubbock a attiré l'attention plus national de l'arrivée du chevalier que n'importe quel match de football à date.within les 48 premières heures de la vente des billets , les résidents happé 12.000 abonnements de saison . ils ont érigé pannea
    [b][url=http://www.bottesboutiqueachat.com/ugg-sandales-amélie-c-32.html]UGG Sandales Amélie[/url][/b]
    , m. hunter a dit , il pourrait frapper les marges de l'assurance , où il dit les agents sont au risque de poursuites en raison des commissions conditionnelles qui sont liés non au volume, mais à la perte de l ' levels.let dire que je suis l'agent, et je suis à un niveau où, si je relève beaucoup plus de pertes au cours du trimestre mes revenus vont baisser , explique t-il . et vous venez me voir avec un accrochage de 1000 $. est-ce couvert ou non vous me demandez. eh bien, vous pouvez voir les consommateurs conflict.all peuvent faire, dit hunter, est de prêter attention . seulement avec les auteurs directs, comme geico ou usaa , pas de commission impliqué , il explique leurs agents sont salariés . ensuite
    [i][url=http://www.desbottespaschere.com/jimmy-choo-and-ugg-bottes-c-1.html]Jimmy Choo And UGG Bottes[/url][/i]
    léguer . il ya deux semaines , il n'avait pas de calendrier public sur un week-end trois jours , puis est apparu arborant un bronzage. il était muet sur ses allées et venues , ce qui a provoqué une vague de mikey les éditoriaux de où , jusqu'à ce qu'il a été aperu sur un parcours de golf des bermudes . le weekend dernier, lui et son personnel a de nouveau refusé de répondre aux questions au sujet de son effort schedule.the de tracer une ligne de vie privée dans une culture politique où le personnel et le public s'est brouillée par les scandales des années 1990 est en train de gagner applaudissements de certains experts et les éléments du public. il est considéré comme une réaffirmation d'une touche
    [u][url=http://www.bottesboutiqueachat.com/bébé-ugg-erin-infantile-c-1.html]Bébé UGG Erin Infantile[/url][/u]
    résidents ) . presque chaque communauté possède un terrain de basket en plein air , et la plupart ont une salle de sport ainsi . si le gymnase est ouvert, vous pouvez parier qu'il ya une foule à l'intérieur quelle que soit la weather.basketball a été une passion pour moi depuis que j'ai été présenté à ses fondamentaux comme fourthgrader dans le connecticut. court, lent et sans aucune exception ballhandling ou le tir compétences ( mais beaucoup de bruit ), j'ai quand même joué bal organisé dans une progression de l'église , collège intra-muros , et les adultes lieues de la ville pendant trois décennies. encore plus à mon got étaient des centaines , voire des milliers , de jeux de ramassage que j'ai
    [i][url=http://www.desbottespaschere.com/jimmy-choo-and-ugg-bottes-c-1.html]Jimmy Choo And UGG Bottes[/url][/i]

  33. Favicon of http://www.magasindesbottes.com BlogIcon lc4o6m71pm 2013/10/19 00:33  댓글주소  수정/삭제  댓글쓰기

    vous justifier en disant que vous aviez eu par quelqu'un que vous ne pouvez pas name.my préoccupation est ce que nous faisons pour les gens ordinaires et au fonctionnement de la justice. je suis beaucoup plus inquiet au sujet de la jewells richard à propos du gouvernement secrets.when il s'agit pour le gouvernement et ses millions de pages de documents classés stupidement , je n'ai aucun doute que cette nation a souffert plus de secret excessif de la divulgation indue. le gouvernement prend bien soin de lui-même. mais la protection du citoyen ordinaire de la diffamation et atteinte à l'intimité devient notre responsabilité. et le public va nous juger par la faon dont nous réalisons que responsibility.i joindr
    [b][url=http://www.doudounefemmemagasin.com/2011-moncler-homme-c-3.html]2011 Moncler Homme[/url][/b]
    c'est déjà un net positif pour l' environment.anyone qui utilise le courrier électronique va instinctivement comprendre l'idée . il ya deux décennies , quelqu'un envoie un message de miami à nome , en alaska, a écrit une lettre . les arbres ont été écrasés à faire les autres arbres stationnaires faites l'enveloppe. il a fallu beaucoup d'efforts physiques et de carburant pour le bureau de poste pour le livrer. lorsque le télécopieur a gagné en popularité , un peu d'électricité a pris la place de la poste . avec le courrier électronique , l'électricité a éliminé le papier entièrement . les analystes appellent passe de ce processus dematerialization.it rapidement dans l'économie d'aujourd'hui . au
    [url=http://www.magasindesbottes.com/bottes-ugg-ultra-tall-c-14.html]Bottes UGG Ultra Tall[/url]
    istoire du concept de l'entreprise est complète et facile, mais il ne parvient pas flagrante pour explorer le fait que lorsque ces baleines entreprises faire faillite , ils prennent souvent en panne actionnaires et des parties prenantes aussi bien . wayne e. yang est un professionnel de private equity à new york. ses écrits ont paru dans la revue nord-américaine , the asian review of books, et a. magazine.mais quelque chose se sent un peu creux sur l' ensemble de l'expérience , nonet pas seulement parce que le miroir funhouseesque sur la couverture de time déformé l'image. ou parce que vous étiez juste un de plusieurs milliards qui a remporté le prix . (au cas où vous l'auriez manqué , que vous avez sél
    [u][url=http://www.doudounefemmemagasin.com/moncler-foulard-c-10.html]Moncler Foulard[/url][/u]
    r maison leader de la majorité tom delay , inculpé le 3 octobre sur des accusations de complot et sans rapport avec le blanchiment d'argent , au texas, et ancien personnel, y compris m. scanlon, sont également dans la composition des voyages , des contributions et des faveurs aux clients de abramoff . m. delay accompagné ney sur un voyage de golf en ecosse financé par abramoff.after la négociation de plaidoyer abramoff , dennis hastert a ajouté son nom à une liste croissante des législateurs retour des contributions des abramoff et son clients.in montana, le sénateur conrad burns, gop a déjà retourné quelque 150.000 dollars en contributions de abramoff , mais les démocrates utilisent la connexion abramoff
    [b][url=http://www.magasindesbottes.com/ugg-jimmy-choo-starlit-c-19.html]UGG Jimmy Choo Starlit[/url][/b]

  34. Botsoamedot 2013/11/18 10:15  댓글주소  수정/삭제  댓글쓰기

    [url=http://guitar-wings.de/moncler-down-mantel-frauenmoncler-berlinmoncler-westenmoncler-schuhe/95-monclershopsparismonclerdamenjacke.html]{MONCLER Shops paris|moncler damen jacke}[/url]
    [url=http://guitar-wings.de/moncler-down-jacken-mannermoncler-damen-jackenmoncler-manner-daunenjackemoncler-jacken-gunstig/363-monclerdamen-jackenmonclergrenobleshorts.html]{Moncler Damen-Jacken|Moncler Grenoble Shorts}[/url]]{
    [url=http://guitar-wings.de/moncler-down-jacken-frauenmoncler-jacken-herrenmoncler-weste-damendaunenjacke-moncler/361-moncleronline-shopkaufenmonclerhimalayaprix.html]{Moncler Online-Shop kaufen|moncler himalaya prix}[/url]
    [url=http://guitar-wings.de/moncler-down-mantel-frauenmoncler-berlinmoncler-westenmoncler-schuhe/89-monclerskibrillechevaliermonclerschwarz.html]{moncler Skibrille|Chevalier Moncler schwarz}[/url]
    [url=http://guitar-wings.de/moncler-down-jacken-mannermoncler-damen-jackenmoncler-manner-daunenjackemoncler-jacken-gunstig/542-monclermodebilligmonclerwestefrmanner.html]{moncler Mode|billig Moncler Weste fr Manner}[/url]

    [url=http://guitar-wings.de]moncler polo[/url]
    [url=http://guitar-wings.de]moncler daunenmantel damen[/url]
    [url=http://guitar-wings.de]moncler kinder[/url]
    [url=http://guitar-wings.de]moncler jacken kaufen[/url]
    [url=[url=http://guitar-wings.de/moncler-down-jacken-mannermoncler-damen-jackenmoncler-manner-daunenjackemoncler-jacken-gunstig/388-originalmoncleronline-shopsmonclergammebleupressestelle.html]original moncler Online-Shops[/url]

    [url=http://guitar-wings.de]{moncler millais}[/url]
    [url=http://guitar-wings.de/moncler-down-westen-frauenmoncler-mayamoncler-herren-jackemoncler-jacken-sale/141-monclerbabynachuntenmonclerstoreinwoodbury.html]{Moncler Baby nach unten|moncler store in woodbury}[/url]]{
    [url=http://guitar-wings.de]{moncler weste g眉nstig}[/url]
    [url=http://guitar-wings.de/moncler-down-mantel-frauenmoncler-berlinmoncler-westenmoncler-schuhe/78-moncleroutletrommonclerjackehund.html]{Moncler Outlet rom|Moncler Jacke Hund}[/url]
    [url=http://guitar-wings.de/moncler-down-jacken-frauenmoncler-jacken-herrenmoncler-weste-damendaunenjacke-moncler/458-doudounemonclerclairyfemmesnoirmonclerjackeohnecertilogo.html]{doudoune moncler Clairy femmes noir|moncler jacke ohne Certilogo}[/url]

    !@#

1부 | 개발 환경의 변화와 대응하는 프로그래밍 최적화의 재발견
2부 | OPP적 개발을 위한 C++ 프로그래밍 최적화 기법
3부 | 리팩토링을 이용한 자바 성능 최적화 기법
4부 | 성능 이슈 해결을 위한 닷넷 프로그래밍 최적화 기법
5부 | ARM과 파워pc에 기반한 임베디드 프로그래밍 최적화 기법
과 거 8051과 같은 CPU 시절과는 달리 요즘 나오는 임베디드 형 CPU는 ARM, PowerPC, MIPS와 같이 한 때 유닉스 워크스테이션에서나 사용하던 RISC 방식은 물론이고 CISC 방식의 x86 코어를 점점 더 많이 사용한다. 때문에 과거 워크스테이션에서 사용하던 최적화 기법까지 다뤄야 하는 경우가 점점 더 늘어나기 시작했다. 한 술 더 떠 임베디드 장비에 들어가는 CPU 성능도 날로 높아지고 CPU 코어도 계속해서 판올림을 거듭하고 있는 탓에 프로그래밍 기법들도 날로 새로워지고 있다.

프로그래밍 분야에서 ‘최적화’만큼 다양한 의미로 사용되는 단어도 드물 것이다. 최적화란 개발 목적과 사용하는 언어, 애플리케이션의 특징 등에 따라 모두 다른 의미로 사용되는 탓이다. 다만 그 핵심만은 대부분 비슷하다.

프로그래밍 분야의 최적화는 요구 사항을 충족시키지 못하는 소프트웨어를 개선해서 원하는 결과를 얻도록 하는 작업이라는 점에서 동일하기 때문이다. 한마디로 개발자나 환경에 따라 최적화의 의미는 제각기 달라지지만, 최적화의 중심에는‘속도’와 ‘크기’가 있다.

하지만 이 또한 시대가 바뀜에 따라 조금씩 달라지고 있다. 시대가 바뀌면서 CPU의 성능이 좋아지고 메모리의 용량 또한 늘어나는 덕에 정량적인 ‘속도’와 ‘크기’가 차지하는 의미가 작아지는 탓이다. 대신 ‘사용 편의성’과 ‘즐거운 경험’ 같은 요소가 중요해지고 있다.

이런 상황은 어디까지나 프로그래밍 전반에 대한 것일 뿐 임베디드 소프트웨어는 좀 더 복잡한 제약 조건하에서 개발되는 탓에 여전히 속도와 크기가 중요한 역할을 차지한다.

일반 데스크톱 PC나 워크스테이션과는 달리 임베디드 장비에 들어가는 CPU는 성능도 떨어지고 메모리(램이나 플래시) 용량도 적다. 때문에 수행 속도, 반응 속도, 실시간 성능, 실행 전 펌웨어 이미지 크기와 실행 중 프로세스 이미지 크기를 확보하기 위해 적잖은 공을 들여야 한다.

물론 속도도 빠르면서 이미지 크기도 작은 요구 사항을 동시에 충족할 수는 없다. 어느 한쪽을 희생해서 다른 한쪽을 살려야 한다. 이런 과정에서 특정 하드웨어에 대해 얼마나 균형을 잘 맞추느냐에 따라 임베디드 소프트웨어 개발 승패가 판가름 나는 경우도 있다.

5부는 이런 배경을 염두에 두고 임베디드 분야를 중심으로 널리 사용되는 ARM(Advanced RISC Machine)과 파워PC 계열 CPU를 토대로 C와 어셈블리 언어 특성을 활용해서 효과적인 소프트웨어를 제작하는 방법에 대해 알아본다. 여기서 주의 사항이 하나 있는데, 워낙 변수가 많은 알고리즘과 특정 컴파일러 버전에 따른 최적화 특성은 설명에서 제외한다.

  최적화의 기초와 잘못된 상식

세계 최초의 64비트 CPU로 등장한 알파(21x64 시리즈)를 설계할 당시에 핵심적인 팀을 네 개로 나누었는데, 그 중에 소프트웨어 팀이 하나 끼어있었다.

놀랍게도 이 팀이 담당한 업무는 바로 알파에 최적화된 컴파일러를 제작하는 것이었다. 높은 클럭 주파수로 움직이는 CPU를 제작하는 과정에서 조금이라도 하드웨어의 복잡성을 줄이기 위해 최대한 단순하게CPU를 설계했다. 원하는 성능을 얻기 위한 노력을 소프트웨어(즉 컴파일러)로 떠넘긴 것이다.

이런 변화는 칩 제조사가 가장 골머리를 앓는 부분이 하드웨어 부문에서 소프트웨어 부문으로 바뀌어 버린 역사적인 전환점으로 생각해도 될 정도이다.

주로 CISC(Complex Instruction Set Computer) 기반으로 설계된 CPU를 다루던 프로그래머는 손으로 최적화한 어셈블리 코드가 월등히 뛰어나다고 생각하기 쉽다.

하지만, RISC(Reduced Instruction Set Computer) 환경이나 RISC와 CISC를 결합한 CPU에서는 그다지 큰 차이가 나지 않는다. 어떤 경우에는 컴파일러가 사람보다 더 우수한 기계어 코드를 생성하기도 한다. 연구에 따르면 프로그램을 작성하는 데 걸린 시간은 프로그래밍 언어와 상관없이 프로그램을 작성한 행의 수에 비례한다.

그러므로 그 만큼 많은 행을 담고 있는 어셈블리어 프로그램은 생산성이 낮을 수밖에 없는데, 최종 결과물마저 C 언어와 같은 고급 프로그래밍 언어와 비슷하다면 똑 같은 일을 하기 위해 시간과 노력만 낭비한 셈이 된다.

성능이 의심스러울 경우 수동 최적화를 하기 이전에 우선 컴파일러가 생성한 코드가 정말 최적인지 아닌지를 가려내야 하며, 현재 상태에서 얼마나 개선이 가능한지 평가해야 한다.

또한 성능이 중요한 프로그램을 작성할 경우 아키텍처에 맞춰 컴파일러가 해당 알고리즘을 위한 최적의 코드를 생성하도록 프로그램을 작성해야 한다. 컴파일러가 알아서 최적화된 코드를 생성하기를 기대해서는 안 된다는 말이다.

  구체적인 최적화 기법 소개

자 그럼 이제부터 C 프로그래밍 언어를 활용한 본격적인 최적화 기법을 살펴보기로 하자. 우선 ABI(Application Binary Interface)를 사용한 최적화 기법부터 소개한다. 여기에서 먼저 짚고 넘어가야 할 것은 컴파일러가 좋아하는 방식으로 프로그램을 작성해야 최적화를 달성할 수 있다는 점이다.

그럼 어떻게 해야 컴파일러가 좋아하는 방식의 프로그램이 되는 것일까? 복잡한 어셈블리어로 코딩을 하지 않더라도 프로그램 작성 과정에서 조금만 공을 들이면 그럴듯한 효과를 얻을 수 있는 규칙들이 있다. 여기에서는 가장 범용적으로 사용할 수 있는 몇 가지 기본 규칙 들에 대해 알아보자.

ABI와 최적화
ABI(Application Binary Interface)는 응용 프로그램과 운영체제, 응용 프로그램과 라이브러리 사이에 필요한 저 수준 인터페이스를 정의한다. 또, 목적 파일과 관련되어 있어 원시 코드 컴파일 과정에 개입하는 API(Application Programming Interface)보다 저수준이다.

ABI는 아키텍처와 운영체제마다 조금씩 차이가 있으며, 인수 전달 방법과 반환 값 전달 방법을 포함한 함수 호출 규약을 정의한다.

고수준에서 생각해보면 함수를 정의하는 이유는 공통된 부분을 한 곳에 모아서 중복이 되지 않도록 만들어 코드의 유지 보수성을 높이는데 있다. 저수준에서의 함수는 코드의 크기를 줄이면서 연관된 코드를 한 곳에 모아 지역성을 높임으로써 캐시 적중률을 높이는 과정에 도움을 준다.

그렇다면 만일 함수 본체 길이가 길어서 컴파일러가 함수 본체를 호출한 곳에 인라인으로 확장하지 못하여 추가적인 속력 개선이 필요하다면 어떻게 해야 할까? 이 때 ABI 규칙을 알고 있다면 상당히 유리하다. 앞서 ABI가 아키텍처마다 다르다고 했으므로 여기서는 ARM과 파워PC로 나누어 생각해보자.

● ARM
ARM ABI 정의 규칙인 APCS(ARM Procedure StandardCall)에 따르면 컴파일러는 함수로 넘기는 인수를 담는 레지스터 네 개를(a1~a4) 할당한다. 즉 표준 C로 함수를 선언할 때 인수를 네 개 이하로 유지할 경우 인수를 넘기기 위해 스택을 사용하지 않고 레지스터만 사용하게 되므로 상당한 속도 개선의 효과를 얻을 수 있다.

● 파워PC
파워PC 32비트 ABI에 따르면 일반 변수를 위해 레지스터 R3에서 R10번까지를 사용하고, 부동소수점 변수를 위해 F1에서 F8까지를 사용한다. 따라서 표준 C로 함수를 선언할 때 인수를 여덟 개 이하로 유지한다면 속도를 개선할 수 있다.

물론 인수를 레지스터로 넘기는 방식이 늘 가능한 것은 아니다. 예를 들어, 가변 길이 인수(va_arg)를 사용할 경우에는 어쩔 수 없이 스택에 인수를 집어넣어야 한다. 따라서 속도 개선이 필요하다면 가변 길이 인수를 고정 길이 인수로 변경해야 한다.

또한 레지스터 길이를 초과하는 경우(예: 구조체를 인수로 넘긴다)에도 레지스터와 스택으로 나뉘어져서 인수를 전달하게 되므로 이 점도 고려 대상에 넣어야 한다.

함수 호출 과정에서 레지스터를 사용한다고 해서 크게 속도가 높아지지 않을 것처럼 보일지도 모른다. 하지만 함수 호출이 수십만 번에 걸쳐 일어난다고 가정할 때 코드‘크기’최적화 때문에 인라인이나 매크로가 불가능한 상황에서 속도 최적화를 가장 먼저 달성하는 좋은 수단이 될 수 있다.

다른 CPU에서의 최적화 작업 수행  


비단 ARM이나 파워PC 뿐만 아니라 MIPS도 인수 전달에 레지스터 네개를 사용하며, x86_64도 인수 전달에 레지스터 여섯 개를 사용한다.

x86의 경우 ABI 수준에서는 기본적으로 스택만 사용해서 인수를 전달하도록 정해져 있다. 물론 x86에서도 컴파일러에 따라 레지스터 두세개를 사용해서 조금이라도 속도를 높이는 옵션이 존재하는 경우도 있지만 표준은 아니다. 예를 들어 마이크로소프트 비주얼 C++은 인수 전달에 레지스터 두 개를 사용하며, 볼랜드 C++는 세 개, 왓콤 C는 네 개를 사용한다.

레지스터가 적은 x86의 경우에는 스택 프레임 포인터를 저장하는 EBP(Base Stack Pointer)를 다른 목적으로 활용하도록 컴파일러가 ESP 레지스터를 교묘하게 조작하는 방법을 사용하기도 한다. 일례로 gcc의 경우에는 -fomit-frame-pointer 옵션을 붙이거나 ?O2 최적화 옵션을 붙일 경우 프레임 포인터를 사용하지 않는다.





루프 최적화
구조화된 프로그래밍 기법에서 사용하는 주요 요소로 판단과 반복이 무척 중요하다. 우선 반복을 위한 루프 최적화부터 살펴보기로 하자.

● 불필요한 반복 제거
가장 기본적인 루프 최적화 기법으로 불필요한 반복을 제거하는 기법이 있다. 3~5회 정도만 반복하고 끝나는 경우 루프를 풀어서 사용한다면 크기를 희생해서 성능을 높일 수 있다.

하지만 코드 크기가 증가할 경우 캐시 적중률이 낮아져서 성능을 높이기는커녕 성능을 떨어트리는 원인이 될 수도 있으니, 반드시 루프내에 들어있는 코드 크기가 작을 경우에만 적용해야 한다.

루프를 완전히 풀지 않고 언롤링이라는 기법을 사용해서 크기와 성능의 균형을 맞추는 방법도 있다. ARM 플랫폼을 예로 들어보자면 ARM7이나 ARM9 프로세서에서 뺄셈을 처리하는 데한 사이클, 분기를 처리하는 데 세 사이클이 소요된다. 전체적으로 루프를 한번 도는 데에 네 사이클이 필요한 셈이다.

이럴 경우에 루프문의 몸체를 여러 차례 반복해서 같은 비율만큼 반복수를 줄이면 성능을 높일 수 있다. <리스트 1>과 <리스트 2>를 비교해 보자.


 <리스트 1> 일반적인 방법의 예제




 <리스트 2> 언롤링 기법으로 작성된 예제



<리스트 1>은 일반적인 방법으로 작성했으며, <리스트 2>는 언롤링 기법으로 작성했다. 언롤링 기법을 사용할 경우 루프 반복 회수가 4 * count 사이클에서 count 사이클로 줄어들기 때문에 상당한 이득을 얻을 수 있다. 물론 언롤링 양은 무작정 늘여서는 안 된다. 코드 크기가 커지게 되면 캐시 적중률이 떨어져 사이클을 절약해서 얻는 장점을 모두 상쇄시켜버리는 탓이다.

배열 크기가 언롤링 양에 비례할 경우, 가장 높은 성능을 달성하기 때문에 만일 배열 크기가 언롤링 양의 배수로 떨어지지 않으면 배수 크기만큼만 언롤링 루프로 만들고 나머지는 루프 바깥에서 언롤링하면 된다. 결국 배열 크기를 4나 8 배수로 정렬시킬 경우 코드를 어지럽히지 않고도 루프를 2, 4, 8배로 쉽게 언롤링할 수 있는 것이다.

● 루프 결합
루프는 아키텍처를 불문하고 값비싼 연산이 필요하므로 여러루프가 있을 경우 하나로 결합하는 편이 성능면에서 월등히 유리하다. <리스트 3>과 <리스트 4>를 살펴보자.


 <리스트 3> 루프를 두 번 돌리는 예제




 <리스트 4> 루프를 한 번 돌리는 예제



예제에서 알 수 있듯이 <리스트 3>의 foo는 루프를 두 번 돌리는 반면에 <리스트 4>의 bar는 한 번만 돌린다. 이럴 경우 루프 연산에 따른 사이클을 절약할 수 있을 뿐 아니라 경우에 따라서는 캐시를 좀 더 효과적으로 사용하여 성능을 높일 수 있다.

● 불변 코드 분리
코드 내부에서 바뀌지 않은 부분은 코드 바깥으로 분리시킴으로써 반복적인 계산을 막을 수 있다. 아주 단순한 논리인 듯하지만 조금만 신경 쓰면 상당한 효과를 얻을 수 있다.


 <리스트 5> 다중 함수 호출 예제



비단 strlen 같은 함수 호출뿐만이 아니라 사칙연산과 같은 경우에도 고정된 상수 값을 루프 내부에서 매번 계산하는 대신, 변수를 하나 잡아 미리 계산한 뒤에 루프로 진입하여 상당한 개선 효과를 얻을 수 있다. 가독성이나 기타 이유로 몸체 크기가 작은 함수를 호출해야 한다면 매크로 확장이나 인라인을 고려하자.


 <리스트 6> 단일 함수 호출 예제



두 리스트 중 <리스트 6>의 bar은 매번 strlen 함수를 호출하는 foo와 달리 한번만 호출한다. <리스트 5>의 foo는 str의 길이가 길어질수록 눈에 띄게 속력이 느려지지만 bar는 항상 고정 시각에 루프를 돌릴 수 있다.

● 루프 증가를 감소로 대체
거의 대부분의 아키텍처에서는 0에 도달할 때 ZERO 플래그를 재설정한다. 때문에 줄어든 변수를 명시적으로 0과 비교할 필요가 없다. 이런 방법을 응용하면 for 루프 속도를 높이는 한 가지 힌트를 찾을 수 있다.


 <리스트 7> 루프 증가 예제




 <리스트 8> 루프 감소 예제



논리적으로는 큰 차이가 없어 보인다. 하지만 두 코드를 어셈블한 내용을 살펴보면 이야기가 달라진다. ARM의 경우를 예로 들지만 다른 아키텍처도 거의 유사하다.


 <리스트 9> 루프 증가의 어셈블 예




 <리스트 10> 루프 감소의 어셈블 예



checksum_dec와 checksum_inc를 비교해보면(밑줄 그은 곳을 참조) 플래그 설정을 위한 CMP 명령이 하나 줄어들었다는 사실을 발견할 수 있다.

● 분기 제거
루프문에 분기가 들어가면 성능이 떨어진다. 때문에 루프 내에서 분기를 어떻게 제거해야 할 지 고민해야 한다. 만약 최적화 컴파일러라는 것이 있어서 이런 일들을 개발자가 일일이 하지 않는다면 몰라도 일단 아직은 모두 수작업으로 해야 하는 일들이다. <리스트 11>을 살펴보자.


 <리스트 11> 분기가 있는 루프문



코드 논리상으로는 큰 문제가 없어 보인다. 하지만 <리스트11>을 <리스트 12>와 같이 수정하면 루프문 안에서 조건문을 제거할 수 있어 성능을 향상시킬 수 있다.


 <리스트 12> <리스트 11>에서 분기가 제거된 코드



이번에는 <리스트 1>의 checksum 함수를 <리스트 13>과 같이 고쳐보자.


 <리스트 13> <리스트 1>의 수정



코드를 이렇게 고치면 역시 처음에 count와 0을 비교하는 부분이 빠져서 두 사이클(비교에 이은 분기)을 절약할 수 있다. 물론 언롤링 기법에 비해 성능이 떨어지긴 하지만 코드 크기를 유지한 상태에서 처리 속도도 어느 정도 개선할 수 있으니 두 마리 토끼를 모두 잡아야 하는 경우에 유용하게 쓸 수 있다.

왜 이렇게 루프 최적화에 목숨을 거나?  


다른 최적화 기법도 많은 상황에서 루프 최적화에 상당한 지면을 할애해서 다양한 방법을 소개하는 이유는 우리 주변에서 생각보다 루프와 관련된 성능 저하가 많이 일어나기 때문이다.

임베디드 장비를 개발할 때 시스템 속도를 개선하기 위해 사방팔방으로 뛰어다녀 보니 결국 루프 횟수를 줄이거나, 루프 하나를 돌 때 단 몇 사이클이라도 아끼는 방법으로 귀결됨을 여러 차례 목격했다.

지금도 기억나는 가장 극적인 성능 개선은 수천 번에서 수만 번을 반복하는 루프 내부의 불변식을 매크로로 정의해서 확장했을 때 성능이 자그마치 2배에서 10배까지 향상되었을 때였다.

앞서 strlen과 같은 값비싼 함수를 루프 내부에 넣은 예제를 보고 웃고 넘길지 모르겠지만, 주변 코드를 살펴보면 의외로 이런 사소하다고 보면 사소하지만 성능에 치명타를 입히는 코드가 많다. 최적화가 필요하다면 가장 먼저 루프와 루프 내부에 들어있는 분기문을 집중 공략하기 바란다.




분기 최적화
루프 최적화에 이어 이번에는 분기 최적화에 대해 알아보자. 루프 최적화는 조금만 손을 보면 상당한 성능 개선을 이룰 수 있는 반면 분기 최적화는 구현도 어렵고 성능 개선 효과도 미미하다. 하지만 몇 가지 규칙을 알고 있다면 프로그램 작성 과정에서 자연스럽게 성능을 높이는 출발점이라는 점을 염두에 둔다면 반드시 관심을 가져야 할 기법이다.

● 기본 switch ~ case 문 최적화
프로그램을 작성하다 보면 switch ~ case 문을 자주 사용하게 된다. 하지만 switch ~ case 문은 실행 중에 수많은 조건을 판별해서 분기해야 하기 때문에 CPU 입장에서는 상당히 난감한 구문이라고 보면 틀림없다. <리스트 14>를 살펴보자.


 <리스트 14> switch ~ case 문 예제



<리스트 14>와 같은 코드를 작성했을 경우 컴파일러는 10, 12, 14, 16, 20일 경우를 일일이 판단해야 하는 탓에 상당한 어려움을 겪는다. 파워PC의 어셈블리 코드인 <리스트 15>를 보면 <리스트 14> 코드가 얼마나 복잡하게 만들어지는지 알 수 있다.


 <리스트 15> <리스트 14>의 파워PC 어셈블리 코드



하지만 아주 간단한 수정만 한 <리스트 16>을 어셈블리 코드로 만들면 전혀 다른 결과를 얻을 수 있다.


 <리스트 16> 수정된 switch ~ case 문 예제



<리스트 16>을 어셈블리 코드로 만들면 <리스트 14>때 보다 코드의 양도 훨씬 적어지고 판단 횟수도 줄어드는 것을 확인할 수 있다. 별로 다르지 않은 코드지만 그 결과는 큰 차이를 나타내는 것이다. 그리고 이 차이의 중심에는 컴파일러가 좋아하는 방법으로 프로그램을 작성한다는 규칙이 있다.


 <리스트 17> <리스트 16>의 어셈블리 코드



● 고급 switch ~ case 문 최적화
앞에서는 아주 기초적인 구성의 switch ~ case 문의 최적화 방법에 대해 알아보았다. 이번에는 조금 더 복잡한 형태의 Switch~ case 문을 이용해서 최적화 하는 방법에 대해 알아보자.


 <리스트 18> 고급 switch ~ case 문 예제



감이 있는 개발자라면 <리스트 18>과 같은 코드가 테이블 검색법을 사용할 경우 제격이라는 생각이 들지 모르겠다. 이번에는 파워PC 어셈블리어와 ARM 어셈블리어를 동시에 제시해서 비교해보기로 하자. 먼저 <리스트 19>를 통해 테이블 검색 기법을 사용하는 파워PC부터 살펴보자.


 <리스트 19> <리스트 18>의 파워PC 어셈블리 코드



<리스트 20>은 테이블 검색 기법을 활용하는 ARM 어셈블리어의 코드이다. code_for_case_?를 담은 TABLE을 정의하고, 오프셋을 계산해서 바로 프로그램 카운터를 적재하는 방법을 사용할 경우 최적화를 달성할 수 있다.


 <리스트 20> <리스트 18>의 ARM 어셈블리 코드



<리스트 18>과 같은 방식은 아주 빠르게 실행되기 때문에 switch 문을 사용하더라도 비교에 따르는 부하가 거의 없다. 물론 최적화 컴파일러 종류나 문맥에 따라 범위 비교나 테이블 방식으로 코드를 생성하지 못할 수도 있다. 반면에 무작의 case처럼 100% 불가능한 상황이 아님에 주목하자.‘ 할 수 없다’와‘할 수 있다’는 하늘과 땅 차이기 때문이다.

고급 최적화 기법: ARM CPU 아키텍처에 밀접한 memcpy 루틴
지금까지는 구조화 프로그래밍에서 가장 많이 쓰이는 요소인 반복과 분기에 대한 C 프로그래밍 최적화 방안에 대해 알아보았다. 그럼, CPU 아키텍처에 밀접한 방식으로 어셈블리 프로그램을 작성해야 하는 경우는 어떨까? 물론 이 경우에도 최적화를 위해 사용할 수 있는 기법들이 있다.

그 중 가장 대표적인 것이 바로 메모리 관련 함수를 작성할 때이다. 실제로 최적화된 메모리관련 라이브러리는 대부분 어셈블리 언어로 작성되어 있다.

리눅스 커널 내부에서도 자주 사용하는 메모리 함수는 모두 아키텍처 별로 어셈블리어를 사용한다. 리눅스 커널 코드를 받아와서 arch/아키텍처/lib 아래를 보면 아키텍처 별 최적화 기법을 총정리한 어셈블리 코드를 확인할 수 있다.

논리 트리와 해시를 사용한 수동 switch ~ case 문 제작  


case 문에 들어가는 값이 연속적인 고정 범위일 경우에는 컴파일러 차원에서 어느 정도 최적화가 가능하다. 하지만 일반적인 switch ~ case 문에서는 어떻게 할까? 크게 두 가지 방법을 생각해볼 수 있다. 하나는 선형 스위치 트리에서 벗어나 깊이가 얕은 트리를 구성하는 방법이다.

나머지 하나는 case 문에 들어가는 조건이 규칙성을 가질 경우 해시 테이블을 만들어서 대응하도록 하는 방법이다. 하지만 둘 다 어셈블리어를 사용해서 코딩을 진행해야 하므로 실제 적용 과정에서 투입한 비용에 비해 이익은 그다지 크지 않다.

결국 switch ~ case 문을 사용할 경우 최대한 case 문에 일관성 있는 조건을 지정해야 컴파일러를 사용한 자동 최적화 작업이나 어셈블리어를 사용한 수동 최적화 작업이 쉬워진다.





관련 라이브러리는 대부분 어셈블리 언어로 작성되어 있다. 리눅스 커널 내부에서도 자주 사용하는 메모리 함수는 모두 아키텍처 별로 어셈블리어를 사용한다. 리눅스 커널 코드를 받아와서 arch/아키텍처/lib 아래를 보면 아키텍처 별 최적화 기법을 총정리한 어셈블리 코드를 확인할 수 있다.

CPU 아키텍처에 밀접한 최적화의 좋은 예로 uClibc에서 구현하고 있는 memcpy(memmove, bcopy) 루틴을 들 수 있다. 이 함수를 작성하는 과정에서 사용하는 각종 최적화 기법을 이해하고 있다면 어렵지 않게 다른 부문에도 적용할 수 있을 것이다.

uClibc에 들어있는 memcpy 함수 구현부는 상당히 길고 복잡하기 때문에 모두 소개하기는 어렵다. 여기에서는 일단 내부에서 어떤 점에 주목해서 구현했는지에 대해 알아본다.

복사 과정에서 조금이라도 속력을 높이기 위해 다양한 조건을 고려한다.

방향: 정방향 복사인가 역방향 복사인가(복사 시작 주소와 복사 대상 주소 크기를 비교한다)

정렬: 복사 시작 주소와 복사 대상 주소 위치가 정렬되어있는가

크기: 12바이트나 32바이트 단위로 복사가 가능한가

각 경우를 모두 따져서 해당 조건에 맞는 서브루틴으로 분기하기 때문에 memcpy를 구현하는 어셈블리 코드 길이가 무척 길어졌다. ARM CPU에서 제공하는 LDM/STM 명령을 사용해서 한번에 블록 전송이 가능한 경우를 살피기 위해 크기를 따지며, 정렬의 경우 메모리 버스와 캐시 라인을 효과적으로 사용하기 위한 목적으로 따진다. ARM CPU의 경우 엔디안을 리틀이나 빅 양쪽 중 하나를 사용할 수 있으므로, 방향까지 잘 따져야 한다.

32비트 블록 전송을 위한 ARM 어셈블리 코드 조각을 보면 <리스트 21>과 같이 단순하면서도 무척 효율적이다.


 <리스트 21> 32비트 블록 전송을 위한 ARM 어셈블리 코드



앞에서 설명한 조건을 고려해보면 Lmemcpy를 사용할 경우에는 복사 시작과 복사 대상 주소가 정렬이 되어있고, 전체 자료 크기가 32비트 배수가 될 경우 최대의 효과를 올릴 수 있다. 이래서 우리는 때로 C만 사용하는 경우에도 별로 상관없어 보이는 어셈블리어로 구현된 라이브러리를 확인할 필요가 있는 것이다.

C 언어를 컴파일러가 좋아하는 방식으로 제대로 작성하기만 해도 상당한 성능 개선을 달성할 수 있다는 사실을 직접 확인했다. 물론 정말 좋은 컴파일러라면 이번 기사에서 소개한 내용에 맞춰서 프로그램을 작성하지 않더라도 개발자 의도를 파악해서 자동으로 처리해줘야 하겠지만 유감스럽게도 이렇게 훌륭한 컴파일러는 존재하지 않는다.

컴파일러 이론이 계속해서 발전하고 최적화 기능을 강화한 컴파일러 구현 결과물이 계속해서 나오고는 있지만 그 만큼 컴퓨터 아키텍처와 알고리즘이 복잡해졌기 때문에 효과가 반감되는 느낌이다.

결국 최고 성능을 달성하기 위해서는 개발자가 만든 함수를 어셈블리 코드로 바꿔서 어떤 문제점이 있는지 파악하고 속도를 높이기 위해 다른 코드들과 비교하며 어떤 제약점이 있는지 파악해야 한다. 이렇게 문제점과 제약점을 파악하고 나면 컴파일러가 좋아하도록 최적화한 코드를 C로 만들 수 있게 된다.

최적화와 관련해서 주로 C 언어적인 특성에 집중하다 보니 이번 기사에서는 CPU 메모리버스 특성, CPU 캐시 라인 정렬, 파이프라인, 부동소수점 루틴까지 고려한 최적화 방식은 다루지 않았다. 다음에 기회가 생기면 CPU 아키텍처와 관련해서 좀 더 깊이 있는 최적화 기법을 다루기로 약속하며, 쓸만한 참고 자료를 정리해 두었으니 참고하자. @


참고자료
1. ARM System Developer’s Guide, (주) 씨랩시스 역, Andrew N. Sloss, Dominic Symes, Chris Wright 저, 2005년 사이텍 미디어 출간.
2. 임베디드 메모리 최적화 기법, 여인춘 역, Kris Kaspersky 저, 2004년 에이콘 출간.
3. GCC 완전 정복, 김경헌 역, Kurt Wall과 William von Hagen 저, 2006년 에이콘 출간.
4. 리눅스 문제 분석과 해결, 박재호 역, 마크 윌딩 저, 2006년 에이콘 출간.
5. 리눅스 디버깅과 성능 튜닝, 박재호 역, 스티브 베스트 저, 2006년 에이콘 출간.
6. Inside the machine, John Stokes, 2007. No Starch Press 출간.
7. 위키피디아(최적화): http://en.wikipedia.org/wiki/Optimization_%28computer _science%29
8. PowerPC Compiler Writer’s Guide: http://openlook.org/blog/684
9. x86 ABI: http://www.caldera.com/developers/devspecs/abi386-4.pdf
10. x86_64 ABI: http://www.x86-64.org/documentation/abi.pdf
11. PowerPC 32bit ABI: http://www-3.ibm.com/chips/techlib/techlib.nsf/ techdocs/852569B20050FF77852569970071B0D6/$file/eabi_app.pdf
12. PowerPC 64bit ABI: http://www.freestandards.org/spec/ELF/ppc64/PPCelf64abi-1.9.html



* 이 기사는 ZDNet Korea의 제휴매체인 마이크로소프트웨어에 게재된 내용입니다.

출처 : ZDNet Korea
Creative Commons License
Creative Commons License
Posted by 파랑소리 beatblue

트랙백 주소 :: http://beatblue.tistory.com/trackback/202 관련글 쓰기

  1. Subject: Allentown water heaters

    Tracked from Allentown water heaters 2014/09/21 22:11  삭제

    지구에매달리기 ::

댓글을 달아 주세요

1부 | 개발 환경의 변화와 대응하는 프로그래밍 최적화의 재발견
2부 | OPP적 개발을 위한 C++ 프로그래밍 최적화 기법
3부 | 리팩토링을 이용한 자바 성능 최적화 기법
4부 | 성능 이슈 해결을 위한 닷넷 프로그래밍 최적화 기법
5부 | ARM과 파워pc에 기반한 임베디드 프로그래밍 최적화 기법
닷넷 기술이 정식으로 런칭된지 5년 째에 접어들고 있다. 5년 만에 버전은 1.0에서 1.1로 그리고 2.0으로 발전해 왔다. 내년 상반기에는 정말 엄청난 변화와 쓸 만한 기술을 가득 담은 프레임워크 3.0도 발표 될 예정이다. 닷넷은 자바나 다른 언어들에 비해서 상대적으로 어리다. 그 탓에 닷넷 기술을 사용하는 개발자들의 경우 사소한 실수로 성능적인 이슈를 만들어 내는 경우가 많다. 4부에서는 닷넷 프로그래밍의 성능적인 이슈를 예방할 수 있는 다양한 팁들을 소개한다.

닷넷 기술이 정식으로 런칭 된지도 벌써 4년이 넘어간다. 4년 동안 닷넷 기술이 걸어온 길을 보면 정말 숨 가쁘게 달려온 것 같다. 그 동안 버전이 1.0에서 1.1로 또 1.1에서 2.0으로 바뀌었고 내년에는 버전 3.0이 발표될 예정이다. 닷넷의 개발환경 자체는 비주얼 스튜디오라는 강력한 도구에 의해서 많은 부분들이 지원된다.

그 덕에 닷넷 개발자들은 프로젝트 파일이나 솔루션 파일의 구조나 작성방법 같은 기본적인 부분을 몰라도 개발하는데 전혀 지장이 없을 정도다.

때로는 지나치게(?) 편리한 개발 환경에 의존하다 보면 개발 생산성은 확실히 보장 받을 수 있을지 몰라도 성능에 관련된 부분들을 놓치기 쉽다. 항상 이 바닥의 지론은 개발자의 고생과 소프트웨어의 성능은 비례 관계에 있다는 점이다.

닷넷 자체는 기계어로 바로 번역되어 있는 상태가 아니라 중간 상태인 IL형태로 번역되어 있다. 실행 시마다 기계어로 번역되어서 실행되는 JIT(Just In Time) 컴파일러 방식으로 최적화 되어있다. 아무래도 중간에 한 단계를 거치는 탓에 VC++등에서 개발한 네이티브 프로그램들에 비해서는 성능이 떨어지는 것도 사실이다.

하지만 일반적인 소프트웨어를 개발하는데 있어서는 이슈가 되지 않는다. 성능 이슈의 대부분은 닷넷 자체의 문제라기 보다는 닷넷을 개발하는 방식의 문제나 네트워크 혹은 데이터베이스의 병목현상 때문인 경우가 대부분이다.

그 덕에 닷넷 자체에서 성능을 위해서 튜닝해야 할 부분은 사실 그리 많지 않다. 이제 부터 몇 가지 일반적인 튜닝 포인트들에 대해 살펴보자.

  StringBuilder의 사용

많은 사람들이 알고 있는 것처럼 string 타입의 연산에는 많은 오버헤드가 발생한다. string 타입의 연산을 하면 기존의 값이 바뀌는 것이 아니라 별도의 메모리를 새로 할당하고 새로 할당한 메모리에 연산의 결과를 넣는다.

string 타입의 연산을 반복해서 사용할 경우에는 계속 메모리를 할당하고 복사하는 동작을 반복하면서 쓸데없는 부하를 일으킨다. 그래서 대부분의 경우 string 타입의 연산이 잦은 곳에는 string을 사용하지 말고 StringBuilder를 사용하라는 권장을 어디서나 쉽게 들을 수 있는 것이다.

StringBuilder는 기본적으로 충분한 버퍼를 확보하고 계속 문자열을 추가(Append)하는 방식이기 때문에 기본적으로 문자열처럼 계속해서 메모리를 할당받지 않아도 된다. 때문에 보통 긴문자열이나 SQL 쿼리를 조합하는 등의 용도로 널리 사용하고있는 방식이다.

<그림 1> 삽입 string과 StringBuilder의 메모리 할당

StringBuilder를 사용하는 방법은 아주 쉽다. 먼저 기존의 string으로 구성된 <리스트 1> 예제를 살펴보자.


 <리스트 1> 일반적인 string 연산의 예



<리스트 1>을 StringBuilder를 사용하는 예제로 바꾸어 보면 <리스트 2>처럼 된다.


 <리스트 2> StringBuilder를 이용한 문자열 연산의 예



StringBuilder를 사용한다고 해서 무조건 성능에 도움이 되는 것은 아니다. StringBuilder의 경우 기본 버퍼 사이즈가 16바이트 밖에 되지 않는 탓이다.

만약 16바이트가 넘게 되면 String Builder가 알아서 32바이트로 다시 버퍼를 확장한다. 만약 32바이트마저도 넘게 되면 다시 64바이트를 확보한다. String Builder는 초기에 할당된 사이즈를 넘어서게 되면 계속해서 현재 메모리의 두 배에 해당하는 메모리를 확보하게 된다.

이때 기존에 할당받은 메모리를 두 배로 늘리는 것이 아니라 두 배의 메모리를 새로 확보해서 새로 확보한 메모리로 string을 옮기는 방식으로 동작한다.

즉 할당받은 메모리가 넘치게 되면 string을 사용하는 것이나 다름없는 셈이다.이를 피하려면 System.Text.StringBuilder sb = System.Text.StringBuilder(100); 처럼 처음에 StringBuilder를 생성할 때 생성자에 충분한 버퍼 사이즈를 지정하면 된다.

  DataReader의 활용

대부분의 프로젝트에서 DataReader는 꼭 필요한 경우가 아니면 잘 사용되지 않는 객체다. 대부분의 데이터베이스 작업은DataAdapter를 이용해서 DataSet에 결과를 담는 방식으로 구성되어 있다. 다양한 기능의 활용을 위해서는 DataSet을 이용하는 게 정답이겠지만 성능이라는 문제만 놓고 보았을 때는 DataReader를 사용하는 편이 올바른 선택이 될 것이다.


 <리스트 3> DataReader의 사용 예



DataReader는 DataSet에 비해서는 기능이 많이 떨어지지만 그 대신 구조가 간단해서 간단한 스키마정보와 순수 데이터만 존재한다. 반면에 DataSet은 모든 데이터의 상태정보까지 모두 유지해야 하기 때문에 상대적으로 메모리도 훨씬 더 많이 차지하고 생각보다 상당히 무거운 객체이다.

따라서 조회 위주의 대량 데이터인 경우 DataReader로 코드를 수정하면 상당한 성능상의 이점을 얻을 수 있다.

하지만 DataReader로 성능상의 이점을 얻으려면 몇 가지 주의할 점이 있다. DataReader는 열려있는 동안 계속해서 Connection객체를 독점해 버리는 문제가 있으니, 사용할 때만 열었다가 사용이 끝나면 잽싸게 DataReader.Close()를 호출해 주는 센스가 필요하다. 또 하나의 문제는 DataReader가 웹 서비스를 통해서 전달되지 않는다.

좀 더 정확하게 얘기 하자면 DataReader는 직렬화(Serialize)가 되지 않는다. 때문에 웹 서비스를 사용하는 곳에서는 기본적으로 DataSet이나 Array을 이용해서 데이터를 전달하는 방식을 원칙으로 하고 있다.

DataReader를 직접 웹서비스로 넘기는 것은 불가능 하지만 DataReader를 DataSet으로 변환해서 넘기는 것은 가능하다.


 <리스트 4> DataReader를 DataSet으로 변환하는 함수



<리스트 4>에서 소개하고 있는 함수를 이용하면 DataReader를 DataSet으로 변환할 수 있다. 물론 일일이 루프를 돌면서 반복하는 까닭에 별도의 오버헤드는 발생한다. <리스트 4>에서 사용하는 방법은 COM+ 혹은 일반 애플리케이션에서는 성능상의 여유가 충분한데 데이터베이스의 병목현상이 발생할 때 사용하면 좋은 방법이다.

만약 닷넷 프레임워크 2.0을 사용한다고 하면 더 좋은 방법이 있다. DataTable.Load() 메소드를 사용하는 방법이다. 사용하는 방법은 DataTable.Load(DataReader dr)와 같이 Data Table을 먼저 생성해서 여기에 Load()에 DataReader 객체를넘겨주기만 하면 된다.

정말 이걸로 모든 것이 다 된다. 이렇게만 하면 DataTable이 알아서 스키마를 파악해서 DataTable의 컬럼 스키마를 생성하고 DataReader의 데이터로 DataTable을 채운다.

물론 성능상의 이점도 분명한데 반복문을 열심히 도는 것에 비해서 엄청난 속도 향상이 있다. 또 다르게 보면 DataAdapter를사용하지 않아도 된다는 장점도 있다.

사실 따지고 보면 ADO.NET 1.x에서 ADO.NET 2.0으로 변경하기만 해도 대량의 데이터를 다루는데 있어서 상당한 성능상의 이점을 가질 수 있다. ADO.NET 2.0에서는 내부적으로 인덱스 엔진을 거의 다시 작성하는 대공사를 했다고 한다.



<표 1>을 보면 데이터 건수가 많아질수록 ADO.NET 2.0의 효율성이 더 잘 보이고 있는데 1만 건 정도의 데이터를 처리할 때는 큰 차이가 없다가 10만 건 부터는 거의 두 배 차이가 나는 것을 볼 수 있다. 또 100만 건을 처리할 때는 사실 비교가 안 될 정도로 엄청난 차이를 보이고 있다.

  DataTableReader

앞서 알아본 DataReader는 DataSet에 비해서 그 구조가 극히 가볍고 효율적이긴 하지만 사용상의 제약과 불편함으로 인해많이 사용되지 않고 있다.

‘DataReader처럼 가벼우면서도 DataTable만큼이나 편리한 객체는 없을까?’라는 고민 해본 독자들이 있다면 그 해답으로DataTableReader를 추천한다. ADO.NET 2.0부터는 DataTableReader 객체가 추가되어 가벼운 데이터 객체로 활용할 수있는 방법을 제공해 주고 있다.

DataTableReader는 DataTableReader dtr = DataTable.CreateDataReader();와 같이 생성해서 사용할 수 있다. DataTableReader는 DataReader와 달리 Connection 객체를 독점하지 않는 덕에 사용이 편리하고 또 DataBinding이 가능하다.

DataTableReader는 조회성 데이터를 저장해 두거나 유지할 필요가 있을 때 유용하게 사용할 수 있을 것이다.


 <리스트 5> DataTableReader의 사용예



  SqlBulkCopy의 활용

많은 양의 데이터를 한꺼번에 INSERT나 UPDATE를 해야 할 경우 데이터베이스에는 꽤 긴 시간의 트랜잭션이 발생한다.트랜잭션의 특징상 길어지면 질수록 더 많은 시간이 걸리기 때문에 트랜잭션이 사용되는 작업은 최소한으로 유지해야만 한다.

트랜잭션을 최소한으로 유지하는 방법은 첫 째, DELETE 쿼리를 먼저 사용해서 먼저 삭제를 하고 일괄적으로 INSERT 하는 것이다. 이 방법은 UPDATE 작업을 할때 UPDATE 할 대상이 많을 경우 UPDATE 쿼리를 일일이 사용하는 것 보다 효과적으로 사용할 수 있다.

둘째, UPDATE 구문에서 JOIN문을 잘 활용하면 관련 있는 데이터를 한 번에 일괄 업데이트 할 수 있다.


 <리스트 6> JOIN문을 활용한 일괄 UPDATE



<리스트 6>은 Table1의 Column1을 Table2의 Column1의 값으로 업데이트를 하는 구문이다. Table1과 Table2를 code라는 이름의 컬럼 값으로 join해서 일괄 업데이트 한다. 이와 같이 하게 되면 루프를 돌면서 한 레코드씩 업데이트를 하는 경우보다 비약적인 성능 향상을 볼 수 있는데 필자의 경우도 9분이 넘게 걸리던 업데이트 작업이 4초로 줄어든 경우를 겪었다.

아무튼 위에서 설명한 두 가지 방법은 쿼리에서 할 수 있는 방법이고 여러분들이 작업하고 있는 환경이 ADO.NET 2.0을 사용하고 SQL Server 2005를 사용하고 있다면 또 다른 방법을 사용할 수 있다.

셋째, SqlBulkCopy의 이용
흔히 용산에서 공시디를 살 때 보면 벌크시디라고 거의 헐값에 나오는 재품들이 있다. 벌크란 대량으로 생산해서 단가를 낮춘 제품들이다.

SqlBulkCopy도 대량으로 데이터를 처리해서 처리 시간을 획기적으로 낮출 수 있는데 세 개의 컬럼이 있는 간단한 테이블을 샘플로 100만건을 입력하는 테스트를 했었는데 필자의 노트북(CPU: 1.3G 메모리:1G)에서 딱 5초 걸리는 기염을 토해냈다. 엄청난 성능에 비해서 사용하는 방법도 너무 간단하다.


 <리스트 7> SqlBulkCopy의 활용



SqlBulkCopy를 사용하려면 SqlBulkCopy의 생성자에 데이터베이스 연결문자열을 넘겨주고 DestinationTableName에 대상 테이블의 이름을 설정해준다. 그 뒤에 데이터가 들어 있는 DataSet을 WriteToServer에 넘겨주면 바로 작업은 끝난다. 이때 DataSet에 있는 DataTable의 컬럼명과 실제 물리적인 Table의 컬럼명이 일치해야 한다.

DataTable binary serialization option
DataTable이 닷넷 프레임워크 1.1까지는 웹 서비스로 전달되지 못했던 것이 닷넷 프레임워크가 2.0으로 버전업되면서 웹 서비스로 전달 될 수 있도록 바뀌었다. 또 다른 변화가 웹 서비스로 전달될 때 직렬화(Serialize) 과정을 거치게 되는 것인데 기본 값으로 직렬화를 거치면서 XML로 변환되어 전달된다.

웹 서비스의 문제점 중에 하나가 직렬화 과정에서 데이터 크기가 상당 부분 증가되어서 전달에 시간이 많이 걸리는 다는 것이다.

따라서 XML대신 객체를 바로 binary형태에 제일 가깝게 넘길 수 있으면 직렬화 과정에서 발생하는 오버헤드와 데이터 크기를 줄일 수 있다. 또, ADO.NET 2.0부터는 DataSet객체에 RemotingFormat이라는 속성이 새로 추가되었다.

DataSet.RemortingFormat은 열거형으로 제공되는 Serialization Format.XML나 SerializationFormat.Binary 중 하나를 선택할 수 있다. 이중에서 기본 값은 SerialzationFormat.XML이다.

<화면 1> XML 타입으로 직렬화된 결과

<화면 1>에서 기본 값인 XML 타입으로 직렬화 되었을 경우 모든 데이터가 텍스트 방식으로 변환된 것을 볼 수 있다. 이걸Binary 타입으로 직렬화 하게 되면 <화면 2>와 같은 결과를 볼 수 있다.

<화면 2> Binary 타입으로 직렬화된 결과

Binary 타입으로 직렬화 되었을 경우에 데이터를 눈으로 확인하기는 어렵지만 성능 향상에는 도움이 될 것이다. 하지만 이 방식의 경우 닷넷 기반끼리의 통신에만 사용할 수 있다는 한계가 있다.

이 외에도 ADO.NET이 2.0으로 버전업되면서 많은 기능들이 추가 되었는데 비동기 쿼리 작업이나 SqlNotification과 같은 기능들을 적절히 잘 활용한다면 응답시간의 개선에 상당한 도움이 될 것이다.

  웹 서비스의 데이터 압축

Binary 타입으로 직렬화 시켜서 성능을 개선할 수 있다고 했지만 정말 큰 데이터의 경우는 이 역시 어렵다. 서버와 클라이언트의 성능은 비약적으로 향상된 것에 비해서 네트워크 속도는 아직 큰 향상이 없는 탓에 거의 대부분의 네트워크에서 병목현상이 발생된다.

이 병목현상을 제거하기 위해서는 웹 서비스에서 데이터를 압축하는 방법을 사용해야 한다. 즉 데이터를 보내는 측에서 압축해서 보내고 받는 측에서 이 데이터를 풀어서 해석하면 되는 것이다.

데이터를 압축하지만 기본적인 웹 서비스의 포맷은 텍스트 방식의 XML로 데이터를 넘겨야 한다. 때문에 데이터는 압축해서 base64 방식의 문자열로 리턴 하도록 되어있다.

데이터를 압축하기 위해서 흔히 사용되는 방식은 System.IO.MemoryStream과 System.IO.Compression.DeflateStream을 이용하는 것이다. 먼저 데이터가 들어 있는 DataSet이 ds 이름으로 넘어 왔다고 가정할 경우 먼저 넘어 온 DataSet을 바이너리 포맷으로 변환해서 메모리 스트림으로 전환 압축 할 수 있는 준비를 해야 한다.


 <리스트 8> DataSet을 바이너리 포멧으로 전환한 뒤 배열로 전환



일단 여기 까지 준비 되었다면 실제로 그 뒤의 내용은 아주 간단하다.


 <리스트 9> 메모리 스트림을 압축하고 배열로 리턴



System.IO.Compression.DefateStream의 경우 데이터를 압축하거나 혹은 그 반대로 압축을 해제할 수 있는 기능이 있는데 기본적으로 CompressionMode에 의해서 기능이 결정된다.

- CompressionMode.Compress 데이터를 압축하는데 사용되는 모드이다.
- CompressionMode.Decompress 데이터 압축을 해제하는데 사용되는 모드이다.


 <리스트 10> 웹 서비스에서 데이터 압축의 활용 예



이렇게 데이터를 압축하고 나면 그 결과는 base64로 압축되어서 전송되는데 이럴 경우 압축률은 생각 이상으로 높다. 거의 대부분의 경우 90% 이상의 압축률을 보여주고 있으며 보통 97%까지도 압축되는 것을 볼 수 있다. 100MB의 데이터를 네트워크로 넘겨야 할 것을 3MB로 줄일 수 있는 엄청난 성능 향상이라고 할 수 있다.

<화면 3> 압축된 결과

  ASP.NET의 성능 개선

웹 개발에 있어서 가장 먼저 고려해야 할 부분이 바로 객체의 라이프 사이클이다. 웹이란 환경 자체가 모든 상태를 유지하기 어렵기 때문에 상태와 객체를 유지하는 일이다. ASP.NET에서 캐시를 잘 활용한다면 이런 문제를 상당부분 해결할 수 있는 방법이 된다.

응용 프로그램 캐시
ASP.NET의 응용 프로그램 캐시는 키와 값을 이용해서 원하는 데이터를 메인 메모리에 캐시 할 수 있는 방법을 제공해 준다. ASP.NET의 캐싱 알고리즘은 상당히 강력한데 시스템 메모리가 부족해지면 ASP.NET에서 알아서 거의 사용되지 않거나 불필요한 항목을 제거한다.

이런 기술을 MS에서는 ‘청소’기법이라고 하는데 필요에 따라서 청소의 우선순위를 개발자가 직접 지정할 수 있게 해서 중요한 항목의 경우 우선적으로 보호할 수 있는 방법을 제공해 준다.

Cache[“CacheItem1”] = “Cached Item 1”; 혹은 Cache.Insert (““CacheItem2”,“ Cached Item 2”);

캐시는 메모리 상에 그 값이 유지되기 때문에 만료 시간을 지정해서 일정 시간이 지나면 자동으로 제거할 수 있는 방법도 경우에 따라서 유용하게 사용할 수 있다. Cache.Insert()에서 TimeSpan을 이용해서 지정하는 것이다.

Cache.Insert“( CacheItem7”,“ Cached Item 7”, null, System.Web. Caching.Cache.NoAbsoluteExpiration, new TimeSpan(0, 10, 0));

캐시는 청소 기법에 의해서‘알아서’제거 될 수도 있기 때문에 중요한 데이터인 경우에는 반드시 높은 우선순위를 지정해 주어야 한다.

Cache.Insert(““CacheItem8”,“ Cached Item 8”,
null, System.Web.Caching.Cache.NoAbsoluteExpiration,
System.Web.Caching.Cache.NoSlidingExpiration,
System.Web.Caching.CacheItemPriority.High, null);

여기서 눈여겨 볼 부분이 System.Web.Caching.CacheItem Priority.High이다. 우선순위를 결정하는 부분으로써 CacheItemPriority는 열거형으로 제공된다. CacheItemPriority는 <표2>를 참조하기 바란다.



캐시 대신 Application, Session, State를 이용해도 된다고 말하는 독자가 있을지도 모르지만 역시 가장 가볍게 사용할 수 있는 방법은 캐시다. 전체적으로 걸리는 부하를 보면 Application >Session > Cache 순서로 부하를 일으킨다.

State는 웹 트래픽을 증가시키기 때문에 메모리에 부하를 일으키지는 않지만 성능이라는 관점에서 보면 똑같이 자제해야 할 대상이다.

페이지 출력 캐시
ASP 시절에는 모든 페이지가 인터프리터 방식으로 매번 라인 단위로 분석되고 해석되어서 실행되었다. 이 방식은 지금도 많이 사용되고 있는 PHP에서 사용되는 방식이다. ASP.NET은 ASP와는 달리 처음부터 컴파일 되어 있는 덕에 상당히 빠른 응답속도를 보여준다.

단 첫 번째 호출에 대해서는 인스턴스를 발생시키기 위해서 어쩔 수 없는 지연시간이 발생되긴 하지만 그래도 전체적인 성능 향상에 비해서는 아주 미미한 수준이다.

인스턴스가 발생되어 있는 상태에서 ASP.NET 페이지 요청이 들어오면 페이지를 출력하기 위해서 해당 페이지를 HTML로 변환하는 작업을 하게 되는데 이런 작업을 렌더링이라고 한다.

페이지 출력게시는 처리된 ASP.NET 페이지의 콘텐츠를 메모리에 저장해서 자주 호출되는 페이지의 렌더링 작업을 최소화 할 수 있게 해준다. 이렇게 하면 페이지 처리 주기를 다시 실행하지 않고도 ASP.NET에서 페이지 응답을 클라이언트에 보낼 수 있게 한다.

페이지 출력 캐시는 자주 변경되지 않지만 만드는 데 처리 시간이 많이 소요되는 페이지에 아주 효과적으로 사용할 수 있다. 특히 실적이나 자제 목록과 같이 자주 변경되지 않으면서 많은 양의 데이터를 처리하는 페이지인 경우에는 그 효과를 확연히 느낄수 있다.

페이지 출력 캐시를 사용하는 방식은 각 페이지에 대해 페이지 캐싱을 개별적으로 구성하는 것이다. 또, 캐싱 설정을 한 번 정의한 다음 여러 페이지에서 이러한 설정을 사용할 수 있는 캐시 프로필을 Web.config 파일에 만들 수 있다. 페이지 출력 캐시는 두가지 방식을 사용할 수 있다.

● 전체 페이지 캐시: 페이지 전체를 메모리에 저장해서 클라이언트의 요청에 사용한다.
● 부분 페이지 캐시: 페이지에서 지정된 일부를 캐시하고 자주 변경되는 부분은 동적인 상태로 유지한다.

페이지의 출력 캐시를 지정하는 방법은 두 페이지 지시자에서 설정하는 방식과 코드에서 직접 설정하는 방법 두 가지다. 이렇게 페이지 출력 캐시를 지정할 때 효과적으로 캐시를 유지하기 위해서 사용되는 부분이 바로 Duration 속성이다. Duration은 캐시의 유지시간을 지정해 준다.

● 페이지 지시자를 이용하는 방법:
<%@ OutputCache Duration=”60”VaryByParam=”None”%>
● 코드에서 직접 지정하는 방법: Response.Cache.SetExpires (DateTime.Now.AddSeconds(60));

부분 페이지 캐시도 역시 페이지 지시자와 코드에서 직접 지정하는 방법 중 선택해서 지정할 수 있다.

● 페이지 지시자를 이용하는 방법:
<%@ OutputCache Duration=”120”VaryByParam=”None”%>
● 코드에서 직접 지정하는 방법: 캐시하려고 하는 클래스의 메타데이터에 <PartialCaching(120)>를 지정한다.

캐시 기법을 적절히 잘 활용하면 적은 메모리를 이용해서 상당한 효과를 볼 수 있기 때문에 적절히 잘 이용해주는 가이드라인을 프로젝트 기획단계에서 부터 잘 제안해야 한다.

세션의 효율적인 사용
세션은 생각 보다 무척 신중하게 사용되어야 하는 메모리 자원이다. 세션은 개별적인 유저들에게 모두 할당되어야 한다. 때문에 유지되어야 할 정보는 최소한으로 유지되어야 하며 객체나 많은 양의 데이터를 올리는 것은 반드시 피해야 할 금기 사항 중에 하나이다.

특히 좋지 않은 방법 중에 ADO.NET의 Connection객체를 세션에 넣어두고 필요할 때 마다 호출하는 방법이 있다.

어차피 데이터베이스 연결은 ADO.NET에서 풀링(Pooling)되고 있기 때문에 별도로 유지할 필요가 없다. 괜히 세션의 사이즈를 키우는 결과만 가져온다.

ASP.NET으로 작업하다 보면 모든 페이지에서 세션에 접근할 필요가 없다는 사실을 알 수 있다. 웹 사이트에서 간단한 약관을 보여준다거나 회사소개 혹은 약도 같은 것을 보여주는 페이지는 세션과는 전혀 무관하게 사용될 수 있는 페이지 이다. 이런 경우 해당 페이지에서는 세션을 비활성화 해두면 성능에 도움이 된다.

이런 경우 페이지 지시자에서 <%@ Page EnableSession State=”false”%>와 같이 세션을 비활성화 시키면 된다. 세션에서 또 다른 이슈가 될 수 있는 부분은 세션을 inprocess로 사용할 것인가 혹은 out-of-process로 사용할 것인가하는 문제이다. out-of-process는 SQL Server를 통해서 여러 대의 웹서버의 세션을 공유하게 해주는 방법이다.

아무래도 inprocess방식에 비해서는 성능이 떨어지는 탓에 다수의 웹서버를 이용할 경우에만 한정적으로 사용해야 한다. 자세한 설정방법은 http://msdn.microsoft.com/library/kor/default.asp?url=/lib rary/KOR/cpguide/html/cpconaspstatemanagement.asp를 참조하기 바란다.

PostBack 사용의 최소화
ASP.NET에서는 상태를 유지하기 위해서 state를 사용한다. state는 hidden된 데이터 필드를 이용해서 서버와 클라이언트가 지속적으로 통신을 하면서 상태를 유지한다. 따라서 PostBack이 많이 발생되면 그만큼 네트워크 트래픽이 발생되기 때문에 최소한으로 사용하라고 한다.

굳이 기능이 필요 없는 페이지는 aspx대신 그냥 html을 사용하는 것도 좋은 방법이다. 또 서버 컨트롤을 사용 할 때에도 일반 html 컨트롤로 충분히 가능하다면 html과 자바 스크립트로 처리하는 편이 좋다(물론 개발자들은 서버 컨트롤을 사용하는 편이 개발 생상성이 높다고 반문할지도 모르지만 단순히 성능이라는 문제만 놓고 본다면 서버 컨트롤은 불필요하게 PostBack을 발생시킨다).

만약 서버 컨트롤을 사용하게 된다면 불필요한 경우에는 뷰 상태를 필요할 때만 활성화 시키고 사용한다. 뷰 상태를 지정하는데 있어서 와 같이 직접 지정할 수도 있고혹은 <%@ Page EnableViewState=”false”%>와 같이 지정해서 전체의 뷰를 비활성화 시키는 방법도 사용할 수 있다.

MS의 정책인지는 모르겠지만 절대 그들의 말처럼 MS의 기술은 결코 시대를 앞질러 나가지는 않는 것 같다. 오히려 현실의 요구에 충분히 만족시키는데 그 목표가 있는 것처럼 보인다. 현실적인 요구사항이 충분할 때 제품을 내놓는다. 때문에 먼저 시작한 업체들은 열심히 시장만 만들어 놓고 MS에 밀리는 경우가 종종 있는 것 같기도 하다.

그 덕에 MS를 기반으로 하는 개발자들은 아주 편하고 높은 생산성을 갖는 환경을 제공받고 있다. 그래서인지 오히려 개발자들은 성능을 저하시키는 막 코딩 혹은 날 코딩(?)과 같은 신조어들을 만들어 내가면서 비효율적인 코드를 생산하기도 한다.

좋은 생산성을 보장 받는 축복받은 환경에서 충분한 일정까지 보장 받으면 더없이 행복한 개발자들이겠지만 꼭 그렇지 않더라도 일반적인 성능 이슈들이라도 잘 숙지한다면 더 좋은 결과물을 얻어 낼 수 있을 것이다.

최근 MS에서 직접 개설한 MyMSDN(http://www.microsoft.com/korea/msdn/ mymsdn)과 같은 곳에서 질문을 해보는 것도 좋은 방법을 찾을 수 있는 한 방법이 될 것이다. @


참고자료
1. http://www.gosu.net 제2회 세미나 Power개발자를 위한 ADO.NET 자료
2. MyMSDN
3. Inside C# 2 -정보문화사
4. MSDN web page
5. http://msdn.microsoft.com/library/KOR/cpguide/html/cpconaspoptimization.asp
6. http://msdn2.microsoft.com/ko-kr/library/44e5wy6k(VS.80).aspx


* 이 기사는 ZDNet Korea의 제휴매체인 마이크로소프트웨어에 게재된 내용입니다.


출처 : ZDNet Korea
Creative Commons License
Creative Commons License
Posted by 파랑소리 beatblue

트랙백 주소 :: http://beatblue.tistory.com/trackback/192 관련글 쓰기

  1. Subject: relelido.sosblogs.com

    Tracked from relelido.sosblogs.com 2014/09/21 19:36  삭제

    지구에매달리기 ::

댓글을 달아 주세요

  1. Favicon of http://redwetsex.com/vids/2006-vakantie-zomer BlogIcon 2006 vakantie zomer 2008/05/23 05:00  댓글주소  수정/삭제  댓글쓰기

    걸출한 디자인! 좋은 디자인.

1부 | 개발 환경의 변화와 대응하는 프로그래밍 최적화의 재발견
2부 | OPP적 개발을 위한 C++ 프로그래밍 최적화 기법
3부 | 리팩토링을 이용한 자바 성능 최적화 기법
4부 | 성능 이슈 해결을 위한 닷넷 프로그래밍 최적화 기법
5부 | ARM과 파워pc에 기반한 임베디드 프로그래밍 최적화 기법
리팩토링, 복잡다단해지는 현대의 소프트웨어 개발에서 이 단어는 점점 중요한 위치를 차지해 가고 있다. 이제 리팩토링은 진정한 개발자의 덕목 중에 하나라고 단언할 수 있을 정도다. 리팩토링을 한다는 것은 개선에 대한 의지가 있음을 뜻하고, 좀 더 나은 코드, 구조, 프로세스를 지향한다는 의미가 된다. 리팩토링으로 소프트웨어의 성능을 직접적으로 높이지는 못 한다. 하지만 코드의 가독성을 증대시켜, 생각하는 프로그래머들의 머릿속 성능을 높여준다. 3부에서는 리팩토링 방법들에 대해 알아본다.

햄버거나 커피 등을 살 때, 또는 백화점이나 편의점에서 물건을 살 때, 우리는 1회용 물건을 쓰는 것에 대한 세금을 낸다. 1회용 물건을 쓰면 환경이 그만큼 빨리 피폐해지기 때문이란다.

그게 사실인지 아닌지 모르겠지만, 내 돈이 나가는 것은 용납이 안 된다. 1회용품의 편리함. 그 반대급부로 만들어지는 쓰레기 처리에 따른 비용을 지불한다고 하는데, 영 맘에 안 든다.

혹시 프로그램을 짤 때도 1회용 프로그램을 짠다는 생각을 해본 적이 있는가? 그런데 우리는 1회용 프로그램을 짜도 세금을 내지 않는다. 다행일까? 1회용 프로그램이 환경 자원을 소모시키지는 않는다.

다만 1회용 프로그램은 쓰레기를 양산한다. 그때그때 필요한대로 찍어낸 프로그램은 수많은 중복코드를 양산해 낸다. 재활용하지 않는 습관 탓에 시스템이라는 환경이 무거워지고 손이 많이 가도록 바뀌는 것이다.

재활용성은 객체지향 프로그램의 핵심원리 중의 하나이다. 재활용성을 높인다는 것은 찍어낼 때 사용하는 템플릿을 얘기하는 것이 아니다. 오히려 업무나 기능을 제어 가능한 곳에 집약시켜서 관리할 수 있도록 시스템 전체의 청결한 상태를 유지하는 것이다. 이리저리 산재된 중복 코드를 정리하는 것이 핵심이다.

이때 필요한 기술이 리팩토링이다. 이쯤 얘기하면 리팩토링은 정리 정돈에 비견된다. 군대에서 총기수입을 하는 것과도 같고 집에서 설거지를 하는 것과도 같다.

  리팩토링이란

Refactoring (Re + Factor + ing) 영어 단어를 요소별로 나눠보면 요소들을 재구성한다는 뉘앙스를 받을 수 있다. 이는 마틴 파울러의 책에서 비롯된 단어인데, 책에 있는 리팩토링의 정의를 보면 다음과 같다.

“리팩토링은 외부 동작을 바꾸지 않으면서 내부 구조를 개선하는 방법으로, 소프트웨어 시스템을 변경하는 프로세스이다.” 마틴 파울러, 리팩토링, P10. 대청출판사

책에 이어서 나오는 내용은 버그가 끼어들지 않도록 주의하면서 코드를 작성한 후에 더 나은 디자인으로 개선하는 방법이라고 한다. 디자인을 먼저 한 후 코드를 만드는 것이 아니라 일단 돌아가는 코드를 작성하고, 그 후에 그 코드가 더 좋은 구성을 갖도록 바꾼다는 것이다.

우리들의 코딩 관행을 돌아보면, 일단 돌아가는 프로그램을 짠다. 그리고? 끝이다. 그 다음으로 넘어간다. 정리? 남은 사람이 알아서 할 것이다. 남은 사람이 자기 밖에 없다면? 날 잡아서 정리하거나, 회사 옮긴다.

  리팩토링을 하는 이유

야심찬 초급 개발자가 자주하는 것 중에 하나가 이전 소스에 대한 비평이다. “도대체 어떻게 이렇게 소스를 짤 수 있지. 발로 짜도 이것보다는 낫겠네. 왜 이렇게 if else가 많은 거야. 이 소스 이해할 시간 있으면 차라리 다시 짜고 만다.”그래서, 다시 짠다.

그리고 오픈하면 이것 저것 버그 리포트와 요구사항이 들어온다. 이것 저것 예외 처리를 해주다 보면 내가 짠 코드지만 보기 싫어진다. 어느 정도 서비스가 안정적으로 돌아가도록 소스를 수정해 놓으니, 이런, 전에 내가 막 뭐라고 했던 이전 개발자의 소스와 별반 차이가 없다.

“제길, 다음 후임이 누가 될지는 몰라도 내 욕 무진장 하겠군.” 문서라도 잘 주면 모르겠지만, 처음 개발할 때 보고했던 문서 그대로다. 요구사항과 수정을 통해서 변경된 내용을 문서에 업데이트하질 못했다. “할 시간이 있어야지.”SM(System Maint enance)분야에서는 거의 이렇게 사는 것이 보통이다.

이전 사람이 만든 소스에서 버릴 것은 거의 없다. 정리가 안 되서 몇 달간 목욕 못한 모습일 뿐이지, 처리할 수 있는 모든 경우의 수는 그 안에 다 가지고 있다. 이런 코드를 새로 짠다는 것은 그 모든 경우의 수를 처음부터 다시 감수하겠다는 의미가 된다.

이전 소스를 씻기고 다듬는 것이 소스 수정을 위한 필수 과정이다. 정리하지 않고 계속해서 소스를 추가해 가는 일은 운동하지 않고 계속해서 먹어대는 것과 같이 시스템을 비만상태로 만들어간다. 움직임이 점차 둔해질 것이다. 정리 안 된 방처럼 발 디딜 팀이 없는 소스가 될 것이다.

무엇인가 소스의 변경이 필요할 때, 기능 추가나 삭제, 수정 작업이 일어날 때 소스의 리팩토링은 포장이사처럼 편하게 작업하도록 도와준다.

리팩토링은 소스의 중복된 부분을 모듈화 시켜준다. 모듈화는 입출력이 명확하기 때문에 이식성을 높여준다. 중복을 제거한다는 것은 시스템의 칼로리를 빼는 것과 같다. 시스템의 복잡도, 즉 코드를 읽는 사람의 머리가 열받는 정도를 낮춰준다. 물론 그렇다 해도 이사 자체는 귀찮은 일이다.

  리팩토링을 위한 도구

리팩토링은 그로 인해 영향 받는 프로그램의 수가 적을 대에만 수작업으로 작업해야 한다. 사실 리팩토링을 수작업으로 한다는 것은 추천하지 않는다. 좋은 개발 환경이 있는데 사서 고생할 필요가 없는 탓이다. 리팩토링을 위한 좋은 툴이 많이 나왔다.

일단 통합개발환경(IDE, Integrated Development Environment)을 준비한다. 요즘의 자바 개발 시 많이 사용되는 IDE는 기본적으로 리팩토링을 지원한다.

리팩토링과 함께 진행되어야 할 JUnit 테스트케이스 자동 생성도 같이 지원되고 있다. 리팩토링 작업을 할 경우 여러 줄의 코드들이 수정된다. 이때 영향을 받는 프로그램들을 모두 불러내서 수작업으로 수정할 경우 리팩토링에 대한 공수가 많이 필요한 탓에 감히 리팩토링에 대한 엄두를 낼 수 없다.

하지만 요즘 통합 개발 환경을 지원하는 개발 도구들은 변경 받는 파일들의 목록과 변경 전 후의 코드 비교, 자동 변경 기능을 지원한다. 덕분에 리팩토링에 드는 수고가 전혀 수고로 생각되지 않을 정도다.

  리팩토링 진행 방법

리팩토링하는 이유와 리팩토링 도구까지 알아보았으니 이제 리팩토링 방법에 대해 알아볼 차례다. 주저리 주저리 방법들을 늘어놓을 수 도 있겠지만 개발자는 코드로 얘기한다. 바로 이클 립스에서 리팩토링을 사용하는 방법을 설명하도록 하자.


 <리스트 1> 리팩토링 샘플



리팩토링에 대한 간단한 예를 들기 위해서 <리스트 1>을 보며 설명하겠다. 7~11번 줄의 코드가 13~17번 줄의 코드와 유사한 것을 알 수 있다. 중복이 계속되는 것은 일정한 패턴을 갖고 있는데 중복이 심해지면 패턴 변경에 따른 공수가 많이 필요하므로 소스의 유연성이 떨어지게 된다. 때문에 반복되는 패턴을 메소드화 시켜서 쉽게 코드를 읽을 수 있도록 한다.

<화면 1> 반복되는 부분, 메소드 추출의 대상

이클립스에서 패턴부분을 선택하고, 오른쪽 버튼을 눌러 콘텍스트 메뉴를 열면 중간 위치에 [Refactor…]라는 메뉴가 보인다. 확장 메뉴에서 [Extract Method…]를 선택하면 <화면 2>와 같은 다이얼로그 창이 뜬다. ‘doQuery’라고 메소드명을 입력한 뒤에 파라미터들을 확인한다.

<화면 2> 메소드 추출(Extract Method)

화면 아래쪽의 버튼 중 [Preview]를 클릭하면 <화면 3>과 같이 미리보기 창으로 바뀐다. 이때 화면에 표시되는 정보들이 기가 막힌다. 리팩토링을 통해서 변경되는 소스의 비교와 상단에는 이 리팩토링에 영향을 받는 소스들과 메소드명까지 친절하게 알려준다. 게다가 이클립스가 모두 다 자동으로 바꿔준다.

<화면 3> 리팩토링 결과 미리보기

<화면 4>에서는 다이얼로그에서 만든 doQuery() 메소드의 내용을 볼 수 있다. 소스 비교란의 맨 오른쪽에 있는 네모는 소스 전체에서 변경이 일어난 부분을 표시한 것이다.

<화면 4> 리팩토링으로만들어진 메소드

비교가 끝났다면 [OK] 버튼을 클릭해서 리팩토링을 실행한다. 소스 리팩토링을 마친 뒤에 doQuery() 메소드를 보면, <화면 5>처럼 파라미터가 Connection conn, int seq 두 개임을 알 수 있는데, 여기에 하나가 더 필요하다. 바로 쿼리 부분인데, 이것을 파라미터로 받아야 비로로 doQuery()가 공용으로 쓰일 수 있게 된다.

<화면 5> 리팩토링으로 만들어진 약간 아쉬운 메소드

QUERY_MOVE라는 상수를 파라미터로 대치한다. 이 상수에 마우스 오른쪽 버튼을 클릭한 뒤에 [Refactor]-[Introduce Parameter] 메뉴를 실행시키면 <화면 6>과 같은 다이얼로그 창을 볼 수 있다.

새로운 파라미터 이름을 ‘query’로 정하고 우측의 [up] 버튼을 클릭해서 파라미터의 위치를 조정한다. 파라미터의 변경은 메소드의 모습인 시그니처(signature)를 변경하는 것이다.

<화면 6> 파라미터로 만들기

마찬가지로 [Preview] 버튼을 클릭하면 <화면 7>과 같이 리팩토링 전후의 소스를 비교할 수 있다.

<그림 7> 파라미터로 만들기 적용하기 전 미리보기

<그림 7>에서 [OK] 버튼을 클릭해서 만들어진 doQuery() 메소드는 반복되는 쿼리 실행 부분을 메소드 추출(Extract Method)과 파라미터로 빼기(Introduce Parameter) 리팩토링을 이용해서 만든 것이다. <리스트 2>는 그것을 이용해서 바뀐 소스의 모습이다.


 <리스트 2> QUERY_DELETE 부분 리팩토링 과정



<리스트 2>는 아직 변경 중인 샘플코드이다. 앞서 만든 doQuery() 메소드를 이용해서 쿼리만 다른 것을 보내면 된다. 필자가 추가한 8번 줄은 10~14번 줄과 동일한 기능을 수행하게 된다. 코드를 정리하면 다음과 같이 된다.


 <리스트 3> QUERY_DELETE 부분 리팩토링 후



하단의 구문이 지워지면서 이 deleteArticle() 메소드 내의 PreparedStatement pstmt 선언은 불필요하기 때문에 삭제했다. 처음 보았던 소스에서 많이 정리되었다. 정리를 하고 보니 deleteArticle() 메소드를 호출하는 곳에서 비슷한 기능을 하는 부분을 볼 수 있다.


 <리스트 4> 리팩토링 적용 범위 확대



<리스트 4>의 16~20번 줄을 보면 앞서 추출한 메소드 doQuery()로 변경할 수 있을 것 같다. 그럼 코드는 <리스트 5>와 같이 수정될 것이다.


 <리스트 5> QUERY_DEL_SEQ_FILE 부분 리팩토링 과정



이렇게 정리하고 난 후에 다시 전체적인 코드를 생각해보면 두 개의 메소드가 불필요하다 생각이 든다. 즉 <리스트 6>과 같이 deleteArticles()와 deleteFiles() 메소드를 지우고 바로 doQuery() 를 호출하도록 바꿀 수 있을 것이다. <리스트 6>은 리팩토링을 통해 최종적으로 정리된 소스이다.


 <리스트 6> 리팩토링 적용으로 개선된 코드



앞에서 보았던 소스의 if else 구문과 비교해보면 doQuery() 라는 공통으로 사용할 수 있는 메소드와 5줄이 늘어났지만 deleteArticle(), deleteFiles() 두 개의 메소드가 사라졌다. 이전 소스와 비교해보면 메소드 구성은 <화면 8>과 같이 변경되는 것을 알 수 있다.

<그림 8> 리팩토링 전 후 메소드 비교

추가된 메소드는 +화살표, 제거된 메소드는 –화살표로 표시되고 변경된 메소드는 그냥 검은 화살표로 표시된다. 화면 아래쪽에 표시되는 소스 비교하는 곳을 보면 더욱 명확하게 알 수 있다.

지금까지 샘플 소스의 구조를 개선하면서 두 가지 리팩토링 기법에 대해 알아보았다. 이 외에도 많은 기법들이 리팩토링 책에 소개되어있고, 이클립스에도 더 많은 리팩토링 기능이 지원된다.

  리팩토링 경험담

필자는 이 글을 쓰고 있는 지금 큰 프로젝트를 진행하고 있다. 6년간 하나도 버려지지 않고 운영되면서 이리저리 패치된 페이지를 스프링 프레임워크에 맞춰서 바꾸는 작업이다. 그런데, 작업을 하는 동안 필자가 간과한 것이 있었다. 그렇게 복잡하게 얽히고설킨 페이지를 스프링 프레임워크의 새로운 바닥부터 하나씩 쌓아 올린 것이다.

기존에 운영하고 있는 소스에서 하나씩 뜯어서 새로운 토양으로 옮겨심기를 한 것이다. 이것은 재개발에 가까운 것이었고, 굉장히 많은 시간이 필요했다. 만약 옮겨야 할 소스를 기존의 토양 위에서 조금씩 리팩토링한 후에 옮겼다면 오히려 많은 시간을 절약할 수 있었을 것이다.

실수했다고 생각하는 부분은 다음과 같다. 우선적으로 모든 기능을 다 옮겨올 때까지 신규 페이지는 아직 미완성이다. 하지만 기존의 페이지 내에서 리팩토링을 한다고 하면 이미 모든 기능과 데이터를 다 갖고 있는 상태이다. 다른 파트에서 데이터가 필요하다고 할 때에도 현재 갖고 있는 데이터에서 데이터를 뽑아내서 보다 빨리 전달할 수 있을 것이다.

두 번째로 시간의 압박이다. 기존의 페이지는 언제든지 답이 나온다. 하지만 신규페이지는 모든 테스트를 마칠 때까지 계속 기다리라고 얘기해야만 한다. 바닥부터 모든 것들에 대해서 테스트를 만들어야 하는 탓에 더 많은 테스트 코드들이 필요하다. 여기에도 만만치 않은 시간이 투입된다.

세 번째는 애플리케이션에 대한 자신감이 떨어진다는데 있다. 맥가이버도 아닌데 시간에 쫓기면서 개발할 경우 만들어진 소스는 분명히 수많은 버그를 품고 있을 가능성이 높다. 그 값이 절대 정확하다고 이야기하기 힘들다. 하지만 리팩토링을 통해서 내부로부터 개혁해 나갈 경우 빠진 것 없이 소스를 재구성할 수 있기 때문에 안정된 기반에서 작업할 수 있을 것이다.

전산의 불문율 가운데 유명한 것이 하나 있다. ‘잘 돌아가는 것은 손대지 마라.’ 칼퇴근을 위해서 절대 절명으로 필요한 말이다. 이렇게 관리되는 소프트웨어의 품질은 논하기 힘들다. 그냥 먹고 살기 위한 프로그램과 그것을 관리하는 직장인이 되어버리게 된다. 반면에 리팩토링의 기본 사상은 개선을 위한 노력이다.

막무가내 개선이 아니라 현명한 개선을 위한 방법을 제시하고 있고, 친구격인 테스트 케이스가 그 안전장치가 되어 준다. 한 순간의 품질이 아닌 지속적인 소프트웨어의 건강을 생각한다면 꾸준히 리팩토링으로 손질할 필요가 있다. 그것이 끝없이 변하는 웹 애플리케이션과 같은 소프트웨어일 경우는 더욱 그렇다.

개선을 위한 작은 몸짓에 진정한 프로그래머가 되고 싶은 독자들을 초대한다. @


참고자료
1. 리팩토링, 마틴파울러, 윤성준,조재박 역, 대청, 2002년3월
2. 패턴을 활용한 리팩터링, 죠슈아 케리에브스키, 윤성준,조상민 역, 인사이트, 2006년7월


리팩토링 관련 사이트
1. http://www.refactoring.com/Refactoring Home Page
2. http://xper.org/wiki/xp/ReFactoring 김창준 님의 Refactoring에 관한 정보
3. http://c2.com/cgi/wiki?CodeSmell Code Smell
4. http://xper.org/wiki/xp/CodeSmell Code Smell 번역
5. http://www.okjsp.pe.kr/lecture/ide/eclipse/refactor/eclipse_refactoring.html Eclipse의 refactoring기능
6. http://www.okjsp.pe.kr/lecture/ide/eclipse/eclipse_install.html Eclipse 시작하기



* 이 기사는 ZDNet Korea의 제휴매체인 마이크로소프트웨어에 게재된 내용입니다.


출처 : ZDNet Korea
Creative Commons License
Creative Commons License
Posted by 파랑소리 beatblue

트랙백 주소 :: http://beatblue.tistory.com/trackback/184 관련글 쓰기

댓글을 달아 주세요

  1. Favicon of http://hotlovezone.net/hot/fender-vintage-jazz-bass BlogIcon fender vintage jazz bass 2008/05/23 04:44  댓글주소  수정/삭제  댓글쓰기

    여보세요, 좋은 아주 위치!

1부 | 개발 환경의 변화와 대응하는 프로그래밍 최적화의 재발견
2부 | OPP적 개발을 위한 C++ 프로그래밍 최적화 기법
3부 | 리팩토링을 이용한 자바 성능 최적화 기법
4부 | 성능 이슈 해결을 위한 닷넷 프로그래밍 최적화 기법
5부 | ARM과 파워pc에 기반한 임베디드 프로그래밍 최적화 기법
C+ +에 대한 이야기를 지면에 실어 나르자면 몇 백 페이지에 걸쳐서 써도 모자랄 것이다. 객체 지향적 프로그램 기법부터 C 영역의 포인터에 이르기 까지 하고 싶은 말도, 하지 못할 말도 많은 것이 C++이다. 감히 누가 여러 개의 머리와 수십 개의 팔다리가 달린 C++이란 괴물 언어를 불과 몇 페이지에 담을 수 있겠는가. C++을 사용하는 그 많은 프로그래머들만큼이나 많은 이야기가 담긴 것이 C++일 것이다. 필자는 C++를 객체 지향적 개념의 몇 가지 이슈를 가지고 이야기해 볼 것이다.

며칠 전에 필자의 여자 친구로부터 클래스(Class)와 스트럭처(Structure)의 차이에 대한 질문을 받았다. 필자의 대답은‘어떤 스트럭처에서요?’라는 질문 한마디였다. 클래스와 스트럭처의 차이는 무엇인가?

다들 잘 알고 있겠지만 일단 C의 스트럭처와 C++의 스트럭처는 다르다. 그도 그럴 것이 C++의 스트럭처는 C와는 다르게 Constructor와 같은 Class Abstraction의 필수 요소를 지원하며, 스트럭처 안에 함수를 바인딩 할 수 있다.

그럼 C++에서의 스트럭처와 클래스의 차이는 무엇인가. 사실 차이가 없다. 단지 멤버 선언 때 클래스의 기본 값(Default)은 Private이고 스트럭처는 Public이라는 것 외에는 다른 것이 없다.

적어도 언어적인 측면에서는 그렇다. 독자 여러분이 필자라면 같은 컴퓨터를 전공하는 여자 친구에게 단지 차이가 없다고 대답하겠는가? 물론 아니다가 정답일 것이다.

마찬가지 이유에서 C++의 최적화에서는 포인터의 이용, 코드 사이즈 등 언어 이용적인 측면만을 고려 할 수 없다. 왜? OOP를 다루는 언어는 적어도 OOP에 맞게 쓰는 것이 가장 큰 비중을 가지며 언어는 객체지향적 패러다임을 구현하는 하나의 도구에 불과 하기 때문이다. 여기에서는 바로 그런 관점에서 C++을 살펴볼 것이다.

  C++ 프로그래머 VS C 프로그래머

다음 질문에 대해 생각해 보자.‘ C로 구현하는 객체 지향은 불가능한가?’잠시 책을 덮고 생각한 뒤에 다음 글을 읽어도 괜찮다. 우리는 개발자와 술자리에서 이런 화제를 가지고 밤 새워 가며 목에 핏대를 세우는 일이 허다하다. C로 C++처럼 객체 지향적 개발을 하는 것은 불가능 한가?

물론 화려한 OOP는 어렵겠지만 잘 구조화된 C문법으로도 충분히 표현 가능하다. 상위 영역의 Object C로 제작하는 GTK+ 같은 곳에서 C++과 유사한 추상화를 가진 아키텍처를 쉽게 만날 수 있다. 또한 C의 전형적인 영역인 임베디드 소프트웨어에서도 구조체와 함수 포인터들을 이용하여 C++을 흉내 낸 추상화 코드들을 간혹 경험할 수있다.

스트라우스트럽이 C++을 만들기 시작할 때에도‘C with data abstraction’라는 프로토타입 언어로부터 시작 되었던 만큼 C와 C++ 언어의 영역 차이는 애매하다. 이러한 언어를 사용하는 프로그래머도 그 차이를 명확히 구분하기 어려울 수밖에 없다.

C++은 C의 불편한 점을 보완해주는 언어도 아니며 C보다 좀 더 고급 기술을 구사하는 도구도 아니다. 더욱이 현업에서 모든 문제를 한방에 해결 해주는 은 탄환(Silver bullet) 같은 존재는 더 더욱 아니다.

그럼에도 불구하고 우리는 왜 C++을 사용해야 하는가? 그것은 문제 해결법이 C와는 판이하게 다르기 때문이다. 이것은 C와 C++의 언어학적 문제를 벗어난다. C 프로그래머와 C++ 프로그래머의 차이는 어떤 언어를 사용하는가가 아니라 어떠한 관점에서 문제를 해결 하는 가이다.

아무래도 하드웨어 개발자들이 주류를 이루는 필자의 현업에서는 가끔 개발 도중에 C언어를 자유자제로 구현하는 개발자가 ‘C++ 그거 하루면 하는데 뭘?’이라는 얘기를 들을 때 마다 마음이 아프다. C++을 하루(?) 만에 하였다면 클래스를 쓰지 말고 잘 구조화 된 C를 쓰면 된다.

구조체에 각 메소드가 될 함수 포인터들을 선언하고 생성자가 될 멤버 변수를 넣어 이 함수 포인터들을 초기화 해주고 나서 전역에 존재 하는 new라는 함수를 만든다. 다시 이 함수가 각각의 구조체를 할당 받게 하면 그런 이야기를 하는 개발자들이 사용하는 클래스를 흉내 낸 C를 쉽게 만들 수 있다.


 <리스트 1> Class를 흉내 낸 C코드



물론 추상화 할 수 있는 범위가 제한적이고 불필요한 코드가 들러붙기는 하지만 분명 클래스와 유사한 행동을 하도록 처리 할수 있다. 특히 앞서 소개한 GTK+이나 brew등의 코드를 보면 이러한 기법들은 빈번하게 적용 되어 있는 것을 확인할 수 있다.

C의 구조체와는 다르게 C++에서는 가상 함수 테이블을 각 클래스 마다 가진다. 이러한 것들을 이용한 객체 지향적인 기법인 C++에서 다형성(Ploymorphism), 동적 바인딩(Dynamic binding), 클래스 상속(Inheritance)을 뺀다면 그것은 스트럭처와 같이 발라낸 자료 추상화 관점의 C++에 불과 하다. 다시 정리하자면, C++은 단지 OOP 패러다임을 구현 할 수 있게 해주는 언어적인 도구 일뿐이지 C++그 자체가 의미 있는 것은 아니다.

  시스템 해석학적 관점에서 본 C와 C++의 차이

객체 지향적 문제 해결법에 들어가기 전에 시스템 해석학적 관점에서 이를 관찰 해보자. C로 구현된 함수 모듈과 C++로 구현된 함수 모듈은 어떤 차이를 가질까? 우리는 <그림 1>, <그림2>와 같은 블록 개념의 다이어그램을 생각해볼 수 있다.

<그림 1> C 관점의 시스템

<그림 2> C++ 관점의 시스템

어떤 차이를 볼 수 있는가? C의 관점에서는 각각의 데이터들이 노드를 이루고 이것들이 다른 상태의 데이터로 이동할 때 링크를 함수로 만들고 있다. 하지만 C++관점에서 보면, 클래스라는 추상화 관점의 모듈이 노드를 이루고 각각의 관계가 링크를 이루게 된다. 이 둘은 큰 차이를 가져 온다.

흔히 시스템의 복잡도를 논하는 두 가지 중 하나는 시스템을 구성하는 컴포넌트 수이고 다른 하나는 그 구성원을 연결하는 링크의 수이다.

컴포넌트의 수는 n개로 상수에 비례하여 증가하지만 이 컴포넌트를 연결하는 링크인 함수들은 n개에서 2개를 선택하는 조합과 같으므로 n(n-1)/2 와 같다. 이 복잡도는 O(n2)으로 시스템이 커질수록 알고리즘의 복잡도를 제어하기 힘들어 진다.

사실 C언어로 작성하든 C++로 작성하든 결국 컴파일 하고 나면 기능과 데이터만 존재 하는 바이너리 파일에 불과하다. 이러한 복잡도 제어는 C와 C++ 패러다임의 적용이 시스템 해석학적 입장에서 봤을때 얼마나 복잡해지는지를 알 수 있다.

  객체지향 문제 해결법

객체지향(Object Oriented)의 문제 해결법에 대해 알아보기에 앞서 다음의 함수를 잠시 살펴보자.

inline int square(int a) { return a *= a; }
inline float square(float a) { return a *= a; }

물론 이 함수를 보면서 Template을 통한 구현을 생각 하거나 Function pointer를 사용한 Generic Function을 생각 할 수도 있다. 하지만 필자가 이야기 하려는 것은 조금 다른 이야기다. square 함수의 정의역(Domain)과 치역(Range)은 무엇인가? 정의역은 Integer나 float형의 숫자이고 치역도 마찬가지로 숫자이다.

static int factorial(int i)
{
if (i<2) return 1;
return i*factorial(i-1);
}

이 팩토리얼 코드에서의 공리(Axiom)는 무엇 인가. If (i<2) return 1; 쯤 될 것이다. 우리는 흔히 C언어를 라이프 니찌가 정의한 수학의 함수를 모방하고 있다고 생각할 수 있다.

프로시져(Procedure)라는 이름으로 함수와는 달리 프로세스 중심의 상태 변화를 나타내는 함수들도 존재하지만 그 또한 치역이 void인 함수일 뿐이다. 수학에서 1:1, n:1, n:n은 함수에 들어가더라도1:n은 함수가 아니다. 여러분의 코드 중에 int float double Squre(int a)라는 함수가 없는 것과 마찬가지다.

그렇다면 소프트웨어를 개발한다는 것은 본질적으로 어떤 의미를 가지는가? 실제 세계의 정보나 현상들 중 관심 있거나 구현되어야 하는 부분만을 시스템으로 옮기는 시뮬레이션이 가장 큰의미를 가질 것이다. 수학 또한 실세계를 매핑하는 것의 일종인 언어라고 볼 수 있으니 말이다. 다만 수학으로 증명되지 않는 것이 얼마나 많은가?

우리는 윈도우에서 사용자가 클릭하고 입력하는 것을 정의역(Domain)으로, 화면의 출력 내용을 치역으로 불 수 있다. 이러한 사용자의 움직임을 수학적인 함수로만(수학적으로 증명되는 사실보다 증명하지 못하는 사실이 훨씬 많다) 정의하기에는 배보다 배꼽이 더 큰 것처럼 오버헤드가 들며, 이러한 행동들을 수학적 증명으로 표현하기에는 무리가 있다.

우리는 이 같은 실세계를 컴퓨터 내부로 반영하기 위하여 각각의 개체들을 클래스의 속성(Attribute)과 행동(Method)들로 정의하고 이들의 관계를 통해 좀 더 편리하게 실세계를 추상화 하고 복사 반영할 수 있을 것이다.

특별한 수학적 증명 없이도 우리 눈으로 보고 느낀 것을 추상화에 이용할 수 있고 그러한 추상화 단위들이 엮어져서 하나의 프로그램이 된다. 그 덕에 좀 더 많은 분야의 사람들이 프로그램이라는 것을 할 수 있게 되었다. 이러한 객체 지향적 문제 해결법에서 중요한 것은 개체들의 동등함이다.

우리는 간혹 코드에서 전역 변수나 전역 함수 등을 보게 된다. 이러한 개체들은 클래스로 구현된 내용들과 동등한가? 클래스의 속성과 행동은 그 클래스 안에 종속적이다. 생각해보면 당연한 것이다. 사람이라는 클래스를 제작할 때 사람이 먹고 입고 잔다는 행동과, 내부적으로 생각, 사고, 성별 등을 가지는 것은 사람에게만 종속적인 것이다.

이러한 행동들이 다른 여타 동물, 사물 등의 행동들과 엮이면서 상태가 변화하는 것인데, 앞에서 말한 전역 변수나 전역 함수를 살펴보라. 이 둘은 죄악인 코드이다(물론 현업에서 이러한 코드를 남발 하기도 한다).

모두 클래스가 동등한데 이 둘만 신(
Creative Commons License
Creative Commons License
Posted by 파랑소리 beatblue

트랙백 주소 :: http://beatblue.tistory.com/trackback/176 관련글 쓰기

  1. Subject: Adwokat z Kielc

    Tracked from Adwokat z Kielc 2014/09/13 01:21  삭제

    지구에매달리기 ::

  2. Subject: Free Porn Videos

    Tracked from Free Porn Videos 2014/09/13 10:38  삭제

    지구에매달리기 ::

  3. Subject: erniedrigung

    Tracked from erniedrigung 2014/09/20 17:29  삭제

    지구에매달리기 ::

댓글을 달아 주세요

  1. Favicon of http://celebblowsbar.net/czn/black-reality-pussy-pornsites BlogIcon black reality pussy pornsites 2008/05/23 04:56  댓글주소  수정/삭제  댓글쓰기

    나의 너의 친구는 위치의 현재 팬이 되었다!

  2. Favicon of http://www.cortesdepelo2012.com/ BlogIcon cortes de pelo 2012 2012/03/04 16:20  댓글주소  수정/삭제  댓글쓰기

    성된 것 There are other measures of self-respect for a man, than the number of clean shirts he puts on every day. I want to know where to find cortes de pelo 2012, do you?


Silverlight는 사용자에게 리치하고 상호작용이 가능한 웹과 미디어 콘텐츠를 제공하는데 강력한 도구이다. 뿐만 아니라 이동형, 크로스 플랫폼, 네트워크에 연결된 어플리케이션을 위한 강력한 플랫폼의 역할을 수행할 수 있다. 이미 Adobe의 Flash와 Flex가 시장을 선점하고 있지만 Silverlight가 가지는 그들만의 특징은 분명히 존재한다. 이에 앞서 RIA(Rich Interactive Application)을 위한 Silverlight의 아키텍처에 대해 살펴보도록 하자.

※ Silverlight 플랫폼
Silverlight 플랫폼은 전체 두 가지의 큰 파트와 추가로 인스톨러와 업데이트 컴포넌트로 구성된다.

컴포넌트
설명
Core 프리젠테이션 프레임워크 UI 와 사용자 입력, 사용자 상호작용(웹 어플리케이션에서의 사용을 위한 라이트웨이트 UI 컨트롤, 미디어 재생, DRM), 프리젠테이션 특징(벡터 그래픽, 텍스트, 애니메이션, 비트맵)을 가지고 있는 컴포넌트와 서비스. 또한 캔버스와 XAML에서 특정 레이아웃 표현을 Silverlight에서 하기 위한 DOM API를 포함한다.
Silverlight를 위한 .NET Framework 데이터 통합, 윈도우 컨트롤 확장, 네트워킹, BCL, 동적 언어 컴파일, CLR과 같은 컴포넌트와 라이브러리를 가지고 있는 .NET Framework의 부분 집합
인스톨러와 업데이터 사용자가 처음 어플리케이션을 설치하는데 도움을 주는 쉬운 프로세스를 가진 인스톨러와 업데이트 컨트롤. 이는 향후 쉽게 업데이트를 가능하게 지원한다.

Silverlight 아키텍처는 다음과 같다.


위에서 설명한 기본 컴포넌트들을 자세히 살펴보면 다음과 같다.

※ Core 프리젠테이션 프레임워크
특징 설명
입력 키보드, 마우스 및 기타 입력장치와 같은 하드웨어들의 입력 제어
UI 렌더링 벡터, 비트맵 그래픽, 애니메이션, 텍스트의 출력
미디어 .wmp, .mp3와 같은 다양한 형식의 오디오, 비디오 파일의 재생 및 관리
컨트롤 레이아웃 제공, 브라우저와 관련한 UI 컨트롤의 수정
DRM 미디어에 대한 DRM 기능 제공
XAML XAML을 위한 파서

※ Silverlight를 위한 .NET Framework
특징 설명
WPF 표준 웹 브라우저 컨트롤의 특징을 확장하는 리치 컨트롤의 제공. WPF는 도형, 문서, 미디어, 애니메이션 및 기타 여러 가지들을 포함
Data LINQ(Language-Integrated Query) 지원, XML을 위한 LINQ인 XLinq 지원, 이기종의 소스로부터의 데이터를 가지고 통합과 작업을 위한 간단한 프로세스 지원, XML과 데이터를 위한 클래스 동기화 지원
BCL 문자제어, 정규식, 입출력, Reflection, 컬렉션, 글로벌화와 같은 기본적인 프로그래밍을 위한 .NET Framework 라이브러리 제공.
Networking 원격 서비스와 데이터로의 간단한 접속 지원. 브라우저 객체, HTTP Request와 Response, RSS 접속, 웹 서비스 확장 등을 지원
CLR 메모리 관리, 가비지 컬렉션, 형 변환 확인 및 예외 처리를 지원
DLR JavaScript, IronPython과 같은 스크립트 언어의 동적 컴파일과 실행 지원.

※ 추가적인 Silverlight 프로그래밍 특징
특징 설명
격리된 저장소 Silverlight 클라이언트로부터 서버 파일 시스템으로의 안전한 접근을 제공. 특정 사용자를 격리하여 로컬 저장소와 캐시를 가능하게 함.
비동기 프로그래밍 사용자 상호작용을 보다 자유롭게 하기 위해 배경 쓰레드에 의한 비동기 프로그래밍을 지원.
파일 관리 안전한 파일 열기 다이얼로그 박스 제공. 안전한 파일 업로드 작성 가능.
HTML 웹 페이지의 HTML DOM에서의 UI 요소를 직접 제어. 웹 개발자는 JavaScript를 직접 호출할 수도 있고, object, property, event, method에 직접 접근 가능.
JSON JavaScript로부터 ASP.NET 기반의 웹 서비스로 직접 호출 가능.
POX 서비스 간단한 XML 기반 웹 서비스 호출 가능.
XML 라이브러리 웹 서비스로부터 XML 데이터를 이용하여 간단히 작업할 수 있도록 XMLReader와 XMLWriter 클래스 지원.


출처 : Neovis
Creative Commons License
Creative Commons License
Posted by 파랑소리 beatblue

트랙백 주소 :: http://beatblue.tistory.com/trackback/174 관련글 쓰기

  1. Subject: Forta For Men Review

    Tracked from Forta For Men Review 2014/09/21 08:11  삭제

    지구에매달리기 ::

  2. Subject: erniedrigung

    Tracked from erniedrigung 2014/09/21 15:14  삭제

    지구에매달리기 ::

  3. Subject: fotzenloch

    Tracked from fotzenloch 2014/09/22 01:05  삭제

    지구에매달리기 ::

댓글을 달아 주세요

  1. Favicon of http://ftvheavenfemme.net/czn/adult-playtime-uk BlogIcon adult playtime uk 2008/05/23 04:19  댓글주소  수정/삭제  댓글쓰기

    그런 위치를 경이롭 위해 많게의 감사!

  2. Favicon of http://www.haircuts2012.org/bob-haircuts-for-2012 BlogIcon bob haircuts for 2012 2012/03/03 21:05  댓글주소  수정/삭제  댓글쓰기

    성된 것 And the team is likely to make it happen, especially with the mixed skills and competencies. I want to know where to find bob haircuts for 2012, do you?

  3. Favicon of http://www.colorwheelinteriordesign.net/color-wheel-interior-design-brown/ BlogIcon Click color wheel interior design brown 2012/04/29 00:58  댓글주소  수정/삭제  댓글쓰기

    성된 것 I plan to watch the final in a theatre, it looks so nice and amazing. Maybe you can try on it. I want to know where to find color wheel interior design brown, do you?

1부 | 개발 환경의 변화와 대응하는 프로그래밍 최적화의 재발견
2부 | OPP적 개발을 위한 C++ 프로그래밍 최적화 기법
3부 | 리팩토링을 이용한 자바 성능 최적화 기법
4부 | 성능 이슈 해결을 위한 닷넷 프로그래밍 최적화 기법
5부 | ARM과 파워pc에 기반한 임베디드 프로그래밍 최적화 기법
최 적화된 프로그램이란 더 이상 잘 짜인 소스코드로 구성된 빠른 소프트웨어를 의미하지 않는다. 지금의 최적화된 프로그램이란 지정된 사양에 맞는 성능을 가지면서 신뢰성 있고, 유지 보수하기 쉬우며 변화하는 요구사항에 빠르게 적응 할 수 있는 소프트웨어를 의미한다. 1부에서는 현재의 비즈니스 상황에서 최적화된 소프트웨어는 어떠한 것인가에 대해 알아본다.

불과 5~6년 전만 하더라도 프로그래밍 환경에서 말하던‘좋은’프로그램이란‘빠르고 오류 없는’소프트웨어를 의미했다. 하지만 급격히 변화하는 프로그래밍 환경에서 이러한 의미는 퇴색된 지 오래다.

오류가 없다는 것은 소프트웨어가 가져야 할 당연한 미덕이 되었다. 문제는 속도이다. 하드웨어의 속도와 성능 향상이 좋아짐에 따라 프로그램 환경에서 더 이상 빠르기만 한 소프트웨어를 좋은 소프트웨어라고 말할 수 없게 되어 버린 것이다.

그렇다면 현재의 개발환경에서 좋은 소프트웨어, 최적화된 소프트웨어라고 부를 수 있는 것은 무엇일까? 예전에는 마음 맞는 한두 명의 개발자가 거의 비슷한 요구사항을 만족하는 소프트웨어를 만들었다.

반면에 지금은 수십 수백 명의 개발자가 매번 다른 요구사항을 위해 개발하는 방법으로 프로그래밍 환경이 바뀌었다. 그렇다면 바로 이 바뀐 프로그래밍 환경을 통해‘좋은’소프트웨어란 무엇인지에 대해 고민해 보아야 할 것이다.

  시대에 따른 최적화의 변화

필자가 프로그래밍을 처음 시작한 97년 무렵, 소프트웨어를 작성할 때의 가장 큰 화두는 바로‘속도’였다. 지금 프로젝트를
수행할 때 가장 크게 고려되는 요소 중의 하나인 개발에 참여하는 모든 사람이 쉽게 알아볼 수 있는 코드를 작성한다거나, 단위에 따른 소프트웨어 테스트 처리 기법은 그리 큰 문제가 아니었다.

자바 환경이 처음 등장할 때쯤, 주변의 비주얼 C++을 열렬히 신봉하던 한 개발자에게 다음과 같은 불평을 들은 적이 있다.

“예전에는 프로그램의 속도가 가장 큰 문제였어요. 항상 프로그래밍 개발 환경의 좋고 나쁜 점을 이야기 할 때는 작성되는 소프트웨어가 빠른가 안 빠른가가 중요한 과제였죠. ATL이 빠르고 안 빠르고, MFC는 메모리에 로딩 되는 과정이 빠르니 느리니 하는 게 언제나 숙제였습니다. 하지만 자바 환경이 등장한 후 부터는‘속도’라는 것에 별 다른 신경을 쓰지 않는 분위기로 바뀌었습니다. 독립적이라거나, 메모리상의 데이터를 개발자가 직접 관리할 필요가 없다는 게 중요해지고, 가상 머신으로 인해 발생하는 속도의 저하에 대해서는 더 이상 신경 쓰지 않는다는
것이죠.”

그 개발자의 가장 큰 불만은 자신이 사랑해 마지않는 비주얼 C++ 환경에서 그렇게도 불평하던‘소프트웨어의 실행 속도’를
나무라던 주위 사람들이 자바라는 개발 환경에서는 실행 속도에 대한 문제점을 더 이상 거론하지 않는다는 사실이었다.

반면에 다른 관점에서 보면 그 개발자의 지적은 정확했다. 정말로 소프트웨어의 실행 속도는 그렇게 중요하지 않은 시대가 온 것이다.

필자가 프로그래밍을 처음 공부할 때, 재귀기법을 사용하여 피보나치수열을 산출하는 프로그램을 여러 언어로 작성하는 소프트웨어를 개발하는 수업을 들은 적이 있다.

당시의 실습 환경은 성능이 떨어지지 않는 사양인 256MB의 메모리와 펜티엄 2 CPU를 가진 개인용 컴퓨터였다. 필자가 작성한 피보나치수열 산출 함수는 50을 기준으로 할 대 10분 이상이 소요되었다. 2.7기가플롭스의 CPU를 27개 가진 학교의 슈퍼컴퓨터로 실행한 결과는(물론 하나의 CPU만을 연산에 사용하였지만) 7초였다.

10년쯤 시간이 지난 지금 펜티엄 4 듀얼 코어 CPU에 4GB의메모리를 가진 필자의 연구용 컴퓨터에서 실행한 결과는 10초가 조금 넘는다.

거의 모든 컴퓨터가 예전의 슈퍼컴퓨터에 맞먹는 성능을 가지고 있고, 하드웨어의 속도는 날이 갈수록 빠르게 향상되는 상황에서 과연 소스코드를 한두 줄 줄이고 if 절을 사용할때 브레이스({ })를 사용하지 않는 것이 소프트웨어의 최적화에 얼마나 큰 도움을 줄 수 있을까?

스티브 레비는 1984년 프로그래머의 문화를 연구한�해커 (Hackers)�에서 소프트웨어 개발자가 순수하게 프로그래밍에 몰두하는‘최적의 시간’에 관해 소개한 적이 있다.

“프로그램을 짤 때는 먼저, 그 많은 정보 비트가 한 구조에서 다음 구조로 넘어가는 위치가 어디인지 정확히 파악해야 했다. 머릿속에 이 모든 정보를 꿰고 있으면, 컴퓨터 환경과 프로그래머의 정신은 완전히 일체가 된 것이나 다름없었다.

전반적인 그림을 머릿속에 그리는데 몇 시간이 걸리는 경우도 있었다. 그리고 그 지점에 도달하면 우물거리지 말고 후속작업을 계속 진행해야 했다. 그리고 컴퓨터에서 작업을 계속할지, 아니면 작성한 코드를 곰곰이 따져봐야 할지를 결정해야 했다.

”현재 자바 환경이나 닷넷 환경에서 소프트웨어를 개발하는 개발자 중 이렇게 메모리와 비트 구조를 골똘히 생각하며 프로그램을 작성하는 개발자가 과연 몇이나 될까? 그리고 이 우수한 환경들에서 그럴 필요가 있을까?

  데이터베이스 설계 최적화

10년쯤 전 한 ASP 개발자는 ASP의 존재 이유를‘데이터베이스의 데이터를 화면에 보여주는 것’이라고 말했다. 응용 프로그램에서 데이터베이스의 존재는 그만큼 큰 비중을 차지한다는 의미이다. 사실상, 거의 모든 기업형 응용 프로그램은 데이터베이스의 종류를 막론하고 데이터베이스에 액세스한다.

몇 년 전, 한 업체의 ERP(Enterprise Resource Planning) 소프트웨어가 갑자기 너무 느려졌다는 연락을 받고 속도 저하의 원인을 확인하기 위해 업체를 방문한 적이 있다. ASP로 작성된 웹 기반 응용 프로그램인 ERP 소프트웨어의 모든 페이지를 검토하지는 않았지만 코드 상에서는 별 다른 문제가 없어 보였다.

IIS와 SQL Server 2000은 물리적으로 같은 서버에 존재하고 있었고 실행중인 서버의 성능을 측정해 본 결과 서버 메모리의 PF 사용이 가용 메모리를 초과하고 있었다. 이런 경우, 대부분의 문제는 데이터베이스에서 발생한다고 볼 수 있다. 필자가 열어본 데이터베이스 ER-Diagram은 다음 <화면 1>과 같았다.

<화면 1> 데이터베이스 ER-Diagram

<화면 2> SQL Server 2000의 엔터프라이즈 관리자에서 다이어그램을 확대한 모습

데이터베이스 다이어그램에 경계선이 그어진 모습이다. 마치 데이터베이스에 테이블이 하나도 없는 것처럼 보였다. <화면 2>는 <화면 1>의 데이터베이스 다이어그램을 확대한 모습이다. 테이블이 보였다.

데이터베이스의 구성 형태를 보면 응용 프로그램의 문제를 파악할 수 있다. 앞에서 살펴본 것 같은 프로그램은 사용자가 특정 데이터를 요구할 때 그 데이터가 담겨있는 테이블에 접근하여 데이터를 패치한다. 이런 데이터베이스는 테이블 간의 관계가 전혀 작성되어 있지 않고 심지어 인덱스도 없다.

이런 경우 SQL Server 옵티마이저는 전체 테이블을 스캔하여 데이터를 반환하는 실행 계획을 작성하게 된다. 테이블에서 데이터를 반환받는 쿼리가 전체 테이블의 모든 데이터를 반환 받든지(검조 연산), 하나의 행만 반환 받든지(동등 연산). 그것도 아니면 특정 값에서 특정 값에 해당하는 행만을 반환 받든지(범위 연산) 간에 어떠한 경우에도 전체 테이블을 스캔하는 동작을 수행하게 된다.

<화면 3> <화면 1, 2>와 같이 설계된 데이터베이스에서 조인 쿼리를 실행하였을 때의 실행 계획

이렇게 설계된 데이터베이스의 데이터에 액세스 하는 응용 프로그램은 응용 프로그램이 처음 배포되었을 때는 더할 나위 없이 빠르다. 데이터베이스 서버는 데이터를 반환하기 위해 인덱스에 접근한다. 또 이렇게 찾은 데이터와 실제 데이터를 북마크 한다든지, 데이터의 유효성을 검사하기 위해 관계 연산을 수행 한다든지 하는 작업을 전혀 수행하지 않는다.

하지만, 응용 프로그램을 장기간 사용하여 테이블의 데이터가 증가하면 할수록 데이터베이스의 성능은 떨어지게 된다. 어느 순간, 테이블의 데이터가 증가하여 운반 단위를 넘어서게 되면, 새 데이터를 요구할 때마다 가득 찬 메모리에 새 데이터를 로드하기 위해서 메모리를 비우고 새 데이터를 적재하는 작업을 수행하여야 한다.

그 결과로, 메모리 사용량이 급격하게 증가하고 응용 프로그램의 성능은 급격하게 저하된다.

예로 든 것과 같이, 데이터베이스 성능을 개선하기 위해서 인덱스를 생성하고 쿼리를 최적화하는 결과와는 상관없이 데이터베이스의 설계를 개선하지 않고는 성능을 향상시킬 수 없는 경우가 발생하는 경우가 허다하다.

일반적으로 데이터베이스의 성능 개선이라면 쿼리를 튜닝하는 정도로 생각하는 경우가 많은데, 데이터베이스의 설계를 개선하지 않으면 성능이 향상되지 않는 경우가 더 많다.

원칙적으로 설계된 데이터베이스에서 쿼리를 수행하는 것은 (SELECT는 JOIN을 사용하여 그럭저럭 만들어 낼 수 있다 하더라도 여러 테이블의 관계로 생성된 데이터베이스에서 데이터를 삽입하거나 삭제하는 연산은 조금 복잡해지게 된다).

이런 데이터베이스에서 쿼리를 수행하는 것보다 훨씬 힘들다. 실제로 복잡하게 설계된 데이터베이스를 원망하는 개발자들이 꽤 있다.

복잡하게 설계된 데이터베이스는 모두 그만한 이유가 있는 법이고, 데이터베이스건 응용 프로그램이건 간에 최적화된 응용 프로그램은 최초에 최적화된 응용 프로그램을 원칙적으로 잘 설계 하는데서 시작한다.

  아키텍처 최적화

건축학에서 비롯된 아키텍처라는 개념은 일반적으로 제품을 어떻게 만들겠다는 것보다는 무엇을 어떻게 만들지에 더 큰 의미를 둔다. 소프트웨어에서의 아키텍처 설계란 다음과 같은 사항들을 의미한다.

- 큰 규모의 컴포넌트를 어떻게 조합하는가
- 시스템 수준에서 여러 소프트웨어 부품을 어떻게 조합할 것인가
- (특히 분산 아키텍처에서) 시스템 수준에서 응용 프로그램을 어떻게 설계할 것인가
- 재사용할 수 있는 용어의 정리

소프트웨어 아키텍처는 컴포넌트의 규모, 범위를 정의하고 정의된 컴포넌트간의 연결을 정의한다. 아키텍처를 설계할 때는 잘 파악된 요구사항에 따라 어떤 요구사항을 반영하는 비즈니스 객체를 어떤 컴포넌트에 포함시키느냐를 포함하는 소프트웨어의 규모 혹은 범위 정의가 무엇보다 중요하다.

하지만 소프트웨어의 최적화 관점에서 더욱 중요한 것은 소프트웨어 컴포넌트의 연결을 어떻게 구성할 것인가이다.

두 개의 컴포넌트를 같은 프로세스에서 동작하도록 아키텍처를 설계 했다고 가정하자. 같은 프레임워크를 기반으로 같은 프로세스에서 동작하는 두 컴포넌트는 프레임워크가 지원하는 어떠한 방법으로도 객체 및 데이터를 교환할 수 있다.

이런 경우 프레임워크가 지원하는 데이터 교환 방식 및 데이터 포맷 중 가능 빠르고 가벼운 방법으로 두 컴포넌트가 통신할 수 있도록 설계하는 것이 가장 바람직하다.

공수를 적게 들이면서 요구사항에 최적화된 응용 프로그램을 개발 할 수 있게 된다. 다른 방법으로, 두 개의 컴포넌트가 서로 다른 프로세스에서 동작하는 경우나 물리적으로 구분된 환경에서 동작해야 하는 경우에는 프레임워크가 지원하는 기술 중의 일부 밖에 사용할 수 없게 된다.

프레임워크가 지원하는 RPC를 위한 여러 기술 중의 하나를 사용하여야 한다. 이 경우, 각 상황에 맞는 컴포넌트간의 연결 방식을 신중히 검토하여 채택해야 한다.

닷넷 기술 중의 하나인 스마트 클라이언트(사실 닷넷 기술이라기보다는 개념 기술에 가깝다고 말하는 것이 옳다)에서는 이러한 데이터 교환 방식 및 데이터 포맷 방식을 중요하게 다루고 있다. 스마트 클라이언트에서 일반적으로 사용할 수 있는 데이터 컨테이너 형식에는 다음과 같은 세 가지가 있다.

- DataSet
- 사용자 정의 클래스
- 문자열 배열

DataSet을 사용할 경우, 기능적으로 가장 최적화 된 응용 프로그램을 작성할 수 있다. DataSet은 앞서 언급한 데이터 컨테
이너의 형식 중 가장 유연하며 다양한 형식을 가지는 데이터 형식이다. 또, 낙관적 동시성을 지원하며, 컨트롤에 바인딩하기가 편리하고, 데이터 검색 및 정렬이 편리하다.

반면에 DataSet은 XML로 직렬화되는 탓에 패킷 크기에서 그렇게 유리한 방식은 아니다. 또한 데이터를 설명하기 위한 메타데이터 등의 여러 실제 데이터 이외 데이터를 포함한다는 점도 성능상 불리한 점이다.

사용자 정의 클래스를 사용하는 경우, BinaryFomatter를 사용하면 패킷 크기가 작아진다. 또한 명확한 타입 정보를 가지게 되고 상호 운용성을 지원할 수 있게 되며 계층 구조의 데이터를 다루기에 편리하다. 또한 코드의 가독성 또한 높다. 하지만 사용자 정의 클래스의 단점은 개발자의 코딩 량이 증가한다는 점에 있다.

또, XML Web Service를 사용할 경우 사용자 정의 클래스에 정의된 모든 기능을 사용할 수 없게 된다는 점도 문제다. 이 타입을 사용할 경우 개발자는 클래스 내의 데이터를 검색하고 정렬하기 위한 모든 코드를 작성해야 한다.

문자열 배열은 패킷 크기가 가장 작은 방식이다. 하지만 메타 데이터를 가지지 못하고 인덱스에 의존하여 데이터를 액세스 하는 탓에 작업 시 데이터 구조 정의 문서가 필요하게 된다. 스마트 클라이언트는 데이터 컨테이너의 채택을 위해 다음과 같은 해답을 제시한다.

● 사용자 정의 클래스
- 단위 업무 엔티티를 교환하는 경우에 사용한다.
- 비즈니스, 데이터 액세스 계층에서 사용한다.

● DataSet
- 비즈니스 엔티티의 컬렉션을 다룰 때 사용한다.
- 컨트롤에 바인딩 할 때 사용한다.
- 주로 프레젠테이션 계층에서 사용한다.

● 문자열 배열
- 아주 대량의 데이터를 전송하는 경우에 사용한다.
- 성능이 가장 우선 되어야 하는 경우에만 사용하는 것이 바람직하다.

<그림 1> 스마트 클라이언트 아키텍처

스마트 클라이언트의 경우에서 알 수 있듯이 규모가 큰 기업형 응용 프로그램, 특히 분산 환경의 응용 프로그램에서는‘소프트웨어 아키텍처에서 컴포넌트가 어떻게 정의되고 컴포넌트 사이의 연결이 어떻게 유지되는가’가 무엇보다 중요하다. 이런 것이 소프트웨어의 성능에 지대한 영향을 미치게 된다.

  최적화된 성능 vs 개발 생산성

현재 소프트웨어 실행 환경의 발전 및 하드웨어의 발전 및 가격 저하로 인해 웬만큼만 작성한 소프트웨어는 무리 없이 잘 동작한다. 무리 없이 동작하는 것 보다는 빠르게 동작하는 것이 당연히 훨씬 좋겠지만, 작성된 소프트웨어를 최적화하기 위해서는 많은 시간과 비용이 소모된다. 요구사항에 최적화되며 또한 성능에도 최적화된 소프트웨어를 개발하기 위해서는 개발자의 많은 노력이 필요하다. 반면에 이에 너무 집착하다보면 개발 생산성이 저하되는 결과를 가져올 수 있다.

비즈니스의 변화 주기는 날이 갈수록 짧아지고 한다. 한 조사에 의하면 비즈니스의 평균 변화 주기는 4개월을 넘지 않는다고한다. 소프트웨어가 모든 요구사항을 잘 만족하며 또한 성능에도 최적화되어 있다고 가정하자.

소프트웨어가 포토샵이나 Winzip처럼 독립 실행형 응용 프로그램이고, 소프트웨어가 비즈니스에 맞춰 나가는 경우가 아니고 비즈니스가 소프트웨어에 맞추는 경우라면 개발 기간이 오래 걸리더라도 성능에 최적화되도록 만들어 출시해야한다.

반면에 아무리 뛰어난 응용 프로그램이라도 비즈니스가 변화한 다음에 출시된다면? 소프트웨어는 그 뛰어난 성능에 관계없이 사용할 수 없게 된다. 국민연금을 관리하는 소프트웨어를 작성해야 한다고 가정하자.

국민연금은 어찌된 사정인지는 모르지만 산출 방식이 자주 변한다. 현재 산출 기준으로 국민 연금 산출 응용 프로그램 작성을 시작하고, 소프트웨어의 성능을 높이기 위하여 모든 성능 저하 요소를 제거하는 작업을 오랫동안 수행하였다.

그러한 작업은 많은 시간을 필요로 하게 마련이고 당연히 개발 생산성을 떨어진다. 소프트웨어를 개발 하는 도중에 국민 연금 산출 기준이 변경되는 비극적인 사태가 발생한다면 지금까지 만든 프로그램이 무용지물이 되고 마는 것이다.

소프트웨어의 성능을 저하할만한 모든 요소가 다 제거된 소프트웨어, 물론 모든 개발자들이 꿈꾸는 디스토피아 같은 이야기이다. 하지만, 개발 일정을 잘 준수하여 변화하는 비즈니스에 빠르게 적응하여 잘 사용할 수 있는 소프트웨어를 작성하는 것이 더 중요하다.

  소프트웨어의 신뢰성 문제

아무리 개발 일정이 중요하다 해도 소프트웨어를 테스트 하지 않을 수는 없다. 그렇다고 소프트웨어의 모든 소스코드를 일일이 테스트 할 수도 없는 노릇이다.

이런 경우, 요구사항에 맞게 소프트웨어의 테스팅 방식을 잘 수립하는 것이 가장 중요하다. 중요한 것은, 코드 몇 줄 줄여보려고 알고리즘을 고민하는 것 보다는, 정상적으로 동작하는 소스코드를 줄이는 것 보다 테스트 쪽에 더 비중을 두어 신뢰성 있는 소프트웨어를 만들어 내는 일이다.

하지만 여전히 소스코드 최적화는 중요하다. 유명한 오프라인 개발자 블로그인 ‘조엘 온 소프트웨어’에서는 다음과 같이 재미있는 이야기를 소개한다. 유명한 러시아 페인트공 알고리즘 이야기이다.

도로의 차선 페인트 작업을 하는 러시아 페인트공이 있었습니다. 작업 첫날 페인트공은 페인트 통을 들고 나가서 300야드를 칠했습니다. 깜짝 놀란 책임자는“정말 놀라운데! 손놀림이 정말 대단하군.”이라며 페인트공에게 1코펙을 주었습니다.

다음날 페인트공은 겨우 150야드만 칠했습니다. 그래도 책임자는 “음, 어제 만큼은 못하지만, 여전히 손놀림이 좋아. 150야드도 대단하지.”라며 1코펙을 주었습니다.

그 다음날 페인트공은 30야드를 칠했습니다. 책임자는“고작 30야드라니! 용납할 수 없네! 첫날에는 어떻게 오늘보다 10배를 넘게 칠한 건가? 도대체 뭐가 문제야?”라며 윽박질렀습니다. 풀이 죽은 페인트공은 이렇게 말했습니다.“ 저도 어쩔 수 없었습니다. 매일 페인트 통에서 점점 멀어지니까요.”

실제로, 필자도 이와 같은 코드를 본 적이 있다. 한 학생이 작성한 게시판의 소스코드에서 데이터베이스에 저장된 게시판 글 데이터를 화면에 보여주기 위해 가져오는 코드가 있었다. 그 코드는 저장된 데이터에서‘<’를‘<’로,‘ >’를‘>’로,‘ \n’을’로 변환하는 등의 일반 문장을 HTML 코드로 변경하는 부분을 가지고 있었다.

소스코드를 보지 않은 상태에서 게시판을 사용하던 필자는, 신문에서 꽤 유용하고 긴 기사를 발견하고는 그게시판에 옮겨 붙였다. 그리고는 글을 모두 작성한 뒤에 글을 읽으려고 작성된 글의 제목을 클릭했다.

그런데 글이 열리는 데 시간이 한참 걸리는 것이었다. 글을 쓸 때나 짧은 글을 읽을 때는 멀쩡히 잘 동작하던 게시판이 긴 글을 읽을 때는 하나의 글을 읽는데 10초 이상의 시간을 요구했다. 소스코드를 살펴본 결과는? 전형적인 러시아 페인트공 알고리즘이었다. 코드는 다음과 같았다.


 <리스트 1> 러시아 페인트공 알고리즘



C#으로 작성된 <리스트 1>은 데이터베이스에 기록된 소스코드를 파라미터로 하여 해당 문자를 원하는 문자로 바꾸어 반환하는 동작을 수행하는 메소드이다. <리스트 1>에서 String Builder(자바에서는 StringBuffer 클래스) 객체의 Replace 메소드를 세번 호출하는데, Replace 메소드는 문자열을 처음부터 끝 까지 검색하여 문자를 바꾸는 동작을 수행한다.

이 메소드에서, 파라미터로 전달 된 문자열이 1,000글자였다면 메소드는 3,000자의 문자를 검색한다. 문자열이 10,000 바이트라면 메소드는 30,000바이트의 문자를 처리하게 된다. 전형적인 러시아 페인트공 알고리즘이다. 코드는 <리스트 2>와 같이 100 글자라면 100 개의 문자열 처리만으로 동작하도록 작성하는 것이 중요하다.


 <리스트 2> 개선된 알고리즘



코드를 한두 줄 줄이고 타이트하게 동작하는 소프트웨어를 작성하는 것의 중요성이 줄었다 하더라도, 기본을 안 지켜도 된다는 뜻은 아니다. 기본적으로 잘 동작하는 <리스트 2>와 같이 작성된 기본을 지키는 소스코드 일 경우에 한두 줄 더 줄이려고 노력하는 것 보다 더 중요한 것이 많다는 이야기다.

  성능과 요구사항 어느 것에 최적화 할 것인가

소프트웨어 최적화는 여러 관점에서 생각되어야 한다. Winzip과 같은 압축 소프트웨어에서는 기업 규모의 응용 프로그램에서 생각하는 아키텍처 최적화 기법을 고려할 필요가 없다.

압축 소프트웨어는 압축과 압축 해제를 수행하는 동작과 사용자 인터페이스의 편리함을 고려하고, 특히 압축을 수행하고 해제하는 동작의 속도만 고려하여 작성하면 그만이다. 하지만 기업형 응용 프로그램이라면 이야기가 달라진다.

기업형 응용 프로그램은 언제나 개발 기간이 한정되어 있는 반면 요구사항은 넘쳐나게 마련이다. 그리고 하드웨어는 넘쳐나고 하드웨어의 속도는 날이 갈수록 빨라진다.

자바나 닷넷 프레임워크를 사용하는 개발자라면 가장 중요한, 또는 예민한 알고리즘을 직접 작성하는 일은 드물다. 이런 일련의 상황들을 조합하면 최적화된 소프트웨어를 개발하기 위해 어디에 노력을 집중할 것인지에 대한 해답을 찾을 수 있다.

성능 이라는 것은 소프트웨어를 사용하는 사용자만 느끼는 것이 아니다. 소프트웨어를 개발하는 개발자에게도 자신의 생산성과 일정이 조화로울 수 있는‘개발 중인’ 소프트웨어의 성능이 필요할 것이다.

또, 대부분의 응용 프로그램의 경우는 실행 속도가 1초 빠른 소프트웨어 보다는 오류 없고 버전 관리하기 쉬우며 재사용이 가능한 소프트웨어, 즉 요구사항에 최적화 된 소프트웨어가 더 나은 경우가 훨씬 많다.

고객사의 사용자들이 성능이 느리다는 이유로 결재를 안 해주는 경우가 있다고 치자. 만약 그렇다 하더라도 애당초 말도 안 되는 엄청난 속도의 소프트웨어를 납품하겠다는 계약을 한 상황이 아니라면 더 이상 그 문제는 개발자의 몫이 아니다. 반면에 일정이 늦어지거나 안정성이 떨어지는 것은 중요한 문제가 된다.

최적화된 소프트웨어를 작성하는 방법에 대한 더 많은 정보, 훨씬 재미있는 정보를 원한다면 당장 서점으로 가서『조엘 온 소프트웨어』를 사 보는 것이 좋다. 조엘은 필자보다 수십 배나 많은 경험과 실력을 가지고 있고, 말도 더 잘한다. @


참고자료
1. 스마트 클라이언트 개발 / Microsoft Pattern and Practice
2. 조엘 온 소프트웨어 / 조엘 스폴스키 저, 박재호 이해영 역 / 에이콘
3. 살아있는 신화 Microsoft CEO 스티브 발머 / 프레즈릭 맥스웰 저, 안진환 역 / 한국 경제신문



* 이 기사는 ZDNet Korea의 제휴매체인 마이크로소프트웨어에 게재된 내용입니다.

출처 : ZDNet Korea
Creative Commons License
Creative Commons License
Posted by 파랑소리 beatblue

트랙백 주소 :: http://beatblue.tistory.com/trackback/172 관련글 쓰기

  1. Subject: online stores

    Tracked from online stores 2014/09/21 22:17  삭제

    지구에매달리기 ::

댓글을 달아 주세요



DBCC SHRINKFILE

관련 데이터베이스에 대해 지정한 데이터 파일이나 로그 파일의 크기를 축소합니다.

구문

DBCC SHRINKFILE
     ( { file_name | file_id }
         { [ , target_size ]
             | [ , { EMPTYFILE | NOTRUNCATE | TRUNCATEONLY } ]
        }
    )

인수

file_name

축소할 파일의 논리적 이름입니다. 파일 이름은 식별자에 대한 규칙을 따라야 합니다. 자세한 내용은 식별자 사용을 참조하십시오.

file_id

축소할 파일의 ID 번호입니다. 파일 ID를 구하려면 FILE_ID 함수를 사용하거나 현재 데이터베이스에서 sysfiles를 검색합니다.

target_size

정수로 표시된 원하는 파일 크기(단위: MB)입니다. 이 값을 지정하지 않으면 DBCC SHRINKFILE가 파일 크기를 기본 파일 크기로 줄입니다.

target_size를 지정하면 DBCC SHRINKFILE은 파일을 지정한 크기로 축소합니다. 파일의 해제될 부분에서 사용된 페이지는 보유된 부분의 사용 가능한 공간에 재배치됩니다. 예를 들어, 10MB의 데이터 파일이 있을 경우 target_size가 8인 DBCC SHRINKFILE을 실행하면 파일의 마지막 2MB에서 사용된 모든 페이지는 파일의 처음 8MB에서 사용 가능한 슬롯에 다시 할당됩니다. DBCC SHRINKFILE은 파일에 데이터를 저장하는 데 필요한 크기 이하로 파일을 축소하지 않습니다. 예를 들어, 10MB 데이터 파일에서 7MB가 사용된 경우 target_size가 6인 DBCC SHRINKFILE 문은 파일을 6MB가 아니라 7MB까지만 축소합니다.

EMPTYFILE

지정한 파일의 모든 데이터를 동일한 파일 그룹의 다른 파일로 마이그레이션합니다. Microsoft® SQL Server™에서는 EMPTYFILE 옵션을 사용한 파일에 더 이상 데이터를 저장할 수 없습니다. 이 옵션은 ALTER DATABASE 문을 사용하여 해당 파일을 삭제할 수 있도록 허용합니다.

NOTRUNCATE

해제된 파일 공간을 파일에 보유합니다.

target_size와 함께 NOTRUNCATE를 지정하면 해제된 공간이 운영 체제에 반환되지 않습니다. 이런 경우 DBCC SHRINKFILE은 target_size 행보다 위에서 사용된 페이지를 파일 앞부분으로 재배치하는 효과만 있습니다. NOTRUNCATE를 지정하지 않으면 해제된 파일 공간이 모두 운영 체제에 반환됩니다.

TRUNCATEONLY

파일에서 사용되지 않는 공간을 운영 체제에 반환하고 마지막으로 할당된 익스텐트까지 파일을 축소하여 데이터를 이동하지 않고 파일 크기를 줄입니다. 할당되지 않은 페이지에 행을 재배치하려는 시도는 이루어지지 않습니다. TRUNCATEONLY를 사용하면 target_size가 무시됩니다.

비고

DBCC SHRINKFILE은 현재 데이터베이스의 파일에만 적용됩니다. 특정 데이터베이스의 파일을 참조하는 DBCC SHRINKFILE 문을 실행하려면 컨텍스트를 해당 데이터베이스로 변경합니다. 현재 데이터베이스 변경에 대한 자세한 내용은 USE를 참조하십시오.

데이터베이스는 model 데이터베이스보다 작은 크기로 축소할 수 없습니다.

파일 크기를 원래 만들어진 크기보다 작게 줄이려면 DBCC SHRINKFILE을 사용합니다. 이렇게 하면 파일의 최소 크기가 새로 지정한 크기로 재설정됩니다.

파일에 있는 데이터를 모두 제거하려면 ALTER DATABASE를 실행하기 전에 DBCC SHRINKFILE('file_name', EMPTYFILE)을 실행합니다.

축소할 데이터베이스는 단일 사용자 모드가 아니어도 됩니다. 즉, 다른 사용자가 데이터베이스에서 작업 중이라도 파일을 축소할 수 있습니다. 시스템 데이터베이스를 축소하기 위해 SQL Server를 단일 사용자 모드에서 실행하지 않아도 됩니다.

로그 파일의 경우, SQL Server는 target_size를 사용하여 전체 로그의 대상 크기를 계산합니다. 따라서 target_size는 축소 후 로그에 남겨질 여유 공간의 크기입니다. 그런 다음 전체 로그의 대상 크기가 각 로그 파일의 대상 크기로 변환됩니다. DBCC SHRINKFILE은 즉시 각 물리적 로그 파일을 대상 크기로 축소하려고 시도합니다. 가상 로그에 있는 논리 로그 중에서 로그 파일의 대상 크기 이후에 있는 부분이 없는 경우에는 파일이 성공적으로 잘라지며 DBCC SHRINKFILE은 메시지를 표시하지 않고 완료됩니다. 그러나 가상 로그에 대상 크기 이후에 있는 논리 로그 부분이 있는 경우 SQL Server는 가능한 한 많은 공간을 해제하고 정보 메시지를 표시합니다. 이 메시지는 파일 끝의 가상 로그에서 논리 로그를 제거하기 위해 사용자가 수행해야 하는 작업을 알려 줍니다. 이 작업을 수행한 후에는 DBCC SHRINKFILE 명령을 다시 실행하여 나머지 공간을 해제할 수 있습니다. 트랜잭션 로그 축소에 대한 자세한 내용은 트랜잭션 로그 축소를 참조하십시오.

로그 파일은 가상 로그 파일 크기만큼만 축소할 수 있으므로 사용 중이 아닌 로그 파일이라도 가상 로그 파일의 크기보다 작게 축소할 수는 없습니다. 예를 들어, 로그 파일이 1GB인 데이터베이스는 로그 파일을 128MB까지만 축소할 수 있습니다. 잘라내기에 대한 자세한 내용은 트랜잭션 로그 잘라내기를 참조하십시오. 가상 로그 파일 크기를 확인하는 방법에 대해서는 가상 로그 파일을 참조하십시오.

결과 집합

다음 표는 결과 집합의 열을 설명한 것입니다.

  
열 이름 설명
DbId 축소할 파일의 데이터베이스 ID 번호
FileId 축소할 파일의 파일ID 번호
CurrentSize 현재 파일이 차지하고 있는 8KB 페이지의 수
MinimumSize 파일이 최소한으로 차지할 수 있는 8KB 페이지의 수. 이것은 파일의 최소 크기나 원래 만들어진 크기와 일치합니다.
UsedPages 현재 파일에서 사용되는 8KB 페이지의 수
EstimatedPages SQL Server에서 예상하는 파일 축소 가능 크기에 해당하는 8KB 페이지의 수
 

사용 권한

DBCC SHRINKFILE 권한은 sysadmin 고정 서버 역할이나 db_owner 고정 데이터베이스 역할의 구성원에게 기본적으로 부여되며, 양도할 수 없습니다.

예제

다음은 UserDB 사용자 데이터베이스에서 DataFil1이라는 파일의 크기를 7MB로 줄이는 예제입니다.

USE UserDB
GO
DBCC SHRINKFILE (DataFil1, 7)
GO
Creative Commons License
Creative Commons License
Posted by 파랑소리 beatblue
TAG dbcc, MS-SQL, T-SQL

트랙백 주소 :: http://beatblue.tistory.com/trackback/145 관련글 쓰기

  1. Subject: how to flirt with women

    Tracked from how to flirt with women 2014/09/11 19:11  삭제

    지구에매달리기 ::

  2. Subject: sex tape

    Tracked from sex tape 2014/09/11 21:00  삭제

    지구에매달리기 ::

  3. Subject: black dining chairs

    Tracked from black dining chairs 2014/09/12 08:31  삭제

    지구에매달리기 ::

  4. Subject: fastshipping.mzzhost.com

    Tracked from fastshipping.mzzhost.com 2014/09/14 12:30  삭제

    지구에매달리기 ::

  5. Subject: thaifotze

    Tracked from thaifotze 2014/09/20 21:05  삭제

    지구에매달리기 ::

댓글을 달아 주세요

  1. Favicon of http://www.musique2012.net/ BlogIcon musique 2012 2012/04/25 16:35  댓글주소  수정/삭제  댓글쓰기

    성된 것 It's like gambling somehow. You go out for a night of drinking and you don't know where your going to end up the next day. It could work out good or it could be disastrous. It's like the throw of the dice. I want to know where to find musique 2012, do you?

SQL의 LDF파일이 너무 용량이 커져서... DB서버의 용량이 초과되었을때

LDF파일 용량을 줄이는 방법

 

-- DB 로그 비우기

    backup log 디비명 With TRUNCATE_ONLY

 

-- DB 정보보기

    sp_helpdb 디비명

 

DBCC SHRINKFILE (test_log, 5)


예) backup log NewDerbyGame With TRUNCATE_ONLY
     sp_helpdb  NewDerbyGame
     DBCC SHRINKFILE (NewDerbyGame_Log   , 5)

 

여기도 참고하세요.

잘 설명이 되어있네요

http://www.sqlworld.pe.kr/mboard/mboard/mboard.asp?board_id=sql02&group_name=board&idx_num=7&page=1&category=&search=&b_cat=0&order_c=idx_num&order_da=asc

Creative Commons License
Creative Commons License
Posted by 파랑소리 beatblue

트랙백 주소 :: http://beatblue.tistory.com/trackback/144 관련글 쓰기

  1. Subject: tantric sex

    Tracked from tantric sex 2014/09/14 06:02  삭제

    지구에매달리기 ::

  2. Subject: Herbal Supplements

    Tracked from Herbal Supplements 2014/09/14 07:45  삭제

    지구에매달리기 ::

댓글을 달아 주세요

  1. 2008/09/04 05:41  댓글주소  수정/삭제  댓글쓰기

    비밀댓글입니다

  2. Favicon of http://www.Toner-Samsung-Clp-325.tumblr.com BlogIcon Toner Samsung Clp 325 2012/07/03 19:02  댓글주소  수정/삭제  댓글쓰기

    성된 것 I read about eight newspapers in a day. When I'm in a town with only one newspaper, I read it eight times. I want to know where to find Toner Samsung Clp 325, do you?