반응형

C 런타임 라이브러리


런타임 라이브러리 링크 옵션인 /MD 및 /MT 컴파일 옵션을 이해하기 위해서는 런타임 라이브러리에 대한 이해가 필요하다.

 

런타임 라이브러리(Run-Time Libraries)란 여러 프로그램들이 실행 중에 입력과 출력, 메모리 관리, 연산, 예외 처리 등 공통적으로 필요로 하는 기능들을 별도의 라이브러리 형태로 묶어서 제공하는 것을 의미한다.

 

C/C++에서는 대표적으로 C 런타임 라이브러리(CRT; C Run-Time Libraries)가 있으며, 이는 ISO C99 표준 라이브러리를 통합하는 C++ 표준 라이브러리의 일부이다. 즉 C/C++로 작성된 프로그램이 실행 중에 기본적으로 필요로 하는 기능들을 포함하여 라이브러리 형태로 제공된 것을 의미한다.

728x90

 

/MD vs /MT 컴파일 옵션의 차이점


/MD 및 /MT 컴파일 옵션은 위에서 언급한 C 런타임 라이브러리(CRT)의 연결 방식과 관련된 옵션이다.

MD는 Multi-Threaded DLL, MT는 Multi-Threaded의 약자이며, 두 가지 옵션 모두 다중 스레드 개발을 지원한다는 의미이기도 하다.

참고로 /MDd, /MTd는 /MD 및 /MT의 디버그용 옵션이다.

 

과거에는 싱글 스레드만 지원하는 /ML, /MLd 옵션도 제공이 되었지만 최근의 멀티 코어, 멀티 스레드 환경에서는 경우에 따라 문제가 발생할 소지가 있어 제거된 것으로 보인다.

 

/MD 및 /MT 컴파일 옵션의 특징은 다음과 같이 정리할 수 있다.

/MD (Multi-Threaded DLL)

  • /MD 옵션은 C 런타임 라이브러리를 별도의 DLL로 동적으로 연결(dynamic link)하는 방식
  • MSVCRT.lib가 .obj 파일에 배치되어 빌드된다. (디버그 모드의 경우 MSVCRTD.lib)
  • 여러 실행 파일이 라이브러리를 공유하여 사용할 수 있어 실행 파일 크기 및 메모리 사용량 감소
  • 실행 파일 배포 시 반드시 재배포 패키지를 함께 배포해야 함

 

/MT (Multi-Threaded)

  • /MT 옵션은 C 런타임 라이브러리를 실행 파일 내에 포함하여 정적으로 연결(static link)하는 방식이다.
  • LIBCMT.lib가 .obj 파일에 배치되어 빌드된다. (디버그 모드의 경우 LIBCMTD.lib)
  • 대상 시스템에 설치된 DLL에 의존하지 않는다.
  • 실행 파일의 크기가 커진다.

 

런타임 라이브러리 링크 /MD, /MT 설정 방법

  • [프로젝트 속성] -> [구성 속성] -> [C/C++] -> [코드 생성] : 런타임 라이브러리 선택

 


단일 실행 파일을 배포하는 경우라면 /MT 옵션으로 배포하는 것이 간편하겠지만,
다수개의 실행 파일을 배포하는 경우 /MD 옵션을 사용하면 배포 크기 및 메모리 사용량 측면에서 효율적일 수 있다.

 

만약 /MD 컴파일 옵션 사용 시 재배포 패키지를 함께 배포하지 않으면 다음과 같은 시스템 오류가 발생할 수 있다.

 

"VCRUNTIME140.dll이(가) 없어 코드 실행을 진행할 수 없습니다. 프로그램을 다시 설치하면 이 문제가 해결될 수 있습니다."

 

/MD 컴파일 옵션으로 배포 후 문제가 발생할 경우 아래 링크를 참고하여 재배포 패키지를 설치하면 되겠다.

 

VCRUNTIME140.dll 시스템 오류, 간단하게 해결해보자!

VCRUNTIME140.dll 시스템 오류, 왜 발생하는 걸까? 간혹 프로그램을 실행할 때 아래와 같은 시스템 오류를 만나게된다. "VCRUNTIME140.dll이(가) 없어 코드 실행을 진행할 수 없습니다. 프로그램을 다시 설

itisguide.tistory.com

반응형
반응형

티스토리 포스팅 이미지 삽입


티스토리 블로그 포스팅을 하다 보면 글과 함께 내용을 보다 잘 설명하기 위한 이미지(사진, 그림)를 첨부하게 되는 경우가 많다.

때로는 디테일한 설명을 위해 글과 이미지를 같은 줄에 표현하고 싶은 경우도 있다.

 

예를 들면 다음과 같은 케이스이다.

Windows 설정 바로가기 단축키는  +  입니다.

그러나 티스토리 포스팅 에디터에서 일반적으로 이미지를 붙여 넣으면 이미지가 중간에 한 줄을 차지해버려서 텍스트와 함께 배치할 수 없는 문제가 있다.

 

이런 식으로.

Windows 설정 바로가기 단축키는

+

입니다.

 

한컴 오피스(한글)에 익숙한 사용자라면 이 경우 이미지를 '글자처럼 취급' 옵션을 사용하고 싶을 것이다.

(MS Word에서는 '텍스트 줄 안' 옵션이 있다.)

한컴 오피스(한글)에서의 '글자처럼 취급' 옵션

 

하지만, 티스토리 에디터에는 해당 옵션을 지원하지 않는다.

그럼 티스토리에서 포스팅에 삽입하는 이미지를 '글자처럼 취급' 하는 방법에 대해 알아보자.

728x90

 

티스토리 포스팅 이미지 글자처럼 취급


티스토리 포스팅 이미지 글자처럼 취급하는 방법

포스팅에 삽입한 이미지를 글자처럼 취급하여 배치하는 방법은 다음과 같다.

1. 작성 중인 포스트에 이미지를 붙여 넣는다. (Ctrl+V)

2. 삽입된 이미지에 마우스 오른쪽 클릭하여 '이미지 주소 복사'를 클릭한다.

3. 글쓰기 에디터 상단의 '기본 모드'를 클릭하여 'HTML' 모드로 변경한다.

4. <img> 태그를 사용해서 원하는 위치이미지를 삽입한다.

<img style="vertical-align: middle;" src="http://복사한 이미지 주소" />

태그의 src 부분은 2번에서 복사한 주소를 붙여 넣으면 된다.

style 부분은 이미지가 세로 방향의 중앙으로 정렬되도록 하는 속성이다.

(기존의[##_Image|...]으로 작성된 이미지 태그는 제거하면 된다.)

 

그러나, 인용 문단 모양(<blockquote>)이 아닌 본문(<p>)에서 <img> 태그로 이미지를 삽입하는 경우

기본모드로 돌아오면 이미지가 줄 바꿈 된 상태로 되돌아가는 문제가 있다.

 

5. <div> 태그를 사용해서 줄 바꿈 상태가 되돌아가지 않도록 수정해준다.

기존의 <p> 태그를 아래의 <div> 태그로 바꿔주자.

<div style="margin: 0px;">내용</div>

태그의 style 부분은 여백(margin)을 제거하는 속성이다.

 

최종 결과물은 다음과 같다.

<div style="margin: 0px;">Windows 설정 바로가기 단축키는 <img style="vertical-align: middle;" src="https://blog.kakaocdn.net/dn/D59UL/btqRAj1BbgT/0HalV00RLsE0drfXyC1SaK/img.png" /> + <img style="vertical-align: middle;" src="https://blog.kakaocdn.net/dn/k7hmU/btqRxZhRS4C/unHnUflKdxkg06ivvyfxg0/img.png" /> 입니다.</div>
Windows 설정 바로가기 단축키는 + 입니다.

 


이렇게 티스토리 포스팅에서 삽입한 이미지를 글자처럼 취급하여 다루는 방법에 대해 살펴보았다.

 

이 문제는 티스토리 에디터가 이미지 정렬 방식의 지원에 한계가 있어서 발생하는 것이므로,

추후 티스토리 측에서 기능 개선을 해주면 좋을 것 같다.

 

그전까지는 다소 불편하지만 위의 방법으로 이미지를 텍스트 사이에 배치하면 되겠다.

반응형
반응형

KT 해외 스팸 전화


요즘 해외에서 핸드폰으로 걸려오는 스팸 전화가 늘어난 것 같다.

 

난 해외에 친척이나 아는사람이 있는 것도 아니라서 해외에서 나에게 걸려올 전화는 없다.

그래서 국외 발신으로 걸려오는 전화는 번호를 보지도 않고 무조건 끊어버린다.

근데 이것도 반복되니 짜증이 나서 해외 전화는 무조건 차단하는 것이 좋겠다고 생각했다.

 

그럼 KT에서 휴대폰 해외 스팸 전화를 차단하는 방법에 대해 알아보자.

 

728x90

 

KT 해외 스팸 전화 차단 방법


KT 국제전화수신차단 부가서비스 가입

KT에서 제공하는 해외 전화를 차단서비스를 이용하려면 '국제전화수신차단' 이라는 부가서비스에 가입해야한다.

부가서비스 이용 요금은 무료이다.

 

1. KT 스마트폰 사용자라면 기본으로 설치되어 있는 '마이 케이티'라는 어플을 실행한다.

마이 케이티 앱

2. 앱이 실행되었으면 상단 검색창'국제전화수신차단'을 입력한다.

검색창에 국제전화수신차단 입력

3. 검색 결과에서 요금제/부가서비스 카테고리에 '국제전화수신차단' 항목을 선택한다.

국제전화수신차단 부가서비스

4. '국제전화수신차단' 부가서비스 페이지에서 '신청하기'를 누른다.

국제전화수신차단 서비스 신청하기

'국제전화수신차단' 부가서비스는 무료로 제공된다.

001 등 국제전화국번 기준으로 차단하며, 가입 후 필요에 따라 ON/OFF가 가능한 부가서비스이다.

 

해외에서 걸려오는 보이스 피싱. 국제전화수신차단 서비스로 사전에 방지하세요!

핸드폰으로 걸려오는 국제전화를 차단하는 서비스 입니다.

 

5. 부가서비스 신청 페이지에서 신청할 내 번호를 확인하고 '신청하기'를 누른다.

부가서비스 신청

※ 유의 사항

1. 변경하신 부가 서비스는 즉시 적용되어 부과 처리됩니다. (-> 무료이므로 부과되는 금액 없음)

2. 변경되는 내용을 모두 확인하시고 신청 혹은 취소를 선택해주세요.

- 부가서비스를 월 중 해지할 경우 이용요금은 일자별 적용되어 부과됩니다.

- 단, LTE 데이터충전, 로밍 서비스 등 일부 부가서비스는 가입 시 요금이 즉시 부과되므로 이용요금이 일자별 적용되지 않습니다.

 

국제전화수신차단 설정하는 방법

국제전화수신차단 부가서비스 가입이 완료되면, 국제전화 수신차단 설정 페이지로 이어진다.

해당 부가서비스는 사용자가 ON/OFF를 직접 설정할 수 있으므로 이 단계에서 수신차단 설정을 해주자.

 

1. 국제전화 수신차단 설정 페이지에서 '수신차단 설정'을 '차단'으로 선택하고 '확인'을 누른다.

국제전화 수신차단 설정

서비스 이용에 필요한 정보를 입력하신 후 확인 버튼을 누르시면 서비스가 신청됩니다.

- 상품안내 페이지에서 "로밍 제공국가 및 사업자" 정보를 확인하신 후 신청해주세요.

- 수신차단 설정 시 휴대폰으로 걸려오는 모든 국제전화 수신이 차단됩니다.

- 해외 로밍 중인 고객이 국내에 전화를 할 경우에는 수신 차단이 되지 않습니다.

  (단, 해외 사업자의 네트워크 사정에 따라 일부 호가 수신 차단될 수 있습니다.)

- 설정은 마이페이지에서 변경할 수 있습니다.

  (kt.com > 마이페이지 > 요금제/부가서비스 > 부가서비스 조회/변경)

 

2. '국제전화수신차단' 부가서비스 설정이 완료되었다. 이제 해외에서 걸려오는 전화는 모두 차단된다.

국제전화수신차단 부가서비스 신청 완료

 

국제전화수신차단 해제하는 방법

국제전화수신차단 부가서비스는 앱에서 마이페이지의 부가서비스 가입 내역에서도 ON/OFF 설정이 가능하지만,

간편하게 전화를 거는 방식으로 ON/OFF 설정도 가능하다.

 

만약 해외 전화를 받아야하는 상황이 생기거나 해외로 출국할 경우 서비스를 OFF 하면 되겠다.

 

1. '전화'앱의 키패드에서 *810 을 누르고 통화버튼으로 전화를 걸기만하면 해외 전화 수신 차단이 해제된다.

국제전화수신차단 서비스 설정

(만약 국제전화수신차단 부가서비스에 가입하지 않고 전화를 걸면 부가서비스에 가입되어있지 않다는 음성 안내가 나온다.)

 

  • 서비스 ON/OFF 설정
    • 서비스 활성화(ON) : 핸드폰에서 "*+81+통화버튼"
    • 서비스 비활성화(OFF) : 핸드폰에서 "*810+통화버튼"
  • 기타 문의사항 : 고객센터 문의 (국번없이 100번)

이렇게 KT에서 휴대폰 해외 스팸 전화를 차단하는 방법에 대해서 살펴보았다.

해외에서 걸려올 전화가 없다면, 국제전화수신차단 부가서비스를 사용해서 스팸 및 보이스 피싱을 사전에 예방하도록 하자.

 

('국제전화수신차단' 부가서비스는 해외에서 걸려오는 모든 전화를 차단하는 서비스로,

만약 해외에서 걸려올 전화가 있다면, 스팸, 보이스 피싱 전화 뿐만 아니라 일반 전화까지도 차단될 위험이 있습니다.)

반응형

+ Recent posts