개발도구76 Visual Studio ] NO Operation 코드 보통 GCC에선 코드의 특정 위치에서 아무 작업도 하지 않고 시간을 잠시 지연시키거나 디버깅 시 브레이크포인트를 목적으로 asm("nop"); 구문을 많이 사용한다. 여기서 asm은 어셈블리를 코드에 삽입할 수 있도록 해주는 GCC 확장이고 nop은 아무 작업도 수행하지 않는 어셈블리 명령어로 프로세서가 이 명령어를 만나면 한 사이클 동안 아무 작업도 하지 않고 넘어간다. asm( "nop"); Visual Studio에서 사용 가능한 NO Operation 코드 그럼 MSVC(Microsoft Visual Studio Compiler) x64 에서는 이와 유사한 방식으로 어떻게 아무 작업도 하지 않으면서 필요시 브레이크포인트를 설정할 수 있는 코드를 작성할 수 있을까? 먼저 __noop; 과 (.. 2024. 12. 9. Visual Studio ] 프로젝트 이름 바꾸기 1. 기존 Project 폴더를 복사/붙여넣기 하여 복사본 생성 2. 복사본 폴더명을 원하는 Project 이름으로 변경 3. 프로젝트 폴더 안 최상위 경로에 이전 프로젝트 이름으로 존재하는 파일 등을(.sln, .vcproj, .vcxproj.filter, .vcxproj.user) 새로운 프로젝트 이름으로 변경 4. .sln 파일과 .vcporj 파일을 텍스트 파일 편집기로 열어서 찾기/바꾸기 기능으로 이전 프로젝트 이름을 새 프로젝트 이름으로 모두 변경 5. .vs 폴더 삭제 (캐시 데이터가 저장된 폴더로 Visual Studio로 프로젝트를 열면 새로 생성됨) 6. 빌드 출력물이 들어있는 x64 또는 x86 폴더 삭제 (빌드하면 새로 생성됨) 7. 새로운 이름의 프로젝트를 Visual .. 2024. 12. 5. Git ] push 또는 pull 할 때 Username과 Password 묻는 경우 1. 인증 방법 Git에서 HTTPS 프로토콜을 사용해 Private Repository에 접근하려고 하는 경우 Username과 Password를 요구한다. 그런데 2021년 부터 패스워드 인증방식은 지원하지 않기 때문에 깃허브의 경우 토큰을 발급받아서 입력해주면 된다. GitHub > 우측 상단 프로필 > Settings > Developer Settings > Tokens (classic) > 토큰의 유효기간을 설정하고 access 허용 범위를 체크로 선택한 후 토큰을 생성한다. 2. 인증 정보 저장 방법이렇게 해도 매번 push/pull 할 때마다 Username과 Password를 묻기 때문에 여간 귀찮은게 아니다. 이를 해결하기위해 git에서는 인증정보를 저장해두는 credential.he.. 2024. 10. 10. Visual Studio ] 빌드 도구 추가 설치하기 시작 - Visual Stduio Installer 실행 수정 클릭 개별 구성 요소에서 키워드로 검색 후 수정 버튼을 눌러 설치 2024. 9. 4. Visual Studio ] 기존 폴더 추가하기 솔루션 탐색기 상다의 모든 파일 표시 버튼 클릭 해당 폴더 우클릭 후 프로젝트에 포함 해당 폴더에 헤더파일이 포함되어 있는 경우 추가 포함 디렉터리에 추가해주자 프로젝트 우클릭 > C/C++ > 일반 > 추가 포함 디렉터리 > 편집 매크로 사용해서 상대경로로 디렉터리 추가해주고 세미콜론으로 구분한 뒤 적용 2024. 8. 24. VSCode ] 코드 접기, 펼치기 단축키 Windows 기준 전체 접기 : Ctrl + K + 0(숫자)전체 펼치기 : Ctrl + K + J현재영역 접기 : Ctrl + Shift + [현재영역 펼치기 : Ctrl + Shift + ] 2024. 8. 10. VSCode ] 리눅스 시스템에 SSH로 연결하여 원격 작업하기 먼저 해당 Linux 시스템에 SSH가 설치되고 enabled 상태여야 한다. $ sudo apt update$ sudo apt install openssh-server$ sudo systemctl status ssh 원격작업할 PC에서 VS Code 확장 프로그램 Remote Development를 설치한다. 설치 후 우측 Remote Development 아이콘을 누른다. F1을 눌러 팔레트를 열고 Remote-SSH를 검색한 후 Add New SSH Host를 선택한다. "ssh userID@HostIP" 형식으로 입력한다. SSH configuration file 경로를 선택한다. 아래와 같이 config 파일이 생성된다. 다시 F1을 눌러 명령 팔레트를 열고 Remote-SSH를 검색.. 2024. 6. 20. VirtualBox 해상도 조절 장치 > 게스트 확장 CD 이미지 삽입 후 설치 보기 > 게스트 디스플레이 크기 자동 조정 선택 만약 이렇게 해서 안되면 시스템 종료 후 > 설정 > 디스플레이 > 그래픽 컨트롤러를 VMSVGA에서 VBoxVGA로 변경 보기 > 가상 화면 1 > 해상도 조정 2024. 6. 6. LTSpice 설치 및 간단 사용법 LTSpice 는 Analog Devices 사에서 무료로 배포하는 전자회로 시뮬레이터다. 다운로드 링크 :https://www.analog.com/en/lp/002/tools/ltspice-simulator-kr.html 간단 사용법 Ctrl + N 을 눌러 New Schemtaic을 만든다. P를 눌러 부품검색창을 켤 수 있다. 대표적인 부품들은 단축키를 누른 뒤 화면의 원하는 위치에 배치시킬 수 있다. 배치 도중 Ctrl + R을 누르면 부품을 90도 씩 회전할 수 있다. W 단축키를 눌러 회로를 연결할 수 있다. 부품을 우클릭하여 속성을 편집할 수 있다. N을 눌러 측정할 곳에 Label을 붙일 수 있다. Del 키를 눌러 부품을 삭.. 2024. 5. 11. Visual Studio ] C4996 에러 해결 Visual Studio에서 C4996 에러가 나는 이유는? MSVC(Microsoft Visual C++ Compiler)는 보안 및 안전성과 관련된 이유(주로 버퍼 오버플로우 같은 보안 취약점 이슈)로 특정 함수들을 deprecated(사용 중단) 처리하였는데, 사용자가 이러한 비권장 함수를 사용할 때 C4966 경고를 발생시키고 더 안전한 대안인 _s가 붙은 함수를 선택하도록 유도하고 있다. 해결방법 1 : 해당 소스파일에서 C4996 경고를 끄는 법 소스파일 최상단에 "#define _CRT_SECURE_NO_WARNINGS" 를 추가한다. #define _CRT_SECURE_NO_WARNINGS 해결방법 2 : 해당 프로젝트에서 C4996 경고를 끄는 법 프로젝트 우클릭 > 속성 모든 구성, 모.. 2024. 5. 2. Eclipse ] Task Tags 기능 Eclipse 기반 IDE에서 사용할 수 있는 Task Tags 기능은 소스 코드 내 주석을 통해 할일 목록을 관리하는데 유용하다. 개발자가 아래 그림과 같이 TODO, FIXME 같은 태그를 포함한 주석을 추가하면 Eclipse에서는 이러한 태그가 포함된 주석을 자동으로 인식하여 스크롤바에도 표시를 해주고 Tasks view를 통해 한곳에서 TODO 목록을 확인할 수도 있다. 특히 stub 함수를 만들고 나중에 구현하려고 할 때 유용하게 사용한다. 2024. 4. 28. Tera Term ] XMODEM 옵션 수정하는 법 테라텀에서 XMODEM protocol의 전송 옵션을 수정하기 위해서는 테라텀이 설치된 경로에서 TERATERM.INI 파일을 찾아 수정하면 된다. 디폴트 경로는 다음과 같다.C:\Program Files (x86)\teraterm\TERATERM.INI ; XMODEM option (checksum/crc/1k)XmodemOpt=checksum 옵션은 다음의 세 가지가 있다. Checksum : 패킷 사이즈는 128 바이트이고 오류 검사 방식은 Checksum(8bit modulo)을 사용한다.crc : 패킷 사이즈는 128 바이트이고 오류 검사 방식은 CRC-16을 사용한다.1k : 패킷 사이즈는 1024 바이트이고 오류 검사 방식은 CRC-16을 사용한다. 2024. 4. 25. Visual Studio ] 코드 정렬 단축키 및 저장 시 자동 정렬 확장 프로그램 현재 문서에서 코드 정렬 Ctrl + K, Ctrl + D 선택 영역 코드 정렬 Ctrl + K, Ctrl + F 확장 > 확장 관리 Format on Save for VS2022 설치 예약 후 Visual Studio를 종료하면 설치 된다. 이후 도구 > 옵션 > Format on Save에서 디테일한 설정을 할 수 있다. 2024. 4. 15. Text to ASCII Art 사이트 위 그림처럼 ASCII를 사용해 텍스트나 그림을 표현하는 걸 ASCII 아트라고 하는데 텍스트를 입력하면 ASCII 아트를 자동 생성해주는 사이트가 있어 소개한다. https://www.asciiart.eu/text-to-ascii-art ASCII Art Archive A large collection of ASCII art drawings and other related ASCII art pictures. www.asciiart.eu 3D - 3D ASCII _________ _______ ________ _________ |\___ ___\\ ___ \ |\ ____\|\___ ___\ \|___ \ \_\ \ __/|\ \ \___|\|___ \ \_| \ \ \ \ \ \_|/_\ \_____ .. 2024. 3. 24. 네트워크 성능 및 대역폭 측정 도구 iperf3 iperf3은 두 호스트 간의 네트워크 처리량 테스트를 수행할 수 있는 무료 명령줄 도구이다. 서버와 클라이언트 모드를 제공하며 TCP 또는 UDP 프로토콜로 테스트가 가능하다. 1. 테스트할 두 PC에 iperf3을 설치한다. https://iperf.fr/iperf-download.php iPerf - Download iPerf3 and original iPerf pre-compiled binaries iPerf - The ultimate speed test tool for TCP, UDP and SCTPTest the limits of your network + Internet neutrality test Table of contents : Download iPerf for Windows Downl.. 2024. 3. 10. Git ] Cherry-pick 기능 사용하기 Git Cherry-pick Git cherry-pick은 특정 커밋을 현재 브랜치로 가져오는 데 사용되는 명령어이다. 이 기능은 다른 브랜치의 커밋을 현재 작업 중인 브랜치에 적용하고 싶을 때 유용하다. 예를 들어 master 브랜치에서 dev/featureA, dev/featureB 브랜치를 만들어 각 기능을 작업하고 있었는데 dev/featureA에서의 버그 수정이나 특정 기능 개선 작업을 한 것을 dev/featureB 브랜치에도 반영하고 싶을 때 사용할 수 있다. 다만, 이 기능을 유용하게 쓰려면 평소 커밋을 특정 기능이나 수정사항 단위로 잘해놔야한다. 1. 특정 커밋 적용하기 git cherry-pick c0a1b2c3 2. 여러 커밋 적용하기 git cherry-pick c0a1b2c3 d4.. 2024. 3. 3. Git ] stash 기능 사용하기 StashGit stash는 작업중이던 코드를 임시로 저장하는 데 사용되는 기능이다.이 기능을 사용하면 작업 중인 변경사항을 임시로 저장해두고, 깨끗한 디렉토리 상태로 되돌린 후 나중에 필요할때 다시 변경사항을 불러올 수 있기 때문에 하던 작업을 잠시 중단해야하는 상황에서 매우 유용하게 사용된다. 개인적으로는 A 브랜치에서 작업을 하다가 B 브랜치로 checkout을 하고 싶은데 커밋하기는 껄끄러울때 자주 사용한다. A 브랜치의 변경사항을 stash 해두고 B 브랜치로 옮겨서 필요한 일을 한 뒤에 다시 A 브랜치로 돌아와서 stash 했던 변경사항을 불러와 작업을 이어갈 수 있다. 이 외에도 a기능과 b기능을 같이작업했는데 각 기능에 관련된 파일만 두번에 걸쳐서 따로 커밋하고 싶을 때 파일별로 일부를 s.. 2024. 2. 29. TortoiseGit ] 두 커밋 간 비교 TortoiseGit 사용 두 커밋 간 비교 프로젝트 폴더에서 마우스 우클릭 > TortoiseGit > Show Log Shift를 누른 상태에서 비교하려는 두 커밋을 선택하고 우클릭 > Compare revisions 2024. 1. 26. Git ] 이전 커밋의 코드 상태 확인하기 커밋 히스토리를 변경하는게 아니라 이전 커밋의 코드 상태를 확인하려면 다음과 같은 방법으로 가능하다. 1. 이전 커밋으로 이동 git checkout ex) git checkout HEAD~1 # 직전 커밋 참조 위해 이동 2. 최신커밋으로 돌아오기 git checkout - 2024. 1. 18. Git ] 이전 커밋에서 branch 생성하기 1. 이전 커밋 로그를 확인 git log --oneline 2. 현재 브랜치 확인 git branch 3. 특정 커밋으로부터 새로운 브랜치 생성 git branch ex) git branch feature 9a124ef 4. 새로운 브랜치로 전환 git checkout ex. git checkout feature git checkout 명령어를 사용해 브랜치를 전환하면 해당 브랜치의 헤드로 이동하면서 작업 디렉토리의 파일들도 해당 브랜치의 최신 커밋 상태로 업데이트 된다. 위 경우에는 이전 커밋으로부터 새로운 브랜치를 생성했기 때문에 새로운 브랜치의 HEAD는 이전 커밋을 가리키게 되므로 작업 디렉토리가 해당 커밋의 상태로 변경된다. 혹은 아래 방법으로 위 두 단계를 한번에 할 수 있다. # 새로운 브.. 2024. 1. 16. StarUML ] 텍스트 줄바꿈(new line) 하는 법 단축키 Ctrl + Shift + W 사용 또는 속성에서 Format - Word Wrap 체크 이렇게 하면 박스의 크기를 flexible하게 조절할 수 있고 텍스트의 경우 박스의 너비를 넘어가는 경우 줄바꿈 된다. 2024. 1. 7. Visual Studio ] C4819: 현재 코드 페이지(949)에서 표시할 수 없는 문자가 파일에 들어 있습니다. 한글버전 Visual Studio를 사용하다보면 아래 경고가 뜰 때가 있다. C4819: 현재 코드 페이지(949)에서 표시할 수 없는 문자가 파일에 들어 있습니다. 기본적으로 소스파일, 헤더파일을 만들고 한글 주석을 다는 경우 인코딩이 ANSI로 바뀐다. 파일을 메모장으로 열어보면 알 수 있다. 이게 문제가 되므로 인코딩을 UTF-8로 다시 바꿔주면 된다. 해결방법 1 파일 선택 상단 메뉴의 파일 - 우클릭 - 다른이름으로 ... 파일 저장 - 인코딩하여 저장 선택 ... 파일이 이미 있습니다. 바꾸시겠습니까? 라는 문구가 뜨면 예 선택 인코딩을 UTF-8로 변경하여 저장하면 된다. 참고. 유니코드 - 코드 페이지 1200은 UTF-16을 의미한다. 해결방법 2 이미 만들어진 파일의 경우 위의 방법으로.. 2023. 11. 25. 공유기 간의 IP 충돌문제 해결 iptime 공유기는 기본적으로 내부 IP주소를 192.168.0.1로 사용하는데, 동일 외부망과 연결된 다른 공유기가 이미 해당 내주 IP주소를 사용중이라면 "내부 네트워크와 동일한 대역의 ip주소가 검출되었습니다"라는 오류가 뜬다. 이 경우 공유기 설정창에 들어가 고급 설정 - 내부 네트워크 설정 화면에서 내부 IP주소를 192.168.x.1 등 다른 주소로 설정해주면 해결된다. 2023. 11. 15. Git, TortoiseGit ] 커밋 메시지 수정하기 최근 커밋의 메시지 수정하기 1. 터미널로 하는 방법 git commit --amend -m '수정할 메시지' 2. Tortoisegit으로 하는방법 우클릭 commit을 누르고 Amend Last Commit 에 체크한 후 수정하면 된다. 이전 커밋의 메시지 수정하기 이때는 터미널 명령어를 사용하게 더 간편한다. 먼저 git rebase 명령에 대해서 알아야 한다. git rebase는 기존 커밋 히스토리를 변경하거나 정리하기 위해 사용되는 명령어인데 git rebase -i 와 같이 -i(interactive) 옵션을 사용하면 커밋 메시지를 수정할 수 있다. 1. 먼저 $ git reflog 명령 또는 GUI 툴로 메시지를 수정하려는 커밋이 몇번째 위치해있는지 확인한다. 2. 만약 수정하려는 커밋이 .. 2023. 11. 4. Git ] reset 옵션 차이, soft, mixed, hard git reset --soft : 커밋 기록을 지우고 인덱스(staging area)와 working directory의 파일시스템은 변경하지 않고 유지하려면 soft 옵션을 사용한다. git reset --mixed : HEAD는 해당 commit ID를 가르키고 인덱스도 초기화되지만 working directory는 그대로 유지한다. git reset --hard :인덱스를 지우고 working directory의 추적된 모든 파일을 reset할 커밋 당시의 상태로 되돌리려면 hard 옵션을 사용한다. $ git reset --hard ebbbca3 $ ls a.txt b.txt c.txt $ git reset --soft ebbbca3 $ ls a.txt b.txt c.txt d.txt e.txt .. 2023. 10. 27. .gitignore 자동생성 웹서비스 https://gitignore.io/ gitignore.io Create useful .gitignore files for your project www.toptal.com 위 사이트에서 개발환경과 언어를 입력하면 .gitignore 스크립트를 자동생성해준다. 2023. 10. 13. hrping ] ping(네트워크 응답시간) μs 단위로 측정하기 ping은 주어진 호스트에 ICMP (Internet Control Message Protocol) 패킷을 보내고 호스트가 이 패킷에 응답할 때까지 걸리는 시간을 측정하는 것을 말한다. ping 명령은 네트워크의 성능을 평가하고 호스트 간의 연결 상태를 확인하는 데 유용하게 사용될 수 있다. hrping은 고급 ping 도구로 윈도우의 ping 명령어보다 더 많은 옵션과 정보를 제공하는 프리웨어이다. 윈도우의 ping 명령은 응답시간이 milliseconds 단위로 표시되는데 hrping을 사용하면 microseconds 단위의 응답시간을 측정할 수 있다. 다운로드 링크 : https://www.cfos.de/en/ping/ping.htm Ping Utility hrPING v5.07 - cFos Sof.. 2023. 10. 11. Visual Studio ] 코드 접기, 펼치기 단축키 Ctrl + M + O : 현재 파일 접기 Ctrl + M + L : 현재 파일 펼치기 Ctrl + M + P : 현재 파일 펼치고 outlining도 없애기 Ctrl + M + M : 현재 커서가 있는 섹션 접기 또는 펼치기 2023. 10. 5. Notepad++ ] 수정된 파일 자동으로 새로고침하기 (파일 모니터링) 보기 - 모니터링 파일의 변화를 모니터링하는 리눅스의 tail -f 명령어와 같은 기능이다. 설정 - 환경설정 - 기타 - 파일 상태 자동 확인 설정으로 가능하다. 2023. 9. 15. 'const char []'에서 'char *'(으)로 변환할 수 없습니다. 아래 방식으로 해결 가능 또는 프로젝트 우클릭 속성 - C/C++ - 언어 - 준수모드를 아니오로 설정 char* str = "Hello World\r\n";// error const char* str = "Hello World\r\n"; char str[] = "Hello World\r\n"; const char* pchar = str; 2023. 9. 15. 이전 1 2 3 다음