소연의_개발일지
article thumbnail
[Git] .gitignore 파일 생성과 규칙 및 문법
개발공부/Git & Git gui 2023. 9. 18. 12:35

.gitignore 파일이 필요한 이유 소스코드를 변경할 때 git을 사용하여 커밋을 할 수 있으나 github에 업로드하지 말아야 할 파일, 보안상 올리지 말아야 할 파일, 가상환경 파일들은 .gitignore 파일 내에 지정하여 git의 관리에서 무시하게 둘 수 있다. 즉, .gitignore 파일을 사용하면 Git에게 특정 파일이나 디렉토리를 무시하도록 지시할 수 있다. .gitignore 파일 생성 터미널에서 파일을 생성할 때는) touch .gitignore 명령어를 사용하여 파일을 생성할 수 있다. 중요한 점은 파일 이름이 마침표로 시작해야 하며, 프로젝트 폴더의 루트에 있어야 한다. touch .gitignore git desktop을 사용하면) 상단의 [Repository] → [Repos..

article thumbnail
[C++] MFC Bitmap Image로 버튼 만들기, 클릭시 이미지 전환
개발공부/C++ 2023. 9. 17. 21:32

프로젝트 이름은 mfcBitmapBtn으로 생성했다. 그림 리소스 추가 방법 1. 프로젝트 - 우클릭 - [리소스 추가]를 클릭한다. 2. 왼쪽에서 [Bitmap]을 클릭한 뒤 [새로 만들기]를 누른다. 3. 우측 하단 속성 탭에서 이름과 파일 이름을 변경해 준다. 같은 파일을 복사 - 붙여넣기 해서 Off 파일도 만들어 줬다. 저장된 파일을 확인해 보자. 상단의 [빌드] → [솔루션 빌드] 버튼을 누른 후 프로젝트 리소스 파일에 들어가면 경로상에서 리소스 파일이 이름대로 저장된 모습을 확인할 수 있다. 버튼 이미지 다운로드 이미지 출처 https://www.figma.com/community/file/1027548517256824848 Toggle Buttons 3D | Figma Community F..

article thumbnail
[C++] MFC CImage 이미지 생성, 저장, 로드, 움직이는 사각형 만들기
개발공부/C++ 2023. 9. 17. 15:56

단축키 ctrl + K + O → 헤더 파일로 이동 C++ 접근 지정자 C++에서 클래스나 구조체의 멤버에 대한 접근 지정자(access specifier)는 총 3가지이다: private, public, protected. 각 접근 지정자에 대한 설명은 다음과 같다. 1. private private으로 지정된 멤버는 해당 클래스 내에서만 접근이 가능하다. 외부에서 직접 접근하려고 하면 컴파일 에러가 발생한다. 기본적으로 클래스의 멤버들은 private으로 설정된다. class MyClass { private: int myPrivateVar; }; 2. public public으로 지정된 멤버는 어디서든지 접근이 가능하다. 주로 클래스의 인터페이스로 사용되는 메서드들을 public으로 지정한다. cla..

article thumbnail
[C++] MFC 버튼 생성, 에딧컨트롤 생성, 이벤트 연결, 계산기 만들기
개발공부/C++ 2023. 9. 16. 19:41

버튼 생성하기 드래그 - 앤 드롭 기능으로 버튼을 끌어와서 폼에 넣는다. 버튼 id는 중복이 불가하며 대문자로만 작성할 수 있다. (파이큐티의 객체명과 비슷한 듯) 캡션은 버튼에 작성되는 부분을 수정할 수 있다. BTN_TEST 라고 작성한 후 엔터를 치니 그에 맞게 버튼이 수정됨을 확인할 수 있다. 버튼 이벤트 생성하기 버튼에 클릭 이벤트를 설정하는 방법은 두 가지가 있다. 1. 버튼을 더블클릭해서 바로 더블클릭했을 때 코드로 이동한다. 2. 버튼을 우클릭 - [이벤트 처리 추가] 클릭 - 해당하는 설정값을 클릭한다. 이벤트처리기에서는 어떤 클래스에서 동작할 것인지, 버튼에 대한 이벤트 발생 유형은 어떻게 할 것인지(클릭, 더블클릭, 버튼에 FOCUS,,,)를 설정할 수 있다. 클릭을 의미하는 [BN_..

article thumbnail
[C++] MFC 콘솔창 띄우기, 특정 변수의 값 콘솔창 출력
개발공부/C++ 2023. 9. 16. 16:43

콘솔창 띄우기 디버그 헤더 파일에 #pragma comment(linker, "/entry:WinMainCRTStartup /subsystem:console") 을 작성해 주면 된다. 이렇게 작성해 주자 #ifdef _DEBUG #define new DEBUG_NEW #pragma comment(linker, "/entry:WinMainCRTStartup /subsystem:console") #endif /Debuf나 Release모드 상관없이 콘솔을 실행하고 싶으면 #ifdef, #endif 지우고 #pragma ~ 만 써주면 된다. 특정 변수의 값을 콘솔창에 출력 아래와 같이 함수 위에 추가해 준다. 파일 선언부에 작성해 줘도 됨 #include //cout으로 출력하기 위해 적용예시 #include..

article thumbnail
[C++] MFC 개발환경 설정하기
개발공부/C++ 2023. 9. 15. 17:24

개발환경 설정 C++ 로 새 프로젝트 만들기를 해서 mfc를 검색했는데 아무것도 나오지 않았다... 추가 도구 및 설치를 클릭하여 설치환경으로 들어간다. 왼쪽의 [C++을 사용한 데스크톱 개발] 을 클릭하고, 우측의 설치 세부 정보에서 MFC가 있는 체크박스를 클릭하여 하단의 [수정] 버튼을 눌러 설치해 준다. 다시 Visual studio를 열어서 [새 프로젝트 만들기] 버튼을 클릭하니 MFC앱 새로만들기가 나온다. [MFC 앱] 을 클릭하고 → [다음]을 눌러 프로젝트 구성으로 이동한다. 프로젝트 이름을 작성하고 위치를 설정한다. 그 다음 애플리케이션 종류 옵션을 설정한다. 어플리케이션 종류에서 단일문서, 여러문서, 대화상자 기반등이 있는데 가장 편한 [대화 상자 기반]을 선택한다. [마침]을 클릭하..

[Python] python에서 바이너리 형식의 파일 인코딩,디코딩하기
개발공부/Python 2023. 9. 14. 20:35

바이너리 디코딩이란? 바이너리 디코딩은 이진 데이터를 사람이 읽을 수 있는 형식으로 변환하는 프로세스를 의미한다. Python에서 디코딩하는 방법은 여러가지가 있는데, 그 중 3가지를 소개해 보려고 한다. 소켓통신할 때 이미지를 수신, 전송할 때 base64모듈을 사용해본적은 있지만 아직도 조금 생소한 감이 있다. struct 모듈 사용 struct 모듈은 Python에서 이진 데이터를 특정 형식에 따라 인코딩하는 데 사용되는 모듈이다. 이 모듈을 사용하여 바이너리 데이터를 인코딩하려면 struct.pack()함수를 사용한다. struct.pack()을 사용한 인코딩 struct.pack() 함수는 지정된 형식 문자열을 기반으로 바이너리 데이터를 패킹하여 인코딩한다. 형식 문자열은 인코딩하려는 데이터의 ..

article thumbnail
[c# 오류]System.InvalidOperationException: '많은 UI 구성 요소에서 호출 스레드가 필요하므로 해당 스레드는 STA여야 합니다.'
개발공부/C# 2023. 9. 13. 16:17

오류 내용 System.InvalidOperationException: '많은 UI 구성 요소에서 호출 스레드가 필요하므로 해당 스레드는 STA여야 합니다.' 오류 이유 WPF나 실버라이트에서 타이머는 다른 쓰래드기때문에 UI쓰래드를 접근할때 에러가 난다고 한다. 이럴때는 윈폼과 마찬가지로 인보크를 사용하여 작업을 해야 한다. 해결 방법 // 다른 쓰레드에서 UI 쓰레드 접근하기 => 윈폼과 마찬가지로 인보크를 사용하여 작업 Dispatcher.Invoke(DispatcherPriority.Normal, new Action(delegate { // 실행 할 부분 넣기 })); 이렇게 처리하니 해결되었다. invoke는 동기적으로 실행된다고 한다. 아직 c#이 어렵다.. 참고 링크 https://learn..

[Error] Python mediapipe 사용 중 오류: FileNotFoundError: The path does not exist 해결방법
개발공부/Python 2023. 9. 9. 18:00

개발환경 운영체제: Window 10 64 bit 개발언어: Python 3.11 개발 툴: Pycharm 추가 패키지: mediapipe, Sklearn, Tensorflow, opencv-python 오류 내용 line 264, in __init__ validated_graph.initialize( FileNotFoundError: The path does not exist. 미디어파이프로 졸음인식 코드를 병합하던 과정 중 이런 오류가 생겼다. 스택오버플로우 검색 후 해결 오류 원인 프로젝트의 경로에 유니코드가 아닌 문자가 있을 때 발생: 한국어, 프로젝트의 경로에 "ç" 같이 유니코드가 아닌 문자가 있을 때 발생한다. 해결 방법 파일 경로 순서를 줄인다: 예) 바탕화면, C드라이브에 프로젝트를 생성..

article thumbnail
[Pytube] python 모듈 Pytube로 Youtube 비디오 다운로드하기
개발공부/Python 2023. 9. 8. 20:50

이런 모듈이 있다니 역시 파이썬이다. 없는게 없다..! 모듈에 대해 간단히 설명하자면, 유튜브 비디오를 다운로드 할 수 있는 python 모듈이다. 무료이며 가볍고 라이브러리로 제공하기 때문에 누구나 이 모듈을 사용하여 영상을 다운로드 할 수 있다. 하지만 파이썬 자체에는 깔려있지 않기 때문에 직접 설치해야 한다. Pytube 모듈 설치 pip install pytube 콘솔에 작성하여 설치한다. 인터프리터에 검색하여 설치해도 된다. 전체 코드 from pytube import YouTube import os def downloadYouTube(videourl, path): yt = YouTube(videourl) yt = yt.streams.filter(progressive=True, file_exte..