Category 771

"안전하게 제공된 콘텐츠만 보시겠습니까?" 경고창이 보기 싫을 때

웹사이트를 접속하다 보면 가끔 이런 메시지가 담긴 경고창을 만나게 된다. [ "안전하게 제공된 컨텐츠만 보시겠습니까?"] 보안 설정에 따른 경고창인데 여간 귀찮은 창이 아닐 수 없다. 보안상 문제되지 않을(믿을만한) 사이트만 접속한다면 해당 설정을 굳이 해둘 필요는 없을 것 같다. 위 경고창을 보고 싶지 않다면 아래와 같이 설정을 변경해 주면 된다.(IE8 기준. 타 버전도 대동소이함.) 1. 도구 >> 인터넷 옵션 >> 보안 >> 사용자 지정 수준 2. 혼합된 콘텐츠 표시 항목을 [사용]으로 변경 >> 확인 끝.

Computer 2012.02.08

Android 개발 환경 구축

▶ 설치 순서 1. JDK 설치 2. Android SDK 설치 1. JDK 설치하기 1) http://www.oracle.com 에 접속 2) 아래 그림처럼 Downloads 메뉴의 Java for Developers 선택 3) Java Platform(JDK) 7u2 선택(그림 아래의 버전은 다를 수 있음) 4) 약관 동의 후 os 버전에 맞는 설치 파일 다운 로드 5) 다운로드 받은 설치 파일 더블 클릭으로 설치. 설치과정은 간단하며 그냥 next 연속 클릭 후 완료. 2. Android SDK 설치 1) http://developer.android.com/ 에 접속 2) 아래 그림 처럼 SDK를 선택한 후 본인의 환경에 맞는 설치 파일을 클릭 후 다운로드 (아래 그림은 windows 환경) 3) ..

Study 2012.01.19

컴파일러에 대해서...

컴파일러는 보통 front end(프론트엔드), optimizer(최적화기), back end(백 엔드) 세 개의 기본적인 요소로 구성된다. ▶ 프론트 엔드(front end) front end는 high level language로 작성된 소스코드를 분석하는 몇 가지 단계를 수행한다. 먼저 lexical analysis(어휘 분석)이나 scanning의 단계를 수행하는데, 소스 파일의 토큰을 검사하는 과정이다. 여기서 토큰은 소스코드를 구성하는 텍스트 심볼을 의미한다. if (var != 0){} 위의 코드 라인에서 심볼은 if, (, var, != 등이며 모두 토큰이 된다. 토큰을 스캔하는 동안 어휘 분석기는 해당 토큰이 프로그래밍 언어의 규약에 맞는지 검사하고 문맥상 잘못된 토큰이 발견되면 컴파일러..

Study 2010.01.25

static binding, dynamic binding

- binding : 프로그램 요소에 지정 가능한 속성 값을 지정하는 것. - static binding : 정적 바인딩. 주로 컴파일 타임에 이루어지는 바인딩을 말함. = early binding 속도가 빠른 것이 장점. - dynamic binding : 동적 바인딩. 런타임시에 이루어지는 바인딩을 말함. = late binding 속도는 느리나 메모리가 필요할 때 동적으로 할당되므로 효율적이고 유연함. C++ 에서 dynamic binding은 중요한 요소인 Polymorphism을 위해 꼭 필요하다. Polymorphism(다형성)은 동일한 명령(메시지)으로 객체마다 저마다의 방식으로 처리하도록 하는 것을 말하며 base class의 함수를 derived class에서 동일하게(이름 뿐만 아니라 ..

Study 2010.01.25

const와 static

1. const 일반적으로 const는 변수를 상수화할 때 사용한다. 변수를 상수화 함으로써 얻는 이득은? 대형 프로젝트를 진행하다 보면 컴파일도 잘 되고 링크도 잘 되지만 실행해 보면 예상하지 못한 버그가 발생 될 수 있다. 변수나 함수를 const로 상수화시키면 변경하지 말아야 할 변수를 변경함으로써 발생되는 버그의 발생 을 방지할 수 있다. - const를 사용할 때 헷갈리기 쉬운 부분 int iNum1 = 20; int iNum2 = 30; const int* pNum1 = &iNum1; // 포인터가 가리키는 주소 안의 값을 상수화 int* const pNum2 = &iNum1; // 포인터가 가리키는 주소를 상수화 pNum1 = &iNum2; // OK pNum2 = &iNum2; // 상수인..

Study 2010.01.20

delete와 delete[]를 구분해서 사용해야 하는 이유

new[] 를 사용 할 경우 할당할 메모리의 앞에 4바이트 메모리를 더 할당하여 배열의 Size를 저장해 둔다. new[]를 사용해 할당한 메모리를 해제할 때 delete[]를 사용하면 배열의 Size를 확인하지만 delete를 사용하면 확인하지 않고 해제한다. 따라서 delete[]를 사용해야 클래스 배열인 경우에도 각각의 Entry의 소멸자를 호출해 줄 수 있다. 요약하자면 delete와 delete[]모두 메모리 해제는 정상적으로 진행 되지만 클래스 배열 을 delete[]를 사용해서 해제하지 않고 delete를 사용 할 경우 소멸자가 한 번만 호출 되고 메모리를 해제함으로써 문제가 발생할 수 있다.

Study 2010.01.15

C 언어로 작성된 코드를 C++에서 사용할 경우

- C언어로 작성된 코드를 C++에서 사용하기 위해 헤더파일만 include해서 컴파일 할 경우 링크 에러가 발생한다. ==> 해결책 : C언어로 작성된 코드에 C영역임을 명시 해줘야 한다. ex) plus.h #ifdef __cplusplus extern "C" { #endif int plus(int a, int b); #ifdef __cplusplus } #endif 위와 같이 구역을 정해주면 C로 작성된 plus()함수 코드 때문에 C++컴파일러로 컴파일 시 에러가 발생하지 않는다. 구역이 함수 하나일 경우 다음과 같이 사용해도 된다. #ifdef __cplusplus extern "C" int plus(int a, int b); #endif

Study 2010.01.15

yum 사용 방법

1. 업데이트 서버의 모든 패키지 목록 확인 # yum list 2. 내 컴퓨터의 설치된 패키지 확인 # yum list installed | grep [패키지 명] 3. 가능한 보든 패키지 업데이트 # yum update 4. yum을 이용한 설치 # yum install [패키지 명] 5. 특정 패키지만 업데이트 # yum update [패키지 명] [패키지 명] [패키지 명] 6. 업데이트 된 패키지 확인 # yum check-update 7. 패키지 정보 확인 # yum info [패키지 명] 8. 최근 업데이트 된 패키지 정보 확인 # yum info update

Study 2009.05.11