Dandy Now!
  • [ DevOps/Docker ]
    Mac에서 도커 볼륨(Volume) 생성 및 관리: 영속적인 데이터 저장소 구축 🐳
    2025-10-03 12:38:45
    Mac에서 도커 볼륨(Volume) 생성 및 관리: 영속적인 데이터 저장소 구축 🐳도커(Docker) 컨테이너는 기본적으로 무상태(stateless)이며 휘발성이다. 즉, 컨테이너가 삭제되면 내부의 데이터도 함께 사라진다. 데이터베이스와 같이 영속성이 요구되는 애플리케이션의 데이터를 안전하게 보관하기 위해 도커 볼륨(Volume)을 사용한다. 특히 Mac 환경에서는 볼륨 관리 방식을 명확히 이해하는 것이 필수적이다.1. 도커 볼륨의 두 가지 유형과 Mac 환경의 문제Mac 환경에서 컨테이너에 데이터를 연결하는 방식은 크게 두 가지로 구분된다.1.1. 호스트 디렉토리 마운트 (Bind Mount): 오류 발생의 주요 원인호스트(사용자의 Mac 시스템)의 특정 디렉토리를 컨테이너 내부 경로에 직접 연결하는..
  • [ 언어·프레임워크/Node.js ]
    마크다운 테이블 파싱이 안 될 때: 줄바꿈 문자의 함정
    2025-09-29 16:42:05
    마크다운 테이블 파싱이 안 될 때: 줄바꿈 문자의 함정문제 상황Node.js로 마크다운을 HTML로 변환하는 프로젝트를 진행하던 중, 이상한 문제에 부딪힌 적이 있다. 분명히 올바른 마크다운 테이블 문법으로 작성했는데, 정규식이 테이블을 인식하지 못하는 상황이었다.| 기능 | 설명 || -------- | ----------- || 로그인 | 사용자 인증 || 대시보드 | 메인 화면 |위와 같은 완벽한 테이블이 있는데도 불구하고, 다음과 같은 정규식이 매칭되지 않았다:const tableRegex = /((?:^\|.*\|$\n)+)/gm;const match = markdown.match(tableRegex);console.log(match); // null 😱원인 분석문제..
  • [ AI/LangChain ]
    LangChain 그래프 시각화 오류 해결 방법
    2025-09-22 17:14:01
    LangChain 그래프 시각화 오류 해결 방법LangChain에서 그래프를 시각화할 때, 보통 아래와 같이 코드를 실행한다.from IPython.display import display, Imagedisplay(Image(graph.get_graph().draw_mermaid_png()))하지만 이 방식은 내부적으로 mermaid.ink API를 호출하기 때문에, 간헐적으로 500 오류 등 외부 API 문제로 인해 다음과 같은 ValueError가 발생할 수 있다.ValueError: Failed to reach https://mermaid.ink/ API while trying to render your graph. Status code: 500....이 문제를 피하기 위해 draw_mermaid_..
  • 게시글 대표 이미지 썸네일 주소
    [ AI/AI와 일하기 ]
    MCP Inspector: 127.0.0.1로 접속해야 하는 이유
    2025-09-19 14:14:20
    MCP Inspector: 127.0.0.1로 접속해야 하는 이유Model Context Protocol (MCP) 서버를 개발하고 MCP Inspector로 테스트할 때, localhost 대신 127.0.0.1을 사용해야 하는 이유에 대해 알아보겠다. 이 작은 설정 차이가 통신 실패의 원인이 될 수 있다.문제의 원인: localhost와 127.0.0.1의 차이많은 개발자들이 로컬 환경에서 테스트할 때 localhost를 사용한다. localhost는 시스템의 로컬 호스트를 가리키는 편리한 이름이지만, 운영 체제에 따라 IPv4 주소인 127.0.0.1로 해석될 수도 있고 IPv6 주소인 ::1로 해석될 수도 있다.Error from MCP server: FetchError: request to ht..
  • [ 언어·프레임워크/HTML·CSS ]
    웹 접근성, 왜 중요한가? WCAG 2.1 AA와 고대비 모드 지원
    2025-09-12 15:00:20
    웹 접근성, 왜 중요한가? WCAG 2.1 AA와 고대비 모드 지원웹은 모두에게 열려 있어야 한다. 하지만 현실은 그렇지 못하다. 시각, 청각, 운동 능력 등 다양한 장애를 가진 사람들은 웹 콘텐츠에 접근하는 데 어려움을 겪는다. 웹 접근성(Web Accessibility)은 이러한 문제를 해결하여 모든 사용자가 차별 없이 웹 콘텐츠를 이용할 수 있도록 하는 활동이다.최근 많은 웹사이트가 접근성 향상을 위해 다음과 같은 노력을 하고 있다.WCAG 2.1 AA 준수키보드 네비게이션스크린 리더 지원고대비 모드 지원이 글에서는 WCAG 2.1 AA와 고대비 모드 지원에 대해 다루고자 한다.1. WCAG 2.1 AA란 무엇인가?WCAG(Web Content Accessibility Guidelines)는 웹 콘..
  • [ 언어·프레임워크/Python ]
    파이썬: 언더스코어(_)로 시작하는 함수명의 의미
    2025-09-08 16:41:10
    파이썬: 언더스코어(_)로 시작하는 함수명의 의미파이썬에서 함수명이 단일 언더스코어(_)로 시작하는 것을 본 적이 있을 것이다. 이러한 명명 규칙은 파이썬 개발자들이 코드를 작성할 때 널리 따르는 관례이다. 이는 파이썬 인터프리터가 강제하는 기술적인 제약은 아니며, 특정 함수가 어떻게 사용되기를 의도하는지를 다른 개발자에게 알려주는 중요한 역할을 한다.1. 언더스코어(_)의 역할: 약한 비공개(Weak "Private") 지시자파이썬에서 언더스코어로 시작하는 함수나 변수는 약한 비공개(weak "private") 지시자로 통용된다. 이는 C++나 자바 같은 언어의 private 키워드처럼 외부 접근을 문법적으로 차단하는 것이 아니다. 대신, 해당 함수가 모듈이나 클래스 외부에서 직접 호출되거나 사용되도록..
  • [ 언어·프레임워크/React.js ]
    [React.js] 리액트 19의 혁신적인 `use` 훅: 비동기 데이터와 컨텍스트를 더 스마트하게
    2025-09-04 11:11:05
    리액트 19의 혁신적인 use 훅: 비동기 데이터와 컨텍스트를 더 스마트하게!리액트 19의 등장은 프론트엔드 개발에 많은 변화를 예고하고 있다. 그중에서도 단연 눈길을 끄는 것은 바로 새로운 훅, use 훅이다. 이 훅은 기존 리액트 훅의 제약을 깨고, 비동기 데이터 처리와 컨텍스트 값 접근 방식을 혁신적으로 변화시킨다. 오늘은 use 훅이 무엇인지, 어떤 상황에서 사용하며, 리액트 쿼리 및 컨텍스트와는 어떤 관계를 맺는지 자세히 알아보자.1. use 훅이란 무엇인가?use 훅은 리액트 컴포넌트 내에서 Promise와 Context의 값을 읽어올 수 있게 해주는 새로운 훅이다. 가장 큰 특징은 기존 훅들과 달리 if나 for와 같은 조건문, 반복문 내부에서도 호출할 수 있다는 점이다. 이는 리액트 개발에..
  • [ 언어·프레임워크/Vue.js ]
    Vue.js에서 HTML 레이블과 체크박스 상태 관리 문제 해결
    2025-09-03 21:55:51
    Vue.js에서 HTML 레이블과 체크박스 상태 관리 문제 해결1. 문제 상황 분석1-1. HTML 레이블의 기본 동작과 Vue.js 반응성 시스템의 충돌웹 개발에서 HTML 요소는 접근성을 위해 중요한 역할을 담당한다. 특히 체크박스와 연결된 레이블을 클릭하면 브라우저가 자동으로 해당 체크박스의 상태를 토글하는 것이 표준 동작이다.HTML 표준 동작의 예시옵션 1 Vue.js 컴포넌트에서의 기본 구현 {{ item.name }} 1-2. 상태 불일치 문제의 발생 원인Vue.js에서 체크박스 상태를 관리할 때 발생하는 주요 문제는 다음과 같다.브라우저 기본 동작과 Vue 상태 관리의 분리// 문제가 되는 상황// 1. 레이블 클릭 → 브라우저가 체크박스 토글// 2...