개발 기록
홈서버 인프라, 프론트엔드와 SEO, 자동 배포, 3D 게임까지, 서비스를 만들고 운영하며 부딪힌 문제와 해결 과정을 정리한 글 61편입니다.
Claude가 내 홈서버에 직접 SSH로 들어오게 만들기까지
왜 이걸 하려고 했나 집에 Intel N100 미니PC를 상시 가동 서버로 두고 도커로 서비스 몇 개를 굴리고 있다. 개발은 윈도우 PC에서 하고 배포와 운영은 미니PC에서 돌아간다. 그러다 보니 "컨테이너 상태 좀 봐줘" 같은 걸 부탁하려면 매번 내가 터미널을 열고 SSH로 붙어서 결과를 복사해 붙여넣어야 했다. 그래서 Claude가 MCP를 통해 미니PC에 직접 SSH로 접속하도록 만들어보기로 했다. 결론부터 말하면 성공했지만 중간에 예상 못 한 벽을 세 개나 만났다.
배포는 성공했는데 사이트는 그대로였다
컨테이너는 만들어졌는데 시작이 안 됐다 먼저 컨테이너 목록을 봤다. 프론트엔드와 백엔드가 created 상태였다. 만들어지긴 했는데 시작에 실패했다. 그런데 사이트는 멀쩡히 떠 있었다. 이 조합이 이상했다. 새 컨테이너가 안 떴는데 서비스가 살아 있다면, 옛날 프로세스가 아직 포트를 붙잡고 있다는 뜻이다. 포트를 누가 쥐고 있는지 확인해봤다. 컨테이너는 이미 지워졌는데 docker-proxy 프로세스 네 개가 80과 443을 계속 물고 있었다. 스냅으로 설치한 도커에서 종종 생기는 문제라고 한다. 새 컨테이너는 포트를 못 잡아서 created에서 멈췄고 죽은 컨테이너의 프록시가 계속 옛날 내용을 서빙하고 있었던 것이다. 프로세스를 죽이고 컨테이너를 다시 올렸다. 이번엔 정상적으로 떴다.
미니PC 한 대로 웹 서비스 4개 운영하기
전기요금 걱정 없는 N100 미니PC 한 대에 도커로 서비스 네 개를 올렸습니다. 서브도메인으로 나누고, 하나의 443 포트를 나눠 쓰는 구조를 정리했습니다.
Vue로 만든 사이트가 검색에 안 잡히던 이유
SPA는 자바스크립트가 실행돼야 내용이 보입니다. 크롤러 눈에는 빈 페이지였던 사이트를, 빌드 때 정적 HTML을 만들어 해결한 과정입니다.
커밋하면 알아서 배포되게 만들기
코드를 고칠 때마다 서버에 접속해 빌드하던 걸 자동화했습니다. 커밋 한 번이면 배포까지 끝나는 파이프라인과, 그러다 겪은 함정들.
브라우저에서 도는 3D 멀티플레이 게임 만들기
설치 없이 링크만으로 여러 명이 함께 뛰어다니는 술래잡기 게임. 3D도 실시간 통신도 처음이었던 사람이 부딪힌 개념들.
쿠버네티스 로그확인 시, OpenLens 사용방법
1. OpenLens 설치파일 실행 -> 설치 2. OpenLens 실행 3. 브라우즈 카탈로그에서 오른쪽에 + 버튼에 마우스 올리고 상황에 맞게 선택 4. txt 파일로 config가 있으면 붙여넣고 끝 …
스프링부트+Vue3 제스퍼 리포팅 Tool 사용
@Controller public class JasperController { private final BoardService boardService; @Autowired public JasperControlle…

시놀로지NAS 백앤드 서버로 활용하기(Docker톰캣/https적용)
백앤드 서버가 하나 필요하여 여기저기 알아보니 요즘은 대부분 돈을받고 백앤드서버를 제공한다. AWS가 그나마 무료로 1년간 제공을 하고 있으나 잘못걸리면 과금폭탄을 맞을 수 있다는 리스크가 존재한다. 교육관련 플…

시놀로지NAS DSM 7 이상에서 도커를 이용하여 톰캣구동하기
분명 DSM 6 버전에는 아파치 톰캣이 있어서 그러려니하고 있었는데 버전을 올리고나서 보니까 없다... 아.... 이제 서비스 않하는구나 ᅲᅲ 사이드프로젝트를 하면서 백앤드 서버로 활용하려고 열심히 삽질했더니 이…