윈도우즈에서 스레드를 생성하는 API는 CreateThread(), _beginthread(), _beginthreadex() 이렇게 3개의 함수가 존재합니다. 

CreateThread()와 _beginthread(), _beginthreadex()의 차이점은 다음과 같습니다.
  • CreateThread()는 스레드를 생성하는 기능만 담당한다.
  • _beginthread(), _beginthreadex()는 내부적으로 CreateThread() 를 사용하여 스레드를 생성하고 C Runtime library에서 내부적으로 필요로 하는 메모리 영역을 초기화 해주는 역할을 하게 됩니다. 초기화 되는 메모리 영역은 각 스레드 마다 따로 관리되게 됩니다.


그렇다면 _beginthread(), _beginthreadex()의 차이는 무엇일까요? 의외로 이 차이에 대해서 대답을 명쾌하게 해주는 분이 많지가 않습니다. 이제부터 그 차이를 설명해 보도록 하겠습니다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
  
uintptr_t _beginthread( 
   void( *start_address )( void * ),
   unsigned stack_size,
   void *arglist 
);

uintptr_t _beginthreadex( 
   void *security,
   unsigned stack_size,
   unsigned ( *start_address )( void * ),
   void *arglist,
   unsigned initflag,
   unsigned *thrdaddr 
);

함수 원형을 보고 알 수 있는 파라메터에 의한 차이점은 다음과 같습니다.

  • _beginthreadex()는 security를 이용하여 보안 관련 설정을 할 수 있다.
  • _beginthreadex()는 initflag를 이용하여 스레드의 초기 동작을 정의 할 수 있다.
  • _beginthreadex()는 thrdaddr을 이용하여 thread id를 받을 수 있다.
  • _beginthreadex()는 __stdcall 형식의 함수 포인터를 thread 실행 함수로 받는다.
  • _beginthreadex()는 함수 실행 실패시에 0을 리턴한다. (_beginthread는 -1을 리턴한다.)

여기에 더해서 가장 중요하게 기억해야 할 한가지의 차이점이 더 존재합니다. (이 내용이 글을 쓰는 이유이기도 합니다. ^^)
_beginthread()는 스레드가 생성되고 스레드 함수의 실행이 종료 되면 스레드의 정리 작업을 해주게 됩니다. 이러한 형태는 편리한 점이 있지만 단점도 존재하게 되는데 바로 스레드의 실행 완료후에 해당 스레드의 정보를 조회 할 수 있는 방법이 없다는 것입니다. 

예를 들어 스레드의 종료시에 exit 코드가 무엇인지 알기 위해서 GetExitCodeThread()를 사용할 수 있습니다. 이때 첫번째 인자로 스레드의 핸들을 파라메터로 넘겨줘야 되는데 _beginthread()로 생성된 스레드의 핸들은 GetExitCodeThread()를 사용할 수 없습니다. 

1
2
3
4
BOOL WINAPI GetExitCodeThread(
  HANDLE hThread,
  LPDWORD lpExitCode
);

왜 그럴까요? _beginthread()로 생성된 스레드 핸들은 스레드 함수의 실행이 종료될 때 _beginthread() 내부에서 CloseHandle()을 호출하기 때문에 프로그래머가 GetExitCodeThread()를 사용할 수 있는 시점에서는 이미 소멸된 핸들이 되기 때문입니다.

_beginthreadex()는 위와 같은 문제를 해결하기 위해 스레드가 종료될때 내부적으로 CloseHandle()를 호출하지 않고 사용자가 명시적으로 해제하도록 변경되었습니다.

결과적으로 내용을 정리하면 다음과 같습니다.

  • _beginthread()로 생성된 스레드 핸들은 스레드 종료시에 CloseHandle()이 내부적으로 호출되어 신경쓸 필요가 없지만 스레드 함수 완료 후 스레드 핸들을 이용한 어떠한 API 함수도 실행 시킬 수 없습니다.
  • _beginthreadex()로 생성된 스레드 핸들은 스레드가 실행완료된 후 내부적으로 CloseHandle()을 실행시키지 않기 때문에 스레드 핸들을 이용한 API 함수를 실행할 수 있지만 사용자가 명시적으로 CloseHandle()을 호출해 주어야 합니다. 만약 CloseHandle()을 해주지 않으면 핸들이 계속 쌓이게 되는 Resource leak이 생기게 됩니다.
Posted by cyj4369
,

select

select 함수는 한개 또는 그 이상의 소켓 상태를 결정하고, 동기 입출력을 수행 하기위해 필요할 경우 대기 하는 함수입니다.

int select (
int
nfds,
fd_set FAR *
readfds,
fd_set FAR *
writefds,
fd_set FAR *
exceptfds,
const struct timeval FAR *
timeout
);

Parameters

nfds
[입력] 버클리 소켓과 호환되는 소켓을 제외 하고는 이 매개변수는 무시됩니다. 버클리 소켓에서 이 매개변수는 I/O 변화를 감지 할 총 소켓의 갯수+1 의 값을 지정하는 용도로 사용합니다.

readfds
[입/출력] 읽기상태의 변화를 감지할 소켓을 지정합니다.

writefds
[입/출력] 쓰기상태의 변화를 감지할 소켓을 지정합니다.

exceptfds
[입/출력] 예외상태 변화를 감지할 소켓을 지정합니다.

timeout
[입력]
select 함수가 기다리기 위한 시간입니다. NULL 일경우 지정한 I/O변화가 발생했을 때까지 계속 기다립니다.

Remarks

select 함수는 한개 또는 그 이상의 소켓상태(I/O의 발생유무 상태)를 결정하는데 사용됩니다. FD_SET 구조체의 타입의 인자인 readfds, writefds, exceptfds는 각각 읽기, 쓰기, 예외상황 발생과 같은 I/O변화가 발생 했을 때 이를 감지할 대상이 되는 소켓들을 지정하는 배열형 구조체 입니다. 즉, 이 세가지 구조체를 통하여 어떤 소켓에서 어떤 I/O 변화 발생을 감지할지를 선택하여 지정할 수 있습니다. FD_SET 구조체를 처리하기 위해서 일련의 매크로들이 제공되게 됩니다. 이러한 매크로들은 버클리 소켓과 호환성이 있습니다. 하지만, 내부적인 표현 방법은 근본적으로 다릅니다.

readfds 매개변수에는 "입력받을 수 있는 상태"(readability)와 같은 입력(Input)에 대해 변화가 발생 했을때 감지할 대상이 되는 소켓들을 지정합니다. 예를들어 소켓이 리슨 상태라면, 상대방의 접속의 요청에 대한 감지나, 수신큐에 데이터가 수신되었을 때 이를 감지 할 수 있게 됩니다. 어플리케이션은 이런 상황이 감지 되었을때 접속을 허용 하거나 데이터를 수신할 수 있습니다.

writefds 매개변수에는 "출력 할 수 있는 상태"(writability)와 같은 출력(Output)에 대해 변화가 발생 했을때 감지할 대상이 되는 소켓들을 지정합니다. 예를들어 소켓이 connect 함수를 처리하고 있으며, 소켓이 성공적으로 접속이 완료되었을때 다른 데이터를 송신 할 수 있다 라는 변화의 감지나, sendto, WSASendTo 등의 함수가 성공적으로 수행 될수 있을때가 언제인지 감지 할 수 있게 됩니다. 어플리케이션은 이런 상황이 감지 되었을때 소켓에 대한 다른 처리를 하거나, 데이터를 송신 할 수 있습니다.

exceptfds 매개변수는 out-of-band 데이터의 감지를 위해서, 또는 예외적인 에러 상황을 감지하기 위해서 사용됩니다.

readfds, writefds, 또는 exceptfds 매개변수중 두개는 NULL을 가질 수 있습니다. 하지만, 적어도 한개는 NULL 이면 않됩니다. 또한 NULL이 아닌 FD_SET 구조체는 적어도 한개의 소켓을 가지고 있어야 한다는 점을 명심하세요.

windsock(2).h 헤더 파일에는 소켓기술자 세트(ex. FD_SET)를 처리하기 위해서 4가지 종류의 매크로를 정의 해 놓고 있습니다. FD_SETSIZE 값은 소켓기술자 세트(ex. FD_SET)에 들어갈 수 있는 소켓 기술자의 최대 갯수를 결정하는 수치입니다. (FD_SETSIZE 의 기본치는 64입니다. 이값은 winsock(2).h 헤더파일에서 FD_SETSIZE 가 정의 되어 있지 않을 경우 FD_SETSIZE를 64로 정의 하므로 이 헤더파일을 인클루드 하기전에 다른 값을 FD_SETSIZE에 정의해서 변경 할 수 있습니다.)
내부적으로, 소켓기술자 세트로 사용되는 FD_SET 구조체 안에 있는 소켓핸들은 버클리 유닉스와 같은 비트 플래그로 표현되지 않습니다(버클리 유닉스 에서는 세트되어 있다는 것을 1로 그렇지 않은 것을 0으로 표현하죠.). 이 소켓핸들 데이터 표현법은 확실히 정의된 것이 아닙니다. 이렇게 확실히 정의 해 놓지 않은 이유는, 다른 소켓환경 사이에서 소프트웨어를 포팅 하려할 때, 많은 확장성을 제공해 주기 위함입니다. FD_SET 구조체를 처리하는 매크로는 다음과 같습니다.

FD_CLR(s, *set)
지정된 소켓 기술자(descriptor)를 세트에서 제거 합니다.

FD_ISSET(s, *set)
지정된 소켓 기술자가 세트에 있을 경우 0이 아닌값을 반환하고, 없을 경우 0을 반환합니다.

FD_SET(s, *set)
지정된 소켓 기술자를 세트에 추가 합니다.

FD_ZERO(*set)
모든 소켓 기술자를 세크에서 제거합니다.


FD_SET

typedef struct fd_set {
u_int fd_count; /* how many are SET? */
SOCKET fd_array[FD_SETSIZE]; /* an array of SOCKETs */
} fd_set;

Element Usage
fd_count 설정하는 소켓의 번호
fd_array 설정된 소켓의 배열


FD_Zero

Clear all file descriptors in set

Declaration

Source position: oldlinux.pp line 1594

procedure FD_Zero(

var fds: fdSet

);

Description

FD_ZERO clears all the filedescriptors in the file descriptor set fds.

For an example, see Select.

Errors

None.


FD_Clr

Clears a filedescriptor in a set

Declaration

Source position: oldlinux.pp line 1595

procedure FD_Clr(

fd: LongInt;

var fds: fdSet

);

Description

FD_Clr clears file descriptor fd in filedescriptor set fds.

For an example, see Select.

Errors

None.




FD_IsSet

Check whether a filedescriptor is set

Declaration

Source position: oldlinux.pp line 1597

function FD_IsSet(

fd: LongInt;

var fds: fdSet

):Boolean;

Description

FD_Set Checks whether file descriptor fd in filedescriptor set fds is set.

For an example, see Select.

Errors

None.

Posted by cyj4369
,
 
2003-01-09 오후 8:18:50   /  번호: 270644   category: VC++ 일반  /  조회: 167
 [급질문]_beginthreadex 에서 BOOL 함수 호출..그리고 파라메터  
리턴 값이 BOOL 인 함수를 쓰레드로 쓸려면 3번째 파라미터에 어떻게 선언해줘야되죠??
그리고 구조체를 파라미터로 넘길려고 그러는데..자꾸 이런에러가 뜨네요.
error C2664: '_beginthreadex' : cannot convert parameter 3 from 'unsigned int (struct st_ComPort *)' to 'unsigned int (__stdcall *)(void *)'
        None of the functions with this name in scope match the target type

어떻게 해야 되죠?? 파라미터를 넘겨야 되죠??
 
  2004-10-15 오전 1:15:26   /  번호: 474101  /  
 Re: _beginthreadex 형변환문제 답변.   
  

 c++ 은 자료형을 엄격히 구분해서 발생하는 문제입니다.


(HANDLE)_beginthreadex(NULL, 0, ClientConn, (void*)clntSock, 0, (unsigned *)&dwThreadID);


요렇게 사용하면 당근 님이 묻는 Error가 발생합니다.


이것땜시 저도 아주 두시간을 헤맸어용...ㅜㅜ;


문제는 세번째 인자에 있습니다. 요걸 이렇게 바꾸면 형변환 문제 해결... 아래 에러 왕짜증..

error C2664: '_beginthreadex' : cannot convert parameter 3 from 'unsigned long (void *)' to 'unsigned int (__stdcall *)(void *)'

        None of the functions with this name in scope match the target type


음 그니까 (HANDLE)_beginthreadex(NULL, 0, (unsigned int(__stdcall*)(void*))ClientConn, (void*)clntSock, 0, (unsigned *)&dwThreadID);


위에걸 이렇게 바꿔주시면 해결 될거에요....^^


즐공하세용!!


출처 : 데브피아(http://www.devpia.com)

Posted by cyj4369
,

DWORD = unsigned  long

LPVOID = 헝가리안 표기법에 의해 LP라는 것은 long pointer임 LPVOID는 void*를 의미

 

/*
 http://sosal.tistory.com/
 * made by so_Sal
 */



스레드 (혹은 쓰레드, Thread) 에 대해서 잘 모르신다면
링크로~! ^-^ :: LINK_

/*
 * CreateThread()
 * ExitThread()
 * GetExitCodeThread()

 * _beginthreadex()
 *  ResumeThread();
 * _endthreadex()
 *  -------------
 */
Windows에서 쓰레드를 생성하는 가장 기본적인 함수는
CreateThread 입니다.

HANDLE CreateThread(
1.        LPSECURITY_ATTRIBUTES lpThreadAttributes,
2.        SIZE_T dwStackSize,
3.        LPTHREAD_START_ROUTINE lpStartAddress,
4.        LPVOID lpParameter,
5.        DWORD dwCreationFlags,
6.        LPDWORD lpThreadId        );

1. LPSECURITY_ATTRIBUTES lpThreadAttributes,
SECURITY_ATTRIBUTES 구조체는,
생성하는 핸들에 대해 보안속성을 

2. SIZE_T dwStackSize //dw는 DWORD겠죠 ㅎㅎ
쓰래드는 고유의 스택을 가지고 있습니다. 스택 크기를 지정합니다.
0 (또는 NULL) :: Default 값으로 1mb가 적용됩니다.

3. LPTHREAD_START_ROUTINE lpStartAddress

쓰레드가 작동할 함수의 이름을 넣으시면 됩니다.
typedef DWORD (WINAPI *PTHREAD_START_ROUTINE)
                  (LPVOID lpThreadParameter);
typedef PTHREAD_START_ROUTINE    LPTHREAD_START_ROUTINE;

함수 예)
DWORD WINAPI ThreadEx(LPVOID lpParameter){
        return 0;
}

4. LPVOID lpParameter
함수의 인자로 넘어가는것과 같습니다.
더블 포인터도 가능합니다.

5. DWORD dwCreationFlags, //Flag 입니다.
CREATE_SUSPEND
    
:: suspend count 1로 설정 ( 스레드 priority control 관련글 참고 링크 :: LINK_ )
     :: suspend count가 0이 되기 전까지는, 스레드는 동작하지 않습니다.
        이 인자를 넣을 시에, 원하는 시기에 스레드를 시작할 수 있습니다.
        DWORD ResumeThread(HANDLE hThread)   ::  Suspend Count 1 감소
        DWORD SuspendThread(HANDLE hThread)   ::  Suspend Count 1 증가

STACK_SIZE_PARAM_IS_A_RESERVATION 


     :: Reserve stack size를 변경하려면 위 플레그를 추가 한 후 
        스레드 생성 함수들의 매개변수 dwStackSize파라미터를 사용한다.

아래는 CreationFlag이지만, 프로세스에서만 쓰인다. 
CREATE_NEW_CONSOLE
DEBUG_PROCESS | DEBUG_ONLY_THIS_PROCESS 

6. LPDWORD lpThreadId
생성시에 이 변수로 쓰레드ID가 전달됩니다.
필요 없다면 NULL.

return :: HANDLE.
CreateThread 함수의 리턴값은, 스레드를 가리키는 핸들

스레드는 독립된 스택을 할당받기 때문에 메모리를 차지하게 됩니다.
메모리가 허용하는 만큼 스레드 생성이 가능합니다.







void
 ExitThread(DWORD dwExitCode)
이 함수는 실행중인 스레드를 종료하고자 할 때 호출하는 함수입니다.
(사실 return과 다를 바 없다.)
return으로 종료되는 스레드나, 이 함수로 종료되는 스레드나
모두 아래에 설명할 GetExitCodeThread 함수로 리턴값 (혹은 ExitCode값)을
반환받을 수 있다.







스레드의 리턴값을 가져오는 함수입니다.
BOOL GetExitCodeThread(
1        HANDLE hThread,
2        LPDWORD lpExitCode );

1. HANDLE :: 정상적인 리턴으로 종료된 스레드를 가리키는 핸들값
2. lpExitCode :: DWORD 자료형 변수의 주소값을 넣어주면
                       스레드의 리턴값 DWORD값을 반환

다중 프로세스의 경우에, GetExitCodeProcess() 함수 또한,
위와 같이 사용할 수 있습니다. (자료형, 매개변수가 같습니다.)





#include<process.h> 헤더파일이 필요합니다.
uintptr_t _beginthreadex(
          void *_Security,
          unsigned int _StackSize,
          unsigned int(*_StartAdrdress)(void *),
          void *_ArgList,
          unsigned int _InitFlag,
          unsigned int *_ThrdAddr    );

매개변수는 CreateThread와 일치합니다.
매개변수들의 자료형을 더욱 범용적으로 쓰기 위해서
자료형의 형태가 수정되었습니다.

CreateThread() 와 위 함수의 가장 큰 차이점은,
독립적인 메모리 블록 할당에 있습니다.
_beginthreadex() 함수 역시 내부적으로 CreateThread()를 호출합니다. 
종료호출로 ExitThread() 대신, 아래 함수로 대신합니다.
(ExitThread() 함수를 쓰는 이유는 독립적인 "메모리 블록 할당" 에 있습니다.)



void _endthreadex(unsigned retval);
ExitThread() 함수와 역시 동일합니다. 하지만,
_endthreadex() 함수를 쓰는 이유는, 
CreateThread()와 _beginthreadex() 함수간의 차이에 있습니다.
_beginthread() 함수에서는 독립적인 메모리 블록 할당을 한다고 하였습니다.
따라서 스레드 종료시에, 할당한 메모리를 반환해야만 합니다.
이 역할을 하는 함수가 _endthreadex() 입니다.
















======================== CreateThread() 사용 함수 예제 ========================


/*
 * CraeteThread()함수를 이용하여 스레드를 생성한 후
 * 각각의 스레드에 매개변수로 1~10을 넘깁니다.
 * 스레드는 매개변수로 받은 숫자 1~10을 전역변수 STotal 변수에 +=으로 더하고,
 * 매개변수값을 리턴합니다.
 * 메인루틴에서는 스레드가 리턴한값을 차례대로 GetExitCodeThread() 함수를 통해
 * 반환하여 모두 더하고, 전역변수와 리턴값의 합을 출력합니다.
 * ExitThread() 함수는 사용하지 않고, return을 이용했습니다. 
 * ExitThread() 함수를 이용해 직접 짜보시면 이해에 더욱 도움이 될 것 같습니다.
 */


#include<stdio.h>
#include<windows.h>
#include<tchar.h>

#define MAX_THREADS (10)

DWORD STotal = 0;
DWORD WINAPI ThreadProc(LPVOID lpParam);
        // 생성될 Thread가 수행할 내용이 담긴 함수

int _tmain(int argc,TCHAR *argv[]){

 DWORD cntOfThread=0;
 DWORD dwThreadID[MAX_THREADS];
 HANDLE hThread[MAX_THREADS];

 DWORD Total =0;
 DWORD Result=0;
 

while(1){
    if(cntOfThread == MAX_THREADS){
      _tprintf( _T("MAXIMUM THREAD NUMBER : %d\n") ,cntOfThread);
       break;
    }
    hThread[cntOfThread] =
     CreateThread(
         NULL,0,ThreadProc,
         (LPVOID)cntOfThread,
         0,
         &dwThreadID[cntOfThread]);
         cntOfThread++;
}  //while문을 이용하여 10개의 스레드 생성

 Sleep(1000);
 // 스레드가 자신의 할일을 모두 수행하고, 리턴값을 남기고 사라짐
 // 리턴값을 이용하여 Total 계산

 for(DWORD i=0; i<cntOfThread; i++){
  GetExitCodeThread(hThread[i],&Result);
  Total += Result;
  CloseHandle(hThread[i]);
 }
 
 _tprintf( _T(" Total :: %d \n"), Total);      //스레드의 리턴값으로 얻은 Total
 _tprintf( _T("STotal :: %d \n"), STotal);   //스레드가 전역변수에 접근하여 계산된 값
 return 0;
}

DWORD WINAPI ThreadProc(LPVOID lpParam){
   STotal += (DWORD)lpParam; // 전역변수도 접근 가능
   return (DWORD)lpParam;      // 리턴값       전달 가능
}





======================== _beginthreadex() 사용 함수 예제 ========================
/*
 * 위 CreateThread() 예제와
 * 같은 일을 수행합니다.
 */



#include<stdio.h>
#include<windows.h>
#include<tchar.h>
#include<process.h> //beginthreadex() 함수 사용시 필요 헤더파일

#define
 MAX_THREADS (10)

DWORD STotal = 0;
unsigned int WINAPI ThreadProc(LPVOID lpParam);
        // 생성될 Thread가 수행할 내용이 담긴 함수.
        // CreateThread와는 다르게 unsigned int 자료형을 사용합니다.

int _tmain(int argc,TCHAR *argv[]){

 DWORD cntOfThread=0;
 DWORD dwThreadID[MAX_THREADS];
 HANDLE hThread[MAX_THREADS];

 DWORD Total =0;
 DWORD Result=0;
 

while(1){
    if(cntOfThread == MAX_THREADS){
      _tprintf( _T("MAXIMUM THREAD NUMBER : %d\n") ,cntOfThread);
       break;
    }
    hThread[cntOfThread] =
     (HANDLE) _beginthreadex(       //HANDLE로의 형변환이 필요합니다.
         NULL,0,ThreadProc,
         (LPVOID)cntOfThread,
         0,
         (unsigned *)&dwThreadID[cntOfThread]); 
         cntOfThread++;
}  //while문을 이용하여 10개의 스레드 생성

 Sleep(1000);
 // 스레드가 자신의 할일을 모두 수행하고, 리턴값을 남기고 사라짐
 // 리턴값을 이용하여 Total 계산

 for(DWORD i=0; i<cntOfThread; i++){
  GetExitCodeThread(hThread[i],&Result);
  Total += Result;
  CloseHandle(hThread[i]);
 }
 
 _tprintf( _T(" Total :: %d \n"), Total);      //스레드의 리턴값으로 얻은 Total
 _tprintf( _T("STotal :: %d \n"), STotal);   //스레드가 전역변수에 접근하여 계산된 값
 return 0;
}

unsigned int WINAPI ThreadProc(LPVOID lpParam){ //unsigned int 자료형
   STotal += (DWORD)lpParam; // 전역변수도 접근 가능
   return (DWORD)lpParam;      // 리턴값       전달 가능
}

Posted by cyj4369
,
이클립스 설치

http://www.eclipse.org/downloads/ 


 

 

원활한 웹 개발을 위해서 반드시 형광색이 표시된 Eclipse IDE for JAVA EE 버전을 받으시는 것이 좋다. 우측에 32비트와 64비트 두가지 중 하나로 선택하여 다운로드 할 수 있으니 자신의 운영체제에 맞는 부분을 클릭하시면 된다.

 

 

이후 상기 이미지와 같은 부분의 링크를 클릭하시면 다운로드가 진행된다. 이클립스는 특별히 어디다 설치해도 지장이 없으니 자신이 가장 편하다고 생각되는 폴더/작업 환경에 다운로드 받는다.

 

이후 다운로드 받은 압축파일을 알집이나 winrar등을 이용하여 풀어주도록 한다.

 

 

압축을 풀면 eclipse 폴더 안에 다음과 같은 파일과 폴더들이 있는데

eclipse.exe 가 실행파일이다. eclipse.exe 를 실행한다.

 

 

이클립스 로고와 함께 워크스페이스를 어디로 설정할지를 묻는 창이 뜬다.

이곳에서 지정하는 폴더에 여러분께서 작업하시는 결과물과 이클립스 설정 정보가 모두 저장되니 적당한 폴더명을 지정해주시면 된다.

 

나중에 워크스페이스를 따로 바꿀수도 있지만 이의 경우 설정파일과 소스파일들을 다시 옴겨주어야 하는 번거로움이 있으니 자주 사용할 임의 폴더로 설정한다. 설정 후  OK버튼 클릭

 






톰캣 설치

 

첨부된 파일을 설치한다.
설치할 위치를 잘 기억해 둬야 한다.

<tomcat서버 만들기>
1. 서버 탭을 보이게 한다.
 이클립스 윈도우 탭 -> Show View -> Servers선택
2. 서버 생성
서버탭에서 오른쪽 클릭 -> Apache -> tomcat선택 -> next -> finish



오라클 설치



 이 경로에서 버전에 맞는 오라클 설치
설치하면 아이디는 SYSTEM이고, 비밀번호는 본인이 설정해 기억해야 한다.
 설치하고 나면 디폴트값으로 포트넘버 8080을 사용한다. 그러나 이 번호는 톰캣과 충돌하기 때문에 바꿔줘야 한다. 
1. cmd창을 연다.
2. SQL PLUS 실행 : sqlplus /nolog
3. 데이터베이스 접속 : CONNECT SYSTEM/설치할 때 입력한 패스워드
4. 포트 변경 명령 수행 : EXEC DBMS_XDB/SETHTTTPPORT(8087)
5. SQL PLUS 종료 : exit


<이클립스 오라클 연동>
1. Data Source Explore 탭을 보이게 한다.
이클립스 윈도우 탭 -> Show View -> Data Source Explore 선택
 
2. 새로운 데이터베이스 연결 생성
Database Connection에서 오른쪽 클릭 -> new... -> Oracle선택 하고 next -> 맨 위에 Drivers에서 오른쪽에 동그란 버튼 선택 -> 설치한 버전에 맞는 드라이버 선택 -> 오른쪽 JAR List탭으로 이동 ->원래 있던 JAR파일 지우고 Add JAR/Zip... 버튼 클릭 -> oracle설치한 폴더에 들어가서 \app\oracle\product\10.2.0\server\jdbc\lib경로로 이동 해 ojdbc14.JAR파일 추가 -> OK버튼 클릭 -> General 탭에서 SID를 db에서 xe로 바꾸고 Host를 server에서 localhost로 바꾼다. -> 비밀번호를 입력 하고 Finish 클릭

 



<프로젝트 생성>
1. 프로젝트 생성
새 프로젝트 생성 -> Web에 Dynamic Web Project 선택하고 next -> 프로젝트 이름 지정 -> Target Runtime에서 톰캣 확인 -> Dynamic Web version과 Configuration 확인 후 finish



2. ojdbc14.jar파일 추가
oracle설치한 폴더에 들어가서 \app\oracle\product\10.2.0\server\jdbc\lib경로로 이동 해 ojdbc14.JAR파일을 찾아  다음 경로에 넣어준다



3. sql명령 입력할 파일 생성
원하는 폴더에서(위에서는 ch08) 오른쪽 클릭 -> new.. -> SQL File을 찾아 이름 정하고 생성 -> 다음과 같이 설정
 


-> 필요한 SQL문을 입력하여 사용하면 된다. 만들어진 테이블은 아래 Data Source Explore에서 확인하거나 인터넷 창을 실행시켜 127.0.0.1:8087/apex를 입력해 로그인하여 객체 브라우저에서 확인해 볼 수도 있다.

Posted by cyj4369
,

꽤 전에 이야기지만 맥에서도 드디어 오라클 설치가 가능하게 되었다.

계속 클라이언트 버전으로 사용했었는데

설치해보고 싶은 마음에 고고싱..

예전에 웹검색하다가 찾은건데 출처를 안적어놔서 ... 

오라클에서 64bit Intel Mac OS X를 위한 오라클을 드디어 릴리즈를 했다. 이제까지 항상 맥북에서 오라클을 운용할 수 없는 아쉬움을 인스턴스 오라클 클라이언트로 원격서버 접속으로 대신했는데, 64bit intel 10g를 설치하고 나서 그런 가려운 부분은 사라질 것이다. 유닉스 기반의 os x에서 오라클을 설치할 수 없어 대부분의 응용프로그램 개발을 MySQL기반으로 개발했다. 하지만 이제 오라클을 설치했으니 앞으로 개발은 오라클 기반을 할 수 있으며, 또한 주춤했던 데이터베이스 연구에 좀더 증진할 수 있을것으로 기대된다. 나의 맥북에 날개를 달아준 기분이다.


Mac OS X 에 10g를 설치하는 오라클 문서가 있지만, 한번에 설치가 되지 않아서 약간은 고생했다. 대한민국 매킨토시 유저에게 오라클 설치 과정을 위해 필자가 설치한 방법을 소개하고자 한다.


1. 64bit Intel Mac OS X를 위한 Oracle 10g 다운로드

우선 다음 사이트에 가서 맥을 위한 오라클을 다운 받고 압축을 푼다.

db.zip이란 파일을 압축해제하면 db/Disk1 이라는 폴더가 생긴다. 압축해제 후 다른 경로 이동시킨다.

$ unzip db.zip

$ mv db /Projects/Servers

http://www.oracle.com/technology/software/products/database/oracle10g/htdocs/10204macsoft_x86-64.html




2. 오라클을 설치할 수 있는 환경인지를 확인한다.

http://download.oracle.com/docs/cd/B19306_01/install.102/b25286/toc.htm


1) 메모리 확인

$ /usr/sbin/system_profiler SPHardwareDataType | grep Memory


2) 디스크 공간 확인

$ df -h


3) 운영체제 버전확인

$ sw_vers


4) 호스트 네임 등록 (반드시 /etc/hosts에 호스트네임이 등록되어 있어야한다)

$ hostname

$vi /etc/hosts

127.0.0.1       localhost

127.0.0.1       saltfactory

255.255.255.255 broadcasthost

::1             localhost


3. 오라클 설치를 위한 그룹과 사용자가 생성되어 있는지 확인

$ sudo dscl . -list /groups gid name | more

$ sudo dscl . -list /users uid name | more


3. 오라클 설치를 위한 oinstall, dba그룹을 생성하고, oracle유저를 생성한다.

$ sudo dscl . -create /groups/oinstall

$ sudo dscl . -append /groups/oinstall gid 1521

$ sudo dscl . -append /groups/oinstall passwd "*"

$ sudo dscl . -create /groups/dba

$ sudo dscl . -append /groups/dba gid 1522

$ sudo dscl . -append /groups/dba passwd "*"

$ sudo dscl . -create /groups/oper

$ sudo dscl . -append /groups/oper gid 1523

$ sudo dscl . -append /groups/oper passwd "*"

$ sudo dscl . -create /users/oracle

$ sudo dscl . -append /users/oracle uid 1521

$ sudo dscl . -append /users/oracle gid 1521

$ sudo dscl . -append /users/oracle realname "Oracle Software Owner"

$ sudo dscl . -append /users/oracle shell /bin/bash

$ sudo dscl . -append /users/oracle home /Users/oracle

$ sudo dscl . -append /users/oracle passwd "비밀번호"

$sudo dscl . -append /groups/dba GroupMembership oracle

$sudo dscl . -append /group/oper GroupMembership oracle          (왜 에러가 나는지 모르겠다)

sudo passwd oracle


4. 오라클 유저 사용자 디렉토리 생성 및 권한 설정

$ sudo mkdir /Users/oracle

$ sudo chown oracle:oinstall /Users/oracle



5. 오라클 파라메터 추가


$ sudo vi /etc/sysctl.conf

kern.sysv.semmsl=87381

kern.sysv.semmns=87381

kern.sysv.semmni=87381

kern.sysv.semmnu=87381

kern.sysv.semume=10

kernel.shmall=2097152

kernel.sys.shmmax=2147483648

kernel.sys.shmmni=4096

kern.maxfiles=65536

kern.maxfilesperproc=65536

net.inet.ip.portrange.first=1024

net.inet.ip.portrange.last=65000

kern.corefile=core

kern.maxproc=2068

kern.maxprocperuid=2068


sudo vi /System/Library/StartupItems/IPServices

ulimit -Hu 2068

ulimit -Su 2068

ulimit -Hn 65536

ulimit -Sn 65536



6. 오라클 유저로 변경

$ su - oracle


7. 오라클 설치 베이스 디렉토리 생성

 echo 'oracle ALL=(ALL) ALL' >> /etc/sudoers

$ sudo mkdir -p /Projects/Servers/app/oracle

$ sudo chown -R oracle:oinstall /Projects/Servers/app

$ chmod 777 /Projects

$ chmod 777 /Projects/Servers



8. 오라클 .bash_profile 생성 및 환경설정

$ vi $HOME/.bash_profile

ORACLE_SID=ora10g

export ORACLE_SID


ORACLE_BASE=/Projects/Servers/app/oracle

ORACLE_HOSTNAME=localhost

export ORACLE_BASE ORACLE_HOSTNAME


ORACLE_HOME=$ORACLE_BASE/oracle/product/10.2.0/db_1

export ORACLE_HOME


DYLD_LIBRARY_PATH=$ORACLE_HOME/lib

export DYLD_LIBRARY_PATH


DISPLAY=127.0.0.1:0.0; export DISPLAY


PATH=$PATH:$ORACLE_HOME/bin

export PATH



$ source $HOME/.bash_profile

9. 오라클 설치 시작

$ cd /Projects/Servers/db/Disk1

$ ./runInstaller
















Global Database Name과 비밀번호를 설정한다.

$ sudo -i

$ /Projects/Servers/app/oraInventory/orainstRoot.sh

$ /Projects/Servers/app/oracle/oracle/product/10.2.0/db_1/root.sh




10. tnsname.ora와 listener.ora의 아이피 변경 

$ cd $ORACLE_HOME/network/admin

$ vi tnsanames.ora


$ vi listener.ora


11. 리스너 시작

$ lsnrctl start

[출처] 맥 오라클10g 설치|작성자 웹사이더

Posted by cyj4369
,

터미널을 여시고

아래 명령을 순서대로 입력.


su -

(패스워드 입력하라고 나오는데 관리자 비번 입력하면 된다.)

(만약 관리자 비번을 모르면 아래 괄호안에 명령을 입력해서 관리자 비번을 설정한다. - 터미널 초기 사용할 때 자주 발생됨)

(sudo -s)

(passwd root)


cd /etc

(etc 폴더로 이동하는 명령)


vi hosts

(hosts 파일을 읽는 명령)


i

(파일을 쓰기 위한 키 입력 - 편집모드)


등록할 아이피와 호스명을 추가해 주시고서

esc 키 누르시고

(편집모드 종료)


:wq

(수정된 내용을 저장하고 빠져나가기)


앞에 꼭 : 입력해야 한다.

Posted by cyj4369
,
1. CAPTURE FILTERS

capture 필터의 구문은 TCPdump처럼 Lipcap(Linux)이나 Winpcap(Windows) 라이브러리를 사용하는 프로그램에서 쓰는 것과 같습니다. Capture 필터는 캡쳐 도중 아무 때나 수정이 가능한 display 필터와는 다르게, 반드시 캡쳐를 시작하기 전에 설정을 해주어야 합니다.

capture 필터를 설정하는 방법은 다음과 같습니다:
- capture -> options 을 선택합니다.
- "capture filter" 칸에 직접 작성하거나, 다음 번 캡쳐에 다시 사용할 수 있는 필터 이름을 부여하기 위해 "capture filter" 버튼을 클릭합니다.
- 데이터를 캡쳐하기 위해 Start버튼을 클릭합니다.





Syntax:
Protocol
Direction
Host(s)
Value
Logical Operations
Other expression
Example:
tcp
dst
10.1.1.1
80
and
tcp dst 10.2.2.2 3128
Protocol:
사용 가능한 값: ether, fddi, ip, arp, rarp, decnet, lat, sca, moprc, mopdl, tcp and udp.
프로토콜을 지정하지 않으면 모든 프로토콜을 사용합니다.

Direction:
사용 가능한 값: src, dst, src and dst, src or dst
출발지나 목적지를 지정하지 않으면 "src or dst" 키워드가 사용됩니다.
예를 들어, "host 10.2.2.2"은 "src or dst host 10.2.2.2"과 동일합니다.

Host(s):
사용 가능한 값: net, port, host, portrange.
호스트를 지정하지 않으면 "host" 키워드가 사용됩니다.
예를 들어, "src 10.1.1.1"은 "src host 10.1.1.1"과 같은 의미입니다.

Logical Operations:
사용 가능한 값: not, and, or.
부정 연산("not")이 가장 높은 우선순위를 갖습니다. 논리합("or")과 논리곱("and")는 같은 우선순위를 가지며 왼쪽에서 오른쪽으로 처리됩니다.
예를 들어,
"not tcp port 3128 and tcp port 23"은 "(not tcp port 3128) and tcp port 23"과 동일하게 작용합니다.
"not tcp port 3128 and tcp port 23" 은 "not (tcp port 3128 and tcp port 23)"과는 동일하지 않습니다.



사용 예:

tcp dst port 3128
목적지가 TCP 포트 3128인 패킷을 보여줍니다.

ip src host 10.1.1.1
출발지 IP 주소가 10.1.1.1인 패킷을 보여줍니다.

host 10.1.2.3
출발지와 목적지 IP 주소가 10.1.1.1인 패킷을 보여줍니다.

src portrange 2000-2500
출발지의 UDP, TCP 포트가 2000-2500 사이인 패킷을 보여줍니다.

not imcp
icmp 패킷을 제외한 모든 패킷을 보여줍니다. (icmp는 보통 ping 프로그램에서 사용합니다.)

src host 10.7.2.12 and not dst net 10.200.0.0/16
출발지 IP 주소가 10.7.2.12이면서, 목적지 IP 네트워크가 10.200.0.0/16이 아닌 패킷을 보여줍니다.

(src host 10.4.1.12 or src net 10.6.0.0/16) and tcp dst portrange 200-10000 and dst net 10.0.0.0/8
출발지 IP 주소가 10.4.1.12이거나, 출발지 네트워크가 10.6.0.0/16인 패킷중에서 목적지 TCP 포트 범위가 200-10000이면서, 목적지 IP 네트워크가 10.0.0.0/8인 패킷을 보여줍니다.


참고:

"\" 기호는 키워드 자체가 값을 나타낼 때 사용합니다.
"ether proto \ip"( \ip는 "ip"과 동일합니다.)
이것은 IP 프로토콜을 타켓으로 하게 됩니다.

"ip proto \icmp"(\icmp는 "icmp"과 동일합니다.)
이것은 일반적으로 ping 유틸리티에서 사용되는 icmp 패킷을 타켓으로 하게 됩니다.

"multicast"와 "broadcast" 키워드는 "ip" 나 "ether" 다음에 사용할 수 있습니다.
"no broadcast"는 broadcast 요청을 제외하고 싶을 때 유용하게 사용할 수 있습니다.



capture 필터의 구문에 대한 정보가 필요하시면 TCPdump man page을 참고하세요.
Other capture filters examples can be found in the Wiki Wireshark website.

페이지 처음으로



2. DISPLAY FILTERS:

display 필터는 캡쳐된 데이터에서 원하는 정보를 찾을 때 사용합니다.
display 필터의 검색 능력은 capture 필터 보다 더 뛰어납니다. 그리고 필터의 내용을 바꾸고 싶을 때 캡쳐 작업을 다시 시작하지 않아도 됩니다.

Syntax: Protocol .
String 1
.
String 2
Comparison operator
Value
Logical Operations
Other expression
Example:
ftp
passive
ip
==
10.2.3.4
xor
icmp.type
Protocol:

OSI layer 2에서 layer 7 사이에 있는 매우 다양한 프로토콜을 사용 할 수 있습니다. 그것들은 메인 화면에 보이는 "Expression..." 버튼을 클릭하면 볼 수 있습니다.





아래에 보이는 그림에서 간단한 설명과 함께 지원 가능한 프로토콜들을 확인 할 수 있습니다:





Wireshark 웹사이트에서 프로토콜과 그것의 하위 카테고리에 대한 설명을 제공하고 있습니다.]

String1, String2 (선택 사항)

각 프로토콜의 하위 프로토콜 카테고리.
그것을 보기 위해서, 프로토콜을 선택한 뒤 "+" 표시를 클릭하세요.



비교 연산자:

6개의 비교 연산자를 사용 할 수 있습니다:

영문 표기: C언어 표기: 의미:
eq
==
같다
ne
!=
틀리다
gt
>
크다
lt
<
작다
ge
>=
크거나 같다
le
<=
작거나 같다
논리 표현 식:

영문 표기: C언어 표기: 의미:
and
&&
논리곱
or
||
논리합
xor
^^
배타적 논리합
not
!
부정
프로그래머들이 잘 아는 "XOR"은 배타적 논리합 연산으로 사용됩니다. 두 가지 조건 사이에서 사용되었을 때, 두 가지 조건 중 오직 한가지만 만족했을 때 결과 화면에 보여집니다.
다음의 display 필터를 이용하여 예시를 보여드리겠습니다:
"tcp.dstport 80 xor tcp.dstport 1025"
목적지가 TCP 포트 80이거나 출발지가 TCP 포트 1025인 (두 가지 모두인 경우는 제외하고) 패킷이 결과로 화면에 나타납니다.



사용 예:

snmp || dns || icmp SNMP 혹은 DNS 혹은 ICMP 트래픽을 보여줍니다.
ip.addr == 10.1.1.1
출발지나 목적지의 IP 주소가 10.1.1.1인 패킷을 보여줍니다.

ip.src != 10.1.2.3 or ip.dst != 10.4.5.6
출발지의 IP 주소가 10.1.2.3이 아니거나 목적지의 IP 주소가 10.4.5.6이 아닌 패킷을 보여줍니다.
다른 말로 하자면, 화면에 보여지는 패킷은 다음과 같을 것입니다:
출발지 IP 주소 : 10.1.2.3이 아닌 모든 주소, 목적지 IP 주소 : 10.1.2.3이 아닌 모든 주소
그리고
출발지 IP 주소 : 모든 주소, 목적지 IP 주소 : 10.4.5.6이 아닌 모든 주소

ip.src != 10.1.2.3 and ip.dst != 10.4.5.6
출발지 IP 주소가 10.1.2.3이 아니면서, 동시에 목적지 IP 주소가 10.4.5.6이 아닌 패킷을 화면에 보여줍니다.
다른 말로 하자면, 화면에 보여지는 패킷은 다음과 같을 것입니다:
출발지 IP 주소 : 10.1.2.3이 아닌 모든 주소, 그리고 목적지 IP 주소 : 10.4.5.6이 아닌 모든 주소

tcp.port == 25 출발지와 목적지의 TCP 포트가 25인 패킷을 보여줍니다.
tcp.dstport == 25 목적지의 TCP 포트가 25인 패킷을 보여줍니다.
tcp.flags TCP 플래그를 가지고 있는 패킷을 보여줍니다.
tcp.flags.syn == 0x02 TCP SYN 플래그를 가지고 있는 패킷을 보여줍니다.
필터 구문에 문제가 없다면, 녹색으로 하이라이트 될 것이며, 잘못됐다면 붉은색으로 하이라이트 될 것입니다.

올바른 구문
잘못된 구문
display 필터에 대한 추가 정보는 Wireshark official websiteWiki Wireshark website에서 찾을 수 있습니다.
Posted by cyj4369
,

setsockopt(IN SOCKET socket, IN int name, IN int optlevel, IN const char* optvalue, IN int optlen);

[1] 입출력 버퍼크기의 변경

SOCKET sock = socket(PF_INET, SOCK_STREAM, 0);
int send_buf = 500;
i
nt rcv_buf = 1000;
int state = setsockopt(sock, SOL_SOCKET, SO_RCVBUF, (char*)&rcv_buf, sizeof(rcv_buf));
if(state) errorhandling("setsockopt() error");
state = setsockopt(sock, SOL_SOCKET, SO_SNDBUF, (char*)&send_buf, sizeof(send_buf));
if(state) errorhandling("setsockopt() error");
 

[2] Nagle 알고리즘의 적용 - 한번에 모아서 전송
TCP 소켓은 기본적으로 Nagle 알고림을 사용하여 한번에 모아서 전송함. 지연 발생(100~200ms).
이 옵션 사용시 리턴과 동시에 데이터 전송이 이루어지나 회선 부하가 많아짐.

int sock;
int flag = 1; // 네이글 알고리즘 off
sock = open(...);
if ( setsockopt(sock, IPPROTO_TCP, TCP_NODELAY, (char *)&flag, sizeof(int)) < 0)
{
printf("setsockopt error\n");
....
}


[3] 송/수신 TIMEOUT 설정 - 블러킹 소켓일 경우

SCOKET hSocket;
int nErrorCode;
hSocket = socket(AF_INET,SOCK_STREAM,0);
~~~~
nErrorCode = connect(~~~~~~);
~~~
// RECEIVE & SEND TIMEOUT 설정법
// hSocket이 블럭킹상태(Blocking) 일경우 해당된다. 논 블럭킹 상태(None-Blocking) 이면 recv에서 SOCKET_ERROR를 반환하고
//WSAGetLastError()로 확인 하면 WSAEWOULDBLOCK를 반환 한다. 
//WSAEWOULDBLOCK이 에러가 아니고, 다른 에러 이면 에러 코드를 참조 하여 에러 처리를 한다. 
// Receive Time Out Value : 3000 (약 3초)

int nTimeOutValue = 3000;
nErrorCode = setsockopt(hSocket, SOL_SOCKET, SO_RCVTIMEO, (const char*) & nTimeOutValue, sizeof(nTimeOutValue));
if(SOCKET_ERROR == nErrorCode){ // 에러 처리
}
nErrorCode = setsockopt(hSocket, SOL_SOCKET, SO_SNDTIMEO, (const char*) & nTimeOutValue, sizeof(nTimeOutValue));
if(SOCKET_ERROR == nErrorCode) { // 에러 처리
}
nErrorCode = send(hSocket,버퍼,전송할 버퍼크기, 0);
~~~
nErrorCode = recv(hSocket,버퍼, 버퍼크기, 0);
~~~

 

[4] 소켓 종료시 종료방식 설정

LINGER 구조체의 _onoff _linger 두개의 값에 플래그를 지정하고 setsockopt 에 설정
l_onoff = 0, l_linger = 0(또는 1) : 버퍼에 있는 내용을 모두 전송후 연결 종료한다.
l_onoff = 1, l_linger = 0 : 즉시 연결을 종료한다. 상대방에게는 FIN이나 RTS 시그널이 전달된다.
l_linger = 1 : 버퍼에 있는 내용을 모두 전송후에 연결을 종료한다. 이 동안 closesocket 은 block 된다.

LINGER opt = {onoff, linger}; // 값을 설정
setsockopt(socket, SOL_SOCKET, SO_LINGER, (char *)&opt, sizeof(opt));


[5] 소켓 비정상 종료시 재 bind 를 허용하도록 함

bind 되었던 소켓이 서버의 비정상 종료로 커널이 아직 그 정보를 갖고 있을 경우, 다시금 bind 할 수 없는 경우가 있는데, 이때 선점된 주소로 인해 bind에 실패할 수 있다. 이 옵션은 재 bind 할 수 있도록 한다.

bool reuseflag = true;
setsockop(listen_sock, SOL_SOCKET, SO_REUSEADDR, (char *)&reuseflag, sizeof(reuseflag));
 

[6] UDP 소켓을 브로드캐스트 가능하도록 설정

디폴트로 생성되는 UDP소켓은 브로드캐스트가 불가능하도록 설정되어있다. 이 소켓을 브로트캐스트가 가능하도록 한다.
 

// serverside
memset(&serverAddr, 0, sizeof(serverAddr));
serverAddr.sin_family = AF_INET;
serverAddr.sin_addr.s_addr = inet_addr(szServerAddress);
serverAddr.sin_port = htons(nPort); // 포트는 serverside 와 clientside 모두 통일
state = setsockopt(hSock, SOL_SOCKET, SO_BROADCAST, (char *)&serverAddr, sizeof(serverAddr)); 

Posted by cyj4369
,


RIP. Thank you, Jops.


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


처음 맥을 접하시는 분들이 가장 많이 하는 질문,
즉 중복이 제일 심한 질문과 가장 기초적인 것들을 짧게 정리해 보았습니다.
링크 걸어둔 글은 미처 글쓴 분의 양해를 구하지 못했습니다. 죄송합니다.
아래에 글만 다 읽으셔도 가장 기초적인 질문했다고 검색해보라는 소리에 서운하지 않아서 좋고
아울러 스텝분들은 한 답변 또하고 또하고 하는 수고 안하셔서 좋을 것 같습니다.
아래 TIP들은 정말 기초중에 기초입니다.
더 자세한 설명과 많은 자료를 원하시면 검색하시면 될겁니다.
다 카페에 있거든요^^


1. 인터넷 브라우저 관련                

2. 프로그램설치및 제거  

        

3. 부팅음(시동음) 제거         

4. 인터넷 동영상

 

5. 인터넷 강의                

6. 시작드라이브       

           

7. Wifi zone 사용            

8. 제품등록과 Serial

 

9. 생산주차 확인            

10. 프로그램 종료   

             

11. Avi파일과 자막             

12. 아이콘및 테마변경

 

13. 맥용 프로그램          

14. 싸이월드 관련     

            

15. 대쉬보드 위젯                

16. 맥용 메신저


17. 맥용 압축프로그램     

18. 맥용 영한사전          

       

19. CD굽기                      

20. 인터넷뱅킹과 결제


21. A/S 관련  및 애플 케어

22. 리모컨기능 확장          

    

23. 맥 단축키                    

24. 마우스 활용


25. 맥용 p2p               

26. 유료 프로그램(iwork) 

      

27. 부트캠프와 페러럴즈        

28. 프로그램 실행


29. 공인인증서 관련             

30. 오프라인매장 학생할인 

      

31. 로그인시 프로그램실행     

32. 맥북의 하드용량


33. 맥북 인터넷구매        

34. 부트캠프 설치 불량과 업그레이드             

  

 






1. [맥OS] 사파리로 안되는 사이트들이 너무 많아요


->네이버가 표준을 지키지 않는지라 사파리 하나만 가지고 부족한 점이 많습니다.
파이어 폭스(www.mozilla.or.kr)나 오페라(http://www.opera.com)로는 가능하니 
파이어폭스나 오페라 사이트에 들어가셔서 
무료로 다운 받으시고 확장 기능과 테마기능을 즐기신 다음 자신에 맞는 브라우저를 사용하세요.
네이버 자료실에 다 있습니다.
오페라는 그냥 영문판 설치하시면 됩니다.

 

참고로 맥용 인터넷 브라우저로는 다음과 같은 종류들이 있습니다.

각 브라우저의 장단점은 따로 리뷰를 만들어 올리도록 하겠습니다.

 

1. 사파리 (Sapari) -> http://www.apple.com/safari/download/

2. 파이어폭스(firefox) -> http://www.mozilla.or.kr/

3. 구글 크롬(Chrome) -> http://www.google.com/chrome

4. 오페라(opera) -> http://www.opera.com/

5. 카미노(Camino) http://www.caminobrowser.org/

6. omniweb ->http://www.omnigroup.com/applications/omniweb/

 

이 정도가 대표적인 맥용 인터넷 브라우져입니다.

맥용에서 브라우저 한 개로 모든 사이트를 이용하는 것이 쉽지가 않습니다.

쉬라와 플락은 더이상 브라우저 서비스를 제공하지 않습니다. 

 


2. [맥OS] 프로그램 설치와 제거는 어떻게 하죠?


->맥에는 따로 설치와 제거라는 개념이 없습니다.

dmg파일 더블클릭하시고 가상폴더가 생성되면 
거기있는 이미지를 응용프로그램 폴더로 드래그 하시면 설치가 끝나고

반대로 제거시 응용프로그램 폴더에  아이콘을 휴지통으로 가져다 버리시면 제거가 됩니다.

물론 설치후 dmg파일은 버리시고 가상폴더도 휴지통으로 이동해서 추출하시면 되요. 

압축만 푸셨다고 설치가 끝난걸로 생각하시면 안된답니다.

 

가상폴더에 있는 프로그램은 그냥 임시로 설치되어 있다고 생각하시고

응용프로그램으로 옮기면 완전한 설치가 되는걸로 생각하시면 되겠네요. 

가끔 Dmg파일을 실행했을때 설치 프로그램이 따로 있는 파일들이 있습니다.

그럼 윈도우처럼 그냥 설치파일을 실행해주시면 됩니다. 설치파일을 

이 경우에 응용프로그램 폴더로 이동시키실 필요는 없습니다.

 

프로그램 재설치시에 이미 설치가 되어있어서 설치할 수 없다고 뜨는 경우가 있습니다.

그 경우에는 프로그램 정보가 유저의 라이브러리에 남아있어서 그렇답니다.

유저 - > 라이브러리 ->Applications Support 로 들어가셔서 관련된 파일을 모두

삭제해 주신 후에 프로그램 설치를 진행하세요.

삭제시 Unistall 프로그램이 있는 어플이 있고 없는 어플이 있는데

기록이라던지 기타 정보들까지 깨끗이 지우고 싶다면

appzapper cleanapp등을 이용하여 삭제하시면됩니다.

간단히 관련 파일들을 모두 지워주거든요. 



3.[맥OS] 공공장소(도서관)에서 사용하는데 부팅음(시동음)이 신경쓰여요.


 

->컴퓨터를 켤때 띵~~하는 소리가 거슬리시다면

http://www.macupdate.com/info.php/id/16425 

여기로 가셔서 프로그램을 다운로드 받고 설치하세요.

시스템환경설정에 패널이 생길겁니다.

설치후 볼륨 및 음소거 조절을 해주시면 되요^^



4.[맥OS] 맥에서는 인터넷 동영상을 볼수 없나요?


->보통 인터넷 파일의 경우 윈도우미디어 기반의 파일(wma)파일이 대부분입니다.
마이크로소프트 다운로드 탭에 가셔서 mac/other platform 으로 들어가시면 제일 위쪽에 
Flip4mac이라고 있으니 그걸 다운 받으셔서 설치하시면 됩니다.
그리고 맥용 윈도우 미디어 플레이어도 있으니 그것도 설치해보시길~
다운로드 바로가기-> http://www.microsoft.com/downloads/Browse.aspx?displaylang=en&categoryid=5


5.[맥OS] 맥으로 인터넷 강의/주식을 하거나 들을는 없나요?


->대부분의 한국 사이트들은 MS식민지라서 엑티브엑스를 설치하여야 인터넷 강의를 
들을 수 있는데 익스플로어에서만 그게 되죠. 아쉽게도 인터넷 강의를 맥으로 들을수는 
없습니다. 부트캠프로 돌리는 수밖에 없습니다..

 

그래도 차차 맥에서도 되는 사이트나 프로그램이 많아지길 기대해 볼수도 있겠죠.
전세계적으로나 MS나 엑티브엑스 사용을 줄인다고 하니까요.

 

 


6.[맥OS] 부트캠프를 설치했더니 XP로만 부팅돼요.


->OPTION키를 부팅씨 꾹 누르고 계세요.
그리고 시작드라이버를 바꾸시려면 맥의 시스템 환경설정이나
xp의 제어판에 들어가셔서 시작드라이브를 바꿔주시면 됩니다.



7.[맥OS] 맥에서는 통신사 무선인터넷사용이 불가능한가요? 


->가능합니다. 단지 통신사 사이트에 들어가셔서 맥 어드레스 인증을 받으셔야 합니다.
통신사 i사이트 들어가셔서 로그인 하시고 맥 인증방식으로 변경하세요. 자세한 방법은 아래 링크를 참조하세요. 

엘지 유플러스의 경우에는 사용법이 설명되어 있지 않더군요.


KT 올레 -> http://wifi.olleh.com/wifi_macid.html

SK 브로드밴드 wing -> http://cs.skbroadband.com/manual/wing/chcertify.asp




 



맥 어드레스는 좌측 상단의 사과클릭 -> 시스템 환경설정 -> 네트워크->고급" 로

들어가셔서 airport 탭에서 00:17:f2:26:95:00 이런형식으로 되어있는겁니다.

":"을 제외하고 입력해 주시면 됩니다.

 


 

 


8.[맥OS] 맥북 제품 등록하려는데 시리얼번호는 어디서 알수 있나요?

 



->맥북 받으실때 상자 옆면에 적혀있습니다. 4H627...이런 형식으로 말이죠.
맥os서 확인하고 싶으시면 좌측위의 사과를 누르시고 이 매킨토시에 관하여에 
들어가신뒤 버젼을 두번 클릭하시면 일련번호가 나옵니다.
제품등록은 애플 홈페이지 맨 아래쪽을 찾아보시면 등록하는 곳이 보일거예요.



9.[맥OS] 구입한 제품이 몇년도 몇주차인지 어떻게 확인할 수 있나요?


->위에서 확인한 시리얼 번호를 보면 4H627..이런 형식으로 되어있는데 6은 생산년도이고 
그다음은 두자리 숫자가 몇주차인지 나타내어줍니다.

가령 위의 시리얼의 경우 2006년 27주차 제품이 되겠죠.



10.[맥OS]창을 완전히 닫았는데 프로그램이 종료되지 않습니다.


->맥에서 프로그램을 완전히 종료하기 위해선 cmd(좌측사과버튼) +Q 을 입력하셔야 합니다.

단순히 창을 닫을 때는 cmd(좌측사과버튼) + W,

새창을 열 때는 cmd(좌측사과버튼) + N

새탭을 열 때는 cmd(좌측사과버튼) + T

새로고침의 경우는 cmd(좌측사과버튼) + R입니다.


 

 

11.[맥OS]퀵타임에서 AVI파일이 재생되지 않습니다.


->퀵타임에서 AVI (DIVX)파일은 완벽하게 지원되지 않습니다.

화면에 깨지면서 소리가 나지않는 경우가 대표적이죠. 

무비스트Mplayer나 VLC를 다운 받으시길 바랍니다.

그리고 Avi를 퀵타임에서 재생하기위한 코덱들은 아래 링크에서 다운받으세요.

물론 아래 코덱들도 일정한 파일 재생할때만 읽을 수 있습니다.

3vix -> http://www.3ivx.com/download/macos.html

AC3 -> http://mac.softpedia.com/get/Audio/AC3-Codec.shtml

Xvid -> http://osx.iusethis.com/app/xvidquicktimecomponent



12.[맥OS] 맥에서 아이콘과 테마를 변경하고 싶은데 어떻게 하죠?

 

 



->일단 아이콘을 다운로드 받으시고 압축을 푸신후 아이콘을 베끼기(cmd+c)하시고
변경할 파일 클릭후 정보입수 하신다음 위쪽에 작은 아이콘을 클릭하시뒤 붙여넣기(cmd+v)를 하시면 됩니다.

아이콘을 다운 받으시고 싶으면 http://interfacelift.com 을 추천합니다.

윈도우용 맥용 아이콘과 배경이 아주 많습니다. 그리고 시스템과 관련된 프로그램의

아이콘(파인더나 대쉬보드, 휴지통)은 캔디바라는 프로그램을 설치하셔야 됩니다.
상용프로그램이므로 개인적으로 구하시길.


배경화면은 바탕화면을 우클릭하시면 데스크탑 배경화면 변경에서 배경화면과 화면보호기를 

바꾸실 수 있습니다. 


그리고 맥의 테마 변경프로그램인 shapeshifter이용해서 테마를 바꿔줄 수 있습니다.

15일동안  무료로  체험이 가능하고 그후 20달러에 구매가 가능합니다.

관련 테마는 위 사이트에서 역시 다운로드 받을 수 있습니다.

프로그램 다운로드는 아래 사이트에서 가능합니다.

http://www.unsanity.com/haxies/shapeshifter

 

참고로 기존 아이콘 변경 프로그램인 캔디바가 shapeshifter 2.4버젼에서 안 먹힙니다.

시스템 환경 설정에서 실행시킨후 exclude리스트에 캔디바를 추가시킵니다. 

또 shapeshifter 2.5 는 레오팟에서는 적용이 되지 않습니다. 다음 버젼을 기다리셔야할 듯.

 


13.[맥OS] 윈도우용 포토샵이나 한글은 맥에서 못 쓰나요?


->네. 맥용 포토샵이나 맥용 한글은 따로 있습니다. 
스타크래프트 역시 맥용 스타크래프트가 따로 있습니다.
MS 오피스 프로그램도 맥용이 따로있는데 속도면에서 불만이 많은

것으로 알고 있습니다. 윈도우 프로그램은 맥에서 전혀 돌아가지 않는다고 생각하시면 됩니다. 

".exe"의 확장자를 가진 파일은 무용지물이고 ".dmg"형식의 확장자를 가진 파일이 맥 전용입니다.


아실지 모르겠지만 PPT 파일은 Iwork의 Keynote로 돌아가고

워드 파일은 Page, 액셀은 Numbers로 간단히 작업할 수 있습니다.

한글은 2006년판 MS 오피스는 2008년판이 최신인걸로 알고 있습니다.


한글과 컴퓨터에서 제공하는 한컴오피스 맥용 한글뷰어와 오피스 뷰어를 아래 사이트에서 

다운로드 받으실 수 있습니다. 

http://www.hancom.co.kr/downLoad.downView.do




14.[맥OS] 싸이월드나 블로그의 배경음악이 나오지 않아요. 미니홈피도 잘 보이지 않습니다.


->

싸이월드의 경우 웹표준을 지키는게 아니라서요.뭐 다른 사이트들도 마찬가지입니다.

미니홈피나 블로그의 배경음악은 액티브엑스를 사용하기 때문에 맥에서 재생되지 않습니다.

싸이월드 네이버에 무수한 배경음악을 가진 분들께 심심한 위로의 말씀을 드립니다.


파이어폭스에서 배경음악을 들을 수 있지만 그건 어디까지나 윈도우용 

파이어폭스일 경우입니다. 윈도우용 파이어폭스 플러그인이 나왔지만 

맥에서 파이어폭스를 쓸땐 지원하지 않습니다. 

 

파이어폭스 부가기능 설치하러가기

-> https://addons.mozilla.org/ko/firefox/




15.[맥OS] 대쉬 보드 위젯은 어디서 다운받고 설치/제거는 어떻게 하나요?


위젯은 애플 홈페이지의 OS X탭에서 Downloads로 들어가시면 수천개의 위젯이 있고 
다운 받으셔서 더블클릭하신후 설치하시면 대쉬보드에 설치됩니다.
대쉬보드 창에서 지우시려면 옵션키를 누르면서 마우스를  위젯에 대면 왼쪽위에 X표시가 나오고 
위젯을 관리하시려면 좌측 아래쪽에 +키를 누르시면 됩니다.
완전히 삭제하고 싶으시면 맥 하드에서 사용자이름/라이브러리/위젯으로 들어가시면 
파일들이 있습니다.


대쉬보드 위젯설치와 관련된 아랫글을 참고하세요~

http://cafe.naver.com/inmacbook/1496


그리고 XP에서도 비슷한 효과를 내고 싶으시다면 야후 위젯을 다운 받으세요.

자세한 설명은 아랫글을 참고.

http://cafe.naver.com/inmacbook/10638



 


16.[맥OS]맥용 매신저는 어떤것이 있고 네이트온이 가능한가요?


->네이트온은 현재 오픈베타 서비스 중입니다.
맥용과 리눅스용이 나왔습니다.

문자서비스도 가능하며 기존의 오프라인 버그등도 

수정되었습니다. 

[맥용 네이트온 다운로드]

 

 

다른 메신저로는 맥용 MSN이 제일 무난합니다.

윈도우에서 만큼의 기능 (화상, 문자)등은 지원되지 않습니다.
MSN홈페이지에서 맥용으로 다운로드 받으세요.

카테고리탭에서 맥이나 Other Playforms을 선택하시면 됩니다.

[MSN다운로드 바로가기]


그리고 아이챗과 스카이프가 많이 사용됩니다. .MAC은 유료(60일체험)지만 그 이후에도 아이챗은 무료입니다.

맥사용자만 이용가능하구요. 스카이프의 경우 전세계사람들이 가장 많이 사용하는 화상채팅 프로그램중에 
하나입니다. 인터넷 전화기능도 겸하고 있구요. 아래로 들어가보세요.

[맥용 스카이프 다운로드]

 

 

저는 개인적으로 Adium 이란 메신저를 추천해드리겠습니다. 스카이프, 엠에센, 구글톡, 아이챗, 네이트온

한꺼번에 돌릴 수 있는 통합메신저입니다. 그리고 인터페이스나 기타 아이콘을 개인 취향에 맞게 꾸밀 수

있다는 점에서 매력적이라고 생각합니다. 단점이라면 네이트온의 경우 싸이월드연동, 아이책이나 스카이프 경우

화상 음성 채팅등이 지원되지 않는다는 거죠.

 

[Adium 다운로드] [Adium 관련 각종플러그인] 




17.[맥OS] 맥에서 압축 프로그램은 어떻게 푸나요???


->Stuffit expander라는 프로그램이 있습니다. Stuffit deluxe라는 프로그램을 찾아보세요.

물론 기본적으로 파일을 우클릭하면 기본프로그램으로 풀 수 있습니다. 


알집용 압축해제 프로그램이던  코코알은 더이상 사용이 불가능하며 

최근 각광받는 무료 압축해제 프로그램으로 The Unarchiver가 있습니다.

http://wakaba.c3.cx/s/apps/unarchiver.html




18.[맥OS]응용프로그램의 사전은 영영사전이던데 영한 사전은 없나요?


코코아사전을 가장 많이 이용하고 계신데 작년에 나온 코코아 사전은 Mac OS X 10.6 스노우 레퍼드에서만 작동한다고 합니다. 아래 링크를 참조하세요.


http://www.hanminsuk.com/?p=122


이외에 한영/영한 사전을 사용하는 방법에 대한 tais9님의 포스팅이 아래 주소에 있습니다. 도움이 될 것입니다. 

http://tais9.tistory.com/526




19.[맥OS]맥에서는 CD를 어떻게 굽나요? 구운시디를 윈도우에서 쓸 수 있나요?


->맥자체의 레코딩기능을 이용하셔도 됩니다. 디스크 유틸리티를 이용하셔서 이미지를 만드신 후에

CD로 구우시거나 시디롬에 공CD를 넣으면 초기화메세지가 나오고 초기화를 하면 데스크탑에 아이콘이

생성이 됩니다. 이 아이콘에 레코딩할 폴더나 파일을 드래그해서 넣으신 다음 그아이콘을 휴지통에

드래그하면 레코딩여부를 묻게 됩니다.

 

그리고 Toast Titanium 이라는 프로그램을 사용하시면 손쉽게 구우실 수 있습니다.

프로그램을 열고 구울 파일을 불러오거나 드래그 해주고 우측 하단의 빨간 버튼을 눌러주면 끝이죠 ^^

윈도우 겸용여부는 프로그램에서 선택하실 수 있습니다. 한글이름명으로 구우시면 윈도우에서 깨져서 읽습니다.
최신버젼은 Toast Titanium 11 입니다.  관련사이트는 http://www.roxio.com 입니다.

 

무료 레코딩프로그램도 있습니다.YuBurner라는 프로그램입니다. 
http://www.macupdate.com/info.php/id/12905



20. [맥OS]맥에서의 인터넷 결제와 인터넷 뱅킹이 가능한가요?


->맥에서 인터넷 뱅킹은 현재 신한은행, 외환은행이 지원하고 있습니다. 

타 은행의 경우 공인인증서등의 문제로 맥에서 사용이 불가능하고 
인터넷 카드결제 역시 일부 카드사에 제한되어져있습니다.


결제시 VMware나 페러럴즈 혹은 부트캠프를 이용하서야 하고

VMware등에선 인터넷결제가 거의 잘 되지만 부트캠프 이용시 안심결제등 일부
결제프로그램은 애플키보드서포트와 부딪혀 오류를 발생시킵니다.
키맵핑 프로그램과 키보드 보안프로그램간에 충돌일 가능성이 있습니다. 

부트캠프나 페러럴즈나 키보드 관련된 액티스엑스를 설치하실경우 부트캠프에서 

제공하는 애플관련 드라이버가 정상적으로 동작되지 않을 가능성이 큽니다.

이경우 엑티브엑스를 삭제하고 드라이버를 재설치해야 하거나 관련 프로그램을 계속 쓸 

경우 부트캠프의 완벽한 지원이 어려울 수 있습니다. 
 

신한은행: http://www.shinhan.com/

외환은행: http://www.keb.co.kr

 


21.[맥OS]한국에서 맥북을 샀는데 미국에서 서비스가 가능할까요? 애플 케어는 뭔가요?


->애플은 전세계 서비스보장입니다. 애플 서비스센터가 있는 곳이라면 
어디던 가능합니다. 물론 회화가 되야겠죠 ㅎㅎ


애플 케어는 맥북 구매시 1년의 보증기간과 90일간 전화서비스 기간을 3년으로 늘려주는 서비스 상품입니다. 

구입은 제품 보증기간 1년이 지나기 전에 하셔야 합니다. 혹은 구입시에 함께 주문하여 자동등록하는 것도 가능합니다.

전자제품이니 만큼 언제 고장이 날지 모르고 애플 제품의 경우 

수리하는 곳이 많질 않고 서비스센터가 적으니 구매하는 쪽이 좋다고 생각합니다.

물론 사용자 본인의 과실로 인한 고장이나 파손까지 보장되는건 아닙니다.

또한 애플케어의 유무가 노트북을 되파실때 중고가에 큰 영향을 주기도 합니다.

<<자세한 사항 참조>>



22.[맥OS] 리모컨의 기능은 고작 음악, 동영상, 사진을 보는것 뿐인가요?


->아닙니다. 프로그램에 의한 확장이 가능합니다.
Remote buddy라는 프로그램은 이용하시면 됩니다. 30일 체험판을 
쉽게 구하실 수 있을겁니다. 30일 이후에는 상용판을 구매하셔야합니다.
http://www.iospirit.com/products/remotebuddy/


그리고 Sofa control이란 프로그램이 있습니다.역시 상용프로그램입니다. 

전 리모티버디보다 이 프로그램이 조금 더 낫더군요.

http://gravityapps.com/sofacontrol/index.html




23. [맥OS] 한영키가 없는데 맥에서 한영변환은 어떻게 하나요?


-> cmd(좌측 사과)+ 스페이스바입니다. 더 많은 단축키가 궁금하시면 아래글을 참조하세요.
http://cafe.naver.com/inmacbook/1133

한자입력은 글자에 밑줄 쳐진 상태에서 option키를 누르시고 엔터키를 누르시며 되고
하트나 별모양등 특수문자는 화면 우측 상단의

언어부분을 클릭하시면 문자팔레트를 불러와 입력하실 수 있습니다. 

24. 마우스 활용

 

맥의 매력적인 기능 중 하나는 마우스 만으로 할 수 있는게 많다는 겁니다.

가령 링크가 걸려있지 않는 주소는 번거롭게 주소창에 복사 - 붙여넣기 할 필요없이 

선택한 뒤에 마우스로 주소창에 드래그 해주면 됩니다. (우클릭으로 링크로 바로 이동하는 기능도 있습니다)
그리고 반대로 사이트 주소를 연결창으로 드래그 해주면 연결창에 자연스레 북마크가 됩니다. (윈도우도 되죠^^;;)

 

이런 주소뿐 아니라 싸이월드나 네이버 등에서 사진 및 그림들(스크랩 금지된 것 포함) 역시

번거롭게 우클릭으로 저장하실 필요없이 클릭후 바탕화면이나 원하시는 폴더로

드래그 해주시면 저장이 됩니다. 일부 동영상 역시 이런 드래그 만으로 저장이 되기도 하더군요.

   

그리고 오페라나 파이어폭스등 브라우저에서는 익스플로어와 달리

마우스 좌버튼 누른 상태에서 우버튼 클릭시 앞으로 가기.

마우스 우버튼 누르 상태에서 좌버튼 클릭시 뒤로가기 등 여러가지 기능이 됩니다.

파이어폭스는 마우스 제스처를 설치해 더 많은 기능을 이용하실 수 있고

오페라 역시 환경 설정 - 고급설정에서 마우스 제스처 기능을 설정하실 수 있습니다.

 

 


25.[맥OS]  맥용 P2P 프로그램으로는 어떤게 있나요?


일단 한국사이트 중에 아이팝과 폴더플러스과 맥용 다운로드 프로그램을 제공하였으나 사용자 저조로 더이상 맥용 다운로드 프로그램을 제공하지 않습니다. 


맥용 다운로드 프로그램에 관해 잘 정리된 포스팅이 있어 아래에 첨부합니다. 


http://blog.missflash.com/671

 

그리고 개인간의 파일이동으로 픽짜라는 프로그램을 추천해드리겠습니다.

개인간의 파일 전송이나 그룹간의 파일 공유에 이만한 프로그램이 없다고 생각합니다.

픽짜 역시 사용자 저조로 더이상 유료 서비스를 제공하지 않는다고 하네요. 

http://www.piczza.com/


초창기 맥용 P2P프로그램들이 증가하는 추세였으나 자리를 못 잡고 결국 다 사라지는 것 같아 씁쓸하네요. 

 


26.[맥OS]  맥에 깔려있는 프로그램들이 인증번호를 요구하네요 ?? -_-


->번들로 깔려있는 퀵타임이나 키노트 같은 경우는 기능이 한정적입니다. trial 버젼들이죠. 
모든 기능을 이용하기 위해서 구입을 하셔서 인증번호를 입력해야 합니다.
Serial 번호를 가르쳐주세요라는 질문은 사양하겠습니다.


 

27.[윈도우즈] 윈도우는 부트캠프로 밖에 못 돌리나요? 

 

->아닙니다. 부트캠프외에 페러럴즈와 Vmware크로스오버라는 프로그램이 있는데

재부팅 없이 맥상에서 윈도우즈를 이용할 수 있습니다.

페러럴즈나 브이엠웨어의 경우 맥상에서 윈도우창을 새로 띄우고

크로스 오버의 경우는 그냥 맥 화면 위에 윈도우 프로그램을 띄워주는데

한글지원도 되지 않고 아직까지는 베타버젼입니다.

페러럴즈나 Vmware를 무난히 실행시키기 위해서는 램이 2G정도 

되는 것이 좋습니다. 그리고 일부 프로그램이나 동영상의 경우 

부트캠프만큼 잘 실행되지 않기도 하구요. 맥OS가 실행된 상태에서 XP를 돌리는 것이기 

때문에 당연히 부트캠프만큼의 성능을 기대하기 어렵습니다.

 

페러럴즈 관련 리뷰는 "치우"님이 올려주셨습니다.

http://cafe.naver.com/inmacbook/2148

 

Vmware는 댄지(dandy35)님이 올려주셨습니다.

http://cafe.naver.com/inmacbook/7992

 

부트캠프 설치는 아랫 링크를 참조하세요. (출처 :파스텔님)

http://kmug.co.kr/board/zboard.php?id=review&no=17    




28. [맥OS] 프로그램을 실행했는데 창이 안 떠요.

 

->일부 프로그램의 경우 (크로스오버등) 그럴 수 있습니다.

작업 표시줄을 보면 파인더에서 실행프로그램으로 바뀌어있을겁니다.

새로운 작업이나 파일을 오픈하시면 아마 프로그램이 실행될 겁니다.

브라우저의 경우 프로그램은 실행중이나 창을 모두 닫았을때 

커맨드 + N이나 Dock의 아이콘을 클릭하면 다시 창이 뜹니다. 

 

29. 공인 인증서 관련.


앞서 말씀드렸듯이 현재 맥을 지원하는 은행은 신한은행,외환은행뿐입니다.

은행 홈페이지 들어가시면 맥 유저들을 위해 인터넷 뱅킹 프로그램을 다운 받을 수 있도록 나옵니다.


문제는 맥에서 인터넷 뱅킹을 위해 공인 인증서를 등록하면 XP에서 타컴퓨터에

인증서가 이미 설치된 것으로 인식되기때문에 맥용 인터넷 뱅킹을 실행하시고 공인인증서 관리로 들어가서

공인인증서 내보내기 하시고 메일 등을 통해 이 인증서를 윈도우로 보내시고 타 은행 인터넷 뱅킹 프로그램을

실행시키시거나 접속하신후 역시 공인인증서 관리에서 이 인증서를 가져오기 하시면 됩니다.

반대의 경우도 마찬가지로 하시면 되겠죠.

 

30.[기타]  a# 이나 백화점 애플 전문매장등 오프라인 매장에서도 학생할인이 가능한가요?

 

->애플의 학생할인은 온라인 매장에서만 가능하며 할인율은 대략 5%~10%입니다.

교직원과 대학(원)생도 해당되며 학생증 사본(팩스, 스캔)을 요구할 수도 있습니다.


참고로 아이팟 제품군은 교육용이 아닌지라 학생할인 품목에서 제외됩니다.


학생할인을 받으실 예정이라면 1년에 두번정도 신상품 출시전에 있는아카데미 프로모션을 이용하여

맥과 아이팟을 조금 더 싸게 구매할 수 있는 기회가 있으니 눈여겨 보세요.

 

<<교육할인 관련정보>>

 

31. [맥OS] 로그인시 프로그램이 자동실행되지 않도록 하고 싶어요. 

 

->아마도 프로그램을 "로그인시 열기"로 지정해두셔서 그런걸 겁니다.

Dock에 있는 아이콘을 몇초간 클릭하시거나 우클릭하셔서 "로그인시 열기"에 체크되어 있는 것을

해제해 주시면 됩니다.반대로 컴퓨터를 실행시 항상 불러오고 싶은 프로그램이 있다면 (메신저등)
로그인시 열기로 체크해두면 되겠죠^^


강제종료의 경우는  맨위 좌측의 사과 버튼을 누르면 시스템 강제종료가 있습니다.

단축키는 opt + command + Esc 구요. 

 

32. [맥OS] 맥 구매시 용량과 실제 용량에 차이가 있어요.

 

->맥 OS인 레오팟의 용량이 대략 20GB정도 차지합니다. 필요없는 프로그램은 과감히 지우시는게 좋습니다.

또는 설치시 선택하실 수도 있구요.설치시 다국어와 번들 소프트웨어등을 체크하시면

10기가 이상을 줄이실 수 있습니다.물론 차후에 필요하시다면 소프트웨어만 설치도 가능합니다.  

본인이 사용하지 않는 프로그램이나 드라이버들을 삭제하시면 하드용량이 훨씬 늘어날 것입니다.

 

 

33.[기타] 인터넷에서 파는 맥북이 너무 싼데 믿고 사도 될까요?

 

->기본적으로 애플은 정가제입니다. 할인쿠폰이나 이벤트에 의한 할인을 가능하지만 지나친 할인은 의심해볼만합니다.

GS나 Lotte, 신세계 이런 대형 인터넷 쇼핑몰의 경우야 설사 사기라도 환불이나 교환이 보장되지만

소규모 사이트 경우에는 신뢰하지 않는 것이 좋습니다.실제로 사기를 당한 사례도 있습니다.

쇼핑몰에서 사실때는 홈쇼핑 맨 하단에 있는 사업자 등록번호를 조회해 보세요.

국세청 홈페이지 메뉴 세번째에 조회,계산을 클릭하시면 중간에"사업자유형/휴폐업조회"가 있습니다.

없는 번호거나 생긴지 얼마 안된 사이트라면 절대 구매하지 마세요. 사기당할 확률이 100%입니다.

그리고 맥북 사실때 10%퍼센트 이상으로 싼 가격이라면 한번쯤 의심해 보는것이 좋습니다.


또 용산이나 테크노마트에 가실땐 인터넷으로 사양과 최신 모델 넘버를 알아가시는게 좋습니다.

처음 구입하시는 분들은 아무래도 애플제품에 대해 잘 모르실테고 맥북은 구제품이나 신제품이나

디자인이 똑같은 만큼 구모델로 사기치는 용팔이나 테팔이들이 있어서요. 조심하시길 바랍니다.

  


34. [윈도우] 부트캠프 설치 불량과 업그레이드


->일단 가장 먼저 의심해볼만 한 부분은 윈도우가 정품이냐는 겁니다. 정품이 아니라면

당연히 제대로 설치되지 않을 가능성이 있습니다.될 수 있는한 정품 씨디를 구매하시거나

부득이한 경우 지인에게 대여하여 사용하시고 혹은 어둠의 경로를 이용해 다운받아 사용하시는 경우 
사용자가 임의로 변경한 이미지가 아닌 깨끗한 이미지를 사용하시기 바랍니다

간혹 설치시 윈도우에서 serial키 요구한다는 분들이 있는데 포맷하고 까셔야해요.

프로그램 깔듯 설치하면 안됩니다.


부트캠프 설치후 인터넷이나 그래픽,사운드,블루투스등의 사용을 위해서 드라이버를 설치해 주어야 하는데

맥 구입시 받은 OS 설치시디 중에 1번 CD를 시디롬에 넣어주면 자동으로 설치해줍니다. 설치CD가 없는 경우에는

드라이버 파일이나 파일이미지를 구하신 이후에 데몬 등을 이용하여 실행시켜주시면 됩니다.


타이거 유저의 경우 드라이버씨디를 굽기 귀찮으신 분들은 다음 방법을 이용하여 손쉽게 업그레이드 하실 수 있습니다.
"응용프로그램-> 유틸리티 -> 부트캠프 우클릭하여 
패키지내용보기 -> contents -> Resources -> Disk image실행하시면

파일들이 뜨는데 거기서 setup.exe 파일과 Driver 폴더 두개를 함께 XP 드라이브의 임의 폴더로 복사" 하신 후 
XP로 부팅하셔서 setup.exe 파일을 실행시켜 주시면 됩니다. (부트캠프 1.3부터 바뀌었음)

 

Posted by cyj4369
,