디버깅 Case Study

홍찬우·2023년 7월 24일
0
post-custom-banner

디버깅

오류나 버그를 찾고 수정하는 과정

바라는 상황과 실제 발생한 상황의 차이를 알기 위해 디버깅이 필요


디버깅 Process

업로드중..

  • 문제 인식

    • 무엇이 문제인지 아는 것이 중요

    • 재현 가능하도록 준비

    • 오류 메세지 읽고 번역하기

  • 해결책 검색

    • 검색해도 문제를 해결할 수 없는 경우 → 오픈소스 코드 확인
  • 오답노트

    • 오류를 기록하는 것이 매우 중요


서버 관리 Case Study

AI, ML 엔지니어가 만든 모델은 대부분 서버에서 동작

서버 관리의 목적

  • 서버를 안정적으로 운영해 장애를 발생하지 않기 위함

  • 서버에서 작업을 원활하게 진행하기 위함

서버 관리를 위해 알아야 하는 지식

  • 파일 시스템, 네트워크, 성능 모니터링, …

파일 시스템

  • Linux 파일 시스템 구성

  • 파일, 폴더 구조를 일관된 방식으로 제공

  • bin 폴더에는 ls, cp 등 기본적으로 필요한 유틸리티 프로그램이 저장되어 있음

  • 경로나 호스트 머신 디스크 문제를 인식하기 전에 서버가 어떤 환경에서 실행 중인지 확인 필요



네트워크

  • IP : 네트워크에 연결된 다른 컴퓨터의 주소

  • Port : 포트 숫자는 PC에 접속할 수 있는 통로

    • 포트를 개방해야 사용할 수 있음

    • e.g., localhost:8000 → 8000번 포트로 접속

  • 방화벽 : 특정 IP, Port만 접속할 수 있도록 설정

  • ping

    • 네트워크 진단 시 사용하는 명령어

    • 서버가 연결되어 있는지, 얼마나 빠른 속도로 데이터가 전송되는지 테스트

    • 네트워크 상에서 서버에게 작은 패킷을 보내고, 서버가 이를 받았다는 신호를 받는 것으로 동작

    • ping + IP주소 또는 도메인 이름 입력


  • nslookup

    • 특정 도메인을 찾을 수 있는지 확인 가능

    • DNS 서버에 연결 가능한지 확인


  • 포트 개방 확인

    • 현재 연결된 포트 정보들을 확인할 때 netstat 명령어 이용

     22, 3306, 80 포트가 연결되어 있음

성능 모니터링

  • GPU, CPU, 메모리 성능 확인하고 싶은 경우

  • top 명령어로 확인 가능

    • glances, nvidia-smi도 가능






※ 모든 이미지 및 코드 출처는 네이버 커넥트재단 부스트캠프 AI Tech 5기입니다. ※

profile
AI-Kid
post-custom-banner

0개의 댓글