728x90

수성비전자방입니다. 2021년 10월 5일 Windows 11이 출시되었습니다. 오늘은 Windows 11 설치 방법을 알아보겠습니다. 깔끔하게 쓰기 위해 클린 설치(C드라이브 포맷)를 하겠습니다.

 

*제 컴퓨터는 출시된 지 얼마 안 되었기 때문에 사양이 좋은 것이 확실하므로 사양 점검은 하지 않겠습니다.

(여러분은 알아서 하세요..^^;)

*USB 드라이브를 하나 준비해 주세요.(4GB를 조금 넘는 용량을 차지할 예정이므로 8GB 이상 USB를 준비하실 것을 권장합니다.)

*정품 인증 및 Microsoft 로그인 여부를 미리 확인하시기 바랍니다. Windows 10 정품 인증이 되어 있다면 Windows 11도 자동으로 정품 인증이 되어야 합니다. 다만, 문제가 발생할 수 있으니 설정업데이트 및 보안정품 인증으로 들어가셔서 'Windows가 Microsoft 계정에 연결된 디지털 라이선스를 사용하여 정품 인증되었습니다.'라고 쓰인 것을 확인하시기 바랍니다.(Microsoft 로그인이 되어 있어야 함.)

 

1. Windows 11 설치 미디어 만들기

1. https://www.microsoft.com/ko-kr/software-download/windows11 로 접속합니다.

(사실 이 주소는 뒷부분 버전 숫자를 바꾸면 Windows 8도 설치할 수 있는 만능 주소입니다.)

2. Windows 11 설치 미디어 만들기 또는 Windows 11 디스크 이미지 (ISO) 다운로드를 하시면 됩니다.

저는 ISO Flashing 프로그램이 없어서 Windows 11 설치 미디어 만들기에서 지금 다운로드를 클릭했습니다.

 

3. Windows 11 설치 미디어를 만드는 프로그램을 실행하면 이런 창이 뜹니다. 동의해 줍니다.

 

4. 이 PC에 권장 옵션 사용을 체크 해제하시면 언어를 변경하실 수 있습니다. 에디션은 Windows 11 밖에 없으며, 변경 불가합니다. 다음을 클릭합니다.

 

5. USB 플래시 드라이브를 선택하고 다음을 클릭합니다.

(ISO 파일이 필요하신 분은 2번 과정에서 Windows 11 디스크 이미지 (ISO) 다운로드를 바로 하시면 되는 것이었습니다..)

6. 그러면 Windows 11 다운로드 및 미디어 제작이 진행됩니다.

 

7. 다 끝나면 마침을 클릭하시면 됩니다. 이제 Windows 11을 본격적으로 설치해 보겠습니다.

 

2. Windows 11 설치

1. 컴퓨터를 다시 시작합니다. 컴퓨터가 켜지는 동안 Boot Menu로 진입합니다.

(갤럭시 북 Flex2의 Boot Menu 진입 키는 F10입니다. 켜지는 동안 F10을 연타하시기 바랍니다.)

 

2. Windows 11 설치 USB로 부팅합니다.

 

제 마우스가 블루투스 마우스라서 Windows 설치 중에 쓸 수가 없더라고요. 이 참에 키보드를 이용하여 Windows 설치하는 방법을 다루어 보겠습니다.(마우스로 설치하는 방법은 쉬워서 제가 따로 설명 드릴 필요 없을 것 같아요.)

화면을 보시면 어떤 키를 눌렀을 때 버튼이 눌리는지 나와 있습니다. 예를 들어 위 사진에 '다음(N)'이라고 되어 있죠. 이럴 키를 Alt 키와 함께 누르시면 됩니다.(예: Alt+N)

3. Alt+N을 누릅니다.

 

4. Alt+I를 누릅니다.

 

5. 제품 키가 없음을 선택하겠습니다. Alt+I를 눌러 주세요.

 

6. Windows 10에서 사용하던 에디션을 선택(방향키 이용)하신 후 Alt+N을 누르세요.

저는 Windows 10 Pro를 사용했기 때문에 Windows 11 Pro를 선택했습니다.

 

7. Alt+A를 눌러 동의합니다.

8. Alt+N을 눌러 다음으로 넘어가세요.

 

9. 사용자 지정: Windows만 설치(고급)(C)을 선택하겠습니다. Alt+C를 누르시면 되는데, 여기서는 방향키와 엔터키로도 됐던 것 같네요.

 

10. 방향키로 포맷할 파티션을 선택합니다.(D, E드라이브 등을 선택하지 않도록 주의.)

11. (새로 만들기)Alt+E를 누릅니다.

12. (포맷)Alt+F를 누릅니다.

 

13. 방향키와 엔터키를 이용하여 확인을 누릅니다.

 

14. 방금 포맷한 파티션이 선택된 상황에서 Alt+N을 누릅니다.

 

설치가 되는 동안 기다립니다.

 

기다립니다.

 

잠시만 기다립니다.

 

여기부터는 방향키와 Tab키, 엔터키를 이용하여 선택해야 합니다.

15. 일단 엔터를 누릅니다.

(사실 여기부터는 어느 키를 눌러야 하는지 잘 기억이 안 납니다. 죄송합니다..)

 

16. 엔터키를 누릅니다.

 

17. 방향키로 원하는 것(아마도 '건너뛰기'일 듯)을 잘 선택하신 후 엔터키를 누릅니다.

 

제가 노트북에 모니터를 연결한 채로 Windows 11을 설치하고 있었는데요, 기다리다 보면 디스플레이 복제가 되네요.

 

18. PC 이름을 지정한 후 다음을 누릅니다.

(Tab키와 방향키를 이용했던가..?)

그러면 재부팅됩니다.

 

19. 방향키로 설정을 선택합니다.(Tab키를 눌러야 할 수도 있음.)

20. Tab 키로 다음을 선택하고 엔터키를 누릅니다.

 

21. Windows 10에서 쓰던 Microsoft 계정으로 로그인합니다.

(정품 인증을 위함. 사실 메인보드를 통해서도 정품 인증이 되기 때문에 꼭 Microsoft 계정으로 정품 인증할 필요는 없는데...)

 

(비밀번호 입력)

 

22. 제 노트북이 지문 인식이 되는 노트북이라서 이런 화면이 뜨네요. 설정해 보겠습니다.

 

23. 지문 센서에 지문을 인식시킵니다. 처음 몇 번은 정직하게 지문을 인식시키시기 바랍니다.

 

24. 몇 번 인식시키고 나면 다른 각도로 시도하라고 합니다. 이때부터 여러 각도로 시도합니다.

 

25. 다음

 

26. 지문 인식이 안 될 때를 대비하여 PIN을 만듭니다.

 

(PIN 만들기)

 

27. 버추얼박스에서 Windows 11 프리뷰를 써봤더니 이렇게 뜨네요. 저는 새 장치로 설정하겠습니다.

 

28. 원하시는 대로 설정합니다.

 

29. 원하시는 대로 설정합니다.

 

30. 진단 데이터를 Microsoft에 보내기에서 선택 항목을 포함하시면 인사이더 프리뷰를 쓰실 수 있게 됩니다.(인사이더 프로그램에 가입되어 있고, 프리뷰를 설치한다는 전제 하에.)

프리뷰를 써보실 것이 아니라면 필수 요소만 보내시는 게 좋다고 생각합니다.

 

31. 원하시는 대로 설정합니다.

 

32. 원하시는 대로 설정합니다.

 

33. 원하시는 대로 설정합니다. 저는 이왕 광고를 봐야 한다면 제가 관심 있는 분야에 대한 광고를 봐야 한다고 생각하는 편입니다.(즉, 저는 '예'를 선택했습니다.)

 

34. 원하시는 대로 선택합니다.(저는 OneDrive를 안 써서 '파일 백업 안 함'을 선택했습니다.)

 

설치가 완료되었습니다.(배율 무엇?)

 

3. 드라이버 설치

노트북 쓰시는 분들은 드라이버를 설치하셔야 할 겁니다. 저는 유선랜을 쓰다 보니 인터넷, 터치패드, 터치스크린, 블루투스 정도는 가능한 상태가 되었네요. 갤럭시 북 Flex2 사용자는 Microsoft Store에서 Samsung Update를 설치하신 후 남은 드라이버를 설치하시면 됩니다.

 

4. 블루투스 마우스 연결과 디스플레이 설정, 정품인증

[블루투스 마우스 연결]

저는 노트북의 터치패드, 터치스크린을 쓸 수 있게 되었지만, 이 글을 읽으시는 분들 중에는 데스크톱 사용자도 계실 수 있으니 블루투스 마우스 연결까지는 키보드로 진행하겠습니다.

 

1. Windows+I를 눌러 설정으로 진입합니다.

 

2. ↓ 키를 눌러 Bluetooth & 장치를 선택하신 후 엔터를 누릅니다.

 

3. Tab을 눌러 장치 추가를 선택하신 후 엔터를 누릅니다.

 

4. Bluetooth가 선택된 상태에서 엔터키를 누릅니다.

 

5. Tab 또는 Shift+Tab을 눌러 블루투스 마우스를 선택하신 후 엔터키를 누릅니다.

 

6. 블루투스 마우스가 연결되었습니다. 완료를 클릭합니다.

 

[디스플레이 설정]

7. 설정 창에서 시스템을 클릭합니다.

8. 디스플레이를 클릭합니다.

 

9. 배율이 150%로 되어 있네요.

 

100%로 변경해 주었습니다.

 

10. 복제로 되어 있는 디스플레이도 확장으로 변경해 주었습니다.

 

확장 디스플레이 설정 완료!

Windows 11에서는 여러 가지 옵션이 생겼으니 듀얼모니터 쓰시는 분들을 확인해 보세요.(펼침 메뉴를 펼쳐 보세요.)

 

[정품 인증]

11. 설정 창에서 시스템을 클릭합니다.

12. 정품 인증을 클릭합니다.

 

13. 정품 인증이 잘 되어 있네요.

 

5. 수성비전자방 필자가 주로 하는 설정

이 설정들은 제가 하는 설정일 뿐, 무조건 좋은 설정인 건 아닙니다!

글이 너무 길어져서 접은 글로 작성하겠습니다. 궁금한 부분만 클릭해서 보세요.

 

[스피커 선택]

더보기

1. 작업 표시줄에서 제어센터를 엽니다.(제어 센터 맞나?)

2. 음량 옆 >를 클릭합니다.

3. 작동시킬 스피커를 선택합니다.

 

[집중 지원 설정]

더보기

알림 센터를 엽니다. 그 다음 집중 지원 설정을 클릭합니다.

 

디스플레이를 복제할 때를 끕니다.

 

[파일 탐색기 설정(즐겨찾기, 숨긴 파일, 확장명 관련 설정)]

더보기

파일 탐색기에서 ...을 클릭하고 옵션으로 들어갑니다.

 

*파일 탐색기 열기: Windows 10에서는 즐겨찾기로 열리게 하고 써왔는데, 생각해 보니 내 PC로 하는 것이 더 좋겠더라고요. 저는 터치스크린을 쓰기도 하니까...

*즐겨찾기에서 최근에 사용된 파일 표시, 즐겨찾기에서 최근에 사용된 폴더 표시는 모두 끕니다.(이건 진짜 취향 차이임.)

 

보기 탭에서

*숨김 파일, 폴더 및 드라이브 표시를 선택합니다.

*알려진 파일 형식의 파일 확장명 숨기기 끕니다.(그래야 확장명이 모두 보임.)

*확인란을 사용하여 항목 선택: 원래 저는 안 좋아하는 기능이었는데 Windows 11에서는 이게 기본값이네요. 이건 한 번 써 보겠습니다.

 

[작업 표시줄 항목, 모서리 아이콘]

더보기

작업 표시줄을 오른쪽 클릭하고 작업 표시줄 설정에 들어갑니다.

 

*검색: 끕니다. 그냥 시작 누르고 검색해도 똑같거든요.^^

*가상 터치 패드: 켭니다.

 

결과.

 

[시작, 점프 목록 및 파일 탐색기에서 최근에 연 항목 표시 끄기]

더보기

설정→개인 설정→시작

 

시작, 점프 목록 및 파일 탐색기에서 최근에 연 항목 표시를 끕니다.

 

[Print Screen을 사용하여 화면 캡처 열기]

더보기

설정접근성키보드으로 들어가셔서 화면 인쇄 단추를 사용하여 화면 캡처 열기를 켭니다.

제가 초등학생 때 Print Screen을 배웠는데 어느 순간부터 화면 캡처만 쓰게 되고, Print Screen을 잘 안 쓰게 되더라고요. 그래서 그냥 Print Screen을 화면 캡처로 대체해 보았습니다.^^

(그나저나 Print Screen을 화면 인쇄로 번역하다니...-_-)

 

[BitLocker 끄기]

더보기

C드라이브에 BitLocker가 걸려 있네요. 이러다가 TPM 모듈 잘못 건드리면 C드라이브는 잠기게 됩니다. 복구키를 잘 백업해 두면 되긴 하지만, 저는 그냥 BitLocker를 끄겠습니다.

 

설정업데이트 및 보안장치 암호화로 들어갑니다.

 

BitLocker 드라이브 암호화를 클릭합니다.

 

BitLocker 끄기를 클릭하시면 BitLocker를 끄실 수 있습니다.

(BitLocker를 계속 쓰실 분은 복구 키 백업을 클릭하세요.

 

BitLocker가 꺼졌습니다.

 

[Palm Rejection(펜을 입력하는 동안 손터치 무시)]

더보기

터치스크린을 쓰시는 분들은 팜 리젝션을 잘 적용해 두시면 좋습니다.

설정Bluetooth & 장치펜 및 Windows Ink로 들어갑니다.

 

펜을 사용하는 동안 터치 입력 무시를 켭니다.

이제 펜을 쓰는 동안에는 손터치를 인식하지 않습니다.

 

[Microsoft Edge(동기화, 새 탭 설정, 검색 엔진 설정)]

더보기

엣지를 실행하고 MS계정 동기화를 실행합니다.

 

새 탭 우측 상단 톱니바퀴 아이콘을 누른 뒤 사용자 지정을 클릭합니다.

 

*빠른 연결 끕니다!

*최신 Bing 검색 끕니다!

*인사말 표시 끕니다!

*배경을 변경합니다.

*콘텐츠 끕니다!

∴깔끔해졌습니다.

 

아예 엣지 설정으로 들어가서 개인 정보, 검색 및 서비스주소 표시줄 및 검색으로 들어간 뒤

 

검색 엔진을 Daum으로, 새 탭에서 검색 상자 또는 주소 표시줄 사용을 주소 표시줄로 설정합니다.

(다음 검색에서 검색어 뒤에 '/구글'을 붙이면 구글 검색 가능, '/네이버' 붙이면 네이버 검색 가능. 일석삼조의 효과.)

 

[가상 데스크톱]

더보기

가상 데스크톱을 하나 더 만들어 둡니다. 그러면 Ctrl+Windows+←/→로 데스크톱을 쉽게 전환할 수 있게 됩니다.

몰컴하다가 누가 방에 들어오면 재빨리 Ctrl+Windows+→을 눌러 빈 화면으로 전환할 수 있는 것이죠.

(이제 저는 몰컴하다가 혼날 나이는 아닙니다만...)

 

[이상한 앱 제거]

더보기

TikTok이 왜 기본 앱으로 있는 것이죠??

 

[앱 설치]

필요한 앱을 설치합니다.

 

저의 글을 읽어 주셔서 감사합니다.

긴 글 읽어 주셔서 감사합니다. Windows 11 써보니까 정말 예쁘네요. 듀얼모니터, 터치스크린 쓰기에 좋아지기도 했고요. 저는 만족스럽습니다. 다만, 저사양 컴퓨터에서 쓰기에는 불편할 것 같네요(Windows 10보다 무거운 감이 있음). Windows 11이 잘 정착되었으면 좋겠습니다. 다음에 만나요!

 

추신)Microsoft Edge에서 진학어플라이 접속이 불가합니다. IE 또는 크롬으로 접속하라고 하네요. Windows 11에 IE는 없고, 제 친구의 말에 따르면 크롬에서도 진학사 원서접수가 잘 안 되는 모양입니다. 대입을 준비하시는 분들은 주의하시기 바랍니다.(진학어플라이 측에서 빨리 엣지 대응 업데이트를 해줬으면 좋겠네요.)

 

댓글을 달아 주세요

728x90

수성비전자방입니다. 제가 구매한 라즈베리파이4 Model B는 8GB RAM이 탑재되어 있습니다. 32bit 운영체제를 설치하면 4GB RAM까지밖에 못 쓰기 때문에 64bit 운영체제를 설치해야 합니다. 다만, RaspberryPi OS의 64bit 버전은 Beta 버전이더라구요. 그래서 Ubuntu를 설치하기로 했습니다. RAM을 적게 잡아먹게 하기 위해서 Ubuntu Server를 설치했습니다. GUI를 쓰실 분들은 Ubuntu Desktop을 설치하시기 바랍니다.

 

시작하기 전에...

USB 부팅을 하기 위해 부트로더를 업그레이드해야 한다고 합니다. Raspberry Pi Imager를 통해 쉽게 하실 수 있습니다.

이 글에서는 부트로더 업그레이드와 Ubuntu 설치를 모두 Raspberry Pi Imager를 통해 진행하겠습니다. 아래 주소에서 내려받으실 수 있습니다.

https://www.raspberrypi.org/software/

 

Raspberry Pi OS – Raspberry Pi

The Raspberry Pi is a tiny and affordable computer that you can use to learn programming through fun, practical projects. Join the global Raspberry Pi community.

www.raspberrypi.org

 

PC에서 할 일

1. 부트로더 EEPROM을 넣을 Micro SD를 PC에 삽입합니다.

(Micro SD 슬롯이 없는 PC를 사용 중이라면 Micro SD 어댑터를 사용하세요.)

 

2. Ubuntu Server를 설치할 USB를 PC에 연결합니다.

 

3. Raspberry Pi Imager를 이용합니다.

3-1. Micro SD에는 부트로더를 설정 파일을 넣습니다.

Operating SystemMisc utility ImagesBootloader로 들어가시면 SD Card Boot, USB Boot, Network Boot가 있습니다. 사실 부팅 우선순위에 관한 거라서 Network Boot만 아니라면 뭘 눌러도 크게 상관은 없습니다. 그렇지만 저는 USB Boot를 선택했습니다.

3-2. USB 플래시 드라이브에는 Ubuntu Server 24.01을 설치했습니다.

Operating SystemOther general purpose OSUbuntuUbuntu Server 21.04를 선택했습니다.

 

32-bit 버전과 64-bit 버전이 따로 있으니 주의하세요! 64-bit 운영체제를 선택하시기 바랍니다.

Ubuntu Server 20.04.3 LTS는 USB 부팅으로 설치했을 때 오류가 나는 모양이더라구요. 21.04로 설치하니 해결되었습니다.

*드라이브 선택 시 다른 저장장치를 선택하지 않도록 주의하세요! SD 카드와 USB 드라이브를 서로 헷갈릴 수 있으니, SD 카드 넣고 부트로더 설치하고, SD카드 뺀 후 USB 꽂고 우분투 설치하는 것을 추천드립니다.

 

설치가 완료되면 포맷하라는 경고창이 뜹니다. 드라이브의 포맷을 Windows가 인식하지 못해서 뜨는 창이므로, 포맷하지 마시고 취소를 눌러 줍니다.

 

4. EEPROM 파일이 있는 Micro SD를 라즈베리파이4에 넣고 USB-C 전원선을 연결합니다.

 

5. 모니터에 초록색 화면이 뜨면 EEPROM이 성공적으로 설치된 것이라고 합니다.(오류 나면 재부팅하세요.)

*. EEPROM 설치는 10초 정도 걸린다네요. 너무 금방 되어서 기다린다는 느낌도 없습니다.

 

6. 이제 USB 드라이브를 꽂아야 하는데요, USB 3.0을 이용해야 빠르겠죠? 라즈베리파이4의 USB 3.0 포트는 너무 뻑뻑합니다. USB가 들어가질 않더라고요. 그나마 USB 2.0 기기를 꽂으면 좀 들어갑니다.

그러니 일단 주변에 보이는 키보드를 USB 3.0 포트에 꽂고, 다시 뽑아 보세요. 파란 가루가 묻어 나올 겁니다. 이걸 여러 번 반복하세요.

 

7. 이제 USB 3.0 드라이브를 꽂으면 잘 들어갑니다.

(대체 왜 이렇게 만든 거지?)

 

8. 전원을 넣으면 이런 화면이 뜰 거예요.

 

9. ubuntu login: 이라고 뜨면 초기 ID인 ubuntu를 입력합니다.(물론 입력 후 엔터)

 

10. Password:가 뜰 텐데 초기 비밀번호인 ubuntu를 입력하고 엔터칩니다.

비밀번호 입력할 때에는 키보드를 눌러도 화면에 아무것도 뜨지 않습니다. 그냥 잘 누르시면 됩니다.

 

11. 비밀번호를 변경하라고 뜹니다. Current password에 ubuntu를 입력하시고, 그 다음 New password에 원하시는 비밀번호를 입력하신 다음, Retype new password에서 재확인하시면 됩니다.

 

(11번에 설명한 것)

 

12. Ubuntu Server 설치가 끝났습니다! 이제 마음껏 사용하시면 됩니다.

 

13. 저는 일단 sudo halt로 전원을 끌게요.

 

저의 글을 읽어 주셔서 감사합니다.

사진을 찍은 지 오랜 시간 후에 글을 작성해서 오류가 있을 수 있는 점 양해 부탁드립니다.(댓글로 지적을 받겠습니다.)

다음에 만나요!

댓글을 달아 주세요

728x90

수성비전자방입니다. 몇 달 전 라즈베리파이4 Model B를 구매하였습니다. 사용해 본 지 오래되었는데, 이제서야 글을 쓰네요. 오늘은 하드웨어 구성에 대하여 기록하겠습니다.

 

사진이 많이 흔들렸네요. Raspberry Pi 4 Model B 8GB RAM입니다. 서버를 구동할 거라서 RAM 용량이 큰 모델을 구매했습니다.

 

별매품

라즈베리파이4는 전작과 다르게 전원 공급이 USB Type-C를 통해 이루어집니다. 또한 15W 이상의 전력이 공급되어야 합니다. 전압은 5V여야 한다네요. 따라서 5V 3A USB-C 전원 어댑터를 구매했습니다.(보통 라즈베리파이 구매처에서 어댑터를 구할 수 있습니다.)

*USB 포트에서 출력되는 전류가 총 500mA 이하이면 5V 2.5A 어댑터를 써도 되나 봅니다. 그런데 어차피 5V 2.5A 어댑터보다는 5V 3A 어댑터를 구하는 것이 더 쉽습니다.ㅋ

 

우분투를 설치할 USB 드라이브입니다. USB-C를 지원하긴 하지만, 라즈베리파이4의 USB-C 포트 버전을 모르기 때문에 USB-A를 이용할 것입니다.

(참고)Sandisk Ultra Dual Drive USB Type-C 후기와 벤치마크(USB-A, USB-C)

 

 

라즈베리파이4에서 USB로 부팅하기 위해서는 부트로더를 업데이트해야 한다고 합니다. 이때 사용할 Micro SD 카드입니다. 이건 예전에 제가 구입해 두었더라구요.

 

HDMI to Micro HDMI 젠더입니다. 이것도 서랍 뒤져서 찾았습니다.

라즈베리파이4는 HDMI 포트가 없고, Micro HDMI 포트만 2개 있기 때문에 이런 젠더를 써야 합니다.

젠더는 크기가 크기 때문에, Micro HDMI 포트 2개를 모두 사용하시려면 젠더 말고 케이블을 쓰셔야 할 겁니다.

 

라즈베리파이4 Model B 구경, 사양 알아보기

위에서 본 모습입니다.

 

[USB-A 포트와 이더넷 포트]

*USB 2.0 Type-A 포트 2개

*USB 3.0 Type-A 포트 2개

*Gigabit Ethernet(유선인터넷)

 

일단, 전작 대비 좋아진 점은 USB 3.0이 지원된다는 점입니다!

참고로, Power over Ethernet(PoE)이 가능하다는데, 저는 PoE를 써본 적은 아직 없습니다.

 

[전원 공급 및 출력 단자]

*USB Type-C 포트: 전원 케이블을 꽂는 곳입니다. 다만, 데이터 전송도 가능하긴 한가 봅니다.

*Micro HDMI 포트 2개(up to 4kp60 supported)

*3.5mm 스피커 단자

 

디스플레이 출력 단자가 Micro HDMI 포트인데, 일반적으로는 HDMI를 쓰죠? 요즘은 DP 쓰는 사람도 많고... 아무튼 Micro HDMI는 흔히 보기는 어렵습니다. HDMI to Micro HDMI 케이블 또는 젠더를 써야 하는 게 좀 아쉽네요. USB-C 포트로 디스플레이를 출력(Alternate Mode)하게 하면 편할텐데 단가가 비싸지려나요..?

 

Micro HDMI 포트에 HDMI to Micro HDMI 젠더(별매품)를 꽂은 모습입니다.

 

[그 밖의 기능 및 성능들]

*Micro SD 슬롯: 부트로더 설치 파일을 Micro SD에 넣고 이 슬롯에 넣을 예정입니다.

*2-lane MIPI DSI display port

*2-lane MIPI CSI camera port

*AP: Broadcom BCM2711, Quad core Cortex-A72 (ARM v8) 64-bit SoC @ 1.5GHz

*RAM: LPDDR4-3200 SDRAM

RAM 용량은 구매할 때 2GB, 4GB, 8GB 중에서 선택할 수 있는데 저는 8GB를 선택했습니다.

*무선통신: 2.4 GHz and 5.0 GHz IEEE 802.11ac wireless, Bluetooth 5.0, BLE

*Raspberry Pi standard 40 pin GPIO header (fully backwards compatible with previous boards)

*H.265 (4kp60 decode), H264 (1080p60 decode, 1080p30 encode)

*OpenGL ES 3.1, Vulkan 1.0

*Operating temperature: 0 – 50 degrees C ambient

 

저의 글을 읽어 주셔서 감사합니다.

다음에는 라즈베리파이4 Model B에 우분투를 설치하는 방법을 다루겠습니다.(USB 부팅에 관한 설명 포함)

다음에 만나요!

댓글을 달아 주세요

728x90

수성비전자방입니다.

 

어느 날 갑자기 파일탐색기 디스크들에 나타난 자물쇠 아이콘!

이 아이콘은 해당 디스크가 BitLocker로 암호화되어 있음을 나타냅니다.

BitLocker는 설정업데이트 및 보안장치 암호화에서 켜고 끌 수 있는데요.

BitLocker가 걸려 있어도 평상시에는 평범하게 사용할 수 있어요.(이때 디스크 옆에는 자물쇠 풀린 아이콘이 그려져 있죠.)

문제는, 하드웨어 조작(?)이 감지되었을 때! 하드웨어 조작이 감지되면, 풀린 자물쇠 아이콘이 노란색 잠긴 자물쇠 아이콘으로 바뀌며, 복구 키를 입력하라고 합니다.

C드라이브가 BitLocker에 걸린 경우에는

이런 식으로 화면이 뜨면서 부팅조차 할 수 없게 되죠.

복구 키를 입력하면 부팅이 가능하겠죠? 위 사진은 2021년 1월에 찍은 사진입니다. 이때는 제가 복구 키를 백업하지 않아서 복구를 못했어요. 복구를 하려면 사전에 복구 키를 미리 백업하셔야 해요!

C드라이브 같은 경우에는 포맷하고 Windows 재설치하면 그만이지만, 주로 중요한 파일을 저장하는 D, E... 드라이브를 날리면 마음이 더 아프답니다.

 

오늘은 BitLocker 복구 키를 백업하는 방법, 그리고 아예 꺼버리는 방법도 알아봅시다!

 

1. 설정으로 들어갑니다.

2. 업데이트 및 보안 클릭합니다.

 

3. 장치 암호화를 클릭합니다.

4-1. BitLocker를 끄려면 끄기를 클릭합니다.→끝

4-2. BitLocker를 계속 사용할 것이며, 복구 키 백업을 하시려면 BitLocker 설정을 클릭합니다.→5번 과정 계속

 

5. 복구 키 백업을 클릭합니다. C, D, ... 드라이브 각각 해주셔야 합니다.

(C드라이브의 복구 키와 D드라이브의 복구 키가 다름.)

 

6-1. Azure AD 계정에 저장: 저도 잘 모르겠습니다. Azure AD 쓰시는 분은 편리할 듯.

6-2. 파일에 저장: 이미 암호화된 드라이브에 복구 키를 저장할 수는 없고, 별도 이동식 디스크에 저장하는 방식입니다.

6-3. 복구 키 인쇄: 종이에 복구 키를 인쇄합니다.

 

파일에 저장하면 TXT 파일로 저장됩니다. 백업해 둔 복구 키는 잘 보관하시다가 나중에 복구 키를 입력하라고 뜨면 입력하시면 됩니다.

 

저의 글을 읽어주셔서 감사합니다.

다음에 만나요!

 

댓글을 달아 주세요

728x90

수성비전자방입니다. 오늘은 가볍게 Microsoft Office에서 그리기 탭에 펜을 추가해 보겠습니다.

 

터치스크린이 있는 PC를 쓰는 경우 MS 오피스에서 그리기 기능을 사용할 수 있습니다.

마우스 커서, 올가미 선택 도구, 지우개, 펜 2개, 연필, 형광펜이 있네요.

(명칭은 제가 임의로 작성했습니다.)

(위 스크린샷의 펜 색깔은 제가 변경한 것입니다.)

펜이 2개인 것이 좀 아쉽습니다. 펜 색깔은 3개 정도 기본적으로 있어야 하는데... 색깔 바꿀 때마다 매번 설정하는 것은 귀찮잖아요?

 

그런데 펜을 오른쪽 클릭(길게 터치)하면 다른 펜 추가가 딱! 있습니다.

 

이렇게 펜을 추가하실 수 있습니다. 그런데 3개가 최대네요.

 

원하는 색깔로 설정해 두시면 되겠습니다.

 

생각해 보니 삼색펜은 , , 검이죠? 이렇게 세팅해 두고 쓰면, 색깔을 선택하기 더 쉬워집니다.

 

저의 글을 읽어 주셔서 감사합니다.

다음에 만나요!

 

댓글을 달아 주세요

728x90

수성비전자방입니다. 최근 Sandisk Ultra Dual Drive USB Type-C를 구매했습니다.(사실 구매한 지 2달 정도 지났습니다.) 이 제품은 USB Type-A와 USB Type-C 단자가 모두 있으며, USB 3.0을 지원합니다. 오늘은 Sandisk Ultra Dual Drive USB Type-C 후기와 벤치마크 결과를 알려드리겠습니다.

 

※16GB 제품 기준입니다!

 

Sandisk Ultra Dual Drive USB Type-C 후기

개봉을 해 보겠습니다.

 

작고 아담하군요. 쓰다 보면 작다는 느낌은 없어집니다.(적응된다는 뜻)

 

이 검은 것(?)을 움직여서 단자를 꺼낼 수 있습니다.

 

USB Type-A 단자입니다.

 

파란색 보이시죠?

 

이건 USB Type-C 단자입니다. 양방향으로 꽂을 수 있죠.

 

제 노트북인 갤럭시 북 Flex2에 꽂아봤습니다. 잘 인식됩니다.

그리고 제 휴대전화인 갤럭시 S20 FE에도 잘 연결이 되는데, 작동 사진을 실수로 지워버렸습니다.

 

USB 안에 원래 들어있는 파일들입니다. 안드로이드 스마트폰에 꽂아서 쓸 때 쓰라고 있는 것 같아요.

 

Sandisk Ultra Dual Drive USB Type-C 벤치마크(CrystalDiskMark)

우선, 벤치마크 결과를 100% 신뢰하시지 말라는 말씀 드립니다. 테스트 환경에 따라 결과는 달라질 수 있습니다.

 

참고)CrystalDiskMark 개발사 누리집: https://crystalmark.info/en/software/crystaldiskmark/

 

[USB Type-A로 연결했을 때]

 

 

[USB Type-C로 연결했을 때]

 

참고로, USB 버전별 속도와 비교하면 아래와 같습니다.

[참고-USB 버전별 속도와 비교]

*USB 2.0: 480Mbps=60MB/s

*Sandisk Ultra Dual Drive USB Type-C 읽기 속도: 159~162MB/s (쓰기 속도는 ㅠㅠ)

*USB 3.0(USB 3.2 Gen 1): 5Gbps=625MB/s

*USB 3.1(USB 3.2 Gen 2): 10Gbps=1.25GB/s

(나머지는 이 글에서 다루는 제품과 관련이 없으니 생략하겠습니다.)

원래 USB 3.0 제품이라고 해서 5Gbps의 속도를 다 쓸 수 있는 건 아닙니다. 적어도 USB 2.0보다는 분명 빠르니 만족하고 쓸 수 있겠습니다.(다만, 쓰기 속도가 중요하신 분은 좀 망설여 보세요.)

 

저의 글을 읽어 주셔서 감사합니다.

다음에 만나요!

 

참고 자료

1) 쿨이맘. "USB 2.0 USB 3.0 USB 3.1 USB 3.2 버전별 규격 차이와 특징 및 속도 비교", 쿨이맘의 일상 기록. (2021. 08. 31. 방문). https://blog.naver.com/krhera/222305417810

 

댓글을 달아 주세요

728x90

수성비전자방입니다. 2020년 하반기에 Windows 11이 출시된다는군요. 2021년 상반기 쯤에는 Win10→Win11 무료 업그레이드도 진행될 것 같습니다. 프로그래머들은 Windows 11을 미리 써보고 자신의 프로그램이 잘 작동되는지 확인해 보고 싶을 것입니다. Windows 11 Insider Preview를 미리 사용해 볼 수 있습니다. 다른 블로그에서는 보통 Win10→Win11 프리뷰 업그레이드 방법을 소개하더군요. 저는 Windows 11 Insider Preview ISO 파일을 내려받아 버추얼박스에 설치해 보겠습니다.

 

 

버추얼박스 설치하기

안녕하십니까? 수성비입니다. 드디어 저의 기말고사가 끝났습니다!! 원래 기말고사 끝나면 모바일로 사진 편집하는 거 올리려고 했는데 깜박 잊고 다른 글을 준비한 관계로 모바일로 사진 편집

toopyo.tistory.com

 

Windows Insider Program 가입 및 Windows 11 프리뷰 iso 내려받기

1. https://insider.windows.com/en-us/ 에 접속하세요.(또는 windows.com→스크롤 내림→Windows 참가자 프로그램)

2. 오른쪽 위의 Sign in을 클릭하여 Microsoft 계정으로 로그인하세요.

 

저는 계정이 2개(개인 계정, 학교 계정)라서 계정 선택 페이지가 열리네요.

(사실 저는 계정이 3개입니다. 학교 계정이 2개거든요. 그런데 학교 계정 1개가 누락된 모양이군요.)

 

3. 살짝 스크롤을 내려 Register를 클릭합니다.

 

4. IMPORTANT NOTICE를 읽어 보세요.

제가 영어를 잘 못하지만 대충 이해한 바로는

●프리뷰 프로그램은 테스트되지 않았다.(즉, 불안정하겠죠?)

●crashes, security vulnerabilities, data loss, or damage를 겪을 수 있다.(보안 문제, 데이터 손실 등을 겪을 수 있음을 유의하세요!)

●모바일 기기에 설치하면 (i)~(iv)의 문제를 겪을 수 있다.(알아서 해석해 보세요. 저는 모바일 기기에 설치하는 게 아니라서 해석 안 했습니다.)

●Full Diagnostic Data(optional까지도)를 Microsoft에 전송해야 한다.(선택적 진단 데이터를 MS에 보내야 한다는 의미입니다. 이건 이따가 설치 과정에서 설명 드리겠습니다. 참고로 Privacy Statement는 https://privacy.microsoft.com/en-us/privacystatement 에서도 읽으실 수 있습니다.)

●프로그램에 대한 의사소통을 받을 것이다. 의사소통이 싫으면 인사이더 프리뷰 프로그램을 종료해라.

*제 번역보다 번역기가 더 정확할 수 있습니다.

 

5. I accept the terms of this agreement. (Required)에 체크합니다.

6. Register now를 클릭합니다.

 

7. Flight now를 클릭합니다.

(https://insider.windows.com/en-us/에서도 Flight now로 들어가실 수 있습니다.)

 

8. download a Windows Insider Preview ISO를 클릭하세요.

 

여기서 Windows 11 프리뷰 iso 파일을 받으실 수 있습니다.

(이 페이지는 https://www.microsoft.com/en-us/software-download/windowsinsiderpreviewiso로도 접속하실 수 있습니다.)

9. 스크롤을 내리세요.

 

10. Select edition 펼침 메뉴에서 원하시는 버전을 클릭합니다. 우리의 목표는 Windows 11 설치이므로 Windows 11 Insider Preview 중에서 선택하시고요, Dev/Beta/Release의 차이는 아래와 같습니다.

 

출처:  https://docs.microsoft.com/ko-kr/windows-insider/flighting

 

 

(10. Select edition 펼침 메뉴에서 원하시는 버전을 클릭합니다.)

11. Confirm을 클릭합니다.

12. 언어를 선택합니다. Korean도 선택하실 수 있어요.

13. Confirm을 클릭합니다.

 

14. 64-bit Download를 클릭합니다.

 

15. 내려받으시면 됩니다.

 

버추얼박스에 Windows 11 설치하기

1. 버추얼박스에서 새로 만들기(N)를 클릭합니다.

 

2. 이름은 맘대로 지정하시고, 종류를 Microsoft Windows로 해 주세요.

버전은 현재 Windows 11이 없으니 Windows 10 (64-bit)로 지정하겠습니다.

 

3. Windows 11의 최소 요구 사항에 따르면 RAM이 4GB 이상이어야 한다고 합니다. 4096MB 이상으로 할당해 주세요.

(저는 4096MB 할당했습니다.)

 

4. 지금 새 가상 하드 디스크 만들기를 선택하겠습니다.

 

5. VDI를 선택할게요.(VHD, VMDK 써도 똑같겠죠?)

 

6. 취향껏 선택하세요. 저는 고정 크기를 선호하는 편입니다.

 

7. Windows 11을 설치하려면 하드 디스크 용량이 50GB 이상이어야 합니다.

참고로 저는 Host PC C 드라이브 용량이 적어서 외장 Micro SD에 가상 하드 디스크를 만들었습니다.

 

8. 설정을 클릭합니다.

 

9. 시스템을 클릭합니다.

10. 부팅 순서에서 하드 디스크를 최우선순위로 둡니다.(이건 그냥 제 취향입니다.)

11. EFI 사용하기를 체크합니다.

 

12. 저장소를 클릭합니다.

13. (CD) 비어 있음을 클릭하고

14. (CD) 펼침 메뉴를 클릭하셔서

15. 디스크 파일 선택...을 클릭합니다.

 

16. 내려받은 Windows 11 iso 파일을 열어 줍니다.

 

17. 이제 확인을 누르시면 됩니다.

 

18. 방금 만든 가상 머신을 클릭하고 시작합니다.

 

(부팅중...)

 

19. 익숙한 화면이 나왔죠? 여기서 다음을 클릭합니다.

(키보드 종류에 대해 간략하게 적자면, VM에서 한/영 키가 작동을 안 하더라구요. 그래서 Alt 키로 한/영 변환을 할 수 있는 PC/AT 101키 호환 키보드 종류 1을 사용하기로 했습니다.)

그리고 이제 설치 과정은 Windows 10과 비슷하므로 간략하게만 설명 드리겠습니다.

 

20. 지금 설치를 클릭합니다.

 

21. 인사이더 가입할 때 제품 키를 못 받았죠? 제품 키가 없음(I)을 클릭합니다.

 

22. 설치할 운영 체제를 선택합니다. 저는 Pro를 선택했습니다. 이럴 때 아니면 언제 프로 써보겠어요?(그러나 필자는 Host에서도 Windows 10 Pro 쓴다는 건 안 비밀)

 

23. 동의하시고, 다음을 클릭하세요.

 

24. 사용자 지정을 클릭하세요.

 

25. 설치할 위치를 지정해 주세요.

저는 가상머신에 굳이 C, D를 나눌 필요는 없을 것 같아서 C 드라이브만 만들었습니다.(C드라이브 만들면 시스템, 예약 파티션이 자동으로 생김.)

26. 이제 다음을 클릭합니다.

 

그러면 설치가 진행됩니다.

 

재부팅 과정을 지나고 나면

 

27. 국가 및 지역을 선택하게 됩니다. 한국을 선택합니다.

 

28. 옛한글은 뭔지 모르겠네요. 그냥 익숙한 Microsoft 입력기를 선택하겠습니다.

 

29. 건너뛰기

 

30. PC 이름을 지정합니다. Windows 10에서는 설치 중에 PC 이름 지정하는 과정이 없어서 설치 완료 후 PC 이름을 변경했는데요, Windows 11은 처음부터 PC 이름을 지정할 수 있어서 좋군요.

31. 다음을 클릭하면 재부팅됩니다.

 

32. 저는 개인용 설정을 선택했습니다.

 

33. Microsoft 계정에 로그인합니다.

 

34. PIN을 만들어야 합니다.

 

35. PIN은 보통 숫자로만 구성하는데, 여기서는 특이하게 문자 및 기호 포함이 있네요.

 

36. 저는 아니요 눌렀습니다.

 

37. 저는 아니요 눌렀습니다.(가상 머신을 길에서 잃어버릴 일은 없죠.)

 

38. 반드시 선택 항목 포함을 선택하세요. Insider Program 규정입니다.

 

39. 수동 입력 및 타이핑 개선

 

40. 진단 데이터를 사용한 맞춤형 환경 사용

 

41. 광고 관련 - 저는 눌렀습니다. 이왕 광고 받는 것 제 취향에 맞는 광고를 받으면 좋다는 생각입니다.ㅋ

 

42. OneDrive 관련 - 저는 파일 백업 안 함을 눌렀습니다. 제가 OneDrive를 안 쓰기도 하고, Windows 11로 큰 작업(?)을 할 것도 아니라서...

 

43. Microsoft 365 관련 - 저는 아니요 눌렀습니다.

 

이제 화면에 Windows 11에 대한 안내가 뜰 것입니다. 기다리면서 보시면 됩니다. 그나저나 화면 밑에 나오는 글은 어느 나라 말일까요?

 

그런데 돌발상황 발생! 블랙스크린(구 블루스크린)이 뜨고 말았습니다. 아무래도 가상 하드를 Micro SD에 만들어서 불안정했나봐요.ㅠㅠuuTTtt(=엄청난 눈물).

이렇게 되면 알아서 재부팅이 되긴 하는데 27번 과정부터 다시해야 합니다.

 

다행히 다시 했을 때에는 블랙스크린이 뜨지 않고 잘 되었습니다.

 

환영합니다 뜨고

 

스마트폰 잠금화면 같죠? 해제 방법은 Windows 8~10과 같습니다. 마우스를 클릭하거나 스크롤하거나 화면을 위로 쓸어올리거나 키보드를 누르시면 돼요.

 

아까 만든 PIN을 입력하여 로그인합니다.

 

안녕하세요, 이 작업은 몇 분 정도 걸릴 수 있습니다, 좋은 일이 진행 중입니다, 거의 완료 되었습니다가 뜨고 나서 바탕화면을 보시게 됩니다.

 

사실 시작 화면이 화면을 거의 다 가립니다. 해상도를 바꿔야겠군요.

 

Windows 11에 게스트 확장 설치하기

게스트 확장을 선택하면 VM 창 크기에 따라 해상도가 자동으로 조정됩니다.

 

1. VM 창의 메뉴 목록에 있는 장치를 클릭합니다.

2. 게스트 확장 CD 이미지 삽입을 클릭합니다. 그러면 Windows 11 iso 파일은 자동으로 꺼내지고 게스트 확장 CD가 탑재됩니다.

 

3. 게스트 확장 CD에 있는 VBoxWindowsAddtions를 실행합니다.

 

4. 예

 

5. 다른 프로그램은 다 닫고 설치를 진행하랍니다. Next를 클릭합니다.

 

6. Next

 

7. Install을 클릭합니다.

Oracle Coporation 시스템 장치, Oracle Coporation 디스플레이 어댑터가 추가로 설치됩니다.

 

8. Reboot now를 선택하고 Finish를 클릭하여 재부팅합니다.

 

그나저나 해상도가 여전히 꽝인데요,

 

화면을 좀만 움직이시면 Windows 11이 VM 창을 꽉 채우게 됩니다.

 

이제 편하게 사용하시면 되겠습니다.

 

참고로 게스트 확장 CD 이미지는 설정→저장소에서 꺼내실 수 있습니다.

 

저의 글을 읽어 주셔서 감사합니다.

긴 글 읽느라 고생 많으셨습니다. 다음에 만나요!

 

추신)

인사이더 프로그램 가입하고 로그인도 했는데 정품 인증 안 됨. 그래서 개인 설정에 제한 있음.

 

댓글을 달아 주세요

728x90

수성비전자방입니다. 저는 영상을 편집할 때 다빈치 리졸브를 사용합니다. 무료 프로그램인 데다가 영상과 오디오, 자막 등을 여러 개 겹칠 수 있다는 장점이 있어요. 그런데 다빈치 리졸브를 쓰다 보면 조작이 어색한 것들이 있습니다. 오늘은 클립 삭제와 렌더링을 알아보겠습니다.

 

※Davinci Resolve 17을 기준으로 설명 드리겠습니다.

 

다빈치 리졸브에서 클립 삭제

1. Edit 탭에서 작업합니다.

2. Blade Edit Mode를 이용하여 클립을 절단할 수 있습니다. 위 스크린샷에서 하늘색 동그라미 친 버튼을 눌러주세요.

3. Blade Edit Mode에서 마우스 커서로 자를 부분을 클릭하시면 클립이 절단됩니다.

절단하기 전 타임라인 막대기(?)를 자를 부분으로 이동하신 뒤 마우스로 클릭하시면 편리합니다.

 

절단된 것을 보여드리기 위해 타임라인 막대기(?)를 좀 움직이고 스크린샷을 찍었습니다. 영상이 절단된 것을 보실 수 있습니다.

 

클립을 더 절단해 주고, 이제 위 스크린샷에서 선택된 영상을 지워보겠습니다.

 

이때 주의해야 할 것은 아무 생각 없이 delete를 누르면

모든 클립에서 해당 시간 부분이 삭제되고, 뒤의 클립들이 앞당겨진다는 것입니다.

 

Backspace(←)를 누르셔야 클립이 삭제되고 그 자리가 빈 공간으로 남습니다.

 

오디오 클립은 남아있으므로 드래그 앤 드롭을 이용하여 클립을 자유롭게 이동시키실 수 있습니다. 위의 스크린샷은 예시를 들기 위해 극단적으로 편집한 것입니다.

 

렌더링

1. Deliver 탭을 클릭합니다.

2. 왼쪽 사이드바에서 원하시는 대로 설정해 주세요.

일단, 파일명과 위치를 선택해 주세요.

그리고 파일포맷을 원하는 것으로 바꿔 주세요.(참고로 기본 포맷인 QuickTime은 확장명이 MOV입니다.)

해상도를 바꾸실 분은 Resolution을 바꾸시기 바랍니다.(Custom도 가능)

3. Add to Render Queue를 클릭하세요.

 

4. Render Queue에 영상이 추가되면 Render All을 클릭합니다.

 

렌더링이 다 되면 Completed라고 뜹니다.

 

제작하신 영상 파일을 재생하실 수 있게 됩니다.

 

저의 글을 읽어 주셔서 감사합니다.

다음에 만나요!

 

댓글을 달아 주세요

728x90

수성비전자방입니다. 그동안 저는 Viusal Studio Code를 사용하면서 C 프로그래밍 하는 방법을 정리했습니다.

 

1. 설치

2. C언어 컴파일

3. C언어 디버깅(GCC, GDB 디버거)

 

이 중 2~3번 글은 사실 VScode의 기능이라기보다는 GCC, GDB의 기능이었는데요.(2번 글에서 C/C++ 확장을 다루긴 했지만...) 오늘은 최종적으로 VScode의 기능을 이용하여 C언어 빌드, 디버깅하는 방법을 알아보겠습니다.

1~3편에 이어서 진행되는 과정입니다. 위의 링크들을 클릭하셔서 글을 읽어보시기 바랍니다.

 

Visual Studio Code에서 디버깅 시작 단축키는 F5이고, 디버깅 없이 실행 단축키는 Ctrl+F5입니다.

원래 이 둘은 차이가 있어야 하는데, 여기서는 GCC를 연계해서 그런지 차이가 없네요.

둘 중 편한 것 누르세요.^^

 

위의 스크린샷은 스크린샷용으로 만들어 둔 C code입니다.ㅎㅎ

1. VScode에 C code를 띄워 놓고 F5 키를 누릅니다.

 

2. 위에 환경 선택하는 창이 뜨는데 C++(GDB/LLDB)를 선택하세요.

 

3. gcc.exe - 활성 파일 및 디버그를 클릭하세요.

 

4. 그러면 C code가 빌드되어 터미널에서 실행될 것이고, 화면에 launch.json이 띄워질 것이며,

 

좌측 탐색기를 보시면 .vscode 폴더가 생긴 것을 보실 수 있습니다.

.vscode 폴더 안의 launch.json, task.json 파일을 수정하여 빌드 및 디버깅 옵션을 설정할 수 있습니다.

이 소스코드들을 제가 line by line으로 설명 드릴 실력은 안 되고요, 아는 범위 안에서 정리하겠습니다.

우선 task.json 파일부터 알아보겠습니다.

 

task.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
{
    "tasks": [
        {
            "type""cppbuild",
            "label""C/C++: gcc.exe 활성 파일 빌드",
            "command""C:\\Program Files\\mingw64\\bin\\gcc.exe",
            "args": [
                "-g",
                "${file}",
                "-o",
                "${fileDirname}\\${fileBasenameNoExtension}.exe"
            ],
            "options": {
                "cwd""${fileDirname}"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind""build",
                "isDefault"true
            },
            "detail""디버거에서 생성된 작업입니다."
        }
    ],
    "version""2.0.0"
}
cs

[Line2]

"tasks": [

빌드 관련 옵션은 이 대괄호 안에 모두 작성할 것입니다.

 

[Line 5]

"label": "C/C++: gcc.exe 활성 파일 빌드",

task(빌드 옵션이라고 생각하시면 됩니다.)의 이름을 정하는 부분입니다. 현재 label은 C/C++: gcc.exe 활성 파일 빌드로 되어 있네요.

 

[Line 6]

"command": "C:\\Program Files\\mingw64\\bin\\gcc.exe",

명령어입니다. 다만, 명령어의 맨 앞 부분만 여기에 작성합니다.

그리고 gcc.exe가 있는 파일 경로가 작성되어 있어야 하는데, 이는 이미 자동으로 기입이 되어있으니 딱히 건드리지 않으셔도 됩니다.

(컴파일 할 때 gcc 명령을 했다고 해서 여기서 "gcc"라고만 입력하시면 안 됩니다. 제가 해봤는데 안 되더라고요.)

특이한 것은 경로를 나타낼 때 \를 두 개씩 겹쳐 쓴다는 것입니다.

 

[Line 7~12]

"args": [
    "-g",
    "${file}",
    "-o",
    "${fileDirname}\\${fileBasenameNoExtension}.exe"
],

args는 실행할 명령어 뒤에 붙는 argument들입니다. 즉, Line 6~12까지가 의미하는 것은 아래와 같다고 보시면 됩니다.

"C:\\Program Files\\mingw64\\bin\\gcc.exe" -g ${file} -o ${fileDirname}\\${fileBasenameNoExtension}.exe

(이게 뭐야...)

${fileDirname}과 ${fileBasenameNoExtension}에 대해서는 뒤에서 설명 드리겠습니다.

수학 라이브러리를 포함하려면 -lm 옵션을, 쓰레드 함수 라이브러리를 포함하려면 -lpthread 옵션을 포함해야 한다고 합니다. 그러려면 Line 11 뒤에 쉼표(,)를 찍고 Line 11과 Line 12 사이에 "-lm", "-lpthread"를 추가하시면 되겠습니다.

 

[Line 25]

]

 

launch.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
{
    // IntelliSense를 사용하여 가능한 특성에 대해 알아보세요.
    // 기존 특성에 대한 설명을 보려면 가리킵니다.
    // 자세한 내용을 보려면 https://go.microsoft.com/fwlink/?linkid=830387을(를) 방문하세요.
    "version""0.2.0",
    "configurations": [
        {
            "name""gcc.exe - 활성 파일 빌드 및 디버그",
            "type""cppdbg",
            "request""launch",
            "program""${fileDirname}\\${fileBasenameNoExtension}.exe",
            "args": [],
            "stopAtEntry"false,
            "cwd""${fileDirname}",
            "environment": [],
            "externalConsole"false,
            "MIMode""gdb",
            "miDebuggerPath""C:\\Program Files\\mingw64\\bin\\gdb.exe",
            "setupCommands": [
                {
                    "description""gdb에 자동 서식 지정 사용",
                    "text""-enable-pretty-printing",
                    "ignoreFailures"true
                }
            ],
            "preLaunchTask""C/C++: gcc.exe 활성 파일 빌드"
        }
    ]
}
cs

[Line 6]

"configurations": [

디버깅 옵션은 모두 이 대괄호 안에 작성할 것입니다.

 

[Line 8]

"name": "gcc.exe - 활성 파일 빌드 및 디버그",

디버그 옵션의 이름을 정하는 부분입니다. 지금은 gcc.exe - 활성 파일 빌드 및 디버그로 되어 있네요.

 

[Line 11]

"program": "${fileDirname}\\${fileBasenameNoExtension}.exe",

디버깅 할 실행 파일을 지정합니다. 뒤에서 자세히 설명 드리겠습니다.

 

[Line 16]

"externalConsole": false,

현재 externalConsole이 false로 되어 있는데 이 경우 실행 결과가 VScode의 터미널 창에 나타납니다.

false를 true로 바꾸시면 실행 결과가 별도의 CMD 창에서 나타납니다.

 

externalConsole을 true로 할 경우 프로그램이 종료되면 바로 창이 닫힙니다.

그러므로 windows.h 헤더파일을 추가하고, system("pause"); 코드를 삽입했습니다.

그 다음 빌드 또는 디버깅을 진행하면 위와 같이 별도 CMD 창에 실행 결과가 출력됩니다.

 

[Line 26]

"preLaunchTask": "C/C++: gcc.exe 활성 파일 빌드"

디버깅 실행 전 실행할 task를 정하는 부분입니다. 현재 gcc.exe - 활성 파일 빌드 및 디버그를 진행하면 그 전에 C/C++: gcc.exe 활성 파일 빌드를 먼저 하도록 되어 있습니다. 그러므로 디버깅을 하면 자동으로 빌드도 됩니다.

 

실행파일명 변경

실행파일명을 변경하기 위해서는 task.json과 launch.json을 둘 다 수정하셔야 합니다.

 

[task.json]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
{
    "tasks": [
        {
            "type""cppbuild",
            "label""C/C++: gcc.exe 활성 파일 빌드",
            "command""C:\\Program Files\\mingw64\\bin\\gcc.exe",
            "args": [
                "-g",
                "${file}",
                "-o",
                "${fileDirname}\\a.exe"
            ],
            "options": {
                "cwd""${fileDirname}"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind""build",
                "isDefault"true
            },
            "detail""디버거에서 생성된 작업입니다."
        }
    ],
    "version""2.0.0"
}
cs

Line 11을 수정하시면 실행파일명을 바꾸실 수 있습니다.

${fileDirname}: 파일 경로

${fileBasenameNoExtension}: 소스파일명

파일 경로를 수정하는 건 어렵더라고요. ${fileDirname}\\는 그대로 두시고, ${fileBasenameNoExtension}을 원하는 파일명으로 바꾸시면 됩니다.

위의 소스코드에 따르면 실행파일이 a.exe가 됩니다.

 

[launch.json]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
{
    // IntelliSense를 사용하여 가능한 특성에 대해 알아보세요.
    // 기존 특성에 대한 설명을 보려면 가리킵니다.
    // 자세한 내용을 보려면 https://go.microsoft.com/fwlink/?linkid=830387을(를) 방문하세요.
    "version""0.2.0",
    "configurations": [
        {
            "name""gcc.exe - 활성 파일 빌드 및 디버그",
            "type""cppdbg",
            "request""launch",
            "program""${fileDirname}\\a.exe",
            "args": [],
            "stopAtEntry"false,
            "cwd""${fileDirname}",
            "environment": [],
            "externalConsole"false,
            "MIMode""gdb",
            "miDebuggerPath""C:\\Program Files\\mingw64\\bin\\gdb.exe",
            "setupCommands": [
                {
                    "description""gdb에 자동 서식 지정 사용",
                    "text""-enable-pretty-printing",
                    "ignoreFailures"true
                }
            ],
            "preLaunchTask""C/C++: gcc.exe 활성 파일 빌드"
        }
    ]
}
cs

Line 11을 주목하시기 바랍니다.

여기서도 파일명을 수정해 주셔야 빌드 및 디버깅이 정상적으로 진행됩니다.

(디버깅 안 하실 거라고 수정을 안 하시면 안 됩니다. 빌드할 때 결국 디버깅이 진행됩니다.)

 

이제 F5 키를 눌러 보시면 바꾼 이름으로 실행파일이 생긴 것을 보실 수 있습니다.

(위 스크린샷은 여러분의 혼동을 막기 위해 dtest.exe를 지우고 F5를 누른 것입니다.)

 

두 개 이상의 옵션

여기까지 읽으셨으면 옵션을 두 개 이상 만드는 법도 대충 아실 것 같습니다. 이건 제가 글로 설명하기가 어렵습니다. 대신 예시 코드를 아래에 작성하겠습니다.

 

[task.json]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
{
    "tasks": [
        {
            "type""cppbuild",
            "label""C/C++: gcc.exe 활성 파일 빌드",
            "command""C:\\Program Files\\mingw64\\bin\\gcc.exe",
            "args": [
                "-g",
                "${file}",
                "-o",
                "${fileDirname}\\${fileBasenameNoExtension}.exe",
                "-lm",
                "-lpthread"
            ],
            "options": {
                "cwd""${fileDirname}"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind""build",
                "isDefault"true
            },
            "detail""디버거에서 생성된 작업입니다."
        },
        {
            "type""cppbuild",
            "label""빌드(GCC 컴파일. 실행파일: appdt.exe)",
            "command""C:\\Program Files\\mingw64\\bin\\gcc.exe",
            "args": [
                "-g",
                "${file}",
                "-o",
                "${fileDirname}\\appdt.exe",
                "-lm",
                "-lpthread"
            ],
            "options": {
                "cwd""${fileDirname}"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind""build",
                "isDefault"true
            },
            "detail""디버거에서 생성된 작업입니다."
        }
    ],
    "version""2.0.0"
}
cs

 

[launch.json]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
{
    // IntelliSense를 사용하여 가능한 특성에 대해 알아보세요.
    // 기존 특성에 대한 설명을 보려면 가리킵니다.
    // 자세한 내용을 보려면 https://go.microsoft.com/fwlink/?linkid=830387을(를) 방문하세요.
    "version""0.2.0",
    "configurations": [
        {
            "name""gcc.exe - 활성 파일 빌드 및 디버그",
            "type""cppdbg",
            "request""launch",
            "program""${fileDirname}\\${fileBasenameNoExtension}.exe",
            "args": [],
            "stopAtEntry"false,
            "cwd""${fileDirname}",
            "environment": [],
            "externalConsole"false,
            "MIMode""gdb",
            "miDebuggerPath""C:\\Program Files\\mingw64\\bin\\gdb.exe",
            "setupCommands": [
                {
                    "description""gdb에 자동 서식 지정 사용",
                    "text""-enable-pretty-printing",
                    "ignoreFailures"true
                }
            ],
            "preLaunchTask""C/C++: gcc.exe 활성 파일 빌드"
        },
        {
            "name""디버깅(GCC 컴파일. 실행파일: appdt.exe)",
            "type""cppdbg",
            "request""launch",
            "program""${fileDirname}\\appdt.exe",
            "args": [],
            "stopAtEntry"false,
            "cwd""${fileDirname}",
            "environment": [],
            "externalConsole"false,
            "MIMode""gdb",
            "miDebuggerPath""C:\\Program Files\\mingw64\\bin\\gdb.exe",
            "setupCommands": [
                {
                    "description""gdb에 자동 서식 지정 사용",
                    "text""-enable-pretty-printing",
                    "ignoreFailures"true
                }
            ],
            "preLaunchTask""빌드(GCC 컴파일. 실행파일: appdt.exe)"
        }
    ]
}
cs

이렇게 하고 F5를 누르시면 여러 가지 옵션 중 맨 위의 것으로 실행될 것입니다. 그러면 어떻게 옵션을 선택할 수 있을까요?

 

실행 및 디버그 탭에서 디버깅 옵션을 선택하실 수 있습니다.

 

그러나 때로는 옵션 선택 때문에 탭을 옮기는 것이 귀찮습니다. 왼쪽 아래의 디버깅 버튼(?)을 클릭하시면 디버깅 옵션을 선택하실 수 있습니다.

 

선택한 옵션대로 빌드 및 디버깅이 이루어지면 성공!

 

디버깅 기능 사용하기

1. Line 번호 왼쪽을 클릭하면 Breakpoint(정지점)을 적절히 설정할 수 있습니다. Breakpoint가 설정되면 빨간 점이 생깁니다.

2. F5 키를 눌러 디버깅을 시작합니다.(Ctrl+F5를 눌러도 되긴 함.)

 

위와 같이 디버깅이 진행됩니다.

화면 상단을 보시면 디버깅에 쓸 수 있는 기능들이 있는데요,

 

각각 이런 기능입니다.

 

Quick Info Box

변수명에 마우스 커서를 가져다 대면 Quick Info Box가 나옵니다.

Breakpoint (직전)까지 실행했을 때의 변수 값을 확인하실 수 있습니다. Logic Error(논리 오류)를 잡는 데에 도움이 될 것입니다.

 

[F5]계속(Continue)

다음 Breakpoint를 만날 때까지 실행합니다.

(위 스크린샷을 예시로 설명하면 Line 10~Line14 실행 후 Line 15을 현재 행으로 지정.)

 

[F10]단위 실행(Step Over)

현재 행 수행 후, 다음 행을 현재 행으로 지정합니다. 함수 호출 시 함수 수행 다음 행을 현재 행으로 지정합니다.(함수 안으로 들어가지 않음.)

 

[F11]단계 정보(Step Into)

현재 행 수행 후, 다음 행을 현재 행으로 지정합니다. 함수 호출 시 함수 안으로 들어갑니다.

 

[Shift+F11]단계 출력(Step Out)

현재 들어가 있는 함수의 나머지 statement들을 모두 수행한 뒤 프로그램을 종료합니다.(main 함수로 돌아가지 않음.)

 

[Ctrl+Shift+F5]다시 시작

현재 진행중인 디버깅을 중지하고 다시 시작합니다.(시스템 재부팅 아님)

 

[Shift+F5]중지

현재 진행중인 디버깅을 중지합니다.

 

디버깅 중 변수 값을 임시로 수정하는 방법

실행 및 디버그 탭의 위쪽을 보시면 지역 변수들이 있는 것을 보실 수 있습니다. 여기서 변수 값을 더블클릭하시면

 

변수 값을 수정하실 수 있습니다. 이제 수정된 변수 값이 적용된 채로 프로그램이 작동됩니다.

 

조사식

실행 및 디버그 탭의 변수 목록 아래쪽을 보시면 조사식이 있습니다.

+를 누르시면 조사식을 추가하실 수 있습니다.

 

이와 같이 원하는(궁금한) 식을 쓰시면 됩니다. 저는 a+c를 써 보았습니다.

 

위 스크린샷은

①실행 및 디버그 탭에서 a 값을 임시로 5로 수정

②Line 5에서 c=0

이 상황에서 조사식 a+c가 5라고 나온 상황입니다.

 

저의 글을 읽어 주셔서 감사합니다.

제 지식의 한계와 스크롤의 압박으로 인해 여기까지만 다루는 점 양해 부탁드립니다.

다음에 만나요!

 

참고 자료

1) 슈라 Shuuura. 2020. "[우분투 리눅스] gcc컴파일 및 디버깅", 슈라의 인생 Log. :). (2021. 08. 06. 방문). https://blog.naver.com/sera3579/222109588968

2) Microsoft. 2021. "Debugging", Visual Studio Code User Guide. (2021. 08. 06. 방문). https://code.visualstudio.com/docs/editor/debugging#_launch-configurations

3) 이로이로. 2020. "[VS code] Node.js 프로젝트에서 launch.json가 없을 경우 설정 방법", 이로이로의 저장소. (2021. 08. 06. 방문). https://oysu.tistory.com/65

4) 민선생. 2019. "6화 - VSCode에서 C, C++ 개발환경 세팅 3 (Visual Studio Code)", 민선생 코딩 이야기. (2021. 08. 06. 방문). https://blog.naver.com/mincoding/221733289320

 

댓글을 달아 주세요

728x90

수성비전자방입니다. 오랜만에 Visual Studio Code에서 C프로그래밍 하는 것에 관한 글을 쓰겠습니다. C언어 디버깅을 하려면 어떡해야 할까요? gdb 디버거를 쓰시면 됩니다.^^

 

오늘 글을 시작하기 전에...

1. Visual Studio Code를 설치하시기 바랍니다. 오늘 다룰 내용은 VScode의 기능은 아니고 gdb 디버거의 기능이지만, 이 글의 시리즈가 Visual Studio Code 시리즈이므로 Visual Studio Code 기준으로 글을 작성하겠습니다.

https://toopyo.tistory.com/entry/vscode-post1

위 글을 보시면 Visual Studio Code를 설치하는 방법과 한국어 패치하는 방법을 확인하실 수 있습니다.

2. GCC를 설치하셔야 합니다. Windows PC라면 MinGW-w64를 설치하시면 됩니다.

https://toopyo.tistory.com/entry/vscode-post2

위 글을 참고하여 C/C++ 확장과 MinGW-w64를 설치하시고, C언어 빌드 옵션을 숙지하시기 바랍니다.

 

gdb 디버거를 사용하는 방법

1. C언어로 프로그래밍합니다. 저는 여러분들께 디버깅을 설명드리기 위해 위 스크린샷과 같이 간단하게 코드를 짜 보았습니다.

2. C code를 빌드합니다. 이때 -g 옵션을 꼭 추가하셔야 합니다. 디버깅을 위해 추가해야 할 옵션입니다.

예를 들어, 저는 gcc -g dtest.c -o appdt 명령을 실행했습니다.

(-o appdt는 실행파일명을 appdt로 지정한 것으로, PowerShell 자동완성 기능을 편하게 이용하기 위해 사용했습니다. 필수사항은 아닙니다.)

 

3. 빌드가 완료되면 exe 파일이 생성되었을 것입니다. 잘 생성되었는지 확인하시기 바랍니다.(실행파일명도 확인!)

4. 소스 코드와 실행 파일이 같은 폴더 안에 있어야 합니다.

5. gdb 실행파일명.exe 또는 gdb .\실행파일명.exe 명령을 실행합니다.

(Tip: 실행파일명의 일부만 치고 Tap 키를 누르면 .\실행파일명.exe로 자동완성됩니다.)

 

6. Type <return> to continue, or q <return> to quit

뜻: 계속하려면 엔터 키를 누르시고, 종료하려면 q를 입력하신 후 엔터 치세요.

 

이제 gdb 디버거가 실행되었습니다. 명령어를 입력하며 사용해야 하는데, 쓸만한 명령어들을 정리해 보겠습니다.

 

run

우선 가볍게 run부터 사용해 보겠습니다.

run을 입력하시고 엔터 치시면 프로그램이 실행됩니다.

지금은 딱히 설정한 것이 없어서 프로그램이 전부 실행되지만, breakpoint 설정을 하고 나서 다시 run을 해 보시면 breakpoint마다 쉬게 됩니다.(breakpoint에 대해서는 뒤에서 다룸.)

 

list

list는 소스코드를 볼 수 있는 명령어입니다.

*명령어: list

*기능: 소스코드 출력

 

list를 입력하시고 엔터 치시면 소스 코드의 Line 1부터 Line 10까지 출력됩니다. VScode로 작성한 것과 똑같죠?

 

엔터를 또 치시면 다음 10개 행(Line 11~20)이 출력됩니다. 엔터를 칠 때마다 열 줄씩 나오게 됩니다.

만약 list 명령을 실행했는데 소스 코드가 이상하게 나온다면, 빌드할 때 -g 옵션이 추가되지 않은 것이니, -g 옵션을 넣어서 다시 빌드하시기 바랍니다.

그나저나 VScode의 에디터로 소스 코드를 계속 확인할 수 있기 때문에 list 명령어는 잘 안 쓰시게 될 겁니다.

 

break

디버깅 하면 빠질 수 없는 기능 같습니다. breakpoint(정지점, 중단점)을 지정하는 기능이죠.

*명령어: break Line번호 또는 break 함수명

*기능: Breakpoint 지정

 

저는 함수명을 입력할 만한 게 없어서 Line 번호를 이용해 보았습니다.

break 7이라고 치니까

 

Breakpoint 1이 dtest.c의 line 7에 지정되었다고 나옵니다.

 

이제 run 명령을 실행하시면 Line 1~6를 실행하게 됩니다.

 

step

*명령어: step 또는 s

*기능: 현재 행 수행 후 정지. 함수 호출 시 함수 안으로 들어갑니다.

 

위 스크린샷은 Line 1~6까지 실행하고 현재 행이 Line 7인 상태에서 s 명령을 실행한 결과입니다.

Line 7인 printf("Hello world!\n");이 실행되었으며, Line 8은 공백이므로 현재 행이 Line 9으로 지정되었습니다.

 

next

*명령어: next 또는 n

*기능: 현재 행 수행 후 정지. 함수 호출 시 함수 수행 다음 행으로 넘어갑니다.

 

위 스크린샷은 Line 9까지 실행하고 현재 행이 Line 10인 상태에서 n 명령을 실행한 결과입니다.

Line 10인 b=2;가 실행되었으며, 현재 행이 Line 11으로 지정되었습니다.

제가 작성한 예시 코드에 main 함수 외에 다른 함수가 없어서 예를 잘 못 든 점 양해 부탁드립니다.(printf도 함수이긴 하지만 그건 stdio.h 안에 있는 함수라서...)

 

continue

*명령어: continue 또는 cont

*기능: Breakpoint(정지점)을 만날 때까지 수행

 

위 스크린샷은 Line 10까지 실행하고 현재 행이 Line 11인 상태에서 continue 명령을 실행한 결과입니다.

프로그램이 끝까지 실행되고 종료되었습니다.

 

whatis

*명령어: whatis 변수명

*기능: 변수의 type 출력

 

위 스크린샷은 Line 6까지 실행하고 현재 행이 Line 7인 상태에서 whatis a 명령을 실행한 결과입니다.

type = int 라고 출력되었습니다.

 

print

Logic error를 고치기 위해서 디버깅을 사용하다 보면 중간중간 변수의 값을 확인하고 싶을 때가 있을 것입니다. 그때마다 printf 함수를 이용할 수는 없으니 디버거의 print 기능을 이용합니다.

*명령어: print 변수명 또는 p 변수명

*기능: 변수에 저장된 현재 값을 한 번 출력

 

Line 6까지 실행하고 현재 행이 Line 7인 상태에서 print a 명령을 실행했더니 $1 = 0라고 출력되었습니다.

s 명령을 몇 번 해서 Line 9까지 실행하고 현재 행이 Line 10인 상태에서 print a 명령을 실행했더니 $2 = 1이 출력되었습니다.(Line 9가 a=1; 이었음.)

 

display

print는 변수의 값을 한 번만 출력합니다. Line별로 변하는 변수 값을 확인하고 싶다면 변수 값이 매번 출력되는 것이 좋겠죠? 그럴 때 사용할 수 있는 기능이 display입니다.

*명령어: display 변수명

*기능: 변수에 저장된 현재 값을 지속적으로 출력

 

위 스크린샷은 Line 9까지 실행하고 현재 행이 Line 10인 상태에서 display a 명령을 실행한 결과입니다.

1: d[1] = 0 이라고 출력되었습니다.

 

s 명령을 실행해서 Line 10까지 실행하고 현재 행이 Line 11인 상태가 되었습니다.

또 1: d[1] = 0 이라고 출력되었습니다.

 

눈에 띄는 변화를 보기 위해 Line 17에 Breakpoint를 지정하고 continue했습니다.

1: d[1] = 65 라고 출력되었습니다.(Line 13이 d[1]='A'이었음.)

 

set variable

*명령어: set variable 변수명 =

*기능: 변수 값을 변경

 

set variable d[1]=80 을 입력해 보았습니다.

엔터를 쳐도 어떤 메시지가 출력이 안 되는데요.

 

display 명령을 통해 확인해 보니 d[1] 값이 80으로 바뀌었네요. :)

 

info break

Breakpoint를 많이 지정하다 보면 자신이 어디에 Breakpoint를 지정했는지 잊어먹을 수 있죠. 이때 Breakpoint 목록을 확인하는 방법이 있습니다.

*명령어: info break

*기능: 설정되어 있는 Breakpoint 확인

 

이렇게 Breakpoint 목록을 확인하실 수 있습니다.

혹시 제거하고 싶은 Breakpoint가 있다면, Num 열과 What 열에 주목하세요!

 

delete

[특정 Breakpoint를 제거할 때]

*명령어: delete Num

(Num은 info break 명령을 통해서 확인)

*기능: 특정 Breakpoint 제거

 

Breakpoint 1이 dtest.c:7인 상태에서 delete 1 명령을 실행해 보았습니다.

 

run 명령을 실행했을 때 Breakpoint 2까지 실행되어, Line 16까지 실행되고 현재 행이 Line 18로 지정되었습니다.(Breakpoint2가 Line 17인데 현재 행이 Line 18인 이유: Line 17은 공백임.)

 

[모든 Breakpoint를 제거할 때]

*명령어: delete

*기능: 모든 Breakpoint 제거

 

1. delete를 입력하고 엔터 칩니다.

2. Delete all breakpoints? (y or n)이 출력되면 y를 입력하고 엔터 칩니다.

 

run을 실행해 보니 Breakpoint 없이 끝까지 실행됩니다.

 

kill

프로그램을 실행하다가 Breakpoint에서 멈췄을 때 오류를 발견한다면 빨리 종료하고 소스코드 수정을 하고 싶겠죠? 이때 프로그램을 종료하는 명령어가 있습니다.

*명령어: kill

*기능: 프로그램 수행 강제 종료

 

1. kill 명령을 실행합니다.

2. Kill the program being debugged? (y or n)이 출력되면 y를 입력하고 엔터키를 누릅니다.

3. 프로그램이 강제 종료되었습니다.

 

quit

디버거를 종료하고 싶을 때

*명령어: quit 또는 q

*기능: gdb 디버거 종료

 

q를 입력하고 엔터 쳤더니 위와 같이 gdb 디버거가 종료되었습니다.

 

저의 글을 읽어 주셔서 감사합니다.

글을 쓰고 보니 굉장히 길군요. 긴 글 읽어 주셔서 감사합니다.

다음에 만나요!

 

참고 자료

1) 슈라 Shuuura. 2020. "[우분투 리눅스] gcc컴파일 및 디버깅", 슈라의 인생 Log. :). (2021. 07. 24. 방문). https://blog.naver.com/sera3579/222109588968

2) 현애. 2020. "[20] 리눅스 - gcc 컴파일러, gdb 디버거", 과제하는 공대생. (2021. 07. 24. 방문). https://blog.naver.com/aeae_1/222161714082

3) KwonZales. 2021. "[Linux] 리눅스의 디버거, gdb의 디버거와 사용법", 하고 싶은 게 많은, 일단은 개발자. (2021. 07. 24. 방문). https://kwonzales.tistory.com/35

4) 허정호. 2017. "[과제] gdb(디버거) 사용법", 허정호의 IT 공장. (2021. 07. 24. 방문). https://hyess.tistory.com/337

 

댓글을 달아 주세요