전체 글90 [docker] Docker 첫 컨테이너 - docker run 한 줄이 실제로 하는 일 docker run 은 pull·create·start 를 한 번에 한다. 이미지와 컨테이너가 왜 다른지, 멈춘 컨테이너가 왜 쌓이는지를 실행 출력으로 확인한다.Docker 를 깔고 docker run hello-world 까지는 따라 했는데 그 다음이 막막합니다. 이미지와 컨테이너가 다른 것이라는데 설명을 읽어도 손에 안 잡히고, docker run 을 몇 번 하다 보니 docker ps 에는 아무것도 없는데 docker ps -a 에는 열 몇 개가 쌓여 있습니다. -d, -it, --rm 을 언제 붙이는지도 매번 검색합니다.이미지와 컨테이너는 다른 것이다이미지는 읽기 전용 틀이고 컨테이너는 그 틀로 찍어 낸 실행 중인 하나입니다. 이 구분이 손에 안 잡히는 이유는 docker run 이 둘을 한 번에.. 2026. 8. 31. [AI] MCP resources 와 prompts - tools 말고 나머지 둘은 언제 쓰나 셋의 차이는 기능이 아니라 누가 주도하느냐다. 모델이 정하면 tools, 앱이 붙이면 resources, 사용자가 고르면 prompts다. MCP resources 와 prompts 라는 것이 tools 말고 따로 있다는데, 파일을 읽어 주는 일이면 도구로 만들어도 되는 것 같습니다. 셋을 어떻게 나눠 써야 하는지, 굳이 나눌 이유가 있는지 모르겠습니다. 누가 주도하느냐MCP resources 와 prompts 를 tools 와 기능으로 나누려 하면 헷갈립니다. "파일 읽기" 는 도구로도 리소스로도 만들 수 있으니까요. 실제 구분은 누가 그것을 쓰기로 결정하느냐 입니다.tools 는 모델이 정합니다. 대화 중에 "검색이 필요하겠다" 고 판단해 스스로 부릅니다. 부작용이 있어도 됩니다 — 메일을 보내거나 .. 2026. 8. 31. [docker] Docker 레이어 캐시 - 빌드가 느리고 이미지가 큰 이유 Dockerfile 의 한 줄이 레이어 하나다. 순서만 바꿔도 재빌드가 6~8초에서 0~1초가 되고, .dockerignore 하나로 이미지가 255MB에서 171MB가 된다.Dockerfile 을 만들어 빌드까지는 됐는데, 코드 한 줄만 고쳐도 매번 pip install 이 처음부터 다시 돌아 몇 분씩 기다립니다. 만들어진 이미지도 몇백 MB 라 배포할 때마다 오래 걸립니다. Docker 레이어 캐시를 잘 쓰라는 말은 봤는데, 무엇을 어떤 순서로 놔야 하는지가 감이 안 옵니다.이 글은 Dockerfile 을 한 번이라도 써 본 사람을 전제한다. FROM·WORKDIR·COPY·RUN·CMD 가 각각 무엇인지부터라면 같은 폴더의 「Docker - 이미지 빌드 & Dockerfile 심화」 2절을 먼저 보.. 2026. 8. 30. [docker] Docker 운영 - 로그·재시작·헬스체크·디스크 컨테이너를 띄운 뒤에 챙겨야 하는 것들. 로그 무제한 증가, 재시작 정책, 헬스체크, OOM 종료, 디스크 정리를 실제 출력으로 확인한다. 개발용으로 쓰던 Docker 를 작은 서버에 올려 며칠 굴렸더니 디스크가 가득 찼습니다. 컨테이너 하나는 어느 순간 사라져 있는데 로그에는 아무 흔적이 없고, 다른 하나는 docker ps 에 Up 이라고 나오는데 요청은 계속 실패합니다. Docker 운영에서 무엇부터 봐야 하는지를 모르겠습니다.이 글은 증상에서 출발한다. 같은 폴더의 「Docker - 컨테이너 실행 & 런타임 심화」가 로그·리소스·재시작 옵션을 항목별로 정리한 레퍼런스라면, 여기서는 '디스크가 찼다'·'컨테이너가 사라졌다'·'Up 인데 요청이 실패한다' 같은 증상에서 시작해 무엇을 찍어 봐야 하는지.. 2026. 8. 29. [java/spring] Log4j2 - 자리표시자는 인자 계산까지 막아 주지 않는다 스프링 부트의 기본 로깅은 Logback이라 Log4j2로 바꾸려면 먼저 빼야 할 것이 있다. 롤링은 세대 수와 보존 기간을 함께 정해야 디스크가 차지 않는다. 새벽에 디스크 사용률 경보가 울렸습니다. 들어가 보니 로그 파일 하나가 수십 기가로 자라 있습니다. Log4j2 롤링은 걸어 뒀는데 오래된 파일이 하나도 지워지지 않았습니다. 급한 불을 끄고 설정을 열어 보니, 세대 수는 정해 뒀지만 보존 기간을 정한 자리가 비어 있었습니다.스프링 부트에서 Log4j2로 바꾼다는 것스프링 부트는 아무 설정을 하지 않아도 로깅이 동작합니다. spring-boot-starter-web 이 spring-boot-starter-logging 을 끌고 오고, 그 안에 Logback이 들어 있기 때문입니다. 코드에서 부르는.. 2026. 8. 29. 이전 1 2 3 4 ··· 18 다음