diff --git a/src/db/src/AuctionManager.h b/src/db/src/AuctionManager.h index bb6c2c8..8155c63 100644 --- a/src/db/src/AuctionManager.h +++ b/src/db/src/AuctionManager.h @@ -243,7 +243,7 @@ private: TItemInfoCacheMap item_cache_map; }; -// pc ߴ Ÿ . +// pc가 입찰에 참여했던 경매를 관리. class MyBidBoard { public: @@ -255,7 +255,7 @@ public: int GetMoney (DWORD player_id, DWORD item_id); bool Delete (DWORD player_id, DWORD item_id); - // ̹ . + // 이미 있으면 덮어 씌운다. void Insert (DWORD player_id, DWORD item_id, int money); private: @@ -267,11 +267,11 @@ private: class AuctionManager : public singleton { private: - // auction ϵ ۵. + // auction에 등록된 아이템들. typedef std::unordered_map TItemCacheMap; TItemCacheMap auction_item_cache_map; - // auction ϵ , ̺ Ե ʴ ϴ ͵ + // auction에 등록된 정보 중 가격, 등등 아이템 테이블에 포함되지 않는 정보들을 관리하는 것들 AuctionBoard Auction; SaleBoard Sale; WishBoard Wish; diff --git a/src/db/src/Cache.h b/src/db/src/Cache.h index 5347937..f2ba3bf 100644 --- a/src/db/src/Cache.h +++ b/src/db/src/Cache.h @@ -29,7 +29,7 @@ class CPlayerTableCache : public cache // MYSHOP_PRICE_LIST /** * @class CItemPriceListTableCache - * @brief λ Ʈ ij class + * @brief 개인상점의 아이템 가격정보 리스트에 대한 캐시 class * @version 05/06/10 Bang2ni - First release. */ class CItemPriceListTableCache : public cache< TItemPriceListTable > @@ -38,20 +38,20 @@ class CItemPriceListTableCache : public cache< TItemPriceListTable > /// Constructor /** - * ij ð Ѵ. + * 캐시 만료 시간을 설정한다. */ CItemPriceListTableCache(void); - /// Ʈ + /// 리스트 갱신 /** - * @param [in] pUpdateList Ʈ + * @param [in] pUpdateList 갱신할 리스트 * - * ijõ Ѵ. - * Ʈ á ij̵ ڿ Ѵ. + * 캐시된 가격정보를 갱신한다. + * 가격정보 리스트가 가득 찼을 경우 기존에 캐싱된 정보들을 뒤에서 부터 삭제한다. */ void UpdateList(const TItemPriceListTable* pUpdateList); - /// DB Ѵ. + /// 가격정보를 DB 에 기록한다. virtual void OnFlush(void); private: diff --git a/src/db/src/ClientManager.h b/src/db/src/ClientManager.h index 251cd2a..5491e3e 100644 --- a/src/db/src/ClientManager.h +++ b/src/db/src/ClientManager.h @@ -48,10 +48,10 @@ class CClientManager : public singleton typedef std::unordered_map TChannelStatusMap; // MYSHOP_PRICE_LIST - /// Ʈ û + /// 아이템 가격정보 리스트 요청 정보 /** * first: Peer handle - * second: û ÷̾ ID + * second: 요청한 플레이어의 ID */ typedef std::pair< DWORD, DWORD > TItemPricelistReqInfo; // END_OF_MYSHOP_PRICE_LIST @@ -77,7 +77,7 @@ class CClientManager : public singleton pAccountTable = NULL; player_id = dwPID; }; - //ϼɿ + //독일선물기능용 생성자 ClientHandleInfo(DWORD argHandle, DWORD dwPID, DWORD accountId) { dwHandle = argHandle; @@ -116,7 +116,7 @@ class CClientManager : public singleton void SetChinaEventServer(bool flag) { m_bChinaEventServer = flag; } bool IsChinaEventServer() { return m_bChinaEventServer; } - DWORD GetUserCount(); // ӵ Ѵ. + DWORD GetUserCount(); // 접속된 사용자 수를 리턴 한다. void SendAllGuildSkillRechargePacket(); void SendTime(); @@ -136,23 +136,23 @@ class CClientManager : public singleton void UpdateItemCache(); // MYSHOP_PRICE_LIST - /// Ʈ ijø ´. + /// 가격정보 리스트 캐시를 가져온다. /** - * @param [in] dwID Ʈ .(÷̾ ID) - * @return Ʈ ij + * @param [in] dwID 가격정보 리스트의 소유자.(플레이어 ID) + * @return 가격정보 리스트 캐시의 포인터 */ CItemPriceListTableCache* GetItemPriceListCache(DWORD dwID); - /// Ʈ ijø ִ´. + /// 가격정보 리스트 캐시를 넣는다. /** - * @param [in] pItemPriceList ijÿ Ʈ + * @param [in] pItemPriceList 캐시에 넣을 아이템 가격정보 리스트 * - * ijð ̹ Update ƴ replace Ѵ. + * 캐시가 이미 있으면 Update 가 아닌 replace 한다. */ void PutItemPriceListCache(const TItemPriceListTable* pItemPriceList); - /// Flush ð Ʈ ijø Flush ְ ijÿ Ѵ. + /// Flush 시간이 만료된 아이템 가격정보 리스트 캐시를 Flush 해주고 캐시에서 삭제한다. void UpdateItemPriceListCache(void); // END_OF_MYSHOP_PRICE_LIST @@ -170,8 +170,8 @@ class CClientManager : public singleton void SendNotice(const char * c_pszFormat, ...); - std::string GetCommand(char* str); //ϼɿ ɾ Լ - void ItemAward(CPeer * peer, char* login); // + std::string GetCommand(char* str); //독일선물기능에서 명령어 얻는 함수 + void ItemAward(CPeer * peer, char* login); //독일 선물 기능 CPeer * AddPeer(bufferevent* bufev, sockaddr* addr); void RemovePeer(CPeer * pPeer); @@ -199,9 +199,9 @@ class CClientManager : public singleton bool InitializeObjectTable(); bool InitializeMonarch(); - // mob_proto.txt, item_proto.txt mob_proto, item_proto real db ݿ. - // item_proto, mob_proto db ݿ ʾƵ, ưµ , - //   db item_proto, mob_proto о ߻Ѵ. + // mob_proto.txt, item_proto.txt에서 읽은 mob_proto, item_proto를 real db에 반영. + // item_proto, mob_proto를 db에 반영하지 않아도, 게임 돌아가는데는 문제가 없지만, + // 운영툴 등에서 db의 item_proto, mob_proto를 읽어 쓰기 때문에 문제가 발생한다. bool MirrorMobTableIntoDB(); bool MirrorItemTableIntoDB(); @@ -260,20 +260,20 @@ class CClientManager : public singleton // END_PLAYER_INDEX_CREATE_BUG_FIX // MYSHOP_PRICE_LIST - /// ε Result ó + /// 가격정보 로드 쿼리에 대한 Result 처리 /** - * @param peer û Game server peer ü - * @param pMsg Result ü + * @param peer 가격정보를 요청한 Game server 의 peer 객체 포인터 + * @param pMsg 쿼리의 Result 로 받은 객체의 포인터 * - * ε Ʈ ijÿ ϰ peer Ʈ ش. + * 로드된 가격정보 리스트를 캐시에 저장하고 peer 에게 리스트를 보내준다. */ void RESULT_PRICELIST_LOAD(CPeer* peer, SQLMsg* pMsg); - /// Ʈ ε Result ó + /// 가격정보 업데이트를 위한 로드 쿼리에 대한 Result 처리 /** - * @param pMsg Result ü + * @param pMsg 쿼리의 Result 로 받은 객체의 포인터 * - * ε Ʈ ijø Ʈ Ʈ Ѵ. + * 로드된 정보로 가격정보 리스트 캐시를 만들고 업데이트 받은 가격정보로 업데이트 한다. */ void RESULT_PRICELIST_LOAD_FOR_UPDATE(SQLMsg* pMsg); // END_OF_MYSHOP_PRICE_LIST @@ -353,7 +353,7 @@ class CClientManager : public singleton void SendAllLoginToBilling(); void SendLoginToBilling(CLoginData * pkLD, bool bLogin); - // ȥ + // 결혼 void MarriageAdd(TPacketMarriageAdd * p); void MarriageUpdate(TPacketMarriageUpdate * p); void MarriageRemove(TPacketMarriageRemove * p); @@ -363,19 +363,19 @@ class CClientManager : public singleton void WeddingEnd(TPacketWeddingEnd * p); // MYSHOP_PRICE_LIST - // λ + // 개인상점 가격정보 - /// Ʈ Ʈ Ŷ(HEADER_GD_MYSHOP_PRICELIST_UPDATE) óԼ + /// 아이템 가격정보 리스트 업데이트 패킷(HEADER_GD_MYSHOP_PRICELIST_UPDATE) 처리함수 /** - * @param [in] pPacket Ŷ + * @param [in] pPacket 패킷 데이터의 포인터 */ void MyshopPricelistUpdate(const TPacketMyshopPricelistHeader* pPacket); - /// Ʈ û Ŷ(HEADER_GD_MYSHOP_PRICELIST_REQ) óԼ + /// 아이템 가격정보 리스트 요청 패킷(HEADER_GD_MYSHOP_PRICELIST_REQ) 처리함수 /** - * @param peer Ŷ Game server peer ü - * @param [in] dwHandle û peer ڵ - * @param [in] dwPlayerID Ʈ û ÷̾ ID + * @param peer 패킷을 보낸 Game server 의 peer 객체의 포인터 + * @param [in] dwHandle 가격정보를 요청한 peer 의 핸들 + * @param [in] dwPlayerID 가격정보 리스트를 요청한 플레이어의 ID */ void MyshopPricelistRequest(CPeer* peer, DWORD dwHandle, DWORD dwPlayerID); // END_OF_MYSHOP_PRICE_LIST @@ -413,7 +413,7 @@ class CClientManager : public singleton typedef std::unordered_map TLoginDataByAID; TLoginDataByAID m_map_pkLoginDataByAID; - // Login LoginData pair ( α Ǿִ ) + // Login LoginData pair (실제 로그인 되어있는 계정) typedef std::unordered_map TLogonAccountMap; TLogonAccountMap m_map_kLogonAccount; @@ -445,14 +445,14 @@ class CClientManager : public singleton bool m_bShutdowned; - TPlayerTableCacheMap m_map_playerCache; // ÷̾ id key + TPlayerTableCacheMap m_map_playerCache; // 플레이어 id가 key - TItemCacheMap m_map_itemCache; // id key - TItemCacheSetPtrMap m_map_pkItemCacheSetPtr; // ÷̾ id key, ÷̾  ij ֳ? + TItemCacheMap m_map_itemCache; // 아이템 id가 key + TItemCacheSetPtrMap m_map_pkItemCacheSetPtr; // 플레이어 id가 key, 이 플레이어가 어떤 아이템 캐쉬를 가지고 있나? // MYSHOP_PRICE_LIST - /// ÷̾ Ʈ map. key: ÷̾ ID, value: Ʈ ij - TItemPriceListCacheMap m_mapItemPriceListCache; ///< ÷̾ Ʈ + /// 플레이어별 아이템 가격정보 리스트 map. key: 플레이어 ID, value: 가격정보 리스트 캐시 + TItemPriceListCacheMap m_mapItemPriceListCache; ///< 플레이어별 아이템 가격정보 리스트 // END_OF_MYSHOP_PRICE_LIST TChannelStatusMap m_mChannelStatus; @@ -490,7 +490,7 @@ class CClientManager : public singleton //BOOT_LOCALIZATION public: - /* ʱȭ + /* 로컬 정보 초기화 **/ bool InitializeLocalization(); diff --git a/src/db/src/CsvReader.h b/src/db/src/CsvReader.h index e8f0919..c9bce44 100644 --- a/src/db/src/CsvReader.h +++ b/src/db/src/CsvReader.h @@ -12,28 +12,28 @@ //////////////////////////////////////////////////////////////////////////////// /// \class cCsvAlias -/// \brief CSV ߻ϴ ε ̱ -/// ü. +/// \brief CSV 파일을 수정했을 때 발생하는 인덱스 문제를 줄이기 위한 +/// 별명 객체. /// -/// 0 ÷ A ϰ, 1 ÷ B -/// ϰ ־µ... +/// 예를 들어 0번 컬럼이 A에 관한 내용을 포함하고, 1번 컬럼이 B에 관한 내용을 +/// 포함하고 있었는데... /// ///
 /// int a = row.AsInt(0);
 /// int b = row.AsInt(1);
 /// 
/// -/// ̿ C ϴ ÷ , ϵڵǾ ִ -/// 1 ãƼ ľ ϴµ, ߻ϱ ۾̴. +/// 그 사이에 C에 관한 내용을 포함하는 컬럼이 끼어든 경우, 하드코딩되어 있는 +/// 1번을 찾아서 고쳐야 하는데, 상당히 에러가 발생하기 쉬운 작업이다. /// ///
 /// int a = row.AsInt(0);
 /// int c = row.AsInt(1);
-/// int b = row.AsInt(2); <--  κ  Ű Ѵ.
+/// int b = row.AsInt(2); <-- 이 부분을 일일이 신경써야 한다.
 /// 
/// -/// κ ڿ óϸ  ణ̳ -/// ִ. +/// 이 부분을 문자열로 처리하면 유지보수에 들어가는 수고를 약간이나마 줄일 수 +/// 있다. //////////////////////////////////////////////////////////////////////////////// class cCsvAlias @@ -47,51 +47,51 @@ private: typedef std::map INDEX2NAME_MAP; #endif - NAME2INDEX_MAP m_Name2Index; ///< ε ϱ ̸ - INDEX2NAME_MAP m_Index2Name; ///< ߸ alias ˻ϱ ߰ + NAME2INDEX_MAP m_Name2Index; ///< 셀 인덱스 대신으로 사용하기 위한 이름들 + INDEX2NAME_MAP m_Index2Name; ///< 잘못된 alias를 검사하기 위한 추가적인 맵 public: - /// \brief + /// \brief 생성자 cCsvAlias() {} - /// \brief Ҹ + /// \brief 소멸자 virtual ~cCsvAlias() {} public: - /// \brief ׼ , ̸ Ѵ. + /// \brief 셀을 액세스할 때, 숫자 대신 사용할 이름을 등록한다. void AddAlias(const char* name, size_t index); - /// \brief ͸ Ѵ. + /// \brief 모든 데이터를 삭제한다. void Destroy(); - /// \brief ε ̸ ȯѴ. + /// \brief 숫자 인덱스를 이름으로 변환한다. const char* operator [] (size_t index) const; - /// \brief ̸ ε ȯѴ. + /// \brief 이름을 숫자 인덱스로 변환한다. size_t operator [] (const char* name) const; private: - /// \brief + /// \brief 복사 생성자 금지 cCsvAlias(const cCsvAlias&) {} - /// \brief + /// \brief 대입 연산자 금지 const cCsvAlias& operator = (const cCsvAlias&) { return *this; } }; //////////////////////////////////////////////////////////////////////////////// /// \class cCsvRow -/// \brief CSV ĸȭ Ŭ +/// \brief CSV 파일의 한 행을 캡슐화한 클래스 /// -/// CSV ⺻ ̴ ϳ ',' ڷ ̴. -/// , ȿ Ư ڷ ̴ ',' ڳ '"' ڰ  , -/// ణ ̻ϰ Ѵ. ȭ ̴. +/// CSV의 기본 포맷은 엑셀에서 보이는 하나의 셀을 ',' 문자로 구분한 것이다. +/// 하지만, 셀 안에 특수 문자로 쓰이는 ',' 문자나 '"' 문자가 들어갈 경우, +/// 모양이 약간 이상하게 변한다. 다음은 그 변화의 예이다. /// ///
-///  ̴  |  CSV Ͽ ִ 
+/// 엑셀에서 보이는 모양 | 실제 CSV 파일에 들어가있는 모양
 /// ---------------------+----------------------------------------------------
 /// ItemPrice            | ItemPrice
 /// Item,Price           | "Item,Price"
@@ -101,9 +101,9 @@ private:
 /// Item",Price          | "Item"",Price"
 /// 
/// -/// μ ִ. -/// - ο ',' Ǵ '"' ڰ  , ¿쿡 '"' ڰ . -/// - '"' ڴ 2 ġȯȴ. +/// 이 예로서 다음과 같은 사항을 알 수 있다. +/// - 셀 내부에 ',' 또는 '"' 문자가 들어갈 경우, 셀 좌우에 '"' 문자가 생긴다. +/// - 셀 내부의 '"' 문자는 2개로 치환된다. /// /// \sa cCsvFile //////////////////////////////////////////////////////////////////////////////// @@ -111,51 +111,51 @@ private: class cCsvRow : public std::vector { public: - /// \brief ⺻ + /// \brief 기본 생성자 cCsvRow() {} - /// \brief Ҹ + /// \brief 소멸자 ~cCsvRow() {} public: - /// \brief ش ͸ int ȯѴ. + /// \brief 해당 셀의 데이터를 int 형으로 반환한다. int AsInt(size_t index) const { return atoi(at(index).c_str()); } - /// \brief ش ͸ double ȯѴ. + /// \brief 해당 셀의 데이터를 double 형으로 반환한다. double AsDouble(size_t index) const { return atof(at(index).c_str()); } - /// \brief ش ͸ ڿ ȯѴ. + /// \brief 해당 셀의 데이터를 문자열로 반환한다. const char* AsString(size_t index) const { return at(index).c_str(); } - /// \brief شϴ ̸ ͸ int ȯѴ. + /// \brief 해당하는 이름의 셀 데이터를 int 형으로 반환한다. int AsInt(const char* name, const cCsvAlias& alias) const { return atoi( at(alias[name]).c_str() ); } - /// \brief شϴ ̸ ͸ int ȯѴ. + /// \brief 해당하는 이름의 셀 데이터를 int 형으로 반환한다. double AsDouble(const char* name, const cCsvAlias& alias) const { return atof( at(alias[name]).c_str() ); } - /// \brief شϴ ̸ ͸ ڿ ȯѴ. + /// \brief 해당하는 이름의 셀 데이터를 문자열로 반환한다. const char* AsString(const char* name, const cCsvAlias& alias) const { return at(alias[name]).c_str(); } private: - /// \brief + /// \brief 복사 생성자 금지 cCsvRow(const cCsvRow&) {} - /// \brief + /// \brief 대입 연산자 금지 const cCsvRow& operator = (const cCsvRow&) { return *this; } }; //////////////////////////////////////////////////////////////////////////////// /// \class cCsvFile -/// \brief CSV(Comma Seperated Values) read/writeϱ Ŭ +/// \brief CSV(Comma Seperated Values) 파일을 read/write하기 위한 클래스 /// /// sample ///
@@ -179,8 +179,8 @@ private:
 /// file.save("test.csv", false);
 /// 
/// -/// \todo Ͽ о ƴ϶, ޸ ҽκ д Լ -/// ־ ϴ. +/// \todo 파일에서만 읽어들일 것이 아니라, 메모리 소스로부터 읽는 함수도 +/// 있어야 할 듯 하다. //////////////////////////////////////////////////////////////////////////////// class cCsvFile @@ -188,55 +188,55 @@ class cCsvFile private: typedef std::vector ROWS; - ROWS m_Rows; ///< ÷ + ROWS m_Rows; ///< 행 컬렉션 public: - /// \brief + /// \brief 생성자 cCsvFile() {} - /// \brief Ҹ + /// \brief 소멸자 virtual ~cCsvFile() { Destroy(); } public: - /// \brief ̸ CSV εѴ. + /// \brief 지정된 이름의 CSV 파일을 로드한다. bool Load(const char* fileName, const char seperator=',', const char quote='"'); - /// \brief ִ CSV Ͽ Ѵ. + /// \brief 가지고 있는 내용을 CSV 파일에다 저장한다. bool Save(const char* fileName, bool append=false, char seperator=',', char quote='"') const; - /// \brief ͸ ޸𸮿 Ѵ. + /// \brief 모든 데이터를 메모리에서 삭제한다. void Destroy(); - /// \brief شϴ ε ȯѴ. + /// \brief 해당하는 인덱스의 행을 반환한다. cCsvRow* operator [] (size_t index); - /// \brief شϴ ε ȯѴ. + /// \brief 해당하는 인덱스의 행을 반환한다. const cCsvRow* operator [] (size_t index) const; - /// \brief ȯѴ. + /// \brief 행의 갯수를 반환한다. size_t GetRowCount() const { return m_Rows.size(); } private: - /// \brief + /// \brief 복사 생성자 금지 cCsvFile(const cCsvFile&) {} - /// \brief + /// \brief 대입 연산자 금지 const cCsvFile& operator = (const cCsvFile&) { return *this; } }; //////////////////////////////////////////////////////////////////////////////// /// \class cCsvTable -/// \brief CSV ̿ ̺ ͸ εϴ 찡 , Ŭ -/// ۾ ϱ ƿƼ Ŭ. +/// \brief CSV 파일을 이용해 테이블 데이터를 로드하는 경우가 많은데, 이 클래스는 +/// 그 작업을 좀 더 쉽게 하기 위해 만든 유틸리티 클래스다. /// -/// CSV εϴ , ڸ ̿ ׼ؾ ϴµ, CSV -/// ٲ , ڵ Ѵ. ۾ -/// Ű 䱸ϴ ٰ, ߻ϱ . ׷Ƿ ڷ -/// ׼ϱ⺸ٴ ڿ ׼ϴ ణ ٰ ִ. +/// CSV 파일을 로드하는 경우, 숫자를 이용해 셀을 액세스해야 하는데, CSV +/// 파일의 포맷이 바뀌는 경우, 이 숫자들을 변경해줘야한다. 이 작업이 꽤 +/// 신경 집중을 요구하는 데다가, 에러가 발생하기 쉽다. 그러므로 숫자로 +/// 액세스하기보다는 문자열로 액세스하는 것이 약간 느리지만 낫다고 할 수 있다. /// /// sample ///
@@ -259,63 +259,63 @@ private:
 class cCsvTable
 {
 public :
-    cCsvFile  m_File;   ///< CSV  ü
+    cCsvFile  m_File;   ///< CSV 파일 객체
 private:
-    cCsvAlias m_Alias;  ///< ڿ  ε ȯϱ  ü
-    int       m_CurRow; ///<  Ⱦ   ȣ
+    cCsvAlias m_Alias;  ///< 문자열을 셀 인덱스로 변환하기 위한 객체
+    int       m_CurRow; ///< 현재 횡단 중인 행 번호
 
 
 public:
-    /// \brief 
+    /// \brief 생성자
     cCsvTable();
 
-    /// \brief Ҹ
+    /// \brief 소멸자
     virtual ~cCsvTable();
 
 
 public:
-    /// \brief  ̸ CSV  εѴ.
+    /// \brief 지정된 이름의 CSV 파일을 로드한다.
     bool Load(const char* fileName, const char seperator=',', const char quote='"');
 
-    /// \brief  ׼ ,    ̸ Ѵ.
+    /// \brief 셀을 액세스할 때, 숫자 대신 사용할 이름을 등록한다.
     void AddAlias(const char* name, size_t index) { m_Alias.AddAlias(name, index); }
 
-    /// \brief   Ѿ.
+    /// \brief 다음 행으로 넘어간다.
     bool Next();
 
-    /// \brief    ڸ ȯѴ.
+    /// \brief 현재 행의 셀 숫자를 반환한다.
     size_t ColCount() const;
 
-    /// \brief ε ̿ int   ȯѴ.
+    /// \brief 인덱스를 이용해 int 형으로 셀값을 반환한다.
     int AsInt(size_t index) const;
 
-    /// \brief ε ̿ double   ȯѴ.
+    /// \brief 인덱스를 이용해 double 형으로 셀값을 반환한다.
     double AsDouble(size_t index) const;
 
-    /// \brief ε ̿ std::string   ȯѴ.
+    /// \brief 인덱스를 이용해 std::string 형으로 셀값을 반환한다.
     const char* AsStringByIndex(size_t index) const;
 
-    /// \brief  ̸ ̿ int   ȯѴ.
+    /// \brief 셀 이름을 이용해 int 형으로 셀값을 반환한다.
     int AsInt(const char* name) const { return AsInt(m_Alias[name]); }
 
-    /// \brief  ̸ ̿ double   ȯѴ.
+    /// \brief 셀 이름을 이용해 double 형으로 셀값을 반환한다.
     double AsDouble(const char* name) const { return AsDouble(m_Alias[name]); }
 
-    /// \brief  ̸ ̿ std::string   ȯѴ.
+    /// \brief 셀 이름을 이용해 std::string 형으로 셀값을 반환한다.
     const char* AsString(const char* name) const { return AsStringByIndex(m_Alias[name]); }
 
-    /// \brief alias   ͸ Ѵ.
+    /// \brief alias를 포함해 모든 데이터를 삭제한다.
     void Destroy();
 
 
 private:
-    /// \brief   ȯѴ.
+    /// \brief 현재 행을 반환한다.
     const cCsvRow* const CurRow() const;
 
-    /// \brief   
+    /// \brief 복사 생성자 금지
     cCsvTable(const cCsvTable&) {}
 
-    /// \brief   
+    /// \brief 대입 연산자 금지
     const cCsvTable& operator = (const cCsvTable&) { return *this; }
 };
 
diff --git a/src/db/src/DBManager.h b/src/db/src/DBManager.h
index f8b1d39..049c39f 100644
--- a/src/db/src/DBManager.h
+++ b/src/db/src/DBManager.h
@@ -2,9 +2,9 @@
 #ifndef __INC_METIN2_DB_DBMANAGER_H__
 #define __INC_METIN2_DB_DBMANAGER_H__
 
-//  Ŀؼ Ŭ ...   ؼ   ޾ƿ
-//  ϵ óѴ.
-//                             ڵ by  ķα׷ Ƴ~ = _=)b
+// 디비 커넥션 클래스의 목적은...  디비에 접속해서 쿼리보내고 결과 받아오는
+// 모든 일들을 처리한다.
+//                             코드 by 꼬붕 후로그래머 아노아~ = _=)b
 #include 
 
 #define SQL_SAFE_LENGTH(size)	(size * 2 + 1)
diff --git a/src/db/src/GuildManager.h b/src/db/src/GuildManager.h
index 26227bc..0ca963e 100644
--- a/src/db/src/GuildManager.h
+++ b/src/db/src/GuildManager.h
@@ -150,7 +150,7 @@ class CGuildWarReserve
 	void	SetLastNoticeMin(int iMin) { m_iLastNoticeMin = iMin; }
 
     private:
-	CGuildWarReserve();  // ⺻ ڸ  ϵ ǵ  
+	CGuildWarReserve();  // 기본 생성자를 사용하지 못하도록 의도적으로 구현하지 않음
 
 	TGuildWarReserve				m_data;
 	// >
@@ -235,7 +235,7 @@ class CGuildManager : public singleton
 	std::map					m_map_kGuild;
 	std::map >		m_mapGuildWarEndTime;
 
-	std::set				m_DeclareMap; //   ¸ 
+	std::set				m_DeclareMap; // 선전 포고 상태를 저장
 	std::map >	m_WarMap;
 
 	typedef std::pair	stPairGuildWar;
diff --git a/src/db/src/Marriage.h b/src/db/src/Marriage.h
index 6758c8a..149df9e 100644
--- a/src/db/src/Marriage.h
+++ b/src/db/src/Marriage.h
@@ -49,7 +49,7 @@ namespace marriage
 		DWORD pid2;
 		int   love_point;
 		DWORD time;
-		BYTE is_married; // false : ȥ , true : ȥ 
+		BYTE is_married; // false : 약혼 상태, true : 결혼 상태
 		std::string name1;
 		std::string name2;
 
diff --git a/src/db/src/Peer.h b/src/db/src/Peer.h
index 46e1a87..dc2dc96 100644
--- a/src/db/src/Peer.h
+++ b/src/db/src/Peer.h
@@ -64,9 +64,9 @@ class CPeer : public CPeerBase
 	BYTE	m_bChannel;
 	DWORD	m_dwHandle;
 	DWORD	m_dwUserCount;
-	WORD	m_wListenPort;	// Ӽ Ŭ̾Ʈ  listen ϴ Ʈ
-	WORD	m_wP2PPort;	// Ӽ Ӽ P2P   listen ϴ Ʈ
-	LONG	m_alMaps[MAP_ALLOW_MAX_LEN];	//   ϰ ִ°?
+	WORD	m_wListenPort;	// 게임서버가 클라이언트를 위해 listen 하는 포트
+	WORD	m_wP2PPort;	// 게임서버가 게임서버 P2P 접속을 위해 listen 하는 포트
+	LONG	m_alMaps[MAP_ALLOW_MAX_LEN];	// 어떤 맵을 관장하고 있는가?
 
 	TItemIDRangeTable m_itemRange;
 	TItemIDRangeTable m_itemSpareRange;
diff --git a/src/db/src/PrivManager.h b/src/db/src/PrivManager.h
index 9dd20df..95eb367 100644
--- a/src/db/src/PrivManager.h
+++ b/src/db/src/PrivManager.h
@@ -23,7 +23,7 @@ struct TPrivEmpireData
 };
 
 /**
- * @version 05/06/08	Bang2ni - ӽð ߰
+ * @version 05/06/08	Bang2ni - 지속시간 추가
  */
 struct TPrivGuildData
 {
@@ -33,7 +33,7 @@ struct TPrivGuildData
     DWORD guild_id;
 
 	// ADD_GUILD_PRIV_TIME
-    time_t end_time_sec;	///< ӽð
+    time_t end_time_sec;	///< 지속시간
 
     TPrivGuildData(BYTE type, int value, DWORD guild_id, time_t _end_time_sec)
 	: type(type), value(value), bRemoved(false), guild_id(guild_id), end_time_sec(_end_time_sec )
@@ -53,7 +53,7 @@ struct TPrivCharData
 };
 
 /**
- * @version 05/06/08	Bang2ni - Guild privilege  Լ  ð ߰
+ * @version 05/06/08	Bang2ni - Guild privilege 관련 함수 지속 시간 추가
  */
 class CPrivManager : public singleton
 {
diff --git a/src/db/src/ProtoReader.h b/src/db/src/ProtoReader.h
index 5505f73..260ccdb 100644
--- a/src/db/src/ProtoReader.h
+++ b/src/db/src/ProtoReader.h
@@ -6,8 +6,8 @@
 
 #include "CsvReader.h"
 
-//csv  оͼ  ̺ ־ش.
-void putItemIntoTable(); //(̺, ׽Ʈ)
+//csv 파일을 읽어와서 아이템 테이블에 넣어준다.
+void putItemIntoTable(); //(테이블, 테스트여부)
 
 int get_Item_Type_Value(std::string inputString);
 int get_Item_SubType_Value(int type_value, std::string inputString);
@@ -19,7 +19,7 @@ int get_Item_LimitType_Value(std::string inputString);
 int get_Item_ApplyType_Value(std::string inputString);
 
 
-// 䵵   ִ.
+//몬스터 프로토도 읽을 수 있다.
 int get_Mob_Rank_Value(std::string inputString);
 int get_Mob_Type_Value(std::string inputString);
 int get_Mob_BattleType_Value(std::string inputString);
diff --git a/src/db/src/QID.h b/src/db/src/QID.h
index 230d2ef..7a39fa0 100644
--- a/src/db/src/QID.h
+++ b/src/db/src/QID.h
@@ -2,7 +2,7 @@
 #define __INC_METIN_II_DB_QID_H__
 
 /**
- * @version	05/06/10 Bang2ni -    ߰(QID_ITEMPRICE_XXX)
+ * @version	05/06/10 Bang2ni - 아이템 가격정보 쿼리 추가(QID_ITEMPRICE_XXX)
  */
 enum QID
 {
@@ -29,10 +29,10 @@ enum QID
     QID_GUILD_RANKING,			// 20
 
 	// MYSHOP_PRICE_LIST
-    QID_ITEMPRICE_SAVE,			///< 21,    
-    QID_ITEMPRICE_DESTROY,		///< 22,    
-    QID_ITEMPRICE_LOAD_FOR_UPDATE,	///< 23,  Ʈ    ε 
-    QID_ITEMPRICE_LOAD,			///< 24,   ε 
+    QID_ITEMPRICE_SAVE,			///< 21, 아이템 가격정보 저장 쿼리
+    QID_ITEMPRICE_DESTROY,		///< 22, 아이템 가격정보 삭제 쿼리
+    QID_ITEMPRICE_LOAD_FOR_UPDATE,	///< 23, 가격정보 업데이트를 위한 아이템 가격정보 로드 쿼리
+    QID_ITEMPRICE_LOAD,			///< 24, 아이템 가격정보 로드 쿼리
 	// END_OF_MYSHOP_PRICE_LIST
 };