본문 바로가기

전체 글86

오브젝트: 코드로 이해하는 객체지향 설계 1장을 읽으며 조영호 님의 저서 "오브젝트: 코드로 이해하는 객체지향 설계" 책을 읽고 정리한 글입니다.객체, 설계소프트웨어 모듈은 세 가지 목적을 가집니다. 실행 중에 제대로 동작해야 하고, 변경이 용이해야 하며, 이해하기 쉬워야 합니다. 하지만 우리가 처음 작성하는 코드는 대게 첫 번째 목적만 만족시키곤 합니다. 티켓 판매 애플리케이션 예제를 통해 결합도(Coupling)가 높은 코드를 어떻게 자율적인 객체들의 공동체로 개선할 수 있는지 알아보겠습니다.1. 무엇이 문제인가: 너무 똑똑한 Theater, 수동적인 Audience처음 설계된 코드에서 Theater의 enter 메서드는 관람객의 가방(Bag)을 직접 열어보고, 매표소(TicketOffice)의 티켓과 현금에 직접 접근합니다.// 문제의 Theater.j.. 2026. 3. 25.
Windows에 Bun 설치 Bun을 사용해야 하는 주요 이유압도적인 실행 속도: Bun은 Node.js 및 Deno보다 약 3배 이상 빠르며, JavaScriptCore 엔진을 사용하여 웹 서버 성능을 극대화합니다.초고속 패키지 관리자: npm install 대신 bun install을 사용하여 패키지를 설치할 때 최대 20배 더 빠르게 종속성을 설치할 수 있습니다.올인원 도구 (All-in-One): 번들러, 테스트 러너, 패키지 매니저(npm, yarn, pnpm 호환)가 모두 내장되어 있어 별도의 설정 도구(Webpack, Jest 등) 없이 프로젝트를 시작할 수 있습니다.기본 타입스크립트 지원: TypeScript와 JSX/TSX를 즉시 실행할 수 있어 별도의 컴파일 과정이 필요하지 않습니다.Node.js와의 호환성: 기존.. 2026. 2. 23.
Claude Code Context7 MCP 추가 처음 Claude Code를 설치하고 MCP 설정을 안 했을 때, /mcp 커맨드로 확인하면 다음과 같이 나옵니다.Claude Code MCP 설정Local Scope (기본값)저장 위치: ~/.claude.json 파일 (홈 디렉터리)접근 범위: 현재 프로젝트 디렉터리에서만 사용 가능특징:개인적으로만 사용 (공유 안됨)프로젝트별 격리됨민감한 정보나 실험적 설정에 적합claude mcp add --transport http context7 https://mcp.context7.com/mcp 예시 구조 (~/.claude.json){ "mcpServers": { "global-server": {...} }, "/home/user/my-project": { "mcpServers": { .. 2026. 2. 13.
Claude Code 사용량 확인 Claude Code 사용량 확인Claude Code 2.0.0부터 /usage 커맨드가 추가되면서 사용량을 확인할 수 있게 되었습니다. ccusage로 사용량 확인ccusage는 Claude Code의 토큰 사용량과 비용을 로컬 JSONL 로그 파일(~/.claude.json)을 기반으로 빠르게 분석하는 CLI 도구입니다. 설치 없이 바로 실행bunx 사용 (가장 빠름)bunx ccusagenpx 사용npx ccusage@latestpnpm 사용pnpm dlx ccusagedeno 사용deno run -E -R=$HOME/.claude/projects/ -S=homedir -N='raw.githubusercontent.com:443' npm:ccusage@latest 글로벌 설치# bun 사용bun i.. 2026. 2. 12.
Windows에 Claude Code 설치 Claude Code를 사용하기 위해서는 API 키 or Pro, Max Plan으로 결제를 해야 사용할 수 있습니다.NPM 설치하던 방법은 Deprecated로 더 이상 사용되지 않는다고 합니다. 가능하면 기본 설치 방법을 사용하라고 문서에 적혀있습니다.Claude Code 설치설치는 굉장히 간단합니다. 다음의 두 가지 방법 중 택해서 설치하시면 됩니다.Windows PowerShell 설치irm https://claude.ai/install.ps1 | iex Windows CMD 설치curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd설치가 완료됐습니다! 그런데 설치는 됐는데 설치 경로가 PAT.. 2026. 2. 9.
Windows Terminal에 Git Bash 추가 Windows Terminal을 처음 설치하면 "Windows PowerShell", "명령 프롬프트", "Azure Cloud Shell" 3가지만 사용할 수 있도록 되어있습니다. window 명령어보다는 bash 명령어가 편해서 Git Bash를 사용하기 위해 추가하려고 합니다.Git Bash를 쓰기 위해서는 Git을 설치한 상태여야 Git Bash를 사용할 수 있습니다.Git 설치 시 Windows Terminal에 추가 Git 버전이 올라가면서 Git 설치 시에 "Add a Git Bash Profile to Windows Terminal" 옵션이 생겼습니다. 체크하고 설치하면 자동으로 추가됩니다. 만약 Git 설치 시에 옵션 선택을 안 했으면 아래 내용을 진행하면 됩니다.Windows Termi.. 2026. 2. 7.
Ubuntu 24.04에 Gemini CLI 설치 Gemini CLI 설치 전 필수 구성 요소 설치Gemini CLI를 실행하는 방법은 여러 가지가 있는데 권장하는 방법은 표준 설치 방식입니다. 이것이 Gemini CLI를 사용하는 가장 간단한 방법입니다. NPM 레지스트리에서 Gemini CLI 패키지를 다운로드하는 방식입니다. 다만, NPM을 사용하기 위해서는 Nodejs를 설치해야 합니다. 아래의 두 가지 방법 중 편한 방법으로 설치하면 됩니다. Nodejs 공식 홈페이지에서 다운로드하여 설치다음의 링크에서 다운로드하여 설치합니다.Nodejs 공식 홈페이지 NVM 패키지 매니저로 설치다음의 명령어를 실행합니다.curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bas.. 2026. 2. 4.
Kotlin 코틀린 정리 part 2 Kotlin 코틀린 공식 문서를 바탕으로 작성하였습니다. Functions (함수)코틀린에서는 fun 키워드를 사용하여 함수를 정의합니다.모든 매개변수에는 반드시 타입을 명시해야 합니다.반환 타입은 함수 이름 뒤의 () 괄호다음에 : 콜론으로 구분하여 작성합니다.fun hello() { return println("Hello, world!")}fun main() { hello() // Hello, world!} fun sum(x: Int, y: Int): Int { return x + y}fun main() { println(sum(1, 2)) // 3} Named arguments (명명된 매개변수)함수를 호출할 때 인수에 매개변수 이름을 포함할 수 있습니다. 매개변수 .. 2025. 11. 8.
Kotlin 코틀린 정리 part 1 Kotlin 코틀린 공식 문서를 바탕으로 작성하였습니다. Kotlin 코틀린fun main() { println("Hello, world!") // Hello, world!}Variables (변수)val : 읽기 전용 변수var : 변경 가능한 변수읽기 전용 변수에 값을 지정한 후에는 해당 변수를 변경할 수 없습니다.변수는 main() 함수 외부(파일 최상단)에서도 선언할 수 있습니다.이렇게 선언된 변수는 최상위(top-level) 변수라고 부릅니다.💡 참고: top-level 변수는 프로그램 전역에서 접근할 수 있으며, 클래스나 함수 내부가 아닙니다.String templates (문자열 템플릿)변수나 계산식의 결과를 문자열에 포함하려면 ${} 구문을 사용합니다.변수의 값만 문자열에 포함.. 2025. 11. 6.