1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
-- 총 페이지 구하기
select CEILING(count([mail_id])/30.0from MailBox
where limit_time > getdate() and [to] = 13400
 
 
-- 요청 페이지 가져오기
DECLARE @page_no int = 1            -- 페이지 번호
DECLARE @page_row_count int = 28    -- 한 페이지 열 개수
 
SELECT SequenceNo, [from], [to], itemType, receiveType, receiveTime, expireTime from Mailbox
WHERE receive_time < getdate()-1 and expireTime > getdate() and [to] = 13400
ORDER BY expireTime DESC 
OFFSET (@page_no - 1* @page_row_count ROW FETCH NEXT @page_row_count ROW ONLY
 
-- OFFSET (@page_no - 1) * @page_row_count  // 페이지의 시작 번호
-- ROW FETCH NEXT @page_row_count ROW ONLY  // 페이지의 끝 번호

 


http://www.inputdirector.com/downloads.html

인풋다이렉트 프로그램 - 마우스 키보드 공유 


구글 검색기로 "mouse without borders"로 검색하면 micro soft 에서 제공하는 툴이 검색된다.




설치 후 Yes/No를 물어보는데 No를 하면 메인이되어 "인증코드"를 발급한다.

다른 PC에서는 "Yes" 선택하여 "인증코드"를 입력하면 [마우스/키보드]를 공유 받을 수 있다. (빨리 알았더라면 좋았을 소프트웨어이다.)


'Tools > Free Apps' 카테고리의 다른 글

[Tools] 이미지 편집 무료 어플 소개  (0) 2016.07.11
[Tools] NetBeans 개발툴 - 소개와 설치  (0) 2013.08.02



1
2
3
4
5
6
7
8
9
10
11
12
13
14
// BOM 추출하기
 
System.IO.FileStream fs = System.IO.File.OpenRead(xmlFilePath);
byte[] byteOrderMark = new byte[3];
fs.Read(byteOrderMark, 03);
 
if (byteOrderMark[0== 0xEF && byteOrderMark[1== 0xBB && byteOrderMark[2== 0xBF)
{
    // utf-8
}
else if (byteOrderMark[0== 0xFF && byteOrderMark[0== 0xFE)
{
    // utf-16
}
cs


'Languages > C#' 카테고리의 다른 글

[C#] Internal Property 접근하기  (0) 2016.03.23
[C#] InputBox 만들기  (0) 2014.01.21



1
2
3
4
5
6
7
8
9
10
11
12
catch (System.Xml.XmlException e)
{
    // Exception을 처리하려는데 Internal Property 로 접근이 필요한 상황이 되었다.
    // Internal Property : ResString
 
    // Reflection 옵션을 이용하여 Internal Property 의 접근을 요청한다.
    var t = e.GetType().GetProperty("ResString"System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic);
 
    // 저장된 값을 요청한다.
    string resString = (string)t.GetValue(e, null); 
}
 
cs


'Languages > C#' 카테고리의 다른 글

[C#] BOM 확인 (FileStream)  (0) 2016.03.23
[C#] InputBox 만들기  (0) 2014.01.21



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
-- IN Condition
 
-- first_name 컬럼에 IN 오른쪽의 단어를 포함하고 있는 rows를 출력합니다.
SELECT *
FROM employees
WHERE first_name IN ('Sarah''Jane''Heather');
 
 
-- NOT IN은 반대의 의미로 포함되지 않은 rows를 출력합니다.
SELECT *
FROM employees
WHERE first_name NOT IN ('Sarah''Jane''Heather');
 
 
-- /* WHERE first_name = 'Sarah' OR first_name = 'Jane' OR first_name = 'Heather' */
-- 위의 문장과 비교하여 선호하는 방향의 문법을 사용하면 된다.
cs


< Bitstream Vera Sans Mono + 맑은고딕 >

BitstreamVeraSansMono.ttf

  √ consolas 보다 가독성이 좋다. 진한 느낌이다.

  √ consolas 보다 글자 크기가 커졌지만 뷰에 보여지는 라인수가 달라지는건 아니다.



< FixedSys >

FSEX300.ttf


 foxlime_vs2005.vssettings


  √ 13인치 노트북에서 사용하기 딱 좋은 폰트이다. 굵은 글씨에 가독성도 좋다.
  √ 테마는 주로 사용했던 테마를 백업해 놓은 것이다.  



< 개인 설정한 테마 >

Darkness_User_20140407.vssettings




정규식은 처음 접하면 암호 같다. 하지만 복잡한 상황에 조건이 필요한 경우 사용하게 되면 간단하게 해결 되는 경우가 있다. 그러므로 정규식은 꼭 학습이 필요하다.

1
2
3
-- float이 아닌 value를 찾는 정규식.
SELECT * FROM TestDB WHERE type='float' and trim(value) NOT REGEXP '^[+-]?\d*(\.?\d*)$'
 
cs



MSDN 정규식 구문 링크


일치 항목

/^\s*$/

빈 줄을 찾습니다.

/\d{2}-\d{5}/

2자리 숫자, 하이픈 및 추가 5자리 숫자로 구성된 ID 번호의 유효성을 검사합니다.

/<\s*(\S+)(\s[^>]*)?>[\s\S]*<\s*\/\1\s*>/

HTML 태그를 찾습니다.



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
:: 문장을 파싱할 때 사용하는 방법
:: tokens는 몇번째 내용을 가져올 것인가를 지정하는 숫자이다. (1부터 시작)
:: delims는 어떤 기준으로 문장을 분리할 것인지에 대한 기준이다.
 
set sentence= aaa-bbb-ccc-ddd
FOR /F "tokens=2 delims=-" %%i in ("%sentence%") do echo token = %%i
 
 
 
:: 파일을 파싱할 때 사용하는 방법
:: usebackq는 FileName을 ( ' )작은 따옴표로 감싸면 문장으로 인식하고
:: ( " )큰 따옴표로 감싸면 파일로 인식하기 위한 옵션이다.
 
FOR /F "usebackq tokens=2 delims=-" %%i in ('%SentenceName%') do echo token = %%i
 
FOR /F "usebackq tokens=2 delims=-" %%i in ("%FileName%") do echo token = %%i
 
 
 
:: tokens를 여러 개 만들고자 할 때
:: delims로 나열된 파싱 단어들의 숫자를 지정해주면 i, j, k, l에 순서대로 전달된다.
 
set sentence= aaa-bbb-ccc-ddd
FOR /F "tokens=1,2,3,4 delims=-" %%i in ("%sentence%") do echo token = %%i, %%j, %%k, %%l
cs


for문을 사용할 때는 문장과 파일을 명확히 구분할 필요가 있다.
자세한 사용법은 CMD 실행하고 for /?로 살펴보기.


'Languages > DOS SHELL' 카테고리의 다른 글

[DOS SHELL] IF 문  (0) 2015.09.21
[DOS SHELL] goto 와 call의 차이점  (0) 2015.09.21
[DOS SHELL] Variable 선언 및 사용  (0) 2015.09.21
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
IF "%ERRORLEVEL%" == 0  ( 
    echo 0이면 true라는 소리이다.
)
IF "%ERRORLEVEL%" NEQ 0  ( 
    echo 0이 아니면 true라는 소리이다.
)
 
set name=FoxLime
IF "%name%" == "Foxlime" (
    echo 대소문자 구분하여 문자열을 비교한다.
)
IF  /i "%name%" == "Foxlime" (
    echo 대소문자 구분 없이 문자열을 비교한다.
)
 
IF "%rootPath%" == "C:\" (
    echo C:\ true.
) ELSE IF "%rootPath%" == "D:\" (
    echo D:\ true.
)
 
 
IF %UserLevel% == 1 IF %Character% > 2 (
    echo IF문에서 &&(and)를 표현하는 식이다.  
)
 
SET IsBool=false
IF %UserLevel% == 1 SET IsBool=true
IF %Character% > 2 SET IsBool=true
IF /i "IsBool" == "true" (
    echo IF문을 ||(or)를 표현하는 식이다.
)
 
cs


'Languages > DOS SHELL' 카테고리의 다른 글

[DOS SHELL] for 문  (0) 2015.09.21
[DOS SHELL] goto 와 call의 차이점  (0) 2015.09.21
[DOS SHELL] Variable 선언 및 사용  (0) 2015.09.21
1
2
3
4
5
6
7
8
9
10
11
12
13
14
@echo off
 
:: call과 goto는 실행하는 동작이 다르다.
:: call은 :Test를 현재 위치로 불러와 처리하고 다음 라인 처리를 진행한다.
:: goto는 :Test 위치로 이동하여 처리한다.
 
call :Test
goto :Test
 
exit /b 0
 
:Test
echo you called Test
exit /b 0
cs



'Languages > DOS SHELL' 카테고리의 다른 글

[DOS SHELL] for 문  (0) 2015.09.21
[DOS SHELL] IF 문  (0) 2015.09.21
[DOS SHELL] Variable 선언 및 사용  (0) 2015.09.21
1
2
3
4
5
6
7
8
9
10
11
12
13
14
SET CurrentPath=%CD%
 
:: 0의 위치부터 시작하여 3글자를 잘라 저장한다.
SET RootPath=%CD:0,3%
 
:: parameter
SET param0=%~0
SET param1=%~1
 
:: save file about paths
(
echo CurrentPath=%CurrentPath%
echo RootPath=%RootPath%
)>"path.dat"
 
 
cs


변수는 SET으로 선언되며 Value를 사용하려면 %로 감싸야 한다.


'Languages > DOS SHELL' 카테고리의 다른 글

[DOS SHELL] for 문  (0) 2015.09.21
[DOS SHELL] IF 문  (0) 2015.09.21
[DOS SHELL] goto 와 call의 차이점  (0) 2015.09.21

게임 아이템이 붙은 옵션 또는 속성 값을 bool로 사용하면 된다가 보통의 생각이다.

bool을 sizeof로 측정하면 1Byte = 8bit 값이 나오는데 필요한건 1bit를 표현하기 위해 사용하고 있는 값은 1Byte인것이다. 7bit는 낭비로 보이게 마련이다. 이와 같은 경우 선배님들의 해결법은 바로 비트 연산을 이용하는 것이다.


예를 들어 "NPC에게 판매불가, 버리기 불가, 거래 불가" 등등의 속성들 설정할 때 사용한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
 
typedef unsigned int UINT;
 
// 시프트 연산을 이용하여 해당하는 자리에 비트를 넣어준다.
enum ITEM_ATTRIBUTE
{
    SELL_SHOP    = 1 << 0, // 상점 판매 유무
    THROW_OUT    = 1 << 1, // 버리기 유무
    ITEM_ATTRIBUTE_MAX    = 1 << 32,
};
 
int main()
{
    UINT itemAttr = SELL_SHOP;
    std::cout << static_cast<UINT>(itemAttr & SELL_SHOP) << std::endl;
    std::cout << static_cast<UINT>(itemAttr & THROW_OUT) << std::endl;
 
    UINT itemAttr = SELL_SHOP | THROW_OUT;
    std::cout << static_cast<UINT>(itemAttr & SELL_SHOP) << std::endl;
    std::cout << static_cast<UINT>(itemAttr & THROW_OUT) << std::endl;
    return 0;
}
cs

(itemAttr & SELL_SHOP)으로 확인하면 해당 비트가 1의 상태면 0보다 큰 숫자를 반환하고 

비트가 0의 상태면 0을 반환한다.

Quick Open File은 visual studio 확장 기능을 설치 해야지만 사용할 수 있는 기능이다.

Ctrl + K , Ctrl + O 단축키를 사용한다.

 https://visualstudiogallery.msdn.microsoft.com/3eb2f230-2728-4d5f-b448-4c0b64154da7




Visual Assist X 가 설치되어 있다면 위의 확장 기능을 설치하지 않고 사용이 가능하다.

 http://docs.wholetomato.com/default.asp?W193

Alt + Shift + O 단축키를 사용한다.


'Tools > Visual studio' 카테고리의 다른 글

[VS] Fonts + Themes  (0) 2016.03.04
[vs 2005 전용] Recent Projects 리스트 삭제 방법  (0) 2012.09.20

1) IIS Install


2) IIS 확인

시작 --> IIS(인터넷 정보 서비스) 관리자 --> 실행


--> 시작을 할 수 없다면 기본 제공 포트(80)을 다른데에서 사용하고 있는지 확인이 필요하다.

--> 웹 서비스 제공할 때 자체적으로(코드) 포트를 막는 경우가 있으므로 서비스 시작을 했는데 웹이 안뜬다면 포트 변경을 1회 시도 해볼 필요는 있다.



'OS > WINDOWS' 카테고리의 다른 글

[Windows] 원격 데스크톱 실행  (0) 2012.12.26
[Windows] Network IP 충돌 현상 검사  (0) 2012.12.12
[Windows] NETWORK 열린 포트 확인  (0) 2012.08.22

원문 링크 : http://msdn.microsoft.com/ko-kr/library/yakksftt.aspx


문자열을 정수로 변환합니다. 이러한 기능의 더 안전한 버전을 사용할 수 있습니다. _itoa_s, _i64toa_s, _ui64toa_s, _itow_s, _i64tow_s, _ui64tow_s를 참조하십시오.

char *_itoa(
   int value,
   char *str,
   int radix 
);
char *_i64toa(
   __int64 value,
   char *str,
   int radix 
);
char * _ui64toa(
   unsigned _int64 value,
   char *str,
   int radix 
);
wchar_t * _itow(
   int value,
   wchar_t *str,
   int radix 
);
wchar_t * _i64tow(
   __int64 value,
   wchar_t *str,
   int radix 
);
wchar_t * _ui64tow(
   unsigned __int64 value,
   wchar_t *str,
   int radix 
);
template <size_t size>
char *_itoa(
   int value,
   char (&str)[size],
   int radix 
); // C++ only
template <size_t size>
char *_i64toa(
   __int64 value,
   char (&str)[size],
   int radix 
); // C++ only
template <size_t size>
char * _ui64toa(
   unsigned _int64 value,
   char (&str)[size],
   int radix 
); // C++ only
template <size_t size>
wchar_t * _itow(
   int value,
   wchar_t (&str)[size],
   int radix 
); // C++ only
template <size_t size>
wchar_t * _i64tow(
   __int64 value,
   wchar_t (&str)[size],
   int radix 
); // C++ only
template <size_t size>
wchar_t * _ui64tow(
   unsigned __int64 value,
   wchar_t (&str)[size],
   int radix 
); // C++ only

value

변환될 수 있는 숫자

str

문자열 결과

radix

다음 value의 기본은; 범위 2–36에 있어야 합니다.

각 함수들은 str에 포인터를 반환합니다. 반환되는 오류가 없습니다.

다음 _itoa_i64toa, 및 _ui64toa 함수는 주어진 value 인수의 자리를 는 null로 끝나는 문자열로 변경하고, str에서 결과( _itoa 에 대한 최대 33, _i64toa 에 대한 65 및 _ui64toa)를 저장합니다. 만일 radix이 10 및 value 가 음수이면 저장된 문자열의 첫 문자는 빼기 기호 ( – )입니다. 다음 _itow_i64tow, 및 _ui64tow 는 각각 _itoa_i64toa, 및 _ui64toa의 와이드 문자 버전입니다.

보안 정보 보안 정보

버퍼 오버런을 방지 하기 위해 , str 버퍼가 변환된 숫자와 후행 null 문자 및 기호 문자를 저장 하기에 충분 한지 확인해야 합니다.

C++에서 이러한 함수는 보다 최신의 보안 대응 함수를 호출하는 템플릿 오버로드를 갖고 있습니다. 자세한 내용은 안전한 템플릿 오버로드을 참조하십시오.

제네릭 텍스트 라우팅 매핑

TCHAR.H 루틴

_UNICODE 및 _MBCS 정의되지 않음

_MBCS 정의됨

_UNICODE 정의됨

_itot

_itoa

_itoa

_itow

_i64tot

_i64toa

_i64toa

_i64tow

_ui64tot

_ui64toa

_ui64toa

_ui64tow

루틴

필수 헤더

_itoa

<stdlib.h>

_i64toa

<stdlib.h>

_ui64toa

<stdlib.h>

_itow

<stdlib.h>

_i64tow

<stdlib.h>

_ui64tow

<stdlib.h>

호환성에 대한 자세한 내용은 소개 단원의 호환성 부분을 참조하십시오.

// crt_itoa.c
// compile with: /W3
// This program makes use of the _itoa functions
// in various examples.

#include <string.h>
#include <stdlib.h>

int main( void )
{
   char buffer[65];
   int r;
   for( r=10; r>=2; --r )
   {
     _itoa( -1, buffer, r ); // C4996
     // Note: _itoa is deprecated; consider using _itoa_s instead
     printf( "base %d: %s (%d chars)\n", r, buffer, strnlen(buffer, _countof(buffer)) );
   }
   printf( "\n" );
   for( r=10; r>=2; --r )
   {
     _i64toa( -1L, buffer, r ); // C4996
     // Note: _i64toa is deprecated; consider using _i64toa_s
     printf( "base %d: %s (%d chars)\n", r, buffer, strnlen(buffer, _countof(buffer)) );
   }
   printf( "\n" );
   for( r=10; r>=2; --r )
   {
     _ui64toa( 0xffffffffffffffffL, buffer, r ); // C4996
     // Note: _ui64toa is deprecated; consider using _ui64toa_s
     printf( "base %d: %s (%d chars)\n", r, buffer, strnlen(buffer, _countof(buffer)) );
   }
}
기본 10:-1 (2 자)
기본 9:12068657453 (11 자)
기본 8:37777777777 (11 자)
기본 7:211301422353 (12 자)
기본 6:1550104015503 (13 자)
기본 5:32244002423140 (14 자)
기본 4:3333333333333333 (16 자)
기본 3:102002022201221111210 (21 자)
기본 2:11111111111111111111111111111111 (32 자)

기본 10:-1 (2 자)
기본 9:145808576354216723756 (21 자)
기본 8:1777777777777777777777 (22 자)
기본 7:45012021522523134134601 (23 자)
기본 6:3520522010102100444244423 (25 자)
기본 5:2214220303114400424121122430 (28 자)
기본 4:33333333333333333333333333333333 (32 자)
기본 3:11112220022122120101211020120210210211220 (41 자)
기본 2:1111111111111111111111111111111111111111111111111111111111111111 (64 자)

기본 10:18446744073709551615 (20 자)
기본 9:145808576354216723756 (21 자)
기본 8:1777777777777777777777 (22 자)
기본 7:45012021522523134134601 (23 자)
기본 6:3520522010102100444244423 (25 자)
기본 5:2214220303114400424121122430 (28 자)
기본 4:33333333333333333333333333333333 (32 자)
기본 3:11112220022122120101211020120210210211220 (41 자)
기본 2:1111111111111111111111111111111111111111111111111111111111111111 (64 자)


클래스 뷰 --> 해당 Dlg (CxxxxxxxDlg) 선택  

--> 속성 창 --> 재정의 클릭 --> PreTranslateMessage 생성


--> 처리 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
BOOL CGDStressToolDlg::PreTranslateMessage(MSG* pMsg)
{
    if(pMsg->message == WM_KEYDOWN)
    {
        switch(pMsg->wParam)
        {
        case VK_ESCAPE:
            if(AfxMessageBox(_T("툴을 종료하시겠습니까?"),MB_YESNO) == IDNO)
                return TRUE;
            break;
        case VK_RETURN:
            return TRUE;
        }
        
    }
    // TODO: 여기에 특수화된 코드를 추가 및/또는 기본 클래스를 호출합니다.
 
    return CDialogEx::PreTranslateMessage(pMsg);
}





1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
        // InputBox 함수 구현.
        public DialogResult InputBox(string title, string promptText, ref string value)
        {
            Form form = new Form();
            Label label = new Label();
            TextBox textBox = new TextBox();
            Button buttonOk = new Button();
            Button buttonCancel = new Button();
            form.Text = title;
            label.Text = promptText;
            textBox.Text = value;
            buttonOk.Text = "OK";
            buttonCancel.Text = "Cancel";
            buttonOk.DialogResult = DialogResult.OK;
            buttonCancel.DialogResult = DialogResult.Cancel;
            label.SetBounds(9, 20, 372, 13);
            textBox.SetBounds(12, 36, 372, 20);
            buttonOk.SetBounds(228, 72, 75, 23);
            buttonCancel.SetBounds(309, 72, 75, 23);
            label.AutoSize = true;
            textBox.Anchor = textBox.Anchor | AnchorStyles.Right;
            buttonOk.Anchor = AnchorStyles.Bottom | AnchorStyles.Right;
            buttonCancel.Anchor = AnchorStyles.Bottom | AnchorStyles.Right;
            form.ClientSize = new Size(396, 107);
            form.Controls.AddRange(new Control[] { label, textBox, buttonOk, buttonCancel });
            form.ClientSize = new Size(Math.Max(300, label.Right + 10), form.ClientSize.Height);
            form.FormBorderStyle = FormBorderStyle.FixedDialog;
            form.StartPosition = FormStartPosition.CenterScreen;
            form.MinimizeBox = false;
            form.MaximizeBox = false;
            form.AcceptButton = buttonOk;
            form.CancelButton = buttonCancel;
            DialogResult dialogResult = form.ShowDialog();
            value = textBox.Text;
            return dialogResult;
        }
 
        private void ListView1DoubleClick(object sender, EventArgs e)
        {
            // InputBox 호출부 구현.
            string value = "0";
            if (this.InputBox("Enter values""Value :"ref value) == DialogResult.OK)
            {
                MessageBox.Show(value);
            }
        }


'Languages > C#' 카테고리의 다른 글

[C#] BOM 확인 (FileStream)  (0) 2016.03.23
[C#] Internal Property 접근하기  (0) 2016.03.23

테이블에 컬럼 검사 후 작업 수행을 하기 위해 IF문을 사용하는데 

보통의 경우 사용하는 쿼리는 다음과 같다.

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

SELECT * FROM T_BASE_NAME WHERE ID = 1111

IF @@ROWCOUNT <> 1

RETURN 1

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


IF NOT EXISTS 를 사용하면 다음과 같다.

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

IF NOT EXISTS (SELECT * FROM T_BASE_NAME  WHERE ID = 1111)

RETURN 1

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

테이블에 컬럼이 존재하는지 확인 후 없다면 RETURN 1을 수행하라.

1. FreeBSD 개요

  - URL : http://www.freebsd.org/

  - Documentation > handbook 안에 들어가 PC 정보를 확인 후 필요한 iso 파일을 다운로드 받는다.

    ( FreeBSD-9.1-RELEASE-amd64-dvd1.iso )


2. virtualBox - FreeBSD 생성

  - 가상 머신 만들기시 자신이 다운로드 받은 파일에 따라 아래와 같이 버전(bit)설정을 해주어야 한다.

  - 만약 버전 설정이 정상적이지 않는 경우 무한 Reboot을 경험하게 된다.


- 설정 정보는 사진을 참고하면 된다.



3. FreeBSD 설치 시작

- Enter 또는 1번키를 누르면 시작된다.

 

 

 

 - Key Mapping은 No 선택하고 패스.

 

 

 

 - 파티션 설정을 어떻게 할것인가라는 질문이다.  guided 방식이 default다.

 

 

 

 

 

 

 

 

 

 

 

 - 서버 시간 설정이다. UTC가 아니므로 No하고 아래의 화면을 띄운다.

 

 

 

 

 

 - User 생성하겠냐고 묻는다. root를 제외하고 생성하고 싶어 Yes했다.

 

 

 

 

 

 

 

 

 

 * 최종 설치 완료하고 Reboot 했는데 Install 화면이 나온다면 아래의 내용을 참고한다.

 

 

 

 

 노란색 폴더 그림을 클릭하고 다운로드 받은 CentOS6.4  iso 파일을 선택한다.

 

 

 

 디스크 테스트 검사인데 Skip해도 된다.

 

 특별한 저장 장치가 아니라면 Basic Storage Devices를 선택하면 된다.

 

 

 Configure Network를 미리 설정 가능하지만 여기에 설정하지 않아도 되므로 패스한다.

나중에 설정한 내용이 들어갈 예정.

 

 

 암호는 꼭 설정해주는게 좋다.

 

 파티션 설정에 관한 부분인데 생각해 놓은 설정이 없다면 하나에 모두 때려 넣어도 무방하다.

보통 OS 설치 공간, 데이터 공간 등등을 나누는 경우가 있는데 검색을 통해 알아보거나 실무를 통해 알고 설정하는게 좋다.

 

 

 최소 설치를 하고 나머지는 컴파일 방식으로 설치 예정이다.

 

 

 

 

1. Virtual Machine Install

Oracle VM site  :  www.virtualbox.org

 

2. Linux - CentOS 6.4 설치를 위한 virtualBox 설정

 

 

 

 메모리가 충분하다면 1GB 정도로 설정하면 좋다. 메모리가 충분하지 않다면 권장 사양을 따르면 된다.

 

 

 

특별한 설정을 하지 않는다면 Default로 VDI를 선택하여 설치하면 된다. 

 

동적 할당은 상황에 맞게 가상 디스크가 유동 관리가 되므로 특별하지 않는 상황이라면 동적 할당을 선택한다.

 

 

 

CentOS 설치할 준비가 끝난 것이다. 혹시 특별 설정이 필요하다면 별도의 자료를 찾아보자.

 

1. 암호가 설정 안되는 경우

   # mongo

MongoDB shell version: 2.4.1
connecting to: test
> _

===================================================================

  # mongo <db_name>

MongoDB shell version: 2.4.1
connecting to: <db_name>
> _

 

 

 

2. 암호가 설정된 경우

  # mongo -u<user_ID> -p

MongoDB shell version: 2.4.1
Enter password:  _

===================================================================

  # mongo <db_name> -u<user_ID> -p

MongoDB shell version: 2.4.1
Enter password:  _

 

 

 

두 개 예제의 다른 점은 MongoDB의 존재하는 DB에 직접 접근하느냐의 차이다.

 

'Databases > MongoDB' 카테고리의 다른 글

[MongoDB] Replica set  (0) 2013.08.12
[MongoDB] 관리툴 링크 알려주는 페이지  (0) 2013.05.09

Replica set of MongoDB is site about information  :  http://docs.mongodb.org/manual/replication/

 

1. 용어 정리

Replica - 복제

shard - 분산 저장할 때 사용되는 물리적 장비

sharding - 대용량 DB에서 분산 저장하는 기술

 

 

Replica set은 Replication(복제)된 서버가 여유로 가지고 있음을 의미한다. 즉, Master , Slave로 구성된 하나의 묶음을 의미한다. 구성하는 이유는 DB에 장애가 났을 경우 Slave를 Master로 대체하여 사용할 수 있으므로 유연한 대처가 가능하므로 묶음으로 구성하여 사용한다.

 

Replica Set은 Master, Slave로 주로 구성하지만 Arbiter(아비터)를 추가하는 경우도 존재한다. 아비터는 HeartBeat를 체크하는 역할을 하는데 Master가 고장 났을 때 Slave를 Master로 만드는 역할 수행을 한다.

 

Replica set은 다양한 구성 방법이 존재한다. 위에 링크된 주소로 들어가면 아래와 같은 정보들을 열람할 수 있다.

Replica Set Members
Presents the components of replica sets.
Replica Set Deployment Architectures
Presents considerations for planning replica set deployments.
Replica Set High Availability
Presents the details of the automatic recovery process with replica sets.
Replica Set Read and Write Semantics
Presents the semantics for targeting read and write operations to the replica set.
Replication Processes
Presents the mechanics of the replication process and related topics.

 

 

 

'Databases > MongoDB' 카테고리의 다른 글

[MongoDB] DB 접속하기  (0) 2013.09.03
[MongoDB] 관리툴 링크 알려주는 페이지  (0) 2013.05.09

웹 서버를 개발에 EditPlus 툴을 사용했으나 조금 불편함이 존재한 상태였는데 웹(SI)에서 NetBeans 툴을 보편적으로 많이 사용한다며 동료 개발자가 소개해 주었다.

 

EditPlus의 불편사항은 선언부, 정의부를 넘나들며 찾아 갈 수 없다. Find 명령에서는 필요한 모든 파일들을 다 열어 놓고 찾아야 하는 불편함이 대표적이다. 이외의 소소한 불편함은 지나칠 수 있었다.

 

NetBeans 다운로드 경로

https://netbeans.org/downloads/

 

Java SE Development Kit 7 Downloads 경로

http://www.oracle.com/technetwork/java/javase/downloads/index.html?ssSourceSiteId=ocomen

 

 

▷ 설치 실행 순서

1. Java SE Development Kit 7

2. NetBeans

자바 기반으로 개발된 NetBeans이므로 위와 같이 Java JDK가 설치되어야 한다.

 

NetBeans의 단점이라면 폰트의 대한 문제점이 존재하는데 폰트는

[나눔고딕 코딩] 글꼴을 사용하면 말끔히 해결 가능하다.

http://dev.naver.com/projects/nanumfont/download

 

 

 

 

 


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include <iostream> 
#include <map> 
#include <vector> 
 
using namespace std; 
 
int main() 
    map<intint>    mapTest; 
    mapTest.insert( pair< int,int >( 1,0 ) ); 
    mapTest.insert( pair< int,int >( 2,0 ) ); 
    mapTest.insert( pair< int,int >( 3,0 ) ); 
    mapTest.insert( pair< int,int >( 4,0 ) ); 
    mapTest.insert( pair< int,int >( 5,0 ) ); 
 
    vector<map<intint>> vmVectorTest; 
    vmVectorTest.push_back(mapTest); 
 
    vector<map<intint>>::iterator vitr; 
    vitr = vmVectorTest.begin(); 
 
    map<intint>::iterator mapitr; 
    mapitr = vitr->begin(); 
 
    do 
    { 
        cout << mapitr->first << " , " << mapitr->second << endl; 
 
        ++mapitr; 
    }while(mapitr != vitr->end()); 
 
    return 0; 
}

vector에 map을 담을 생각을 한 이유는 자유롭게 변형되는 맵 배열을 생각하게 되었다.

현재로써는 사용량이 빈번하지 않을 것으로 예상되지만 유용하게 사용할 일이 있을거란 생각에 테스트 코드를 작성하게 되었다.

 

위의 코드를 보면 vector에 map을 담았지만 다른 각도로 보면 다양한 STL 컨네이너들이 각자 상황에 맞게 포함 될 수 있음을

의미한다. 이 의미는 자유롭게 사용하여 필요할 때 꺼내 사용하면 된다.

 

퍼포먼스를 먼저 생각하는 분이라면 하나의 연산이라도 하지 않아야 한다는 가정이 붙겠지만 일단 요즘 시대의 컴퓨터는

이 정도의 내용을 허용하므로 자유롭게 사용하는게 더 이익일 수있다는 사실을 생각하면 좋다.

 

고정형의 배열을 사용하거나 매번 new를 이용한 배열 생성의 형태라면 vector가 더 효과적이므로 한번 정도 생각을 해볼 수 있는

문장이다.


'Databases > MongoDB' 카테고리의 다른 글

[MongoDB] DB 접속하기  (0) 2013.09.03
[MongoDB] Replica set  (0) 2013.08.12

Replication DB 여러개 사용하는 방법은 간단하다.

Replication이 이미 설정이 완료되어 정상적으로 돌아간다는 전제로 설명할 예정이다. 


혹시 설정이 궁금하시다면 아래 설정 설명이 되어 있는 곳을 참조하면 된다.

링크 주소 : http://foxlime.tistory.com/70

 

1. my.cnf 파일 수정 (/etc/my.cnf)

 replicate-do-db=[DB Name]   << 추가 해 놓은 이 부분을 늘려주면 된다.

 

replicate-do-db= no1_data

replicate-do-db= no2_data

replicate-do-db= no3_data

 

저장하면 설정은 끝난다.

 

2. 데이터베이스 준비

우선 mysql 명령어로 접속하여 stop slave;를 해준 뒤

" no1_data, no2_data, no3_data" DB에 dump file을 밀어 넣어준다. 

 

 3. MySQL 재시작 그리고 slave 재시작

#> service mysqld restart

#> mysql -u[계정] -p

>start slave;

 

여러개의 DB를 replication하는 이유는 DB간의 서로 연결이 되어 있는 Query를 사용한다면 Query문제로 에러를 보게 된다. 이러한 에러를 해결하기 위해 필수적으로 Query문에서 Join을 사용한다면 꼭 필수적으로 여러개의 DB는 Replication되어야 한다.

'Databases > MYSQL' 카테고리의 다른 글

mysql - start / stop / restart  (0) 2013.01.03
mysql - 인덱스 정보 정리  (2) 2012.10.05
mysql - BinLog 파일 Text 변환  (0) 2012.02.27
mysql - Replication (Master/Slave 구조) 설정  (0) 2012.02.23
mysql - my.cnf 설정할 때 참고  (0) 2012.02.23

 MySQL  config flie - my.cnf

 /etc/my.cnf

 

[mysqld]

...............

slave-skip-errors=1062

..............

 

MySQL - start / stop /restart

 /etc/init.d/mysqld

 

# service mysqld start

# service mysqld stop

# service mysqld restart

 

시작 → 프로그램 → 보조 프로그램 → 원격 데스크톱 연결

 

 

시작 → 실행 → mstsc 

 

 

 

'OS > WINDOWS' 카테고리의 다른 글

[WIN7] 윈도우 웹서버(IIS) 설치  (0) 2015.04.30
[Windows] Network IP 충돌 현상 검사  (0) 2012.12.12
[Windows] NETWORK 열린 포트 확인  (0) 2012.08.22

+ Recent posts