본문 바로가기

개발/코더 탈출10

Cross Compile 소스코드 파일 끝문자 형식(LF,CRLF) 문서 끝문자 형식 문제 해결: "LF" vs "CRLF"리눅스 및 유닉스 환경과의 호환성을 위해 소스 코드는 LF(Line Feed) 형식을 사용하여 관리해야 합니다.Git 설정 추가모든 파일의 끝문자 형식을 일관되게 관리하기 위해 다음과 같은 Git 설정을 추가합니다.git config --global core.autocrlf true이 설정의 동작 방식은 다음과 같습니다:체크아웃(Checkout):리포지토리에서 파일을 체크아웃할 때, 줄 끝 문자가 LF인 파일을 CRLF로 변환합니다. 이는 Windows 환경에서 작업할 때 편리합니다.커밋(Commit):파일을 커밋할 때, CRLF 줄 끝 문자가 포함된 파일을 LF로 변환하여 리포지토리에 저장합니다. 이는 리눅스 및 유닉스 환경과의 호환성을 보장합니다.. 2024. 7. 9.
나만의 코딩 스타일 가이드 (계속 추가) 1. 클래스 - SIZE 고정 변수의 모임(STRUCT)을 제외하고 모든건 CALSS화 시킨다.// 허용 struct stMyStruct{ int nCount; char szName[100]; char szPhone[100];};//금지 --> CLASS화 struct stMyStruct{ int nCount; std::string ssName; std::string ssPhone; myClass myInfo;};class MyInfo {public: MyInfo(); MyInfo(int _nCount, const std::string& _ssName, const std::string& _ssPhone ); virtual ~MyInfo(); .. 2024. 6. 18.
[ Visual Studio ] Warning C4819 warning C4819: 현재 코드 페이지(949)에서 표시할 수 없는 문자가 파일에 들어 있습니다. 데이터가 손실되지 않게 하려면 해당 파일을 유니코드 형식으로 저장하십시오."경고 C4819: 현재 코드 페이지(949)에서 표시할 수 없는 문자가 파일에 들어 있습니다. 데이터가 손실되지 않게 하려면 해당 파일을 유니코드 형식으로 저장하십시오."라는 메시지는 소스 코드 파일에 현재 코드 페이지에서 지원되지 않는 문자가 포함되어 있을 때 발생합니다. 이 문제를 해결하려면 해당 파일을 유니코드 형식으로 저장해야 합니다. 다음은 이 문제를 해결하기 위한 단계입니다:파일을 유니코드 형식으로 저장하기Visual Studio에서 파일 열기경고가 발생한 파일을 Visual Studio에서 엽니다.다른 이름으로 저장.. 2024. 6. 12.
C++ 코딩 스타일 가이드 변수 네이밍 규칙int 변수: 접두사 n 사용 (int nExample)string 변수: 접두사 ss 사용 (std::string ssExample)포인터 변수: 접두사 p 사용 (int* pExample)HANDLE 변수: 접두사 h 사용 (HANDLE hExample)vector 변수: 접두사 v 사용 (std::vector vExample)map 변수: 접두사 mp 사용 (std::map mpExample)bool 변수: 접두사 b 사용 (bool bExample)null-terminated 변수: 접두사 sz 사용 (char* szExample)CString 변수: 접두사 ms 사용 (CString msExample) 함수 인자 네이밍 규칙함수 인자는 언더스코어와 접두사를 사용하여 명명 (int.. 2024. 3. 5.
[용어] PROCESS & THREAD 프로세스(Process)와 쓰레드(Thread)는 둘 다 동시에 여러 작업을 수행하는데 사용되는 개념이지만, 몇 가지 중요한 차이점이 있습니다. 독립성: 프로세스: 각 프로세스는 독립된 메모리 공간을 가지며, 한 프로세스의 오류가 다른 프로세스에 영향을 미치지 않습니다. 각 프로세스는 운영체제에 의해 별도로 관리됩니다. 쓰레드: 쓰레드는 프로세스 내에서 실행되는 여러 실행 흐름으로, 같은 프로세스 내의 쓰레드들은 같은 메모리 공간을 공유합니다. 따라서 쓰레드 간에는 데이터를 쉽게 공유할 수 있습니다. 자원 사용: 프로세스: 각 프로세스는 운영체제로부터 독립적인 자원을 할당받습니다. 이로 인해 프로세스 간 통신이나 데이터 공유에는 별도의 메커니즘이 필요합니다. 쓰레드: 쓰레드는 같은 프로세스 내의 다른 쓰.. 2024. 2. 4.
Dfs와 Bfs의 장단점 깊이 우선 탐색 (DFS - Depth-First Search): 설명: DFS는 그래프나 트리에서 깊은 부분을 우선적으로 탐색하는 알고리즘입니다. 한 경로를 끝까지 탐색한 후, 되돌아와서 다음 경로를 탐색하는 방식입니다. 장점: 간단하고 직관적인 구현이 가능합니다. 깊은 경로를 먼저 탐색하여 목표에 빠르게 도달할 수 있습니다. 단점: 최단 경로를 보장하지 않습니다. 무한 루프에 빠질 수 있으며, 이를 방지하기 위해 방문한 노드를 기록하는 추가적인 공간이 필요합니다. 특정 상황에서는 최적의 해를 찾지 못할 수 있습니다. 너비 우선 탐색 (BFS - Breadth-First Search): 설명: BFS는 그래프나 트리를 가로지르며 너비를 기준으로 우선적으로 탐색하는 알고리즘입니다. 한 노드에서 인접한 노.. 2024. 2. 2.
코드 서명 Windows 윈도우 기반의 코드 서명은 개발자가 제작한 소프트웨어나 파일에 디지털 서명을 적용하는 프로세스입니다. 이는 사용자에게 소프트웨어의 출처와 무결성을 보장하고, 보안 경고를 최소화하는 데 도움이 됩니다. 아래는 Windows 환경에서 코드 서명을 하는 방법에 대한 간략한 가이드입니다: 참고: 코드 서명을 위해서는 디지털 인증서가 필요하며, 이는 신뢰할 수 있는 Certificate Authority(CA)에서 구입하거나 자체적으로 생성할 수 있습니다. 디지털 인증서 생성: 개발자는 디지털 서명을 위한 개인 키와 공개 키를 가지고 있는 디지털 인증서를 생성해야 합니다. 디지털 인증서 저장: 생성한 디지털 인증서와 개인 키는 안전한 곳에 저장되어야 합니다. 개인 키는 노출되지 않도록 주의해야 합니.. 2024. 2. 2.
[ 코더 탈출 ] 함수명명때 생각을 해 봅시다. 우리는 개발을 하면서 함수명 및 인자명을 명명하는 시간이 점점 길어진다는 것을 알 수 있다. 우리팀에서 더 나아가 다른 사람이 더 보기 편한 한번에 알 아 볼수 있는 이름으로 함수 및 인자 명을 결정해야 되는것을 이미 알고 있기 때문이다. 우리가 배울 때 책에서 항상 본 일반적인 함수 명입니다. void foo(), void boo() 에러코드나 함수에서 리턴 되는 값이 있는 경우입니다. bool foo(), LRESULT boo() 이제 함수 이름을 좀 더 알아보기 슆게 만들어 봅시다. int GetSize(), bool IsTerniamte() 좀 더 나아가 함수에 인자 값들이 필요하기 떄문에 넣습니다. int GetSize(TCHAR* Name) int GetSize(std::string Name).. 2013. 8. 20.
[ 코더탈출 ] 구조체 초기화, 동적 할당 초기화 왜 처음만 할까? 구조체 초기화, 동적 할당 초기화 왜 처음만 할까? 구조체 및 동적 항당을 하여 사용하기 위해서 프로그래머들은 여러가지 방법을 사용한다. 하지만 결국 컴파일러가 모든 메모리를 초기화 시켜주는 옵션을 하지 않는 이상 ::ZeroMemory(어디부터,어디까지), memset(어디부터,무엇으로,어디까지)을 사용하여 초기화를 하게 된다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 /****************************************************************************** * _ _ _ _ __ _____ _ _ *| | | | | | | |/ / | __ \ | | | | *| |__| | __ _ __.. 2013. 5. 22.
[코더탈출] 과도한 반복문에는 가능하면 Sleep()을 주자 과도한 반복문에는 가능하면 Sleep()을 주자 과도한 반복문에는 꼭 Sleep()을 주자! 우리는 프로그래밍을 할 때 CPU를 점유하여 빠른 속도로 루틴을 탈출하기를 원한다. 그만큼 많은 자원을 소비하게 되며 빠른 속도를 보장한다. 하지만 이 방법은 내 자신만의 프로그램이 동작 중이거나 단일 Thread프로그램을 만들때만 가능한 이야기다. Windows 프로그래밍을 할때 Command 프로그램이 아닌이상 UI Thread가 존재 할 것이고 기능을 구현하는 Thread가 존재 할 것이다. 결국 시분할 방식의 Thread를 사용하면서 CPU의 점유 상태를 공유하면서 자원을 할당 받고 소비하게 된다. 이러한 멀티 Thread 환경에서는 CPU의 과한 점유를 항상 생각해야 한다. "버튼"을 클릭 할때 Appl.. 2013. 5. 22.
반응형