반응형

Updated: 26.05.03 (개봉일 26.03.15)

위스키명: Arran Sherry Cask 700ml

원산지: 스코틀랜드 아란섬

종류: Single Malt Scotch Whiskey

도수: 55.8%

숙성년수: 

특징: 굉장히 부드러운 편.

가격: 10만원 초반대 (전 일본에서 1/4만 사왔습니다)

 

향: 오크, 토피, 약간의 레드 와인, 체리

맛: 오크, 가벼움, 약간의 스파이시한 탄닌, 체리, 다크 초콜릿

피니시: 다크 초콜릿, 쌉쌀함

 

글렌리빗 15 대비 덜 달음. 향도 맛도.

한 달 지난 후인데도, 굉장히 알콜향이 강함.

반드시 풀어 먹는 것을 추천.

니트 추천. 온더락 비추천. 하이볼 보통.

반응형
반응형

Updated: 2026.05.01.
Target: Claude Opus 4.7을 사용하여 코딩하는 모든 분들.

Anthropic 공식 문서 Prompting Best Practices for Claude Opus 4.7
를 기반으로 정리한 실전 가이드입니다.
with Migration guide for Claude Opus 4.7

  • 최근 Claude 관련 논란이 많은 가운데, Opus 4.7 업데이트 이후 성능이 오히려 저하되었다는 말이 굉장히 많았습니다. 저는 아직도 Claude를 잘 사용하고 있는데, 가장 큰 이유는 제가 원하는 대로 딱 맞춰 작성해 준다는 장점 때문인 것 같습니다.
  • 간단한 작업은 낮은 effort로, 복잡한 작업은 높은 effort로 시켜야 한다는 점은 정말 실제로 체감하고 있습니다. 요즘 Claude 행보를 지지하는 것은 아니지만, 그래도 가장 개발자들에게 fit한 툴이라고 생각해서, 최신 문서에 대한 정보를 정리해 보았습니다. 맨 마지막에 제가 실제로 사용하는 Claude.md 양식도 포함해 두었습니다!

1. 핵심 원칙: 명확하고 직접적으로

Claude Code는 명시적인 지시에 잘 반응합니다. 모호한 프롬프트보다 구체적인 요청이 훨씬 효과적입니다.

  • 하지 말 것보다 해야 할 것을 말하세요.
    • ❌ "마크다운 쓰지 마"
    • ✅ "산문 단락으로 작성해"
  • 범위를 명시하세요. Claude Code는 암묵적으로 지시를 일반화하지 않습니다.
    • ❌ "이 형식으로 해줘"
    • ✅ "첫 번째 섹션만이 아니라 모든 섹션에 이 형식을 적용해"
  • 컨텍스트와 이유를 제공하세요. 왜 그렇게 해야 하는지 알면 Claude가 더 정확하게 응답합니다.

2. 행동 범위 제어

Claude Code는 기본적으로 능동적입니다. 필요에 따라 조절하세요.

  • 더 능동적으로 원할 때:
    • 제안만 하지 말고 바로 구현하세요.
    • 누락된 정보는 추측 대신 파일을 읽어서 파악하세요.
  • 더 보수적으로 원할 때:
    • 명시적으로 요청받기 전엔 파일을 편집하거나 구현하지 마세요.
    • 모호할 때는 조사하고 추천만 하세요.

3. 과도한 엔지니어링 방지

Claude Code는 요청하지 않은 것까지 추가하려는 경향이 있습니다.

  • 요청된 것만 변경하세요.
  • 버그 수정이면 주변 코드 정리는 하지 마세요.
  • 변경하지 않은 코드에 주석이나 타입 어노테이션을 추가하지 마세요.
  • 일회성 작업을 위한 헬퍼 함수나 추상화를 만들지 마세요.

4. 코드 품질: 일반해를 구하게 하기

테스트 케이스만 통과하는 코드를 만들거나 하드코딩하는 경향을 방지하려면:

  • 모든 유효한 입력에 작동하는 범용 솔루션을 작성하세요.
  • 값을 하드코딩하지 마세요.
  • 작업이 불합리하거나 테스트가 잘못됐다면 우회하지 말고 알려주세요.

5. 환각(Hallucination) 줄이기

Claude는 코드베이스를 실제로 확인하기 전에 답변하면 부정확한 정보를 생성할 수 있습니다. 다음을 프롬프트에 포함하세요:

  • 추측성 답변을 방지하려면 파일을 먼저 읽도록 명시적으로 지시하세요.
  • 여러 소스에 걸쳐 정보를 교차 검증하도록 요청하세요.
  • 복잡한 리서치 작업엔 경쟁 가설을 세우고 신뢰도 수준을 추적하도록 유도하세요.

6. 병렬 작업으로 속도 높이기

독립적인 파일 읽기, 검색 등을 병렬로 처리하도록 유도하면 속도가 체감될 정도로 빨라집니다:

  • 의존성 없는 작업은 병렬로 수행하세요.
  • 3개 파일을 읽을 때 동시에 읽어오세요.

7. 장기 세션 관리

세션이 길어지면 컨텍스트 창이 초기화될 수 있습니다:

  • 토큰 예산이 줄어도 작업을 일찍 중단하지 마세요.
  • 컨텍스트 창이 초기화되기 전에 현재 진행 상황을 파일에 저장하세요.

8. 다단계 작업은 프롬프트 체이닝으로

복잡한 작업을 단일 프롬프트로 처리하면 Claude가 중간 단계를 빠뜨릴 수 있습니다. 작업을 작은 단위로 쪼개세요.

  • 각 단계를 독립된 요청으로 분리하면 중간 결과를 확인하고 수정할 수 있습니다.
  • 가장 흔한 패턴은 자기 수정: 초안 생성 → 기준에 맞게 검토 → 검토 결과 반영해 개선.
  • 독립적인 하위 작업(여러 문서 분석 등)은 병렬로 처리해 속도를 높이세요.

9. 예시로 이해하기 (Few-shot Prompting)

예시는 형식, 어조, 구조를 잡는 가장 강력한 방법입니다.

  • <example> 태그로 감싸서 지시와 구분하세요.
  • 3~5개가 적당합니다.
  • 엣지 케이스를 포함해 다양하게 구성하세요.

10. XML 태그로 프롬프트 구조화

복잡한 프롬프트일수록 XML 태그가 해석 오류를 줄여줍니다:

<instructions>여기에 지시사항</instructions>
<context>여기에 배경 정보</context>
<input>여기에 실제 입력값</input>

CLAUDE.md 작성 가이드

CLAUDE.md는 Claude Code가 레포지토리를 처음 열 때 읽는 프로젝트 전용 시스템 프롬프트입니다. 잘 작성된 CLAUDE.md 하나가 반복적인 구두 설명을 대체합니다.

포함해야 할 항목

항목 설명
Role Claude가 맡을 전문가 역할
Work Environment OS, 쉘, 주요 도구, 하드웨어 등
Mandatory Rules 절대 지켜야 할 제약 (실행 금지, 언어 등)
Coding Guidelines 코드 스타일, 변경 범위, 의사결정 방식
Key Directories 주요 경로와 역할
Architecture 프로젝트 구조 개요

작성 시 주의사항

  1. 읽기 전용 명령어는 명시적으로 허용cat, grep, find 등을 직접 실행해도 된다고 명시하지 않으면 Claude가 매번 망설입니다.
  2. 계획 확인 기준을 수치로 — "복잡한 작업"보다 "파일 2개 이상 수정 시"처럼 명확하게.
  3. 성능/품질 기준도 정의 — "성능 이득이 명확한 경우"는 주관적입니다. 기준을 적어두세요.
  4. 오타 주의 — 파일 경로나 파일명 오타는 Claude가 파일을 못 찾는 원인이 됩니다.

CLAUDE.md 예시 템플릿

아래는 개인 정보를 제거하고 추상화한 예시입니다. 본인의 프로젝트에 맞게 수정하세요.

Coding Guidelines는 andrej-karpathy-skills를 참고했습니다.

# CLAUDE.md

## Role
[기술 도메인] Senior 개발자.
[주요 컴포넌트 A]와 [주요 컴포넌트 B]의 구현 및 개선 작업.

## Work Environment
- OS / Shell: [예: Ubuntu 22.04 / zsh]
- 주요 하드웨어: [예: GPU 모델, VRAM 등]
- 컨테이너: [예: Docker]

## Mandatory Rules
1. **모든 응답은 [언어]로 작성한다.**
2. 명령어 실행 시 `[특정 사용자 또는 환경 전환 명령]` 후 실행.
3. **빌드 및 실행은 직접 하지 않는다.** 명령어와 설명만 제시할 것.
   - `grep`, `find`, `ls`, `cat`, `head`, `wc` 등 읽기 전용 명령어는 바로 실행해도 된다.
   - `git diff` 등 git 관련 명령어는 실행하지 않고, 필요하면 사용자에게 요청한다.
4. **[핵심 컴포넌트] 수정 시**: 아래 경로의 파일을 수정한다.
   - `/path/to/component/include/*`
   - `/path/to/component/src/*`

## Coding Guidelines

### Think Before Coding
- 가정은 명시적으로 밝힌다. 불확실하면 먼저 질문한다.
- 해석이 여러 가지라면 나열하고 선택지를 제시한다. 임의로 선택하지 않는다.
- 더 단순한 접근이 있다면 먼저 언급한다.

### Simplicity First
- 요청된 것만 구현한다. 추측성 기능, 불필요한 추상화, 요청되지 않은 유연성은 배제.
- "Senior 개발자가 보면 과복잡하다고 할까?" — Yes라면 다시 작성.

### Surgical Changes
- 요청과 무관한 코드, 주석, 포맷은 건드리지 않는다.
- 기존 스타일을 유지한다.
- 내 변경으로 생긴 dead code(import, 변수, 함수)는 정리한다.
- 기존 dead code 발견 시 — 삭제하지 말고 언급만 한다.

### Goal-Driven Execution
- 파일 2개 이상 수정하거나 새 함수/파일 추가가 필요한 경우, 먼저 간략한 계획을 제시하고 확인을 받는다.
- 성공 기준을 구체적으로 정의한다: "동작하게 만든다" (X) → "테스트 A, B가 통과한다" (O)

## Key Directories
- 메인 프레임워크: `/path/to/main-framework`
- 핵심 컴포넌트: `/path/to/core-component`
- 구현 문서: `/path/to/docs/TODO.md`
- 참고 문서: `/path/to/docs/Reference.md`

## Architecture
    [상위 시스템] (예: 컴파일러, 서버)
      └── [핵심 패스/모듈] → [중간 표현/IR] → [백엔드/실행 레이어]

    수정 영역:
      src/[module]/    — 주요 구현 파일들
      include/[module]/ — 헤더 파일들

## Verification
`[환경 설정 명령]` 후 `[테스트 명령]`으로 검증 (사용자가 직접 실행).
반응형
반응형

대규모 언어 모델(LLM) 아키텍처는 어떻게 수렴해왔는지에 대하여.

Survey and Evaluation of Converging Architecture in LLMs Based on Footsteps of Operations

Kim, Seongho and Moon, Jihyun and Oh, Juntaek and Choi, Insu and Yang, Joon-Sung (Yonsei University)

  • 이 논문은 LLM의 아키텍처가 어떻게 진화하여 현재의 수렴 형태에 이르렀는지를 다루고 있습니다.
  • LLM은 Transformer 아키텍처와 Attention 메커니즘을 기반으로, 챗봇·가상 비서·도메인 특화 애플리케이션 등 다양한 분야에 활용되고 있습니다. Llama 공개 이후 LLM의 구조적 발전은 Transformer 기반 디코더 전용(decoder-only) 아키텍처로 수렴하였으며, 데이터센터 서버부터 엣지 디바이스까지 다양한 배포 환경에서의 연산 및 메모리 효율이 주요 과제로 부각되고 있습니다.
  • 저자들은 LLM을 학습하면서 마주한 발전 과정을 연산 단위로 분석·정리하였으며, 앞으로 이 분야에 입문하는 많은 AI 개발자와 시스템 개발자분들께 실질적인 도움이 되고자 이 논문을 작성하였다고 합니다. 논문은 현대에 이르러 수렴하고 있는 모델 아키텍처 트렌드와 그 기저의 연산 메커니즘이라는 두 가지 상호 보완적인 수준에서 LLM의 발전을 체계적으로 조망하고, 하이퍼파라미터 설정이 추론 지연 시간에 미치는 영향을 GPU 커널 단위 프로파일링으로 정량화하였습니다.

논문 원문 링크

Moonlight AI 논문 설명 링크


아키텍처 진화의 핵심

RNN → Encoder-Decoder → Transformer

언어 처리 모델은 규칙 기반에서 RNN, LSTM을 거쳐 Transformer로 발전해 왔습니다. Transformer는 순환 구조를 Attention 메커니즘과 피드포워드 네트워크로 대체하여 병렬 연산을 가능하게 하였고, 현대 LLM의 기반이 되었습니다.

핵심 구성요소의 발전

  • Feed-Forward Layer: FC 레이어에서 FFN, GLU를 거쳐 Llama의 SwiGLU, Gemma의 GeGLU로 발전하였습니다.
  • Attention 메커니즘: MHA에서 메모리 효율을 개선한 MQA, 성능과 효율의 균형을 맞춘 GQA(Llama 3 채택)로 발전하였습니다. KV 캐싱과 Flash Attention은 추론 효율 향상에 기여합니다.
  • 정규화: BatchNorm → LayerNorm → RMSNorm 순으로 발전하였으며, 현재는 RMSNorm이 주로 사용됩니다.
  • 활성화 함수: ReLU의 기울기 소실 문제를 개선하기 위해 ELU, GeLU, Swish 등이 등장하였습니다.
  • 위치 인코딩: 절대 위치를 삼각함수로 표현하는 Sinusoidal 방식에서, 회전 행렬로 상대적 위치를 반영하는 RoPE로 발전하였습니다.

실험 분석 결과

NVIDIA RTX 6000 GPU에서 Llama 2-7B, Llama 3-8B, Gemma-2B, Gemma-7B 모델을 대상으로 TensorRT-LLM을 활용한 커널 단위 프로파일링 실험을 수행하였습니다.

배치 크기에 따른 연산 특성 차이

  • 엣지 환경 (배치=1): 생성 단계에서 GEMV(행렬-벡터 곱) 연산이 전체 실행 시간의 95% 이상을 차지하며, 메모리 바운드 특성을 보입니다.
  • 서버 환경 (배치=64): GEMM(행렬-행렬 곱)이 지배적이며, Attention 블록의 비중이 증가합니다.

Attention 메커니즘의 영향

GQA와 MQA는 MHA 대비 메모리 사용량을 줄여, 연산 대 메모리 비율(operations per byte)을 높입니다. 실험 결과, GQA·MQA 모델에서는 Attention 블록의 실행 시간 비중 증가가 완만하였으며, 이는 낮은 메모리 요구사항에 기인합니다.

입력/출력 길이의 영향

  • 입력 길이가 길어질수록 요약(summarization) 단계의 비중이 증가합니다.
  • 출력 길이가 길어질수록 생성(generation) 단계가 전체 실행 시간을 지배합니다.
  • 입력 길이 1, 출력 길이 4 조건에서 생성 단계는 전체 시간의 약 75%를 차지하였습니다.

결론 및 시사점

동일한 LLM 모델이라도 하이퍼파라미터(배치 크기, 시퀀스 길이) 설정에 따라 성능 특성이 달라집니다. 엣지 환경에서는 GEMV 최적화가, 서버 환경에서는 Attention 효율화와 GEMM 처리가 핵심입니다.

GQA, MQA, Flash Attention은 Attention 병목을 완화하는 데 기여하지만, 다양한 배포 환경을 아우르기 위해서는 하드웨어와 소프트웨어를 함께 고려하는 최적화 접근이 필요합니다.


@ARTICLE{11072851,  
  author={Kim, Seongho and Moon, Jihyun and Oh, Juntaek and Choi, Insu and Yang, Joon-Sung},  
  journal={IEEE Open Journal of the Computer Society},   
  title={Survey and Evaluation of Converging Architecture in LLMs Based on Footsteps of Operations},   
  year={2025},  
  volume={6},  
  number={},  
  pages={1214-1226},  
  keywords={Computer architecture;Computational modeling;Transformers;Training;Neural networks;Context modeling;Artificial intelligence;Encoding;Surveys;Optimization;Edge computing;LLM;NLP;transformer architecture;and server deployment},  
  doi={10.1109/OJCS.2025.3587005}}

Survey_and_Evaluation_of_Converging_Architecture_in_LLMs_Based_on_Footsteps_of_Operations.pdf
2.3 MB

반응형
반응형

Content: Google Antigravity 설치 및 초기 설정 방법 (Codelabs)

Updates: 2025.11.27

 

Google Antigravity를 설치하고 초기 환경 설정을 진행하려면 다음 단계를 따르세요.

(공식 가이드: Google Antigravity 시작하기 - Google Codelabs)

 

1. 사전 준비:

  • 운영체제: Windows, Mac, 또는 Linux.
  • 브라우저: Google Chrome (브라우저 통합 기능 필수).
  • 계정: 개인 Gmail 계정 (Preview 버전 사용 시 필요).

2. 다운로드 및 설치:

  • 공식 다운로드 페이지(https://antigravity.google/download)에 접속하여 운영체제에 맞는 버전을 다운로드합니다.
  • 설치 파일을 실행하여 설치를 완료합니다.
  • 애플리케이션을 처음 실행하면 초기 설정 마법사가 시작됩니다.

3. 초기 환경 설정 (Setup Wizard):

  • Setup Flow: Start fresh를 선택하여 새로 시작합니다. (기존 VS Code/Cursor 설정 가져오기 가능)

  • Theme: Dark 또는 Light 중 선호하는 테마를 선택합니다.

  • Agent Usage Mode:
    • Agent-assisted development (권장)를 선택합니다. 사용자가 주도하고 에이전트가 보조하는 방식입니다.

  • Execution Policies (우측 패널):
    • Terminal execution: Auto (명령어 자동 실행)로 설정합니다.
    • Review policy: Agent Decides (에이전트 판단 하에 검토 요청)로 설정합니다.
  • Editor Configuration:
    • Keybindings: Normal (VS Code 기본 단축키)을 선택합니다.
    • Extensions: Install 7 Extensions를 체크하여 Python, JS 등 필수 확장을 설치합니다.
    • Command Line: Install (agy)를 체크하여 터미널에서 agy 명령어를 사용할 수 있도록 설정합니다.

4. 로그인 및 실행:

  • Sign in 버튼을 클릭하여 Google 계정으로 로그인합니다. (브라우저 인증 진행)
  • 인증이 완료되면 "Success!" 메시지와 함께 Agent Manager 화면이 실행됩니다.

외부 공유하실 경우, 출처 반드시 밝혀주시기 바랍니다!

도움이 되셨다면 공감 꾸욱 부탁드립니다👍

writing with Gemini

반응형
반응형

📅 Last Update: 2025-02-13

Content:

Ubuntu Live USB로 부팅하여 EXT4 파티션을 축소하고, SWAP 파티션을 조정한 뒤 Windows C 드라이브를 확장하는 방법을 정리하였습니다.
제조사별 Boot Menu 단축키도 함께 포함되어 있습니다.


🖥️ Ubuntu Live USB로 리눅스 파티션 축소 후 Windows 볼륨 확장하는 방법

듀얼부팅 환경에서는 Windows의 C 드라이브를 확장하려고 할 때,
바로 오른쪽에 Ubuntu EXT4 파티션 또는 SWAP 파티션이 위치하여
Windows 자체 기능만으로는 확장이 어려운 경우가 종종 발생합니다.

이 글에서는 Ubuntu Live USB 부팅 → GParted로 파티션 조정 → Windows에서 C 드라이브 확장까지의 전체 과정을 정돈하여 안내드립니다.


📌 전체 작업 순서

  1. Live USB로 부팅
  2. GParted 실행
  3. EXT4 파티션 축소
  4. SWAP 파티션 이동 또는 삭제
  5. 파티션 배열 확인
  6. Windows에서 C 드라이브 확장

1. Live USB로 부팅하는 방법

Live USB 제작 과정은 아래 별도의 포스팅을 참고하시면 됩니다.

  • 👉 Live USB 제작 방법 보기: https://example.com (원하시는 링크로 교체하시면 됩니다)

USB가 준비되었다면 PC를 재부팅하신 후 Boot Menu에서 USB를 선택하여 부팅하시면 됩니다.
아래는 제조사별 Boot Menu 단축키 안내입니다.

🔑 제조사별 Boot Menu 단축키

제조사 Boot Menu BIOS 진입
ASUS F8 F2
Acer F12 (필요할 경우 BIOS에서 활성화) Del / F2
Dell F12 F2
HP ESC → F9 ESC / F10
Lenovo (노트북) F12 F1 / F2
Lenovo ThinkPad Enter → F12 F1
MSI F11 Del
Gigabyte 메인보드 F12 Del
ASRock 메인보드 F11 F2 / Del
Samsung (노트북) F12 또는 Fn+F12 F2
LG Gram F10 또는 F12 F2
Sony VAIO Assist 버튼 Assist 버튼
Toshiba F12 F2

부팅한 뒤에는
Try Ubuntu without installing
옵션을 선택하여 설치 없이 Live 환경으로 들어가시면 됩니다.


2. GParted 실행

Live 환경에 진입하시면 GParted를 실행하실 수 있습니다.

sudo gparted

또는 앱 메뉴에서 바로 실행하시면 됩니다.


3. EXT4 파티션 축소

Windows에서 확장 가능하도록 EXT4 파티션의 오른쪽 끝 부분을 줄여 주시면 됩니다.
왼쪽 영역을 이동하거나 조정하는 경우 파티션 번호나 시작 위치가 달라져
향후 문제가 발생할 수 있으므로 되도록 오른쪽만 조정하시는 것을 권장드립니다.

진행 방식 예시

  • EXT4 파티션을 선택하신 뒤
  • Resize/Move 메뉴에서 오른쪽 슬라이더를 왼쪽으로 이동하여 크기를 줄이시면 됩니다
  • Unallocated 공간이 EXT4 뒤쪽에 생성되었는지 확인하시면 됩니다

4. SWAP 파티션 위치 조정

EXT4 파티션 뒤쪽에 SWAP 파티션이 위치하고 있으면
Windows에서는 Unallocated 공간을 바로 사용할 수 없어 C 드라이브 확장이 되지 않습니다.

✔ SWAP 파티션 삭제(권장)

최근 Ubuntu는 swapfile 방식을 사용하므로,
기존 SWAP 파티션을 삭제하셔도 전혀 문제가 되지 않습니다.

  • SWAP을 선택하시고 Swapoff를 실행하신 뒤
  • Delete를 선택해 삭제하시면 됩니다
  • 이렇게 하시면 EXT4 뒤쪽의 Unallocated 공간이 자연스럽게 이어집니다

✔ SWAP 이동(보존이 필요한 경우)

SWAP을 유지하고자 하실 경우
Move 기능으로 SWAP을 디스크 가장 끝쪽으로 옮기시면 됩니다.
다만 이동 작업은 파일 시스템 위치를 변환해야 하기 때문에
시간이 오래 걸릴 수 있는 점 참고 부탁드립니다.


5. 최종 파티션 배열 확인

Windows에서 확장을 위해서는 구조가 아래와 같은 형태여야 합니다.

[EFI] | [Windows C:] | [Unallocated]

C 드라이브 오른쪽에 Unallocated 공간이 바로 붙어 있는지가 가장 중요합니다.


6. Windows에서 C 드라이브 확장

Windows로 다시 부팅하신 뒤,
아래 순서로 C 드라이브를 늘리실 수 있습니다.

  1. Win + X → 디스크 관리
  2. C 드라이브 우클릭
  3. 볼륨 확장 선택
  4. Unallocated 공간 전체를 선택하여 확장하시면 됩니다
반응형
반응형

Updated : 2025-11-19
Contents: 윈도우에서 듀얼 부팅을 위해 세팅해야 할 것들 정리


📚 Contents

  1. 윈도우에서 Ubuntu 설치를 위한 파티션 나누기
  2. Ubuntu ISO 파일 다운로드
  3. balenaEtcher 다운로드 & 설치
  4. 부팅 USB 만들기
  5. USB로 부팅하여 Ubuntu 설치

1. 윈도우에서 Ubuntu 설치를 위한 파티션 나누기

듀얼 부팅을 위해서는 Ubuntu가 설치될 빈 공간(파티션) 을 먼저 확보해야 합니다. 아래 순서대로 진행하세요.

🔧 1-1. 디스크 관리 실행

  1. Windows + X 키 클릭
  2. 목록에서 디스크 관리 선택
    또는 실행창(Win+R)에 diskmgmt.msc 입력

🔧 1-2. 파티션 축소하기

  1. Ubuntu를 설치할 드라이브(C:\ 또는 D:\ 등)를 우클릭
  2. 볼륨 축소(Shrink Volume) 선택
  3. "축소할 공간"에 원하는 용량 입력
    • Ubuntu 데스크탑 기본 권장: 30GB 이상
  4. 축소(Shrink) 버튼 클릭

축소 후 할당되지 않음(Unallocated) 공간이 생기면 성공입니다.

💡 파티션은 Windows에서 미리 포맷할 필요 없습니다. Ubuntu 설치 과정에서 자동으로 설정합니다.


2. Ubuntu ISO 파일 다운로드

  1. 공식 다운로드 페이지 방문
    👉 https://ubuntu.com/download
  2. 원하는 버전 선택하여 .iso 파일 다운로드
  3. LTS 버전(LTS: Long Term Support) 권장

3. balenaEtcher 다운로드 & 설치

  1. 다운로드 페이지 이동
    👉 https://www.balena.io/etcher/
  2. Windows용 설치 파일 다운로드
  3. 실행하여 설치 완료

4. 부팅 USB 만들기

USB 메모리(8GB 이상)를 PC에 연결한 후 Etcher를 실행합니다.

🔥 4-1. ISO 파일 선택

Flash from file → Ubuntu ISO 선택

🔥 4-2. USB 선택

Select target → 연결된 USB 드라이브 선택

🔥 4-3. 굽기 시작

Flash! 클릭 → 완전히 끝날 때까지 기다립니다
(약 3~10분)


5. USB로 부팅하여 Ubuntu 설치

🚀 5-1. BIOS/UEFI 진입

PC 재부팅 → 제조사별 진입키(F2, F12, ESC, DEL 등)

🚀 5-2. Boot Menu에서 USB 선택

USB를 선택하면 Ubuntu 설치 화면으로 진입

🚀 5-3. Ubuntu 설치

설치 과정에서 다음 옵션 선택:
"Install Ubuntu alongside Windows"
→ 자동으로 파티션 분리 + 듀얼부팅 구성


6. 자동 업데이트 비활성화 설정

Ubuntu는 기본적으로 보안 업데이트와 APT 패키지 업데이트를 자동으로 실행합니다. 아래 방법을 통해 자동 업데이트를 완전히 끌 수 있습니다.


6-1. 🖥️ GUI(그래픽 환경)에서 자동 업데이트 끄기

Ubuntu Desktop에서는 Software & Updates 도구에서 자동 업데이트 기능을 제어할 수 있습니다.

1) Software & Updates 열기

  • SettingsSoftware & Updates
  • 상단 탭에서 Updates 선택

2) 아래 항목을 다음과 같이 설정

설정 항목 권장값
Automatically check for updates Never
When there are security updates Display immediately 또는 Never
When there are other updates 무시 가능 (자동 설치 아님)
Notify me of a new Ubuntu version Never

이 설정을 적용하면 GUI 환경에서 이루어지는 모든 자동 업데이트 체크가 비활성화됩니다.


6-2. 🔧 CLI(터미널)에서 자동 업데이트 끄기

터미널을 사용하면 Ubuntu 업데이트 시스템을 근본적으로 비활성화할 수 있습니다.


1) unattended-upgrades 비활성화 (보안 자동 업데이트 차단)

서비스 중지 및 비활성화:

sudo systemctl disable --now unattended-upgrades

설정 파일 수정:

sudo nano /etc/apt/apt.conf.d/20auto-upgrades

다음을 모두 0으로 변경:

APT::Periodic::Update-Package-Lists "0";
APT::Periodic::Unattended-Upgrade "0";

2) APT Periodic 자동 실행 완전 중단

APT가 일정 주기로 업데이트를 확인하는 기능을 끕니다.

sudo nano /etc/apt/apt.conf.d/10periodic

모든 값을 "0"으로 설정:

APT::Periodic::Enable "0";
APT::Periodic::Update-Package-Lists "0";
APT::Periodic::Download-Upgradeable-Packages "0";
APT::Periodic::AutocleanInterval "0";

3) Snap 자동 업데이트 비활성화(선택 사항)

Snap은 자동 업데이트 강제가 기본값입니다. 완전히 끄려면 snapd 관련 서비스를 disable 해야 합니다.

sudo systemctl stop snapd.service
sudo systemctl stop snapd.socket
sudo systemctl stop snapd.seeded.service

sudo systemctl disable snapd.service
sudo systemctl disable snapd.socket
sudo systemctl disable snapd.seeded.service

⚠️ Snap 기반 앱 사용 불가 (Chromium, Slack 등 일부 앱)


4) Flatpak 자동 업데이트 끄기(사용 중일 경우)

Flatpak 타이머 비활성화:

sudo systemctl mask flatpak-system-helper.timer
sudo systemctl mask flatpak-system-helper.service

또는 자동 업데이트 자체 비활성화:

flatpak update --disable

7. 커널 업데이트 차단 방법

Ubuntu는 일반 패키지 업데이트와 함께 커널 업데이트도 자동으로 설치하려고 합니다.
특정 커널 버전을 유지하거나, 시스템 안정성을 위해 커널 업데이트를 막고 싶다면 아래 방법을 사용할 수 있습니다.


7-1. 🖥️ GUI(그래픽 환경)에서 커널 업데이트 차단

Ubuntu GUI에서는 커널 업데이트 자체를 직접적으로 비활성화하는 기능은 없지만,
커널 업데이트가 포함된 보안 업데이트 자동 알림/자동 적용을 차단하는 방식으로 간접적으로 막을 수 있습니다.

1) Software & Updates 실행

  • SettingsSoftware & Updates
  • 상단 메뉴에서 Updates 탭 선택

2) 아래 항목 설정값 변경

항목 설정값
Automatically check for updates Never
When there are security updates Never
When there are other updates Display every two weeks 또는 Never
Notify me of a new Ubuntu version Never

이 설정을 적용하면 GUI를 통한 자동·반자동 커널 업데이트(보안 포함)가 모두 표시되지 않으며 설치도 트리거되지 않습니다.
단, 완전 차단은 CLI 방식이 더 안전합니다.


7-2. 🔧 CLI(터미널)에서 커널 업데이트 완전 차단

CLI에서는 APT hold 또는 APT Pinning을 사용하여 커널 업데이트를 완전히 차단할 수 있습니다.


1) 현재 커널 버전 확인

uname -r

예:

5.15.0-91-generic

이 값은 이후 특정 커널을 고정할 때 필요합니다.


2) APT hold로 커널 업데이트 차단 (가장 간단하고 안전한 방법)

APT에서 특정 패키지를 hold 상태로 만들면 더 이상 업데이트되지 않습니다.

sudo apt-mark hold linux-image-generic linux-headers-generic
sudo apt-mark hold linux-image-$(uname -r)
sudo apt-mark hold linux-headers-$(uname -r)
sudo apt-mark hold linux-modules-$(uname -r)
sudo apt-mark hold linux-modules-extra-$(uname -r)

hold 상태 확인

apt-mark showhold

여기에 커널 관련 패키지가 뜨면 차단 성공입니다.


3) APT Pinning으로 모든 커널 업데이트 완전 차단 (가장 강력한 방법)

APT Pinning으로 패키지 우선순위를 -1로 설정하면
APT는 그 패키지를 “설치 금지” 로 인식하게 됩니다.

설정 파일 생성:

sudo nano /etc/apt/preferences.d/block-kernel

아래 내용을 입력:

Package: linux-image*
Pin: release *
Pin-Priority: -1

Package: linux-headers*
Pin: release *
Pin-Priority: -1

Package: linux-modules*
Pin: release *
Pin-Priority: -1

효과:

  • 모든 커널 이미지(linux-image-*)
  • 헤더(linux-headers-*)
  • 모듈(linux-modules-*)
  • HWE 커널 포함
    APT가 절대로 설치/업데이트하지 않음

4) Ubuntu Livepatch(커널 핫패치) 비활성화

Livepatch도 커널 업데이트의 일종입니다.

sudo canonical-livepatch disable
sudo apt purge canonical-livepatch

5) unattended-upgrades로 인한 커널 보안 업데이트 차단

보안 업데이트 기능이 켜져 있으면 커널 업데이트가 포함될 수 있습니다.
Section 6-2의 unattended-upgrades 비활성화를 반드시 적용하세요.


이제 Windows와 Ubuntu를 함께 사용할 수 있는 듀얼 부팅 환경이 완성됩니다!
with ChatGPT

반응형
반응형

안녕하세요! 새로운 맥북을 장만했거나, 초기화를 진행한 뒤 막막했던 경험 다들 한 번쯤 있으시죠? 매번 설정을 찾아 헤매는 제 자신을 위해, 그리고 저와 같은 분들을 위해 맥북 초기 세팅 과정을 꼼꼼하게 정리해 보았습니다. 이 글 하나로 필수 설정을 완벽하게 끝내보세요!

0. 기본 입력 및 접근성 설정

가장 먼저, 맥북을 편하게 사용하기 위한 기본적인 입력 및 접근성 설정부터 시작합니다.

0.1 키보드로 마우스 제어하기 (마우스 키)

가끔 블루투스 마우스 연결이 끊기거나 배터리가 없을 때 아주 유용한 기능입니다. 키보드의 숫자패드나 특정 키를 사용해 마우스 포인터를 움직일 수 있습니다.

  1. 시스템 설정으로 들어갑니다. (독(Dock)에서 ⚙️ 아이콘을 클릭하거나, 화면 왼쪽 상단 애플 로고() > 시스템 설정을 클릭)
  2. 왼쪽 메뉴에서 손쉬운 사용을 선택합니다.
  3. 포인터 제어기로 들어갑니다.
  4. '마우스 키' 옵션을 활성화(On)합니다.
  5. 바로 아래 '옵션' 버튼을 클릭하여 세부 설정을 조정할 수 있습니다. 여기서 "Option 키를 다섯 번 눌러 마우스 키 켜고 끄기"를 활성화하면 필요할 때마다 빠르고 쉽게 기능을 켜고 끌 수 있습니다.

0.2 블루투스 장비 연결 (키보드 & 마우스)

이제 무선 키보드와 마우스를 연결해 보겠습니다. 아직 마우스가 연결되지 않았다면 Spotlight 검색을 활용하면 편리합니다.

  1. Command (⌘) + Space Bar를 눌러 Spotlight를 엽니다.
  2. 'Bluetooth' 또는 '블루투스'를 입력하고 엔터를 눌러 블루투스 설정 창을 엽니다.
  3. 연결할 키보드와 마우스를 페어링 모드로 설정합니다. (보통 전원을 켜거나 특정 버튼을 길게 누릅니다.)
  4. 맥북의 블루투스 설정 창에 장비가 나타나면 '연결' 버튼을 누릅니다. 키보드의 경우, 화면에 표시되는 인증 코드를 입력해야 할 수도 있습니다.

0.3 Caps Lock으로 한/영 전환 설정

Windows처럼 Caps Lock 키 하나로 한/영 전환을 하고 싶다면 이 설정을 꼭 해주세요.

  1. 시스템 설정 > 키보드로 이동합니다.
  2. '입력 소스' 항목에서 '편집...' 버튼을 클릭합니다.
  3. 창이 뜨면 왼쪽 하단의 'Caps Lock 키로 ABC 입력 소스 전환' 옵션을 체크합니다.
  4. 이제 Caps Lock 키를 짧게 누르면 한/영 전환이 되고, 길게 누르면 대문자 입력이 활성화됩니다.

1. 키보드 설정 (feat. Karabiner-Elements)

Windows 키보드 배열에 익숙한 사용자라면 키 맵핑을 변경해 주는 Karabiner-Elements 앱이 필수입니다. 특히 한/영 키와 한자 키를 오른쪽 Alt, Ctrl 키로 사용하고 싶다면 꼭 설치해야 합니다.

1.1 Karabiner-Elements 설치

Karabiner는 앱스토어에 없으므로 공식 홈페이지에서 직접 다운로드해야 합니다.

  1. 웹 브라우저(Safari, Chrome 등)를 열고 Karabiner-Elements 공식 홈페이지에 접속합니다.
  2. 메인 페이지의 'Download' 버튼을 클릭하여 최신 버전을 다운로드하고 설치를 진행합니다.
  3. 설치 과정에서 시스템 설정 > 개인정보 보호 및 보안에서 프로그램 실행을 허용하고, 필요한 권한을 부여해야 합니다.

1.2 Karabiner 환경 설정 및 블루투스 키보드 인식

설치가 완료되면 이제 본격적으로 키를 바꿔봅시다.

  1. Karabiner-Elements 앱을 실행합니다.
  2. 만약 블루투스 키보드가 인식되지 않는다면?
    • Settings > Devices 탭으로 이동합니다.
    • 인식이 안 되는 키보드 이름 옆의 Deactivate 버튼을 눌러 비활성화했다가, 다시 Activate 버튼을 눌러 활성화해 보세요.
    • 그래도 해결되지 않으면 맥북을 재부팅하는 것을 추천합니다.

1.3 블루투스 키보드 이벤트 수정 (Modify events)

Karabiner가 블루투스 키보드의 키 입력을 제대로 제어하게 하려면 이 설정이 중요합니다.

  • Devices 탭에서 사용하는 블루투스 키보드를 찾습니다.
  • 키보드 이름 아래 'Modify events' 체크박스를 반드시 체크해야 합니다. (기본적으로 체크되어 있지만, 혹시 풀려있다면 꼭 확인하세요!)

1.4 키 맵핑 설정 (한/영, 한자 키 등)

가장 중요한 부분입니다. '오른쪽 Option' 키를 한/영 전환으로, '오른쪽 Command' 키를 한자 키로 바꿔보겠습니다.

  1. Simple Modifications 탭으로 이동합니다.
  2. **'Target Device'**에서 설정을 적용할 키보드를 선택합니다. (모든 키보드에 적용하려면 'For all devices' 선택)
  3. '+ Add item' 버튼을 클릭합니다.
  4. From key에는 바꾸고 싶은 원래 키를, To key에는 바뀔 기능을 선택합니다.
    • 한/영 전환: From key: right_optionTo key: f18 (f18이 시스템 상 한/영 전환 키 역할을 합니다)
    • 한자 변환: From key: right_commandTo key: f19 (f19가 한자 변환 키 역할을 합니다)
    • 추가 팁: globe 키를 right_option으로 설정하면, 맥북 내장 키보드의 지구본(fn) 키를 오른쪽 Option 키처럼 사용할 수 있어 편리합니다.

1.5 유용한 단축키 확인

맥북의 기본 단축키도 손에 익으면 정말 편합니다. 특히 Globe(fn) 키와 조합하는 단축키를 확인해보세요.

  • Globe(fn) + Q: 빠른 메모
  • Globe(fn) + 방향키: 페이지 맨 위/아래, 맨 앞/뒤로 이동 (Page Up/Down, Home/End)
  • Command(⌘) + C/V/X: 복사/붙여넣기/잘라내기
  • Command(⌘) + Tab: 앱 간 전환

2. 필수 앱 설치 (앱스토어)

이제 업무와 소통에 필요한 기본적인 앱들을 설치합니다.

  1. Dock에서 App Store를 실행합니다.
  2. 오른쪽 상단 검색창에서 아래 앱들을 검색하여 '받기' 버튼을 눌러 설치합니다.
    • 카카오톡 (KakaoTalk): 국민 메신저, 설명이 필요 없죠?
    • Grammarly: 영문 오타나 문법을 실시간으로 교정해 주는 아주 유용한 앱입니다.

3. 네이버 웨일 브라우저 설치

다양한 기능과 편리한 인터페이스로 무장한 네이버 웨일 브라우저도 설치해 줍니다.

  1. Safari나 다른 브라우저에서 '네이버 웨일'을 검색하여 공식 홈페이지에 접속합니다.
  2. macOS 버전을 다운로드하고 설치 파일을 실행하여 설치를 완료합니다.

4. 개발자를 위한 Homebrew 설치

터미널을 통해 다양한 패키지(프로그램)를 쉽게 설치하고 관리하게 해주는 macOS용 패키지 관리자입니다. 개발자라면 거의 필수적으로 설치합니다.

  1. Command(⌘) + Space Bar를 눌러 Spotlight를 열고 '터미널' 또는 'Terminal'을 검색해 실행합니다.
  2. Homebrew 공식 홈페이지에 접속하여 메인 페이지에 있는 설치 명령어를 복사합니다. (보통 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)")
  3. 터미널 창에 붙여넣고 엔터를 누릅니다.
  4. 설치 과정에서 맥북 로그인 암호를 입력해야 하며, 화면 안내에 따라 진행하면 됩니다.

4.1 Homebrew로 앱 설치하기 (Cask)

Homebrew를 이용하면 네이버 웨일 같은 일반 애플리케이션도 명령어 한 줄로 설치할 수 있습니다. Cursor와 같은 코드 에디터도 마찬가지입니다.

  • 터미널을 열고 아래 명령어를 입력하여 네이버 웨일과 Cursor를 설치할 수 있습니다.
# 네이버 웨일 설치
brew install --cask naver-whale

# Cursor 코드 에디터 설치
brew install --cask cursor

# Terminus 설치
brew install --cask termius

 

반응형
반응형

https://www.youtube.com/watch?v=lpQm1zyUFOU

 

근거가 있는 자신감은 너무너무 연약해요
좀 더 본질적인 데에서 자양분을 끌어올리는게 좋은 일인 거 같아요

 

 

 

근거 없는 자신감이 중요하죠 

그게 근거가 있는 자신감은 너무너무 연약해요 

왜냐면 수학을 예로 들면 내가 반에서 1등했어

아 나는 수학을 좀 하나 보다라는 식으로 자신감의 근거를 두다 보면은 금방 깨지거든요

대학원에 가고 박사후 연구원을 하고 뭐 그러면은 세상에 나가 보면 그런 사람들 많고

어 내가 그렇게 특별한 사람이 아니었구나 이런 걸 어느 단계에선가는 크게 깨닫게 되거든요

그니까 그거를 자기 자존감의 원동력으로 삼으면은 언젠가 한번은 힘든 시기를 겪을 수도 있으니까

좀 더 본질적인 데에서 자양분을 끌어올리는게 좋은 일인 거 같아요

반응형
반응형

Updates: 2024. 11. 21.

Content : 맥북 키보드 매핑 설정 방법 by karabiner-elements

 

맥북을 사용하면서 키보드 레이아웃이 기존 윈도우 환경과 달라 불편함을 느끼는 분들이 많습니다.

이 글에서는 특히 control, globe (지구본 키), command 키에 해당하는 매핑을 바꾸는 간단한 2가지 방법에 대해 설명하고자 합니다.


1.  시스템 환경설정을 통한 기본 키 매핑 변경

일단 기본 설정 방법 간단하게 알아보시죠

  1) 상단 메뉴 바에서 Apple 로고를 클릭하고 '시스템 설정'을 선택합니다.
  2) '키보드'를 선택한 후, 하단의 '보조 키...' 버튼을 클릭합니다.
  3. 여기서 Control, Option, Command 키의 기능을 원하는 대로 변경할 수 있습니다.

 

2. Karabiner-Elements를 활용한 커스텀 매핑

더 복잡한 키 매핑이나 특정 키의 기능을 세밀하게 조정하고자 한다면, 

무료 오픈 소스 프로그램인 Karabiner-Elements를 활용할 수 있습니다.

1) [Karabiner-Elements 공식 웹사이트](https://karabiner-elements.pqrs.org/)에서 최신 버전을 다운로드하여 설치합니다.

권장하는 설치 방법은 Homebrew의 brew install --cask karabiner-elements 를 사용하는 방법입니다.

아래는 Homebrew 및 추천하는 맥북 기본 세팅 방법입니다.

 

2) 설치 후 프로그램을 실행하고, 요구하는 시스템 설정을 모두 세팅합니다.

** Karabiner-EventViewer, Karabiner-Elements 모두 세팅하시는 것을 추천드립니다.

Karabiner-EventViewer: 어떤 키가 어떤 이름으로 매핑되어 있는지 알려줍니다. 하나하나 눌러보고 확인하면 됩니다

Karabiner-Elements: 매핑을 하는 어플리케이션입니다

 

Karabiner-Elements가 키보드 입력을 모니터링할 수 있도록 시스템 환경설정에서 권한을 부여해야 합니다.
시스템 환경설정 > 보안 및 개인정보 보호 > 입력 모니터링에서 'Karabiner-Elements'와 관련된 항목들을 모두 체크하여 권한을 허용합니다.

3) 'Simple Modifications' 탭에서 'Add item'을 클릭하여 변경하고자 하는 키와 그에 대응하는 기능을 설정합니다. 

** 외부 키보드가 뜨지 않는다면, 시스템 설정 중 하나를 하지 않은 겁니다. 알림이 지워질 때까지 설정해주면 됩니다.

 

예를 들어 지구본 키가 없는 키보드에 지구본 키를 설정하고자 한다면,

'From key'에는 'Globe' 키로 설정하고자 하는 키를 선택합니다.
'To key'에는 'fn' 키를 선택합니다.

와 같이 하면 됩니다. 이렇게 하는 까닭은 윈도우 키보드의 fn 키와 애플 키보드의 fn 키가 다르기 때문입니다.

그래서 윈도우 키보드의 fn 키의 재맵핑이 필요합니다.

 

아래는 제가 설정한 키보드 매핑입니다

 

 

with ChatGPT

 

외부 공유하실 경우, 출처 반드시 밝혀주시기 바랍니다!

도움이 되셨다면 공감 꾸욱 부탁드립니다👍

반응형
반응형

Updates: November 29, 2024
Contents: multipass 설치 및 Ubuntu 환경 설정

 

Prerequisites (사전 준비)

  • homebrew 설치하기

https://klue.tistory.com/74

 

[Mac] 맥북 시작하기

Updates: November 29, 2024Contents: multipass 설치 및 Ubuntu 환경 설정 0. Homebrew 설치하기아래 페이지에 들어가서 확인할 수 있는 것과 같이 터미널에 한 줄 입력하면 끝이 난다./bin/bash -c "$(curl -fsSL https

klue.tistory.com

 

 

Installation (설치 방법)

brew install --cask multipass

https://github.com/canonical/multipass/

 

Command (명령어 정리)

# 설치 가능한 리스트 확인

multipass find

# multipass 리스트 확인

multipass list

 

# 아래 main은 이름 예시

# multipass 생성

multipass launch -n main -c 6 -m 12G -d 64G 24.04

# multipass 실행

multipass start main

# multipass 정지

multipass stop main

# multipass shell로 들어가기

multipass shell main

# multipass 정보 확인

multipass info main

 

# multipass 삭제하기

multipass delete main

# multipass 완전히 지우기

multipass purge

 

사용가능한 CPU 수 확인 방법

sysctl -n hw.physicalcpu

 

사용가능한 RAM memory 

sysctl hw.memsize

 

사용가능한 SSD (HDD) memory

df -h

 

# 폴더 외부와 연결하는 방법

multipass mount $연결하고자 하는 폴더 경로 $인스턴스 이름:$내부 폴더 경로

multipass mount ~/Shared main:/home/ubuntu/shared


with ChatGPT

 

외부 공유하실 경우, 출처 반드시 밝혀주시기 바랍니다!

도움이 되셨다면 공감 꾸욱 부탁드립니다👍

반응형

+ Recent posts