트러블슈팅

  1. 03

    캡스톤 3단계 · 플레이 기록 서버 개선 1차

    기획자 요청대로 테스터들이 집에서 보낸 기록을 브라우저 주소창만으로 내려받고 요약해볼 수 있게 서버를 고치고, 홈랩 VM에 올려 외부에서 접속되게 한다.

    진행 과정

    • 토큰 자리에 예시 글자가 그대로 들어감
    • 터널 커넥터가 두 개 뜸
  2. 03

    MiCAL 3단계 · 화면과 API 연결

    (진행 중) 프론트 팀이 만든 새 프로토타입을 서버에 올리고, 2단계에서 DB에 넣은 실제 일정(742건)이 프로토타입 캘린더에 뜨게 연결한다. 프론트 팀 코드는 최소로만 건드린다.

    진행 과정

    • 주간 보기에서 일정이 세로 글씨로 찌그러짐
  3. 02

    MiCAL 2단계 · 백엔드 배포와 데이터 적재

    (진행 중) 1단계에서 만든 서버 위에 Django 백엔드(회원가입·로그인, 일정 API)와 PostgreSQL을 실제로 띄우고, 팀원 크롤러가 모은 학사·장학금·공모전·비교과 데이터를 DB에 넣는다. 팀원 중 서버가 필요한 사람에게만 계정을 준다.

    진행 과정 직접 쓴 배운 점

    • 크롤러 결과 저장 실패 (Permission denied)
    • 소프트웨어학부 공지만 SSL 오류
    • 컨테이너를 띄운 직후 curl이 Connection reset
  4. 08

    홈랩 8단계 · 홈랩 운영 점검

    운영 중인 VM 4대(portfolio, careernavi, yeoulmok, calendar)의 상태를 한 번에 점검하고, 시간대·스냅샷·Guest Agent·커널 버전을 통일해서 관리하기 쉬운 상태로 만든다.

    진행 과정

    • 엉뚱한 VM이 재부팅됨
    • yeoulmok "Guest Agent not running"
  5. 01

    MiCAL 1단계 · 저장소와 서버 구축

    팀 저장소를 만들고 역할별 폴더를 나눈 뒤, 홈랩에 이 프로젝트 전용 VM을 만들어 프론트 시안을 calendar.ihaewon.com으로 외부 공개한다.

    진행 과정 직접 쓴 배운 점

    • SSH 키를 등록했는데 계속 비번을 물어봄
    • 32GB로 만든 VM 디스크가 14GB로 잡힘
    • calendar.ihaewon.com이 안 열림 (ERR_NAME_NOT_RESOLVED)
  6. 02

    커리어 내비 2단계 · 개발 환경과 프로젝트 뼈대

    GitHub 레포를 만들고, 팀원과 맞출 진단 결과 JSON 형식을 문서로 정한 뒤, 그 형식대로 가짜 결과를 돌려주는 FastAPI 서버와 React 화면을 만든다. 서비스를 올릴 홈랩 VM을 준비하고 도메인으로 외부에 공개한다.

    진행 과정 직접 쓴 배운 점

    • 팀원 SSH 접속 시 비밀번호를 물어봄
    • 터널을 Nginx로 바꾼 뒤 사이트가 500 에러
  7. 06

    산학 6단계 · 생성기 MQTT 송신

    생성기가 TCP 말고 MQTT로도 보낼 수 있게 해서, 같은 데이터를 두 방식으로 보내 지연·유실·재연결을 비교할 준비를 한다.

    진행 과정 직접 쓴 배운 점

    • MQTT 테스트에서 1,000건 중 900건만 받음
  8. 07

    산학 7단계 · 부하테스트용 기준 AI 모델

    공개 데이터(PTB-XL)로 기준 CNN을 직접 학습해 시험셋 민감도 0.929·특이도 0.883·AUC 0.969를 얻고, 모델 6종이 정확도는 비슷하지만 판정 속도는 16배 차이 나는 것을 확인했다.

    진행 과정 직접 쓴 배운 점

    • 학습 데이터 다운로드가 하루 넘게 걸림
    • "병목은 모델 크기"라는 가설이 틀림
  9. 01

    캡스톤 1단계 · GodotSteam 검증

    Godot 4.6 환경에서 GodotSteam(Steam 연동 GDExtension)이 실제로 동작하는지, Steam 로그인·로비 생성까지 되는지 확인해 검증 보고서를 쓴다.

    진행 과정 직접 쓴 배운 점

    • GodotSteam이 Asset Library에 안 뜸
    • macOS "앱이 손상되었기 때문에 열 수 없습니다"
    • 로비 생성 콜백(lobby_created)이 안 옴
  10. 05

    산학 5단계 · 환자 수별 부하테스트와 모니터링

    테스트 서버(ecg VM)에서 환자 수를 6 → 20 → 50 → 100명으로 늘리며 끝단 지연과 유실을 재고, 서버가 어디서 버티지 못하는지 찾는다.

    진행 과정 직접 쓴 배운 점

    • 컨테이너별 그래프만 No data
    • 적체·중복 숫자가 실제와 다름
    • 100명 심박이 다 비슷함
  11. 07

    홈랩 7단계 · 홈랩 통합 모니터링

    홈랩 서버 4대(Proxmox 호스트, portfolio, ecg, paper)의 상태를 한 화면에서 보고, 서버가 죽거나 디스크·메모리가 차면 알 수 있게 알림 규칙까지 넣는다.

    진행 과정 직접 쓴 배운 점

    • paper VM 로그인 실패
    • 복구 모드에서 Proxmox 재부팅 버튼이 안 먹힘
    • Grafana 비번을 모름
  12. 02

    논문 실측 2단계 · API 키 준비와 보관

    측정에 쓸 Gemini·OpenAI API 키를 비용 사고 없이 준비하고, 코드와 분리해 VM에 안전하게 보관한다.

    진행 과정

    • OpenAI API 401 invalid_api_key
  13. 01

    논문 실측 1단계 · paper VM 생성과 원격 접속

    논문 실측 수집만 맡는 VM을 따로 만들고, Tailscale로 맥에서 원격 접속할 수 있게 한다.

    진행 과정

    • 설치 부팅 중 커널 패닉
    • Shutdown이 반응 없음
  14. 04

    논문 실측 4단계 · cron 자동 실행과 수집 확인

    사람이 손대지 않아도 10분마다 측정이 돌게 하고, 기록이 빠짐없이 쌓이는지 확인한다.

    진행 과정

    • OpenAI 400 (max_tokens)
    • Gemini 402 (선불 크레딧 소진)
  15. 03

    돌봄 논문 3단계 · 실행과 결과 집계

    Gemini API로 400회 실행해 세 방식을 비교하고, 코드 검사가 놓친 질문을 모두 잡는 대신 쓸데없는 질문이 늘어나는 것을 확인했다.

    진행 과정

    • Gemini 무료 티어 429 한도 초과
  16. 03

    산학 3단계 · TCP 전송과 3리드 데이터

    생성기에 TCP 전송을 붙이고, 실제 장비와 맞춰 3리드 데이터로 바꾼다.

    진행 과정 직접 쓴 배운 점

    • 메시지가 목표보다 10개 더 나감
    • push 거부 (non-fast-forward)
  17. 04

    산학 4단계 · 수신부 연결과 전체 시연

    팀원이 만든 수신부·Redis·워커를 테스트 서버(ecg VM)에 띄우고, 내 생성기와 연결해 끝까지 이어지는지 확인한다.

    진행 과정 직접 쓴 배운 점

    • R파 위치가 실제보다 늦게 찍힘
    • 임시 모델 민감도 0
    • Connection refused
    • cnn·demo 모드에서 판정마다 nbeat 오류 (10/15)
  18. 02

    홈랩 2단계 · VM 원격 접속과 Docker 환경 구성

    1단계에서 만든 Ubuntu VM에 맥북에서 SSH로 바로 접속할 수 있게 하고, Docker를 설치해 컨테이너를 실행할 수 있는 환경을 만든다.

    진행 과정 직접 쓴 배운 점

    • Proxmox 콘솔에 키보드 입력이 안 됨
    • docker run 시 permission denied
    • 디스크를 40GiB 줬는데 18.5GB만 잡힘
    • tailscale: command not found
  19. 03

    홈랩 3단계 · 포트폴리오 사이트 컨테이너 배포

    portfolio VM에 웹 서버를 컨테이너로 띄우고, 포트폴리오 사이트를 배포한다.

    진행 과정 직접 쓴 배운 점

    • hugo --minify 빌드 실패
    • ssh-keygen 키 저장 실패
    • VM에서 hugo 빌드 실패 (Hugo 버전 차이)
    • 명령어를 엉뚱한 터미널에서 실행
    • 데스크톱에서 VM SSH 접속 timeout
  20. 01

    홈랩 1단계 · Proxmox 설치와 원격 접속 구성

    미니PC(FIREBAT F2)에 Proxmox VE를 설치해 물리 서버 한 대 위에서 여러 VM을 운영할 수 있는 기반을 만든다.

    진행 과정 직접 쓴 배운 점

    • USB로 부팅해도 윈도우로 넘어감
    • 설치 직후 apt-get update 실패
    • No-Subscription 저장소 연결 실패 (IPv6)
    • Tailscale 인증 링크 404
  21. 08

    AWS 8단계 · Docker·ECS

    7단계에서 EC2에 직접 설치해 운영하던 웹 서버를 컨테이너 이미지로 만들고, ECS Fargate에서 실행되도록 전환한다.

    진행 과정 직접 쓴 배운 점

    • docker run 이 데몬에 연결하지 못함
    • 브라우저에서 접속 실패 (ERR_CONNECTION_REFUSED)
    • 컨테이너 이름 충돌 (Conflict. The container name is already in use)
  22. 06

    AWS 6단계 · Terraform 자동화

    1~5단계에서 콘솔로 구축한 인프라를 Terraform 코드로 재작성하여, 명령어 한 줄로 생성·삭제할 수 있는 구조로 전환한다.

    진행 과정 직접 쓴 배운 점

    • 액세스 키 노출
    • 로컬 state로 인한 다중 기기 작업 제약
  23. 02

    AWS 2단계 · 커스텀 웹페이지 배포

    기본 Nginx 페이지 대신 직접 만든 HTML 페이지로 교체하기

    진행 과정 직접 쓴 배운 점

    • 한글이 물음표(�)로 깨져서 표시됨
  24. 05

    AWS 5단계 · ALB·Auto Scaling

    서버 1대짜리 구조를 여러 AZ에 분산된 다중 서버 구조로 전환하고, 장애 발생 시 자동으로 복구되는지 검증한다.

    진행 과정 직접 쓴 배운 점

    • 502와 정상 페이지가 번갈아 표시됨
    • 새로 생성된 서버에 수정 내용이 없음
  25. 03

    AWS 3단계 · 장애 발생 및 트러블슈팅

    일부러 장애를 만들고, 로그/명령어로 원인을 진단하고 복구하는 연습

    진행 과정 직접 쓴 배운 점

    • 장애 1: Nginx 설정 파일 문법 오류
    • 장애 2: 보안 그룹으로 80번 포트 차단
    • 장애 3: HTML 파일 권한 오류 (403 에러)
    • 장애 4: Nginx 프로세스 중지
    • 브라우저에 변경사항이 반영되지 않음