센로그
[ED] 18. 원격 디버깅 환경 구축하기 본문
자신의 작업 환경이 아닌 곳에서 일하면 생산성이 크게 떨어진다.
- 하드웨어에 밀접한 문제에 대한 디버깅 작업을 자신이 사용하는 컴퓨터의 화면과 키보드로 작업할 수 있도록 장치 에뮬레이터를 설치한다.
- 임베디드 소프트웨어를 디버깅할 때는 애플리케이션의 핵심 영역을 자신의 기기에서 실행할 수 있도록 소프트웨어 형태의 쐐기(shim) 모듈을 만들 수 있다.
- 자신이 사용하는 개발 머신에서 제공하는 도구를 활용할 수 있도록 하기 위한 목적이다.
- 시스템의 중간에서 특정 부분을 캡슐화 하여 독립적으로 동작하도록 하거나, 코드 변경 없이 다른 계층과 상호작용할 수 있도록 돕는 것이다.
- 독립적으로 컴파일하여 실행할 수 있는 단위로 만들어놓고 디버깅한다.
원격 디버깅 환경 구축하기
- 고객의 PC에서 발생한 문제를 해결할 때는 원격에서 접속할 수 있는 환경을 구축하면 좋다.
- 요즘은 상당수 백엔드 컴퓨팅 작업을 상용 클라우드 환경에서 처리한다.
- 서버에 대한 디버깅 작업을 원격에서 수행할 수 있도록 IP 기반 KVM 스위치를 설치해 작업한다.
- IP 네트워크를 통해서 원격에서 컴퓨터의 키보드(K), 비디오(V), 마우스(M)에 접속하게 해주는 장치
추가
shim이 뭔지 잘 모르겠어서 찾아본 질문들
+) Shim
- Shim은 특정 작업(예: 하드웨어 제어, 통신 프로토콜 변환)을 위해 만들어진 간단한 인터페이스 계층이다.
- sw-sw 사이 또는 hw-sw 사이에서 어떤 요청을 가로채서 변환해주거나 디버깅할 수 있도록 하는 등 부가 기능을 수행하는 것이다.
- 인터페이스 변환, 디버깅, 로깅, 테스트 지원 등
- Shim은 주로 특정 환경에 맞춘 맞춤형 인터페이스를 제공하고, 하드웨어와 소프트웨어 간의 의존성을 줄이며, 테스트와 유지보수를 간소화하는 데 초점이 맞춰져 있다.
KVM 스위치가 뭔지 잘 모르겠어서 찾아본 질문들
+) AWS같은 클라우드 서비스 사용하면 KVM 스위치.. 없어도 잘 되지않나?
- AWS 같은 클라우드 서비스를 사용하면 KVM 스위치가 필요 없다.
- AWS는 원격 제어, 모니터링, 전원 관리 등 KVM 스위치가 제공하는 모든 기능을 소프트웨어와 관리 도구로 대체한다.
- 따라서 클라우드 환경에서는 효율성, 확장성, 보안성 측면에서 AWS의 내장 기능이 훨씬 더 적합하고 경제적이다.
- KVM 스위치는 물리 서버를 직접 관리하는 온프레미스 환경에서 주로 유용하다.
+) 그러면 온프레미스 환경에서 KVM 스위치를 안쓰면 어떤 점이 불편한가?
- 여러 대의 서버 관리가 어려움
- 각 서버에 KVM 연결해야 함
- 문제가 생기면 서버실에 가서 각 서버를 직접 찾아가서 확인해야 함
'Effective > Effective Debugging' 카테고리의 다른 글
[ED] 20. 디버깅 전과 후에 정리하기 (0) | 2024.11.16 |
---|---|
[ED] 19. 디버깅 작업 자동화하기 (0) | 2024.11.16 |
[ED] 17. 오류의 효과 극대화하기 (1) | 2024.11.15 |
[ED] 16. 전문 모니터링 및 테스팅 장비 활용하기 (1) | 2024.11.15 |
[ED] 15. 서드파티 소스 코드 분석을 통해 문제 해결하기 (0) | 2024.11.13 |
Comments