센로그

[ED] 18. 원격 디버깅 환경 구축하기 본문

Effective/Effective Debugging

[ED] 18. 원격 디버깅 환경 구축하기

seeyoun 2024. 11. 16. 20:53

자신의 작업 환경이 아닌 곳에서 일하면 생산성이 크게 떨어진다.

  • 하드웨어에 밀접한 문제에 대한 디버깅 작업을 자신이 사용하는 컴퓨터의 화면과 키보드로 작업할 수 있도록 장치 에뮬레이터를 설치한다.
  •  임베디드 소프트웨어를 디버깅할 때는 애플리케이션의 핵심 영역을 자신의 기기에서 실행할 수 있도록 소프트웨어 형태의 쐐기(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 연결해야 함
    • 문제가 생기면 서버실에 가서 각 서버를 직접 찾아가서 확인해야 함

 

 

Comments