<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>::NPTEAM:: Network Programer Team</title>
		<link>http://npteam.net/</link>
		<description></description>
		<language>ko</language>
		<pubDate>Mon, 30 Apr 2012 23:25:58 +0900</pubDate>
		<generator>Textcube 1.7.8 : Con moto</generator>
		<item>
			<title>[ICON] Icon Generator</title>
			<link>http://npteam.net/883</link>
			<description>프로그램을 만들고 아이콘 때문에 고생하신 분들을 위한 작은 팁입니다.&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://icon-generator.net/&quot;&gt;http://icon-generator.net/&lt;/a&gt;&amp;nbsp;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;div class=&quot;imageblock left&quot; style=&quot;float: left; margin-right: 10px;&quot;&gt;&lt;a href=&quot;http://npteam.net/attach/1/1336256934.png&quot; rel=&quot;lightbox[2group0]&quot; title=&quot;&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://npteam.net/attach/1/1336256934.png&quot; width=&quot;610&quot; height=&quot;459&quot; alt=&quot;사용자 삽입 이미지&quot; title=&quot;&quot; style=&quot;cursor: pointer;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Logo Name에 간단한 글씨를 넣으면 아이콘이 생성됩니다.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;</description>
			<category>Tip&amp;Tech</category>
			<author>(TTF)</author>
			<guid>http://npteam.net/883</guid>
			<comments>http://npteam.net/883#entry883comment</comments>
			<pubDate>Fri, 30 Mar 2012 23:59:07 +0900</pubDate>
		</item>
		<item>
			<title>rdiff-backup 사용하기</title>
			<link>http://npteam.net/877</link>
			<description>&lt;div&gt;형상 관리 소프트웨어를 사용하면 파일에 대한 History를 유지할 수 있어서&lt;/div&gt;&lt;div&gt;특정 시점으로 복원하는 것이 가능합니다.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;이와는 다른 목적으로 단순하게 폴더를 주기적으로 백업하여&lt;/div&gt;&lt;div&gt;특정 시점으로 되돌려 주는 기능이 필요할 경우에는&lt;/div&gt;&lt;div&gt;형상 관리 소프트웨어를 도입하는데 다소 부담이 됩니다.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;단순 폴더 백업 용도라면 rdiff-backup를 사용하시면 많은 도움이 됩니다.&lt;/div&gt;&lt;div&gt;(&lt;b&gt;&lt;font color=&quot;#ff9900&quot;&gt;한글 폴더 및 한글 파일 이름은 가급적 피하는 것이 좋습니다.&lt;/font&gt;&lt;/b&gt;)&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;1. rdiff-backup를 다운로드 합니다.&lt;div&gt;&amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://rdiff-backup.nongnu.org/&quot;&gt;http://rdiff-backup.nongnu.org/&lt;/a&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; 1.2.8 안정화된 버전을 받습니다. (rdiff-backup-1.2.8-win32.zip)&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;2. rdiff-backup.exe 사용법&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; rdiff-backup [OPTIONS] (원본 경로) (백업 경로)&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;3. PATH에 rdiff-backup 폴더 경로를 추가하거나, %systemroot%에 복사합니다.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;4. wscript를 이용하여 cmd 창 보이지 않고 실행하기 (rdiff-backup.vbs)&lt;/div&gt;&lt;pre class=&quot;brush: vb&quot;&gt;Set WshShell = WScript.CreateObject(&quot;WScript.Shell&quot;)
wshShell.run &quot;rdiff-backup.exe d:\source D:\backup&quot;, 0, True
wshShell.run &quot;rdiff-bakcup.exe --remove-older-than 6M D:\backup&quot;, 0, True
Set WshShell = nothing
&lt;/pre&gt;&lt;div style=&quot;text-align: -webkit-auto;&quot;&gt;(--remove-older-than 6M : 6개월전 백업 삭제하기)&lt;/div&gt;&lt;div style=&quot;text-align: -webkit-auto;&quot;&gt;&lt;br&gt;&lt;/div&gt;&lt;div style=&quot;text-align: -webkit-auto;&quot;&gt;5. rdiff-backup 옵션 설명&lt;/div&gt;&lt;div style=&quot;text-align: -webkit-auto;&quot;&gt;&amp;nbsp; &amp;nbsp; - 백업하기&lt;/div&gt;&lt;div style=&quot;text-align: -webkit-auto;&quot;&gt;&lt;span style=&quot;text-align: justify; &quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;rdiff-backup [OPTIONS] &lt;/span&gt;(원본 경로) (백업 경로)&lt;br&gt;&lt;/div&gt;&lt;div style=&quot;text-align: -webkit-auto;&quot;&gt;&amp;nbsp; &amp;nbsp; - 복원하기&lt;/div&gt;&lt;div style=&quot;text-align: -webkit-auto;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;rdiff-backup -r [복원 시간 옵션] (백업 경로) (복원 경로)&lt;/div&gt;&lt;div style=&quot;text-align: -webkit-auto;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;[복원 시간 옵션]&lt;/div&gt;&lt;div style=&quot;text-align: -webkit-auto;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;- now : 지금&lt;/div&gt;&lt;div style=&quot;text-align: -webkit-auto;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;- 1D : 1일전&lt;/div&gt;&lt;div style=&quot;text-align: -webkit-auto;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;- 1W : 1주일전&lt;/div&gt;&lt;div style=&quot;text-align: -webkit-auto;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;- 1M : 1달전&lt;/div&gt;&lt;div style=&quot;text-align: -webkit-auto;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;- 1Y : 1년전&lt;/div&gt;&lt;div style=&quot;text-align: -webkit-auto;&quot;&gt;&amp;nbsp; &amp;nbsp; - 백업된 리스트 보기&lt;/div&gt;&lt;div style=&quot;text-align: -webkit-auto;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;rdiff-backup --list-increments (백업 경로)&lt;br&gt;&lt;/div&gt;&lt;div style=&quot;text-align: -webkit-auto;&quot;&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; - 백업된 용량 보기&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;rdiff-backup --list-increment-sizes (백업 경로)&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;text-align: -webkit-auto;&quot;&gt;&amp;nbsp; &amp;nbsp; - 변경된 리스트 보기&lt;br&gt;&lt;/div&gt;&lt;div style=&quot;text-align: -webkit-auto;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;rdiff-backup --list-changed-since [복원 시간 옵션] (백업 경로)&lt;br&gt;&lt;/div&gt;&lt;div style=&quot;text-align: -webkit-auto;&quot;&gt;&amp;nbsp; &amp;nbsp; - 백업 삭제하기&lt;br&gt;&lt;/div&gt;&lt;div style=&quot;text-align: -webkit-auto;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;rdiff-backup --remove-older-than [삭제 옵션] --force (백업 경로)&lt;br&gt;&lt;/div&gt;&lt;div style=&quot;text-align: -webkit-auto;&quot;&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;[삭제 옵션]&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;- 1B : 1회 백업까지 남기고 삭제&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;- 1D : 1일전 ...(나머지는 복원 시간 옵션과 동일)&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;6. 특정 폴더 및 확장자 제외하고 백업하기&lt;/div&gt;&lt;div style=&quot;text-align: -webkit-auto;&quot;&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; - .svn .git 폴더 제외&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;text-align: justify; &quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;rdiff-backup --exclude **/.svn --exclude **/.git &lt;/span&gt;(원본 경로) (백업 경로)&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; - .txt 확장자 제외&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;text-align: justify; &quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;rdiff-backup --exclude **.txt &lt;/span&gt;(원본 경로) (백업 경로)&lt;/div&gt;&lt;/div&gt;&lt;br class=&quot;Apple-interchange-newline&quot;&gt;&lt;/div&gt;</description>
			<category>Tip&amp;Tech</category>
			<author>(TTF)</author>
			<guid>http://npteam.net/877</guid>
			<comments>http://npteam.net/877#entry877comment</comments>
			<pubDate>Thu, 15 Mar 2012 01:36:42 +0900</pubDate>
		</item>
		<item>
			<title>[Python] ExecuteCmd 커맨드 명령어 실행하기</title>
			<link>http://npteam.net/871</link>
			<description>Python에서 Command 명령어 실행하는 예제

&lt;pre class=&quot;brush: py&quot;&gt;import os
import subprocess

def ExecuteCmd(self, strCmd):
    print &quot;[ExecuteCmd] %s&quot; % (strCmd)
    pipe = subprocess.Popen(strCmd,
        shell=True,
        stdin=subprocess.PIPE,
        stdout=subprocess.PIPE,
        stderr=subprocess.PIPE)

    pipe.stdin.close()

    retOutputList = []

    while( pipe.poll() is None ):
        out = pipe.stdout.readline()
        if( out != &#039;&#039; ):
            print out
            retOutputList.append(out)

    retCode = pipe.poll()
    return (retCode, retOutputList)
	
def main():
	(retCode, stdout) = ExecuteCmd(&#039;svn --version&#039;)
	print &#039;retCode : &#039; + str(retCode)
	print stdout
		
if __name__ == &quot;__main__&quot;:
	try:
		main()
	except os.error, err:
		print str(err)
&lt;/pre&gt;</description>
			<category>Python</category>
			<author>(TTF)</author>
			<guid>http://npteam.net/871</guid>
			<comments>http://npteam.net/871#entry871comment</comments>
			<pubDate>Thu, 19 Jan 2012 11:41:13 +0900</pubDate>
		</item>
		<item>
			<title>[MS-SQL] DB Schema 모두 제거하기</title>
			<link>http://npteam.net/870</link>
			<description>DB에서 Table, Procedure, View를 모두 삭제하는 Query 입니다.&lt;div&gt;맨 윗줄의 Use [DBName]을 수정하시고 사용하세요.&lt;/div&gt;
&lt;pre class=&quot;brush:sql&quot;&gt;USE [DBName]
GO

DECLARE @SysObjectCount INT
SELECT @SysObjectCount = COUNT(&#039;&#039;) FROM SYSOBJECTS WITH(NOLOCK)
    
-- Drop Views
BEGIN
     DECLARE @IndexForView INT
     SET @IndexForView = 0

     WHILE ( @IndexForView &amp;lt; @SysObjectCount )
     BEGIN
        DECLARE @VIEW_NAME VARCHAR(MAX)
        DECLARE VIEW_LIST CURSOR FOR
            SELECT NAME FROM SYSOBJECTS O2 WHERE XTYPE=&#039;V&#039;
        OPEN VIEW_LIST
        FETCH NEXT FROM VIEW_LIST INTO @VIEW_NAME 
        WHILE @@FETCH_STATUS = 0
        BEGIN
            PRINT &#039;DROPPING VIEW &#039;+@VIEW_NAME
            EXEC (&#039;DROP VIEW &#039;+@VIEW_NAME) 
            FETCH NEXT FROM VIEW_LIST INTO @VIEW_NAME
        END 
        CLOSE VIEW_LIST
        DEALLOCATE VIEW_LIST
        SET @IndexForView = @IndexForView + 1
     END
END

-- Drop Procedures
BEGIN
     DECLARE @IndexForProcedure INT
     SET @IndexForProcedure = 0
    
     WHILE ( @IndexForProcedure &amp;lt; @SysObjectCount )
     BEGIN
        DECLARE @PROCEDURE_NAME VARCHAR(MAX)
        DECLARE PROCEDURE_LIST CURSOR FOR
            SELECT NAME FROM SYSOBJECTS O2 WHERE XTYPE=&#039;P&#039;
        OPEN PROCEDURE_LIST
        FETCH NEXT FROM PROCEDURE_LIST INTO @PROCEDURE_NAME 
        WHILE @@FETCH_STATUS = 0
        BEGIN
            PRINT &#039;DROPPING PROCEDURE &#039;+@PROCEDURE_NAME
            EXEC (&#039;DROP PROCEDURE &#039;+@PROCEDURE_NAME) 
            FETCH NEXT FROM PROCEDURE_LIST INTO @PROCEDURE_NAME
        END 
        CLOSE PROCEDURE_LIST
        DEALLOCATE PROCEDURE_LIST
        SET @IndexForProcedure = @IndexForProcedure + 1
     END
END

-- Drop Tables
BEGIN
     DECLARE @IndexForTable INT
     SET @IndexForTable = 0
     WHILE ( @IndexForTable &amp;lt; @SysObjectCount )
     BEGIN
        DECLARE @TABLE_NAME VARCHAR(MAX)
        DECLARE TABLE_LIST CURSOR FOR
            SELECT NAME FROM SYSOBJECTS O2 WHERE XTYPE=&#039;U&#039; AND
               NOT EXISTS (
                    SELECT * FROM SYSFOREIGNKEYS K
                       JOIN SYSCOLUMNS C1 ON (K.FKEYID = C1.ID AND C1.COLID=K.FKEY)
                       JOIN SYSCOLUMNS C2 ON (K.RKEYID = C2.ID AND C2.COLID=K.RKEY)
                    WHERE C2.ID = O2.ID AND C1.ID &amp;lt;&amp;gt; O2.ID
               )
        OPEN TABLE_LIST
        FETCH NEXT FROM TABLE_LIST INTO @TABLE_NAME 
        WHILE @@FETCH_STATUS = 0
        BEGIN
            PRINT &#039;DROPPING TABLE &#039;+@TABLE_NAME
            EXEC (&#039;DROP TABLE &#039;+@TABLE_NAME) 
            FETCH NEXT FROM TABLE_LIST INTO @TABLE_NAME
        END 
        CLOSE TABLE_LIST
        DEALLOCATE TABLE_LIST
        SET @IndexForTable = @IndexForTable + 1
     END
END
&lt;/pre&gt;</description>
			<category>MS-SQL</category>
			<author>(TTF)</author>
			<guid>http://npteam.net/870</guid>
			<comments>http://npteam.net/870#entry870comment</comments>
			<pubDate>Tue, 10 Jan 2012 02:21:16 +0900</pubDate>
		</item>
		<item>
			<title>MRTG 윈도우 서버에 설치하기</title>
			<link>http://npteam.net/868</link>
			<description>&lt;div&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: Gulim; line-height: normal; font-size: medium; &quot;&gt;&lt;div style=&quot;font-family: Gulim, 굴림, &#039;Lucida Grande&#039;, AppleGothic, Arial, sans-serif; font-size: 12px; text-align: justify; line-height: 1.8; color: rgb(69, 69, 69); background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(255, 255, 255); &quot;&gt;&lt;b&gt;1. MRTG 홈페이지에서 윈도우용 zip 파일 다운로드&lt;/b&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp;&lt;a href=&quot;http://oss.oetiker.ch/mrtg/download.en.html&quot;&gt;http://oss.oetiker.ch/mrtg/download.en.html&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;b&gt;2. ActivePerl 윈도우용 다운로드 및 설치&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp;&lt;a href=&quot;http://www.activestate.com/activeperl/downloads&quot;&gt;http://www.activestate.com/activeperl/downloads&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;3. perl 스크립트로 mrtg 실행 확인하기&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://npteam.net/attach/1/1041700461.png&quot; rel=&quot;lightbox[2group0]&quot; title=&quot;&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://npteam.net/attach/1/1041700461.png&quot; width=&quot;563&quot; height=&quot;309&quot; alt=&quot;사용자 삽입 이미지&quot; title=&quot;&quot; style=&quot;cursor: pointer;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/span&gt;&lt;b&gt;4. 제어판-&amp;gt;모든 제어판 항목-&amp;gt;프로그램 및 기능-&amp;gt;윈도우즈 기능 사용/사용안함-&amp;gt;기능-&amp;gt;기능추가&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://npteam.net/attach/1/1220905847.png&quot; rel=&quot;lightbox[2group0]&quot; title=&quot;&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://npteam.net/attach/1/1220905847.png&quot; width=&quot;550&quot; height=&quot;232&quot; alt=&quot;사용자 삽입 이미지&quot; title=&quot;&quot; style=&quot;cursor: pointer;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;5. SNMP 서비스 속성 설정&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://npteam.net/attach/1/1000377101.png&quot; rel=&quot;lightbox[2group0]&quot; title=&quot;&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://npteam.net/attach/1/1000377101.png&quot; width=&quot;476&quot; height=&quot;437&quot; alt=&quot;사용자 삽입 이미지&quot; title=&quot;&quot; style=&quot;cursor: pointer;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://npteam.net/attach/1/1164700498.png&quot; rel=&quot;lightbox[2group0]&quot; title=&quot;&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://npteam.net/attach/1/1164700498.png&quot; width=&quot;475&quot; height=&quot;441&quot; alt=&quot;사용자 삽입 이미지&quot; title=&quot;&quot; style=&quot;cursor: pointer;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://npteam.net/attach/1/1197996468.png&quot; rel=&quot;lightbox[2group0]&quot; title=&quot;&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://npteam.net/attach/1/1197996468.png&quot; width=&quot;472&quot; height=&quot;439&quot; alt=&quot;사용자 삽입 이미지&quot; title=&quot;&quot; style=&quot;cursor: pointer;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(255, 255, 255); &quot;&gt;&lt;div&gt;&lt;div&gt;&lt;div style=&quot;color: rgb(69, 69, 69); font-family: Gulim, 굴림, &#039;Lucida Grande&#039;, AppleGothic, Arial, sans-serif; font-size: 12px; line-height: 1.8; &quot;&gt;&lt;br&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(69, 69, 69); font-family: Gulim, 굴림, &#039;Lucida Grande&#039;, AppleGothic, Arial, sans-serif; font-size: 12px; line-height: 1.8; &quot;&gt;&lt;b&gt;6. SNMP Information 설치&lt;/b&gt;&lt;br&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(69, 69, 69); font-family: Gulim, 굴림, &#039;Lucida Grande&#039;, AppleGothic, Arial, sans-serif; font-size: 12px; line-height: 1.8; &quot;&gt;&lt;a href=&quot;http://www.snmp-informant.com/snmp_informant-standard.htm&quot;&gt;http://www.snmp-informant.com/snmp_informant-standard.htm&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(69, 69, 69); font-family: Gulim, 굴림, &#039;Lucida Grande&#039;, AppleGothic, Arial, sans-serif; font-size: 12px; line-height: 1.8; &quot;&gt;&lt;br&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(69, 69, 69); font-family: Gulim, 굴림, &#039;Lucida Grande&#039;, AppleGothic, Arial, sans-serif; font-size: 12px; line-height: 1.8; &quot;&gt;&lt;b&gt;7. IIS 설치&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(69, 69, 69); font-family: Gulim, 굴림, &#039;Lucida Grande&#039;, AppleGothic, Arial, sans-serif; font-size: 12px; line-height: 1.8; &quot;&gt;IIS를 추가하고, mrtg 웹 사이트 추가&lt;/div&gt;&lt;div style=&quot;color: rgb(69, 69, 69); font-family: Gulim, 굴림, &#039;Lucida Grande&#039;, AppleGothic, Arial, sans-serif; font-size: 12px; line-height: 1.8; &quot;&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://npteam.net/attach/1/1099783628.png&quot; rel=&quot;lightbox[2group0]&quot; title=&quot;&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://npteam.net/attach/1/1099783628.png&quot; width=&quot;522&quot; height=&quot;407&quot; alt=&quot;사용자 삽입 이미지&quot; title=&quot;&quot; style=&quot;cursor: pointer;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(69, 69, 69); font-family: Gulim, 굴림, &#039;Lucida Grande&#039;, AppleGothic, Arial, sans-serif; font-size: 12px; line-height: 1.8; &quot;&gt;&lt;br&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(69, 69, 69); font-family: Gulim, 굴림, &#039;Lucida Grande&#039;, AppleGothic, Arial, sans-serif; font-size: 12px; line-height: 1.8; &quot;&gt;&lt;b&gt;8. snmp.exe 방화벽에 추가&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(69, 69, 69); font-family: Gulim, 굴림, &#039;Lucida Grande&#039;, AppleGothic, Arial, sans-serif; font-size: 12px; line-height: 1.8; &quot;&gt;%SystemRoot%\System32\snmp.exe&lt;/div&gt;&lt;div style=&quot;color: rgb(69, 69, 69); font-family: Gulim, 굴림, &#039;Lucida Grande&#039;, AppleGothic, Arial, sans-serif; font-size: 12px; line-height: 1.8; &quot;&gt;위 프로그램을 방화벽에 추가한다.&lt;/div&gt;&lt;div style=&quot;color: rgb(69, 69, 69); font-family: Gulim, 굴림, &#039;Lucida Grande&#039;, AppleGothic, Arial, sans-serif; font-size: 12px; line-height: 1.8; &quot;&gt;&lt;br&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(69, 69, 69); font-family: Gulim, 굴림, &#039;Lucida Grande&#039;, AppleGothic, Arial, sans-serif; font-size: 12px; line-height: 1.8; &quot;&gt;&lt;b&gt;9. perl 명령어 실행&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(69, 69, 69); font-family: Gulim, 굴림, &#039;Lucida Grande&#039;, AppleGothic, Arial, sans-serif; font-size: 12px; line-height: 1.8; &quot;&gt;&lt;div style=&quot;padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; background-color: rgb(208, 255, 157); &quot;&gt;&lt;div&gt;perl cfgmaker public@192.168.0.3 --global &quot;WorkDir: C:\Inetpub\wwwroot\mrtg&quot; --global &quot;RunAsDaemon: yes&quot; --global &quot;Language: korean&quot; --global &quot;Refresh: 300&quot; --global &quot;WithPeak[_]: dwmy --output mrtg.cfg&lt;/div&gt;&lt;div&gt;perl mrtg mrtg.cfg&lt;/div&gt;&lt;div&gt;perl indexmaker --output=C:\Inetpub\wwwroot\mrtg\index.htm mrtg.cfg --title=&quot;Server2008R2 MRTG&quot;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(69, 69, 69); font-family: Gulim, 굴림, &#039;Lucida Grande&#039;, AppleGothic, Arial, sans-serif; font-size: 12px; line-height: 1.8; &quot;&gt;&lt;br&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(69, 69, 69); font-family: Gulim, 굴림, &#039;Lucida Grande&#039;, AppleGothic, Arial, sans-serif; font-size: 12px; line-height: 1.8; &quot;&gt;&lt;b&gt;10. 5분마다 다시 실행&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(69, 69, 69); font-family: Gulim, 굴림, &#039;Lucida Grande&#039;, AppleGothic, Arial, sans-serif; font-size: 12px; line-height: 1.8; &quot;&gt;mrtg.cfg 파일 맨 마지막 부분에 &quot;RunAsDeamon: yes&quot; 추가 후 저장&lt;/div&gt;&lt;div&gt;&lt;div style=&quot;padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; background-color: rgb(208, 255, 157); &quot;&gt;&lt;div style=&quot;color: rgb(69, 69, 69); font-family: Gulim, 굴림, &#039;Lucida Grande&#039;, AppleGothic, Arial, sans-serif; font-size: 12px; line-height: 1.8; &quot;&gt;WorkDir: C:\Inetpub\wwwroot\mrtg&lt;/div&gt;&lt;div style=&quot;color: rgb(69, 69, 69); font-family: Gulim, 굴림, &#039;Lucida Grande&#039;, AppleGothic, Arial, sans-serif; font-size: 12px; line-height: 1.8; &quot;&gt;&lt;strongrunasdaemon: yes=&quot;&quot;&gt;&lt;strongrunasdeamon: yes=&quot;&quot;&gt;&lt;b&gt;RunAsDaemon: yes &amp;nbsp; &lt;/b&gt;# Interval 주기마다 mrtg.exe 다시 실행&lt;/strongrunasdeamon:&gt;&lt;/strongrunasdaemon:&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(69, 69, 69); font-family: Gulim, 굴림, &#039;Lucida Grande&#039;, AppleGothic, Arial, sans-serif; font-size: 12px; line-height: 1.8; &quot;&gt;&lt;b&gt;&lt;span style=&quot;font-weight: normal; &quot;&gt;Language: korean &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;# 한국어 언어 설정&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;strongrunasdaemon: yes=&quot;&quot;&gt;&lt;strongrunasdeamon: yes=&quot;&quot;&gt;Interval: 5 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;# 기본값 5분 이하로는 설정이 안됩니다.&lt;/strongrunasdeamon:&gt;&lt;/strongrunasdaemon:&gt;&lt;/div&gt;&lt;div&gt;&lt;strongrunasdaemon: yes=&quot;&quot;&gt;&lt;strongrunasdeamon: yes=&quot;&quot;&gt;Refresh: 300 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;# 웹페이지 자동 Refresh(초) 설정&lt;/strongrunasdeamon:&gt;&lt;/strongrunasdaemon:&gt;&lt;/div&gt;&lt;div&gt;&lt;strongrunasdaemon: yes=&quot;&quot;&gt;&lt;strongrunasdeamon: yes=&quot;&quot;&gt;WithPeak[_]: dwmy &amp;nbsp; &amp;nbsp; &amp;nbsp; # 최대값 표시&lt;/strongrunasdeamon:&gt;&lt;/strongrunasdaemon:&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(69, 69, 69); font-family: Gulim, 굴림, &#039;Lucida Grande&#039;, AppleGothic, Arial, sans-serif; font-size: 12px; line-height: 1.8; &quot;&gt;&quot;perl mrtg mrtg.cfg&quot; 실행시 5분마다 mrtg 실행&lt;/div&gt;&lt;div style=&quot;color: rgb(69, 69, 69); font-family: Gulim, 굴림, &#039;Lucida Grande&#039;, AppleGothic, Arial, sans-serif; font-size: 12px; line-height: 1.8; &quot;&gt;(단, cmd 창을 닫으면 재실행 안됨)&lt;/div&gt;&lt;div style=&quot;color: rgb(69, 69, 69); font-family: Gulim, 굴림, &#039;Lucida Grande&#039;, AppleGothic, Arial, sans-serif; font-size: 12px; line-height: 1.8; &quot;&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://npteam.net/attach/1/1296330528.png&quot; rel=&quot;lightbox[2group0]&quot; title=&quot;&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://npteam.net/attach/1/1296330528.png&quot; width=&quot;344&quot; height=&quot;55&quot; alt=&quot;사용자 삽입 이미지&quot; title=&quot;&quot; style=&quot;cursor: pointer;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;wperl로 실행하여 CMD 화면 안보이게 실행하기&lt;span style=&quot;color: rgb(0, 0, 0); font-family: Gulim; line-height: normal; font-size: medium; &quot;&gt;&lt;div style=&quot;font-family: Gulim, 굴림, &#039;Lucida Grande&#039;, AppleGothic, Arial, sans-serif; font-size: 12px; text-align: justify; line-height: 1.8; color: rgb(69, 69, 69); background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(255, 255, 255); &quot;&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;div style=&quot;padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; background-color: rgb(208, 255, 157); &quot;&gt;start /DD:\Util\mrtg\bin wperl mrtg --logging=eventlog mrtg.cfg&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;font-weight: bold; &quot;&gt;&lt;br&gt;&lt;/div&gt;&lt;div style=&quot;font-weight: bold; &quot;&gt;&lt;br&gt;&lt;/div&gt;&lt;div style=&quot;font-weight: bold; &quot;&gt;&lt;b&gt;11. 서비스로 등록하기&lt;/b&gt;&lt;/div&gt;&lt;div&gt;서비스 프로그램으로 등록하려면, 어플리캐이션에서 service 이벤트(start, stop, pause...)를 처리할 수 있는 핸들러가 등록되어 있어야 한다.&lt;/div&gt;&lt;div&gt;서비스 핸들러가 없는 프로그램을 서비스로 등록하기 위해서 Windows Server 2003 Resource Kit Tools을 사용해야 한다.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://www.microsoft.com/download/en/details.aspx?id=17657&quot;&gt;http://www.microsoft.com/download/en/details.aspx?id=17657&lt;/a&gt;&lt;br&gt;&lt;/div&gt;&lt;/div&gt;&lt;/span&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a class=&quot;extensionIcon&quot; href=&quot;http://www.npteam.net/attachment/1245468342.zip&quot;&gt;&lt;img src=&quot;http://www.npteam.net/image/extension/zip.gif&quot; alt=&quot;&quot; /&gt; MRTG_Service.zip&lt;/a&gt;&lt;/div&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: Gulim; line-height: normal; font-size: medium; &quot;&gt;&lt;div style=&quot;font-family: Gulim, 굴림, &#039;Lucida Grande&#039;, AppleGothic, Arial, sans-serif; font-size: 12px; text-align: justify; line-height: 1.8; color: rgb(69, 69, 69); background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(255, 255, 255); &quot;&gt;&lt;div&gt;srvany.exe와 instsrv.exe를 mrtg가 설치된 폴더에 복사한다.&lt;/div&gt;&lt;div style=&quot;font-weight: bold; &quot;&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;다음의 CMD 명령을 실행한다.&lt;/div&gt;&lt;div&gt;&lt;div style=&quot;padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; background-color: rgb(208, 255, 157); &quot;&gt;D:\Util\mrtg\bin\instsrv.exe MRTG D:\Util\mrtg\bin\srvany.exe&lt;/div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;다음과 같이 레지스트리 파일을 만들고 실행한다.&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;div style=&quot;padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; background-color: rgb(208, 255, 157); &quot;&gt;&lt;div&gt;Windows Registry Editor Version 5.00&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MRTG\Parameters]&lt;/div&gt;&lt;div&gt;&quot;Application&quot;=&quot;C:\\Perl64\\bin\\wperl.exe&quot;&lt;/div&gt;&lt;div&gt;&quot;AppParameters&quot;=&quot;D:\\Util\\mrtg\\bin\\mrtg.exe --logging=eventlog D:\\Util\\mrtg\\bin\\mrtg.cfg&quot;&lt;/div&gt;&lt;div&gt;&quot;AppDirectory&quot;=&quot;D:\\Util\\mrtg\\bin\\&quot;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;
제어판 -&amp;gt; 관리도구 -&amp;gt; 서비스에서 MRTG 서비스를 실행한다.&lt;div style=&quot;font-weight: bold; &quot;&gt;&lt;br&gt;&lt;/div&gt;&lt;div style=&quot;font-weight: bold; &quot;&gt;&lt;b&gt;12. SNMP 정보 수집을 위한 GetIf 프로그램&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://www.wtcs.org/snmp4tpc/getif.htm#MIB%20Browser&quot;&gt;http://www.wtcs.org/snmp4tpc/getif.htm#MIB%20Browser&lt;/a&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;6에서 설치한 SNMP-Information의 설치된 위치에서 SMIv1폴더의 MIB파일을&lt;/div&gt;&lt;div&gt;GetIf의 mbis폴더에 복사하여 사용한다.&lt;/div&gt;&lt;div&gt;(사용방법은 다른 웹사이트 참조)&lt;/div&gt;&lt;div style=&quot;font-weight: bold; &quot;&gt;&lt;br&gt;&lt;/div&gt;&lt;div style=&quot;font-weight: bold; &quot;&gt;&lt;b&gt;13. SNMP로 Traffic, CPU, RAM, HARD Disk 사용량 측정&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://www.npteam.net/869&quot; target=&quot;_blank&quot;&gt;http://www.npteam.net/869&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;font-weight: bold; &quot;&gt;&lt;br&gt;&lt;/div&gt;&lt;div style=&quot;font-weight: bold; &quot;&gt;&lt;b&gt;14. 결과&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;font-weight: bold; &quot;&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://npteam.net/attach/1/1398204088.png&quot; rel=&quot;lightbox[2group0]&quot; title=&quot;&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://npteam.net/attach/1/1398204088.png&quot; width=&quot;610&quot; height=&quot;237&quot; alt=&quot;사용자 삽입 이미지&quot; title=&quot;&quot; style=&quot;cursor: pointer;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br&gt;&lt;/div&gt;&lt;div style=&quot;font-weight: bold; &quot;&gt;&lt;br&gt;&lt;/div&gt;</description>
			<category>Tip&amp;Tech</category>
			<author>(TTF)</author>
			<guid>http://npteam.net/868</guid>
			<comments>http://npteam.net/868#entry868comment</comments>
			<pubDate>Sat, 29 Oct 2011 23:26:00 +0900</pubDate>
		</item>
		<item>
			<title>MRTG Config</title>
			<link>http://npteam.net/869</link>
			<description>MRTG 윈도우 서버에 설치하기 : &lt;a href=&quot;http://www.npteam.net/868&quot; target=&quot;_blank&quot;&gt;http://www.npteam.net/868&lt;/a&gt;

&lt;pre class=&quot;brush: py&quot;&gt;#cpu used percent
Target[CPU]: .1.3.6.1.4.1.9600.1.1.5.1.5.6.95.84.111.116.97.108&amp;amp;.1.3.6.1.4.1.9600.1.1.5.1.5.6.95.84.111.116.97.108:public@192.168.0.3
Title[CPU]: CPU used
PageTop[CPU]: &lt;h1&gt;CPU used %&lt;/h1&gt;
MaxBytes[CPU]: 100
ShortLegend[CPU]: %
YSize[CPU]: 100
YLegend[CPU]: CPU used
Legend1[CPU]: CPU used
Legend2[CPU]:
Legend3[CPU]:
Legend4[CPU]:
LegendI[CPU]: CPU used
LegendO[CPU]:
Options[CPU]: growright,gauge
Unscaled[CPU]: ymwd

#memory available bytes
Target[Memory]: (.1.3.6.1.4.1.9600.1.1.2.2.0&amp;amp;.1.3.6.1.4.1.9600.1.1.2.19.0:public@192.168.0.3 * 1024 )
Title[Memory]: Memory Available Bytes
PageTop[Memory]: &lt;h1&gt;Memory Available Bytes&lt;/h1&gt;
MaxBytes[Memory]: 8589934592
ShortLegend[Memory]: B
kilo[Memory]: 1024
YSize[Memory]: 100
YLegend[Memory]: memory
Legend1[Memory]: memory Available
Legend2[Memory]: memory Used
Legend3[Memory]:
Legend4[Memory]:
LegendI[Memory]: Available Memory
LegendO[Memory]: Used Memory
Options[Memory]: growright,gauge,nopercent
Unscaled[Memory]: ymwd


# HDD.C Avalable Percent 
Target[HDD.C]: .1.3.6.1.4.1.9600.1.1.1.1.5.2.67.58&amp;amp;.1.3.6.1.4.1.9600.1.1.1.1.5.2.67.58:public@192.168.0.3
Title[HDD.C]: DISK Avalable Percent
PageTop[HDD.C]: &lt;h1&gt;HDD.C Avalable Percent&lt;/h1&gt;
MaxBytes[HDD.C]: 100
ShortLegend[HDD.C]: %
YLegend[HDD.C]: Disk Avalable Percent
Legend1[HDD.C]: Current DISK Available percentage 
LegendI[HDD.C]: Available(Not used)
LegendO[HDD.C]:
Options[HDD.C]: growright,nopercent,gauge
Unscaled[HDD.C]: ymwd

# HDD.D Avalable Percent 
Target[HDD.D]: .1.3.6.1.4.1.9600.1.1.1.1.5.2.68.58&amp;amp;.1.3.6.1.4.1.9600.1.1.1.1.5.2.68.58:public@192.168.0.3
Title[HDD.D]: DISK Avalable Percent
PageTop[HDD.D]: &lt;h1&gt;HDD.D Avalable Percent&lt;/h1&gt;
MaxBytes[HDD.D]: 100
ShortLegend[HDD.D]: %
YLegend[HDD.D]: Disk Avalable Percent
Legend1[HDD.D]: Current DISK Available percentage 
LegendI[HDD.D]: Available(Not used)
LegendO[HDD.D]:
Options[HDD.D]: growright,nopercent,gauge
Unscaled[HDD.D]: ymwd

# HDD.E Avalable Percent
Target[HDD.E]: .1.3.6.1.4.1.9600.1.1.1.1.5.2.69.58&amp;amp;.1.3.6.1.4.1.9600.1.1.1.1.5.2.69.58:public@192.168.0.3
Title[HDD.E]: DISK Avalable Percent
PageTop[HDD.E]: &lt;h1&gt;HDD.E Avalable Percent&lt;/h1&gt;
MaxBytes[HDD.E]: 100
ShortLegend[HDD.E]: %
YLegend[HDD.E]: Disk Avalable Percent
Legend1[HDD.E]: Current DISK Available percentage 
LegendI[HDD.E]: Available(Not used)
LegendO[HDD.E]:
Options[HDD.E]: growright,nopercent,gauge
Unscaled[HDD.E]: ymwd

### Interface 11 &amp;gt;&amp;gt; Descr: &#039;Realtek-PCIe-GBE-Family-Controller&#039; | Name: &#039;ethernet_5&#039; | Ip: &#039;192.168.0.3&#039; | Eth: &#039;&#039; ###

Target[192.168.0.3_11]: 11:public@192.168.0.3:
SetEnv[192.168.0.3_11]: MRTG_INT_IP=&quot;192.168.0.3&quot; MRTG_INT_DESCR=&quot;Realtek-PCIe-GBE-Family-Controller&quot;
MaxBytes[192.168.0.3_11]: 12500000
Title[192.168.0.3_11]: Traffic Analysis for 11 -- Server2008R2
Options[192.168.0.3_11]: growright
PageTop[192.168.0.3_11]: &lt;h1&gt;Traffic Analysis for 11 -- Server2008R2&lt;/h1&gt;
		&lt;div id=&quot;sysdetails&quot;&gt;
			&lt;table&gt;
				&lt;tbody&gt;&lt;tr&gt;
					&lt;td&gt;System:&lt;/td&gt;
					&lt;td&gt;Server2008R2 in SERVER2008R2&lt;/td&gt;
				&lt;/tr&gt;
				&lt;tr&gt;
					&lt;td&gt;Maintainer:&lt;/td&gt;
					&lt;td&gt;00-000-0000&lt;/td&gt;
				&lt;/tr&gt;
				&lt;tr&gt;
					&lt;td&gt;Description:&lt;/td&gt;
					&lt;td&gt;Realtek-PCIe-GBE-Family-Controller  &lt;/td&gt;
				&lt;/tr&gt;
				&lt;tr&gt;
					&lt;td&gt;ifType:&lt;/td&gt;
					&lt;td&gt;ethernetCsmacd (6)&lt;/td&gt;
				&lt;/tr&gt;
				&lt;tr&gt;
					&lt;td&gt;ifName:&lt;/td&gt;
					&lt;td&gt;ethernet_5&lt;/td&gt;
				&lt;/tr&gt;
				&lt;tr&gt;
					&lt;td&gt;Max Speed:&lt;/td&gt;
					&lt;td&gt;12.5 MBytes/s&lt;/td&gt;
				&lt;/tr&gt;
				&lt;tr&gt;
					&lt;td&gt;Ip:&lt;/td&gt;
					&lt;td&gt;192.168.0.3 (Server2008R2)&lt;/td&gt;
				&lt;/tr&gt;
			&lt;/tbody&gt;&lt;/table&gt;
		&lt;/div&gt;
&lt;/pre&gt;</description>
			<category>Tip&amp;Tech</category>
			<author>(TTF)</author>
			<guid>http://npteam.net/869</guid>
			<comments>http://npteam.net/869#entry869comment</comments>
			<pubDate>Fri, 28 Oct 2011 01:46:00 +0900</pubDate>
		</item>
		<item>
			<title>MS-SQL Profiler를 대체하는 오픈소스 프로그램</title>
			<link>http://npteam.net/858</link>
			<description>MS-SQL에서도 빈번하게 사용하는 기능중에 하나는 바로 Profiler 입니다.&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;그렇지만 MS-SQL Profiler를 사용하기 위해서는 MS-SQL 2008 Developer 버전을&lt;/div&gt;&lt;div&gt;설치해야 하는 압박(?)을 받습니다.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;오픈소스 프로젝트 중에 MS-SQL Profiler를 대체할 간단한 프로그램을 소개합니다.&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://code.google.com/p/sqlexpressprofiler/&quot;&gt;http://code.google.com/p/sqlexpressprofiler/&lt;/a&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;아주 단순하게 Profiler의 기능을 사용할 수 있으며, 편의성은 아무래도 떨어지는 편입니다.&lt;/div&gt;&lt;div&gt;하지만 오픈소스라는 장점이 있고 설치 압박(?)에서 벗어날 수 있으므로 간단히 사용하기엔 좋은 프로그램입니다.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://npteam.net/attach/1/1280596575.png&quot; rel=&quot;lightbox[2group0]&quot; title=&quot;&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://npteam.net/attach/1/1280596575.png&quot; width=&quot;512&quot; height=&quot;339&quot; alt=&quot;사용자 삽입 이미지&quot; title=&quot;&quot; style=&quot;cursor: pointer;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/div&gt;프로그램을 실행하고 New Trace를 선택합니다.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://npteam.net/attach/1/1285759142.png&quot; rel=&quot;lightbox[2group0]&quot; title=&quot;&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://npteam.net/attach/1/1285759142.png&quot; width=&quot;610&quot; height=&quot;391&quot; alt=&quot;사용자 삽입 이미지&quot; title=&quot;&quot; style=&quot;cursor: pointer;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/div&gt;서버 IP, UserName, Password를 차례대로 입력하고, Events 탭을 선택합니다.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://npteam.net/attach/1/1156153050.png&quot; rel=&quot;lightbox[2group0]&quot; title=&quot;&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://npteam.net/attach/1/1156153050.png&quot; width=&quot;610&quot; height=&quot;391&quot; alt=&quot;사용자 삽입 이미지&quot; title=&quot;&quot; style=&quot;cursor: pointer;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/div&gt;SQLBatchCompleted 항목을 모두 선택하고, Filters 탭으로 이동합니다.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://npteam.net/attach/1/1347589065.png&quot; rel=&quot;lightbox[2group0]&quot; title=&quot;&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://npteam.net/attach/1/1347589065.png&quot; width=&quot;610&quot; height=&quot;391&quot; alt=&quot;사용자 삽입 이미지&quot; title=&quot;&quot; style=&quot;cursor: pointer;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/div&gt;TextData 항목에서 Like를 선택하고, &lt;b&gt;%찾을 내용%&lt;/b&gt;&amp;nbsp;을 입력합니다.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;이제 Run을 실행하면 Profiler가 시작됩니다.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;이제 무거운 MS-SQL Profiler를 설치하지 않아도 간단히 Profiler를 실행할 수 있게 되었습니다.&lt;/div&gt;</description>
			<category>MS-SQL</category>
			<author>(TTF)</author>
			<guid>http://npteam.net/858</guid>
			<comments>http://npteam.net/858#entry858comment</comments>
			<pubDate>Tue, 06 Sep 2011 18:34:48 +0900</pubDate>
		</item>
		<item>
			<title>자동 증가 키 RESET(RESEED)</title>
			<link>http://npteam.net/857</link>
			<description>truncate table을 할 경우에는 자동 증가 키가 리셋 된다.&lt;div&gt;delete를 할 경우에는 자동 증가 키가 리셋 되지 않는다.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;자동 증가 키 RESET 하는 방법&lt;/div&gt;

&lt;pre class=&quot;brush: sql&quot;&gt;DBCC CHECKIDENT( [Table Name], RESEED, 0 )
&lt;/pre&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;

자동 증가 키 제약을 풀고 INSERT 하는 방법&lt;pre class=&quot;brush: sql&quot;&gt;SET IDENTITY_INSERT test ON

INSERT [Table Name] (ID, Context) values( 0, &#039;Context&#039; )

SET IDENTITY_INSERT test OFF
&lt;/pre&gt;</description>
			<category>MS-SQL</category>
			<author>(TTF)</author>
			<guid>http://npteam.net/857</guid>
			<comments>http://npteam.net/857#entry857comment</comments>
			<pubDate>Tue, 06 Sep 2011 11:30:03 +0900</pubDate>
		</item>
		<item>
			<title>MMORPG에서 좁은 지역에 유저 N명이 모여 있을 때 처리 방법</title>
			<link>http://npteam.net/855</link>
			<description>&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;

&lt;/font&gt;&lt;p&gt;&lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;; font-size: 11pt; mso-bidi-font-size: 12.0pt; mso-ascii-theme-font: major-latin; mso-fareast-theme-font: major-latin; mso-hansi-theme-font: major-latin;&quot; lang=&quot;EN-US&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a class=&quot;extensionIcon&quot; href=&quot;http://www.npteam.net/attachment/1375034743.pdf&quot;&gt;&lt;img src=&quot;http://www.npteam.net/image/extension/pdf.gif&quot; alt=&quot;&quot; /&gt; MMORPG에서_좁은_지역에_유저_N명이_모여_있을때_처리_방법.pdf&lt;/a&gt;&lt;/div&gt;MMORPG&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;; font-size: 11pt; mso-bidi-font-size: 12.0pt; mso-ascii-theme-font: major-latin; mso-fareast-theme-font: major-latin; mso-hansi-theme-font: major-latin;&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;에서 좁은 지역에 유저가&lt;span lang=&quot;EN-US&quot;&gt; N&lt;/span&gt;명이
모여 있을 때 처리 방법&lt;/font&gt;&lt;span lang=&quot;EN-US&quot;&gt;&lt;br&gt;&lt;font color=&quot;#000000&quot;&gt;
&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;; font-size: 10pt; mso-bidi-font-size: 12.0pt; mso-ascii-theme-font: major-latin; mso-fareast-theme-font: major-latin; mso-hansi-theme-font: major-latin;&quot; lang=&quot;EN-US&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;(&lt;/font&gt;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;; font-size: 10pt; mso-bidi-font-size: 12.0pt; mso-ascii-theme-font: major-latin; mso-fareast-theme-font: major-latin; mso-hansi-theme-font: major-latin;&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;출처&lt;/font&gt;&lt;span lang=&quot;EN-US&quot;&gt;&lt;font color=&quot;#000000&quot;&gt; : &lt;/font&gt;&lt;a href=&quot;http://www.npteam.net/855&quot;&gt;&lt;u&gt;&lt;font color=&quot;#0000ff&quot;&gt;http:://www.npteam.net/855&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;&lt;font color=&quot;#000000&quot;&gt;)&lt;!--?xml:namespace prefix = o ns = &quot;urn:schemas-microsoft-com:office:office&quot; /--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;

&lt;/font&gt;&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;&lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;; font-size: 10pt; mso-bidi-font-size: 12.0pt; mso-ascii-theme-font: major-latin; mso-fareast-theme-font: major-latin; mso-hansi-theme-font: major-latin;&quot; lang=&quot;EN-US&quot;&gt;1. &lt;/span&gt;&lt;/b&gt;&lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;; font-size: 10pt; mso-bidi-font-size: 12.0pt; mso-ascii-theme-font: major-latin; mso-fareast-theme-font: major-latin; mso-hansi-theme-font: major-latin;&quot;&gt;기획적 의도로 해결하는 방법&lt;span lang=&quot;EN-US&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/font&gt;&lt;/p&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;

&lt;/font&gt;&lt;ul type=&quot;disc&quot;&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;
 &lt;/font&gt;&lt;li style=&quot;margin: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l2 level1 lfo1; tab-stops: list 36.0pt;&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;; font-size: 10pt; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt; mso-ascii-theme-font: major-latin; mso-fareast-theme-font: major-latin; mso-hansi-theme-font: major-latin;&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;국지전이 일어나는 장소를 여러 곳으로 분할한다&lt;span lang=&quot;EN-US&quot;&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/li&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;
 &lt;/font&gt;&lt;li style=&quot;margin: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l2 level1 lfo1; tab-stops: list 36.0pt;&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;; font-size: 10pt; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt; mso-ascii-theme-font: major-latin; mso-fareast-theme-font: major-latin; mso-hansi-theme-font: major-latin;&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;국지전에 참여할 수 있는 최대 인원수를 제한한다&lt;span lang=&quot;EN-US&quot;&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/li&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;
&lt;/font&gt;&lt;/ul&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;

&lt;/font&gt;&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;&lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;; font-size: 10pt; mso-bidi-font-size: 12.0pt; mso-ascii-theme-font: major-latin; mso-fareast-theme-font: major-latin; mso-hansi-theme-font: major-latin;&quot; lang=&quot;EN-US&quot;&gt;2. &lt;/span&gt;&lt;/b&gt;&lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;; font-size: 10pt; mso-bidi-font-size: 12.0pt; mso-ascii-theme-font: major-latin; mso-fareast-theme-font: major-latin; mso-hansi-theme-font: major-latin;&quot;&gt;프로그램적으로 해결하는 방법&lt;span lang=&quot;EN-US&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/font&gt;&lt;/p&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;

&lt;/font&gt;&lt;ul type=&quot;disc&quot;&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;
 &lt;/font&gt;&lt;li style=&quot;margin: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l1 level1 lfo2; tab-stops: list 36.0pt;&quot; class=&quot;MsoNormal&quot;&gt;&lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;; font-size: 10pt; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt; mso-ascii-theme-font: major-latin; mso-fareast-theme-font: major-latin; mso-hansi-theme-font: major-latin;&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;영향을
     미치는 요소들 &lt;span lang=&quot;EN-US&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;
 &lt;/font&gt;&lt;ul type=&quot;circle&quot;&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;
  &lt;/font&gt;&lt;li style=&quot;margin: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l1 level2 lfo2; tab-stops: list 72.0pt;&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;; font-size: 10pt; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt; mso-ascii-theme-font: major-latin; mso-fareast-theme-font: major-latin; mso-hansi-theme-font: major-latin;&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;데이터 크기&lt;span lang=&quot;EN-US&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/li&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;
  &lt;/font&gt;&lt;li style=&quot;margin: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l1 level2 lfo2; tab-stops: list 72.0pt;&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;; font-size: 10pt; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt; mso-ascii-theme-font: major-latin; mso-fareast-theme-font: major-latin; mso-hansi-theme-font: major-latin;&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;데이터를 보내는 빈도 수&lt;span lang=&quot;EN-US&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/li&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;
  &lt;/font&gt;&lt;li style=&quot;margin: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l1 level2 lfo2; tab-stops: list 72.0pt;&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;; font-size: 10pt; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt; mso-ascii-theme-font: major-latin; mso-fareast-theme-font: major-latin; mso-hansi-theme-font: major-latin;&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;전송 특성 &lt;span lang=&quot;EN-US&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/li&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;
  &lt;/font&gt;&lt;ul type=&quot;square&quot;&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;
   &lt;/font&gt;&lt;li style=&quot;margin: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l1 level3 lfo2; tab-stops: list 108.0pt;&quot; class=&quot;MsoNormal&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;; font-size: 10pt; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt; mso-ascii-theme-font: major-latin; mso-fareast-theme-font: major-latin; mso-hansi-theme-font: major-latin;&quot; lang=&quot;EN-US&quot;&gt;1:1 &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;; font-size: 10pt; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt; mso-ascii-theme-font: major-latin; mso-fareast-theme-font: major-latin; mso-hansi-theme-font: major-latin;&quot;&gt;패킷 보내기&lt;span lang=&quot;EN-US&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/li&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;
   &lt;/font&gt;&lt;li style=&quot;margin: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l1 level3 lfo2; tab-stops: list 108.0pt;&quot; class=&quot;MsoNormal&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;; font-size: 10pt; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt; mso-ascii-theme-font: major-latin; mso-fareast-theme-font: major-latin; mso-hansi-theme-font: major-latin;&quot; lang=&quot;EN-US&quot;&gt;1:N &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;; font-size: 10pt; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt; mso-ascii-theme-font: major-latin; mso-fareast-theme-font: major-latin; mso-hansi-theme-font: major-latin;&quot;&gt;패킷 보내기&lt;span lang=&quot;EN-US&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/li&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;
   &lt;/font&gt;&lt;li style=&quot;margin: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l1 level3 lfo2; tab-stops: list 108.0pt;&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;; font-size: 10pt; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt; mso-ascii-theme-font: major-latin; mso-fareast-theme-font: major-latin; mso-hansi-theme-font: major-latin;&quot; lang=&quot;EN-US&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;N:M &lt;/font&gt;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;; font-size: 10pt; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt; mso-ascii-theme-font: major-latin; mso-fareast-theme-font: major-latin; mso-hansi-theme-font: major-latin;&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;패킷 보내기&lt;br&gt;&lt;/font&gt;&lt;/span&gt;&lt;/li&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;
  &lt;/font&gt;&lt;/ul&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;
 &lt;/font&gt;&lt;/ul&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;
 &lt;/font&gt;&lt;li style=&quot;margin: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l1 level1 lfo2; tab-stops: list 36.0pt;&quot; class=&quot;MsoNormal&quot;&gt;&lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;; font-size: 10pt; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt; mso-ascii-theme-font: major-latin; mso-fareast-theme-font: major-latin; mso-hansi-theme-font: major-latin;&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;해결방법
     &lt;span lang=&quot;EN-US&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;
 &lt;/font&gt;&lt;ul type=&quot;circle&quot;&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;
  &lt;/font&gt;&lt;li style=&quot;margin: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l1 level2 lfo2; tab-stops: list 72.0pt;&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;; font-size: 10pt; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt; mso-ascii-theme-font: major-latin; mso-fareast-theme-font: major-latin; mso-hansi-theme-font: major-latin;&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;데이터 크기 &lt;span lang=&quot;EN-US&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/li&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;
  &lt;/font&gt;&lt;ul type=&quot;square&quot;&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;
   &lt;/font&gt;&lt;li style=&quot;margin: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l1 level3 lfo2; tab-stops: list 108.0pt;&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;; font-size: 10pt; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt; mso-ascii-theme-font: major-latin; mso-fareast-theme-font: major-latin; mso-hansi-theme-font: major-latin;&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;패킷 데이터의 크기를
       최대한 줄인다&lt;span lang=&quot;EN-US&quot;&gt;. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/li&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;
   &lt;/font&gt;&lt;ul type=&quot;square&quot;&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;
    &lt;/font&gt;&lt;li style=&quot;margin: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l1 level4 lfo2; tab-stops: list 144.0pt;&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;; font-size: 10pt; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt; mso-ascii-theme-font: major-latin; mso-fareast-theme-font: major-latin; mso-hansi-theme-font: major-latin;&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;패킷에 포함된 기본
        정보 단위를 최소화 한다&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;.&lt;br&gt;
        ( &lt;/span&gt;자료형 단위를 줄이는 방법&lt;span lang=&quot;EN-US&quot;&gt;, &lt;/span&gt;불필요한 정보를 제거하는 방법&lt;span lang=&quot;EN-US&quot;&gt; )&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/li&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;
   &lt;/font&gt;&lt;/ul&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;
   &lt;/font&gt;&lt;li style=&quot;margin: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l1 level3 lfo2; tab-stops: list 108.0pt;&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;; font-size: 10pt; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt; mso-ascii-theme-font: major-latin; mso-fareast-theme-font: major-latin; mso-hansi-theme-font: major-latin;&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;패킷 데이터를 압축한다&lt;span lang=&quot;EN-US&quot;&gt;. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/li&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;
   &lt;/font&gt;&lt;ul type=&quot;square&quot;&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;
    &lt;/font&gt;&lt;li style=&quot;margin: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l1 level4 lfo2; tab-stops: list 144.0pt;&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;; font-size: 10pt; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt; mso-ascii-theme-font: major-latin; mso-fareast-theme-font: major-latin; mso-hansi-theme-font: major-latin;&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;패킷 데이터를 압축&lt;span lang=&quot;EN-US&quot;&gt;/&lt;/span&gt;해제시&lt;span lang=&quot;EN-US&quot;&gt; CPU &lt;/span&gt;자원을 사용한다&lt;span lang=&quot;EN-US&quot;&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/li&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;
    &lt;/font&gt;&lt;li style=&quot;margin: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l1 level4 lfo2; tab-stops: list 144.0pt;&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;; font-size: 10pt; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt; mso-ascii-theme-font: major-latin; mso-fareast-theme-font: major-latin; mso-hansi-theme-font: major-latin;&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;브로드캐스팅할 경우
        패킷이 작아지면 트래픽이 줄어드는 잇점이 있다&lt;/font&gt;&lt;span lang=&quot;EN-US&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;.&lt;br style=&quot;mso-special-character: line-break;&quot;&gt;
 &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 
 &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;
   &lt;/font&gt;&lt;/ul&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;
  &lt;/font&gt;&lt;/ul&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;
  &lt;/font&gt;&lt;li style=&quot;margin: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l1 level2 lfo2; tab-stops: list 72.0pt;&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;; font-size: 10pt; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt; mso-ascii-theme-font: major-latin; mso-fareast-theme-font: major-latin; mso-hansi-theme-font: major-latin;&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;데이터를 보내는 빈도 수
      &lt;span lang=&quot;EN-US&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/li&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;
  &lt;/font&gt;&lt;ul type=&quot;square&quot;&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;
   &lt;/font&gt;&lt;li style=&quot;margin: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l1 level3 lfo2; tab-stops: list 108.0pt;&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;; font-size: 10pt; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt; mso-ascii-theme-font: major-latin; mso-fareast-theme-font: major-latin; mso-hansi-theme-font: major-latin;&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;최대 빈도수를 정한다&lt;span lang=&quot;EN-US&quot;&gt;. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/li&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;
   &lt;/font&gt;&lt;ul type=&quot;square&quot;&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;
    &lt;/font&gt;&lt;li style=&quot;margin: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l1 level4 lfo2; tab-stops: list 144.0pt;&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;; font-size: 10pt; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt; mso-ascii-theme-font: major-latin; mso-fareast-theme-font: major-latin; mso-hansi-theme-font: major-latin;&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;클라이언트 응답 속도&lt;span lang=&quot;EN-US&quot;&gt; 250ms&lt;/span&gt;일 경우&lt;span lang=&quot;EN-US&quot;&gt; 1&lt;/span&gt;초에&lt;span lang=&quot;EN-US&quot;&gt; 4&lt;/span&gt;번&lt;span lang=&quot;EN-US&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/li&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;
    &lt;/font&gt;&lt;li style=&quot;margin: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l1 level4 lfo2; tab-stops: list 144.0pt;&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;; font-size: 10pt; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt; mso-ascii-theme-font: major-latin; mso-fareast-theme-font: major-latin; mso-hansi-theme-font: major-latin;&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;클라이언트 응답 속도&lt;span lang=&quot;EN-US&quot;&gt; 200ms&lt;/span&gt;일 경우&lt;span lang=&quot;EN-US&quot;&gt; 1&lt;/span&gt;초에&lt;span lang=&quot;EN-US&quot;&gt; 5&lt;/span&gt;번&lt;/font&gt;&lt;span lang=&quot;EN-US&quot;&gt;&lt;br&gt;&lt;font color=&quot;#000000&quot;&gt;
        (&lt;/font&gt;&lt;/span&gt;&lt;font color=&quot;#000000&quot;&gt;이동 패킷과 스킬 사용 패킷을&lt;span lang=&quot;EN-US&quot;&gt; 1&lt;/span&gt;초에&lt;span lang=&quot;EN-US&quot;&gt;
        4-5&lt;/span&gt;번으로 해결하기 어렵다&lt;span lang=&quot;EN-US&quot;&gt;.)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/li&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;
   &lt;/font&gt;&lt;/ul&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;
   &lt;/font&gt;&lt;li style=&quot;margin: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l1 level3 lfo2; tab-stops: list 108.0pt;&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;; font-size: 10pt; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt; mso-ascii-theme-font: major-latin; mso-fareast-theme-font: major-latin; mso-hansi-theme-font: major-latin;&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;우선순위 큐를 이용한
       패킷 전송 &lt;span lang=&quot;EN-US&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/li&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;
   &lt;/font&gt;&lt;ul type=&quot;square&quot;&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;
    &lt;/font&gt;&lt;li style=&quot;margin: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l1 level4 lfo2; tab-stops: list 144.0pt;&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;; font-size: 10pt; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt; mso-ascii-theme-font: major-latin; mso-fareast-theme-font: major-latin; mso-hansi-theme-font: major-latin;&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;전투 관련 패킷을 우선적으로
        처리한다&lt;span lang=&quot;EN-US&quot;&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/li&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;
    &lt;/font&gt;&lt;li style=&quot;margin: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l1 level4 lfo2; tab-stops: list 144.0pt;&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;; font-size: 10pt; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt; mso-ascii-theme-font: major-latin; mso-fareast-theme-font: major-latin; mso-hansi-theme-font: major-latin;&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;비우선 패킷들&lt;span lang=&quot;EN-US&quot;&gt; : &lt;/span&gt;로그&lt;span lang=&quot;EN-US&quot;&gt;, &lt;/span&gt;채팅&lt;span lang=&quot;EN-US&quot;&gt;, &lt;/span&gt;환경
        오브젝트 처리&lt;span lang=&quot;EN-US&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/li&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;
   &lt;/font&gt;&lt;/ul&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;
   &lt;/font&gt;&lt;li style=&quot;margin: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l1 level3 lfo2; tab-stops: list 108.0pt;&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;; font-size: 10pt; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt; mso-ascii-theme-font: major-latin; mso-fareast-theme-font: major-latin; mso-hansi-theme-font: major-latin;&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;이미 전송한 명령은&lt;span lang=&quot;EN-US&quot;&gt; Send &lt;/span&gt;버퍼&lt;span lang=&quot;EN-US&quot;&gt; Queue&lt;/span&gt;에서 삭제한다&lt;span lang=&quot;EN-US&quot;&gt;. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/li&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;
   &lt;/font&gt;&lt;ul type=&quot;square&quot;&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;
    &lt;/font&gt;&lt;li style=&quot;margin: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l1 level4 lfo2; tab-stops: list 144.0pt;&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;; font-size: 10pt; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt; mso-ascii-theme-font: major-latin; mso-fareast-theme-font: major-latin; mso-hansi-theme-font: major-latin;&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;동일한 좌표로 계속
        이동하는 패킷은 클라이언트에서 한번만 보내도 된다&lt;span lang=&quot;EN-US&quot;&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/li&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;
    &lt;/font&gt;&lt;li style=&quot;margin: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l1 level4 lfo2; tab-stops: list 144.0pt;&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;; font-size: 10pt; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt; mso-ascii-theme-font: major-latin; mso-fareast-theme-font: major-latin; mso-hansi-theme-font: major-latin;&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;필요 없는 패킷을 제거하여&lt;span lang=&quot;EN-US&quot;&gt;, &lt;/span&gt;트래픽도 줄이고 서버의&lt;span lang=&quot;EN-US&quot;&gt; CPU &lt;/span&gt;자원 사용도 줄일 수
        있다&lt;/font&gt;&lt;span lang=&quot;EN-US&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;.&lt;br style=&quot;mso-special-character: line-break;&quot;&gt;
 &amp;nbsp; &amp;nbsp; 
&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;li style=&quot;margin: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l1 level2 lfo2; tab-stops: list 72.0pt;&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;; font-size: 10pt; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt; mso-ascii-theme-font: major-latin; mso-fareast-theme-font: major-latin; mso-hansi-theme-font: major-latin;&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;전송 특성 &lt;span lang=&quot;EN-US&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/li&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;
  &lt;/font&gt;&lt;ul type=&quot;square&quot;&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;
   &lt;/font&gt;&lt;li style=&quot;margin: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l1 level3 lfo2; tab-stops: list 108.0pt;&quot; class=&quot;MsoNormal&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;; font-size: 10pt; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt; mso-ascii-theme-font: major-latin; mso-fareast-theme-font: major-latin; mso-hansi-theme-font: major-latin;&quot; lang=&quot;EN-US&quot;&gt;1:1 &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;; font-size: 10pt; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt; mso-ascii-theme-font: major-latin; mso-fareast-theme-font: major-latin; mso-hansi-theme-font: major-latin;&quot;&gt;패킷 보내기 &lt;span lang=&quot;EN-US&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/li&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;
   &lt;/font&gt;&lt;ul type=&quot;square&quot;&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;
    &lt;/font&gt;&lt;li style=&quot;margin: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l1 level4 lfo2; tab-stops: list 144.0pt;&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;; font-size: 10pt; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt; mso-ascii-theme-font: major-latin; mso-fareast-theme-font: major-latin; mso-hansi-theme-font: major-latin;&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;문제점 없음&lt;span lang=&quot;EN-US&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/li&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;
   &lt;/font&gt;&lt;/ul&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;
   &lt;/font&gt;&lt;li style=&quot;margin: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l1 level3 lfo2; tab-stops: list 108.0pt;&quot; class=&quot;MsoNormal&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;; font-size: 10pt; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt; mso-ascii-theme-font: major-latin; mso-fareast-theme-font: major-latin; mso-hansi-theme-font: major-latin;&quot; lang=&quot;EN-US&quot;&gt;1:N &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;; font-size: 10pt; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt; mso-ascii-theme-font: major-latin; mso-fareast-theme-font: major-latin; mso-hansi-theme-font: major-latin;&quot;&gt;패킷 보내기 &lt;span lang=&quot;EN-US&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/li&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;
   &lt;/font&gt;&lt;ul type=&quot;square&quot;&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;
    &lt;/font&gt;&lt;li style=&quot;margin: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l1 level4 lfo2; tab-stops: list 144.0pt;&quot; class=&quot;MsoNormal&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;; font-size: 10pt; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt; mso-ascii-theme-font: major-latin; mso-fareast-theme-font: major-latin; mso-hansi-theme-font: major-latin;&quot; lang=&quot;EN-US&quot;&gt;Send &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;; font-size: 10pt; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt; mso-ascii-theme-font: major-latin; mso-fareast-theme-font: major-latin; mso-hansi-theme-font: major-latin;&quot;&gt;패킷 버퍼 재활용 필요함&lt;span lang=&quot;EN-US&quot;&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/li&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;
   &lt;/font&gt;&lt;/ul&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;
   &lt;/font&gt;&lt;li style=&quot;margin: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l1 level3 lfo2; tab-stops: list 108.0pt;&quot; class=&quot;MsoNormal&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;; font-size: 10pt; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt; mso-ascii-theme-font: major-latin; mso-fareast-theme-font: major-latin; mso-hansi-theme-font: major-latin;&quot; lang=&quot;EN-US&quot;&gt;N:M &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;; font-size: 10pt; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt; mso-ascii-theme-font: major-latin; mso-fareast-theme-font: major-latin; mso-hansi-theme-font: major-latin;&quot;&gt;패킷 보내기 &lt;span lang=&quot;EN-US&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/li&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;
   &lt;/font&gt;&lt;ul type=&quot;square&quot;&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;
    &lt;/font&gt;&lt;li style=&quot;margin: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l1 level4 lfo2; tab-stops: list 144.0pt;&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;; font-size: 10pt; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt; mso-ascii-theme-font: major-latin; mso-fareast-theme-font: major-latin; mso-hansi-theme-font: major-latin;&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;패킷 압축 필요함&lt;span lang=&quot;EN-US&quot;&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/li&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;
    &lt;/font&gt;&lt;li style=&quot;margin: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l1 level4 lfo2; tab-stops: list 144.0pt;&quot; class=&quot;MsoNormal&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;; font-size: 10pt; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt; mso-ascii-theme-font: major-latin; mso-fareast-theme-font: major-latin; mso-hansi-theme-font: major-latin;&quot; lang=&quot;EN-US&quot;&gt;Send &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;; font-size: 10pt; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt; mso-ascii-theme-font: major-latin; mso-fareast-theme-font: major-latin; mso-hansi-theme-font: major-latin;&quot;&gt;패킷 버퍼 재활용 필요함&lt;span lang=&quot;EN-US&quot;&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/li&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;
    &lt;/font&gt;&lt;li style=&quot;margin: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l1 level4 lfo2; tab-stops: list 144.0pt;&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;; font-size: 10pt; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt; mso-ascii-theme-font: major-latin; mso-fareast-theme-font: major-latin; mso-hansi-theme-font: major-latin;&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;브로드캐스팅을 게임
        서버에서 하지 않고&lt;span lang=&quot;EN-US&quot;&gt;, Front &lt;/span&gt;혹은&lt;span lang=&quot;EN-US&quot;&gt; Agent &lt;/span&gt;서버로
        패스하여 처리한다&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;.&lt;br&gt;
        (UDP SuperPeer&lt;/span&gt;를 사용할 경우 클라이언트에서 브로드 캐스팅하는 것도 고려해 볼 수 있다&lt;span lang=&quot;EN-US&quot;&gt;.)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/li&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;
   &lt;/font&gt;&lt;/ul&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;
  &lt;/font&gt;&lt;/ul&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;
 &lt;/font&gt;&lt;/ul&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;
&lt;/font&gt;&lt;/ul&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;

&lt;/font&gt;&lt;p&gt;&lt;font color=&quot;#000000&quot;&gt;&lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;; font-size: 10pt; mso-bidi-font-size: 12.0pt; mso-ascii-theme-font: major-latin; mso-fareast-theme-font: major-latin; mso-hansi-theme-font: major-latin;&quot; lang=&quot;EN-US&quot;&gt;3. &lt;/span&gt;&lt;/b&gt;&lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;; font-size: 10pt; mso-bidi-font-size: 12.0pt; mso-ascii-theme-font: major-latin; mso-fareast-theme-font: major-latin; mso-hansi-theme-font: major-latin;&quot;&gt;그외에 더 생각해 볼 사항&lt;span lang=&quot;EN-US&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/font&gt;&lt;/p&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;

&lt;/font&gt;&lt;ul type=&quot;disc&quot;&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;
 &lt;/font&gt;&lt;li style=&quot;margin: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo3; tab-stops: list 36.0pt;&quot; class=&quot;MsoNormal&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;&lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;; font-size: 10pt; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt; mso-ascii-theme-font: major-latin; mso-fareast-theme-font: major-latin; mso-hansi-theme-font: major-latin;&quot; lang=&quot;EN-US&quot;&gt;CPU
     &lt;/span&gt;&lt;/b&gt;&lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;; font-size: 10pt; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt; mso-ascii-theme-font: major-latin; mso-fareast-theme-font: major-latin; mso-hansi-theme-font: major-latin;&quot;&gt;자원 &lt;span lang=&quot;EN-US&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/font&gt;&lt;/li&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;
 &lt;/font&gt;&lt;ul type=&quot;circle&quot;&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;
  &lt;/font&gt;&lt;li style=&quot;margin: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level2 lfo3; tab-stops: list 72.0pt;&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;; font-size: 10pt; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt; mso-ascii-theme-font: major-latin; mso-fareast-theme-font: major-latin; mso-hansi-theme-font: major-latin;&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;메모리간 데이터 복사를
      최소화 한다&lt;span lang=&quot;EN-US&quot;&gt;. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/li&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;
  &lt;/font&gt;&lt;ul type=&quot;square&quot;&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;
   &lt;/font&gt;&lt;li style=&quot;margin: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level3 lfo3; tab-stops: list 108.0pt;&quot; class=&quot;MsoNormal&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;; font-size: 10pt; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt; mso-ascii-theme-font: major-latin; mso-fareast-theme-font: major-latin; mso-hansi-theme-font: major-latin;&quot; lang=&quot;EN-US&quot;&gt;C++0x&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;; font-size: 10pt; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt; mso-ascii-theme-font: major-latin; mso-fareast-theme-font: major-latin; mso-hansi-theme-font: major-latin;&quot;&gt;의&lt;span lang=&quot;EN-US&quot;&gt; std::move&lt;/span&gt;를 사용하여 데이터 값 복사를 줄인다&lt;span lang=&quot;EN-US&quot;&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/li&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;
   &lt;/font&gt;&lt;li style=&quot;margin: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level3 lfo3; tab-stops: list 108.0pt;&quot; class=&quot;MsoNormal&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;; font-size: 10pt; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt; mso-ascii-theme-font: major-latin; mso-fareast-theme-font: major-latin; mso-hansi-theme-font: major-latin;&quot; lang=&quot;EN-US&quot;&gt;Reference
       Count &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;; font-size: 10pt; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt; mso-ascii-theme-font: major-latin; mso-fareast-theme-font: major-latin; mso-hansi-theme-font: major-latin;&quot;&gt;기능을
       가진 패킷 컨테이너를 사용한다&lt;span lang=&quot;EN-US&quot;&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/li&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;
  &lt;/font&gt;&lt;/ul&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;
  &lt;/font&gt;&lt;li style=&quot;margin: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level2 lfo3; tab-stops: list 72.0pt;&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;; font-size: 10pt; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt; mso-ascii-theme-font: major-latin; mso-fareast-theme-font: major-latin; mso-hansi-theme-font: major-latin;&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;메모리간 데이터 복사를
      빠르게 한다&lt;span lang=&quot;EN-US&quot;&gt;. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/li&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;
  &lt;/font&gt;&lt;ul type=&quot;square&quot;&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;
   &lt;/font&gt;&lt;li style=&quot;margin: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level3 lfo3; tab-stops: list 108.0pt;&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;; font-size: 10pt; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt; mso-ascii-theme-font: major-latin; mso-fareast-theme-font: major-latin; mso-hansi-theme-font: major-latin;&quot; lang=&quot;EN-US&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;FastMemcpy&lt;/font&gt;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;; font-size: 10pt; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt; mso-ascii-theme-font: major-latin; mso-fareast-theme-font: major-latin; mso-hansi-theme-font: major-latin;&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;와 같이&lt;span lang=&quot;EN-US&quot;&gt; CPU&lt;/span&gt;의 기본 레지스터 이외의&lt;span lang=&quot;EN-US&quot;&gt; MMX&lt;/span&gt;와 같은 크기가 큰
       레지스터에 데이터를&lt;span lang=&quot;EN-US&quot;&gt; unrolling &lt;/span&gt;하여&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;,&lt;br&gt;
       Loop&lt;/span&gt;를 이용한 데이터 복사 속도 저하를 개선한다&lt;/font&gt;&lt;span lang=&quot;EN-US&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;.&lt;br style=&quot;mso-special-character: line-break;&quot;&gt;
 &amp;nbsp; &amp;nbsp; &amp;nbsp; 
       &lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;
  &lt;/font&gt;&lt;/ul&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;
 &lt;/font&gt;&lt;/ul&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;
 &lt;/font&gt;&lt;li style=&quot;margin: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo3; tab-stops: list 36.0pt;&quot; class=&quot;MsoNormal&quot;&gt;&lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;; font-size: 10pt; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt; mso-ascii-theme-font: major-latin; mso-fareast-theme-font: major-latin; mso-hansi-theme-font: major-latin;&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;네트워크
     자원 &lt;span lang=&quot;EN-US&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;
 &lt;/font&gt;&lt;ul type=&quot;circle&quot;&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;
  &lt;/font&gt;&lt;li style=&quot;margin: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level2 lfo3; tab-stops: list 72.0pt;&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;; font-size: 10pt; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt; mso-ascii-theme-font: major-latin; mso-fareast-theme-font: major-latin; mso-hansi-theme-font: major-latin;&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;보장이 필요한 패킷과 보장이
      필요 없는 패킷으로 구분하여 처리한다&lt;span lang=&quot;EN-US&quot;&gt;. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/li&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;
  &lt;/font&gt;&lt;ul type=&quot;square&quot;&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;
   &lt;/font&gt;&lt;li style=&quot;margin: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level3 lfo3; tab-stops: list 108.0pt;&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;; font-size: 10pt; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt; mso-ascii-theme-font: major-latin; mso-fareast-theme-font: major-latin; mso-hansi-theme-font: major-latin;&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;보장이 필요한 패킷&lt;span lang=&quot;EN-US&quot;&gt; : &lt;/span&gt;주기적인 시간 간격으로 동기화에 필요한 중요한 정보&lt;/font&gt;&lt;span lang=&quot;EN-US&quot;&gt;&lt;br&gt;&lt;font color=&quot;#000000&quot;&gt;
       &lt;/font&gt;&lt;/span&gt;&lt;font color=&quot;#000000&quot;&gt;예&lt;span lang=&quot;EN-US&quot;&gt;) X, Y, Z, &lt;/span&gt;좌표&lt;span lang=&quot;EN-US&quot;&gt; + Angle&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/li&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;
   &lt;/font&gt;&lt;li style=&quot;margin: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level3 lfo3; tab-stops: list 108.0pt;&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;; font-size: 10pt; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt; mso-ascii-theme-font: major-latin; mso-fareast-theme-font: major-latin; mso-hansi-theme-font: major-latin;&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;보장이 필요 없는 패킷&lt;span lang=&quot;EN-US&quot;&gt; : &lt;/span&gt;주기적인 시간 간격보다 짧은 간격이면서&lt;span lang=&quot;EN-US&quot;&gt;, &lt;/span&gt;손실되어도
       문제 없는 정보&lt;/font&gt;&lt;span lang=&quot;EN-US&quot;&gt;&lt;br&gt;&lt;font color=&quot;#000000&quot;&gt;
       &lt;/font&gt;&lt;/span&gt;&lt;font color=&quot;#000000&quot;&gt;예&lt;span lang=&quot;EN-US&quot;&gt;) Angle &lt;/span&gt;정보&lt;span lang=&quot;EN-US&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/li&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;
  &lt;/font&gt;&lt;/ul&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;
  &lt;/font&gt;&lt;li style=&quot;margin: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level2 lfo3; tab-stops: list 72.0pt;&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;; font-size: 10pt; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt; mso-ascii-theme-font: major-latin; mso-fareast-theme-font: major-latin; mso-hansi-theme-font: major-latin;&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;보장이 필요한 패킷은&lt;span lang=&quot;EN-US&quot;&gt; TCP&lt;/span&gt;로 보내고&lt;span lang=&quot;EN-US&quot;&gt;, &lt;/span&gt;보장이 필요 없는 패킷은&lt;span lang=&quot;EN-US&quot;&gt; UDP&lt;/span&gt;로 나누어 처리할 수 있다&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;.&lt;br&gt;
      (&lt;/span&gt;단&lt;span lang=&quot;EN-US&quot;&gt;, &lt;/span&gt;중국의 경우&lt;span lang=&quot;EN-US&quot;&gt; UDP&lt;/span&gt;가 불가능한
      상황도 발생한다&lt;/font&gt;&lt;span lang=&quot;EN-US&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;.)&lt;br style=&quot;mso-special-character: line-break;&quot;&gt;
 &amp;nbsp; &amp;nbsp;&amp;nbsp; 
      &lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;
 &lt;/font&gt;&lt;/ul&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;
 &lt;/font&gt;&lt;li style=&quot;margin: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo3; tab-stops: list 36.0pt;&quot; class=&quot;MsoNormal&quot;&gt;&lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;; font-size: 10pt; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt; mso-ascii-theme-font: major-latin; mso-fareast-theme-font: major-latin; mso-hansi-theme-font: major-latin;&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;브로드
     캐스팅을 주체하는 서버를 구분한다&lt;span lang=&quot;EN-US&quot;&gt;. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;
 &lt;/font&gt;&lt;ul type=&quot;circle&quot;&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;
  &lt;/font&gt;&lt;li style=&quot;margin: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level2 lfo3; tab-stops: list 72.0pt;&quot; class=&quot;MsoNormal&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;; font-size: 10pt; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt; mso-ascii-theme-font: major-latin; mso-fareast-theme-font: major-latin; mso-hansi-theme-font: major-latin;&quot; lang=&quot;EN-US&quot;&gt;Game &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;; font-size: 10pt; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt; mso-ascii-theme-font: major-latin; mso-fareast-theme-font: major-latin; mso-hansi-theme-font: major-latin;&quot;&gt;서버가 모든 패킷을 브로드캐스팅
      하면&lt;span lang=&quot;EN-US&quot;&gt;, Front &lt;/span&gt;혹은&lt;span lang=&quot;EN-US&quot;&gt; Agent &lt;/span&gt;서버에&lt;span lang=&quot;EN-US&quot;&gt; N&lt;/span&gt;번의 요청을 전달한다&lt;span lang=&quot;EN-US&quot;&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/li&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;
  &lt;/font&gt;&lt;li style=&quot;margin: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level2 lfo3; tab-stops: list 72.0pt;&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;; font-size: 10pt; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt; mso-ascii-theme-font: major-latin; mso-fareast-theme-font: major-latin; mso-hansi-theme-font: major-latin;&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;브로드캐스팅이 필요한 패킷을
      각&lt;span lang=&quot;EN-US&quot;&gt; Front &lt;/span&gt;혹은&lt;span lang=&quot;EN-US&quot;&gt; Agent &lt;/span&gt;서버에&lt;span lang=&quot;EN-US&quot;&gt; 1&lt;/span&gt;회만 보내고&lt;span lang=&quot;EN-US&quot;&gt;(&lt;/span&gt;받을 클라이언트 목록을 함께&lt;span lang=&quot;EN-US&quot;&gt;), Front &lt;/span&gt;혹은&lt;span lang=&quot;EN-US&quot;&gt; Agent &lt;/span&gt;서버에서 처리한다면&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;,&lt;br&gt;
      Game &lt;/span&gt;서버에서&lt;span lang=&quot;EN-US&quot;&gt; N&lt;/span&gt;번 요청에 대한&lt;span lang=&quot;EN-US&quot;&gt; CPU &lt;/span&gt;자원
      사용을 줄이고&lt;span lang=&quot;EN-US&quot;&gt;, &lt;/span&gt;내부 네트워크 트래픽도 감소한다&lt;/font&gt;&lt;span lang=&quot;EN-US&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;.&lt;br style=&quot;mso-special-character: line-break;&quot;&gt;
 &amp;nbsp; &amp;nbsp;&amp;nbsp; 
      &lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;
 &lt;/font&gt;&lt;/ul&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;
 &lt;/font&gt;&lt;li style=&quot;margin: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo3; tab-stops: list 36.0pt;&quot; class=&quot;MsoNormal&quot;&gt;&lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;; font-size: 10pt; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt; mso-ascii-theme-font: major-latin; mso-fareast-theme-font: major-latin; mso-hansi-theme-font: major-latin;&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;유저
     상태에 대한 패킷 처리 &lt;span lang=&quot;EN-US&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;
 &lt;/font&gt;&lt;ul type=&quot;circle&quot;&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;
  &lt;/font&gt;&lt;li style=&quot;margin: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level2 lfo3; tab-stops: list 72.0pt;&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;; font-size: 10pt; mso-bidi-font-family: Arial; mso-bidi-font-size: 12.0pt; mso-ascii-theme-font: major-latin; mso-fareast-theme-font: major-latin; mso-hansi-theme-font: major-latin;&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;유저가 전투 상태일 경우
      패킷을 먼저 처리하고&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;,&lt;br&gt;
      &lt;/span&gt;비 전투 상태일 경우 나중에 처리하도록 한다&lt;/font&gt;&lt;font color=&quot;#000000&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;.&lt;br&gt;
      &lt;/span&gt;예&lt;span lang=&quot;EN-US&quot;&gt;) &lt;/span&gt;마을에 모인 유저인 경우&lt;span lang=&quot;EN-US&quot;&gt;, &lt;/span&gt;패킷이
      늦게 처리되어도 문제가 발생하지 않는다&lt;span lang=&quot;EN-US&quot;&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/li&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;
 &lt;/font&gt;&lt;/ul&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;
&lt;/font&gt;&lt;/ul&gt;&lt;font color=&quot;#000000&quot; size=&quot;3&quot; face=&quot;굴림&quot;&gt;

&lt;/font&gt;</description>
			<category>문서모음</category>
			<author>(TTF)</author>
			<guid>http://npteam.net/855</guid>
			<comments>http://npteam.net/855#entry855comment</comments>
			<pubDate>Wed, 03 Aug 2011 01:52:36 +0900</pubDate>
		</item>
		<item>
			<title>std::for_each와 Concurrency::parallel_for_each의 속도 비교</title>
			<link>http://npteam.net/854</link>
			<description>&lt;strong&gt;&lt;font color=&quot;#177fcd&quot;&gt;std:for_each&lt;/font&gt;&lt;/strong&gt;와 &lt;strong&gt;&lt;font color=&quot;#177fcd&quot;&gt;Concurrency::parallel_for_each&lt;/font&gt; &lt;/strong&gt;중에 어떤것이 더 빠른 속도를 낼 것인가?&lt;br&gt;&lt;br&gt;가정 1. CPU Core가 늘어남에 따라 Single Thread보다는 Multi Thread를 활용하여 &lt;strong&gt;CPU 자원&lt;/strong&gt;을 최대한 활용한다.&lt;br&gt;&lt;br&gt;가정 2. 컨테이너를 읽기 전용으로 접근할 경우 &lt;strong&gt;Lock 객체&lt;/strong&gt;를 사용하지 않아도 된다.&lt;div&gt;
&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (Race Condition, 스레드간 공유 자원 접근 문제)&lt;br&gt;&lt;br&gt;가정 3. Thread 갯수가 과도하게 늘어나서 빈번하게 &lt;strong&gt;Context Switching&lt;/strong&gt;이 발생할 경우 속도 저하가 발생한다.&lt;/div&gt;
&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;(Concurrency::parallel_for_each는 Thread 갯수를 스스로 조절한다.)&lt;br&gt;&lt;br&gt;가정 4. &lt;a href=&quot;http://ko.wikipedia.org/wiki/%EC%95%94%EB%8B%AC%EC%9D%98_%EB%B2%95%EC%B9%99&quot; target=&quot;_blank&quot;&gt;암달의 법칙(Amdahl&#039;s law)&lt;/a&gt;으로 직렬화된 작업을 병렬화 작업으로 바꾸더라도 &lt;strong&gt;속도 향상에는 한계&lt;/strong&gt;가 있을 것이다.&lt;br&gt;&lt;br&gt;위 4가지 가정으로 봤을때, 컨테이너를 이터레이팅 할때 많은 도움은 안되더라도 &lt;strong&gt;약간의 속도 향상을 기대&lt;/strong&gt;하였다.&lt;br&gt;&lt;br&gt;&lt;/div&gt;
&lt;pre class=&quot;brush:cpp&quot;&gt;int _tmain(int argc, _TCHAR* argv[])
{
	setlocale( LC_ALL, &quot;Korean&quot; );

	std::vector&amp;lt; int &amp;gt; vecContainer;

	for( int i = 0; i &amp;lt; 10000; ++i )
	{
		vecContainer.push_back( i );
	}

	class fntorPrintElem : public std::unary_function&amp;lt; int, void &amp;gt;
	{
	public:
		explicit fntorPrintElem() {};
		
		void operator() ( const int&amp;amp; elem ) const
		{
			std::wcout &amp;lt;&amp;lt; &quot;&quot;;
		}
	};

	// std::for_each 속도 체크 코드 생략...
	std::for_each( vecContainer.begin(), vecContainer.end(), fntorPrintElem() );
	
	// Concurrency::parallel_for_each 속도 체크 코드 생략...
	Concurrency::parallel_for_each( vecContainer.begin(), vecContainer.end(), fntorPrintElem() );
	
	return 0;
}
&lt;/pre&gt;&lt;/div&gt;
&lt;div class=&quot;imageblock left&quot; style=&quot;float: left; margin-right: 10px;&quot;&gt;&lt;a href=&quot;http://npteam.net/attach/1/1076063049.png&quot; rel=&quot;lightbox[2group0]&quot; title=&quot;&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://npteam.net/attach/1/1076063049.png&quot; width=&quot;442&quot; height=&quot;63&quot; alt=&quot;사용자 삽입 이미지&quot; title=&quot;&quot; style=&quot;cursor: pointer;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;그러나 위 &lt;strong&gt;4가지 가정&lt;/strong&gt;에서 예측한 것과 다른 값이 도출되었다.&lt;br&gt;&lt;div&gt;std::for_each 수행 시간 : 0.004950&lt;br&gt;Concurrency::parallel_for_each 수행시간 : 0.005819&lt;br&gt;&lt;br&gt;&lt;font color=&quot;#177fcd&quot;&gt;parallel_for_each&lt;/font&gt;를 사용하면, &lt;font color=&quot;#177fcd&quot;&gt;std::for_each&lt;/font&gt;를 사용했을때 보다 &lt;strong&gt;&lt;font color=&quot;#ff7635&quot;&gt;오히려 성능이 떨어진다&lt;/font&gt;&lt;/strong&gt;.&lt;br&gt;&lt;strong&gt;&lt;font color=&quot;#000000&quot;&gt;일반적인 상황&lt;/font&gt;&lt;/strong&gt;에서 &lt;font color=&quot;#177fcd&quot;&gt;Concurrency::parallel_for_each&lt;/font&gt;를 사용했을 경우 &lt;strong&gt;&lt;font color=&quot;#ff7635&quot;&gt;성능 향상을 보장 받을 수 없다&lt;/font&gt;&lt;/strong&gt;.&lt;br&gt;&lt;br&gt;그렇다면 &lt;font color=&quot;#177fcd&quot;&gt;parallel_for_each&lt;/font&gt;가 더 빠르게 하려면 무엇을 해야 할까?&lt;br&gt;&lt;br&gt;functor에서 &lt;strong&gt;&lt;font color=&quot;#008000&quot;&gt;Sleep(1)&lt;/font&gt;&lt;/strong&gt;을 넣어서 측정한 결과는 다음과 같다.&lt;br&gt;&lt;div class=&quot;imageblock left&quot; style=&quot;float: left; margin-right: 10px;&quot;&gt;&lt;a href=&quot;http://npteam.net/attach/1/1280191591.png&quot; rel=&quot;lightbox[2group0]&quot; title=&quot;&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://npteam.net/attach/1/1280191591.png&quot; width=&quot;446&quot; height=&quot;66&quot; alt=&quot;사용자 삽입 이미지&quot; title=&quot;&quot; style=&quot;cursor: pointer;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;std::for_each 수행 시간 : 10.019599&lt;br&gt;Concurrency::parallel_for_each 수행시간 : 3.753167&lt;br&gt;&lt;br&gt;측정 결과 &lt;font color=&quot;#177fcd&quot;&gt;parallel_for_each&lt;/font&gt;가 &lt;font color=&quot;#177fcd&quot;&gt;std::for_each&lt;/font&gt;보다 상대적으로 약 2.6배 빠르지만,&lt;br&gt;&lt;font color=&quot;#177fcd&quot;&gt;std::for_each&lt;/font&gt;는 2504배 느려지고, &lt;font color=&quot;#177fcd&quot;&gt;parallel_for_each&lt;/font&gt;는 750배 느려졌다.&lt;br&gt;&lt;br&gt;&lt;strong&gt;일반적인 컨테이너를 이터레이팅 하는 상황&lt;/strong&gt;에서 &lt;font color=&quot;#177fcd&quot;&gt;Concurrency::parallel_for_each&lt;/font&gt;로 &lt;b&gt;&lt;font color=&quot;#009966&quot;&gt;대체하기만 하면&lt;/font&gt;&lt;/b&gt;,&lt;br&gt;&lt;b&gt;&lt;font color=&quot;#009966&quot;&gt;속도 향상이 있을 것&lt;/font&gt;&lt;/b&gt;이라는 기대는 깨졌지만, &lt;br&gt;&lt;br&gt;네트워크 I/O와 같은 &lt;strong&gt;&lt;font color=&quot;#0000ff&quot;&gt;비동기 대기가 발생하는 상황&lt;/font&gt;&lt;/strong&gt;에서&lt;br&gt;코딩 난이도가 높지 않은 &lt;font color=&quot;#177fcd&quot;&gt;parallel_for_each&lt;/font&gt;를 활용하면, &lt;strong&gt;&lt;font color=&quot;#0000ff&quot;&gt;속도 향상에 도움&lt;/font&gt;&lt;/strong&gt;이 될 것으로 예측한다.&lt;br&gt;&lt;/div&gt;</description>
			<category>STL</category>
			<author>(TTF)</author>
			<guid>http://npteam.net/854</guid>
			<comments>http://npteam.net/854#entry854comment</comments>
			<pubDate>Thu, 28 Jul 2011 16:45:00 +0900</pubDate>
		</item>
	</channel>
</rss>

