실습 로그

AWS와 홈랩을 구축하면서 단계별로 남긴 실습 로그입니다. 주황색 태그는 그 글에 담긴 트러블슈팅 사례입니다.

어떻게 쓴 글인가요?

진행 과정
실습하면서 한 작업과 트러블슈팅을 AI와 함께 정리했습니다.
배운 점
정리된 과정을 다시 보면서 제가 이해한 내용을 썼습니다. 초록색 상자로 따로 표시했습니다.
46단계
73트러블슈팅 사례
AWS 인프라 10단계 9개 단계 · 계획 전체 10단계 · 트러블슈팅 15건
  1. 09

    AWS 9단계 · CloudWatch 모니터링

    8단계에서 배포한 ECS 서비스의 로그와 지표를 CloudWatch에서 확인하고, 이상 상황을 이메일로 통보받는 경로를 구성한다.

    진행 과정

    트러블슈팅 1건
    • 구독 확인 메일이 스팸함으로 분류되어 있었다
  2. 08

    AWS 8단계 · Docker·ECS

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

    진행 과정직접 쓴 배운 점

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

    AWS 7단계 · Terraform 기반 Private RDS 구축

    퍼블릭 EC2와 프라이빗 RDS를 분리해 구성하고, DB가 외부에서 직접 접근되지 않는 구조를 Terraform 코드로 만든다.

    진행 과정직접 쓴 배운 점

  4. 06

    AWS 6단계 · Terraform 자동화

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

    진행 과정직접 쓴 배운 점

    트러블슈팅 2건
    • 액세스 키 노출
    • 로컬 state로 인한 다중 기기 작업 제약
  5. 05

    AWS 5단계 · ALB·Auto Scaling

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

    진행 과정직접 쓴 배운 점

    트러블슈팅 2건
    • 502와 정상 페이지가 번갈아 표시됨
    • 새로 생성된 서버에 수정 내용이 없음
  6. 04

    AWS 4단계 · VPC·보안 설정

    지금까지 만든 서버가 어떤 네트워크 위에 올라가 있는지 확인하고, 퍼블릭 주소를 고정한 뒤 접근 권한을 필요한 만큼으로 좁힌다.

    진행 과정직접 쓴 배운 점

    트러블슈팅 1건
    • SSH를 내 IP로 제한한 뒤 EC2 Instance Connect 접속 실패

Proxmox 홈랩 6개 단계 · 계획 전체 8단계 · 트러블슈팅 19건
  1. 08

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

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

    진행 과정

    트러블슈팅 2건
    • 엉뚱한 VM이 재부팅됨
    • yeoulmok "Guest Agent not running"
  2. 07

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

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

    진행 과정직접 쓴 배운 점

    트러블슈팅 3건
    • paper VM 로그인 실패
    • 복구 모드에서 Proxmox 재부팅 버튼이 안 먹힘
    • Grafana 비번을 모름
  3. 04

    홈랩 4단계 · 도메인·HTTPS로 외부 공개

    Tailscale 사설망에서만 보이던 포트폴리오 사이트를 도메인(ihaewon.com)으로 외부에 공개한다. 공유기 포트는 열지 않고 Cloudflare Tunnel로 연결하며, HTTPS를 적용한다.

    진행 과정직접 쓴 배운 점

    트러블슈팅 1건
    • 하위 페이지가 http로 넘어감
  4. 03

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

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

    진행 과정직접 쓴 배운 점

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

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

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

    진행 과정직접 쓴 배운 점

    트러블슈팅 4건
    • Proxmox 콘솔에 키보드 입력이 안 됨
    • docker run 시 permission denied
    • 디스크를 40GiB 줬는데 18.5GB만 잡힘
    • tailscale: command not found
  6. 01

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

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

    진행 과정직접 쓴 배운 점

    트러블슈팅 4건
    • USB로 부팅해도 윈도우로 넘어감
    • 설치 직후 apt-get update 실패
    • No-Subscription 저장소 연결 실패 (IPv6)
    • Tailscale 인증 링크 404
산학 실시간 심전도 처리 서버 7개 단계 · 계획 전체 10단계 · 트러블슈팅 12건
  1. 07

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

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

    진행 과정직접 쓴 배운 점

    트러블슈팅 2건
    • 학습 데이터 다운로드가 하루 넘게 걸림
    • "병목은 모델 크기"라는 가설이 틀림
  2. 06

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

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

    진행 과정직접 쓴 배운 점

    트러블슈팅 1건
    • MQTT 테스트에서 1,000건 중 900건만 받음
  3. 05

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

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

    진행 과정직접 쓴 배운 점

    트러블슈팅 3건
    • 컨테이너별 그래프만 No data
    • 적체·중복 숫자가 실제와 다름
    • 100명 심박이 다 비슷함
  4. 04

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

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

    진행 과정직접 쓴 배운 점

    트러블슈팅 4건
    • R파 위치가 실제보다 늦게 찍힘
    • 임시 모델 민감도 0
    • Connection refused
    • cnn·demo 모드에서 판정마다 nbeat 오류 (10/15)
  5. 03

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

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

    진행 과정직접 쓴 배운 점

    트러블슈팅 2건
    • 메시지가 목표보다 10개 더 나감
    • push 거부 (non-fast-forward)
  6. 02

    산학 2단계 · 서버 연결 방식 설계

    생성기에서 나간 심전도가 서버까지 어떻게 갈지, 어떤 형식으로 보낼지 수신부 담당 팀원과 정한다.

    진행 과정직접 쓴 배운 점

Frozen Stiff · 융합캡스톤디자인 게임 3개 단계 · 계획 전체 4단계 · 트러블슈팅 5건
  1. 03

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

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

    진행 과정

    트러블슈팅 2건
    • 토큰 자리에 예시 글자가 그대로 들어감
    • 터널 커넥터가 두 개 뜸
  2. 02

    캡스톤 2단계 · 플레이 기록 수집 서버

    게임과 무관하게 단독으로 돌아가면서, 게임이 보내는 사건 기록을 받아 run_id별로 저장하고, 조회·다운로드까지 되는 서버를 만든다.

    진행 과정직접 쓴 배운 점

  3. 01

    캡스톤 1단계 · GodotSteam 검증

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

    진행 과정직접 쓴 배운 점

    트러블슈팅 3건
    • GodotSteam이 Asset Library에 안 뜸
    • macOS "앱이 손상되었기 때문에 열 수 없습니다"
    • 로비 생성 콜백(lobby_created)이 안 옴
여울목 · 계곡 급류 사전경보 서비스 3개 단계 · 계획 전체 7단계 · 트러블슈팅 7건
  1. 03

    여울목 3단계 · 관측 데이터 수집과 DB

    원주 대상 계곡을 정하고, 계곡별로 쓸 강수·수위 관측소를 찾아 API로 데이터를 받을 수 있는지 확인한다. 이후 서버가 주기적으로 수집해 DB에 쌓는다.

    진행 과정직접 쓴 배운 점

    트러블슈팅 2건
    • 관측소 전체 목록 API 응답이 중간에 잘림
    • 1시간 자료 조회에서 값이 전부 비어 나옴
  2. 02

    여울목 2단계 · 기능 정의와 API 명세

    10/29 회의에서 정한 기능을 화면으로 옮기고, 서버와 앱·웹이 주고받을 API 명세를 정한다.

    진행 과정직접 쓴 배운 점

    트러블슈팅 2건
    • Figma가 무료 플랜으로 연결됨
    • 교육 플랜인데 좌석이 View로 나옴
  3. 01

    여울목 1단계 · 깃허브 세팅

    서버 코드를 올릴 GitHub 저장소를 팀 조직 아래 만들고, 홈랩 서버 VM에서 바로 받고 올릴 수 있게 연결한다.

    진행 과정직접 쓴 배운 점

    트러블슈팅 3건
    • 조직 저장소에 배포 키를 추가할 수 없음
    • "Key is already in use"로 배포 키 등록 실패
    • API 키를 불러왔는데 값이 비어 있음
미용실 AI 사전 상담 서비스 1개 단계 · 계획 전체 4단계
  1. 01

    모두의 창업 1단계 · 지원서 작성과 1라운드 선발

    미용실 사전 상담 아이디어로 2차 모두의 창업에 지원하고, 요건검토를 통과해 1라운드에 진출한다.

    진행 과정

커리어 내비 · 채용공고 기반 역량 갭 진단 3개 단계 · 계획 전체 5단계 · 트러블슈팅 2건
  1. 03

    커리어 내비 3단계 · 웹 서비스 MVP

    (진행 중) 팀원 엔진을 서버에 연결하고, 계획서 그림 3 수준의 진단 리포트 화면(적합도·역량 카드·What-If·학기별 로드맵)을 만든다. Claude API 비용이 새지 않게 서버를 잠근다.

    진행 과정직접 쓴 배운 점

  2. 02

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

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

    진행 과정직접 쓴 배운 점

    트러블슈팅 2건
    • 팀원 SSH 접속 시 비밀번호를 물어봄
    • 터널을 Nginx로 바꾼 뒤 사이트가 500 에러
  3. 01

    커리어 내비 1단계 · 신청서 작성과 제출

    '커리어 내비' 아이디어로 2026학년도 캡스톤디자인 경진대회 신청서를 작성하고 제출한다.

    진행 과정직접 쓴 배운 점

MiCAL · 학사·학과·장학금 일정 통합 캘린더 3개 단계 · 계획 전체 5단계 · 트러블슈팅 7건
  1. 03

    MiCAL 3단계 · 화면과 API 연결

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

    진행 과정

    트러블슈팅 1건
    • 주간 보기에서 일정이 세로 글씨로 찌그러짐
  2. 02

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

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

    진행 과정직접 쓴 배운 점

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

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

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

    진행 과정직접 쓴 배운 점

    트러블슈팅 3건
    • SSH 키를 등록했는데 계속 비번을 물어봄
    • 32GB로 만든 VM 디스크가 14GB로 잡힘
    • calendar.ihaewon.com이 안 열림 (ERR_NAME_NOT_RESOLVED)
반려동물 위탁돌봄 인수인계 점검 AI 5개 단계 · 계획 전체 8단계 · 트러블슈팅 1건
  1. 05

    돌봄 논문 5·6단계 · 챌린지 결선과 2쪽 원고 투고

    AI 기술 혁신 챌린지 결선에 맞춰 학술지 원고(6쪽)를 학술대회 캡스톤 양식 2쪽으로 줄여 투고한다.

    진행 과정

  2. 04

    돌봄 논문 4단계 · 학술지 투고

    실험 결과를 논문으로 정리해 학회 학술지(JAMS)에 투고한다.

    진행 과정

  3. 03

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

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

    진행 과정

    트러블슈팅 1건
    • Gemini 무료 티어 429 한도 초과
  4. 02

    돌봄 논문 2단계 · 코드 규칙 검사(R0~R4) 구현

    AI가 채운 JSON 칸을 if문 규칙으로 다시 검사해, AI가 놓친 질문을 AI 호출 없이 잡는다.

    진행 과정

  5. 01

    돌봄 논문 1단계 · 연구 질문과 실험 설계

    무엇을 비교할지 정하고, 결과를 보고 기준을 바꾸지 못하도록 사례·정답·프롬프트를 실행 전에 고정한다.

    진행 과정직접 쓴 배운 점

LLM API 지연·오류 대응 정책 실측 6개 단계 · 계획 전체 7단계 · 트러블슈팅 5건
  1. 06

    논문 실측 6단계 · 수집 종료·백업과 학술대회 투고

    수집을 멈추고 데이터를 백업한 뒤, 1~2쪽 논문을 써서 추계학술대회에 투고하고 실측 서버를 정리한다.

    진행 과정

  2. 05

    논문 실측 5단계 · 정책 시뮬레이션과 결과

    수집한 실측 기록 하나로 기다리기·재시도·전환 세 정책을 다시 계산해, 타임아웃을 몇 초로 둬야 하는지 비교한다.

    진행 과정

  3. 04

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

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

    진행 과정

    트러블슈팅 2건
    • OpenAI 400 (max_tokens)
    • Gemini 402 (선불 크레딧 소진)
  4. 03

    논문 실측 3단계 · 측정 스크립트 작성

    한 번 실행하면 세 정책(기다리기·재시도·전환) 비교에 필요한 응답 기록을 한 줄로 남기는 스크립트를 만든다.

    진행 과정

  5. 02

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

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

    진행 과정

    트러블슈팅 1건
    • OpenAI API 401 invalid_api_key
  6. 01

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

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

    진행 과정

    트러블슈팅 2건
    • 설치 부팅 중 커널 패닉
    • Shutdown이 반응 없음