[Linux] Crontab
[Linux][Ubuntu] 설치후 기본 서버 세팅
ROOT password setup
[Java Code Sample] Save Image
[Java Code Sample] String to Blob..
public String byte2HexStr(byte pByte)
{
StringBuffer sb = new StringBuffer();
for (int i = 0; i < 2; i++) {
int tInt = (pByte >> 4 * (1-i)) & 0x0f;
if (tInt > 9) sb.append((char)('A' + (tInt - 10)));
else sb.append((char)('0' + tInt));
}
return sb.toString();
}
public String byteArray2Blob(byte[] pByteArray)
{
String rv = null;
if (pByteArray != null)
{
StringBuffer sb = new StringBuffer("X'");
for(int i = 0; i < pByteArray.length; i++)
{
sb.append(byte2HexStr(pByteArray[i]));
}
sb.append("'");
rv = sb.toString();
}
return rv;
}
public String str2Blob(String pStr)
{
String rv = null;
if (pStr != null)
{
byte[] tByteArray = pStr.getBytes();
rv = byteArray2Blob(tByteArray);
tByteArray = null;
}
return rv;
}
MySQL Dump (백업 및 복구)
- Dump (Backup 및 Migration)
[전체 Dump]
Usage : #> mysqldump -u{userid} -p{password} DatabaseName > file_name.sql
ex) mysqldump -uroot -proot!@# dev_db > dev_dump.sql
[Table Dump]
Usage : #> mysqldump -u{userid} -p{password} DatabaseName TableName > file_name.sql
ex) mysqldump -uroot -proot!@# dev_db board > board_dump.sql
- 복구
[전체 Dump 했을 경우]
Usage : #> mysql -u{userid} -p{password} DatabaseName < file_name.sql
ex) mysql -uroot -proot!@# dev_db < dev_dump.sql
[Table Dump 했을 경우]
Usage : #> mysql -u{userid} -p{password} DatabaseName TableName < file_name.sql
ex) mysql -uroot -proot!@# dev_db board < board_dump.sql
이 자료는 negafix 님 블로그에서 퍼왔습니다. (http://negafix.tistory.com/27)
데이터 타입에 대한 정리.. LPSTR, LPCSTR, LPTSTR, LPCTSTR, LPWSTR, LPCWSTR..
다른 사람이 블로그에 정리한 내용을 보고 내용이 명확해 진거 같아서 정리를 해보겠습니다..
원래 C와 C++ 에는 string 이라는 자료형이 없기 때문에,
문자열을 표현하기 위해서는 char * 형을 쓰는 것이 일반적인데,
유니코드나 utf 형식의 인코딩이 등장하며 이러한 문자열의 표현이 더욱 복잡해 지고 있습니다.
일단 위의 자료형들을 이해하기 위해서는 기본 자료형에 대해 이해를 하고 잘 끊어 읽으시면 됩니다.
먼저 기본 자료형을 살펴보면,
LP : long pointer
C : constant
STR : string
TSTR : tstring
WSTR : wstring
LP는 long pointer 를 뜻하는데, 너무 어렵게 생각하지 말고 그냥 포인터라고 생각합시다.
(컴파일러의 버전에 따라 포인터가 가리키는 데이터형이 16bits 에서 64bits 까지 왔다갔다 하지만 그냥 포인터로 생각..)
C는 constant 를 의미하며, 함수의 내부에서 인자값을 변경하지 않는다는 것이고요,
STR은 string 으로써 끝에 null 값으로 종료하는 char형 배열을 의미합니다.
위의 내용을 바탕으로 위의 자료형들을 해석해 보면,
LPSTR = long pointer string = char *
LPCSTR = long pointer constant string = const char *
그러면 과연 wstring 과 tstring 은 무엇인가 하는 것인데..
wstring 은 대충 봐도 알겠지만, wide char * 입니다.
유니코드 문자들을 표시하기 위한 데이터 타입이라고 생각하면 되고요,
마지막으로 tstring 은 무엇이냐 하면, 매크로입니다.
컴파일러에 따라 char *혹은 wchar * 로 맵핑해주는 매크로.
위의 설명은 대략 개념을 잡기 위한 것들이고,
실제로 프로그래밍 할 때에는 LPSTR 과 char * 가 완전히 같은 것은 아니기 때문에 형변환이 필요할 때에는 캐스팅을 해서 사용을 해야합니다.
그럼~
WIPI BILLCOMM 헤더 & WIGCS 헤더..
typedef struct {
M_Int32 iPacketLength; /* 패킷의 전체 길이 */
M_Char achApplicationID[10]; /* 단말기 애플리케이션의 Application ID */
M_Char achApiVersion[10]; /* API 버전 */
M_Char achExtVersion[10]; /* 확장 인터페이스 버전 */
M_Char achHandSet[10]; /* 단말기 모델명 */
M_Char achMin[16]; /* 단말기 전화번호 */
M_Char achChannel[ 2]; /* 현재 통신 중인 네트워크 */
M_Char achSid[ 5]; /* 통신 중인 System ID */
M_Char achNid[ 5]; /* 통신 중인 Network ID */
M_Char achBid[ 5]; /* 통신 중인 Base ID */
M_Char achBestPN[ 5]; /* 통신 중인 Best ID */
M_Uint16 usDestPort; /* 목적지 포트 번호 */
M_Uint32 uiDestIP; /* 목적지 IP 주소 */
M_Uint32 iSockConnTime; /* 소켓 연결 시각 */
M_Char achQoS[ 5]; /* 서비스 품질 측정 패킷 유형 */
M_Char achMnc[ 2]; /* Mobile Network Code */
M_Char achReserved[ 9]; /* 예약 영역 */
} WIPI_BILLCOMM_HEADER;
typedef struct {
int iSignature1; /* 전송할 패킷 데이터의 헤더 구분 필드 */
char achContentsId[12]; /* 전송할 패킷 데이터의 과금 정보 */
char achChargNumber[16]; /* 과금 전화 번호 */
int iSMFlag; /* 시그널 매니지먼트 플래그 */
char achResv [12]; /* 예약 영역 */
unsigned int uiLen; /* 헤더를 제외한 실제 데이터 크기 */
char achSignature2[ 4]; /* 전송할 패킷 데이터의 헤더 유형 필드 */
} WICGS_HEADER;
내 맘대로 PHP 강좌 3 - 폴더 리스트 얻어오기
내 맘대로 PHP 강좌 2
순서가 뒤죽박죽이 될 것입니다.
오늘은 언어 인코딩에 대해서 이야기해 보겠습니다.
PHP를 사용하는 경우 APM 등을 이용하여 Apache, MySQL을 같이 사용하는 경우가 많습니다. 언제 부터인가 다국어 지원에 대한 이슈가 논의되면서 MySQL은 기본 설정이 utf-8 로 되고, 한국어를 쓰기 위해서 서버 설정을 euc-kr 등으로 변경을 해줘야 하는 번거로움이 있었습니다.
다국어를 다루는 것은 상당히 귀찮은 일입니다. ASC 부터 유니코드를 거쳐 utf-16 에 이르기까지 수많은 인코딩 방식이 있는데, 이것은 마치 메모리를 절약하기 위한 자리수 표시 방식이 밀레니엄 버그의 원인이 되었던 것처럼 효율적인 메모리 사용을 통한 지역별 언어 설정이 프로그래밍을 상당히 귀찮게 해주고 있습니다.
언어셋에 대한 부분은 나중에도 다룰 예정이므로, 오늘은 아주 간단한 form 전송시 사용이 가능한 간단한 utf-8 예제를 살펴 보도록 하겠습니다.
먼저 form 전송시에 utf-8 로 인코딩을 하기 위해서는 form 태그에서 아래와 같이 accept-charset을 utf-8 로 설정해 줍니다.
<form method=post action=target.php accept-charset='UTF-8'>
그리고 html 헤더에 다음의 코드를 삽입하게 되면, utf-8로 인코딩 된 페이지가 제대로 나타나게 됩니다.
<meta http-equiv='Content-Type' content='text/html;charset=utf-8'/>
사용에 대한 예제는 아래 페이지를 참고하시면 될 듯 하고요. 아래 페이지에서 이야기하는 서블릿상에서의 utf-8 인코딩이 바로 위의 메타태그를 사용하는 것입니다.
http://www.razorvine.net/test/utf8form/utf8pageform.html
설명을 하다보니 PHP 에 대한 내용이라기 보담은 html 에 대한 내용이 되어버렸네요..
대신 meta 태그를 위와 같이 설정하면 PHP 코드상에서의 한글 등의 문자가 깨져서 나오게 됩니다. 한글 출력시에는 iconv 를 이용해서 출력을 해주면 됩니다. 제가 쓰는 아주 간단한 인코딩 함수 입니다.
function getUTFString($str)
{
return iconv("CP949", "UTF-8", $str);
}
이 정도의 설정만으로도 웹상에서의 다국어 지원 부분이 어느 정도 쉽게 해결이 될 것이라 생각됩니다. 나중에 AJAX 사용시에 넘겨주는 인자를 인코딩하는 방법과 결과값을 받을 때 사용하는 인코딩에 대해서 정리해 보도록 하겠습니다.
그럼~