x = i++;


선증가가 아닌 위와 같이 후증가로 코드를 작성하면 

증가 함수가 i의 원래 값에 복사본을 만든 뒤 i를 증가시키고 원래의 값을 반환,

임시 객체의 생성을 야기시켜 속도가 느려진다고 한다.


요즘엔 컴파일러 최적화가 잘 되어 있어 ++i, i++이나 속도 차이가 없다고 한다.






Yaw, Pitch, Roll에 대한 이해를 돕기 위한 그림입니다.


'라이브러리 > OpenGL' 카테고리의 다른 글

GLUT - The OpenGL Utility Toolkit (유틸리티 툴킷)  (0) 2014.09.16



제 블로그의 경우 유입량의 80% 이상이 네이버에서 들어오는데

검색이 누락될 때가 있고, 이럴 경우 투데이에 상당한 영향을 끼치게 됩니다 ㅠㅠ


검색어 순위에서 밀리는 경우는 있었어도 

세상에 원래 없던 글 처럼 아예 검색조차 안되는 경우가 있는데,

이럴 때는 네이버 고객 센터에 문의 됩니다.


"네이버 고객 센터"를 검색합니다.


"신고 센터" 클릭합니다.


"장애/오류 신고하기" 클릭합니다.


"블로그", "문의하기"를 차례대로 눌러줍니다,


내용을 작성해 줍니다.

작성할 때는 누락된 게시글의 URL을 꼭 기재하셔야 합니다.

내용은 있는 그대로 적어 주시면 됩니다.



며칠 후에 처리결과가 메일로 옵니다.




※요약

isalnum : 문자가 숫자 0~9나 대문자 A~Z, 소문자 a~z에 속하는지 검사합니다.



※함수 원형 및 설명

int isalnum( int c );
//c : 검사할 문자 또는 아스키 값
//반환값 : 문자가 숫자 0~9나 대문자 A~Z, 소문자 a~z에 속하면 true, 아니면 false



※예제

#include <stdio.h>
#include <ctype.h>

int main( )
{
	bool bCheck = false;
	char strTemp[] = "2T3y4J";

	bCheck = isalnum( '3' );
	printf( "%s\n", bCheck ? "True" : "False" );

	bCheck = isalnum( 97 );		//97은 문자로 'a'
	printf( "%s\n", bCheck ? "True" : "False" );

	bCheck = isalnum( strTemp[1] );
	printf( "%s\n", bCheck ? "True" : "False" );

	bCheck = isalnum( '3' );
	printf( "%s\n", bCheck ? "True" : "False" );

	bCheck = isalnum( '*' );
	printf( "%s\n", bCheck ? "True" : "False" );

	return 0;
}




※요약

isupper : 문자가 대문자 A~Z 사이에 속하는지 검사

islower : 문자가 소문자 a~z 사이에 속하는지 검사

isalpha : 문자가 대소문자 A~Z, a~z에 속하는지 검사



※함수 원형 및 설명

int isupper( int c );
//c : 검사할 문자 또는 아스키 값
//반환값 : 문자가 A~Z 사이에 속하면 true, 아니면 false

int islower( int c );
//c : 검사할 문자 또는 아스키 값
//반환값 : 문자가 a~z 사이에 속하면 true, 아니면 false

int isalpha( int c );
//c : 검사할 문자 또는 아스키 값
//반환값 : 문자가 A~Z나 a~z 사이에 속하면 true, 아니면 false


※예제

#include <stdio.h>
#include <ctype.h>

int main( )
{
	bool bCheck = false;
	char strTemp[] = "2T3y4J";

	//isupper
	bCheck = isupper( '3' );
	printf( "%s\n", bCheck ? "True" : "False" );

	bCheck = isupper( 97 );		//97은 문자로 'a'
	printf( "%s\n", bCheck ? "True" : "False" );

	bCheck = isupper( strTemp[1] );
	printf( "%s\n", bCheck ? "True" : "False" );

	//islower
	bCheck = islower( '3' );
	printf( "%s\n", bCheck ? "True" : "False" );

	bCheck = islower( 97 );		//97은 문자로 'a'
	printf( "%s\n", bCheck ? "True" : "False" );

	bCheck = islower( strTemp[1] );
	printf( "%s\n", bCheck ? "True" : "False" );

	//isalpha
	bCheck = isalpha( '3' );
	printf( "%s\n", bCheck ? "True" : "False" );

	bCheck = isalpha( 97 );		//97은 문자로 'a'
	printf( "%s\n", bCheck ? "True" : "False" );

	bCheck = isalpha( strTemp[1] );
	printf( "%s\n", bCheck ? "True" : "False" );

	return 0;
}



※요약

isdigit : 문자가 숫자 0~9 사이에 속하는지 검사하는 함수



※함수 원형 및 설명

int isdigit( int c );
//c : 검사할 문자 또는 아스키 값
//반환값 : 문자가 0~9 사이에 속하면 true, 아니면 false


※예제

#include <stdio.h>
#include <ctype.h>

int main( )
{
	bool bCheck = false;
	char strTemp[] = "2t3y4j";

	bCheck = isdigit( '3' );
	printf( "%s\n", bCheck ? "True" : "False" );

	bCheck = isdigit( 49 );		//49는 문자로 1
	printf( "%s\n", bCheck ? "True" : "False" );

	bCheck = isdigit( strTemp[1] );
	printf( "%s\n", bCheck ? "True" : "False" );

	return 0;
}




워드프레스 설치 전에 준비해야할 사항으로는 웹 서버와 MySQL입니다.

웹 서버와 MySQL가 된다는 가정 하에 시작합니다.


한글 워드프레스 다운

영문 워드프레스 다운


사이트에서 워드프레스를 다운 받습니다.

영문으로 다운받으면 영문으로, 한글이면 한글로 설치가 진행되고

설치된 이후의 운영도 해당 언어로 진행됩니다.



압축 푼 파일을 웹서버에 집어넣습니다.

저는 웹 서버 하위에 wordpress폴더를 만들어서 파일들을 집어 넣었습니다.

집어넣을 때는 ftp로 넣으셔도 되고 저처럼 smb로 넣으셔도 됩니다.



이번에는 데이터베이스를 만들어줍니다.

많이 사용하는 phpMyAdmin으로 만들어주셔도 되고 Workbench로 해주셔도 되고 저처럼 HeidiSQL로 하셔도 됩니다.

저는 DB명을 db_wordpress로 했고, DB명칭은 마음대로 하셔도 됩니다.

참고로 wordpress전용 유저도 만들어 두면 좋습니다.



이제부터 설정 및 설치 입니다.

저는 압축 푼 파일들을 웹 서버 하위 wordpress 폴더에  위치시켰으므로 

주소에 /wordpress/ 를 덧붙여 워드프레스에 접속합니다.

wp-config.php 파일을 찾을 수 없어 에러가 났는데 "Create a Configuration File" 버튼을 눌러 만들 것이므로 상관없습니다.

"Create a Configuration File" 버튼을 눌러 진행합니다.



데이터베이스에 대해 필요한 것들이 나열되어 있습니다.

"Let's go!"버튼을 눌러 진행합니다.



초반에 워드프레스를 위해 만들어둔 DB명과 유저, 호스트 등을 입력합니다.

예를 들어 아래처럼 입력하면 됩니다.

Database Name : db_wordpress

User Name : user_wordpress

Password : user_wordpress의 패스워드

Database Host : 웹 서버 주소

Table Prefix : 테이블 만들 때 접두어 설정, 그냥 냅둬도 됩니다.



"Run the install"버튼을 눌러 설치합니다.



설치가 끝나면 사이트 타이틀과 계정, 메일 등을 입력합니다.

Privacy에 체크하면 구글 등의 검색 엔진에 검색됩니다.



"Log In"버튼을 눌러 로그인합니다




로그인하면 나오는 대쉬보드입니다.

한글로 설치하면 한글로 나오는데, 완벽하진 않습니다 ㅠㅠ


만들어진 워드프레스 화면입니다.


설치가 끝나고 보니 DB에 테이블이 생성 되었네요.




※포트포워딩 개념

포트포워딩을 쉽게 설명하자면 공유기 하위에 물려 있는 특정 컴퓨터나 특정 기기를 외부에서 접근하고자 할때 사용하는 게 포트포워딩입니다. 예를 들어 공유기 하위의 특정 컴퓨터에서 ftp나 http 등을 서비스 하고 있고 공유기 외부(학교나 회사 혹은 지구 반대편 나라)에서 그 서비스를 제공하는 컴퓨터에 접근하기 위해 공유기에 규칙을 설정 해주며 공유기에 물려있는 컴퓨터가 3대 라고 할 때, 설정된 포트 번호로 이 PC들을 구분 합니다.


아래 구성도는 저희 집 네트워크 구성도 입니다. 그림 좌하단 자작 나스에서 웹 서버를 운영 중이고, 운영하는 웹 서버(홈페이지, 블로그)를 외부에서 접속하기 위해서는 공유기에서 포트포워딩 설정을 해줘야 합니다.




아래는 화면은 제 포트포워드 설정이자 ipTime사 공유기의 포트포워딩 설정 화면입니다. 몇 번 포트는 어느 내부 ip로 가야될 지 규칙이 작성되어 있습니다. 이를 참고해서 규칙 이름과 내부 ip주소, 외부 포트, 내부 포트를 설정하시면 됩니다.



또 저의 경우는 ssh의 경우 외부 포트와 내부 포트가 다른데, 이는 잘 알려진 포트의 경우 해당 포트는 외부 공격을 받기도 하는데 이를 방지 하고자 저만 아는 번호로 설정한 것입니다.



포트포워드 설정이 끝났으면 내부 ip가 바뀌지 않게 아래에서 수동으로 ip를 설정 해주면 됩니다.




그림판으로 회전 시킬 이미지를 불러옵니다.

그리고 아래와 같이 리본 메뉴에서 "회전"을 누릅니다.


대칭 회전, 90도 회전, 180도 회전이 있는데

저는 180도 회전을 선택하였습니다.


아래와 같이 이미지가 180도 회전 되었습니다.

아래는 원본 이미지 입니다.




그림판으로 모자이크할 이미지를 불러온 뒤

선택을 눌러 모자이크할 영역을 선택합니다.


아래와 같이 영역을 선택합니다.


선택한 영역의 끄트머리를 잡아 아래와 같이 크기를 축소 시킵니다.

축소시킨 영역의 크키가 작을 수록 모자이크의 뭉게짐이 더 커집니다.


축소시켰던 영역의 크기를 다시 원상 복구 합니다.

그러면 아래와 같이 축소되었던 영역이 확대가 되면서 뭉게짐 현상이 생겨 모자이크가 완성됩니다.


+ Recent posts