<

Customs Clearance Information은 개인고유통관번호를 뜻하며 P로 시작하는 번호이며


아래 링크를 통해 관세청 사이트에서 간단한 본인인증을 통해 무료로 발급받을수 있다.


개인고유통관번호 발급 : https://unipass.customs.go.kr/csp/persIndex.do



윈도우 환경의 C++ 프로그래밍을 하다 보면 멀티바이트, 유니코드라는 문자집합 때문에 고민하게 된다.




프로젝트를 생성하게 되면 기본적으로 유니코드 환경으로 설정되어 있으나, 과거 하위버전의 Visual Studio에서 작성한 프로젝트이거나, 기타사유로 멀티바이트로 변경한 프로젝트를 다시 유니코드 환경으로 설정하면 당연히 컴파일 오류가 발생한다.




 구분

유니코드(_UNICODE) 

멀티바이트(_MBCS) 

 기본 자료형

 wchar_t

char 

 단일 문자의 크기

2Byte (16bit) 

1Byte ~ 2Byte 

(영문, 숫자를 포함한 ASCII는 1바이트로 표현되고 나머지 한글, 한자, 일본 가나 등은 2바이트로 표현)

 포함하는 문자셋

와이드 문자 및 u t f-16으로 인코딩된 문자열 

유니코드를 제외한 문자셋 (ANSI, UTF-8 등)


기존 멀티바이트 환경에서는 문자열을 입력할 때 큰따옴표(" ") 안에 정의했지만, 유니코드 환경에서는 큰따옴표 앞에 대문자 L을 넣어줘야한다.

TCHAR에서 제공하는 통합형 매크로는 TEXT나 _T를 큰따옴표 앞에 넣어주면 된다.

예시

멀티바이트 환경에서 문자열 정의:

char chTest[50] = "ABCDEFG";


유니크도 환경에서 문자열 정의:

wchar_t wchTest[50] = L"ABCDEFG";


TCHAR 통합형 매크로:

TCHAR tchTest[50] = TEXT("ABCDEFG");    //또는 _T("ABCDEFG");

#ifdef _UNICODE
typedef WCHAR TCHAR;
#else
typedef char TCHAR;
#endif 

위 코드에서 보면 _UNICODE가 정의되었냐에 따라 새로 정의된 자료형 이름이 둘다 TCHAR인것을 확인 할 수 있는데,

이것은 유니코드, 멀티바이트 모두 TCHAR를 사용할 수 있으며, 각 정의에 따라 자동으로 WCHAR와 char로 매크로가 된다는 의미이다.

따라서 TCHAR 매크로를 쓰게되면 유니크도, 멀티바이트 환경을 개발자가 고민할 필요가 없다는 것이다.

프로젝트 설정에 따라 내부적으로 매크로가 되니깐.

 

뿐만아니라 문자열 함수(strcpy 등)도 정의에 따라 나눠지게 된다. (자세한 내용은 tchar.h 파일에서 확인하면 된다. 너무 많아서 ㅠㅠ)


대표적인 함수 몇개를 정리해보았다.


  • 기본적인 문자열 관련 함수

함수 설명 

 _MBCS(멀티바이트)
(_UNICODE 정의안됨)

 _UNICODE(유니코드) 정의됨

 TCHAR 통합형(권장)

문자열 복사 

strcpy_s

wcscpy_s

_tcscpy_s

문자열 복사

(길이 지정)

strncpy_s

_mbsnbcpy_s

 _tcsncpy_s

문자열 서식 

sprintf_s

sprintf

swprintf_s

swprintf

 _stprintf_s

_stprintf

문자열 비교

strcmp

wcscmp

 _tcscmp

 문자열 길이

strlen

wcslen

 _tcslen

 문자열 추가

 strcat_s

strcat

wcscat_s

wcscat

_tcscat_s

_tcscat

문자 검색

strchr

wcschr

_tcschr

문자열 검색

strstr

wcsstr

_tcsstr

 문자열 스트림 입력

scanf_s

wscanf_s

_tscanf_s


  • 문자열을 정수 또는 실수형으로 변환

 함수 설명 

  _MBCS(멀티바이트) 

(_UNICODE 정의안됨)

  _UNICODE(유니코드) 정의됨

  TCHAR 통합형(권장)

 문자열 정수(int) 변환

 atoi

_wtoi

_ttoi

 문자열 정수(long) 변환

 atol

 _wtol

 _ttol

 문자열 정수(long long) 변환

 atoll

 _wtoll

 _ttoll

 문자열 실수(double) 변환

atof

 _wtof

_ttof


  • 파일입출력 관련

 함수 설명 

  _MBCS(멀티바이트) 

(_UNICODE 정의안됨)

  _UNICODE(유니코드) 정의됨

  TCHAR 통합형(권장)

파일 열기

fopen_s

_wfopen_s

_tfopen_s

파일 쓰기(스트림 출력)

fprintf_s

fwprintf_s

_ftprintf_s

 스트림에서 문자열 읽기

fgets

fgetws

_fgetts

 

 

 




프로그래밍을 하다 보면 코드의 일부 내용을 반복적으로 바꿔줘야할 때가 있다.


오래된 프로젝트를 리팩토링한다거나 프로젝트 문자셋을 멀티바이트에서 유니코드로 바꿀 때가 그 대표적인 예다.


물론 일일이 컴파일 오류나는 부분을 찾아서 바꿔주거나 전체 찾기해서 바꿔주는 원초적인 방법이 있다.


보다 효율적이고 능률적인 방법을 소개하겠다.


바로 정규표현식(aka. 정규식)을 사용한 찾기 및 바꾸기이다.


C++에서는 정규식이 조금 낯설수 있는데, 간략하게 설명하자면 정규표현식이란, 문자열에서 일정한 규칙(Pattern)을 갖는 문자열 집합(Group)을 찾아내는 것이다.


필자는 멀티바이트로 작성된 프로젝트를 유니코드로 바꾸는 과정에서 수많은 문자열 메시지 부분을 유니코드에 맞게 바꾸줘야하는 작업을 위 정규식을 이용해 작업했다.


찾기 바꾸기 대화상자(단축키:Ctrl+Shift+F)에서 찾기옵션에 정규식 사용에 체크를 해야한다.



MFC의 대표적인 문자열 타입인 Cstring의 경우 멀티바이트 인 경우 큰따옴표("")로 문자열을 표시했지만,


유니코드로 바꾸려면 _T 매크로를 넣어주거나 L를 앞에 넣어줘야한다.


물론 _T 매크로가 삽입되어 있다면, 매크로에서 자동으로 L로 변환이 된다.


(멀티바이트든, 유니코드는 _T 매크로를 넣어주는 버릇을 갖다.)


_T매크로는 _T(로 시작해서 괄호) 로 끝나기 때문에 그냥 찾아 바꾸기만 해서는 안된다.


다음은 내가 가장 많이 쓰는 정규식이다.



1. Cstring의 Format 멤버함수

예시:


찾을 대상

strTitle.Format("%s: ABCDEFG123456가나다라", this->getTitle());


바꿀 문자열

strTitle.Format(_T("%s: ABCDEFG123456가나다라"), this->getTitle());

Format 멤버함수의 문자열을 감쏴고 있는 큰따옴표 앞에 _T 매크로를 넣어줘야한다.


정규표현식:


찾을 문자열:

.Format\(\"(.*)\"


바꿀 문자열

.Format(_T("$1")

위에서 보다시피 정규식을 찾을때에는 문자열에 포함되는 괄호, 따옴표에 대해서는 백슬래시(\)로 구분을 해줘야한다.

그리고 바꿀 문자열에 대해서는 백슬래시가 필요없으며 그룹 문자열($1,$2,$3...) 등을 사용하면 된다.



2. Afxmessage 메시지 팝업

예시:

찾을 대상

AfxMessageBox("입력값 초과");


바꿀 문자열

AfxMessageBox(_T("입력값 초과"));


정규표현식:


찾을 문자열:

AfxMessageBox\(\"(.*)\"


바꿀 문자열

AfxMessageBox(_T("$1")



유로 트럭 시뮬레이터 2 콘솔모드를 지원하는데 시간조정, 날씨, 순간이동 등을 할 수 있다.


    콘솔모드 활성화

먼저 콘솔모드를 사용하기 위해서는 아래처럼 파일을 열어 2줄을 수정해야한다.


  1. 문서 - Euro Truck Simulator 2 폴더 진입 (또는 시작 - 실행 - %USERPROFILE%/Documents/Euro Truck Simulator 2)
  2. config.cfg 파일을 메모장 등의 에디터로 불러온다.
  3. 아래를 찾아 각각 0을 1로 바꿔주고 저장한다.
uset g_console "0"
uset g_developer "0"

위 내용을 아래처럼 변경.

uset g_console "1"

uset g_developer "1"


    사용법

게임 도중 키보드의 ESC 밑의 콘솔키( ` , 물결표~와 같은 키)를 누르면 명령을 입력할 수 있는 팝업창이 뜨는데 그곳에 아래 명령들을 입력하면 된다.


 치트 종류

치트 명령 

 예시

설명 

게임 시간

 g_set_time 시간 분

g_set_time 15 30 

15시 30분으로 시간이 지난다.

24시간형으로 입력해야하며, 과거로는 이동이 불가능하다. 

 자유 시점

키보드 숫자 0 누름 

콘솔창 말고 게임 도중 0 입력 

게임 도중 0을 누르면 카메라 시점이 바뀌는데 이때  키보드 오른쪽 키패드의 4,5,6,8를 통해 화면 이동이 가능하며 F9를 누르면 현재 위치로 트럭이 떨어진다. 

 순간 이동

 goto 도시명  또는 좌표

goto berlin

goto -44831.8;112.729;-40232.4 

입력한 도시 또는 좌표로 이동한다.

이동하게 되면 공중에 떠있는데

이때 위의 자유시점을 이용하여 트럭 위치를 설정할 수 있다.

 교통량 조정

 g_traffic 0 ~ 10

g_traffic 0 

1이 기본 교통량이며, 0은 교통량이 없으며 10으로 가까워질수록 늘어난다. 

 경찰 단속 

g_police 1 또는 0 

g_police 1 

1이면 교통단속을 하고 0이면 교통단속이 없다. 

 날씨

g_set_weather 1 또는 0 

 g_set_weather 1

1이면 비가 내리고 0이면 맑아진다.
뒤에 i를 붙여주면 자연스럽게 날씨가 바뀐다. 



내용 참고 : https://forum.scssoft.com/viewtopic.php?t=61852

아연(Zinc)



아연(亞鉛, 영어: Zinc 징크)은 화학 원소로 기호는 Zn, 원자 번호는 30이다. 아연의 가장 일반적인 산화 상태는 +2이다. 

사용량 기준으로 철, 알루미늄, 구리에 이어 네 번째로 중요한 금속으로 꼽힌다.


인체 내에서 아연은 세포를 구성하고 생리적인 기능을 다루는 대표적인 무기물 중 하나이다. 

임신한 여성에게 아연이 부족하게 되면 기형아나 저체중아를 낳을 수 있다. 


아연이 부족할 경우 성장발육에 문제가 있게 되며, 아연을 과잉섭취하게 되어도 미네랄 불균형이 생긴다.


내용 출처: https://ko.wikipedia.org/wiki/아연


아연은 체내에 저장되지 않기 때문에 꾸준히 적당량을 섭취해줄 필요가 있다.


아연이 풍부한 음식으로는 


  • 대표적인 해산물 굴, 조개류, 갑각류, 장어

  • 육류

  • 콩류

  • 유제품

등이 존재한다.

체내 아연이 부족(결핍)하여 나타나는 증상으로는
발육장애, 낮은 인슐린 수치, 식욕 감퇴, 신경과민, 탈모, 거칠고 건조한 피부, 더딘 상처 회복속도, 후각/미각 혼란 등이 있다.

물론 규칙적이고 균형잡힌 식사를 한다면 결핍에 의한 이와 같은 증상이 나타나기 어렵다.

아연의 일일 권장섭취량은 남성이 10mg, 여성이 8mg이고 최대섭취량은 35mg이다.
건강기능식품일 경우 식품의약품안전처(식약처)가 권고하는 일일섭취량은 2.55~12mg이다.



아연(Zinc)의 효능

  • 전립선 및 생식 능력 개선 (정력)

  • 미각에 관여한다. 

  • 콜레스테롤의 축적을 감소시킨다.

  • 손톱 위에 생긴 흰 반점을 없앤다.

  • 몸의 내부 및 외부 상처를 빨리 치유시킨다.

  • 성장을 촉진시킨다.

  • 탈모 예방에 도움이 된다.


아연(Zinc)의 부작용

부작용은 거의 없으나, 150mg 이상 과량 섭취하는 것은 바람직하지 못하며, 


이 경우 안면근육이 부자연스러워지거나 걷는 것이 힘들어질 수 있고, 


손떨림, 부정확한 의사전달, 헛웃음 등의 부작용이 나타날 수 있다. 



내가 추천하는 아연(Zinc) 제품

고급 활성형 원료 사용으로 유명한 쏜 리서치사의 아연 피콜리네이트, 15 mg, 60 캡슐 제품(링크)


아연(Zinc) 뒤에 붙은 Picolinate는 아연(Zinc)과 피콜린산(Picolinic acid)의 화합물로써 무기질인 아연을 아미노산으로 합성되는 피콜린산과의 킬레이트[각주:1]로 흡수 및 이용률 증가시킨 제품이다.


쏜 리서치 제품이 가격은 타사 제품보다는 비싸지만, 제품의 원료의 품질과 체내흡수는 굉장히 뛰어나서 구매자들 후기또한 괜찮은 편이다.




아이허브 영양제 구매 할인

이 링크로 이동하여 영양제 제품을 구입하시면

아이허브 신규회원 10%, 기존회원 5%의 할인혜택을 드립니다.

아이허브 추천인 코드 : 

AUS1942

 



 

본 페이지에서 소개한 영양제는 질병 예방 및 치료를 위한 의약품이 아닌

건강한 신체 유지에 유용한 기능성을 가진 원료나 성분이 함유된

건강기능식품 / 건강보조식품입니다.



참고문헌
 김성철(임상약학대학원 겸임교수). (2013). 비타민 및 주요 미네랄. 발행지: 약학정보원.


  1. 킬레이트(Chelate): 체내에서 흡수가 잘되지 않는 무기염을 유기염(구연산, 말산염, 피콜란산 등)과 결합하여 흡수율을 높일 수 있도록 한 화학 결합 방식 [본문으로]

마그네슘(Magnesium)


 마그네슘(Magnesium)은 알칼리 토금속에 속하는 화학 원소로 기호는 Mg이고 원자 번호는 12이다. 


인체 내에서는 11번째로 많이 존재하는 원소이며, 300여가지 효소들과 모든 세포에게 필수적인 원소이다. 

마그네슘은 세포 내에서 인산기를 가지는 DNA, RNA, ATP 등의 물질을 생성하고 수백가지의 효소들이 작용하는 데 관여한다. 또한 탄수화물 대사 과정에서 촉매로 작용하므로 생명 활동에 중요한 역할을 한다. 

마그네슘 화합물들은 의학적으로 변비약, 제산제(예시: 마그네시아 유제, milk of Magnesia), 비정상적인 신경 자극 또는 혈관 경련을 안정화하는 데 사용된다.

내용 출처 : https://ko.wikipedia.org/wiki/마그네슘



마그네슘은 살아있는 유기체에 필수적인 전해질이며, 인체에서 네 번째로 풍부한 미네랄입니다. 
사람은 마그네슘 결핍을 예방하기 위해 주기적으로 마그네슘을 섭취해야하지만, 권장되는 일일 마그네슘 허용량은 성별, 연령, 컨디션에 따라 다양하므로 정확한 최적 섭취량을 정확하게 정의하기가 어렵습니다. 

인체 내 마그네슘의 많은 기능을 기반으로 많은 질병의 예방 및 치료에 중요한 역할을합니다.



마그네슘 일일 권장량:
성인의 일일 섭취 권장량은 400mg이며, 일일 최적 섭취량(Optimum Daily Intakes, ODI)은 500~750mg이다.
신장 기능이 정상이라면 하루에 6,000mg까지 복용하여도 큰 독성은 없다. 



마그네슘(Magnesium)의 효능

  • 체내의 여러 가지 미네랄을 통합 조절하고, 신경안정 효과가 있어  스트레스도 해소와 수면유도에 효과적이다.


  • 체내의 에너지 원천인 APT가 힘을 내는 과정에서 없어서는 안 될 물질이 바로 마그네슘이다. ATP에서

    7,800Kcal의 에너지를 내면서 ADP라는 물질로 변하게 되는데 이 ADP를 안정화시켜 성공적으로 에너지

    가 발휘될 수 있도록 해주는 것이다. 즉, 마그네슘은 ATP를 점화시키는 열쇠와 같다. 따라서 에너지가 이

    용되는 모든 곳에는 반드시 마그네슘이 이용되고 있는 것이다.

  • 심장, 근육 등의 작용에도 관여하여 심장의 리듬을 조절하고, 근육의 수축, 이완을 담당한다.

  • 신경이 전달될 때 마그네슘이 반드시 필요하다. 이처럼 중요한 역할을 하는 마그네슘이 체내에 부족하게

    되면 우선 기력이 빠지고 신경이 말을 듣지 않는다.

  • 마그네슘은 칼슘과 마찬가지로 뼈를 형성하는 주원료이다.

  • 순환기 질환 치료와 예방에 필요하다. 실제로 고혈압 환자들의 세포 안에는 칼슘 양이 정상인보다 많은

    반면, 마그네슘 양은 정상인보다 적다. 따라서 순환기 질환 환자들의 경우 마그네슘을 충분히 섭취하도록

    권장하고 있으며, 특히 임신 중에 혈압이 갑자기 올라가지 않도록 하기 위해 마그네슘을 주사하기도 한다.

  • 당뇨병 환자에게 필수적인 미네랄이다. 일본의 한 연구소에서는 109명의 당뇨 환자와 33명의 건강한 사

    람을 대상으로 혈액과 소변 검사를 통해 마그네슘 양을 비교 측정해 보았다. 그 결과, 당뇨병 환자에서는

    마그네슘 양이 정상 이하인 것으로 나타났으며, 특히 망막증을 합병한 환자의 경우에는 마그네슘 결핍이

    더욱 현저했다. 


마그네슘(Magnesium)의 부작용

  • 신장 기능이 정상이라면 하루에 6,000mg까지 복용해도 독성은 없다. 다만 과량 복용 시 사하작용(위장장애, 설사) 등의 부작용은 나타날 수 있다.


내가 추천하는 마그네슘(Magnesium) 제품


고급 활성형 원료 사용으로 유명한 쏜 리서치사의 Magnesium Citramate 90캡슐 제품(링크)

마그네슘 뒤에 붙은 CitraMate는 Citrate(구연산)-Malate(말산염)의 합성어로써 쏜 리서치사의 마그네슘 정제 브랜드인듯하다.


타사의 일반적인 마그네슘 보충제는 산화마그네슘(Magnesium oxide, Mg-Oxide, Mgo) 형태가 많은데 저렴하지만, 산화마그네슘은

무기염으로서 체내에서 흡수율이 낮다.


그래서 무기염인 마그네슘을 유기염인 구연산과 말산염을 붙여서 마그네슘유기염으로 만든 제품이 바로  Magnesium Citramate 제품이다.

유기염이기 때문에 체내 흡수율이 높다.


Table by Dr. Crisafi Comparing Bioavailability of Magnesium FormsTable by Dr. Crisafi Comparing Bioavailability of Magnesium Forms





아이허브 영양제 구매 할인

이 링크로 이동하여 영양제 제품을 구입하시면

아이허브 신규회원 10%, 기존회원 5%의 할인혜택을 드립니다.

아이허브 추천인 코드 : 

AUS1942

 



 참고 영상 - Youtube "약사가 들려주는 약 이야기



본 페이지에서 소개한 영양제는 질병 예방 및 치료를 위한 의약품이 아닌

건강한 신체 유지에 유용한 기능성을 가진 원료나 성분이 함유된

건강기능식품 / 건강보조식품입니다.




+ Recent posts