LightNote 도움말
Windows용 경량 코드/노트 편집기입니다. 사이드바에 섹션 목록이 있으며, 지금 읽고 있는 위치를 따라갑니다. 창 상단의 홈과 뒤로 버튼으로 처음으로 돌아가고, 검색 상자로 이 도움말의 텍스트를 찾을 수 있습니다(Enter로 다음, F3 / Shift+F3으로 이동). 언제든지 F1을 누르면 현재 화면에 해당하는 섹션에서 이 도움말이 열립니다.
목차
편집
- 개요
- 작업 공간과 창
- 코드 편집기
- Markdown과 위키링크
- 다이어그램(Mermaid)
- 수식과 화학(LaTeX)
- 노트 안의 달력
- 번호 매기기와 상호 참조
- 인용과 참고문헌
- 연결 그래프
- 표(Parquet, CSV, JSON, Excel)
- 분석 영역: 피벗 테이블과 여러 차트
- PDF와 이미지
- 이미지: 스크린샷에 주석 달기
- HTML 페이지(.html)
- 인쇄
- 폴더처럼 열리는 Zip(.zip)
- 블록(.lnb)
- 작업(칸반 / 간트)
- 사용자 지정 표(.lnd)
- 베이스(노트 저장 쿼리)
도구
- 파일 검색과 대기 항목
- 버전 관리(쉬운 Git)
- 스냅샷과 백업
- 변경 사항 검토(체크포인트)
- 파일 비교(diff)
- 코드 실행(F5)
- 터미널과 AI CLI
- 선택 영역에 대한 AI 어시스턴트(Ctrl+K / Ctrl+I)
- AI 세션
- AI 채팅
- HTTP API 테스트(.lnh)
- 데이터베이스(.lnc)
- SSH 연결(.lns)
- 보안: 암호 문구, PIN, 보안 Markdown
- 일일 노트, 빠른 캡처, 트레이
- 오래된 노트 다시 찾기
- 휴대폰에서 노트 사용하기
- 오디오 녹음(음성·회의)과 AI 전사
- 스티커 메모
- 캘린더
- 명령 팔레트
자동화(AI / 스크립트)
참고
개요
LightNote는 폴더를 작업 공간으로 열고, 왼쪽에 파일 트리를, 오른쪽에 편집 탭을, 아래쪽에 상태 표시줄을 보여줍니다. 사이드바 상단의 작은 탭 모음에서 탐색기(트리), 검색, 버전 관리(Git), 파일 기록, 대기 항목(TODO/FIXME 및 노트 작업) 섹션을 전환할 수 있습니다.
코드와 노트 외에도 다양한 형식을 알맞은 방식으로 열고 편집합니다:
표(DuckDB를 통한 Parquet/CSV/JSON, Excel .xlsx), PDF, 이미지
(애니메이션 GIF 포함), 폴더처럼 열리는 .zip, 블록
노트(.lnb), 작업 보드(.lnt), 사용자 지정
표(.lnd), 데이터베이스 연결(.lnc),
SSH 연결(.lns). 통합 터미널, 전역 검색(ripgrep),
간소화된 Git 버전 관리, AI CLI와의 연동, MCP 서버, 자동화용
명령줄(lnote)도 제공합니다.
처음이신가요? 소개 자료(시작 작업 공간)는 도움말 → 시작 투어 다시 열기에서 언제든지 다시 볼 수 있습니다.
작업 공간과 창
루트 폴더와 창
연 루트 폴더가 작업 공간입니다. 그냥 여는 것만으로는 아무것도 생성되지 않으며, 닫을 때 LightNote는 작은 세션 파일(열린 탭과 위치)만 기록합니다. 작업 공간은 도구 → 작업 공간 설정에서 버전 관리(Git) 또는 MCP를 활성화해야만 자체 설정이 저장되는 "프로젝트"가 됩니다.
일반 설정은 애플리케이션 전체에 적용되고, 작업 공간 설정은 연 폴더에만 적용됩니다. 설정과 상태는 폴더 곳곳에 흩어지지 않고 중앙 데이터베이스에 저장됩니다.
LightNote는 단일 인스턴스로 실행됩니다. 두 번째 폴더를 열면
기존 프로세스를 재사용합니다(다중 창, 메모리 절약). 트레이 아이콘과
작업 공간을 검색 상자로 나열하는 런처가 있으며(즐겨찾기는 컨텍스트
메뉴로 맨 위에 고정) 자세한 내용은
일일 노트와 트레이를 참고하세요. 각 탭은 탭 바의
컨텍스트 메뉴로 색상 라벨을 지정할 수 있습니다. 반복되는 노트를
위해서는 작업 공간 루트에 Modelos(또는 Templates) 폴더를 만들고
.md 파일을 넣은 뒤 파일 → 템플릿에서 새 노트…를
사용하세요. 같은 목록에 학술용 템플릿 네 개가 기본으로 들어 있습니다 — 학술 논문, 독서 노트, 실험 노트, 실험 프로토콜. 하나를 고르면 그 .md가 이 폴더에 저장되고, 그다음부터는 마음대로 편집할 수 있습니다.
템플릿 정리와 작성. Templates 의 하위 폴더는 카테고리가 됩니다. 업무/회의.md 는 업무/회의 로 표시되며, 폴더가 그 템플릿을 채택할 때 기록하는 이름도 이것입니다. {{title}}, {{date}}, {{time}}, {{date:dd/MM/yyyy}} 필드는 만들 때 채워집니다 — 제목은 노트의 이름이며, 만든 직후 아무것도 쓰기 전에 이름을 바꾸면 제목도 다시 만들어집니다 — 그리고 코드 안(백틱 사이나 블록 안)에서는 아무것도 바뀌지 않으므로 템플릿이 자기 문법을 설명할 수 있습니다. 템플릿에서는 채울 필드와 같은 배경으로 표시되고(서식 편집기에서는 문법을 뜻하는 실선 테두리와 함께), 일반 노트에서는 색이 없습니다. 거기서는 아무 일도 하지 않기 때문입니다. 템플릿의 frontmatter 는 노트로 넘어가지만, 템플릿 자체를 설명하는 description: 과 폴더에 속한 citation-style: 은 빠집니다. 템플릿과 프롬프트(Prompts/ 폴더)는 콘텐츠가 아니라 도구입니다. 의미 검색과 AI 채팅의 컨텍스트에서 빠지고, 거기서 선언한 태그와 aliases: 도 세지 않습니다 — 텍스트 검색은 여전히 둘 다 찾습니다. 템플릿을 열면 편집기 위쪽의 띠가 이 파일이 템플릿임을 알려 주고, 필드 삽입, 구문 보기와 미리 보기(지금 만들어지는 노트의 모습)를 제공합니다. 템플릿 라이브러리(도구에 있으며, 파일 → 템플릿으로 새 노트…가 여는 것과 같습니다)는 이름과 설명으로 검색하고, 하위 폴더별로 묶고, 미리 보기를 보여 줍니다. 새 템플릿도 여기서 만듭니다 — 열려 있는 노트에서 만들 수도 있으며, 그때는 그 제목과 오늘 날짜가 필드가 됩니다. 라이브러리에는 사이트에서 그룹도 있습니다. 우리가 공개한 템플릿이며, 인터페이스 언어로, 라이브러리를 열 때만 가져옵니다. 가져오기는 복사입니다 — 템플릿은 Templates 안의 여러분 파일이 되고, 그다음에는 둘을 잇는 것이 없습니다. 사이트에서 고친 템플릿이 이미 가져온 것을 쫓아오지 않으며, 같은 이름의 여러분 템플릿이 언제나 이깁니다. 연결이 없으면 가져오지 못했다고 알리고, 이 컴퓨터에 이미 있는 것을 계속 보여 줍니다.
채울 필드. 템플릿은 빈칸을 남길 수 있습니다. {{ask:회의 주제}}는 자유 입력 필드이고 {{choice:초안|검토|확정}}은 목록입니다. 만들 때 치환되지 않습니다 — 노트는 그것들이 본문에 표시된 채로 태어나고, 그래서 오늘의 노트와 lnote, MCP에서도 똑같이 작동합니다. 그곳에는 물어볼 화면이 없기 때문입니다. 노트에서 서식 편집기는 각 필드를 라벨(질문, 또는 첫 번째 선택지)을 점선 테두리로 두른 태그로 보여 줍니다. 클릭하면 필드 전체가 선택되고, 다음에 누르는 키가 그것을 대체합니다. 선택 필드에서는 클릭이 목록도 엽니다. 옵션을 고르면 필드가 그 말로 바뀌고, 고르지 않고 닫으면 필드는 선택된 채로 남아 다른 것을 입력할 수 있습니다. 노트를 만들면 커서가 이미 첫 번째 필드에 놓입니다. 거기서 Tab과 Shift+Tab으로 필드 사이를 이동하고(지금 몇 번째 필드인지는 상태 표시줄에 나옵니다), Alt+↓로 선택 필드의 목록을 키보드로 열 수 있으며, Esc를 누르거나 필드가 있는 줄을 벗어나면 Tab이 원래 역할로 돌아갑니다. 템플릿 자체에서는 구문 보기가 켜져 있어 필드가 실선 테두리의 {{…}}로 보이고, 클릭하면 커서가 그 안에 들어가 질문이나 옵션을 고칠 수 있습니다. 끄면 템플릿이 그것으로 만들어질 노트처럼 보입니다. 여섯 필드는 / 메뉴와 삽입 → 템플릿 필드에도 있습니다(템플릿 파일에서만). 텍스트 편집기에서 필드는 파일에 있는 그대로 색칠된 중괄호와 함께 보이며, 맞춤법 검사는 그 안으로 들어가지 않습니다.
파일 만들기
형식을 골라 파일 만들기. 새로 만들기 메뉴(☰ 파일, 활동 표시줄의 새로 만들기 버튼, 폴더 컨텍스트 메뉴의 새로 만들기)에는 새 노트 (.md), 새 텍스트 파일 (.txt), 그리고 자주 쓰는 언어를 모은 새 코드 파일 하위 메뉴가 있습니다. 모두 기본 이름으로 즉시 디스크에 파일을 만들고 트리에서 이름 편집을 엽니다. 이름 부분만 미리 선택되므로 제목을 입력해도 확장자가 지워지지 않습니다. 제안된 이름을 그대로 쓰려면 편집기를 클릭하고 쓰기 시작하면 됩니다. 하위 메뉴에 없는 확장자는 파일을 만든 뒤 이름을 바꾸세요(F2). 확장자를 바꾸면 보기도 바뀝니다. .txt를 .md로 바꾸면 같은 탭이 노트로 다시 열리며 읽기와 개요가 함께 나옵니다. 반대로 하면 코드 편집기로 돌아갑니다. LightNote 고유 확장자(.lnc, .lne, .lnq, .lnh, .lns 및 번들)는 예외입니다. 그곳에서는 확장자가 내용의 형식을 선언하므로, 이름 바꾸기는 확인을 요구하고 탭이 열려 있는 동안에는 거부됩니다.
쓰지 않고 끝난 새 파일. 방금 만든 파일의 탭을 이름도 바꾸지 않고, 저장도 하지 않고, 아무것도 입력하지 않은 채 닫으면 그 파일은 휴지통으로 가고 상태 표시줄에 실행 취소가 나타납니다. 실수로 누른 새로 만들기가 폴더에 흔적을 남기지 않도록 하기 위해서입니다. 이름 바꾸기, 저장(Ctrl+S), 무언가 입력하기 — 이 중 하나만 해도 그 파일은 그대로 남습니다.
메모장은 Markdown 편집기입니다. 메모장 탭(디스크의 파일이 아닙니다)은 노트와 같은 텍스트 편집기를 씁니다: 마크업 강조, 맞춤법 검사, [[ 자동 완성, 위키링크와 태그의 Ctrl+누르기. 없는 것은 그대로입니다 — 파일이 없으므로 자동 저장도 보기 모드도 없습니다. 내용은 앱을 닫아도 남고, 탭을 닫으면 사라집니다.
새 파일이 만들어지는 위치. 새로 만들기는 항상 탐색기에서 표시된 폴더에 만들며, 표시된 폴더는 언제나 정확히 하나입니다. 트리 맨 위에는 루트 폴더 행이 있고 작업 공간 이름을 표시합니다. 다른 항목과 똑같은 항목이며, 클릭하면 대상이 루트로 돌아갑니다. 폴더를 선택하면 표시가 그 폴더로 옮겨지고, 파일을 선택하면 그 파일이 들어 있는 폴더가 표시됩니다. 폴더를 보여 주지 않는 목록 모드에서는 표시가 루트 행에 남고 그 행이 실제 대상을 보여 줍니다. 루트 행의 컨텍스트 메뉴에는 새로 만들기와 폴더 만들기가 있습니다.
개별 파일과 즐겨찾기
파일을 작업 공간으로 바꾸지 않고 낱개로 열려면 낱개 파일 열기… (트레이 메뉴)를 사용하세요. 독립 창에 파일 트리가 표시되지만 Git, MCP, 테마 재정의는 없습니다. 설정 → 일반 → 기능에서 활성화하면 LightNote가 Windows 탐색기 메뉴에 통합됩니다(사용자별, 관리자 권한 불필요). "연결 프로그램" 목록 외에도 컨텍스트 메뉴에 모든 파일에서 "LightNote로 열기", 폴더에서 "LightNote 작업 공간으로 열기"가 추가됩니다(Windows 11에서는 추가 옵션 표시 안). 파일은 해당 독립 창에서, 폴더는 작업 공간으로 열립니다.
Windows 탐색기에서 여러 파일을 한 번에 선택하면 — 서로 다른 폴더에 있는 파일이라도 — 모두 같은 독립 창에 탭으로 나란히 열립니다(파일마다 창이 따로 열리지 않습니다). 이 창의 탭은 기억됩니다. 창을 닫았다가 다시 열면 같은 파일들이 돌아옵니다. 여기서는 탭이 중심이므로 파일 트리는 접힌 상태로 시작합니다. Ctrl+B(또는 활동 표시줄 상단의 버튼)로 표시할 수 있습니다.
세션으로 돌아가기. 개별 파일 창은 어디에서나 개별 파일이라는 이름으로 나타납니다. 다른 창이 작업 공간 이름을 보여 주는 제목 표시줄에도 이 이름이 나오므로 Alt+Tab에서 구분할 수 있습니다. 트레이 메뉴의 열기에서는 저장된 탭이 있을 때 (탭 N개)가 뒤에 붙으며, 클릭하면 모두 돌아옵니다. 런처의 첫 줄에도 작업 공간과 나란히 표시됩니다. 또한 LightNote를 다시 열면 종료할 때 열려 있던 모두가 돌아옵니다. 각 창은 자기 폴더로, 개별 창도 함께 돌아옵니다. 마지막으로 사용한 폴더만 열고 싶다면 설정 → 일반 → 인터페이스 → 시작할 때 열기에서 바꾸세요. 종료 전에 닫은 창은 제외됩니다. 닫는 것이 "이 공간은 다 썼다"는 뜻이기 때문입니다.
즐겨찾기: 사이드바에는 즐겨찾기 섹션이 있어 고정한 항목(트리나 탭의 컨텍스트 메뉴 → 즐겨찾기에 추가)과 최근에 연 파일이 표시됩니다. 고정 항목은 폴더별이며 상대 경로로 저장되므로 작업 공간을 옮겨도 유지됩니다.
탭을 별도 창에서 열기: 탭의 컨텍스트 메뉴에서 새 창에서 열기를 선택하면
해당 파일이 독립 창에서 다시 열립니다(코드 옆에 노트를 두기에 편리). 작업 공간에 의존하는
형식(.lnc, .lne, .lns 및 번들)은 분리할 수 없습니다.
탐색기
탭을 열어둔 채로 파일 옮기기. 트리에서 파일을 다른 폴더로 끌어당기면 탭도 함께 이동합니다——열린 상태로 새 위치를 가리킵니다. 잘라내기와 붙여넣기, 그리고 폴더 전체를 옮길 때도 마찬가지입니다(안에 있는 파일들의 탭이 따라갑니다). Ctrl을 누르면 이동이 아니라 복사가 됩니다. LightNote 밖으로 끌면 항상 복사됩니다. 트리에서 파일을, 또는 탭 바에서 탭 자체를 끌어 Windows 폴더나 메일, Teams 대화에 놓아도 원본은 작업 공간에 그대로 남습니다. 프로그램 안에서 탭은 그저 탭일 뿐입니다. 다른 창으로 끌면 탭이 이동하고, 탭을 들고 편집기나 트리 위를 지나가도 아무것도 쓰이거나 옮겨지지 않습니다.
다중 선택. 트리는 세 가지 보기 모드 모두에서 Ctrl+클릭(개별)과 Shift+클릭(범위)을 받습니다. 여러 항목을 선택하면 컨텍스트 메뉴가 선택 전체에 작용합니다: 잘라내기와 복사(Windows 탐색기와 상호 운용), 삭제(전체에 대해 확인 한 번), 복제, 해시 복사, .zip으로 압축(하나의 압축 파일, 각 항목이 자기 이름으로 최상위에 들어감), 색 적용, 즐겨찾기, Git(add/restore), 경로 복사(항목당 한 줄). 한 항목에만 의미가 있는 동작—인라인 이름 바꾸기, 속성, 다른 형식으로 열기, 변환—은 비활성이 되고 이유가 툴팁에 표시됩니다. 선택 안쪽을 오른쪽 클릭하면 선택이 유지되고, 바깥을 클릭하면 클릭한 항목만 선택됩니다. 폴더와 그 안의 항목을 함께 선택해도 작업이 두 번 실행되지 않습니다: 안쪽 항목은 제외됩니다.
열지 않고 엿보기. 파일을 한 번 클릭하면 이미 미리 보기 탭이 열립니다(재사용되며 탭 바에서 기울임꼴로 표시). 화살표 키로 트리를 이동하는 중에는 Space 키가 같은 일을 하고 포커스를 트리로 돌려주어 목록을 계속 내려갈 수 있습니다.
파일 도구. 탐색기 컨텍스트 메뉴에 파일 도구 하위 메뉴가 있습니다: 일괄 이름 바꾸기(확장자/와일드카드/정규식 필터 + 미리보기와 충돌 감지가 있는 규칙 파이프라인), 파일 나누기(줄·크기·정규식 구분자), 파일 합치기(선택적으로 첫 번째 CSV 헤더만 유지), 복제, 해시 복사(MD5/SHA-256), .zip으로 압축 / 여기에 압축 풀기. 여러 항목을 선택한 경우 일괄 이름 바꾸기와 파일 합치기는 고른 항목을 그대로 받습니다(폴더를 훑지 않음). 합치기는 선택한 순서를 지킵니다.
단독 창의 이동. 트리 위에 뒤로(Alt+←), 앞으로(Alt+→), 위로 버튼과 클릭할 수 있는 폴더 경로가 있습니다 — 각 구간을 누르면 그 단계로 갑니다. 마우스 측면 버튼으로도 뒤로/앞으로 갈 수 있습니다. 경로를 입력하려면 띠의 빈 곳을 클릭하거나 Ctrl+L을 누르세요. Esc는 취소하고 경로로 돌아갑니다. 탭을 전환하면 표시된 폴더도 이동합니다: 독립 창은 서로 다른 폴더의 탭을 모으므로, 탭을 클릭하면 해당 폴더로 이동합니다.
메뉴와 확대·축소
메뉴. 활동 표시줄 위쪽의 ☰ 버튼에 파일, 편집, 보기, 창, 도구, AI, 도움말 메뉴가 모여 있습니다. AI 동작은 전용 메뉴에 있습니다(활동 표시줄의 지팡이 버튼으로도 열립니다). 도구에서는 하위 메뉴로 묶여 있습니다: 실행(F5/F6/F8, lint, 터미널로 보내기, 매크로), 캡처(오늘의 노트, 빠른 캡처, 빠른 작업, 오디오 녹음, 스티커 메모), 작업 공간(설정, 스냅샷, 복사본 내보내기, 폴더 이동) — 마지막 항목은 톱니바퀴 메뉴에도 있습니다. 새로 만들기 메뉴는 나타나는 세 곳(☰ 파일, 새로 만들기 버튼, 폴더 컨텍스트 메뉴의 새로 만들기)에서 동일합니다.
어느 뷰에서나 같은 확대/축소. 확대/축소 수준은 한 곳에만 있습니다. 상태 표시줄 오른쪽의 − 100% + 묶음입니다. 가운데 단추를 누르면 표준 목록이 열립니다 — 너비에 맞추기와 창에 맞추기(PDF나 이미지처럼 내용 자체에 크기가 있는 경우에만), 200%, 150%, 120%, 100%, 75%, 50% 수준, 그리고 사용자 지정…. 지금 적용된 항목에는 표시가 붙습니다. 확대/축소가 있는 모든 뷰(코드, 노트, PDF, 이미지, HTML, 스프레드시트)에서 단축키도 같습니다. Ctrl++, Ctrl+−, 100%로 되돌리는 Ctrl+0, 그리고 Ctrl+마우스 휠입니다. 확대/축소가 없는 뷰에서는 이 묶음이 아예 나타나지 않으며, 맞추기 모드일 때는 백분율 대신 너비 또는 창이라고 표시됩니다. 확대/축소는 파일이 아니라 탭에 속합니다. 오래 쓰지 않아 메모리가 해제된 탭이나 LightNote를 다시 열었을 때 돌아온 탭은 남겨 둔 배율 그대로 복귀하며, 파일을 처음부터 다시 열면 100%에서 시작합니다.
코드 편집기
열기, 강조, 서식
텍스트/코드 파일은 구문 강조가 적용된 편집기(Scintilla)에서 열립니다. 주석/주석 해제(Ctrl+/), 줄 이동 및 복제, 북마크(Ctrl+F2), 심볼/함수 목록, 단어 기반 자동완성, 들여쓰기 안내선, 자동 줄바꿈, 확대/축소, 디스크상 파일 변경 감지 기능이 있습니다. 버전 관리를 활성화하면 여백에 마지막 버전 이후 추가/변경된 줄이 표시됩니다.
매크로(Ctrl+Shift+R / F4로 편집 시퀀스 기록/재생, 도구 → 매크로), 서식/정리(Shift+Alt+F), 탭 도구 모음의 ASCII 표(문자/박스 그리기 문자 삽입용), 맞춤법 검사기 (Hunspell)도 있습니다. pt-BR와 en-US는 내장되어 있으며, 다른 언어는 설정 → 노트 및 글쓰기 → 맞춤법의 표(언어별 한 행, 다운로드/ 제거 버튼 포함)에서 필요할 때 다운로드합니다. 기록 중인 로그 파일을 따라가려면 탭 자체 도구 모음의 모니터링 (tail -f) 버튼을 사용하세요. 매우 큰 파일(약 1 MB 이상)은 보이는 부분만 불러오는 가상화된 경량 편집기에서 열리며, 파일 → 경량 편집기에서 열기…로 강제로 사용할 수도 있습니다.
서식과 린트: Shift+Alt+F는 언어의 외부 포매터 (black, prettier, clang-format, gofmt, rustfmt 등)가 설치되어 있으면 그것으로 문서 서식을 맞추고, 없으면 오프라인 내부 포매터(JSON/XML)로 대체합니다. F7은 언어의 린터(ruff, eslint, shellcheck, luacheck 등)를 실행해 편집기와 문제 패널(하단 창, 이동 가능)에 밑줄로 문제를 표시합니다. 두 기능 모두 설정 → 서식과 → 린터에 카탈로그와 추가 버튼이 있고, 저장 시 서식 맞추기 / 저장 시 린트 옵션도 있습니다. F6으로 파일을 출력 패널에서 실행하거나(종료 코드와 소요 시간 기록, 중지/재시작 가능) F8로 일부 코드만 실행할 수 있습니다.
코드로 연 .md는 클릭 한 번으로 다시 노트가 됩니다. 열려 있는 파일이 노트일 때 편집기 막대에 노트로 열기가 나타납니다. 트리 메뉴의 다음으로 열기 → 코드의 반대이며, 탭을 서식 편집·읽기·개요·속성이 있는 노트 보기로 되돌립니다. 전환이 가능할 때만 나타납니다. 너무 큰 노트는 코드 편집기에 그대로 남습니다.
다중 커서, 기록, 정의
추가 편집 기능: 항목별 다중 커서(Ctrl+D, 전체는
Alt+F3), 줄 복제(Ctrl+Shift+D), 줄 합치기
(Ctrl+Shift+J), 범위 단위 선택 확장/축소(Ctrl+Shift+Space /
Ctrl+Alt+Space), 사각형 선택(Alt+드래그), 모두 접기/펼치기,
스니펫(Ctrl+J, 설정 → 편집기에서 편집 가능), 파일 내
심볼로 이동(팔레트의 #)과 프로젝트 내 이동
(Ctrl+T 또는 ##), 이동 기록(Alt+←/→), 편집기
상단의 브레드크럼 경로, 열 눈금자, 괄호 쌍 색상 강조,
자동 닫기/감싸기 괄호, 저장 시 정리(공백 제거, 끝 줄바꿈)까지 모두
설정 → 편집기에 있습니다.
로컬 기록과 클립보드: 저장할 때마다 LightNote는 파일의 버전을 보관합니다(파일 → 로컬 기록…, 복원 가능, Git과는 별개). Ctrl+Alt+V는 클립보드 기록을 열어 이전에 복사한 항목을 붙여넣습니다. Ctrl+Shift+T는 마지막에 닫은 탭을 다시 엽니다. 탭은 고정할 수 있으며(컨텍스트 메뉴), 고정된 탭은 유휴 상태에서 해제되지 않도록 보호됩니다.
정의로 이동: 식별자 위에서 F12 또는 Ctrl+클릭하면 프로젝트에서 정의된 위치로 이동합니다. Shift+F12는 사용처를 찾습니다.
미니맵과 텍스트 작업
미니맵. 편집기 오른쪽 가장자리에 문서 전체의 축소판이 표시됩니다. 코드의 ‘형태’(구문 강조 색을 축소한 모습)를 보여 주고 현재 보이는 영역을 표시합니다. 클릭하거나 드래그하면 파일의 어느 위치로든 이동합니다. 보기 → 미니맵 또는 설정 → 편집기에서 켜고 끕니다. 코드 탭 자체 도구 모음의 미니맵 버튼(ASCII 옆)으로 편집기를 벗어나지 않고 켜고 끌 수 있습니다. 축소판 왼쪽 가장자리에는 표시 띠가 있습니다. 파란색은 책갈피가 있는 줄(여백의 점과 같은 것), 호박색은 빠른 검색의 일치 항목입니다. 화면 밖 부분까지 포함해 파일 전체에 어떻게 분포하는지 한눈에 볼 수 있습니다.
텍스트 조작. 편집 메뉴(및 편집기 컨텍스트 메뉴)에 줄(이동, 복제, 삭제, 정렬, 합치기, 뒤집기, 번호 매기기)과 정리(공백 제거, 빈 줄·중복 줄 제거, 탭 ↔ 공백) 하위 메뉴가 있습니다. 선택 영역이 있으면 컨텍스트 메뉴에 선택 영역을 새 파일로 저장…도 나타나며, 현재 파일 옆에 조각을 기록하고 탭으로 엽니다(원본은 그대로).
Markdown과 위키링크
표시 모드
.md 노트는 편집기와 읽기가 나란히 열립니다(설정
가능). 커서가 있는 문단 밖의 마크업은 흐리게 표시되어 완성된 문서처럼
보입니다.
단축키: Ctrl+B/Ctrl+I는 굵게/기울임을 적용하고 Ctrl+E는 보기 모드(편집 → 분할 → 서식 → 읽기)를 전환합니다.
/ 메뉴: 서식 편집기에서 줄 맨 앞(들여쓰기가 있어도 됩니다)이나 공백 뒤에 /를 입력하면 삽입 목록이 커서 위치에 열립니다. 입력해서 거르고(/테이블, /콜아웃, /h1) ↑/↓로 고른 뒤 Enter로 삽입합니다. Esc나 스페이스를 누르면 목록이 닫히고 입력한 글자는 그대로 남습니다. 오른쪽 열에는 각 항목이 쓰는 마크업이 보이므로 다음부터는 바로 입력할 수 있습니다. 코드 블록, 수식, 표 셀 안에서는 메뉴가 열리지 않습니다.
읽기 모드: Ctrl+E의 마지막 모드는 서식 편집과 같은 화면이지만 읽기 전용입니다. 그래서 파일에 없는 것을 보여 줄 수 있습니다 — [TOC] 토큰의 목차입니다. [files] 토큰의 폴더 목록과 ![[노트]]로 가져온 노트의 본문은 서식 편집에서도 보입니다. 이 가운데 어느 것도 .md에 기록되지 않습니다. 파일에는 토큰이 그대로 남고, 생성된 글은 편집할 수 없습니다. 이 모드에서는 한 번 클릭으로 링크와 위키링크, 태그를 따라갑니다(Ctrl 불필요). 편집 버튼은 비활성화됩니다 — 이전에 화면 밖 텍스트 편집기에 작용하던 실행 취소, 잘라내기, 붙여넣기도 포함됩니다. 복사는 그대로 쓰이며 화면에 보이는 내용을 복사합니다. Ctrl+F는 화면에 있는 내용에서 찾습니다. 바꾸기 줄은 비활성화되며 이유는 툴팁에 나옵니다. 여기서 바꿔도 파일에는 닿지 않기 때문입니다.
읽기 모드에서 하는 단위 계산. =로 끝나는 줄이 결과를 받습니다. 3,5 km / 2 s =는 3,5 km / 2 s = 1,75 km/s로 보입니다. 파일은 바뀌지 않습니다 — [TOC]이나 서식이 적용된 인용과 같은 생각입니다. 차원 해석을 하며, 바로 거기에 존재 이유가 있습니다. 1 km + 1 s =는 둘 다 이름을 대며 거절됩니다. 거기서 2를 내놓는 계산기는 더 나쁜 것이 아니라 거짓말을 하는 것이고, 실험 노트에서 그 오류는 논문까지 살아남기 때문입니다. 같은 물리량을 다른 단위로 더하는 것은 되고 환산도 됩니다(2 h + 30 min =). 결과는 당신이 쓴 단위로 나옵니다. SI 접두어, 물리 상수(c, h, k_B, N_A, g 등), 명시적 변환(3 km in m, to와 ->도), 그리고 불확도를 압니다. (2,00 ± 0,05) m / (1,0 ± 0,1) s =는 오차를 전파하고 측정이 허용하는 자릿수만 씁니다. 코드와 수식은 제외됩니다 — ``` 울타리 안, 백틱 사이, $…$ 안에서 줄 끝의 =는 다른 것의 문법입니다. 계산이 아닌 줄(합계 =)은 조용히 그대로 남습니다. 꺼진 채로 옵니다. 설정 → 기능 → 학술 → 단위 계산기에서 켜세요.
간격 반복 카드. #flashcards 태그를 붙인 노트는 덱이 됩니다. 그 안에서 질문::답 형식의 각 줄이 카드 한 장이고, :::은 역방향 카드도 만들며, 두 줄 사이에 홀로 있는 ?는 여러 줄 카드가 되고, ==이런==은 빈칸이 됩니다. 태그가 없으면 어떤 노트에도 카드가 없습니다 — 프로그래밍 노트의 std::vector가 쓴 적 없는 카드가 되는 것을 막아 주기 때문입니다. 도구 → 카드 → 카드 복습으로 세션을 시작합니다. 정답은 직접 요청하기 전까지 숨어 있습니다(이것이 기능의 전부입니다. 둘을 함께 보는 것은 다시 읽기이고, 다시 읽기로는 남지 않습니다). 네 가지 평가에는 각각이 사 주는 시간이 적혀 있습니다. 일정을 잡는 것은 Anki와 같은 알고리즘인 FSRS입니다. 카드의 정체성은 「질문」입니다. 답을 고쳐도 일정은 그대로이고, 질문을 다시 쓰면 그 카드는 은퇴하고 다른 카드가 시작됩니다 — 배우고 있는 것이 질문이기 때문에 그것이 맞습니다. 기록은 노트 옆의 열린 파일(노트.md.cards.ndjson)에 남습니다. Git으로 버전 관리할 수 있고 어떤 편집기로도 읽을 수 있으며, 대가는 폴더에 파일 하나가 느는 것입니다. Anki로 내보내기는 Anki가 가져오는 텍스트 파일을 만듭니다 — 일정은 함께 가지 않습니다. Anki의 텍스트 가져오기가 받아들이지 않기 때문이며, 일정은 .ndjson에 남습니다.
코드 블록
코드 블록에 색이 입혀집니다. 언어를 선언한 울타리(```python)는 코드 편집기와 같은 색으로 토큰마다 강조 표시됩니다. 이 창에 선택한 코드 테마도 반영됩니다. 서식 편집, 읽기 모드, 내보낸 파일, 노트에 질문의 답변에서 모두 적용됩니다. 언어를 선언하지 않은 울타리는 단색으로 남고, 강조 표시를 지원하지 않는 언어도 마찬가지입니다. 텍스트가 사라지는 일은 없습니다.
접기, 고정, 내보내기
섹션 접기와 제목 고정은 서식 편집과 읽기 모드에서도 사용할 수 있습니다. Ctrl+Shift+[는 커서가 있는 섹션을 접고 Ctrl+Shift+]는 펼칩니다. 제목 왼쪽의 작은 화살표를 클릭해도 같으며, 보기 → 모든 제목 접기/펼치기는 앞에 있는 화면에 적용됩니다. 스크롤하면 위로 지나간 제목이 상단 띠에 고정됩니다. 그중 하나를 클릭하면 해당 섹션으로 이동합니다. 접기는 화면 상태입니다. .md는 바뀌지 않고, 접힌 글은 파일에 그대로 남습니다.
내보내기: PDF와 HTML은 읽기 모드와 같은 문서에서 생성됩니다. 나오는 파일은 방금 읽은 그대로이며 목차, 폴더 목록, 가져온 노트가 함께 들어갑니다. HTML은 자체 완결형이고(로컬 이미지는 내장됩니다) PDF는 벡터 텍스트라 검색이 됩니다. HTML은 의미 있는 마크업으로 나옵니다 — 제목에는 앵커, 콜아웃은 <aside>, 표에는 머리글 행, 각주에는 돌아가는 링크 — 그리고 수식은 MathML입니다. 진짜 텍스트라 복사되고, 소리 내어 읽히며, 확대해도 흐려지지 않습니다. 테마는 형식에 따라 달라집니다. HTML은 화면에서 보는 색을 그대로 유지하며 어두운 테마도 포함됩니다(파일이 자체 배경을 가집니다). PDF는 항상 밝은 종이로 나갑니다. 인쇄하고 보내기 위한 것이기 때문입니다 — 콘텐츠 테마가 어두우면 기본 밝은 테마로 인쇄되고, 이미 쓰고 있는 밝은 테마는 그대로 유지됩니다. Word, OpenDocument, LaTeX, Typst, EPUB는 LightNote가 직접 만들므로 아무것도 설치할 필요가 없습니다. .docx와 .odt에는 제목, 목록, 표, 각주, 이미지가 들어가고 수식은 편집할 수 있는 수식이 됩니다(Word에서는 Word 수식, LibreOffice에서는 Math 개체). .tex는 완전한 프리앰블을 갖추고 pdfLaTeX, XeLaTeX, LuaLaTeX로 컴파일됩니다. 폴더에 서지가 있고 학술 구역이 켜져 있으면 .tex는 살아 있는 인용으로 나옵니다. [@키]는 \autocite가 되고 [bibliography] 토큰은 \printbibliography가 되며, 인용한 문헌만 담은 refs.bib가 옆에 저장됩니다 — 저장했다는 사실은 앱이 알려 줍니다. biber로 컴파일하세요. .typ는 같은 일을 Typst로 하는 것으로, LaTeX 배포판 없이 몇 초 만에 컴파일됩니다. 수식은 mitex 패키지(첫 컴파일 때 내려받음)를 통해 LaTeX 그대로 가고, 인용은 @키와 #bibliography로 나옵니다. .epub는 전자책입니다. 1수준 제목마다 한 장이 되고 탐색용 목차가 붙으며, 이미지는 패키지 안의 파일이 되고 HTML과 같은 의미 있는 마크업으로 나옵니다. .ipynb는 Jupyter 노트북입니다. 본문은 텍스트 셀이 되고 커널 언어의 코드 블록은 코드 셀이 됩니다 — 그것만입니다. 코드 셀은 커널로 보내지므로, Mermaid 다이어그램을 셀로 만들면 처음 실행할 때 Python으로 실행되어 버립니다. 커널은 노트 속성의 kernel 키에서, 없으면 가장 많이 쓰인 코드 블록에서 정해집니다. 출력은 만들어 내지 않습니다. 셀은 결과 없이 나옵니다. 결과는 실행에서 나오는 것이기 때문입니다 — 노트북을 가져올 때 저장된 출력을 버리는 것과 같은 규칙입니다. 그리고 Markdown 대상이 있습니다. 같은 노트를 목적지의 방언으로 내보냅니다 — GitHub은 > [!NOTE] 알림, MkDocs는 !!! note, Docusaurus는 :::note, Pandoc은 ::: {.note}, 또는 Obsidian 표기나 엄격한 CommonMark. 위키링크는 상대 링크가 되고(Obsidian 제외) %%…%% 주석은 발행되지 않습니다 — 그것은 사적인 것이기 때문입니다. Typst가 설치되어 있으면(winget install --id Typst.Typst) 내보내기 화면에서 바로 PDF 컴파일을 제안합니다. 없으면 버튼이 Typst 설치...가 되어 안내를 엽니다. 학과나 고객이 Word 서식 파일을 준다면 작업 공간 설정 → 인용과 참고문헌 → Word 서식 파일에서 그 .docx를 지정하세요. 내보낸 파일은 서식 파일의 스타일, 용지, 여백, 머리글로 나옵니다. 노트마다 속성에 reference-docx: seosik.docx를 적어 다른 것을 쓸 수도 있습니다. 셋 다 읽기 모드의 Markdown에서 출발하며 — 인용은 서식이 적용되고 그림에는 번호가 붙습니다 —, 옮겨지지 못한 것은 내보내기가 끝날 때 알려 줍니다. Mermaid 다이어그램과 화학 구조는 이미지로 들어갑니다. .docx, .odt, EPUB에서는 밝은 용지에, HTML에서는 화면 색으로 그려집니다. 그릴 창이 없는 lnote로 내보낼 때만 코드 블록으로 나옵니다. 또 마크업 텍스트 대상…이 있습니다. reStructuredText, AsciiDoc, Org mode, MediaWiki, 일반 텍스트도 LightNote가 직접 씁니다. 각 형식은 그 형식의 기본 문법으로 나옵니다. 흉내가 아닙니다. 알림 상자는 Sphinx에서 .. note::, AsciiDoc에서 [NOTE], Org에서 #+begin_note가 되고, 수식은 .. math::, latexmath:[], 순수 LaTeX, <math>가 되며, 각주는 footnote:[]와 <ref>가 됩니다. 일반 텍스트에는 표기법이 전혀 없습니다 — 표는 열을 맞추어 나오므로 메일이나 커밋 메시지에 그대로 들어갑니다. 대상 형식에 없는 것은 마지막에 알려 줍니다. MediaWiki의 핵심에는 알림 상자가 없고(라벨을 굵게 한 인용이 됩니다), reStructuredText에는 취소선이 없습니다. 파일을 저장하지 않고 일부만 가져가려면 편집기 컨텍스트 메뉴의 선택 영역을 다음 형식으로 복사(선택하지 않았다면 노트를 다음 형식으로 복사)를 사용합니다. Word, Google 문서, 이메일에 붙여 넣을 서식 있는 텍스트, GitHub Markdown, LaTeX, Typst를 고를 수 있습니다. LaTeX과 Typst는 본문만 담고 프리앰블과 제목은 넣지 않습니다. 붙여 넣을 문서에 이미 있기 때문입니다. 그 부분에 필요한 패키지와 대상 문서의 서지에 의존하는 인용은 상태 표시줄에서 알려 주며, %%…%% 주석도 가져가지 않습니다. RTF는 기타 형식 (pandoc)에 있으며 별도 프로그램인 pandoc을 거칩니다(winget install --id JohnMacFarlane.Pandoc). pandoc이 없으면 이 대상은 이유와 함께 비활성화되어 표시되고, 같은 하위 메뉴의 pandoc 설치...가 안내를 열어 설치까지 해 줍니다. pandoc이 이미 다른 곳에 있다면 안내의 이미 있음: 디스크에서 찾기...나 설정 → 코드 도구 → 외부 프로그램에서 파일을 지정하세요.
옵션을 지정해 내보내기...는 내보내기 메뉴의 첫 항목입니다. 탭의 메뉴와 파일 → 노트 내보내기는 같은 메뉴입니다. 모든 대상이 목록으로 나오고, 이름·용도·확장자로 검색할 수 있습니다(wiki로 MediaWiki, sphinx로 reStructuredText를 찾습니다). 선택한 대상에 해당하는 옵션만 보입니다. 노트에 아직 [TOC]가 없을 때의 맨 앞에 목차, 하이픈 처리와 문서가 스스로 만드는 레이블을 정하는 문서 언어, LaTeX와 Typst의 인용(살아 있는 인용 또는 본문에서 풀어 쓴 인용), 폴더의 기본값으로 만드는 확인란이 있는 Word 서식 파일, 오래된 전자책 리더나 이메일에 붙여 넣는 HTML을 위해 HTML과 EPUB의 수식을 MathML로 할지 이미지로 할지, PDF의 용지(A4 또는 레터), 그리고 이어서 Typst로 PDF 컴파일입니다. 해당되지만 쓸 수 없는 옵션은 이유와 함께 비활성화되고(폴더에 참고문헌이 없을 때의 살아 있는 인용 등), 없는 프로그램에 의존하는 대상은 그 자리에서 설치를 제안합니다. 마지막 선택은 폴더마다 기억되어 대화 상자가 두고 간 그대로 다시 열립니다. 메뉴의 직접 항목은 계속 기본값으로 내보내므로, 몇 주 전에 한 선택이 단축키로 만드는 파일을 바꾸지 않습니다. 노트에 쓴 [TOC]는 모든 대상에서 동작합니다. Word와 LibreOffice에서는 목차(Word는 열 때 업데이트), LaTeX에서는 \tableofcontents, Typst에서는 #outline(), HTML과 Markdown에서는 링크 목록이 됩니다. 선택 영역을 다음 형식으로 복사의 서식 있는 텍스트에서는 수식과 다이어그램이 이미지로 들어가고 대체 텍스트에 LaTeX 소스가 붙습니다. 어디에 붙여 넣을지 알 수 없고, Word·Google 문서·이메일에서 똑같이 보이는 것은 이미지뿐이기 때문입니다. 편집 가능한 수식이 필요하면 .docx나 .odt로 내보내세요.
폴더 전체도 나갑니다: 파일 → 폴더 내보내기...(또는 트리에서 폴더를 오른쪽 클릭)는 그 폴더의 노트를 HTML 사이트(노트마다 한 페이지, 아직 index.html 이 된 노트가 없으면 색인 페이지까지), .docx 나 .odt 모음, 또는 대상 방식에 맞춘 Markdown 트리로 바꿉니다. 하위 폴더 구조는 그대로 유지되고, 노트 사이의 링크와 위키링크는 내보낸 파일을 가리키게 되며(Word 와 LibreOffice 에서도 문서에서 문서로), 폴더 안에 있는 이미지와 첨부 파일도 같은 자리에 함께 갑니다. 폴더 바깥에 있는 것은 복사되지 않습니다. 적은 그대로 남고, 마지막 보고가 대상 없는 링크와 함께 하나씩 알려 줍니다. 대상 폴더는 비어 있어야 하고(또는 같은 이름의 파일 바꾸기를 선택합니다) 내보낼 폴더를 포함할 수 없습니다. 창 없이도: lnote folder-export --path . --format html --out site, 그리고 MCP 의 folder_export 도구. 거기서는 트랜스클루전과 [files], 그림 번호가 해결되지 않습니다. 그것을 해결하는 것은 창이기 때문입니다.
서식 편집
서식 편집(WYSIWYG): 네 번째 모드는 마크업이 아니라 노트의 결과를 보여
줍니다 — 제목은 제목 크기로, 목록은 글머리 기호와 함께, 표는 격자로, 이미지는 본문 안에.
파일은 여전히 같은 .md입니다. 파일을 쓰는 것은 Qt가 아니라 LightNote이므로
굵게, 기울임, 위키링크, 노트 삽입, 콜아웃이 왕복해도 사라지지 않습니다. 모드에 들어
갔다가 편집하지 않고 나오면 파일은 1바이트도 바뀌지 않습니다. 도구 모음은 마크다운이
표현할 수 있는 것만 제공합니다 — 제목, 굵게, 기울임, 취소선, 코드, 목록(작업 체크박스
포함), 인용, 링크, 표, 가로줄. 정렬, 들여쓰기, 글꼴 크기는 저장할 때 사라지므로 넣지
않았습니다.
표 안에서 Tab은 셀을 이동하고 마지막 셀에서는 다음 행을 만듭니다.
표 오른쪽 빈 곳(행 오른쪽을 클릭하면 커서가 놓이는 자리)에서 Enter를 누르면
표 끝에 행을 추가하고 커서는 첫 셀에 놓입니다.
셀 안에서는 Enter가 그 자리에서 줄을 바꾸고(파일에는 <br>로
들어갑니다. 마크다운 표가 받아들이는 유일한 형태입니다), Ctrl+Enter는 아래에
행을 만들고 커서를 같은 열에 놓습니다.
표 위에 마우스를 올리면 눈에 덜 띄는 손잡이가 나타납니다. 행 왼쪽에는 위아래로
옮기는 화살표 한 쌍이 있고(끌어서 다른 자리로 옮길 수도 있습니다), 열 위에는
좌우로 옮기는 한 쌍이, 아래쪽과 오른쪽 테두리에는 행과 열을 더하는 +가
있습니다. 첫 행은 머리글이라 움직이지 않습니다. 모두 오른쪽 클릭의 표에도
있습니다. 거기에는 표를 통째로 없애는 안전한 길인 표 제거도 있습니다.
상자(<details> 또는 :::)에서는 마지막 줄이 상자를
닫습니다. 이 줄은 지울 수 없는데, 아래 내용이 상자 안으로 딸려 들어가지 않게
하기 때문입니다. 텍스트를 남기고 상자만 없애려면 오른쪽 클릭의 상자 해제를
사용하세요.
Enter는 언제나 줄을 만듭니다. 빈 목록 항목에서는 줄을 늘리지 않고 목록에서
빠져나오고(Word와 같습니다), 빈 문단에서는 빈 줄을 만듭니다. 파일의 빈 줄 하나는 문단
사이의 일반적인 구분이라 빈 줄로 보이지 않습니다. 두 번째부터는 보이며, 쓴 그대로 파일로
돌아갑니다.
이미지의 오른쪽 가장자리를 끌면 크기가 바뀌고, 그 너비는
 형태로 파일에 기록됩니다. 도구 모음에는 열두 개의 컨트롤이 있습니다. 굵게, 기울임, 제목은 바로 놓이고, 나머지는 하는 일에 따라 두 메뉴로 나뉩니다. 서식은 이미 쓴 것에 작용하고(마크업, 목록, 인용, 표 정렬, 텍스트 작업), 삽입은 새것을 만듭니다(링크, 이미지, 표, 블록, 다이어그램, 수식, 강조 상자). 표 서식 맞추기와 텍스트 메뉴는 여전히 텍스트 편집기의 것이라 여기서는 이유와 함께 비활성으로 나타납니다. 마크업 흐리게는 보기 버튼으로 옮겨져, 네 모드 모두에서 쓰이는 읽기 칼럼과 타자기 스크롤 옆에 있습니다. 그리고 삽입 메뉴는 여기서도 텍스트 편집기와 같은 것을 제공합니다 — 형광펜, 위 첨자, 아래 첨자, 위키링크, 각주, 강조 상자(callout), 접을 수 있는 블록, 목차, 정의 목록 —, 이 모드가 보여 줄 줄은 알면서 만들 줄은 몰랐던 모든 것입니다.
읽기 모드가 보여 주던 것을 이제 서식 편집도 보여 줍니다. 이모지 :fire:는 🔥로, ==하이라이트==는 노란 표시로, ^2^와 ~2~는 위 첨자와 아래 첨자로, #태그는 알약 모양으로, 맨 웹 주소는 링크로 나타납니다. 파일은 적힌 그대로의 모습을 유지하며, 노트를 열어도 아무것도 다시 쓰지 않습니다. 표시된 구간 안쪽을 편집해도 마크업은 남고(하이라이트 한가운데에 입력하면 계속 하이라이트입니다), 바로 뒤에 입력한 글자는 구간 밖에 남습니다. 주석 %%…%%은 흐리게 그대로 보입니다. 숨기면 보이지도 않고 편집할 수도 없기 때문입니다.
콜아웃은 서식 편집에서도 상자가 됩니다. > [!NOTE](또는 [!TIP], [!IMPORTANT], [!WARNING], [!CAUTION])로 시작하는 인용은 읽기 모드와 똑같이 색 막대와 제목으로 나타납니다. 표시는 종류 이름으로 바뀌고, > [!TIP] 내 제목처럼 쓰면 그 제목이 됩니다. 파일에는 적은 그대로의 표시가 남고, 제목을 편집해도 콜아웃의 종류는 유지됩니다. Obsidian과 MkDocs의 콜아웃 이름도 인식합니다: [!SUCCESS], [!ABSTRACT], [!FAILURE], [!QUESTION]과 그 별칭(tldr, missing, faq)은 가장 가까운 상자로 들어가므로, 그쪽에서 가져온 노트도 그대로 색이 입혀져 보입니다. 내보낼 때는 각 형식이 아는 이름으로 바뀝니다.
새로 설치한 경우 이 모드가 기본값입니다. 이미 LightNote를 쓰던 분은 쓰던 모드가 그대로 유지되며, 바꾸려면 설정 → 마크다운 → 노트를 열 때의 기본 보기를 사용합니다. 개요에서 제목을 클릭하면 서식 편집이나 읽기 모드에서 빠져나오지 않고 현재 모드 안에서 이동합니다.
표의 열을 정렬하기. 커서를 표 안에 두면 컨텍스트 메뉴에 테이블 → 열 정렬이 나타납니다: 왼쪽 맞춤, 가운데 맞춤, 오른쪽 맞춤, 기본값. 정렬은 열 전체에 적용되며 — Markdown이 그렇게 표현합니다 — 파일에서는 구분선(:--, :-:, --:)에 저장됩니다. 기본값을 고르면 ---로 돌아갑니다. 어느 것이 적용 중인지는 메뉴의 체크 표시가 알려줍니다: 화면에서는 --- 열과 :-- 열이 똑같아 보입니다.
개요는 화면에 있는 것을 보여줍니다. 제목 목록은 지금 보고 있는 면에서 나옵니다. 서식 편집에서는 방금 입력한 제목이 텍스트 편집기까지 글이 전달되기를 기다리지 않고 바로 나타납니다. 읽기 전용에서는 ![[노트]]로 가져온 노트의 제목도 포함됩니다 — 그것도 지금 읽고 있는 내용의 일부이기 때문입니다. 두 경우 모두 항목을 누르면 올바른 제목으로 이동합니다. 그리고 분할 모드에서 스크롤은 이제 양방향입니다: 읽기 창을 스크롤하면 텍스트 편집기도 함께 움직입니다 — 반대 방향은 이미 그랬던 것처럼요.
입력하는 동안 마크업이 서식으로 바뀝니다. **테스트**라고
쓰면 굵게가 적용되고 별표는 사라집니다. *기울임*,
~~취소선~~, `코드`, 밑줄 형태도 마찬가지입니다. 줄 앞에서는
# 부터 ###### 까지가 제목이 되고,
- 와 1. 은 목록이 되며(입력한 숫자가 시작 번호입니다),
- [ ] 은 체크박스가 있는 작업이 되고, > 는 인용이
되고, ---만 있는 줄은 Enter를 누르면 가로줄이 됩니다. 무언가가 그려지는
표시는 공백에서 바로 적용됩니다. 제목만 첫 글자를 기다리는데, 빈 제목은 화면에 아무것도
보여 주지 않기 때문입니다. Ctrl+Z는 변환만 되돌려 마크업을 그대로 남깁니다 — 정말로 별표를 쓰고 싶었던
사람의 출구입니다. 붙여넣기도 변환합니다. 마크업이 있는 텍스트를 붙여넣으면 기호 없이 서식이 적용된 상태로 들어옵니다. 여기서는 입력할 때보다 규칙이 더 조심스러워 명확한 마크업일 때만 동작합니다 — 붙여넣을 때는 결과가 만들어지는 과정을 볼 수 없기 때문입니다. 덕분에 *와 _가 가득한 코드 조각은 그대로 코드로 남습니다. 코드 블록 안에서는 아무것도 변환하지 않습니다. 거기서는 마크업 자체가
주제이기 때문입니다. 전부 끄려면 설정 → 일반 → 입력하는 동안 마크업 변환. Word, Google 문서, 웹 페이지에서는 구조를 지닌 텍스트가 들어옵니다. 제목, 목록(속으로는 목록이 아닌 Word의 것까지), 표, 링크, 줄 안 코드, 그리고 언어가 붙은 코드 블록입니다. 원본의 글꼴·크기·색은 들어오지 않습니다. 마크다운은 그것을 표현하지 못하고, 남겨 두면 저장할 때 사라지는 파란 Arial 구간만 남기 때문입니다. 함께 붙여 넣은 이미지는 Word나 브라우저가 임시 폴더(저절로 비워집니다)에 둔 것이면 노트의 첨부 파일이 됩니다. 인터넷을 가리키는 이미지는 그대로 두며, 그 이미지의 컨텍스트 메뉴에서 이미지를 작업 공간에 내려받기를 고를 수 있습니다.
이미지, 링크, 위키링크
이미지와 링크. 이미지를 넣는 방법은 세 가지입니다 — 도구 모음의
삽입 → 이미지…,  입력, 그리고 파일을 끌어다
놓기. 이미지를 끌면 이미지가, .md 노트를 끌면
[[위키링크]]가 들어가고, 그 밖의 파일은 파일 이름을 표시 문구로 삼은
클릭할 수 있는 링크가 됩니다. 여러 개를 한꺼번에 끌면 각각 다른 줄에
들어갑니다. 저장되는 경로는 가능한 한 노트 폴더 기준의 상대 경로여서, 보관함을 옮겨도 노트가 계속
동작합니다. 링크의 주소는 본문에 나타나지 않습니다(보이는 것은 표시 문구입니다).
그래서 마우스를 올리면 상태 표시줄에 나오고, Ctrl+클릭으로 엽니다 — 웹 주소는
브라우저로, 로컬 경로는 LightNote에서 열립니다.
이미 만든 링크를 편집하려면 그 안에 커서를 두고 링크 버튼(또는
오른쪽 메뉴의 링크 편집…)을 씁니다. 창은 텍스트와 주소가 채워진
채로 열립니다. 링크 위의 오른쪽 메뉴에는 링크 주소 복사와, 텍스트는 남기고
링크만 푸는 링크 제거도 있습니다. [[위키링크]] 위에서는
노트 열기와 대상 복사가, #태그 위에서는 태그 검색과
태그 복사가 나옵니다. 이미지 위에서는 대체 텍스트…(서식 모드에서는 보이지
않지만 파일과 검색에는 들어갑니다)와, 손잡이를 끌어 폭을 바꾼 뒤에는 원래 크기가
나옵니다. 웹 주소인 이미지 위에서는 이미지를 작업
공간에 내려받기가 나타납니다. 파일은 노트 옆의 첨부/로 들어가고 노트는
그것을 가리키게 됩니다 — 그러지 않으면 그 URL이 계속 살아 있어야만 합니다. 그리고 가장 짧은 길이 있습니다. 텍스트를 선택한 뒤 주소를 붙여넣으면
선택한 부분이 바뀌는 대신 [텍스트](주소)가 됩니다. 두 편집 화면 모두에서
작동합니다. 내려받기 전까지 웹 이미지는 주소와 메뉴 경로가 적힌 카드로 나타납니다.
LightNote는 노트를 그리려고 네트워크에 나가지 않으며, 전에는 그 자리에 깨진 이미지의 빈
상자만 있어서 무엇을 해야 할지 알 수 없었습니다.
서식은 해제할 수도 있습니다. 서식 메뉴의 강조,
위 첨자, 아래 첨자는 커서가 그 안에 있을 때 체크 표시가 되고,
거기를 클릭하면 서식을 다시 적용하는 대신 해제합니다. 키보드에는 빠른 길이
있습니다. 서식이 적용된 구간의 끝에 커서를 두고
Ctrl+Shift+Backspace를 누르면 문자 하나가 빠진 문자 그대로의 마크업이
돌아옵니다. 굵게가 일반 텍스트의 **굵게*가 되고, 빠진
구분 기호를 채우면 다시 서식이 됩니다. 굵게, 기울임, 취소선, 코드, 강조, 위 첨자,
아래 첨자에 적용됩니다. Backspace만 누르면 한 글자를 지웁니다. 다른 곳과
같습니다.
노트를 떠나지 않고 다이어그램을 편집할 수 있습니다. 서식 편집기에서
Mermaid 다이어그램과 $$…$$ 수식은 그려진 모습으로 나타납니다. 원본에
손대려면 그 위에 커서를 두고 Ctrl+Enter를 누르거나, 오른쪽 버튼 메뉴의
이 블록 편집…을 사용하십시오. 아래쪽 막대에 텍스트가 나오고, 막대가 열려 있는 동안
노트는 잠기며, 닫는 동작(✕, Esc, Ctrl+Enter, 노트 클릭)은 적용입니다. 돌아가는 길은
Ctrl+Z입니다. 같은 메뉴의 새 노트로 추출…은 선택한 부분을 이 노트 옆의 새 노트로
쓰고 그 자리에 [[wikilink]]를 남깁니다. 마크업도 함께 가므로 제목, 목록, 표가
새 노트에 그대로 도착합니다. 필드에는 내용만 나옵니다. ```mermaid와 ``` 줄(또는 $$)은 막대 머리글의 종류 선택기가 되었고, 여기서 다이어그램·수식·코드 블록을 바꿀 수도 있습니다. Enter는 줄의 들여쓰기를 유지합니다. Mermaid처럼 들여쓰기를 쓰는 언어에서는 그것이 모든 줄의 동작이기 때문입니다. 그리고 블록의 컨텍스트 메뉴에는 Markdown 코드 복사와 이미지 복사가 있습니다 — 코드는 어떤 Markdown 편집기에 붙여도 다시 그려지고, 이미지는 메일이나 채팅에 붙일 수 있습니다. 둘 다 읽기 전용 모드에서도 쓰입니다.
AI에게 변경을 부탁하기. 블록 편집 줄이 열려 있을 때 머리글의 AI 버튼을 누르면 무엇을 바꿀지 적는 줄이 열립니다 — “처음으로 돌아가는 오류 경로를 추가해 줘”, “합을 적분으로 바꿔 줘” — 그리고 Enter로 보냅니다. 입력란 옆의 버튼은 어느 AI가 답할지를 보여 줍니다. 그 메뉴에서는 이 블록에만 적용되도록 다른 AI를 고를 수 있고(기본 AI는 그대로입니다), 전송될 내용 보기도 들어 있습니다. 한 번 볼 만합니다. AI는 이 블록뿐 아니라 노트의 제목과 절, 그리고 주변 텍스트까지 받고, 그래서 거기 적힌 내용을 다이어그램에 반영해 달라고 할 수 있기 때문입니다. 답은 입력란에 들어가고 그림은 즉시 다시 그려집니다. Ctrl+Z를 누르면 직접 써 두었던 내용이 돌아옵니다. LightNote는 자체 렌더러로 답을 검사하고, 그리지 못하면 거부된 줄과 명령을 모델에 알려 한 번만 수정을 요청합니다. 그래도 안 되면 답을 그대로 써 넣고 이유를 줄에 남기므로, 두 줄을 손으로 고치면 됩니다. 이 버튼은 다이어그램·수식·화학 구조에서만 나타납니다.
섹션을 가리키는 것과, 속성으로 태그를 다는 것.
[[노트#섹션]]은 그 노트를 해당 섹션에서 엽니다(앵커는 제목 글자를
가리킵니다). ![[노트#섹션]]은 그 부분만 가져옵니다(같거나 더 높은 수준의
다음 제목까지, 하위 제목 포함). 어떤 제목과도 맞지 않는 앵커는 상태 표시줄에서 알려 주고,
가져오기는 쓴 그대로 남습니다 — 거기에 노트 전체를 넣는 것은 말없이 다른 것을 주는 일이기
때문입니다. 그리고 프런트매터의 tags:가 이제 노트의 태그로 셈해집니다. 두 가지
표기(tags: [a, b]와 줄로 나눈 목록) 모두, 본문의 #태그와 함께
베이스, 태그 검색, 그리고 어시스턴트가 보는 것에 도달합니다. 노트 이름을 적지 않으면 앵커는 그 노트 자신을 가리킵니다: [[#결론]]은 탭을 열지 않고 그 구역으로 이동하고, ![[#결론]]은 그 구역을 지금 있는 자리로 가져옵니다. 앵커는 중첩도 됩니다: [[논문#방법#표본]]은 방법 안에 있는 표본이지, 노트에서 처음 나오는 같은 이름의 제목이 아닙니다. 세 번째 형태는 블록을 가리킵니다: ^id로 끝나는 줄(또는 블록 바로 아래에 ^id만 있는 줄)이 [[노트#^id]]의 대상입니다. LightNote는 그 식별자를 만들지 않습니다 — 여러분이 쓴 곳으로 데려다줄 뿐입니다. 그리고 노트가 아닌 대상의 앵커는 그 안의 주소입니다: [[논문.pdf#page=3]]은 PDF를 그 쪽에서 엽니다.
태그 패널. 사이드바 띠에 태그 구역이 있습니다: 노트에 있는 모든 #태그의 트리로, /로 중첩됩니다(#project/alpha와 #project/beta는 project의 가지가 됩니다). 옆의 숫자는 노트 수이며, 등장 횟수가 아니라 노트 단위로 셉니다. 태그를 고르면 그 태그를 가진 노트가 아래에 나열되고(부모는 가지의 노트도 보여줍니다), 두 번 누르면 노트가 열립니다. 패널은 색인을 읽으므로 두 출처를 모두 봅니다: 본문의 #태그와 프론트매터의 tags:. 노트 안의 태그를 Ctrl+누르면 그 태그가 선택된 채로 이 패널이 열립니다 — 예전에는 #태그의 텍스트 검색이 열렸는데, 그러면 프론트매터로 선언한 노트는 찾지 못합니다. 본문에 글자 그대로 나온 자리를 찾을 때는 전체 검색을 쓰세요.
위키링크: [[를 입력하면 작업 공간 노트로
자동완성되고, 링크는 ]]로 스스로 닫힙니다. Ctrl을
누른 채 [[노트]]를 클릭하면 해당 노트가 열립니다.
링크 패널은 노트 간의 연결을 보여줍니다. Obsidian의 삽입 그림도 보입니다: ![[사진.png]]는 이미지로 그려지고, ![[사진.png|300]]은 너비까지 반영합니다. 파일에는 여러분이 쓴 그대로가 남습니다 — 이미지 경로가 토큰 대신 저장되는 일은 없습니다. 이미지가 아닌 첨부는 카드가 됩니다: ![[논문.pdf#page=3]], ![[강의.ogg]], ![[지도.canvas]] 는 파일 이름이 적힌 상자로 나타나며 클릭할 수 있습니다. PDF 는 지정한 쪽에서 열립니다. Obsidian 의 .canvas 와 .base 에는 한 줄이 더 붙어, 파일은 폴더에 그대로 있지만 LightNote 가 그리지 않는다고 알려 줍니다. 존재하지 않는 대상은 적은 그대로 남습니다. 거기에 카드를 두면 사라진 파일을 약속하는 셈이기 때문입니다. 문장 한가운데에서는 그림이 똑같이 나타나고, 첨부 파일은 파일 이름만 남으며 Ctrl+클릭으로 열립니다. 거기에 상자를 두면 문단이 둘로 갈라지기 때문입니다. 같은 노트를 다른 이름으로: 노트 속성에 aliases: [표집, 표본 추출법] 이라고 쓰면 [[표집]] 으로 그 노트가 열립니다. 별칭은 [[ 자동 완성에도 나옵니다. 그 이름의 파일이 있으면 항상 파일이 우선합니다. 별칭은 폴더 색인에서 나오며, 앱은 작업 공간을 열 때 그 색인을 백그라운드에서 다시 만듭니다. 방금 적은 aliases: 는 다음 검색부터 적용되고, 같은 순간에 적용되지는 않습니다.
상자, 각주, 확장 마크업
풍부한 읽기: 코드 블록은 언어 라벨과 복사 링크가
있는 상자로 표시되고, ~~취소선~~과 ==하이라이트==가
렌더링되며, GitHub 스타일 콜아웃(> [!NOTE],
[!TIP], [!WARNING], [!IMPORTANT],
[!CAUTION])은 색상이 있는 상자로 바뀝니다. #해시태그
태그는 강조 표시되고 Ctrl+클릭하면 해당 태그로 검색이 열립니다.
상단의 YAML 프론트매터 블록(---)도 강조됩니다. 탭 도구
모음에는 노트를 PDF/HTML로 내보내는 버튼, 가운데 정렬을
켤 수 있는 읽기 칼럼, 노트의 표시 모드 전환 버튼이 있습니다.
Zen 모드(F11)와 타자기 스크롤은 방해 없이 글을 쓰도록
도와줍니다.
각주는 양방향으로 이동합니다. 참조 [^1]은 위 첨자 숫자로 나타나고, 그 위에서 Ctrl+클릭하면 정의로 이동합니다. 정의 쪽에서는 [^1]: 표시가 그대로 보입니다. 이동의 목적지이고, 어떤 각주를 편집하는지 알아야 하기 때문입니다. 거기서 Ctrl+클릭하면 참조로 돌아갑니다. 여러 Markdown 뷰어와 달리 편집기는 각주 번호를 다시 매기지 않고 정의를 끝으로 옮기지도 않습니다. 파일의 순서는 당신의 것입니다. Obsidian과 Pandoc의 인라인 표기 — ^[각주 본문] — 도 그려집니다. 각주를 부르는 자리에 본문을 쓰면 읽기 모드에서는 끝에 번호가 매겨져 나타납니다. 파일에는 쓴 그대로 남고, 내보낼 때는 Word·LaTeX·Typst·EPUB의 진짜 각주가 됩니다.
MkDocs 알림 상자(!!! note와 4칸 들여쓴 본문)는 서식 편집에서 적힌 그대로 유지됩니다. 본문을 그 알림 상자에 속하게 만드는 것이 바로 그 들여쓰기이기 때문에 안쪽 글자에는 서식이 붙지 않습니다. 대신 노트를 열고 저장해도 구조가 깨지지 않습니다.
닫는 표시가 있는 상자도 상자로 나타납니다. :::tip … :::(Docusaurus)와 <details> … </details>는 압축된 표기와 빈 줄을 넣은 표기 모두에서 색 막대와 제목을 얻습니다. 여는 표시는 종류 이름, 직접 쓴 제목, 또는 <summary>의 글자로 바뀝니다. 닫는 표시는 화면에서 사라지고 파일에는 남습니다. 앱이 직접 쓴 마크업이 페이지에 글자 그대로 남아서는 안 되기 때문입니다. 화면에 남는 것은 상자의 마지막 줄이며, 상자의 범위를 정하는 것이 그 줄입니다. 그 안에서 계속 쓰려고 커서를 두는 자리이기도 하고, 지울 수 없습니다. 지울 수 있다면 아래 내용이 상자 안으로 딸려 들어갑니다. 텍스트를 남기고 상자만 없애려면 오른쪽 클릭의 상자 해제를 사용하세요. 정의 목록의 :는 계속 흐려집니다. <summary> 가 제목이 되려면 <details> 와 같은 줄에 있어야 합니다. 별도의 줄에 두면 쓴 그대로 표시되고 상자는 기본 이름을 유지합니다.
인라인 HTML과 코드 블록. <kbd>, <mark>, <sub>, <sup>는 서식 편집에서도 렌더링됩니다. 태그는 사라지고 내용만 남아 읽기 모드와 같아집니다. 울타리로 감싼 코드 블록은 상자를 얻고, 모서리에 언어 이름과 복사가 표시됩니다 — 코드를 가장 많이 복사하는 서식 편집과 읽기 모드에서 쓰입니다. 울타리의 내용만(마커 없이) 가져가고 잠시 복사됨이라고 알립니다. 두 라벨 모두 코드 위를 덮지 않고 들어갈 수 있을 때만 나타납니다.
읽기의 그 밖의 기능: 맨 위의 YAML 프런트매터 블록은 나타나지 않습니다. 속성 패널에서 편집합니다. #hashtag 태그는 클릭할 수 있는 라벨이 되어 해당 태그 검색을 엽니다(편집기에서 Ctrl+클릭과 같습니다). Obsidian 방식의 주석(%%이 부분은 보이지 않습니다%%, 또는 %%만 있는 줄로 감싼 블록)은 파일에만 남습니다. GitHub 콜아웃 외에 Docusaurus(:::tip 제목 … :::)와 MkDocs(!!! note "제목" 및 들여쓴 본문, ??? note) 방식도 같은 상자로 표시됩니다. 문서 저장소를 읽을 때 편리합니다.
읽기의 새 기능: ~~취소선~~ 과
==강조== 외에도 위 첨자 ^x^, 아래 첨자
~x~, 단축 이모지(:rocket:), URL 자동 링크,
각주 [^1], 접이식 블록 <details>,
정의 목록, 작업 - [ ]/- [x](⬜/✅), 그리고
[TOC] 마커(클릭 가능한 목차)를 사용할 수 있습니다.
로컬 이미지와 인라인 HTML(<kbd>, <mark>…)도
지원합니다. 개요 패널(탭 도구 모음)은 제목을 따라가며 커서를 따라가고,
삽입 버튼(또는 컨텍스트 메뉴 → 서식/삽입)으로 어떤 서식이든
적용할 수 있습니다.
제목, 폴더, 텍스트 도구
고정 머리글(sticky scroll): 스크롤하면 맨 위 줄을 포함하는 머리글이 편집기 상단의 띠에 고정되며, 클릭하면 해당 섹션으로 이동합니다(설정 → Markdown에서 켜기/끄기). 트리에서 폴더의 컨텍스트 메뉴로 폴더 노트(프런트매터가 있는 index.md)를 만들거나 열 수 있어 색인으로 유용합니다.
폴더 노트와 파일 목록: 폴더를 더블 클릭하면 해당 index.md가 있으면 열립니다. 어떤 노트에서든 한 줄에 단독으로 있는 [files](또는 [arquivos]) 토큰은 서식 편집과 읽기에서 그 노트가 있는 폴더의 파일 목록(클릭 가능한 링크)으로 바뀝니다. [TOC]처럼 즉석에서 생성되며 파일에는 아무것도 쓰지 않습니다.
텍스트 및 줄 조작. 코드 편집기의 조작은 노트에서도 쓸 수 있습니다 — 탭 표시줄의
서식 버튼의 텍스트 하위 메뉴, 컨텍스트 메뉴, 편집 메뉴의 줄·정리 하위 메뉴를
통해: 줄(또는 선택한 여러 줄)을 위/아래로 이동(Ctrl+Shift+↑/↓),
복제(Ctrl+Shift+D), 삭제(Ctrl+Shift+L), 정렬(A→Z /
Z→A), 순서 뒤집기, 줄 합치기, 중복 줄·빈 줄 제거, 공백 제거,
대소문자(대문자/소문자/반전). 줄 번호 매기기…는 시작값, 증가폭,
앞자리 0, 구분자를 지정하는 대화 상자를 엽니다. 기본값(". ")이면
올바른 마크다운 번호 목록이 됩니다. 선택 영역이 있으면 그 부분에만(줄 단위로 확장)
적용되고, 없으면 문서 전체에 적용되며 — 항상 실행 취소 한 번으로 되돌릴 수 있습니다. 탭 표시줄에는 AI 버튼도 있습니다. AI에 질문 / AI로 편집은 코드와 같은 Ctrl+K / Ctrl+I이고, 노트에 질문은 작업 공간의 노트를 사용해 답하는 채팅입니다.
접을 수 있는 제목: 제목 왼쪽의 작은 화살표를 클릭하거나(또는 Ctrl+Shift+[ / Ctrl+Shift+]) 사용해 섹션을 접고 펼칠 수 있습니다. 보기 메뉴에는 모든 제목 접기/펼치기가 있습니다. 접기는 순전히 시각적이며 — 파일에 절대 기록되지 않습니다 — LightNote가 세션 간에 기억합니다. 개요나 검색에서 접힌 섹션 안으로 이동하면 자동으로 펼쳐집니다.
바인더: 폴더를 하나의 작품으로
무엇인가: 노트가 여러분이 선언한 순서대로 장이 되는 폴더입니다. 책, 졸업 논문, 강좌, 매뉴얼, 런북, 업무 일지 어디에나 같은 방식이 통합니다. 폴더의 컨텍스트 메뉴에서 바인더로 만들기를 고르면 현재 순서대로 노트가 놓인 화면이 열립니다. 끌어서 순서를 바꾸고 확인하세요. 순서는 폴더의 index.md에 있는 chapters: 키에 저장됩니다. 여러분의 텍스트 파일이므로 노트와 함께 옮겨 다니고 어느 컴퓨터에서나 그대로 작동합니다. 하위 폴더도 순서에 적을 수 있습니다. 그 장들은 하위 폴더가 나타난 자리에 들어가고, 하위 폴더는 자기 index.md에 자기 순서를 선언합니다 — 책이 ‘부’를 갖는 방식입니다. 하위 폴더의 표지는 문서의 페이지가 되지 않습니다. 그 수준의 순서를 선언하고 이동하는 데 쓰입니다.
이동하기: 순서를 선언하면 노트 도구 모음에 12개 장 중 3번째 장이 표시되고 양옆에 화살표가 붙습니다(Alt+PgUp과 Alt+PgDn). 가운데 단추는 모든 장을 나열합니다. 개요 패널은 두 단계가 되어 작품의 장들과, 열려 있는 장 아래에 그 제목들을 보여 줍니다. 작품의 끝에서는 해당 화살표가 흐려집니다. 순서를 선언하지 않은 폴더에서는 이 가운데 무엇도 나타나지 않고 모든 것이 전과 같습니다.
노트 템플릿: 바인더는 그 안에서 만드는 노트가 어떤 템플릿에서 시작할지 선언할 수 있습니다(template: 키). 준비된 템플릿은 다섯 가지 — 책의 장, 졸업 논문 장, 수업, 절차 단계, 일지 항목 — 이고, 하나를 고르면 Templates 폴더에 파일로 저장되어 자유롭게 고칠 수 있습니다. 바인더 안에서 만든 노트는 스스로 순서에 들어가고, 밖에서 넣은 파일은 여러분이 받아들일 때까지 순서 밖에 남습니다. 장의 이름을 바꾸면 키도 함께 고쳐지고 위치는 그대로 유지됩니다. 이미 짜인 구성에서 시작하려면 폴더 컨텍스트 메뉴의 템플릿으로 구성…이 두 키를 한 번에 씁니다 — 순서와 장의 템플릿입니다 — 이미 써 둔 표지는 그대로 둡니다. 선언된 장이 아직 없는 동안에는 개요에 한 번에 모두 만드는 버튼이 나타나며, 각 장은 폴더의 템플릿에서 태어납니다. 덮어쓰지 않습니다. 이미 있는 장은 그대로 남습니다.
하나의 문서로 합치기: 폴더를 내보낼 때 장을 하나의 문서로 합치기를 선택하면 선언한 순서대로 장이 담긴 파일 하나가 나옵니다. 텍스트를 렌더링 전에 합치기 때문에 각주와 그림과 표와 인용은 문서 전체에서 번호가 매겨지고, 한 장에서 다른 장의 그림을 가리키는 상호 참조도 작동하기 시작합니다. 선언한 순서에 없는 것은 빠지며, 보고서가 무엇인지 알려 줍니다.
속성, 테마, 확대
노트 속성: 속성 사이드 패널은 YAML frontmatter를 형식이 있는 필드(텍스트, 숫자, 날짜, 체크박스)로 보여주며 위쪽에 유형 상자가 있습니다. 유형과 속성을 지정해야 노트를 베이스로 모을 수 있습니다.
노트 테마: 속성 패널의 테마 상자는 앱의 나머지
테마를 건드리지 않고 이 노트의 모양(본문 색과 글꼴)을 정합니다.
선택은 프런트매터(theme 키)에 기록되므로 파일과 함께 이동합니다.
어떤 컴퓨터에서 열어도 노트의 모습이 같습니다.
옆의 버튼은 색을 노트 자체에 기록하므로, 그 테마가 없는 사람에게도 똑같이 보입니다.
키가 없으면 노트는 작업 공간의 테마를 따릅니다.
외부에서 온 노트가 화면 모습을 바꾸지 않게 하려면
설정 → Markdown에서 노트에 선언된 테마 존중을 끄십시오.
LightNote가 아직 모르는 테마: 테마 목록은 사이트에서 내려받는 파일 하나입니다. 따라서 마지막 업데이트 이후에 공개된 테마를 지정한 노트는 그것을 찾지 못합니다. 이때 노트는 작업 공간의 테마로 열리고 속성 패널이 이를 알리며, 사용할 수 있는 테마를 보는 지름길을 제공합니다. LightNote는 최신 목록을 스스로 찾습니다 — 세션당 한 번, 백그라운드에서 노트를 기다리게 하지 않고 수행합니다. 아무것도 내려받지 않기를 원하면 설정 → 기능에서 온라인에서 도구 카탈로그 가져오기를 끄십시오.
Ctrl++와 Ctrl+−(또는 Ctrl+마우스 휠)로 노트의 크기를 바꾸고 Ctrl+0으로 100%로 되돌립니다. 모든 노트의 글꼴을 건드리지 않고 긴 노트만 읽기 좋게 만들 수 있습니다. 편집기와 읽기는 함께 확대/축소되므로 분할 모드에서도 양쪽 크기가 같습니다. 노트에 직접 쓴 <svg>도 읽기에 그려지므로, AI가 만든 차트를 별도 파일로 만들지 않고 붙여 넣을 수 있습니다.
몇 단어이고, 어디까지인가. 상태 표시줄은 노트의 단어 수를 세고 읽는 데 걸리는 시간을 어림합니다. 그 옆의 섹션 N은 커서가 있는 섹션의 단어 수입니다 — 개요가 굵게 표시하는 것과 같은 범위로, 그 제목부터 같거나 더 높은 수준의 다음 제목까지입니다. 설정 → 메모와 글쓰기에서 하루 목표를 정하면 오늘 N/M도 나타납니다. 오늘 연 노트에서 늘어난 만큼을 셉니다. 지워도 깎이지 않고 — 자기 글을 고치는 일이 벌이 되어서는 안 됩니다 —, 열지 않은 노트는 들어가지 않으며, 자정에 0으로 돌아갑니다.
다이어그램(Mermaid)
작동 방식
Mermaid 다이어그램. 순서도(flowchart/graph, 네 방향 모두), 시퀀스 다이어그램(sequenceDiagram), 원 그래프(pie)가 담긴 ```mermaid 울타리는 읽기 모드, 내보낸 파일, 그리고 다이어그램이 가장 많이 오는 노트에 질문의 답변에서 그림으로 그려집니다. 그림은 노트 테마(글자색, 종이색, 강조색)를 따르므로 두 테마 모두에서 주변 글과 어울립니다. 서식 편집(기본 모드)에서도 다이어그램은 그려집니다. 위에는 블록 막대(복사, 편집, 삭제)가 나타납니다. 편집을 누르면 아래에 원본 막대가 열립니다. 열려 있는 동안 노트는 잠기고, 그림은 입력하는 동안 다시 그려집니다. 닫으면 적용되며(저장도 취소도 없습니다), Ctrl+Z는 변경 전체를 한 번에 되돌리고, 칸을 비우면 블록이 삭제됩니다. 분할 모드에서는 다이어그램을 클릭하면 커서가 원본 텍스트의 울타리로 이동합니다. 텍스트 편집기에서는 모두 텍스트로 남습니다. 다이어그램을 보려면 Ctrl+E를 누르세요. 목록 항목 안에서는 다이어그램(SMILES 구조, 블록 수식, [files], ![[노트]]도 마찬가지)이 서식 편집에서는 텍스트로 남고 읽기 모드에서 그려집니다. 그 자리에서는 항목 기호를 파일로 되돌릴 방법이 없기 때문입니다.
서브그래프(subgraph … end, 중첩 포함)는 제목이 붙은 상자로 그려지고, 간선은 실제 노드에서 출발해 테두리를 가로지릅니다. 서브그래프의 id를 간선의 끝점으로 쓸 수도 있습니다(sub --> X). 작성자가 선언한 색도 적용됩니다: classDef, class, :::클래스, style(채우기, 테두리, 두께, 점선, 글자색). 시작할 때는 노트 도구 모음의 삽입 → 다이어그램(Mermaid)을 쓰세요. 메뉴에는 가장 많이 쓰는 여섯 가지가 바로 놓이고, 모든 다이어그램…을 누르면 33가지 전부를 용도별로 묶어 놓은 선택 창이 열립니다. 검색(이름으로도, 다이어그램이 보여 주는 내용으로도)과 각각의 실제 그림 미리 보기가 함께 있습니다. 33가지나 되면 이름을 읽는 것보다 그림을 보는 편이 더 빠릅니다. 선택한 종류의 기본 골격이 그대로 들어옵니다. 다이어그램의 프론트매터—첫 줄 앞의 --- 블록—도 읽습니다. title은 그림 위에 그려지는 제목이 되고(본문의 title이 우선), LightNote가 아는 config 키는 다이어그램에 전달됩니다(gitGraph.mainBranchName, gantt.displayMode, 그리고 packet의 bitsPerRow, 줄을 좌우로 뒤집는 bitOrder: descending, showBits: false). 모르는 키는 무시되고 노트를 거부하지 않습니다.
시퀀스, 엔티티, 클래스, 상태
시퀀스 다이어그램에서는 participant/actor(as 포함), 화살표 종류(->>, -->>, -x, -)), 활성화(+/-와 activate/deactivate), 노트(Note left of/right of/over), loop/alt/else/opt/par 블록, autonumber가 동작합니다. 아직 그리지 못하는 것 — 다른 다이어그램 종류 — 은 지금처럼 색이 입혀진 코드 블록으로 나타납니다. 서브그래프 안의 direction과 linkStyle은 무시됩니다. Mermaid v11의 노드 문법(A@{ shape: rounded, label: "텍스트" })도 읽고, v11 도형 카탈로그를 그립니다. doc, lin-doc, docs, tag-rect, win-pane, hourglass, bolt, flag, das 등 저마다 이름이 말하는 기호가 되며, 어느 것도 사각형으로 대체되지 않습니다. 문서 대신 사각형을 그리는 것은 다른 그림을 보여 주는 일이기 때문입니다. Mermaid에 없는 이름은 줄 번호와 함께 코드 블록으로 되돌아갑니다. 간선 ID(A e1@--> B)와 e1@{ animate: true }는 받아들이되 무시합니다. 애니메이션은 그리지 않습니다. 타입을 지정한 참여자(participant DB@{ "type": "database" })는 레인 위에 UML 기호를 그립니다 — boundary, control, entity, database, queue, collections — 그곳에 선언한 "alias"는 as와 같은 구실을 합니다.
erDiagram도 그려집니다. 각 엔티티는 속성이 있는 상자가 되고, 관계의 양쪽 끝에 카디널리티가 표시됩니다(||--o{, }o--||, |o, |{). --는 식별 관계, ..는 비식별 관계입니다.별칭 p[Person]은 관계가 참조하는 id를 바꾸지 않고 상자 이름만 정합니다. subgraph … end도 여기에서 쓸 수 있습니다. 안의 엔터티들은 제목이 있는 상자에 들어가고, 서브그래프는 중첩되며, 상자의 id를 관계의 끝으로 쓸 수 있습니다(CLIENTE ||--o{ Vendas : faz). 이때는 같은 이름의 엔터티가 아니라 경계에 붙습니다.
classDiagram도 마찬가지입니다. 세 구획으로 나뉜 상자(이름, 속성, 메서드. 메서드의 괄호로 구분됩니다), 독립된 줄의 <<interface>>, 상자가 되는 namespace, 그리고 여섯 가지 관계(<|--, *--, o--, -->, ..>, ..|>)를 지원합니다. 방향에 주의하세요. A <|-- B에서 삼각형은 A 쪽에 붙고, 상속하는 쪽은 B입니다. 따옴표로 쓴 카디널리티는 양쪽 끝에 표시됩니다("1" --> "*"). 제네릭 List~T~은 List<T>로 표시되며, 멤버에서도 마찬가지입니다. 롤리팝 인터페이스(bar ()-- foo)는 ()가 있는 쪽 상자 위에만 원을 그리고, 관계선은 그 원에 닿습니다. namespace도 중첩되며, 안쪽 } 다음에 선언한 클래스는 바깥쪽 namespace로 돌아갑니다.
stateDiagram-v2는 상태 기계를 그립니다. [*]는 시작(채워진 원)과 끝(고리가 있는 원), state X { … }는 상자, <<fork>>/<<join>>는 막대, <<choice>>는 마름모가 됩니다. 복합 상태 안의 --는 동시 영역을 구분하며, 파선으로 표시됩니다.
타임라인, 여정, 사분면, 간트
timeline도 그려집니다. 각 기간은 타임라인의 열이 되고 그 아래에 사건이 쌓이며, section은 시대를 색 띠로 묶습니다. 여러 사건을 적는 두 가지 표기가 모두 됩니다 — 같은 줄에 쌍점으로 나열(2004 : Facebook : Google)하거나 다음 줄에 이어 쓰기(: 다른 사건). 그리고 여기서는 title, section, direction이 아닌 모든 줄이 자유 문장입니다. direction TD(세로 타임라인)는 아직 그리지 못하고 코드 블록으로 남습니다.
journey(사용자 여정)도 그려집니다. 각 작업은 여정 축 위의 상자가 되고, 1에서 5까지의 점수가 그 표정을 위아래로 옮깁니다. 그 표정들이 그리는 굴곡이야말로 이 다이어그램이 보여 주려는 것입니다. section은 단계를 묶고, 참여자는 작업 위의 색 표식이 되며 범례는 왼쪽에 나옵니다. 여기서 문법은 timeline과 달리 엄격합니다(작업: 점수: 참여자, 참여자). 이름과 점수 짝이 없으면 표정을 놓을 자리가 없으므로, 형식이 어긋난 줄이나 1~5 밖의 점수는 줄 번호와 함께 다이어그램을 거부합니다.
그리고 quadrantChart는 사분면 평면을 그립니다. x-axis와 y-axis가 각 축의 양 끝에 이름을 붙이고(--> 오른쪽은 생략할 수 있습니다), quadrant-1부터 quadrant-4가 각 영역에 라벨을 붙이며, 점은 이름: [x, y] 형식으로 x와 y는 0에서 1까지입니다. 번호에 주의하세요. 읽는 순서가 아니라 좌표평면의 번호입니다 — quadrant-1은 오른쪽 위이고 거기서 시계 반대 방향으로 갑니다. y = 1은 맨 위입니다. 점의 색과 반지름은 직접(P: [0.5, 0.5] radius: 10, color: #109060) 주거나 클래스(P:::클래스와 classDef)로 줄 수 있고, 직접 지정이 클래스를 이깁니다. 0에서 1을 벗어난 좌표는 잘리지 않고 줄 번호와 함께 다이어그램을 거부합니다. 좌표는 평면 위의 위치라서, 자르면 쓰지 않은 사분면에 점이 들어가기 때문입니다.
gantt는 일정표를 그립니다. dateFormat은 여러분이 적는 날짜의 형식(기본값 YYYY-MM-DD)을, axisFormat은 축 라벨의 형식(%m/%d)을 정하고, section은 작업을 띠로 묶습니다. 각 작업은 텍스트 : 표시, id, 시작, 끝 형식입니다. 표시인 done, active, crit, milestone은 맨 앞에 오며 함께 쓸 수 있고, 시작은 날짜나 after 다른id, 끝은 날짜, 기간(5d, 2w, 3h, 45m) 또는 until 다른id입니다. 항목이 하나뿐이면 앞 작업이 끝난 지점에서 시작합니다. after는 노트의 뒤쪽에 선언된 작업도 가리킬 수 있습니다. 반면 어디에도 없는 id나 순환 의존은, 막대를 오늘 날짜에 놓는 대신 줄 번호와 함께 다이어그램을 거부합니다. excludes weekends(excludes monday나 특정 날짜도 됩니다)는 제외된 날만큼 각 작업의 끝을 뒤로 밉니다. 그래서 막대 길이가 달라집니다. includes 2026-03-07은 주말보다 우선해, 그 토요일은 일하는 날임을 알립니다. 마일스톤은 마름모로 나오고, todayMarker off는 오늘 선을 없앱니다. 여러 작업을 같은 줄에 쌓는 displayMode compact도 그립니다. 여기서는 작업이 차지하는 범위(라벨 포함)가 이미 있는 것과 닿지 않을 때만 같은 줄을 나눗니다. vert 표시(개시 : vert, v1, 20:15, 0m)는 순간을 차트 전체를 가로지르는 수직선으로 그리고, 줄을 차지하지 않으며, 라벨은 축 아래에 놀입니다. dateFormat X(또는 x)는 날짜를 초(또는 밀리초) 단위의 유닉스 시간으로 읽고, 축에서는 %s/%Q가 다시 쓴다. Mermaid가 모르는 tickInterval(1decade)은 그쪽처럼 조용히 무시되고 축은 자동으로 돌아갑니다.
마인드맵, 요구사항, Git, C4
mindmap에서는 계층이 들여쓰기에서 나옵니다. 항목의 단계는 그 본문이 시작하는 열이며, 중괄호도 화살표도 쓰지 않습니다(탭은 다음 4의 눈금까지로 셉니다. 편집기와 같은 계산입니다). 첫 항목이 루트이고, 같은 열에 항목이 하나 더 오면 두 번째 루트가 되므로 줄 번호와 함께 다이어그램을 거부합니다. 각 항목은 모양을 선언할 수 있습니다 — [사각형], (둥근 모서리), ((원)), {{육각형}}, ))폭발((, )구름(. 구분자가 없으면 둥근 모서리로 나옵니다. ::icon(...)과 :::클래스는 인식한 뒤 무시합니다(아이콘 글꼴을 함께 배포하지 않고, 클래스는 여기에 없는 외부 CSS를 가리키기 때문입니다). 그림은 좌우 두 방향입니다. 루트를 가운데에 두고 가지를 양쪽으로 나누며, 가지마다 고유한 색을 갖고 자손이 그 색을 물려받습니다. 잔가지는 깊이가 깊어질수록 가늘어집니다. 이것은 나무이지, 머메이드처럼 힘 시뮬레이션이 아닙니다. 마인드맵에서는 계층이 곧 내용이라 위치에서 읽혀야 하고, 게다가 테마를 바꾸면 그림을 다시 그리므로 무작위 초기 위치에서 수렴하는 배치는 지도 전체를 매번 다시 배열해 버립니다.
treeView(treeView-beta)는 프로젝트의 폴더 트리를 그리며 두 가지 표기를 받습니다. 들여쓰기(직접 타이핑할 때)와 tree 명령 그 자체의 문자(├──, │, └──)입니다. 뒤의 표기 덕분에 터미널 출력을 그대로 붙여넣을 수 있습니다 — 거기서는 들여쓰기만으로는 부족합니다. │와 공백은 같은 칸을 차지하지만 가지가 이어진다고 말하는 것은 앞의 것뿐이기 때문입니다. 끝의 슬래시는 폴더를 표시하고(src/), 공백이 있는 이름은 따옴표로 묶으며, ## 텍스트는 줄 끝에 주석을 달고, :::highlight는 이름을 강조합니다. icon(...)은 마인드맵의 ::icon()처럼 인식하되 무시합니다. 아이콘 팩은 JavaScript로 Iconify에서 오고, Mermaid 자체도 기본값으로는 그리지 않습니다.
ishikawa(ishikawa-beta)는 원인 분석의 생선가시도를 그립니다. 첫 항목이 결과(오른쪽 머리)이고, 다음 단계가 범주(비늘), 그 안쪽 두 단계가 원인과 하위 원인입니다. 단계는 셋까지이며, 네 번째는 줄을 가리키며 거부합니다 — Mermaid에 없기 때문입니다. 비늘은 중심선 위아래로 번갈아 미쳐서 이웃한 두 범주의 글자가 겹치지 않으며, 원인을 적은 순서는 양쪽 모두 위에서 아래로 읽힙니다.
venn(venn-beta)는 서로 겹치는 집합을 그립니다. set A["바람직함"]으로 하나를 선언하고, union A,B["만들 수 있음"]으로 공통 영역에 이름을 붙이며(합집합은 교차하는 집합들로 부릅니다), 바로 아래의 text A1["React"]는 그 영역 안에 항목을 넣습니다. 집합은 셋까지이고, 네 번째는 줄을 가리키며 거부합니다. 원 네 개로는 모든 영역을 만드는 배치가 없고, “거의 맞는” 그림은 선언한 영역을 숨기기 때문입니다. 라벨 뒤의 :숫자(set A["Alpha"]:20)는 원의 크기를 조절하고(넓이가 숫자를 따릅니다) 교집합은 바꾸지 않습니다. 교집합까지 비례하는 것은 다른 그림(오일러 다이어그램)이며 수치 최적화가 필요합니다. style A fill:#ff6b6b는 집합을 칠하고, 쉼표를 쓰면(style A,B color:#333) 그 집합들의 합집합에 적용됩니다.
cynefin(cynefin-beta)는 의사결정을 분류하는 스노우덴 틀을 그립니다. 다섯 영역은 이름이 고정이고(complex, complicated, chaotic, clear, confusion) 위치도 고정입니다(네 사분면과 가운데의 confusion). 고르는 것은 각 영역 안에 들어갈 내용뿐입니다. 항목은 한 줄에 하나씩 따옴표로 묶고, complex --> complicated : "패턴 파악"은 영역 사이의 전환을 그립니다. 다섯 밖의 이름은 줄을 가리키고 있는 이름을 알려 주며 거부합니다. clear와 chaotic의 경계는 물결모양으로 나옵니다. 모델에서 그곳은 낭러러지이기 때문이며, 여기서 물결은 항상 같아서 여는 때마다 그림이 바뀌지 않습니다.
swimlane(swimlane-beta)은 담당별 레인으로 나눈 프로세스를 그립니다. 문법은 순서도와 같고(같은 도형, 화살표, 라벨, classDef), subgraph은 상자가 아니라 레인이 됩니다. 모든 노드는 어느 레인에든 들어가야 합니다 — 밖에 남은 노드는 누구의 일인지 말할 수 없어 거부합니다 — 레인 안의 레인도 거부합니다. LR에서 레인은 행이고 흐름은 오른쪽으로, TB에서는 열이고 흐름은 아래로 갑니다. 흐름 상의 위치는 각 작업까지의 가장 긴 경로로 정해지고, 띄는 주인의 것입니다. 작업은 그렇게 하는 편이 더 빽빽해지더라도 절대 자기 레인을 벗어나지 않습니다.
agentflow(agentflow-beta)는 AI 에이전트 흐름을 그리며, 실질적으로 순서도의 다른 어휘입니다. 화살표는 같고, flow id["이름"] … end이 subgraph 역할을 하며(중첩도 됩니다), global … end은 모든 에이전트가 참조하는 것을 담고, connector id["이름"]은 외부 시스템을 선언합니다. 정말 달라지는 것은 각 단계의 역할을 말하는 도형입니다: @{ shape: input }, task, tool(도구 호출), decision, refdoc(참조 문서), action(최종 행동). 문서는 -.-로, 화살표 없이 연결합니다. 참조할 뿐 흐름의 단계가 아니기 때문입니다. 에이전트를 글로 설명하는 키(instruction, params, returns, connectorRef, protocol, endpoint)는 읽되 그림에서는 무시합니다. 이 도형 이름들은 여기에서만 유효하고, flowchart에서는 거부됩니다. 거기서는 Mermaid에도 없기 때문입니다.
usecase(usecase-beta)는 UML의 유스케이스 다이어그램을 그립니다. actor로 선언한 것은 사람 모양이 되고, 나머지는 모두 유스케이스로 타원으로 그려집니다. 바로 이 구분을 보이려고 있는 그림입니다. 유스케이스는 Id("라벨"), Id[라벨], Id만, 또는 따옴표 문자열만으로도 쓸 수 있습니다. systemBoundary "이름" … end은 시스템 경계이고, note for X "텍스트"는 메모를 달아 둡니다. 관계는 UML 그대로입니다: -->는 연관, --|>는 일반화(빈 삼각형이 일반적인 쪽에), A ..> : include B(대상은 콜론 뒤에)는 점선 «include»이며 extend도 같습니다. 그림을 바꾸지 않는 행위자 설명 키(type, business, icon)는 읽되 무시하고, <<스테레오타입>>은 라벨에 들어갑니다. json 노드는 아직 그리지 않으며 코드 블록으로 남습니다. 여러 줄에 걸친 데이터 트리이기 때문이며, 거기서 JSON은 그대로 읽힙니다.
wardley(wardley-beta)는 워들리 맵을 그립니다. 세로축은 사용자에게의 가시성(위쪽이 사용자가 보는 것), 가로축은 Genesis에서 Commodity까지의 진화도입니다. 쌍의 순서에 유의하세요: component 차 [0.63, 0.81]는 [가시성, 진화도]이며 첫 번째 숫자가 세로축입니다. 반대로 읽으면 그림은 그대로 그려지면서 다른 전략을 말하게 됩니다. anchor는 위에 있는 사용자, A -> B는 사슬(이름에 공백을 넣을 수 있고 따옴표는 선택), A +> B는 흐름(더 굵으며 +<>는 양방향, +'텍스트'>는 라벨 포함), evolve 주전자 0.62는 가야 할 위치까지의 점선 화살표입니다. 그 밖에 evolution(축 단계 이름), size, (build)/(buy)/(outsource)/(market), (inertia)(저항 막대), label [dx, dy], pipeline X { … }, note, accelerator/deaccelerator, 번호가 붙은 annotation과 annotations 범례를 쓸 수 있습니다.
eventmodeling은 이벤트 모델링을 그립니다. 세 개의 레인으로 된 타임라인으로, 위가 화면, 가운데가 명령(과 읽기 모델), 아래가 이벤트입니다. 각 줄은 tf 02 cmd AddItem 형태이며, 숫자는 시점(열), 가운데 단어는 레인을 고르는 유형입니다 — ui, cmd/command, pcr/processor, rmo/readmodel, view, evt/event(긴 형태도 같습니다). 레인은 선언하지 않습니다. 그것이 바로 이 방법론이기 때문입니다. rf(resetframe)는 새 슬라이스를 열며 점선 구분선이 들어갑니다 — 이야기가 다시 시작되는 지점입니다. 스키마는 중괄호({ description: string })나 data … { … } 블록 참조([[Data]])로 주며, 블록은 뒤에 와도 됩니다. ->> 02 ->> 03은 그 프레임을 먹여 주는 시점들을 번호로 연결합니다.
railroad(railroad-ebnf-beta, -abnf-beta, -peg-beta, railroad-beta)는 문법을 철로도처럼 그립니다. 규칙 하나하나가 손가락으로 따라갈 수 있는 경로가 되고, 쓸 수 있는 것이 곳 갈 수 있는 경로입니다. 규칙은 이름 = 식 ;(PEG은 이름 <- … ;)이며 여러 줄에 걸쳐도 됩니다 — 닫는 것은 ;입니다. 따옴표 문자열은 단말(캡슐 모양), 맨 이름은 다른 규칙(사각형)입니다. |(또는 /)는 선택, ?는 선택적, +는 한 번 이상, *는 영 번 이상이고 ( ), [ ], { }는 묶기·선택·반복입니다. ABNF는 반복을 앞에 두고(1*( ALPHA / "-" ), *DIGIT), PEG은 !x·&x 술어를 받으며(입력을 소비하지 않아 라벨로 들어갑니다), railroad-beta는 함수 표기(sequence(choice(terminal("+"), …)))를 받습니다. 넷은 모두 같은 그림으로 떨어집니다: 위로 지나가는 길이 선택적, 아래로 도는 고리(뒤로 향한 화살표)가 반복입니다.
requirementDiagram은 요구사항과 요소를 칸이 나뉜 상자로 그립니다. 선언한 종류(requirement, functionalRequirement, performanceRequirement, interfaceRequirement, physicalRequirement, designConstraint)는 이름 위에 겹화살괄호로 표시되고, id·text·risk·verifymethod 항목이 각각 한 줄이 됩니다(element에서는 type과 docref). 관계(satisfies, traces, derives, verifies, refines, copies, contains)는 a - satisfies -> b로 쓰거나 뒤집어서 b <- satisfies - a로 쓰며, 뒤집은 형태에서는 먼저 쓴 이름이 도착점입니다. 실선은 contains뿐이고 기호는 담고 있는 쪽에 붙습니다. 나머지는 점선이고 화살표는 도착점에 있습니다. 공백이 들어간 이름은 따옴표로 묶습니다.
gitGraph는 저장소의 기록을 그립니다. commit마다 시간이 한 칸 나아가고, branch 이름은 새 줄기를 열면서 그대로 그 줄기에서 작업을 이어갑니다(git switch -c와 같습니다). checkout은 다른 줄기로 돌아가고 merge는 둘을 합칩니다. 속성은 콜론으로 씁니다: commit id: "텍스트" tag: "v1" type: HIGHLIGHT(REVERSE도 됩니다), branch 이름 order: 2는 줄기의 차례를 바꿉니다. cherry-pick id: "…"에는 실제로 있는 커밋의 id가 필요합니다. 모양이 종류를 말합니다 — 보통 커밋은 채운 점, 강조한 커밋은 사각형, 되돌린 커밋은 X가 들어간 원, 병합은 이중 고리, cherry-pick은 잘린 원입니다. 테마에 따라 팔레트의 두 색이 비슷해 보일 수 있어서, 그때는 모양만이 둘을 갈라 줍니다. LR:(기본값), TB:, BT:는 시간 축의 방향을 바꿉니다. 없는 브랜치를 checkout/merge하면 요청하지 않은 줄기를 만들어 내는 대신 줄 번호를 알려 주고 그리기를 그만둡니다.
C4 계열(C4Context, C4Container, C4Component, C4Dynamic, C4Deployment)도 그립니다. 여기서는 모든 것이 매크로라서 문법에 화살표가 하나도 없습니다. 요소마다 종류를 겹화살괄호로 위에 적고, 이름을 굵게, 설명을 아래에 둔 상자가 됩니다: Person(alias, "이름", "설명"), System, Container, Component과 Db·Queue·_Ext 변형입니다. Container와 Component에서는 세 번째 인자가 기술이고(Container(app, "App", "C++/Qt", "하는 일")), 나머지에서는 세 번째가 곧 설명입니다. 경계(Boundary, Enterprise_Boundary, System_Boundary, Container_Boundary, C4Deployment의 Node)는 중괄호를 열고 제목이 붙은 상자가 되며, 중첩도 됩니다. 연결은 Rel(a, b, "레이블", "기술")로 쓰고, BiRel은 양쪽 끝에 화살표를 두며 Rel_Back은 반대쪽을 가리킵니다. C4Dynamic은 관계에 나온 순서대로 번호를 붙입니다. 위치 힌트(Rel_U, Rel_D, Rel_L, Rel_R)와 Update…Style은 받아들이되 무시합니다. 배치는 다른 다이어그램과 같은 레이아웃이 정하고, 색은 노트 테마에서 나오기 때문입니다. 선언하지 않은 별칭을 가리키는 관계는, 쓰지도 않은 상자를 만들어 내는 대신 줄 번호를 알려 주고 그리기를 그만둡니다.
보드, 차트, 패킷
kanban에서는 들여쓰기가 문법이고 단계는 둘입니다. 바깥쪽이 레인, 안쪽이 카드입니다(id[레이블], 또는 글자만). 카드 뒤의 @{ ticket: LN-9, assigned: 'ana', priority: 'High' }는 카드 본문에 들어가지 않습니다. 티켓과 담당자는 전용 아래줄로 가고, 우선순위(Very High, High, Low, Very Low)는 왼쪽 띠의 색이 되어 따뜻한 색에서 찬 색으로 이어집니다. 레인은 모두 같은 줄에서 끝나고, 카드가 없는 레인도 그대로 보입니다. 빈 칸임을 알려 주는 것이 바로 그 레인이기 때문입니다. 이것은 노트 안에서 흐름을 설명하기 위해 그려 놓은 보드입니다. 카드를 끌어다 놓으며 실제로 작업하는 보드는 앱 자체의 작업 패널입니다.
xychart(xychart-beta)는 두 축 위에 막대와 꺾은선을 그립니다. x-axis "제목" [1월, 2월, 3월]로 분류를 주고(공백이나 쉼표가 든 이름은 따옴표로 감쌉니다), y-axis "제목" 0 --> 100으로 눈금 범위를 정하며, bar [10, 40, 90]이나 line [20, 30, 80]이 각각 계열을 하나씩 더합니다. 값은 분류마다 하나씩, 분류를 선언한 순서대로 대응합니다. 값의 개수가 맞지 않는 계열은 해당 줄을 알려 주며 그리기를 거부합니다. 막대가 다른 분류로 밀려나서 그래프가 다른 이야기를 하게 되기 때문입니다. y-axis가 없으면 눈금은 데이터에서 나오고, 데이터가 그 아래로 내려가지 않는 한 0에서 시작합니다. 가장 작은 값에서 시작하면 막대 사이의 차이가 과장되는데, 그건 아무도 고른 적이 없습니다. 범위를 선언했다면 범위를 벗어난 값은 그림 밖으로 삐져나가는 대신 거부됩니다. x-axis는 연속 범위(0 --> 100)도 받으며, 쓰지 않으면 분류는 번호가 됩니다. 막대 계열이 둘이면 나란히 그립니다. mermaid처럼 겹치면 뒤의 계열이 사라지기 때문입니다. xychart-beta horizontal은 아직 그리지 못하고 코드 블록으로 남습니다. 세로로 그리면 축이 뒤바뀐 그래프를 건네는 셈이기 때문입니다. 계열에 이름을 붙일 수 있습니다(bar "공개" [10, 40], line "비공개" [20, 30]). 이름은 플롯 위의 범례가 되고, 칠한 막대·점이 있는 선처럼 각 계열의 모양을 그대로 쓴다 — 색깔만으로는 구분되지 않기 때문입니다. 선 계열에서는 값에 라벨을 달 수 있으며([540 "PaLM", 65]) 점 위에 그려집니다. 막대에서는 Mermaid처럼 무시됩니다.
radar(radar-beta)는 중심에서 뻗어 나가는 축 위에 한 개 이상의 곡선 프로필을 그립니다. axis a["레이블"], b, c로 축을 선언하고(이 줄은 여러 번 쓸 수 있습니다), curve x["이름"]{80, 60, 90}로 축마다 값을 하나씩 줍니다. 값은 축을 선언한 순서대로 대응합니다. 이름을 쓰는 형태({a: 80, c: 90, b: 60})도 됩니다. 방향에 주의하세요: 첫 번째 축은 위를 향하고 도는 방향은 시계 방향입니다. max와 min은 눈금 범위를 정하며(max가 없으면 읽어 들인 가장 큰 값이 됩니다), 범위를 벗어난 값은 잘라내지 않고 해당 줄을 알려 주며 그리기를 거부합니다. ticks는 고리 개수를 바꾸고, graticule circle은 고리를 원으로 만들며, showLegend false는 범례를 없앱니다. 값의 개수가 축의 개수와 맞지 않는 곡선도 거부합니다. 그것은 덜 그려진 그림이 아니라 다른 그림이기 때문입니다.
packet(packet-beta)은 패킷의 비트 배치를 그립니다. 각 필드는 0-15: "레이블"처럼 쓰고, 범위는 양끝을 모두 포함합니다. 0-15는 열여섯 비트입니다. 비트 하나는 4: "레이블"로 쓰고, 상대 형식 +16: "레이블"은 다음 열여섯 비트를 가져오므로 중간에 필드를 넣어도 전부 다시 셀 필요가 없습니다. 필드는 빈틈없이 이어져야 합니다. 빈틈이나 겹침이 있으면 해당 줄을 알려 주며 그리기를 거부하는데, 둘 다 뒤에 오는 모든 것을 조용히 밀어내기 때문입니다. 한 줄은 32비트이고, 줄바꿈을 넘어가는 필드는 두 줄에 걸쳐 그려지며 레이블은 더 넓은 쪽에 들어갑니다. 격자 위의 숫자는 각 필드가 시작하는 위치와 각 줄의 마지막 비트를 나타냅니다.
격자, 면적, 아키텍처, 흐름, ZenUML
block(block-beta)은 상자의 격자를 그리며, 위치는 쓴 순서로 정해집니다. columns 3으로 열 수를 정하고(쓰지 않으면 모두 한 줄에 놓입니다), 각 상자는 순서도와 같은 모양(a["레이블"], b(("원")), c{"마름모"})을 받으며, a:2는 상자가 두 열을 차지하게 하고 space(또는 space:2)는 빈자리를 남깁니다. block:id … end는 격자 안에 격자를 넣고 자체 columns를 가지며, 바깥이 하나의 상자가 됩니다. 화살표는 순서도의 것(a --> b, 레이블은 a -- "글" --> b)이지만, 여기서는 이미 선언된 블록을 가리킬 뿐입니다. 없는 이름을 가리키는 화살표는 쓰지도 않은 칸에 상자를 만들어 내는 대신, 해당 줄을 알려 주며 그리기를 거부합니다. 열 사이의 간격은 화살표 레이블이 들어갈 때까지 넓어져서 옆 상자에 닿지 않습니다. 블록 화살표(a<["이동"]>(right))는 화살표 모양의 상자입니다. 방향은 괄호 안에 적고(right, left, up, down, 가로 둘은 x, 세로 둘은 y) 조합할 수 있습니다((x, down)). 없는 방향은 아무 화살표로 바뀌는 대신 줄을 가리키며 다이어그램을 거부합니다.
treemap(treemap-beta)은 넓이 지도를 그립니다. 각 사각형의 넓이는 값에 비례하고, 들여쓰기로 중첩되며 깊이에 제한이 없습니다. 잎은 값을 선언하고("이름": 12) 구역은 아무것도 선언하지 않습니다. 구역의 값은 자식의 합이며, 자체 합계를 허용하면 자기 구성에 대해 거짓말하는 사각형이 생기므로 해당 줄을 알려 주며 그리기를 거부합니다. 공백이나 쌍점이 든 이름은 따옴표로 감싸고, classDef와 :::클래스로 색을 줍니다. 배치는 squarified로 사각형을 정사각형에 가깝게 유지합니다. 늘 같은 축으로만 자르면 눈으로 비교할 수 없는 띠가 되는데, 넓이를 비교하는 것이 이 그림이 하는 유일한 일이기 때문입니다. 레이블과 값은 사각형 안에 온전히 들어갈 때만 나타납니다. 가장자리에서 잘리면 아무것도 알려 주지 못하기 때문입니다.
architecture(architecture-beta)는 서비스와 그 사이의 연결을 그립니다. service api(server)[API]로 구성 요소를 선언하고, group gureum(cloud)[클라우드]로 경계를 열며, 접미사 in gureum은 서비스를 그 안에 넣고(그룹은 중첩됩니다), junction j는 연결을 꺾을 모서리를 만듭니다. 위치를 정하는 것은 연결의 「변」입니다. a:R -- L:b는 a의 오른쪽 변을 b의 왼쪽 변에 붙이므로, b는 a의 오른쪽에 놓입니다. L, R, T, B를 쓸 수 있고, 화살촉은 <나 >가 있는 쪽에 나타납니다(-->, <-->, 화살촉 없는 --). 끝에 붙인 {group}은 선을 안쪽 상자가 아니라 그룹의 경계로 보냅니다. 아이콘은 Mermaid가 기본으로 담고 있는 다섯 개입니다 — cloud, database, disk, internet, server. 그 밖의 이름은 해당 줄을 알려 주고 쓸 수 있는 이름을 제시하며 그리기를 거부합니다. 나머지(logos:aws-lambda 같은 것)는 Iconify에서 오며, 페이지를 게시하는 쪽이 자바스크립트로 아이콘 팩을 등록한 곳에서만 나타나는데 GitHub조차 등록하지 않습니다. 여기서 받아들이면 다른 어디에서도 재현되지 않는 그림을 건네는 셈입니다. align row a b c(또는 align column)는 적은 구성원들을 같은 줄—또는 같은 열—에 놓습니다. 없는 이름은 이유를 말하지 않은 채 배치를 그대로 두는 대신 줄을 가리키며 다이어그램을 거부합니다.
sankey(sankey-beta)는 흐름 다이어그램을 그리며, 띠의 두께가 곧 값입니다. 본문에는 화살표가 하나도 없고 세 열짜리 CSV(출발,도착,값)로, 한 줄이 연결 하나입니다. 같은 이름을 양쪽 끝에 적으면 흐름이 이어집니다. 쉼표가 든 이름표는 따옴표로 감싸고, 그 안의 따옴표는 두 번 적습니다("고정 ""비용"""). 같은 출발/도착 짝이 반복되면 더해집니다. 노드 막대의 높이는 들어오는 양과 나가는 양 가운데 큰 쪽입니다. 받는 것보다 많이 나눠 주는 노드에서 나가는 띠가 테두리를 넘지 않게 하기 위해서입니다. 열은 각 노드까지의 가장 긴 경로에서 정해지고, 나가는 곳이 없는 노드는 마지막 열로 갑니다. 0 이하의 값, 자기 자신으로 가는 연결, 순환은 줄을 짚어 다이어그램을 거절합니다. 순환에는 가장 긴 경로가 없고, 그리려고 연결 하나를 끊으면 적지 않은 흐름을 보여 주게 되기 때문입니다. 여기에는 title이 없습니다. 본문이 순수한 CSV라서, 받아들이면 LightNote에서는 잘 그려져도 Mermaid에서는 문법 오류가 됩니다.
zenuml은 같은 그림을 위한 또 다른 문법— 시퀀스 다이어그램 —으로, 화살표 대신 코드처럼 씁니다. 동기 호출은 대상만 적고(Store.register(item)), 보내는 쪽은 그것을 감싼 블록입니다. Store.register() { Stock.reserve() } 안에서 Stock을 부르는 것은 Store입니다. 가장 바깥에서 부르는 것은 시작자이며 @Starter(Ana)가 이름을 줍니다. 적지 않으면 막대 인형 User가 쓰이고, 어떤 호출이 필요로 할 때만 나타납니다. 비동기 메시지는 A->B: 텍스트(열린 화살촉, 아무도 기다리지 않음)이고 A->B.method()는 보내는 쪽을 직접 적은 동기 호출입니다. {}가 중첩하고, return x는 감싼 호출을 한 쪽으로 돌아가며(중간의 if는 영향을 주지 않습니다), x = A.m()은 같은 응답의 다른 표기, new A(args)는 생성, // 주석은 다음 메시지 위의 메모가 됩니다. 블록은 if/else if/else, while/for/forEach/loop, opt, par, try/catch/finally이며, } else {는 새 틀을 여는 대신 같은 틀을 구분선으로 이어 갑니다. @Actor는 막대 인형을 그리고, 다른 주석자(@Database, @Boundary 등)는 이름표의 스테레오타입(«Database» Stock)이 됩니다. 여기서는 그 아이콘들을 그리지 않기 때문이며, 이름은 그대로 보입니다. 공백이 든 이름은 따옴표로 감쌉니다. 이 블록이 어디로 가는지 유의하세요. Mermaid에서 zenuml은 페이지가 JavaScript로 등록해야 하는 외부 다이어그램이고 GitHub은 그렇게 하지 않으므로, 여기서 그려지는 같은 노트가 그곳에서는 코드 블록으로 남습니다.
그리고 LightNote가 다이어그램을 읽지 못하면 블록 바로 아래에 이유와 줄 번호를 알려 줍니다. 아직 그리지 않는 종류에는 경고가 나오지 않습니다. 작성한 내용에 잘못이 없기 때문입니다.
수식과 화학(LaTeX)
수식(LaTeX)
수식(LaTeX). 문장 가운데의 $E = mc^2$와 블록으로 쓴 $$…$$는 읽기 모드와 내보낸 파일, 노트에 질문의 답변에서 수식으로 그려집니다. 그림은 노트 테마를 따릅니다. 서식 편집에서는 블록 수식도 그려지며 그 위에 블록 막대(편집·복사·삭제)가 나타납니다. 문장 가운데의 수식도 텍스트 줄에 놓인 채로 그려집니다. 편집하려면 두 번 클릭하거나 Ctrl+Enter를 누르세요. 같은 막대에서 열립니다. 수식 바로 뒤에서 Backspace를 누르면 $…$로 돌아가 그 자리에서 편집할 수 있습니다. 텍스트 편집기에서는 모두 텍스트로 남습니다. 수식을 보려면 Ctrl+E를 사용하세요. 시작하려면 노트 도구 모음의 삽입 → 수식 (LaTeX)를 사용하세요. 수식은 노트 본문 글꼴이 아니라 시스템 수학 글꼴(Windows에서는 Cambria Math)로 그려집니다. 수학용 이탤릭, 텍스트 글꼴에 없는 기호, 내용에 맞춰 커지는 괄호와 근호가 모두 여기에서 나옵니다. 수학 글꼴이 설치되어 있지 않으면 LightNote는 노트 글꼴로 돌아가 이 기호들을 직접 그립니다.
지원 범위는 그리스 문자, 연산자와 관계 기호, 지수 ^와 아래 첨자 _, \frac, \sqrt(지수 포함), 커지는 구분 기호를 쓰는 \left…\right, 한계가 붙는 \sum/\prod/\int, 정체 함수(\sin, \log 등), \text/\mathrm/\mathbf/\mathbb, \mathcal/\mathfrak/\mathsf/\mathtt/\boldsymbol 알파벳, \binom, \overset/\underset, \bmod/\pmod, \big…\Bigg 계열, 공백 \,/\quad/\hspace, 환경 cases, matrix/pmatrix/bmatrix/vmatrix, aligned, gathered, array(|와 \hline 포함), \overbrace/\underbrace, \begin{CD}과 \begin{tikzcd}(가환 다이어그램), \xrightarrow, \boxed/\cancel, \not, \substack, \|/\middle, \smash, \textcolor/\color(색상은 그대로, 밝기는 노트 테마에 맞춰 조정됩니다), \colorbox/\fcolorbox(배경은 쓴 색 그대로, 글자는 배경에 맞춰 조정됩니다), \tag(수식의 번호로, 수식 바로 뒤에 붙습니다. align에서는 줄마다 하나씩, 한 열로 정렬됩니다), \phantom, \displaystyle, 중위 형태 \over/\atop/\choose를 다룹니다. 지원 범위는 이 목록보다 넓습니다. 비교 기호의 변형(\leqslant), 논리(\land, \vDash), 통계 연산자(\argmax), 늘어나는 이중 화살표(\xRightarrow), 이중 대괄호(\llbracket)도 포함됩니다. 예전 TeX의 글꼴 전환({\rm d}x, {\bf A}, {\cal L})과 디랙 표기법(\braket{\phi|\psi})도 됩니다. 수식 안에서 정의한 매크로(\newcommand, \def)는 그 수식이 끝날 때까지 유효하고, 직접 입력한 유니코드 기호(x ∈ ℝ)는 해당 명령과 똑같이 처리되며, \text{…} 안에는 $…$로 수식을 쓸 수 있고, 단독 수식은 \\로 여러 줄이 될 수 있습니다. $$ 블록 안의 \label{eq:name}은 읽기 모드에서 수식에 번호를 매기며({#eq:name}과 같은 카운터), 본문의 \eqref{eq:name}은 괄호 안의 번호가 됩니다. LaTeX 표기도 됩니다. 문장 속 \(…\)와 블록 \[…\]도 똑같이 그려집니다 — ChatGPT가 주로 내보내는 형식입니다. 그릴 수 없는 것은 작성한 텍스트 그대로 표시됩니다.
대각선 화살표가 있는 가환 다이어그램(\begin{tikzcd}). \begin{CD}는 가로·세로 화살표만 그립니다. 가장 흔한 가환 삼각형에는 대각선이 필요합니다. 객체 하나가 셀이고(&로 나누고 \\로 줄을 바꿉니다), 화살표는 셀 안에 씁니다: A \arrow[r, "f"] \arrow[rd, "g"'] & B. 방향은 r/l/u/d의 연속이며(rd가 대각선, rr은 두 칸), \ar과 단축형(\rar, \dar, \drar)도 같은 화살표입니다. 따옴표 라벨은 오른쪽으로 가는 화살표 위에 농이고, '(또는 swap)은 반대쪽으로 옮겨 이름이 그림 안쪽인지 바깥쪽인지를 정합니다. hook(포함), two heads(전사), dashed, Rightarrow, equal도 쓸 수 있습니다. 공기선(bend left)과 이 부분집합이 그리지 못하는 옵션은 이름을 밝히며 거절합니다: 휘어진 두 화살표를 직선으로 그리면 서로 곹쳐 하나뿐이라고 말하게 되기 때문입니다.
본문의 $는 수식이 되지 않습니다. $5와 $10의 가격은 가격 그대로입니다. 여는 기호 뒤에 공백이 올 수 없고 닫는 기호 앞에도 공백이 올 수 없으며 닫는 기호 뒤에 글자가 올 수도 없기 때문입니다(PATH=$dir1:$dir2가 수식이 되지 않는 이유입니다). 백틱으로 감싼 $x$도 코드 그대로입니다. 그리지 못했을 때는 이유를 알려 줍니다. $$ 블록 바로 아래에 한 줄로, 문장 속 수식은 같은 메시지당 한 번만 표시하며, 읽지 못한 명령이나 구분 기호를 알려 줍니다. \(…\) 표기로 붙여 넣은 수식을 $…$로 맞추고 싶다면 서식 지정 → 수식을 $ 형식으로 통일이 선택 영역(또는 노트 전체)을 다시 씁니다. 노트의 문자가 화면에 있는 텍스트 편집기에서만 쓸 수 있습니다.
화학: mhchem과 SMILES
화학. mhchem 표기법도 그려집니다. \ce{2 H2 + O2 -> 2 H2O}처럼 쓰면 아래첨자가 저절로 자리를 잡고, ->와 <=>는 화살표가 되며(->[\Delta] 형태로 라벨을 답니다), Na+와 SO4^2-는 전하가 되고, (aq)와 (l)은 정체로 바짝 붙어 나오며, ^{227}_{90}Th는 동위원소를 정렬하고, v와 ^은 각각 침전과 발생한 기체를 나타냅니다. \pu{123 kJ//mol}처럼 쓰면 단위가 붙은 양이 되고, 이중 슬래시는 분수가 됩니다. 치우친 평형(<=>>과 <<=>)은 반응이 우세한 방향의 화살표를 길게 그리고, 풀어 쓴 결합(\bond{~}, \bond{~-}, \bond{...})은 교과서처럼 선을 겹쳐 그리며, Kröger–Vink 표기(O''_{i,x}, Li^x_{Li})는 유효 전하를 위 첨자에 둡니다. 변수는 기울임꼴로, 원소는 정체로 나옵니다. NO_x의 x는 변수이고, Fe^{II}의 II는 산화수입니다.
LaTeX 구조식(\chemfig). \ce는 화학식을 씁고, \chemfig{...}는 같은 수식 안에 골격을 그립니다 — \chemfig{H_3C-[:30]CH_2-[:-30]OH}는 에탄올, \chemfig{*6(-=-=-=)}는 벤젠입니다. 각도는 직접 정합니다: [:30]은 절대각, [::45]는 앞 결합 기준 상대각, [3]은 8분의 1 회전입니다. 결합은 -, =, ~이고 입체화학의 쌓기는 >, <, >:, <:, >|, <| — 좀은 끝이 비대칭 중심에 농입니다. 괄호는 가지를 달고 *6(...)은 정다각형 고리를 닫습니다(**6(...)은 방향족 원을 그립니다). 고리의 꿉지점에서 나가는 결합은 각도를 쓰지 않으면 고리 바깥쪽을 향합니다. 원소 기호는 정자로 나오고 선은 글자 앞에서 멈춥니다. chemfig의 출발·도착 노드([,,1,2])는 이유를 밝히며 거절합니다: 라벨의 어느 부분에 결합할지를 정하는 값이라, 무시하면 다른 구조를 그리게 됩니다. 축합 고리는 첫 번째 고리 본문 안에, 둘이 공유하는 결합 바로 뒤에 씁니다. 안쪽 고리는 결합을 하나 적게 씁니다. 그 변은 이미 그려졌기 때문입니다. 나프탈렌은 \chemfig{*6(-=-*6(-=-=-)=-=)}입니다.
화학 구조식 (SMILES). ```smiles 블록에 SMILES 한 줄 (CC(=O)Oc1ccccc1C(=O)O)을 쓰면 읽기 모드, 서식 편집, 내보낸 파일, 노트에 묻기의 답변에서 골격 구조식으로 그려집니다. \ce와 짝이 되는 기능으로, 그쪽은 화학식을 쓰고 이쪽은 분자를 그립니다. 골격식의 관례를 따릅니다 — 탄소는 쓰지 않고 꼭짓점으로 두며, 헤테로 원자는 테마의 강조색으로 원소 기호를 표시하고, 방향족 고리 (c1ccccc1)에는 안쪽에 점선 원이 붙습니다. 입체화학은 그려집니다. [C@H]와 [C@@H]는 쐐기가 되고(앞으로 나오는 결합은 채운 쐐기, 뒤로 가는 결합은 빗금 쐐기, 좁은 끝이 입체 중심), F/C=C/F와 F/C=C\F는 쓴 대로 트랜스와 시스로 그려집니다. 종이 위에 나타낼 수 없는 것(@SP1 같은, 사면체가 아닌 이름 붙은 형태)은 받아들이고, 이미지 안의 설명이 선언만 되었고 그리지 않았다고 알려 줍니다. 한 블록은 구조 하나만 그립니다. 줄 가운데의 공백은 거부됩니다. SMILES에서 공백은 구조의 끝이기 때문입니다. 읽을 수 없을 때는 LightNote가 무엇이 잘못되었는지(괄호, 고리 번호, 원소)를 알려 주고, 코드 블록은 쓴 그대로 남습니다. 시작할 때는 노트 막대의 삽입 → 구조식 (SMILES)를 사용하세요.
노트 안의 달력
```calendar 블록은 노트 안에 달력을 그립니다. 읽기 모드, 서식 편집, 인쇄에서 모두 보입니다. 이미지가 아니라 진짜 표이므로 선택하고 복사할 수 있고(Word나 Excel에 붙이면 셀이 유지됩니다), Ctrl+F로 일정을 찾을 수 있습니다. 첫 줄이 어떤 달력인지 정합니다. 월(2026-09)이면 한 달을, 날짜(2026-09-24)면 그 날짜가 들어 있는 주를 보여 주며, 열은 요일, 행은 시간입니다. week이면 날짜 없는 주를 보여 줍니다. 수업 시간표, 일과, 근무표 같은 것입니다. 이어지는 각 줄은 일정이나 옵션이고, %%로 시작하는 줄은 주석입니다. 시작하려면 노트 막대의 삽입 → 달력(월간, 주간, 날짜 없는 주간 — 예시가 채워진 채로 들어갑니다)을 쓰거나 /calendar를 입력하세요.
월간. 일정은 날짜 숫자로 시작합니다. 15: 논문 심사는 하루를, 22-26: 학회는 기간을 표시하고, 텍스트 없는 24:는 그날을 강조하기만 합니다. 기간의 텍스트는 첫날에 나타나고, 다음 주로 넘어가면 다음 줄의 처음에도 나타납니다.
```calendar
2026-10
15: 논문 심사
22-26: 학회
```
주간. 일정은 요일 이름(mon, tue,thu, mon-fri)으로 시작하고 시간이 뒤따릅니다: mon 09:00-10:30: 회의. 시간은 09:00, 9h30, 또는 9만 써도 됩니다. 시간이 없는 일정은 맨 위의 종일 줄에 들어갑니다(fri: 제출). 요일을 이름으로 쓰기 때문에 다음 주로 블록을 복사해도 첫 줄만 바꾸면 됩니다. days: mon-fri는 목록 순서대로 열을 고르고, hours: 8-18은 범위를 고정합니다(없으면 8시부터 18시까지이며 일정이 들어가도록 넓어집니다. 있으면 범위 밖의 일정은 거부됩니다). step: 30은 한 줄의 분입니다. 긴 일정은 첫 줄에만 시간과 함께 텍스트를 쓰고 이어지는 줄은 색만 칠합니다.
```calendar
2026-10-14
days: mon-fri
mon,wed 09:00-10:30: 팀 회의
tue 14-16: 공부
tue 16-17: 복습
fri: 프로젝트 제출
```
세 형식 모두에서 title:은 막대의 제목을 바꾸고(날짜 없는 주간에서는 이것이 있을 때만 막대가 나타납니다), week: monday는 주를 월요일부터 시작하게 하며(기본값은 노트 언어를 따릅니다. days:가 있으면 목록 순서가 우선합니다), today: no는 오늘 표시를 없앱니다. 날짜 없는 주간에서는 오늘의 요일에 표시됩니다. 맞닿은 일정은 서로 다른 색이 되어 하나로 보이지 않습니다. 월과 요일의 언어는 노트의 언어(frontmatter의 lang 키)이며, 주말도 그 언어의 관습을 따릅니다. 오늘 표시는 화면에만 나타나고 종이와 PDF에는 나타나지 않습니다. 읽는 사람은 다른 날에 읽기 때문입니다. 달력을 바꾸려면 그 위에서 Ctrl+Enter를 누르고 막대에서 원본을 편집하세요. 표는 원본에서 생성되므로 셀에 입력해도 아무것도 바뀌지 않습니다. 막대가 열려 있는 동안 표가 입력하는 대로 다시 만들어집니다. 막대를 닫으면 적용되고, Ctrl+Z로 변경 전체를 한 번에 되돌립니다. 내보낼 때(Word, OpenDocument, HTML, LaTeX, GitHub Markdown) 달력은 제목이 붙은 일반 표가 됩니다. 원본을 달력으로 읽을 수 없으면 LightNote가 줄과 부분을 알려 주고, 코드 블록은 쓴 그대로 남습니다. 인용이나 목록 안에서는 달력이 읽기 모드에서 표시되고, 서식 편집에서는 코드로 남습니다.
번호 매기기와 상호 참조
그림에 라벨을 달면 읽기 모드에서 번호가 붙은 설명이 생깁니다.
{#fig:cycle}은 그림 다음에
그림 1 — 물의 순환이 옵니다. 표는 바로 아래, 콜론으로 시작하는 줄에
라벨을 씁니다(: 채취한 시료 {#tbl:samples}). 블록 수식은 닫는
$$에 {#eq:mass}를 붙이면 오른쪽 여백에 번호가
들어갑니다. 이 기능은 꺼진 채로 옵니다. 설정 → 기능 → 학술 → 번호 매기기와 상호 참조에서 켜세요. LightNote는 논문도 감당하는 단순한 편집기입니다. 학술 글을 쓰지 않는 사람이 쓰지도 않는 메뉴와 설정으로 그 값을 치를 이유는 없습니다.-numeracao
그다음에는 가리키기만 하면 됩니다. @fig:cycle은
그림 1, [@fig:cycle]은 (그림 1),
-@fig:cycle은 번호만 됩니다. 인용과 같은 문법인 것은
의도적입니다. 중간에 그림을 넣으면 전체가 알아서 다시 번호를 매깁니다 —
세는 것은 문서이고, 읽는 순서대로입니다.
번호 매기기는 라벨로 하는 선택 사항입니다. {#fig:…}가
없는 그림은 지금과 똑같이 남습니다. 그리고 없는 라벨은 쓴 그대로
남습니다. 인용과 같아서, 참조가 깨졌다는 신호가 됩니다.
번호가 붙는 절(ABNT NBR 6024): 노트 속성에
section-numbers: true를 적으면 제목에 번호 — 1,
1.1, 1.1.1 — 가 붙습니다. 왼쪽 정렬, 공백 하나로 구분, 끝에
점은 없습니다. {#sec:method}를 붙인 제목은
@sec:method로 가리킬 수 있고, 번호가 없을 때 참조는 그 절의
제목이 됩니다.
줄에 [list of figures]나 [list of tables]만 두면
[TOC]가 개요를 만들듯이 규격이 요구하는 목록이 만들어집니다.
이 모두는 읽기 모드(그리고 내보낸 PDF/HTML)의 것입니다. 편집기에서는
파일이 쓴 그대로 남고, 그래서 노트를 건드리지 않고도 번호를 다시 매길 수
있습니다.
인용과 참고문헌
본문 속 인용은 [@키]로 씁니다. 키는 그 문헌이 참고문헌에서
가지는 이름입니다. @를 입력하면 LightNote가 아는 문헌을 저자, 연도,
제목과 함께 제안하며, 노트에 들어가는 것은 키뿐입니다.
[@키, p. 45](쪽수 포함), [-@키](저자 이름이 이미 문장에
있을 때), [@a; @b](여러 문헌을 한 번에)도 쓸 수 있습니다. 이 기능은 꺼진 채로 옵니다. 설정 → 기능 → 학술 → 인용과 서지에서 켜세요. LightNote는 논문도 감당하는 단순한 편집기입니다. 학술 글을 쓰지 않는 사람이 쓰지도 않는 메뉴와 설정으로 그 값을 치를 이유는 없습니다.-citacoes
읽기 모드에서는 인용이 서식이 적용된 글로 바뀝니다 — (Silva, 2020,
p. 45) —. 한 줄에 [bibliography]만 두면 인용한 문헌의
목록이 그 방식이 요구하는 순서로 나타납니다. 편집기에서는 키가 그대로 보입니다.
편집하는 것이 키이기 때문입니다.
서지는 작업 공간 안의 파일입니다. 폴더에 있는 .bib,
.ris, .csl.json이 모두 해당합니다. 그래서 Git이나 USB로
노트와 함께 옮겨 다니고, 다른 컴퓨터에서도 그대로 작동합니다. 그런 파일을 열면
문헌 목록이 각각의 키와 함께 나타나 바로 복사할 수 있습니다.
문헌을 가져오려면: 도구 → 서지 → DOI로 문헌 추가는 DOI나 arXiv 식별자를 받아 나머지를 알아서 가져옵니다. Zotero에서 가져오기는 이 컴퓨터에서 실행 중인 Zotero 7의 라이브러리를 읽습니다(먼저 환경 설정 → 고급 → 이 컴퓨터의 다른 응용 프로그램이 Zotero와 통신하도록 허용을 켜세요).
방식은 폴더의 것이고, 노트가 달리 정할 수 있습니다. 기본값은 도구 →
작업 공간 설정 → 인용에서 고릅니다(ABNT, APA 7, 밴쿠버 방식). 다른 곳에 낼
노트는 속성에 citation-style: apa를 적습니다. 참고문헌에 없는 키는
쓴 그대로 남으므로, 어느 것을 고쳐야 하는지 보입니다.
연결 그래프
도구 › 연결 그래프(Ctrl+Alt+G)는 작업 공간의 모든
노트를 인터랙티브 그래프로 보여줍니다: 각 노드는 .md 노트이고
각 선은 위키링크입니다. 노드는 스스로 자리를 잡으며(애니메이션 물리
효과) 드래그할 수 있습니다. 마우스를 올리면 이웃 노드가 강조되고
나머지는 흐려지며, 클릭하면 노트가 열립니다. 스크롤로 확대/축소하고
(가까워지면 이름이 나타남) 배경을 드래그하면 화면을 이동합니다.
탭 도구 모음에는 이름으로 필터(일치하지 않는 노트를 흐리게 표시), 고아 노트(전혀 링크가 없는 노트 — 회색으로 표시) 토글, 힘 슬라이더(척력, 거리, 중력), 그래프를 창에 맞추기, 노트 다시 스캔 기능이 있습니다. 연결이 많을수록 노드가 커지며, 최상위 폴더마다 고유한 색상이 부여됩니다.
비슷한 노트. 노트 안의 연결 미니 막대는 들어오는 링크, 나가는 링크, 이름으로 된 언급을 보여 줍니다. 그 끝에 비슷한 노트 절이 있습니다. 링크도 공통 단어도 없이 가까운 주제를 다루는 노트입니다. 노트를 바꿀 때마다가 아니라 요청할 때 계산합니다(계산 클릭). 색인을 훑는 데 디스크 읽기가 들기 때문입니다. 각 줄에는 이름, 얼마나 가까운지, 그리고 그 제안의 근거가 된 발췌가 나옵니다. 이 근거가 없으면 쓸 만한지 판단할 길이 없습니다. AI 호출은 쓰지 않습니다. 이미 있는 의미 색인을 쓰므로, 이 절은 설정 → 일반 → 기능에서 의미 보강(임베딩)을 켠 경우에만 나타납니다.
표(Parquet, CSV, JSON, Excel)
열기와 질의
.parquet 파일은 표로 열리고, .csv,
.tsv, .json은 텍스트로 열리며, 트리의
컨텍스트 메뉴에서 표로 열기를 선택할 수 있습니다. 읽기는
DuckDB를 통해 필요 시 페이지 단위로 이루어지며, 정렬
(헤더 클릭)과 필터링은 엔진 쪽에서 처리됩니다. 구조 버튼은
열, 형식, 행 수, Parquet의 경우 행 그룹과 압축 방식을 보여줍니다. 보기
전용입니다.
표 상단의 자유 SQL 바는 모든 DuckDB 쿼리를 받아들이며,
t 뷰가 열린 파일을 가리킵니다. 트리의 폴더 컨텍스트
메뉴에서 폴더를 표로 열기를 선택하면 같은 형식의 모든 파일을 하나의
표로 읽어들이고, 표 메뉴에서는 현재 보기를 내보낼 수 있으며
(CSV/Parquet/JSON), 트리 메뉴에서는 표 파일을 다른 형식으로 변환할
수 있습니다. 자유 형식 SQL은 명령줄의
query 명령과 MCP에서도 사용할 수 있습니다.
Excel 스프레드시트(.xlsx)는 시트 선택기가 있는
읽기 전용 표로 열립니다 — Excel 설치 없이 동작하는 경량 리더입니다.
Excel 시트
파일에 충실합니다. 시트는 파일 자체의 서식으로 표시됩니다. 숫자·통화·
백분율·날짜는 Excel에서 지정한 서식을 따르며, 3750.5로 저장된 값에 통화 서식이
있으면 ₩3,750.50으로, 백분율은 0.15가 아니라 15%로
나타납니다. 글꼴(이름·크기·굵게·기울임·밑줄), 글자 색, 채우기 색, 셀별 테두리, 맞춤,
자동 줄 바꿈, 들여쓰기, 회전된 텍스트, 열 너비도 파일에서 읽어 옵니다. 숫자는 오른쪽,
텍스트는 왼쪽에 정렬됩니다(Excel과 동일).
시트가 자체 색상을 가지고 있으면 표는 흰색 배경 위에 그려집니다. Excel의 색은 흰 종이를 기준으로 고른 것이라 어두운 테마 위에서는 읽을 수 없기 때문입니다. 서식이 전혀 없는 파일은 계속 LightNote 테마를 따릅니다. 시트는 기록된 순서 그대로 열리며, 머리글을 클릭하면 다른 표와 마찬가지로 정렬됩니다.
원본 레이아웃과 확대/축소. 시트가 셀 병합이나 사용자 지정 행 높이를 사용하거나 눈금선을 숨기면 탭이 원본 레이아웃 모드(도구 모음 단추)로 열려 그 배치를 Excel과 똑같이 재현합니다. 이 모드는 배치만 다루며 색, 글꼴, 테두리, 표시 형식은 두 모드 모두에서 적용됩니다. 켜져 있는 동안에는 정렬과 필터를 쓸 수 없습니다. 다시 정렬하면 병합된 영역이 엉뚱한 행에 남기 때문이며, 정렬하려면 단추를 끄십시오. 해당 사항이 없는 시트는 일반 모드로 열립니다. 확대/축소는 모든 뷰와 같으며 상태 표시줄에 있습니다(작업 공간과 창 참조). 표 위에서도 Ctrl+마우스 휠을 쓸 수 있습니다. Excel 표로 서식이 지정된 시트에도 색이 표시됩니다. 표 스타일은 Excel에 내장되어 있어 파일에 담기지 않으므로 머리글과 줄무늬는 테마에서 복원합니다.
복사, 필터, 차트
다른 형식으로 복사. LightNote의 모든 표(Parquet/CSV/JSON, Excel, SQL 결과, 작업, 베이스) 컨텍스트 메뉴에서 다른 형식으로 복사는 선택 영역을 이미 서식이 적용된 상태로 클립보드에 넣습니다. 서식 있는 표 (Teams, Outlook…)는 서식 있는 텍스트를 이해하는 프로그램(Teams, Outlook, Word, Excel)에 테두리와 머리글이 있는 진짜 표로 붙여집니다(서식 있는 텍스트가 없으면 자동으로 TSV로 대체됩니다). 나머지는 텍스트로 붙여집니다: 마크다운 표(노트에 바로), CSV(RFC 4180에 따른 따옴표), TSV(탭 구분), HTML(<table> 마크업), JSON, JSONL(레코드당 한 줄), YAML, 그리고 코드 하위 메뉴 — 소스 파일에 붙여넣을 수 있는 리터럴을 생성합니다: Python(딕셔너리 목록) 또는 JavaScript / TypeScript(객체 배열). JSON, YAML, 코드에서는 숫자인 셀이 따옴표 없이 출력되지만 원본 텍스트가 보존되므로 007 같은 ID는 그대로 텍스트로 남습니다. Ctrl+C는 이전과 같이 TSV로 복사합니다.
모든 표가 동일하게 동작합니다. Ctrl+F는 빠른 필터("아무 열에나 포함")에 포커스를 주고, 카운터가 남은 행 수를 보여 주며, CSV로 내보내기가 있습니다 — .xlsx 시트, 작업, 베이스에서도 마찬가지입니다. 그리드 컨텍스트 메뉴에는 여전히 다른 형식으로 복사가 있습니다.
결과 차트. 테이블 사이드바에 차트 버튼(막대, 선 또는 산점도)이 있습니다. 집계는 DuckDB에서 실행되며(원본 행을 가져오지 않음), 오늘의 노트에 추가 버튼으로 차트를 이미지로 저장합니다. 구조 패널에는 열별 프로파일(숫자 열의 미니 히스토그램과 나머지 열의 최빈값)도 포함됩니다.
여러 차트와 피벗 테이블. 두 필드를 교차해 세 번째 필드를 집계하려면, 또 한 표에 여러 차트를 남겨 두려면 분석 영역을 보세요.
분석 영역: 피벗 테이블과 여러 차트
차트와 통계
표 탭에는 두 가지 모드가 있으며, 바의 데이터와 분석 버튼으로 전환합니다. 데이터는 평소의 표이고, 분석은 같은 원본에 대한 차트와 피벗 테이블을 원하는 만큼 나란히 두는 보드입니다. 각 항목은 카드가 되며 편집할 수 있는 제목, 선택기를 펼치는 톱니바퀴 버튼, ⋮ 메뉴(이동·복제·제거)가 있습니다.
제대로 된 통계. 막대, 선, 산점도에 더해 그래프는 상자 그림도 그립니다. 범주마다 사분위수 상자, 굵은 선의 중앙값, 그리고 튜키 울타리(1,5 × IQR)에 놓인 수염 — 최솟값과 최댓값이 아닙니다. 어떤 열의 평균 위에는 오차 선택으로 흩어짐을 나타내는 수염이 붙습니다: ± 표준편차(데이터 자체를 설명), ± 표준오차, ± 95% 신뢰구간(평균 자체의 정밀도를 설명). 셋 다 평균을 골랐을 때만 나타납니다. "합계 ± 편차"는 아무 뜻이 없기 때문입니다. Y축 로그 체크는 자릿수가 크게 달라지는 데이터를 위해 로그 눈금으로 바꿉니다. 값에 0이나 음수가 있으면 알림과 함께 무시됩니다. 거기에는 로그가 없고, 그 점을 조용히 버리면 그래프가 거짓말을 하기 때문입니다. 산점도에서 추세선은 R²가 붙은 회귀 직선을 그리며, 화면에 보이는 표본이 아니라 데이터베이스에서 모든 행으로 맞춘 것입니다. 그림 아래에는 고른 열의 기술 통계 한 줄(n, 평균, 편차, 95% 신뢰구간, 최소, 사분위, 중앙값, 최대)이 있습니다. 이것은 별도의 질의입니다. 막대에서 계산하면 "평균의 평균"이 되고, 그것이 진짜 평균과 같아지는 것은 모든 그룹의 크기가 같을 때뿐이기 때문입니다.
피벗 테이블과 합계
피벗 테이블. 행과 열에 놓을 필드(축마다 여러 개를 중첩할 수 있고, 끌어서 계층 순서를 바꿀 수 있습니다), 값에 놓을 필드, 그리고 집계 방식(합계, 개수, 고유 개수, 평균, 최소, 최대)을 고릅니다. 값 필드를 고르지 않으면 행 수를 셉니다. 표 옆의 미니 바에도 차트 옆에 있어서, 데이터를 벗어나지 않고 빠르게 확인할 수 있습니다.
집계는 데이터베이스에서 실행되어 이미 줄어든 결과만 돌아옵니다. 원시 행이 올라오지 않으므로 수천만 행짜리 Parquet도 다룰 수 있습니다. 쿼리가 표준 SQL이라서 피벗 테이블은 SQL 클라이언트의 모든 데이터베이스(SQLite, DuckDB, PostgreSQL, MySQL, SQL Server, Oracle)에서 동작합니다. 차트처럼 DuckDB에만 국한되지 않습니다.
합계. 행 합계와 열 합계 확인란은 마무리 행과 열을 더합니다. 평균에서 합계는 가중 평균이며, 평균의 평균이 아닙니다. 그룹의 크기가 다르면 후자는 틀립니다. 고유 개수는 합계를 낼 수 없으므로(서로 다른 집합의 합집합은 부분의 합으로 구할 수 없습니다) 그 경우 확인란이 비활성화되고 이유가 툴팁에 나옵니다. 틀린 숫자를 보여주지 않습니다.
저장 위치, CSV, 묶기
분석이 저장되는 곳. 데이터 파일 옆의 JSON입니다(sales.parquet → sales.parquet.analysis.json). 열린 형식이라 데이터와 함께 Git에 들어가고, 동료에게 그대로 전달됩니다. 분석 파일 버튼은 그 JSON을 탭으로 엽니다. 분석을 비우면 파일이 삭제됩니다. 표로 연 폴더 전체에는 자체 경로가 없으므로 그 분석은 저장되지 않으며, 버튼이 그 사실을 알려 줍니다. 각 카드에는 오늘의 노트에 추가도 있습니다. 차트는 이미지로, 피벗 테이블은 Markdown 표로 들어가므로 노트 안에서도 복사하고 편집할 수 있는 텍스트로 남습니다.
CSV는 동작 하나로 열고, 구분자를 잘못 읽었을 때를 위한 길이 따로 있습니다. 표로 열기는 DuckDB로 열며 자유 SQL, 차트, 피벗 테이블, 분석 영역을 함께 제공합니다. 구분자가 인식되지 않는 경우가 있는데(행마다 열 개수가 다를 때 흔히 그렇습니다), 그러면 표가 한 열만 있는 상태로 나오고 행 전체가 그 안에 들어갑니다. 이때 표 위에 띠가 나타나 파일이 가진 것으로 보이는 열 개수를 알려 주고 너그러운 읽기를 제안합니다. 이 방식은 열 개수가 같기를 요구하지 않고 한 줄씩 읽으며, 검색과 AI가 쓰는 것과 같은 읽기입니다. 거르고 정렬할 수는 있지만 자유 SQL, 차트, 피벗 테이블은 없습니다. 아직 저장하지 않은 텍스트이거나 구분자를 직접 고르고 싶다면 보기 → 구분 파일로 보기…를 사용하세요.
패턴으로 묶기. 날짜나 코드 열에서는 서로 다른 값이 행 수와 거의 같아서, 값으로 묶어도 아무것도 보이지 않습니다. 패턴 마스크는 글자를 A로, 숫자를 N으로 바꾸고 나머지는 그대로 둡니다(2027/10/10 → NNNN/NN/NN). 그러면 수백만 행이 두세 가지 형태로 모이고, 거기서 벗어난 것이 바로 지저분한 데이터입니다(10-10-2027로 들어온 날짜, 접두어가 빠진 코드). 차트에서는 X축 옆의 패턴 확인란, 피벗 테이블에서는 필드 카드를 오른쪽 클릭(필드별이므로 코드의 형태와 일반 항목을 교차할 수 있습니다), 구조 패널에서는 각 열의 최빈값 아래에 최빈 패턴이 나옵니다. 계산은 데이터베이스에서 실행됩니다. SQLite와 일반 ODBC에서는 마스크가 쓰는 문자열 함수가 없어 이유와 함께 비활성화됩니다.
PDF와 이미지
.pdf 파일은 네이티브 뷰어(Qt6::Pdf, 무거운 의존성 없음)에서 열립니다. CPU로 렌더링하며 WebEngine을 쓰지 않습니다. 이미지는 이미지 보기에서 열리고, 움직이는 GIF는 애니메이션 보기에서 재생됩니다.
탭 도구 모음에는 한 번에 하나씩 표시되는 여섯 개의 측면 패널이 있습니다. 목차(파일 자체에 저장된 목차 — PDF에 목차가 없으면 버튼이 비활성화되고 그 이유를 알려 줍니다), 축소판(스크롤에 따라 렌더링되는 페이지 한눈에 보기), 검색, 링크, 속성(제목, 작성자, 날짜, 페이지와 파일 크기), 강조(읽는 순서대로 나열한, 강조해 둔 구절)입니다.
검색(Ctrl+F)은 문서 전체를 훑습니다. 일치하는 부분은 페이지에서 강조되고 앞뒤 문장과 함께 목록에 나열되며, F3 / Shift+F3으로 이동합니다. 훑는 작업은 점진적이라 문서를 지나가는 동안 목록이 늘어납니다.
페이지 입력란은 번호와 인쇄된 페이지 번호를 모두 받습니다. 머리말이 로마 숫자로 매겨진 문서에서 1을 입력하면 첫 장이 아니라 인쇄된 "1" 페이지로 이동합니다. 페이지 모드 단추로 연속 스크롤과 한 번에 한 페이지를 전환합니다.
암호로 보호된 PDF는 열 때 암호를 묻습니다(최대 세 번). 취소하면 탭이 열리지 않을 뿐입니다. 같은 실행 중에는 다시 묻지 않습니다. 앱이 오래 쓰지 않은 탭을 해제한 뒤 스스로 다시 열기 때문에, 그대로 두면 앱이 스스로 번거로움을 만드는 셈이기 때문입니다. 암호 입력창에서 "이 파일의 암호 기억하기"를 선택하면 다음 실행에서도 유지됩니다. 암호는 Windows가 보호하며(이 컴퓨터의 사용자 본인만), Git이나 클라우드로 전송되지 않고 설정 내보내기에도 포함되지 않습니다. 모두 지우려면 설정 → 기능 → PDF 암호. 보호된 PDF는 프로그램을 시작할 때 자동으로 다시 열리지 않습니다. 창을 보여 주기도 전에 암호 요청을 줄 세우는 대신, 사용자가 열기를 기다립니다.
도구 모음의 작업 메뉴에서 페이지 텍스트 복사, 문서 전체 텍스트 내보내기, 페이지를 이미지로 복사하거나 저장하기, 그리고 페이지를 오늘의 노트로 보내기를 할 수 있습니다. 링크 패널이 있는 이유는 Qt의 PDF 구성 요소가 내부 링크는 스스로 따라가지만 외부 링크는 무시하기 때문입니다. 웹 주소는 확인을 거쳐 이 패널에서 열립니다.
강조하기. 강조 단추가 형광펜을 켭니다. 페이지의 글자 위로 끌면 그 구절이 강조되고, 옆의 화살표로 색을 고릅니다. 강조는 사각형이 아니라 글자에 붙습니다. 그래서 확대율이나 페이지 모드를 바꿔도 자리를 벗어나지 않고, 반대로 글자 층이 없는 스캔 PDF에서는 쓸 수 없습니다(이때는 아무 일도 일어나지 않는 대신 그 이유를 알려 줍니다). 강조 패널에서는 클릭하면 그 쪽으로 이동하고, 오른쪽 단추 메뉴로 메모를 달거나 구절을 복사하거나 지울 수 있습니다. 도구 모음의 동작 메뉴에 있는 강조 복사와 강조를 노트로 저장…은 독서 노트를 Markdown으로 씁니다. 구절마다 인용이 되고, 쪽마다 PDF의 그 자리를 여는 링크가 붙습니다(nonmun.pdf#page=12). 대가: 강조는 PDF 옆의 파일(nonmun.pdf.highlights.json — 읽을 수 있는 텍스트이며 Git으로 버전 관리할 수 있습니다)에 저장되고 PDF 안에는 들어가지 않습니다. 그래서 LightNote에서는 보이지만 다른 PDF 뷰어에서는 보이지 않습니다. 파일이 다른 판으로 바뀌면, 자리를 잃은 강조는 엉뚱한 문장 위에 칠해지는 대신 그렇다고 표시됩니다.
제한: 형광펜을 쓸 때가 아니면 마우스로 텍스트를 선택할 수 없습니다. Qt의 PDF 구성 요소가 그 기능을 제공하지 않기 때문입니다. 내용을 가져가려면 "이 페이지의 텍스트 복사", 문서 내보내기, 또는 강조 자체를 사용하세요.
이미지: 스크린샷에 주석 달기
도구
이미지는 자체 도구 모음이 있는 탭에서 열립니다. 회전, 반전, 확대 외에 주석 도구를 함께 제공합니다. 스크린샷을 찍고, 중요한 부분을 가리키고, 그대로 문서로 가져가는 길입니다. 시작하려고 화면을 캡처할 필요도 없습니다. 새로 만들기 → 새 빈 이미지는 표시된 폴더에 흰 .png 종이를 만들고 펜을 쥔 채로 엽니다 — 이미지를 열 때의 기본값인 이동은 여기서 끌 것이 없습니다.
기본 도구는 이동입니다. 드래그는 예전처럼 이미지를 움직입니다. 선택은 일부를 고릅니다 — 드래그로 만들고, 안쪽을 드래그해 옮기고, 모서리와 변의 핸들로 크기를 바꿉니다. Esc는 선택을 해제하고 Del은 그 영역의 내용을 지웁니다. 이동 모드에서는 Shift+드래그로도 선택할 수 있습니다. 어떤 도구에서든 마우스 가운데 버튼으로 이미지를 움직일 수 있습니다.
스포이트는 이미지 자체에서 색을 가져옵니다. 왼쪽 버튼은 테두리 색으로, 오른쪽 버튼은 채우기 색으로 들어갑니다. 주석이 그려진 뒤의 이미지를 읽으므로, 방금 만든 주석과 같은 색을 다시 쓰는 데도 좋습니다.
나머지는 그리는 도구입니다. 사각형, 타원, 화살표, 선, 강조(형광펜처럼 반투명), 펜(자유 곡선), 브러시, 번호 단계(1, 2, 3... 자동으로 번호가 매겨집니다), 텍스트, 흐리기, 스포트라이트(선택한 영역을 제외한 나머지를 어둡게 합니다). 그리는 동안 Shift를 누르면 정사각형·정원과 45° 각도로 고정됩니다.
색, 굵기, 흐리기
색은 두 가지이고 버튼도 두 개입니다. 테두리 색(선과 라벨의 색이기도 합니다)과 채우기 색이며, 채우기는 없음으로 둘 수 있습니다. 채우기가 없으면 사각형과 타원은 윤곽만 그려지고, 번호 단계와 텍스트는 테두리 색을 배경으로 삼아 라벨을 흰색이나 검정 — 대비가 나는 쪽 — 으로 씁니다. 채우기를 고르면 그것이 도형의 안쪽과 라벨의 배경이 되고, 테두리 색이 글자 색이 됩니다.
브러시는 채우기 색으로 선 두께만 한 점을 찍습니다. 둥근 모양인지 네모난 모양인지는 두께 옆 버튼으로 바꿉니다. 한 번만 클릭해도 자국이 남습니다. 채우기를 흰색으로 두면 지우개가 되어 아래에 있는 것을 덮습니다.
두께는 선, 라벨의 크기, 그리고 흐리기의 블록 크기에 적용됩니다. 두께를 쓰지 않는 도구에서는 흐리게 표시됩니다. 색과 두께는 세션이 바뀌어도 기억됩니다. Ctrl+Z와 Ctrl+Y로 주석을 취소하거나 다시 실행하고, 주석 지우기는 한 번에 모두 지웁니다(이것도 되돌릴 수 있습니다).
흐리기는 감추기 위한 것입니다(토큰, 이메일 주소, 경로 등). 탭이 열려 있는 동안에는 되돌릴 수 있지만, 저장하거나 복사하면 그 영역의 픽셀은 실제로 파괴됩니다. 밖으로 나가는 파일은 원본을 어디에도 남기지 않습니다.
잘라내기, 붙여넣기, 회전, 캡처
이름이 비슷하지만 하는 일이 다른 세 가지 작업이 있습니다. 잘라내기(Ctrl+X)는 선택 영역을 클립보드로 복사하고 그 영역을 지웁니다. 지운 자리는 채우기 색(없으면 흰색)으로 칠해집니다. 선택은 그대로 남아 있어서, 바로 이어서 붙여넣기를 하면 잘라낸 조각이 원래 있던 자리에 떠 있는 상태로 되돌아옵니다 — 이미지의 한 부분을 옮기는 방법입니다. Del은 복사하지 않는 잘라내기입니다. 반면 이미지 메뉴의 선택 영역만 남기기는 반대입니다. 그 영역만 남기고 나머지를 버리며 이미지의 크기를 바꿉니다.
나머지 식구들입니다. 복사는 주석이 있는 이미지 또는 선택 영역만 가져갑니다. 붙여넣기는 클립보드의 이미지를 떠 있는 상태로 가져옵니다 — 같은 핸들로 옮기고 크기를 바꾼 뒤 바깥을 클릭하거나 Enter를 누르면 확정되고, Esc는 버립니다. Ctrl+A(또는 Ctrl+T)는 이미지 전체를 선택합니다. 그 밖에 저장(주석을 파일 자체에 기록합니다), 다른 이름으로 저장..., 그리고 오늘의 노트로 보내기가 있으며 이는 PNG를 Anexos/에 저장하고 노트에 ![]()를 넣습니다. 저장하지 않은 주석이 있는 동안 탭에는 별표가 남고, 닫을 때 저장할지 묻습니다.
이미지 버튼에는 그림 전체에 적용되는 것들이 모여 있습니다. 회전, 반전, 백분율로 크기 변경, 너비 1600 / 1200 / 800 px로 축소(스크린샷은 문서에 넣기에는 너무 큰 크기로 만들어집니다), 단색 테두리 잘라내기, 여백 추가, 그림자, 그리고 주석을 이미지에 새기기입니다. 마지막 항목은 주석을 그 자리에서 픽셀로 바꾸며, 그래야 주석 위에 흐리기를 할 수 있습니다. 크기 변경은 주석과 선 두께도 함께 가져갑니다.
LightNote를 벗어나지 않고 화면을 찍으려면 트레이 메뉴의 화면 캡처...(또는 Ctrl+Alt+P)를 사용하세요. 바탕 화면이 멈추고, 드래그로 영역을 고르면(Esc로 취소) 잘라낸 부분이 새 탭에서 열려 바로 주석을 달 수 있습니다.
제한: 이미 그린 주석은 옮기거나 고칠 수 없습니다 — Ctrl+Z로 취소하고 다시 그리세요. 움직이는 GIF와 WebP는 애니메이션 보기에서 열리며 주석 기능이 없습니다. 그리고 .svg는 읽을 때 래스터화되므로 저장할 때 PNG 대상 위치를 묻습니다.
HTML 페이지(.html)
트리에서 연 .html 파일은 진짜 레이아웃 엔진을 갖춘 미리 보기 탭이 됩니다. 플렉스박스, 플로팅 블록, 위치 지정, 미디어 쿼리, 그라데이션, CSS 변수, CSS3 선택자를 지원합니다. AI가 만들어 주는 지표 카드와 표, 차트가 있는 요즘 보고서가 글자 벽이 되지 않고 브라우저에서처럼 보이는 이유입니다.
텍스트를 선택할 수 있습니다. 끌어서 선택하고, 더블 클릭으로 단어를 잡고, Ctrl+A로 페이지 전체를 선택하고, Ctrl+C로 복사합니다(문맥 메뉴에 복사와 모두 선택이 있습니다).
위쪽 도구 모음에는 개요(페이지 제목, 클릭하면 이동)와 찾기(Ctrl+F — 모든 일치를 강조하고 F3와 Shift+F3로 이동, Esc로 닫기)가 있습니다. 확대/축소는 탭 도구 모음에서 빠졌습니다. 모든 뷰와 마찬가지로 상태 표시줄 한 곳에 모여 있습니다(작업 공간과 창 참조).
PDF 내보내기는 A4로 쪽을 나누고 텍스트를 벡터로 출력합니다. PDF는 검색할 수 있고 텍스트도 선택됩니다. 탭은 디스크의 파일도 따라갑니다: 보고서를 다시 만들면 읽던 위치를 유지한 채 스스로 갱신됩니다. 또한 자신의 색을 고르지 않은 페이지는 앱 테마를 따르고, 색을 정한 페이지는 설계된 그대로 표시됩니다.
링크도 동작합니다. 같은 폴더의 다른 파일로 가는 링크는 그 자리에서 열리고, #앵커는 해당 절로 스크롤하며, 웹 주소는 브라우저에서 열립니다.
하지 않는 것은 자바스크립트와 네트워크입니다. 아무것도 내려받지 않습니다. 페이지가 그것에 의존하면(스크립트, <canvas>, <iframe>, 원격 리소스) 브라우저에서 열기 띠가 나타납니다. 보고서 요령: AI에게 자바스크립트와 CDN 없이, 차트는 내장 SVG로 된 HTML을 요청하세요. 그러면 여기서 온전히 열립니다.
그래도 스크립트를 실행하지 않고 클릭에 반응하는 것이 몇 가지 있습니다. <details> 상자는 머리글에서 열고 닫을 수 있고(페이지에 상자가 있으면 도구 모음에 모두 펼치기가 나타납니다), 탭 묶음은 보이는 패널을 바꾸며, 표 머리글을 클릭하면 행이 정렬됩니다. 같은 열을 다시 클릭하면 순서가 뒤집히고, 숫자 열은 문자열이 아니라 값으로 정렬됩니다. 탭과 패널의 짝이 분명하지 않으면 아무것도 바꾸지 않고 페이지를 그대로 보여 줍니다.
엔진에 없는 두 가지는 자동으로 바뀝니다. display:grid와 gap은 동등한 플렉스박스가 되고, 내장 <svg>는 그려집니다. box-shadow는 무시됩니다. 이전 뷰어로 돌아가려면 설정 → 일반 → 기능에서 전체 레이아웃 HTML 뷰어를 해제하세요.
인쇄
파일 → 인쇄…(Ctrl+P)를 누르면 페이지가 나뉜 미리 보기가 열립니다. 여백, 페이지 나눔, 쪽 번호까지 실제로 출력될 모습 그대로 용지가 나타납니다. 인쇄 단추는 그 안에 있으며 확대/축소, 페이지 이동, 용지 설정과 나란히 있습니다. 노트, 코드, HTML 페이지, 이미지, 열려 있는 PDF를 인쇄할 수 있고, 다른 화면에서는 항목이 회색으로 남아 이유를 알려 줍니다. 같은 단추가 각 화면의 도구 모음에도 있습니다. 노트에서는 내보내기 옆에, 코드와 PDF와 이미지와 HTML 페이지에서는 각자의 도구 모음에 있습니다.
종이에 나오는 것은 읽기 모드가 보여 주는 것과 같습니다. 트랜스클루전은 해석되고, 그림 번호는 제자리에 있으며, 비공개 주석(%%…%%)은 빠집니다. 콘텐츠 테마가 어두워도 용지는 흰 종이로 나옵니다. 새까만 페이지는 잉크를 낭비하고, 남에게 건네는 문서와도 어울리지 않기 때문입니다. 여백은 좌우 20 mm, 위아래 15 mm이고 바닥글에는 X / Y 쪽이 들어갑니다. 미리 보기의 여백 단추는 문서 여백과 프린터가 지원하는 최솟값 사이를 전환합니다. PDF와 이미지는 최솟값에서 시작하는데, 파일 자체가 이미 여백을 가지고 있기 때문입니다. 그 옆의 테마는 인쇄물의 색을 바꿉니다. 기본값은 자동이며, 어두운 테마를 흰 종이로 바꾸는 것이 바로 이것입니다. 목록에는 카탈로그와 사용자가 만든 밝은 테마가 들어 있습니다. Dracula Dark로 읽는 사람은 Dracula Light로 인쇄할 수 있는데, 종이를 위해 만들어진 같은 색 언어입니다. 어두운 테마는 종이에서 한 장 전체를 칠하게 되므로 제외됩니다. 이미 사용 중인 테마에는 목록에서 (사용 중) 표시가 붙습니다. 골라도 종이는 바뀌지 않습니다.
코드에서는 구문이 흰 종이 위에 색으로 출력되고 줄 번호가 여백에 들어가며, 긴 줄은 잘리지 않고 줄바꿈됩니다. 종이에는 가로 스크롤이 없어 여백을 넘어간 부분에는 닿을 수 없기 때문입니다. 이미지는 직접 그린 표시와 함께 출력되고, 작은 이미지는 확대되지 않습니다 — 원래 크기 그대로 용지 가운데에 놓입니다. GIF는 지금 보이는 프레임을 인쇄합니다.
LightNote에서 PDF를 인쇄하면 페이지가 래스터화되고 강조도 함께 나옵니다. 조판 품질을 최우선으로 한다면 글자가 벡터로 남는 시스템 PDF 뷰어에서 인쇄하세요. PDF로 내보내기(파일 → 노트 내보내기)는 다른 기능이며 예전 그대로입니다. 쪽 번호나 문서 여백을 파일에도 넣으려면 옵션과 함께 내보내기…에서 두 상자를 선택하면 됩니다. 이미 내보내던 사람의 PDF가 바뀌지 않도록 기본값은 꺼짐입니다. 아주 긴 문서에서는 미리 보기를 건너뜁니다. 미리 보기가 모든 페이지를 한 번에 메모리에 담기 때문입니다. 앱은 이런 제한이 없는 인쇄 대화 상자로 바로 넘어갑니다.
폴더처럼 열리는 Zip(.zip)
.zip은 자체 탭에서 열립니다: 왼쪽에는 구성원 트리(이름,
크기, 날짜), 오른쪽에는 선택한 구성원의 내용 — 텍스트/코드, Markdown (렌더링됨), 이미지 또는 PDF — 이 디스크에 아무것도 추출하지 않고
메모리에서 열립니다. 텍스트와 Markdown은 편집할 수 있으며,
Ctrl+S를 누르면 .zip 내부의 구성원이 그대로 다시
기록됩니다.
같은 탭에서 .7z, .rar, .tar(.tar.gz, .tar.bz2, .tar.xz 포함), .cab, .iso도 열립니다. 이들은 읽기 전용이라 탐색·보기·항목 추출은 되지만 편집은 되지 않습니다. 쓰기가 가능한 것은 .zip뿐인데, 안전하게 다시 쓸 수 있는 형식이 그것뿐이기 때문입니다(.rar는 독점 형식이라 자유 라이브러리도 압축하지 못합니다).
이미지와 PDF는 읽기 전용이며, 매우 큰 구성원(및 .parquet)은
추출…만 제공합니다. 구성원 생성, 이름 변경, 삭제는 지원하지
않습니다.
암호로 보호된 항목도 정상적으로 읽습니다. 하나를 열면 LightNote가 암호를 묻고(최대 세 번), "이 파일의 암호 기억하기"를 선택하면 다시 묻지 않습니다(기본적으로 같은 실행 중에, 선택하면 다음 실행에서도. Windows가 보호하며 이 컴퓨터의 사용자 본인만 사용합니다. 모두 지우기는 설정 → 기능). PDF와 다른 형식상의 차이에 유의하세요. .zip의 암호화는 항목 단위이고 목차는 평문으로 남기 때문에, 암호가 없어도 파일 목록은 그대로 보입니다. 보호되는 것은 내용뿐입니다. 암호화된 항목이 있는 .zip은 프로그램을 시작할 때 자동으로 다시 열리지 않습니다.
블록(.lnb)
블록 번들은 이름이 .lnb로 끝나는 폴더로, 트리에서
단일 항목으로 취급됩니다(더블클릭하면 열림). 각 블록은 디스크상의 실제
파일이며, 순서는 번들 루트의 blocks.json에 저장됩니다.
코드나 텍스트 셀이 쌓인 노트북처럼 동작합니다. Jupyter 노트북은 이렇게 들어옵니다. 트리에서 .ipynb를 오른쪽 클릭해 블록으로 가져오기 (.lnb)를 고르세요. 각 셀이 실제 파일이 되어 — 버전 관리와 검색이 됩니다 —, .ipynb는 있던 자리에 그대로 남습니다. 가져오기는 변환이 아니기 때문입니다. 노트북에 저장된 출력은 오지 않습니다. 여기서 셀을 실행하면 시각과 명령이 붙은 진짜 결과가 만들어집니다.
각 셀에는 이름, 유형 버튼(인터프리터/렉서 설정), 복사·삽입·삭제· 실행 버튼이 있습니다. 여기까지 실행은 현재 셀까지의 모든 코드 셀을 순서대로 실행합니다. 출력(stdout+stderr)은 해당 셀 바로 아래 패널에 나타납니다. 트리에서(새로 만들기) 또는 파일 → 새로 만들기로 생성할 수 있습니다.
Ctrl+Enter는 포커스가 있는 셀을 실행합니다 — SQL 편집기와 같은 동작입니다.
결과는 저장됩니다(실험 노트처럼). 실행이 끝나면 각 실행은 번들 안의
saida/<셀>/에 있는 .md 파일이 됩니다 — 실행 시각,
종료 코드, 소요 시간, 명령, 그리고 출력 자체가 담깁니다. Markdown이므로 어떤
편집기에서도 읽을 수 있고, 노트북과 함께 Git으로 버전 관리되며,
AI 채팅에서도 찾을 수 있습니다. 번들을 다시 열면
패널 위에 마지막 실행 띠가 다시 나타납니다. 클릭하면 다시 실행하지 않고
결과를 볼 수 있습니다.
기록: 그 띠 옆의 기록 버튼은 해당 셀의 이전 실행(실행 시각과 종료
코드)을 나열합니다 — 같은 셀이 시간에 따라 무엇을 반환했는지 비교할 때 유용합니다.
셀당 최근 10개를 보관하며, 변경하려면 번들의 blocks.json에서
historyLimit 키를 편집하세요(0이면 저장을 끕니다). 아주 큰
출력은 잘립니다(파일에 truncated: true로 표시). 셀의 이름을 바꾸거나
유형을 변경하면 기록도 함께 이동하고, 셀을 삭제하면 기록은 휴지통으로 갑니다.
실제 데이터베이스에 대한 SQL 셀: 상단 띠(연결 선택…)에서 노트북을
.lnc 연결로 지정하면 sql 유형의 셀이 인터프리터가 아니라
데이터베이스에서 실행됩니다. SELECT 결과는 출력 파일 안의 표가 되고(진짜
Markdown이라 어떤 뷰어에서도 서식이 적용되어 보입니다), INSERT/UPDATE 등은
몇 행이 바뀌었는지 알려줍니다. 데이터베이스 오류는 스크립트를 중단하고 실패한 문을 기록합니다. 쿼리당
최대 100행을 가져옵니다(더 있었다면 파일에 표시) — 결과는 표의 사본이 아니라 기록입니다.
연결은 blocks.json에 상대 경로로 저장되므로 폴더를 옮기거나 동기화해도 노트북은
계속 동작합니다. 자체 완결형 노트북을 원한다면 .lnc 자체를 번들 안에 두세요. 설정으로
취급되어 셀이 되지 않습니다. 데이터베이스 탭과 같은 연결이므로 한쪽에서 연결하면
다른 쪽에도 적용되며, 비밀번호는 암호 문구 규칙을 따릅니다. 연결을 지정하지
않으면 sql 셀은 이전처럼 설정된 인터프리터로 실행됩니다.
작업(칸반 / 간트)
작업 번들(.lnt)은 칸반(상태 열, 카드 드래그),
간트(노력량 기반 일정), 캘린더 뷰가 있는 작업 보드를
엽니다. 각 작업은 제목, 열(상태), 작업 시간(시간 단위), 연결된
.md 노트를 가질 수 있습니다. 작업은 MCP와
CLI를 통해 AI로도 접근할 수 있습니다(생성, 이동, 갱신,
노트 읽기/쓰기).
작업 노트는 다른 노트와 똑같은 노트입니다. 내장 패널이 이제 .md 노트와 같은 화면을 보여 줍니다. Ctrl+E로 텍스트 편집기·읽기·서식 편집을 오갈 수 있고, 노트 테마와 개요, 속성도 그대로 적용됩니다. 자동 저장도 유지되어, 작업을 바꾸거나 탭을 닫을 때 서식 모드에서 방금 입력한 내용까지 저장됩니다. 노트를 별도 탭으로 열 때도 텍스트 편집기를 강제하지 않고 보기 설정을 따릅니다.
작업별 필드: 상태와 작업 시간 외에도 각 작업에는 우선순위 (카드 테두리 색상 지정, 표 정렬 기준), 마감일(기한 초과 시 빨간 칩), 다중 태그, 하위 작업 체크리스트(카드의 진행 뱃지), 반복(반복 작업 완료 시 다음 항목 생성)이 있습니다. 컨텍스트 메뉴(표/칸반)와 속성 패널에서 편집합니다.
캡처와 목록: 트레이의 빠른 작업은 자연어를 이해합니다 (예: Pay bill tomorrow 5pm #home !high. 날짜·시각·우선순위를 나타내는 단어는 영어와 포르투갈어로 인식됩니다). 템플릿 버튼은 작업 템플릿을 저장/적용하고, 마감일 목록은 오늘/향후 7일/기한 초과로 필터링하며, 저장된 보기는 필터+정렬을 저장합니다. 트레이/런처는 오늘 또는 기한이 지난 작업에 대한 알림을 표시합니다.
칸반 보드: 열을 상태, 우선순위, 태그로 그룹화하고, 스윔레인을 만들고, 열별 WIP 한도를 설정하고(초과 시 헤더가 빨간색으로 표시) 카드를 정렬할 수 있습니다. Linear 스타일 키보드 탐색: ←/→로 포커스 이동, Ctrl+←/→로 카드 이동, N으로 생성, Space로 완료/재개, Delete로 삭제. 마감일 기준 캘린더 뷰도 있습니다.
내장 노트: 작업을 선택하면 뷰 옆에 해당 .md
노트가 표시되며(작업 전환 시 자동 저장), 노트 버튼으로 편집기를
켜고 끌 수 있고 탭에서 노트 열기는 노트를 별도 탭으로 엽니다.
작업을 보관하면 모든 뷰에서 숨겨지고, 보관된 항목 표시
토글을 켜면 보관된 작업이 흐리게 다시 나타납니다.
작업 설정에서 완료된 작업을 N일 후 보관을 지정할 수 있습니다. 보드를 열 때 마지막 열에 그보다 오래 있던 작업은 자동으로 보관됩니다(0 = 꺼짐).
노트는 기본적으로 내장되어 열리며(작업을 더블 클릭) 입력하는 동안 자동 저장됩니다. 작업은 닫을 때 "저장하시겠습니까?"라고 묻지 않습니다. 노트 안에서도 AI 동작(Ctrl+K / Ctrl+I)을 사용할 수 있습니다.
탭 도구 모음. 선택한 작업에 의존하는 동작(삭제, 의존 관계, 기록 (Git))과 CSV 내보내기는 ⋮ 버튼에 모였습니다. 보기 버튼에는 마감일별 목록, 저장한 보기, 보관된 항목 표시가 들어 있으며 모두 표에 적용됩니다. Ctrl+F는 빠른 필터에 포커스를 주고, 오른쪽 카운터는 필터 후 남은 작업 수를 보여 줍니다.
사용자 지정 표(.lnd)
사용자 지정 표(.lnd, 파일 → 새로 만들기에서
생성)는 나만의 미니 데이터베이스입니다: 실행 중에 열을 정의하고
(텍스트, 숫자, 날짜, 색상이 있는 고정 목록, 경로, 태그,
비밀번호) 스프레드시트처럼 행을 채우며 정렬과 필터링을 사용할
수 있습니다. 경로 필드는 행을 트리 형태로 그룹화합니다(예:
집/사무실).
비밀번호 셀은 암호 문구로 개별 암호화되며 필요 시 표시됩니다. 작업과 마찬가지로 번들은 Git 친화적 텍스트(NDJSON)로 저장되어 — 여러 기기 간에 버전 관리와 병합이 가능합니다.
텍스트 열에서 셀을 열면 떠 있는 여러 줄 편집기가
나타납니다: Enter는 줄바꿈을 삽입하고 Ctrl+Enter는
확정합니다. 그리드에는 텍스트가 한 줄로(… 포함) 표시되며
전체 내용은 툴팁에 나타납니다. 열의 유형을 변경하려면 헤더 메뉴를
사용하세요: 텍스트 → 비밀번호 변환은 값을 암호 문구로 암호화하고,
비밀번호 → 텍스트 변환은 확인과 PIN/암호 문구를 요구한 뒤 내용을
평문으로 씁니다(되돌릴 수 없음). 다른 변환은 값을 그대로 유지합니다.
베이스(노트 저장 쿼리)
베이스(.lnq, 파일 → 새로 만들기 → 새 베이스)는 노트에 대한
저장된 쿼리입니다. 유형과 속성으로 필터링하여 결과를 테이블 또는
보드로 봅니다. 베이스는 데이터를 전혀 저장하지 않습니다 — 행은 여러분의
.md 노트이며, 각 셀의 진실의 원천은 노트의 frontmatter입니다.
.lnq를 삭제해도 노트는 하나도 잃지 않습니다.
셀을 편집하면 노트에 기록됩니다. 테이블에서 속성을 바꾸면 해당 파일 frontmatter의 그 줄만 다시 씁니다. 보드에서 카드를 다른 열로 끌면 그룹화 속성의 새 값이 기록됩니다 (예: 읽는 중에서 읽음으로).
각 노트는 frontmatter에 속성을 선언합니다(type, status,
author 등). 노트의 속성 사이드 패널을 사용하면 원시 YAML 대신
형식이 있는 필드(텍스트, 숫자, 날짜, 체크박스)로 편집할 수 있습니다 —
Markdown 노트를 참고하세요.
.lnq는 NDJSON(한 줄에 한 레코드)이며 Git을 염두에 두고
설계했습니다. 두 대의 컴퓨터가 같은 베이스를 동시에 편집해도 — 한쪽은 열을 추가하고
다른 쪽은 필터를 조정 — 병합이 두 변경을 충돌 없이 모두 유지합니다.
선언된 스키마(선택). LightNote는 기본적으로 노트가 실제로 사용하는 내용에서
각 유형의 필드를 유추합니다 — 아무것도 선언할 필요가 없습니다. 스키마를 고정하고
싶다면 도구 → 노트 유형...(또는 노트 속성 미니 바의 톱니바퀴 버튼)을 열어
각 유형의 필드, 데이터 유형(텍스트·숫자·날짜·확인란·선택 목록),
기본 템플릿을 선언하세요. 스키마가 있으면 선택 목록 필드는 허용된 값만 담은
드롭다운이 되고, 선언된 필드는 아직 어떤 노트도 사용하지 않았더라도 베이스의 열·
필터 선택기에 나타나며, 유형 템플릿 적용 버튼이 노트의 뼈대를 넣어 줍니다. 스키마는
.lightnote/types.ndjson에 있으며, 병합 가능한 NDJSON으로 노트와 함께 Git으로
버전 관리됩니다. 삭제해도 노트는 바뀌지 않고 다시 유추로 돌아갈 뿐입니다.
필터의 상대 날짜. 조건의 값에는 today, yesterday, tomorrow, 7 days ago, in 2 weeks 같은 말을 쓸 수 있습니다(3 months ago, in 1 week도 됩니다). 그래서 마감 = today와 마감 < today(지남)는 내일도 그대로 뜻이 통합니다 — 예전에는 그날 날짜를 손으로 적는 수밖에 없었고, 저장한 질의는 24시간이면 낡았습니다. 값은 언제나 시점이며, 구간은 연산자와의 조합에서 나옵니다: 수정 > 7 days ago는 "이번 주에 손댄 것"입니다. 그 항목에 읽을 수 있는 날짜가 없는 노트는 부정을 포함해 어떤 날짜 비교에도 들어가지 않습니다. 손으로 적은 ISO 날짜(2026-09-01)는 지금처럼 텍스트로 처리됩니다.
색인은 뒤에서 돕니다. 베이스와 도구 → 노트 질의(SQL)는 결과를 보여주기 전에 노트를 훑습니다 — 파일마다 stat을 하고, 지난번 이후 바뀐 노트를 읽습니다. 이제 그 일은 창 바깥에서 일어납니다: 베이스는 곧바로 열려 막대에 노트를 색인하는 중…이라고 알리고, 끝나면 내용이 채워집니다. 그동안 다시 색인 단추는 비활성입니다 — 같은 폴더를 한 번 더 훑어도 얻을 것이 없기 때문입니다.
파일 검색과 대기 항목
파일과 문서에서 찾기
사이드바의 검색 탭에서 전역 검색을 사용하려면 Ctrl+Shift+F를 누르세요. ripgrep 기반으로 정규식, 대소문자 구분, 온전한 단어, 일괄 바꾸기를 지원합니다. 현재 파일 안에서는 Ctrl+F로 찾고 Ctrl+H로 바꿉니다.
검색은 문서에도 닿습니다. .md 노트뿐 아니라
PDF, 스프레드시트(.xlsx/.ods), Word 문서
(.docx), LibreOffice 텍스트(.odt), 프레젠테이션
(.pptx), 전자책(.epub)의 텍스트도 읽습니다. AI 채팅과
의미 기반 검색도 마찬가지입니다. PDF에서 찾은 결과를 열면 그 대목이 있는
페이지로 파일이 열립니다. 추출된 텍스트는 작업 공간 바깥의 캐시에
있으며, 파일이 바뀌면 스스로 갱신되고 파일이 사라지면 함께 지워집니다. 처음 한 번은 시간이 걸립니다. PDF가 많은 작업 공간을 열면 몇 분이 걸리는 추출이 시작되고, 그것이 끝날 때까지 문서는 아직 검색에 들어가 있지 않습니다. 그동안 검색 탭이 그 사실을 알려 주고(문서를 준비하는 중입니다(80개 중 12개)), 다시 검색해도 될 때를 알립니다. 두 번째부터는 바뀐 파일만 다시 합니다.
.rtf, .xps/.oxps, LibreOffice 프레젠테이션(.odp), 동영상 자막(.srt/.vtt), 텍스트 표(.csv/.tsv), 저장한 페이지(.html/.mhtml), 보관한 메일(.eml), Jupyter 노트북(.ipynb), 서지(.bib/.ris), 그리고 일반 텍스트 파일(.txt)도 포함됩니다. 텍스트 마크업 언어는 전용 리더가 있습니다. reStructuredText(.rst), AsciiDoc(.adoc), Org(.org), Typst(.typ)에서 섹션은 제목이 되고, 목록과 표는 이 앱의 방식으로 바뀌며, 수식은 그려지고, 서문은 제외됩니다. 그렇지 않으면 #set page(...)와 :stem: latexmath가 색인 조각이 되고, 섹션 이름이 본문과 함께 전달되지 않습니다. 자막에서 찾은 결과는 그 말이 나온 시점을 엽니다. 스캔한 PDF는 조용히 사라지지 않습니다. 페이지는 있는데 텍스트가 없는 문서(각 페이지를 찍은 사진, OCR 없음)는 그 사실을 알리는 한 줄과 함께 색인에 들어가고, 검색 탭이 몇 건인지 알려 줍니다. 이 문장이 없으면 책에 있는 말을 찾다가 찾지 못하고 검색이 고장 났다고 여기게 됩니다. 읽을 수 있게 만들 수도 있습니다. Tesseract가 설치되어 있으면(LightNote가 한 번의 클릭으로 설치를 안내합니다) PDF의 ⋯ 메뉴에 텍스트 인식(OCR)…이 나타납니다. 문서마다 한 번만 돌고 몇 분이 걸릴 수 있으며, 끝나면 그 텍스트는 다른 PDF와 똑같이 색인에 들어갑니다. 검색 탭의 안내는 그런 상태의 첫 문서로 데려갑니다. 캐시는 텍스트를 평문으로 보관합니다. 작업 공간 밖, 사용자 폴더에 있습니다. 그 폴더에 접근할 수 있는 사람은 원본이 암호화된 디스크에 있더라도 거기서 문서 내용을 읽을 수 있습니다. .lne 파일(암호화된 메모)은 결코 캐시에 들어가지 않습니다. 디스크에서 읽힐 수 없게 하려고 존재하는 기능이기 때문입니다.
LaTeX는 전용 읽기 도구로 들어옵니다. .tex
파일은 날 텍스트로 읽히지 않습니다. 프리앰블은 빠지고, \section은 제목이 되며,
\cite는 [@key]가 되고, 수식은 그대로 통과합니다 — 그리는 것은 노트의
수식을 그리는 바로 그 엔진입니다. 검색 결과는 그 줄에서 파일을 엽니다. 파일의 오른쪽 클릭
메뉴에는(파일이 열려 있으면 탭 도구 모음에도) 노트로 가져오기 (.md)가 있습니다. 노트는 옆에
만들어지고, .tex는 그대로 남으며, 두 번 가져와도 덮어쓰지 않습니다. 반대 방향은 노트
도구 모음의 LaTeX(.tex)로 내보내기...입니다.
문서 미리 보기와 소스 코드
문서를 열면 텍스트 미리보기가 나타납니다. .docx,
.odt, .epub, .pptx는 읽기 전용으로
열리며 추출된 텍스트와 문서의 이미지를 보여줍니다 — Word 스타일, 이미지 배치,
복잡한 표, 변경 내용 추적은 없습니다. 탭은 여전히 그 문서입니다. 이름도 폴더도 세션도 캐시가 아니라 문서를
가리킵니다. .xlsx 스프레드시트는 훨씬 더 많은 것을 보여주는 표 보기에서
계속 열립니다.
문서를 노트로 만들기. 파일 → 문서를 노트로 가져오기...(여러 개를 한 번에), 트리의 컨텍스트 메뉴, 또는 미리보기 자체의 노트로 가져오기 (.md) 버튼으로 .docx, .odt, .epub, .rtf, .pptx, .html, .eml, PDF, LaTeX가 파일 옆의 편집할 수 있는 노트가 됩니다. 제목·목록·링크·표가 담긴 텍스트, 각주, LaTeX 수식이 된 Word 수식, 그리고 이미지가 함께 옵니다. 이미지는 노트 옆의 첨부 폴더에 저장됩니다. 문서의 제목, 작성자, 날짜는 속성이 되고, source가 노트가 어느 파일에서 왔는지 알려 줍니다. 원본은 그대로 남아 있습니다 — 가져오기는 변환이 아닙니다 —. 다시 가져오면 편집한 내용을 덮어쓰지 않고 이름 02.md를 만듭니다. Jupyter 노트북(블록이 됩니다), .csv(표로 열립니다), .bib/.ris 참고문헌(인용이 직접 읽습니다), 소스 코드에는 나타나지 않습니다. 구조는 문서의 스타일에서 가져옵니다. Word 제목은 스타일 이름이 번역되어 있어도 인식되고, 문자 스타일에서 굵게·기울임·코드가, 인용과 코드 단락에서 우리 블록이 만들어지며, 자동 목차는 노트가 최신으로 유지하는 [TOC]가 됩니다. .rtf에서는 목록·표·링크가, HTML(Word와 Google 문서가 저장한 것 포함)과 EPUB에서는 제목·중첩 목록·표가 들어옵니다.
이 폴더가 다른 편집기의 표기를 얼마나 쓰는지 보기. 도구 → 폴더 호환성 확인...을 선택하면 LightNote가 열린 폴더의 노트를 읽어 찾은 것을 세 가지로 나눕니다. 그리는 것(위키링크, 트랜스클루전, 콜아웃, 레이블, 강조, 수식, 각주, 작업, 블록 표시), 파일에는 남지만 그려지지 않는 것(플러그인 쿼리 dataview, tasks, query, .canvas 캔버스, .base 베이스, 블록 트랜스클루전), 그리고 여기 표기로 변환할 수 있는 것입니다. 변환은 사용자의 선택이며 저장의 부작용이 결코 아닙니다. 구문을 선택하고 나란히 놓인 미리 보기를 확인한 뒤 결정하세요. 변경되는 파일은 기록 전에 파일 기록에 남고, 저장하지 않은 변경이 있는 열린 파일은 제외됩니다. 지금은 변환이 두 가지이며, 둘 다 Obsidian 쪽에서 잃는 것이 없습니다(그쪽은 두 표기를 모두 읽습니다). 이 폴더를 가리키는 obsidian:// 링크는 [[노트]]가 되고(다른 보관함을 가리키는 것은 대상이 달라지므로 변환하지 않습니다), 인라인 각주 ^[텍스트]는 [^n]이 되며 정의는 끝에 놓입니다.
Notion 자료를 통째로 가져오기. Notion 에서 Export → HTML(또는 Markdown & CSV)을 Include subpages 와 함께 실행하고, 내려받은 .zip(또는 폴더)을 작업 공간 안에 두고, 가져올 폴더를 만든 다음 lnote vault-import --path <내보낸 것> --out <대상> 을 실행합니다(AI 어시스턴트에서는 vault_import 도구로도 됩니다). 압축을 풀 필요는 없습니다. 안에 .zip 이 하나 더 든 작업 공간 전체 내보내기도 마찬가지입니다. 각 페이지는 노트가 됩니다. 페이지 속성은 노트 속성이 되고, Notion 의 색깔 콜아웃은 여기의 상자가 되며(HTML 에서는 색이 종류를 정합니다. Markdown 은 색을 저장하지 않아 상자는 노트로 들어옵니다), 할 일은 체크 상태를 그대로 유지한 채 들어오고, 수식은 LaTeX 수식이 되며, 접는 블록은 <details> 상자가(접는 제목은 제목이) 되고, 페이지 목차는 [TOC] 가 되며, 페이지 사이의 링크는 새 노트로 다시 쓰입니다. 제목이 같은 페이지 두 개도 함께 존재합니다. 두 번째가 이름 02.md 가 되고 링크는 여전히 맞는 쪽을 가리키기 때문입니다. 데이터베이스는 .csv 로 Anexos 에 복사됩니다. Notion 에서 쓴 #주제 는 글자로 남습니다. 거기서 레이블이 아니었으니 여기서도 레이블이 되지 않습니다. 아무것도 덮어쓰지 않으며, 옆에 보고서 노트가 기록되어 들어온 노트와 첨부의 수를 알려 주고 대상을 찾지 못한 링크를 나열합니다. 그 링크들은 적힌 그대로 남습니다.
이 동작은 메뉴에 있습니다. 파일 → 다른 앱에서 가져오기...를 누르면 도우미가 열립니다. 내보낸 폴더나 .zip을 고르면(Evernote의 .enex도 됩니다) 원본 앱이 파일 이름의 형태로 인식됩니다 — 인식되지 않으면 옆의 목록에서 고르세요. 폴더는 하위 페이지까지 통째로 읽습니다. 대상은 작업 공간 안의 새 폴더로 미리 채워져 있고 이름은 앱 이름이라, 가져온 자료가 내 노트와 섞이지 않습니다. 읽기와 쓰기는 창 밖에서 돌아가며, 끝나면 노트와 첨부가 몇 개 들어왔고 링크를 몇 개 다시 작성했는지 화면이 알려 줍니다.
다섯 개의 앱을 읽습니다. Notion은 HTML 이나 Markdown 으로 내보낸 폴더나 .zip, Evernote는 .enex, Joplin은 .jex(또는 MD + Front Matter 폴더), Logseq는 그래프 폴더(logseq/config.edn이 들어 있는 폴더), Roam Research는 내보낸 .json입니다. 모두에서 노트북과 네임스페이스는 폴더가 되고, 일지는 yyyy-MM-dd 이름으로 데일리 노트 폴더에 들어가며, 할 일은 - [ ], 강조는 ==이렇게==, 블록 참조는 그 블록의 글과 그것이 있는 페이지의 링크가 됩니다. 다른 앱의 문법은 작업 공간에 들어오지 않습니다. 여기에 대응이 없는 것, 예컨대 Logseq의 쿼리나 Roam의 표는 줄 안의 코드로 남고, 보고서가 몇 번인지 알려 줍니다.
소스 코드도 의미 검색에 넣을 수 있습니다. 작업 공간 → 이 폴더 설정에 소스 코드를 의미 검색에 포함이 있습니다. 코드 파일이 메모와 함께 색인되며 함수나 클래스마다 한 조각이 됩니다 — “타임아웃은 어디서 처리하지?” 같은 질문이 if 한가운데서 잘린 조각이 아니라 함수 전체를 찾아내는 이유입니다. .gitignore를 존중합니다. 기본값은 꺼짐이며 폴더별입니다. 메모는 천천히 바뀌지만 코드는 하루 종일 바뀌고, 작업 중인 저장소는 수만 개의 조각을 만듭니다 — 하나하나가 임베딩 제공자가 청구하는 호출입니다.
강조, 표시, 대기 항목
강조와 표시는 서로 다른 것입니다. 빠른 찾기(Ctrl+F)는 일치 항목을 호박색으로 강조할 뿐입니다. 일시적이며 막대를 닫거나 입력란을 비우면 사라집니다. 반면 편집 → 고급 찾기…의 모두 표시는 사용자의 결정입니다. 일치 항목을 빨간색으로 칠하고 해당 줄에 책갈피(여백의 파란 점)를 추가하며, 표시 지우기를 사용할 때까지 남습니다. 둘은 독립적입니다. 빠른 찾기를 닫아도 표시해 둔 것은 지워지지 않고, 표시를 지워도 찾기 강조는 사라지지 않습니다. 둘 다 미니맵의 표시 띠에 각자의 색으로 나타납니다. 표시 지우기는 모두 표시가 만든 점만 지웁니다. 검색과 일치하는 줄에 직접(Ctrl+F2) 넣은 책갈피는 그대로 남습니다.
사이드바의 대기 항목 섹션은 코드의 TODO/
FIXME 표시와 작업 공간 Markdown 노트의 작업
(- [ ])을 한곳에 모아 클릭하면 해당 줄로 바로 이동합니다.
버전 관리(쉬운 Git)
저장소 복제
이미 있는 저장소에서 작업하려면 파일 → Git 저장소 복제...를 사용하세요. 이 항목은 시작 화면과, 아직 저장소가 아닌 폴더의 버전 관리 패널에도 있습니다. 저장소 페이지에 표시된 HTTPS 또는 SSH 주소를 붙여 넣으세요. 페이지 자체의 URL도 되고, git clone ... 명령을 통째로 복사한 것도 됩니다. 상위 폴더와 폴더 이름을 고르면 어디에 만들어질지 보여 주고, 그 자리에 이미 무언가 있으면 알려 줍니다. 고급 옵션에는 브랜치, 얕은 복제(마지막 커밋만), 하위 모듈이 있습니다.
서버가 로그인을 요구하면 LightNote가 창으로 묻습니다. 사용자 이름과 토큰, SSH 키 암호, 또는 이 컴퓨터가 한 번도 본 적 없는 서버 키에 대한 확인입니다. 마지막 경우에는 지문과 서비스가 공개한 목록으로 가는 링크가 함께 표시되며, 기본값은 신뢰하지 않음입니다. 답변은 Git으로 바로 전달되고 LightNote는 저장하지 않습니다. 저장하는 쪽은 Git의 자격 증명 관리자이며, 설치되어 있을 때만 그렇습니다(Git for Windows에는 Git Credential Manager가 들어 있습니다). 키를 신뢰하면 ssh가 하는 것과 똑같이 ~/.ssh/known_hosts에 기록됩니다.
복제가 실패하면 화면이 무슨 일이 있었는지 알려 주고 해결책을 제시합니다. SSH 키가 거부되면 HTTPS로 시도하기, 회사 프록시가 HTTPS를 검사하면 Windows 인증서 사용하기, 도중에 연결이 끊기면 마지막 커밋만 내려받기, Windows가 파일을 만들지 못하면 긴 경로 사용하기 같은 것입니다. 기술 정보에는 Git의 메시지가 담기고, 알아보지 못한 내용은 AI에 물어볼 수 있습니다. 끝나면 복제된 폴더를 이 창이나 새 창에서 엽니다.
열린 폴더 버전 관리
버전 관리는 작업 공간별 선택 사항입니다. 도구 → 작업 공간 설정에서 활성화하면 LightNote가 Git 저장소를 (아직 없다면) 생성하고 버전 관리 사이드바(Ctrl+Shift+G)를 표시합니다.
자동 모드에서는 일반 설정에서 선택한 시점(저장 시, 탭 닫을 때, 창 닫을 때)에 LightNote가 스스로 버전(커밋)을 저장합니다. 수동 모드에서는 메시지를 작성하고 패널에서 버전을 저장합니다. 상태 표시줄 표시기는 상태(변경 없음, X개 변경됨 등)를 보여주며 클릭하면 작업 공간 설정이 열립니다. 각 파일의 diff를 보고 저장하지 않은 변경 사항을 복원(취소)할 수 있습니다.
자동화에는 폴더별로 3단계가 있습니다(작업 공간 설정에서): 수동(자동화 없음), 자동 커밋(스스로 버전을 저장하지만 동기화는 하지 않음), 완전 자동(커밋 그리고 동기화 — 커밋 후 푸시 + 주기적 풀; 프롬프트 없는 Git 자격 증명 필요)입니다. 패널에는 원격 저장소 대비 ↑ 보낼 항목 / ↓ 받을 항목을 보여주는 상태 줄이 있으며, 보낼 버전이 있을 때 메인 버튼이 커밋에서 동기화로 바뀌어 저장 후에도 동기화가 필요함을 알려줍니다.
Git 패널과 트리의 Git 메뉴에는 파일별 추가(git add)와 복원(git restore), 그리고 비교 화면을 여는 바뀐 내용 보기 하나가 있습니다.
비교 화면은 두 버전을 나란히 정렬해 보여 줍니다. 같은 부분은 언제나 서로 마주 보고, 각 쪽에는 그 파일의 줄 번호가 표시됩니다. 바뀐 줄은 호박색으로 나타나며 줄 안에서 달라진 부분이 강조됩니다. 통합 보기 단추는 패치 형식으로 전환하고, 좌우 바꾸기는 비교 기준을 바꾸며, F8 / Shift+F8은 변경 지점을 차례로 이동합니다.
기록과 변경 표시줄
코드 편집기와 노트 도구 모음의 기록 단추는 열려 있는 파일의 버전 목록을 엽니다(사이드바의 같은 섹션입니다). 여기에는 커밋과, LightNote가 Ctrl+S마다 기록하는 로컬 저장이 함께 모이므로 저장소가 아닌 폴더에서도 쓸 수 있습니다. 각 줄에는 제목, 작성자, 시점, 늘고 준 줄 수가 나오고, 점으로 내 커밋과 LightNote 자체의 저장, AI 세션에서 온 커밋을 구분합니다. 커밋하지 않은 변경이 있으면 그것이 첫 줄입니다. 버전을 클릭하면 그 버전에서 바뀐 내용이 나옵니다. 전체 버전 열기, 현재 버전과 비교, 선택한 두 버전 비교는 오른쪽 클릭에 있습니다.
버전 관리가 켜져 있으면 여백의 색 띠가 마지막 커밋 이후 바뀐 줄을 표시합니다 — 코드 편집기뿐 아니라 노트에서도 그렇습니다. 띠는 입력을 따라 갱신되어, 원래대로 되돌리면 저장을 기다리지 않고 사라집니다. 끄려면 보기 → 변경 띠를 쓰세요. 끄면 감춰지는 것이 아니라 계산 자체를 하지 않습니다. 띠를 클릭하면 그 부분이 어땠는지 보이고, 이 부분 되돌리기(Ctrl+Z로 취소), 원본 복사, 그리고 그 줄에 맞춰 전체 비교를 여는 차이에서 보기를 쓸 수 있습니다. 로컬 기록에 관한 한 가지: 경로별로 보관되므로 파일 이름을 바꾸면 그 파일의 로컬 저장은 사라집니다. Git 커밋은 사라지지 않습니다.
스냅샷과 백업
버전 관리 패널의 ⋯ 메뉴(또는 도구 메뉴)에서:
- 스냅샷 생성: 현재 상태를 날짜/시간 라벨로 표시해 나중에 돌아올 수 있게 합니다.
- 스냅샷 복원: 스냅샷을 선택하고 방법을 고릅니다 — 기록을 유지한 채 파일만 되돌리기(권장), 그 시점까지 기록을 되감기, 또는 별도 사본으로 열기.
- 사본 내보내기(.zip): 전체 작업 공간을 하나의 파일로 압축합니다(프로젝트 표식 포함) — 전송이나 별도 보관용.
- 작업 공간 폴더 이동…: 루트를 디스크에서 이동시키고 세션과 레지스트리 경로를 조정합니다.
변경 사항 검토(체크포인트)
도구 → 변경 사항 검토…는 하나의 탭에서 기준점 이후 작업 공간에서 변경된 모든 것의 통합 diff를 보여줍니다: 왼쪽에는 추가/수정/삭제된 파일 목록, 오른쪽에는 선택한 파일의 diff. AI CLI 세션이 변경한 내용을 검토하고 작업을 수락하기 전에 확인하도록 설계되었습니다.
기준점은 마지막 버전(HEAD) 또는 체크포인트가 될 수 있습니다: 작업을 시작하기 전에 하나 만들고(탭 자체의 버튼) 나중에 비교하세요. 체크포인트는 커밋을 만들지 않으며 기록에 영향을 주지 않습니다. 해당 폴더에 버전 관리가 활성화되어 있어야 합니다.
묶음 댓글. AI 세션을 검토할 때 댓글 버튼(파일 목록의 컨텍스트 메뉴에도 있음)은 선택한 파일에 대한 의견을 적어 둡니다. 선택한 발췌에 고정됩니다. 의견은 목록에 쌓였다가, 세션으로 보내기를 눌러야만 한 번에 모두 CLI 터미널로 전달됩니다. 의도적입니다. 한 건씩 보내면 에이전트가 하나를 고치고 다른 하나를 망가뜨립니다. 각 회차는 다른 지적을 보지 못하기 때문입니다. 수정 후에도 의견은 목록에 남아 반영되었는지 확인할 수 있습니다. 해결됨을 표시하면 다음 발송에서 제외됩니다. 에이전트가 댓글한 영역을 다시 쓴 경우, 의견은 사라지지 않고 회색으로 표시됩니다. 전송은 상태 표시줄에서 확인되며, 휴면 중인 세션은 묶음을 받기 위해 자동으로 재개됩니다.
파일 비교(diff)
도구 → 두 파일 비교…는 두 파일을 나란히(편집기 두 개) 열고 줄 단위로 차이를 표시합니다. 비교는 읽기 전용입니다.
◀ / ▶ 버튼(또는 F8 / Shift+F8)으로 이전/다음 변경으로 이동합니다. Git 패널에서 파일을 저장된 버전과 나란히 비교할 수도 있습니다(HEAD 대 디스크).
코드 실행(F5)
도구 → 파일 실행(F5)은 현재 파일을 저장하고 확장자에
등록된 인터프리터에 따라 터미널에서 실행합니다. 기본값은
.py, .sh, .bat, .cmd,
.sql을 포함하며, 설정 → 실행에서 인터프리터를
편집/추가할 수 있습니다.
명령은 {file}(파일), {folder}(폴더),
{name}(이름)을 포함하는 템플릿입니다 — 예를 들어 Python의
경우: python {file}. Ctrl+Shift+Enter로 선택
영역/현재 줄만 터미널로 보낼 수도 있습니다. 블록의
각 셀도 같은 방식으로 실행됩니다.
실행 버튼에는 터미널이 여러 개 열려 있을 때 대상 터미널을 선택하고 기억하는 드롭다운이 있습니다.
클릭할 수 있는 오류. 출력 패널(F6)에서 파일:줄 형태의 참조가 링크가 됩니다. Ctrl+클릭이나 더블클릭하면 해당 위치로 파일이 열립니다. 파이썬 트레이스백, Node 스택, 컴파일러(gcc/clang/MSVC) 오류, 린터 출력에 모두 동작합니다. 디스크에 실제로 존재하는 경로만 링크가 되고 나머지는 일반 텍스트로 남습니다.
오류를 차례로 보기. 출력 패널에서 F8은 다음 오류로, Shift+F8은 이전 오류로 이동합니다(패널 표시줄에 버튼도 있습니다). 이동은 순환하며, 출력을 해당 위치까지 스크롤해 강조하고 파일을 정확한 지점에서 엽니다.
터미널과 AI CLI
명령별 상태 점. 실행한 각 명령 옆에 점이 나타납니다: 성공하면 파란색, 실패하면 빨간색(툴팁에 시간, 소요 시간, 종료 코드 표시). LightNote는 설정을 바꾸지 않고도 PowerShell과 Git Bash에서 이 기능을 자동으로 활성화합니다 — 설정 → 터미널 → 셸 통합에서 켜고 끌 수 있습니다. 다른 셸(cmd, WSL)이나 사용자 지정 명령에서는 점이 표시되지 않습니다.
Ctrl+'(미국 키보드 배열에서는 Ctrl+`도)로 통합 터미널(ConPTY 기반 완전한 VT 에뮬레이터)을
엽니다. 탭이 되어 창 영역 간에 이동할 수 있습니다. 사용 가능한 셸과
PATH에서 감지된 AI CLI(예: claude)는 설정 →
터미널과 설정 → AI 어시스턴트에서 설정합니다. 새 터미널
메뉴에서 AI CLI를 선택하면 해당 CLI가 터미널 자체로서 열립니다 —
TUI/색상이 정상적으로 표시되고 종료하면 탭이 닫힙니다.
전송 예약. 터미널 컨텍스트 메뉴(우클릭)의 전송 예약…은 나중에 Enter(또는 텍스트)를 전송하도록 설정합니다 — 사용량 한도가 초기화될 때 AI CLI를 다시 시작하는 데 유용하며, 지켜보지 않아도 됩니다. 트리거를 선택하세요: 특정 시각, 몇 분 후, 매 간격마다(반복), 또는 터미널이 유휴 상태가 될 때. 실행될 때까지 컴퓨터는 깨어 있는 상태로 유지됩니다. 예약은 터미널 탭이 열려 있는 동안 유지됩니다.
여러 예약을 동시에 둘 수 있습니다. 예약이 있으면 메뉴 항목이 예약된 전송 (N)…으로 표시되고 관리자가 열립니다: 터미널, 전송 내용, 시각, 다음 발동까지의 실시간 카운트다운을 보여주는 표와 새로 만들기, 편집, 제거 버튼이 있습니다. 예약이 있는 동안 상태 표시줄에 개수가 표시된 시계 표시기가 나타나고(클릭하면 관리자가 열림) 작동 중인 터미널 탭에도 작은 시계 표시가 붙습니다.
AI 턴 종료 알림. AI CLI 터미널이 조용해지면 — 에이전트가 턴을 마쳤다는 신호입니다 — LightNote가 알려 줍니다. 토스트가 뜨고(클릭하면 그 터미널로 이동합니다) 탭이 몇 번 깜빡인 뒤, 열어 볼 때까지 강조 표시가 남습니다. 창이 뒤에 있으면 작업 표시줄 버튼도 깜빡입니다. 이 알림은 AI CLI 터미널에만, 그리고 해당 탭에 포커스가 없을 때만 동작합니다. 켜기/끄기와 무음 판정 시간은 설정 → 터미널 → AI 턴 종료 알림에서 조정하세요.
터미널은 창과 함께 돌아옵니다. 작업 공간을 닫았다가 다시 열면 일반 셸 터미널(명령 프롬프트, PowerShell, Bash)이 다시 열립니다. 그것도 터미널이 처음 열렸던 폴더가 아니라 작업하던 폴더에서 열립니다. 화면 내용은 돌아오지 않지만 명령 기록은 셸 자체의 것이라 그대로 남아 있어 ↑ 키는 평소처럼 동작합니다. AI 어시스턴트 세션은 제외되며 계속 따로 물어봅니다. 새 터미널은 같은 대화가 아니기 때문입니다. 환경 변수나 그 세션에서 손으로 활성화한 환경(예: venv)도 돌아오지 않습니다. 터미널은 올바른 폴더에서 열리지만 새 셸입니다.
선택 영역에 대한 AI 어시스턴트(Ctrl+K / Ctrl+I)
AI에 묻고 AI로 편집하기
기본 AI. 설정 → AI 어시스턴트 상단의 기본 AI는 Ctrl+K/Ctrl+I, AI 채팅 채팅(세션별로 변경 가능) 및 자동 작업(질문 다시 쓰기, 요약, 오디오 요약, 컨텍스트 생성)에서 사용하는 어시스턴트를 선택합니다. CLI와 API 제공자를 모두 나열합니다. 오디오 전사와 embeddings는 자체 제공자가 있으며, LightNote는 선택한 제공자에 따라 모델을 제안합니다.
편집기에서 Ctrl+K(AI에게 질문)나 Ctrl+I(AI로 편집)를 누르면 — 선택 영역이 있든 없든 — 인라인 채팅 스타일의 떠 있는 팝업이 열립니다: 프롬프트 입력란에는 빈 줄 아래로 선택 영역이 미리 채워지며, 그 위에 지시문을 입력하고 Ctrl+Enter로 전송합니다. 팝업에서는 AI(기본값이 미리 선택됨)와 결과 모드를 선택합니다: diff를 통해 선택 영역을 바꾸기(원본 × 제안, 수락 / 복사 / 거부 포함) 또는 답변을 텍스트로 표시만 하기.
LightNote는 AI CLI를 "원샷" 모드로 실행합니다(터미널을 열지 않음). CLI와 기본 AI는 설정 → AI 어시스턴트에 있습니다.
모델 연결하기
API를 통한 모델. 로컬 CLI 외에도 설정 → AI 어시스턴트에서 OpenAI 호환 API(OpenAI, Groq, DeepSeek, OpenRouter, Gemini, Anthropic, Ollama/LM Studio 같은 로컬 인스턴스 등)를 통해 LLM 모델을 등록할 수 있습니다. 카탈로그에서 제공자를 선택하면(기본 URL 자동 입력) 키를 붙여넣고(이 기기에만 인코딩되어 저장됨) 모델 가져오기…와 테스트를 사용하세요. 등록된 모델은 CLI와 함께 동일한 Ctrl+K 선택기에 나타납니다.
한 단계로 연결하기. 보통은 표를 채울 필요가 없습니다. 설정 → AI 어시스턴트에서 AI 연결…을 클릭하고 제공자를 고른 뒤(목록에는 무료 요금제 있음인 것과 내 컴퓨터에서 실행, 키 불필요인 것이 표시됩니다) 세 단계를 따라 버튼으로 키 발급 페이지를 열고 키를 붙여넣으세요. 주소와 모델은 LightNote가 알아서 채우고 저장하기 전에 연결을 테스트합니다. 잘못된 키는 대화 도중이 아니라 그 자리에서 드러납니다. 위쪽 목록에는 이미 연결된 항목과, 빠진 것이 있는 항목에서 무엇이 빠졌는지(“키를 붙여넣지 않음”, “모델을 선택하지 않음”)가 표시되며, 두 번 클릭하면 해당 제공자로 연결 창이 다시 열립니다.
세부 조정. 주소, 모델, MCP 권한, CLI 명령, 음성 전사, 임베딩은 모두 페이지 아래의 고급에 그대로 있습니다. 연결 창 안의 고급 옵션에서도 연결하기 전에 기본 URL과 모델을 바꿀 수 있습니다. 없앤 것은 없습니다. 처음 시작하는 사람의 앞길에서 비켜 놓았을 뿐입니다. 임베딩에는 선택 항목인 차원 필드도 있습니다. 일부 모델은 더 작은 벡터(1536 대신 512)를 돌려줄 수 있어, 품질 손실은 거의 없이 캐시가 절반이 됩니다. 잘 모르겠다면 (모델 기본값)으로 두세요 — 모든 제공자가 이 매개변수를 받아들이지는 않습니다. 값을 바꾸면 캐시가 무효가 됩니다: 차원이 다른 벡터는 비교할 수 없으므로 캐시는 버려지고 다음 검색에서 다시 만들어지며, 그만큼 호출 비용이 새로 듭니다.
모든 실패가 같지는 않습니다. 필요한 대처가 정반대이기 때문에 LightNote는 종류를 나누어 다룹니다. 제공자 과부하와 호출 속도 제한은 시간이 지나면 풀립니다. 앱이 스스로 호출을 다시 시도하고 제공자가 요청한 대기 시간도 지키므로, 그래도 안 될 때만 오류가 보입니다. 잔액이나 지출 한도는 아무리 반복해도 해결되지 않습니다. 계속 시도하지 않도록 메시지가 그렇게 알려 줍니다. 대화가 너무 길어졌을 때 필요한 것은 새 세션이지, 다른 모델이 아닙니다. 그리고 모델 자체의 문제—단종, 계정 범위 밖, 요금제 범위 밖, 또는 호출을 받고도 응답하지 않음—만이 모델을 바꿔서 풀리는 경우입니다. 요청된 대기 시간이 기다리기에 너무 길면, 창을 멈춰 두는 대신 메시지가 몇 초를 요청했는지 알려 줍니다.
스스로 모델 바꾸기. 현재 모델이 실패하면 자동으로 모델 변경을 체크하면, LightNote가 바로 그 자리에 표시된 순서대로 해당 제공자의 추천 모델을 시도합니다. 기본으로 꺼져 있는 것은 의도한 것입니다. 시도 하나하나가 사용자 계정에 청구되는 호출이기 때문입니다. 대체 모델이 사용자가 고른 모델보다 비싼 일은 없습니다—목록은 비싼 것부터 싼 것 순으로 게시되고 앱은 그 목록을 내려가기만 합니다. 목록에 없는 사용자 지정 모델은 곧바로 가장 싼 것으로 내려갑니다. 제공자에 저장되는 것은 확정적인 실패일 때뿐입니다. 네트워크 문제였다면 그 변경은 그 호출에만 적용되고 사용자의 선택은 그대로 남습니다. 변경은 결코 조용히 이루어지지 않습니다. 어떤 모델이 응답했는지, 변경이 저장되었는지를 알림이 알려 줍니다.
그리고 실패보다 먼저 오는 알림. 자동 변경은 호출이 실패한 뒤에야 움직이지만, LightNote가 스스로 확인하는 모델 카탈로그는 대개 그보다 먼저 단종을 알고 있습니다. LightNote가 직접 등록한 모델이 카탈로그에서 빠지면 그 사실을 알려 주고, 설정 → AI 어시스턴트에 후속 모델로 넘어가는 버튼이 나타납니다. 후속 모델은 같은 규칙에 따라 결코 더 비싸지 않습니다. 이 알림은 앱이 고르고 사용자가 한 번도 건드리지 않은 모델에만 해당합니다. 직접 입력한 모델은 사용자의 선택이고, LightNote는 거기에 끼어들지 않습니다.
아무도 응답하지 않을 때. LightNote는 무슨 일이 있었는지 알려 주고 모델 바꾸기, 다른 어시스턴트 사용, 해결될 때까지 그 제공자 비활성화 중에서 고르게 합니다. 비활성화한 제공자(고급 탭 표의 활성 열)는 키와 나머지 설정을 잃지 않고 목록에서만 사라집니다. 어시스턴트 목록에서는 각 항목이 로컬인지 클라우드인지 표시합니다. 클라우드를 고르면 보내는 텍스트가 사용자의 컴퓨터를 벗어납니다.
키 없이: 로컬 LLM
아직 연결된 AI가 없다면. 어시스턴트를 연결하지 않은 상태에서 Ctrl+K를 누르면 LightNote가 상황을 설명하고 바로 연결할 수 있도록 안내합니다. 연결하는 즉시 요청한 작업이 이어서 실행되므로 단축키를 다시 누를 필요가 없습니다.
로컬 LLM(키 불필요). 로컬 제공자 — Ollama, LM Studio, llama.cpp — 는 API 키가 필요 없습니다. 추가에서 하나를 고르고(서버 실행 여부가 목록에 표시됩니다), 모델 가져오기…로 이미 받아 둔 모델 중에서 선택하세요. Ollama가 설치돼 있지 않으면 LightNote가 설치를 도와줍니다. 첫 실행 때 이미 등록돼 있으므로 모델만 고르면 됩니다. 로컬 모델은 응답이 훨씬 오래 걸릴 수 있어(특히 모델을 불러오는 첫 생성 시), LightNote는 클라우드 서비스보다 훨씬 오래 기다립니다. 사용자의 텍스트는 기기 밖으로 나가지 않습니다.
적용, 프롬프트, 동작의 위치
블록 단위로 수락. 결과가 diff로 표시되면 전부 수락할 필요가 없습니다. 변경된 각 블록에는 포함 여부를 정하는 체크박스가 있고, 최종 텍스트는 남긴 블록만으로 다시 구성됩니다. 프롬프트에는 파일의 자동 컨텍스트(경로, 언어, 선택 주변 줄)도 담겨, 아무것도 붙여넣지 않아도 AI가 더 정확하게 답합니다.
프롬프트 라이브러리. AI → 프롬프트 라이브러리…는 재사용할 프롬프트를 작업 공간의 Prompts/ 폴더 안 .md 파일로 보관합니다 — 개방형 형식이고, Git으로 버전 관리할 수 있으며, 당신의 두 번째 뇌의 일부가 됩니다. 선택 창에는 검색, 미리 보기, 새 프롬프트 만들기 버튼이 있습니다. 하나를 고르면 {selection}, {file}, {folder}, {name}, {language} 항목이 현재 편집기의 맥락으로 채워지고(직접 만든 변수는 그대로 남습니다), 본문이 Ctrl+K 입력란에 들어가거나 활성 AI 터미널로 전송됩니다(제출하지는 않습니다).
코드 편집기에서만이 아닙니다. AI 동작(Ctrl+K / Ctrl+I 및 컨텍스트 메뉴)은 Markdown 편집기, 작업의 내장 노트, 데이터베이스의 SQL 쿼리 편집기에서도 사용할 수 있습니다. 각 경우 팝업이 커서 위에 열리고 결과를 그 자리에 적용합니다.
모든 AI 동작은 AI 메뉴에 있습니다(☰ 버튼과 활동 표시줄의 지팡이 버튼): AI에 질문(Ctrl+K), AI로 편집(Ctrl+I), AI 세션, AI 채팅, 프롬프트 라이브러리, 프로젝트 컨텍스트 파일 생성, 이 폴더에서 AI 활성화, AI 도우미 설정.
입력하는 동안 창이 닫히지 않습니다. 편집기를 클릭해도 닫히지 않으므로 코드를 다시 읽거나 다른 부분을 선택해도 이미 입력한 지시가 사라지지 않습니다. 창을 닫는 것은 Esc, 창 자체의 ✕, 그리고 결과 동작(적용/취소)입니다. 탭을 바꾸면 쓰던 내용을 간직한 채 잠시 들어갑니다. 같은 파일로 돌아와 Ctrl+K를 누르면 지시가 그대로 다시 나타납니다.
AI 세션
세션과 격리 사본
AI → AI 세션…은 어느 LightNote 창에서 열린 AI CLI 터미널이든 세션별 카드로 모아 보여주는 콕핏을 엽니다. 색상 상태 점, CLI 이름, 창, 그리고 주의가 필요한 항목의 배지(예약된 전송, 격리 사본)가 함께 표시됩니다. 더블 클릭으로 터미널을 포커스하고, 카드의 ⋯ 메뉴(또는 오른쪽 클릭)에서 해당 세션의 변경 사항을 검토하거나(세션이 시작될 때 만들어진 체크포인트를 기준으로 검토 화면을 엽니다 — 변경 검토 참조), 전송을 예약할 수 있습니다. 여러 “바이브 코딩” 세션을 창 사이에서 헤매지 않고 동시에 지켜보는 방법입니다.
Git 저장소 안에서 AI CLI를 터미널로 열면 LightNote가 자동으로 체크포인트(라벨 “세션 …”)를 저장하므로, 그 세션이 무엇을 바꿨는지 나중에 정확히 확인하고 되돌릴 수 있습니다. 이 기능은 설정 → 일반 → 기능에서 끌 수 있습니다.
격리 사본(worktree): Git 폴더에서 LightNote는 AI 어시스턴트를 폴더의 격리 사본(전용 브랜치)에서 실행할 수 있어, 손으로 편집하는 파일을 건드리지 않습니다. 처음에는 물어보고 이후에는 자동입니다(작업 공간 설정 → 통합에서 폴더별로 켜고 끔). 격리 사본 배지가 해당 세션을 표시하며(브랜치와 경로는 툴팁에 있습니다), 병합… 항목(변경 사항을 폴더로 가져옵니다 — 보류 중인 변경이 있으면 먼저 물어봅니다)과 버리기…(사본과 브랜치를 버림)로 주기를 마무리합니다.
유휴, 컨텍스트, 최대 절전
유휴 세션 알림. AI CLI가 유휴 상태가 되면(완료했거나 입력을 기다림) LightNote가 알림을 표시하고, 클릭하면 해당 세션의 변경 사항 검토가 열립니다. 작업을 시작하고 자리를 비울 수 있습니다. 설정 → 터미널에서 끌 수 있습니다.
프로젝트 컨텍스트 파일. 컨텍스트 파일(CLAUDE.md 또는 AGENTS.md)이 없는 폴더에서 AI CLI를 열면 LightNote가 생성을 제안하며, 도구 → 프로젝트 컨텍스트 파일 생성…에서 언제든 만들 수 있습니다. 좋은 컨텍스트 파일은 프로젝트의 구조와 규칙을 설명해 매 세션마다 다시 설명하지 않아도 AI가 실수를 덜 하도록 돕습니다. AI 제공자가 설정되어 있으면 그것이 내용을 생성하고, 없으면 채워 넣을 골격이 제공됩니다.
유휴 세션 휴면. 멈추어 있는 AI CLI도 메모리(대화와 모델 클라이언트)를 계속 쥐고 있습니다. 설정 → 터미널에서 무음 시간을 지정하면 LightNote가 프로세스를 종료하고, 해당 탭에 돌아오면 스스로 재개합니다 — 터미널 기록은 화면에 그대로 남습니다. 기본값은 30분으로 켜져 있으며(측정 결과 멈춰 있는 Claude Code 세션 3개가 1 GB 이상을 차지했습니다), 격리된 사본에서 동작하고 폴더의 대화를 재개할 수 있는 CLI(현재 Claude Code와 Antigravity)의 세션에만 적용됩니다. 그렇지 않으면 재개 시 다른 세션의 대화를 가져오게 됩니다. 예약 전송이 있는 세션은 절대 휴면에 들어가지 않습니다. 또한 돌아오는 것은 대화이지 도구의 화면이 아닙니다. 입력했지만 보내지 않은 텍스트는 사라집니다.
활동과 의미 검색
활동 탭. 표는 지금 실행 중인 것을 보여주고, 활동 탭은 기록을 남깁니다. 에이전트가 차례를 마친 때, 격리된 사본에서 시작한 때, 휴면한 때마다 날짜와 마지막 응답의 발췌가 함께 남습니다. 읽지 않은 항목은 굵게 표시되고, 개수는 트레이 메뉴에도 나타납니다 — 알림은 금방 사라지므로, 자리를 비운 사람도 놓친 것을 확인할 수 있습니다. 탭을 열면 모두 읽음으로 표시되며, 두 번 클릭하면 해당 세션으로 돌아갑니다. 세션의 종료도 이벤트로 남습니다(CLI가 스스로 끝난 경우 포함). 자리를 비운 사이 끝난 세션이 흔적 없이 사라지지 않습니다. 이벤트의 세션이 더 이상 열려 있지 않으면 두 번 클릭했을 때 아무 일도 없는 대신 그 사실을 알려 줍니다.
의미로 검색하기. 검색이 글자 그대로 일치하는 것을 찾지 못하면 결과 옆에 의미로 검색이 나타납니다. 단어를 맞추는 대신 같은 주제를 다룬 노트를 찾습니다. 생각은 기억나는데 그때 쓴 표현이 떠오르지 않을 때 쓸모가 있습니다. 다른 버튼 옆의 ~로 바로 전환할 수도 있습니다. 이 모드에서는 정규식, 단어 단위, 대소문자 구분, 파일 필터, 바꾸기가 사라집니다. 어느 것도 유사도 검색에는 해당하지 않기 때문입니다. 이 기능은 설정 → 일반 → 기능의 의미 보강(임베딩)이 필요하며, 꺼져 있으면 버튼이 켜는 화면으로 안내합니다. 폴더마다 처음 한 번은 색인할 조각 수를 알려 주고 확인을 받습니다. 이 색인은 제공자가 요금을 부과하지만 한 번뿐이고, 이후에는 검색마다 질의 비용만 듭니다.
AI 채팅
작동 방식
AI → AI 채팅…는 자신의 노트를 컨텍스트로 사용해 답하는 채팅을 엽니다. 모든 것을 클라우드로 보내는 대신, LightNote는 볼트에서 가장 관련 있는 발췌를 로컬로 가져와(ripgrep 사용, 임베딩이나 외부 서비스 불필요) 그 발췌로 질문을 구성한 뒤, 등록해 둔 API AI 제공자에게 보냅니다. 답변에는 출처 노트가 클릭 가능한 인용으로 함께 제공되며, 클릭하면 노트가 열립니다. “두 번째 뇌와 대화하며” 이미 적어 둔 내용을 다시 찾기에 좋습니다. 대화 기록은 메모리에만 유지되며(저장되지 않음), 이 기능은 설정 → 일반 → 기능에서 끌 수 있습니다.
창 구성. 선택기는 상단의 한 줄 막대에 모여 있습니다. AI, 노트 폴더, 그리고 — 텍스트 편집기가 활성일 때 — 컨텍스트입니다. 오른쪽에는 두 가지 권한(도구와 변경 허용)과 새 대화를 시작하는 + 버튼이 있습니다. 첫 질문 전에는 창이 무엇에 대해 답할지를 화면이 알려 주고, 이 폴더 요약 같은 한 번의 클릭 단축키를 제공합니다. 질문 칸에서는 Enter가 보내기, Shift+Enter가 줄바꿈입니다. 답변이 오는 동안에는 보내기 버튼이 중지로 바뀝니다.
도구와 권한
AI가 도구를 쓰게 하기. 변경 허용 확인란은 동작을 바꿉니다. 키워드 검색으로 가져온 발췌만으로 답하는 대신, 모델이 스스로 찾아보고(파일 읽기, 노트 검색, 작업 목록) 나서 답합니다. 켜면 LightNote가 선택한 모델이 도구를 호출할 수 있는지 즉시 확인합니다. 많은 제공자가 요청은 받아들이면서 도구를 그냥 무시하는데, 이 확인이 없으면 조사한 것처럼 보이는 꾸며낸 답이 나옵니다. 판정은 제공자와 모델 조합별로 7일간 기억됩니다. API 제공자가 필요합니다(로컬 CLI는 도구를 받을 수 없습니다). 답변 끝에 실제로 사용한 목록이 나오므로, 믿는 대신 판단할 수 있습니다. 판정이 부정적이면(그 순간 제공자가 단순히 다운되어 있었을 수도 있습니다) 메시지 옆에 다시 확인 버튼이 나타나, 저장된 결과를 무시하고 테스트를 다시 실행합니다.
AI가 내 것을 바꾸게 하기. 두 번째 확인란 변경 허용은 별개의 단계이며 꺼진 상태로 시작합니다. 켜면 AI가 노트와 작업을 만들고 속성을 바꾸며 오늘 노트에 기록할 수도 있지만, 확인 없이는 아무 일도 일어나지 않습니다. 변경은 대화에 쉬운 말로 나타나고("작업 빵 사기 만들기") 허용과 거부가 함께 표시됩니다. 거부해도 대화는 끝나지 않습니다. 모델에 전달되어 설명하거나 다른 방법을 제안하며 이어집니다. 읽기는 확인을 묻지 않고, 변경만 묻습니다. 임의 파일 덮어쓰기와 네트워크 접근은 의도적으로 제외했습니다. AI가 읽기만 하는 한, 외부에서 동기화된 노트에 섞여 들어온 악의적 문장이 디스크의 변경으로 바뀔 길이 없습니다. 변경이 오늘의 노트에 기록하는 것이라면, 요청에는 어느 폴더에 들어갈지도 함께 표시됩니다. 대상 파일이 AI의 요청에 들어 있지 않은 유일한 쓰기이기 때문입니다.
무엇에 대해 답하는지
메모냐, 열려 있는 파일이냐. 창 상단의 컨텍스트: 콤보에서 대화의 대상을 선택합니다. Vault 노트(기본값, 아래 설명)이거나 현재 편집기입니다. 후자는 vault 대신 편집기에서 열린 파일에 대해 답하며, 선택 영역과 주변 줄(또는 전체 파일 체크 시 파일 전체)을 사용합니다. 이렇게 같은 창으로 메모에 대해서도, 편집 중인 코드에 대해서도 여러 차례 대화할 수 있습니다. 현재 편집기 범위는 텍스트 편집기가 활성일 때만 나타납니다. 또한 빠른 어시스턴트(Ctrl+K)에서는 결과에 채팅에서 계속 → 버튼이 있어, 이 창을 현재 편집기 범위로 다시 열고 그 회차의 질문과 답변을 이어받습니다 — 처음부터 다시 하지 않고 더 깊이 파고들 수 있습니다.
어떤 노트인가요? 이 창은 하나뿐이며 한 번에 한 폴더에 대해 답합니다. 상단 막대에서 AI 선택기 옆의 노트 위치: 콤보가 대상을 보여 주고 선택합니다. 채팅을 연 창의 폴더가 처음부터 선택되어 있고, 지금 열려 있는 폴더와 그 뒤에 최근 폴더가 나열됩니다. 폴더 선택…으로 그 밖의 폴더도 지정할 수 있습니다. 폴더를 바꾸면 이후 질문에 적용되므로, 다른 프로젝트에서 작업하면서 어떤 프로젝트의 노트에 대해 AI 채팅을 할 수 있습니다. 직접 고른 폴더는 다시 바꿀 때까지 유지됩니다(창을 다시 열어도 범위가 되돌아가지 않습니다). 질문이 진행 중인 동안에는(확인을 기다리며 멈춰 있을 때도 포함) AI·컨텍스트·폴더 선택기가 잠깁니다. 돌아오는 답은 질문할 당시의 모델과 폴더에 속하기 때문입니다.
질문하는 방법. 검색은 지시가 아니라 주제로 이루어집니다. LightNote는 질문에서 단어를 뽑아 그 단어가 들어 있는 노트를 찾습니다. "Postgres에 대해 무엇을 적었지?"처럼 노트에 나오는 주제를 말하세요. "요약해 줘" 같은 막연한 요청은 검색할 내용 단어가 없어 아무것도 검색되지 않으며, 답변이 노트를 사용하지 않았다고 채팅이 알려 줍니다. .md/.markdown 노트만 읽으며, 그런 파일이 하나도 없는 폴더에서는 채팅이 이를 알리고 AI 호출을 소비하지 않습니다.
더 나은 검색·요약·다시 쓰기. 검색은 BM25 순위의 로컬 색인을 사용해 악센트를 무시하고("configuração"로 "configuracao"를 찾음), 단어 사이에 공백이 없는 언어(일본어·중국어·한국어)에서도 작동합니다 — 색인을 만드는 동안에는 ripgrep이 보조합니다. 이 폴더 요약 버튼과 탐색기에서 아무 폴더나 오른쪽 클릭했을 때 나오는 AI로 요약…은 노트를 묶음으로 읽어 하나의 문서를 돌려줍니다. 그리고 설정 → 일반 → 기능의 AI로 질문 다시 작성 옵션은 검색 전에 질문을 키워드로 확장합니다(질문마다 API 호출 1회).
키와 대화
키 하나면 됩니다. 처음 실행할 때 LightNote는 OpenAI, Google Gemini, Anthropic (Claude)를 설정 → AI 어시스턴트에 이미 등록해 둡니다. 사용하는 제공자에 API 키만 붙여넣으면 됩니다. 키가 있는 제공자가 없으면 창에 지금 설정 버튼이 나타나 해당 화면을 바로 엽니다.
대화가 보관됩니다. 상단의 시계 버튼을 누르면 해당 폴더의 이전 대화 목록이 열립니다. 하나를 누르면 그 대화로 돌아갑니다. 새 대화는 현재 대화를 지우지 않고 보관하며, 목록에서 오른쪽 버튼을 누르면 하나를 완전히 삭제합니다(확인 후). 대화는 폴더별로 저장되므로 노트 폴더를 바꾸면 목록도 바뀝니다.
답변으로 할 수 있는 일
답변으로 무엇을 할까. 각 답변 아래에 복사(서식을 그대로 유지한 마크다운 텍스트를 클립보드로)와 노트에 담기(인용된 노트 링크와 함께 오늘의 노트로)가 있습니다. 대화 작업 메뉴에는 대화 복사, 대화를 노트로 저장…(조회한 폴더에 .md 기록), 마지막 답변 다시 생성, 마지막 질문 편집이 있습니다.
파일 첨부하기. 검색이 생각하던 것을 찾지 못할 때는 + 버튼으로 파일을 첨부하세요. 첨부한 것은 검색 순위 경쟁과 무관하게 항상 질문에 들어갑니다. 노트, 코드, 텍스트, PDF를 지원합니다(PDF는 텍스트를 추출). 바이너리는 그 자리에서 거부되어 컨텍스트의 잡음이 되지 않습니다. 첨부는 알약 모양으로 표시되며(클릭하면 해제) 새 대화를 시작하면 사라집니다. 지원하는 제공자에서는 답변도 모델이 쓰는 대로 조금씩 나타납니다.
어시스턴트 기억. 위쪽 ☰ 버튼의 대화 작업 메뉴에서 어시스턴트 기억…을 누르면 선택한 폴더의 루트에 있는 기억.md 노트가 열립니다(처음에는 새로 만듭니다). 그 안의 내용은 그 폴더에 대한 모든 질문에, 찾아낸 발췌보다 먼저 들어갑니다. 취향, 이미 내린 결정, 무엇을 왜 제외했는지 같은 것들입니다. 평범한 .md이므로 언제든 편집하고 Git으로 버전 관리하며, 지우면 기억이 꺼집니다. 쓰기 도구를 켜 두면 어시스턴트가 거기에 사실을 남기자고 제안할 수도 있고, 다른 쓰기와 마찬가지로 승인을 기다립니다.
폴더 요약하기. 작업 공간 전체도, 어떤 하위 폴더도 됩니다. 탐색기에서 폴더를 오른쪽 클릭하고 AI로 요약…을 고르세요. 비용이 발생하기 전에 LightNote가 몇 개의 노트를 읽고 AI 호출이 몇 번 발생하는지(각각 제공자가 요금을 부과합니다) 알려 주고, 형식을 고르게 합니다. 개요는 이어지는 글이고, 지식 정리는 결정, 남은 일, 아이디어, 모순, 열린 질문이라는 고정된 절을 갖습니다(내용이 없는 절은 지어내어 채우지 않고 생략합니다). 비용 상한보다 노트가 많으면 답변이 몇 개가 빠졌는지 밝힙니다. 마지막으로 노트로 저장을 누르면 요약이 요약한 폴더 안에 기록되며, 머리말에 날짜와 노트 수가 들어가고 이전 요약을 덮어쓰지 않습니다.
HTTP API 테스트(.lnh)
도구 → 새 API 테스트(.lnh)…는 .lnh 파일로 저장되는
HTTP 클라이언트를 엽니다. 하나의 파일은 엔드포인트(메서드, URL, 헤더,
본문)를 나타내며 왼쪽 목록에 여러 테스트를 보관합니다 — 각
테스트는 URL, 헤더, 본문에서 사용하는 {name} 변수 값과
마지막 실행 결과(상태, 시간, 날짜, 응답 헤더와 본문)를 가집니다.
동등한 curl 명령도 함께 표시됩니다. 같은 일회성 작업은
CLI(http)와 MCP
(http_request)에서도 사용할 수 있습니다.
Ctrl+Enter로 요청을 보냅니다.
OpenAPI 가져오기와 내보내기. 테스트 목록 위쪽의 화살표 버튼에서
OpenAPI 가져오기…와 OpenAPI 내보내기…를 열 수 있습니다. 가져오기는
YAML 또는 JSON 명세를 읽으며, 현재 쓰이는 세 세대 — Swagger 2.0,
OpenAPI 3.0, 3.1 — 를 모두 지원하고 테스트를 알아서 구성합니다. 경로의
{parameters}는 .lnh의 {name} 변수와 문법이 같아 그대로
쓰이고, 명세에 선언된 예시는 테스트 값이 되며, 보안 스킴은 Authorization 헤더가
되고, 선언된 서버마다 별도의 테스트가 만들어집니다(검증 환경과 운영 환경을 나란히). 한
.lnh 파일은 엔드포인트 하나를 담으므로, 작업이 여러 개인 명세는 어느 것을
가져올지 묻습니다. 또는 한 번에 전부 저장해 작업마다 .lnh 파일을 하나씩 만들
수도 있습니다.
내보내기는 그 반대 방향으로, 파일에서 OpenAPI 3.0.3 명세를 만듭니다. 서버·매개변수·본문은
템플릿에서, 예시 응답은 기록된 실행에서 나옵니다. 이는 뼈대이지 완전한 계약이 아닙니다 —
.lnh는 호출을 기술하므로 타입, 설명, 스키마는 복원되지 않습니다. 테스트는
x-lightnote-tests 필드에 함께 담기므로 파일을 다시 가져오면 그대로 돌아옵니다.
curl 명령 가져오기. 같은 버튼의 curl 명령 가져오기…를 누르면 붙여 넣기
상자가 열립니다. 명령은 디스크가 아니라 거기에서 오며, 클립보드에 curl이 있으면 미리
채워집니다. 같은 명령이 유통되는 세 가지 방언을 이해합니다. Chrome/Firefox의 cURL로 복사(작은
따옴표), Windows의 Copy as cURL (cmd)(^ 사용), 그리고 \로 줄을
나눈 문서 예시입니다. 메서드는 -X에서 가져오며, 없으면 본문이 있을 때 POST, 없을 때
GET으로 판단합니다.
가져오기는 있는 그대로 이루어집니다. 어떤 값도 저절로 {name} 변수가 되지
않습니다. 어느 토큰이 비밀인지 추측하면 틀리기 때문입니다. 몇몇 경우에는 얼버무리지 않고 알려 줍니다.
파일에서 오는 본문(-d @파일)은 읽을 수 없고, 멀티파트 업로드(-F)도 그대로
재현되지 않으므로 해당 항목은 조정할 수 있도록 본문에 텍스트로 들어갑니다.
데이터베이스(.lnc)
연결
연결은 작업 공간 안의 .lnc 파일(LightNote Connection)로
표현됩니다 — Git으로 버전 관리 가능하며 기기 간 이동도 가능합니다.
새로 만들기 → 새 연결(또는 기존 .lnc 열기)로
생성하면 데이터베이스 뷰가 열립니다. 여기에는 연결 상태
표시줄(연결/연결 해제/재연결/편집), 스키마 트리(스키마 →
테이블 → 열, 필요 시 로드), 내부 .sql 탭이 있습니다. 열려
있던 .sql 파일과 최근 항목은 .lnc
내부에 저장되어, 뷰가 이전 상태 그대로 다시 열립니다. 아무것도
열려 있지 않았다면 제목 없는 빈 쿼리로 시작해 바로 SQL을 입력할
수 있습니다. 저장 시(Ctrl+S) LightNote는 이름만 물어보고
파일을 프로젝트 폴더 안에 씁니다("아무 곳에나 저장" 대화상자
없음). + 탭 버튼은 새 빈 쿼리를 열거나, 파일 열기(선택
대화상자가 프로젝트 폴더에서 시작)를 하거나, 최근 항목이나 프로젝트
폴더의 모든 .sql 파일을 선택할 수 있게 합니다.
트리에서 바로 연 .sql은 코드만 표시됩니다(SQL
강조, 연결 없음).
드라이버: SQLite와 DuckDB(파일)는 네이티브 지원; PostgreSQL,
MySQL/MariaDB, SQL Server, 범용은 ODBC를 통해; Oracle은
ODBC 없이 네이티브로 지원됩니다. SQL Server는 Microsoft의
msodbcsql 드라이버를 사용하며(기기에 설치 필요) Windows
인증 또는 사용자/비밀번호 방식과 채널 암호화 옵션(Encrypt /
인증서 신뢰)을 제공합니다. Oracle의 경우 일반 설정 → 데이터베이스에서
Oracle Instant Client 폴더를 지정하세요 — 설치할 필요 없이 실행
시 로드됩니다. Oracle 연결에는 네 가지 모드가 있습니다: 서비스
이름(호스트/포트/서비스), SID(호스트/포트/SID), TNS
이름(클라이언트 폴더의 tnsnames.ora 별칭), 전체
TNS 설명자(텍스트 필드에 붙여넣기).
비밀번호: 비밀번호 저장을 체크하면 .lnc
파일 내부에 암호화되어 저장됩니다(다른 기기에서도 열리는 이동
가능한 암호화). 체크하지 않으면 비밀번호는 저장되지 않고 연결할
때마다 물어봅니다. 암호화에는 도움말 → 암호 문구 설정에서
지정한 작업 공간별 암호 문구를 사용합니다. 안전하게 보관하세요 —
이것이 없으면 다른 곳에서 비밀번호를 열 수 없습니다. 암호 문구는 로컬
기기에만 캐시되며(Git으로 전송되지 않음) 유지됩니다.
열 때 연결을 체크하면 .lnc를 열 때 연결이
자동으로 시작됩니다. 자동 연결은 조용하게 진행됩니다: 비밀번호를
입력해야 하는 경우(묻기 모드, 또는 이 기기에 암호 문구가 캐시되지 않은
암호화 모드) 방해 없이 연결 해제 상태로 열립니다.
실행과 결과 보기
실행: Ctrl+Enter는 커서 위치의 문을 실행하고 Alt+X는 스크립트 전체를 실행합니다. 결과는 페이지 단위로 표시되며, 각각 결과 탭과 하단 작업 바를 가집니다: 다음 블록 가져오기, 결과 고정, 전체 개수, 행 제한 변경, 새로고침(재실행), SQL 보기/복사, 내보내기..., 선택한 행에서 SQL 생성.
결과 고정: 결과 전체를 데이터베이스에서 한 번에 읽어 로컬 테이블에 보관합니다 (메모리에 들어가지 않으면 디스크에 저장합니다). 그 뒤로는 표가 데이터베이스를 조회하지 않고 스크롤되고, 행 수가 정확해지며(전체 개수가 필요 없습니다), 머리글을 클릭하면 정렬되고(다시 누르면 내림차순, 세 번째로 누르면 데이터베이스가 준 순서로 돌아갑니다), 내보내기도 로컬 사본에서 읽습니다. 머리글 정렬은 10만 행까지 쓸 수 있습니다. 그보다 크면 거부하고 머리글 툴팁에 이유를 알려 줍니다. 페이지마다 사본 전체를 다시 정렬해야 해서 표를 훑는 데 다시 몇 분이 걸리기 때문입니다. 첫 페이지에서 결과 전체가 도착한 경우에는 고정하지 않아도 정렬할 수 있습니다. 행이 이미 메모리에 있기 때문입니다. 정렬할 수 없는 것은 아직 페이지 단위로 가져오는 중인 결과의 앞부분입니다. 그럴 때 머리글은 화면에 있는 것에만 해당하는 순서를 주장하게 됩니다. 차트와 피벗 테이블은 결과 전체를 대상으로 하며, 원래 차트가 없던 데이터베이스에서도 마찬가지입니다. 고정이 끝까지 가지 못하면(중지를 눌렀거나 상한에 도달한 경우) 행은 로컬에 남지만 차트와 피벗 테이블은 서버에 남습니다. 결과의 일부만 합계하면 잘못된 값이 나오기 때문입니다. 이때 표를 정렬해도 가져온 행만 정렬되며 결과 전체는 아닙니다. 새로고침은 고정을 해제하고 쿼리를 다시 실행합니다. 고정 여부와 상관없이, 표를 한 번 지나간 페이지는 로컬에 보관됩니다. 그 페이지로 되돌아가 스크롤해도 데이터베이스를 다시 조회하지 않습니다. 고정은 한 번에 하나만 실행됩니다. 결과가 두 개 열려 있을 때 다른 쪽에서 결과 고정을 누르면 이유와 함께 거부되며, 진행 중인 작업은 중단되지 않습니다. 멈추려면 해당 탭에서 중지를 사용하세요.
결과 그리드: NULL은 빈 문자열과 구분되도록 흐린 기울임꼴로 표시되고 숫자는 오른쪽으로
정렬됩니다. 여러 셀을 선택하면 바닥글에 선택 개수가 표시되고, 숫자인 경우 합계와 평균도 표시됩니다.
바닥글 막대의 값 패널 버튼(또는 컨텍스트 메뉴의 패널에서 값 보기)은 선택한 셀의 전체 값을
자르지 않고 보여 주는 측면 패널을 열며, 서식 버튼으로 표시할 때만 JSON/XML을 정리합니다. 셀의 컨텍스트
메뉴에서 이 값으로 필터 / 이 값 제외는 해당 셀에 WHERE를 붙여 쿼리를 다시 실행하고,
참조된 레코드로 이동은 열의 외래 키를 따라 셀 값으로 부모 테이블을 조회합니다.
차트와 피벗 테이블: 계산이 어디에서 이루어지는가. 그리드 아래쪽에 로컬 데이터와 전체 테이블(서버에서)을 고르는 선택기가 있고, 버튼에 현재 적용 중인 것이 표시됩니다. 결과가 첫 페이지에 모두 들어온 경우 기본값은 로컬입니다. LightNote가 화면에 이미 있는 결과를 집계하므로 축, 집계 방식, 구간을 바꿀 때마다 데이터베이스를 다시 조회하지 않습니다. 로컬 엔진이 DuckDB이기 때문에 차트를 Oracle, SQL Server, PostgreSQL, MySQL에서도 쓸 수 있게 됩니다. 이들 서버에서는 차트의 SQL이 실행되지 않기 때문입니다. 결과가 잘려서 왔다면 로컬 선택지는 이유와 함께 사용할 수 없게 됩니다. 표본을 집계하면 잘못된 값이 나오고, 잘렸다고 알리는 것만으로는 아무도 보호하지 못하기 때문입니다. 차트에서 읽는 것은 막대의 높이입니다. 서버 선택지는 쿼리 전체를 집계하며, 조정할 때마다 쿼리가 한 번 실행됩니다. 데이터베이스가 텍스트로 돌려주는 숫자 열(Oracle의 NUMBER가 그 예)은 숫자로 인식되지만, 01310처럼 0으로 시작하는 식별자는 텍스트로 남습니다.
실행 계획: 도구 모음의 실행 계획 버튼은 커서 위치 문의 EXPLAIN을 표시합니다
(SQLite, DuckDB, PostgreSQL, MySQL). 단일 문으로 계획을 제공하지 않는 데이터베이스(SQL Server, Oracle)에서는
버튼이 비활성화되고 이유가 툴팁에 표시됩니다.
스키마
객체 속성: 스키마 트리에서 테이블을 더블 클릭하면(또는 F4, 컨텍스트
메뉴의 속성) 객체 구조가 네 개의 하위 탭으로 열립니다: 열(번호, 이름, 유형, NULL 허용,
기본값, 기본 키 열에는 키 아이콘), 키(기본 키·외래 키·고유·체크 제약. 외래 키를 더블 클릭하면
참조된 테이블이 열립니다), 인덱스, DDL — 객체의 CREATE TABLE로,
복사하거나 .sql로 저장하거나 편집 가능한 탭에서 열 수 있습니다. 데이터베이스가
완성된 DDL을 제공하지 않을 때(PostgreSQL과 SQL Server에는 해당 명령이 없습니다) LightNote는
메타데이터에서 재구성합니다(DDL 명령이 권한 부족으로 거부될 때도 마찬가지입니다). 그리고 그
사실을 탭에 명확히 표시합니다. 열 카탈로그조차 읽을 수 없으면(권한이 없거나 카탈로그를 사용할 수
없음) 재구성할 재료가 없습니다. 이때 탭은 조용히 비어 있는 대신 그 이유를 알려 줍니다. 테이블의 컨텍스트 메뉴에는 탭을 열지
않고 DDL 복사도 있습니다.
스키마 트리: 스키마 트리는 테이블과 뷰를(각각 고유한 아이콘으로) 구분하고, 기본 키에 속한 열에 키 아이콘을 표시합니다. 필터 상자는 이미 불러온 객체만 걸러냅니다(필터만을 위해 지연 로딩이 강제되지는 않습니다).
스키마 탐색: 테이블을 우클릭하면
SELECT를 편집기에 삽입, 데이터 미리보기, 행 개수,
정규화된 이름 복사를 선택하거나 SQL 생성 하위 메뉴를 열어
INSERT/UPDATE/MERGE를 선택할 수 있습니다: 테이블의 열 목록이
표시되어 포함과 키를 체크할 수 있고, 실시간 미리보기가
표시되며 편집기에 명령이 삽입됩니다(MERGE는 ANSI 형식으로 생성되며,
드라이버가 지원하지 않으면 경고가 표시됩니다). 결과 그리드에서는
하단 바의 SQL 생성 버튼으로 선택한 행의 값이 채워진
INSERT/UPDATE/DELETE를 만듭니다(단일 테이블
SELECT 쿼리일 때만 사용 가능). 트리에서 탐색한 테이블과
열 이름은 추가 데이터베이스 조회 없이 해당 연결의 .sql
편집기 자동완성(Ctrl+Space)에도 나타나기 시작합니다.
내보내기, 변수, 트랜잭션
결과 내보내기: 결과 그리드를 우클릭하고 결과 내보내기...를
선택하면 CSV(구분자, 따옴표 문자, 항상 따옴표, 헤더 행, NULL
텍스트), JSON Lines 또는 SQL(테이블 이름이 포함된
INSERT문)로 저장할 수 있으며, 행 개수 제한도 선택할 수
있습니다. 내보내기는 화면에 보이는 것뿐 아니라 전체 쿼리를
스트리밍 방식(페이지 단위 재조회)으로 처리합니다.
스크립트 변수: 스크립트 줄에 @set 이름 = 값을
사용해 변수를 정의합니다 — @ 접두사 덕분에 실제 데이터베이스와
충돌하지 않습니다(Postgres/DuckDB/SQL Server의 실제 SET과
겹치지 않음). :이름 형태의 참조는 실행 전에 치환됩니다
(문자열과 주석 밖에서; ::타입 캐스트와 :1 같은
바인드는 그대로 유지됨). 값이 없는 :이름은 실행 전에 입력
창을 엽니다. 도구 모음의 변수 버튼은 정의된 변수 화면을
엽니다(편집/추가/제거).
쿼리 기록: 기록 버튼은 이 연결에서 성공적으로
실행된 최근 문을 SQL / 시각 / 소요 시간 / 행 수 열로 보여주는
창을 엽니다. 항목을 선택해 다시 실행, 편집기에 삽입,
복사(더블클릭으로 삽입)를 하거나 기록 지우기를 사용할
수 있습니다. 로컬 기기에만 저장되며(Git에도, .lnc에도
가지 않음) 유지됩니다.
트랜잭션: 도구 모음에는 자동 커밋 버튼(기본 켜짐)과 커밋/롤백 버튼이 있습니다. 자동 커밋을 끄면 커밋으로 확정하거나 롤백으로 취소할 때까지 변경 사항이 대기 상태로 유지되며, 트랜잭션이 열린 채로 연결을 끊으면 어떻게 할지 묻습니다.
SSH 연결(.lns)
SSH 연결은 .lnc처럼 작업 공간 안의 .lns
파일입니다 — 버전 관리와 이동이 가능합니다. 새로 만들기 → 새 SSH
연결로 생성하면 탭에 통합 SSH 터미널(Windows의
ssh.exe 사용)과 원격 파일 미니 바(SFTP)가
열립니다.
파일 탐색기는 한 번에 폴더 하나를 보여줍니다(MobaXterm/WinSCP
스타일): 첫 번째 행은 항상 상위 폴더로 이동하는 ..이며,
폴더를 더블클릭하면 들어갑니다. 상단 경로 바에서 원격 경로를
입력하고 Enter를 눌러 이동할 수 있습니다. 터미널과
동기화 버튼은 표시되는 폴더가 SSH 세션의 현재 디렉터리(터미널에서
cd한 위치)를 따라가게 합니다. 우클릭 메뉴에는 편집기에서
열기(파일을 다운로드해 탭에서 열고 저장 시 다시 업로드),
다운로드, 업로드, 새 폴더, 이름 변경,
삭제, 권한(chmod) 항목이 있습니다. Explorer에서 파일을
패널로 드래그해서 현재 폴더에 업로드할 수도 있습니다.
비밀번호는 작업 공간의 암호 문구로
.lns 파일 내부에 암호화하거나 연결할 때마다
물어보게 설정할 수 있습니다. Windows 에이전트/프로필의 SSH 키는
정상적으로 작동합니다. 연결이 시스템의 OpenSSH 클라이언트를
사용하기 때문입니다.
연결 대화상자의 열 때 연결 옵션은 .lns를 열 때
SSH 세션을 자동으로 시작합니다. 비밀번호가 저장되어 있지 않으면
터미널이 연결 시 직접 물어봅니다.
보안: 암호 문구, PIN, 보안 Markdown
암호 문구는 도움말 → 암호 문구 설정…에서 작업 공간별로
설정하며, LightNote가 암호화하는 모든 것 — 연결 비밀번호
(.lnc/.lns), 사용자 지정
표의 비밀번호 셀, .lne 파일 — 의 열쇠가 됩니다.
암호화는 강력하고 이동 가능합니다(Argon2id + XChaCha20-Poly1305):
암호화된 파일은 같은 암호 문구를 다시 입력하면 다른 기기에서도 열립니다.
안전하게 보관하세요 — 이것이 없으면 암호화된 데이터를 복구할 수
없습니다. 암호 문구는 로컬 기기에만 캐시되며(Git으로 전송되지 않음)
유지됩니다.
암호 문구를 변경하려면 같은 화면을 열고 암호 문구 필드를
수정하세요(현재 값이 미리 채워져 있습니다). 확인하면 LightNote는
작업 공간의 모든 보안 데이터 — .lnc/.lns의
비밀번호, .lne 파일의 내용, 사용자 지정 표(.lnd)의
비밀번호 셀 — 를 이전 암호 문구에서 새 암호 문구로 자동으로
재암호화합니다. 복호화는 전부 아니면 전무입니다: 하나라도
복호화에 실패하면 아무것도 변경되지 않고 LightNote가 어떤 항목인지
알려줍니다. 쓰기 단계에서는 각 파일을 다시 쓰기 전에 백업으로
복사합니다. 쓰기에 실패하면 LightNote가 모두 취소(백업 복원)할지
해당 파일을 건너뛰고 계속(이전 암호 문구 유지, 마지막에 경고
표시)할지 물어봅니다. ("묻기" 모드의 비밀번호는 재암호화할 것이
없습니다.)
PIN(4~8자리)은 선택적인 로컬 잠금입니다: 매번 암호 문구를 입력하지 않고도 민감한 UI 동작(비밀번호 표시, 보안 노트 열기)을 보호합니다. 아무것도 암호화하지 않으며 이 기기에만 적용됩니다.
보안 Markdown 파일(.lne, 새로 만들기 → 보안
Markdown 파일에서 생성)은 디스크에 암호화되어 저장되는 노트입니다:
열 때 LightNote는 (설정되어 있다면) PIN과 암호 문구를 물어보고
메모리에서만 복호화한 뒤 저장 시(Ctrl+S) 다시 암호화합니다.
안전을 위해 세션이 복원될 때 스스로 다시 열리지 않습니다. 그 밖에는 다른 노트와 같은 노트입니다: AI 도우미(Ctrl+K/Ctrl+I와 바의 AI 버튼), 위키링크와 태그의 Ctrl+클릭이 있고, 링크를 열며 상태 표시줄에 주소를 보여 줍니다. AI에 대해 기억할 점: 선택한 도우미가 클라우드 서비스라면 보낸 조각은 이 컴퓨터를 떠납니다. 로컬 모델(Ollama, LM Studio)이면 떠나지 않습니다. 그리고 보안 노트는 여전히 노트에 질문의 대상 밖입니다 — 그쪽은 작업 공간의 .md를 읽는데, 디스크의 .lne는 암호화된 텍스트이기 때문입니다.
일일 노트, 빠른 캡처, 트레이
오늘의 노트는 Daily Notes 폴더(LightNote 전체에 하나뿐이며
설정 → 메모와 글쓰기에서 지정)에 하루에 하나씩 생성되는 .md
파일입니다. 트레이 메뉴에서: 오늘의 노트는 그날의 노트를
열고, 빠른 캡처…(Ctrl+Alt+N, 전역 Windows 단축키 —
또는 트레이 아이콘 가운데 클릭)는 입력하고 Ctrl+Enter를 누르는
작은 창을 엽니다: 텍스트는 편집기 창을 열지 않고도 디스크에 바로 기록되어
오늘의 노트에 타임스탬프가 붙은 항목으로 저장됩니다.
트레이 메뉴에는 열린 창 목록과 최근 작업 공간, 그리고 전원 토글(컴퓨터 절전 방지와 화면 켜짐 유지, 긴 작업에 유용 — LightNote는 원샷 AI, 블록 셀, SQL 스크립트를 실행하는 동안 이미 스스로 전원을 유지함)도 있습니다. 런처(시작 창)에는 검색, 더블클릭으로 열기, 맨 위에 고정·Explorer에서 열기·목록에서 제거를 위한 컨텍스트 메뉴가 있습니다.
LightNote 전체에 적용되는 동작은 — 지금 있는 창에만 해당하는 것이 아니므로 — 일반 메뉴(☰ 일반 또는 활동 표시줄의 앱 아이콘 버튼)에 모여 있으며, 트레이 메뉴와 완전히 같은 구조입니다: 최상위에 오늘의 노트, 빠른 캡처, 달력. 이어서 하위 메뉴 캡처(빠른 작업, 오디오 녹음, 오래된 노트 다시 만나기, 스티커 메모), 열기(런처, 작업 공간 열기, 개별 파일 열기, 개별 파일), 전원. 마지막으로 일반 설정. 규칙은 간단합니다: 트레이 메뉴에 있는 것은 일반 메뉴에 있습니다 — 그리고 거기에만 있습니다. 항목에 마우스를 올리면 “일반 기능: 어느 창에서든 LightNote 전체에 적용됩니다”라는 안내가 표시됩니다.
캡처가 저장되는 곳. 일일 노트와 빠른 작업의 대상은 하나로 정해져 예측 가능합니다: 설정 → 메모와 글쓰기에서 정한 폴더와 설정 → 일반에서 정한 보드이며, 어느 창에서나 같습니다. 아무것도 정해지지 않은 상태에서 처음 캡처하면 LightNote가 어디에 보관할지 묻고 그 선택을 저장합니다 — 설정을 찾아 헤매게 하지 않습니다. 자체 일지가 필요한 프로젝트(기밀 유지가 필요한 고객, 저장소에 있어야 하는 기록)는 작업 공간 설정 → 캡처에서 그 창의 캡처를 가져갈 수 있습니다. 트레이와 전역 단축키는 계속 일반 대상에 기록합니다. 확인 알림은 항상 텍스트가 어디로 갔는지 알려 줍니다.
트레이 메뉴는 일부러 짧게 유지합니다. 최상위에는 열린 창과 매일 쓰는 세 가지 동작 — 오늘의 노트, 빠른 캡처, 달력 — 만 남습니다. 나머지는 일반 메뉴와 같은 하위 메뉴에 있습니다: 캡처, 열기(트레이에서는 최근 작업 공간 목록도 포함), AI(AI 세션, AI 채팅 — 창에서는 완전한 AI 메뉴), 전원. 마지막으로 설정과 종료입니다.
오래된 노트 다시 찾기
“제2의 뇌”가 실패하는 가장 큰 이유는 기능 부족이 아니라 다시 읽지 않는 노트입니다. 트레이 메뉴(캡처 섹션)에서 LightNote는 오래된 노트를 다시 불러옵니다. 무작위 노트는 작업 공간의 .md 노트를 무작위로 열고(최근 2주에 표시된 것은 제외), 그날은 생성 기념일이 오늘(과거 연도의 같은 월·일)인 노트를 나열합니다. 두 작업 모두 창의 일반 → 캡처 메뉴에도 있습니다.
생성 날짜는 frontmatter의 created/date 필드가 있으면 그곳에서, 없으면 파일 날짜에서 가져옵니다. 이 기능은 노트에 절대 쓰지 않습니다 — 열기만 합니다. 설정 → 기능(“오래된 노트 다시 찾기”)에서 끌 수 있습니다.
휴대폰에서 노트 사용하기
작업 공간은 폴더 안의 순수 Markdown입니다 — 개방형 형식으로, 독점 데이터베이스나 필수 클라우드가 없습니다. 그래서 어떤 휴대폰 앱이든 여러분의 노트를 읽고 편집할 수 있으며, LightNote가 전화용 전용 앱을 필요로 하지 않습니다. 폴더를 동기화한 뒤 휴대폰의 Markdown 편집기에서 열기만 하면 됩니다.
단계별로: 작업 공간 폴더를 OneDrive, Google Drive, Dropbox 또는 Syncthing으로 동기화하고, 휴대폰에서 그 폴더를 Markdown 편집기(예: Obsidian Mobile, iA Writer, GitJournal 또는 Markor)로 엽니다. 모든 것이 텍스트인 .md이므로 양쪽에서 같은 노트를 보고 씁니다.
권장 사항: 휴대폰에서는 .md 파일만 편집하세요 — LightNote 고유 형식(보안 .lne, .lnc, .lnt, .lnb, .lnd…)은 앱 밖에서 열리지 않으며, 특히 .lne는 암호화되어 있습니다. 양쪽이 오프라인으로 편집하여 충돌이 생기면 Inbox 폴더로 해결하세요. 캡처(텍스트, 오디오 또는 사진)를 거기에 넣고 덮어쓰는 대신 LightNote가 그날의 노트에 통합하도록 하세요. 이 배치는 의도적입니다 — 동기화는 파일/Git로 이루어지며 플러그인으로 하지 않습니다. 데이터는 여러분의 것이고 전송 방식도 여러분이 선택합니다. 오늘의 노트에 바로 쓰고 싶다면 데일리 노트/yyyy-mm-dd.md 파일을 편집하세요 — 폴더 이름은 언어에 따라 달라집니다.
오디오 녹음(음성·회의)과 AI 전사
트레이 메뉴의 오디오 녹음…을 누르면 떠 있는 드래그 가능한 창이 열려(제목 표시줄을 끌어서 이동) 마이크, 시스템 오디오(컴퓨터에서 재생되는 소리) 또는 둘 다를 동시에 녹음할 수 있습니다 — 선택한 소스는 다음번을 위해 기억됩니다. ● 녹음, ‖ 일시정지, ■ 정지를 사용하며, 파일은 작업 공간의 녹음 폴더에 저장되고 정지 시 .m4a로 압축됩니다.
두 가지 전사 방식. 설정 → AI 어시스턴트 → 오디오 전사의 전사 방법 선택기에서 전용 전사 모델(Whisper 방식: OpenAI whisper-1, Groq whisper-large-v3(무료) 또는 로컬 Whisper)과 채팅에 오디오를 넣는 일반 모델 중에서 선택합니다. 후자는 오디오를 멀티모달 모델의 대화에 넣는 방식으로, Google Gemini(gemini-2.0-flash, 좋은 무료 플랜)가 이렇게 전사합니다. 제공자를 바꾸면 알맞은 모드가 미리 선택되고 모델이 제안됩니다. 긴 오디오는 어느 모드에서든 자동으로 분할됩니다. 제안된 모델은 직접 입력해 바꿀 수 있으며, LightNote는 아직 인식하지 못하는 제공자라도 입력한 id를 존중합니다.
녹음을 시작하면 창이 저절로 작은 알약형 막대(깜빡이는 빨간 점, 타이머, 일시정지/정지)로 접혀 회의 중에 구석으로 끌어다 두고 거의 숨겨둘 수 있습니다. 제목의 최소화/확장 버튼으로 수동으로도 전환할 수 있으며, 정지하면 다시 펼쳐집니다. Ctrl+Alt+R(전역 단축키)은 빠른 음성 메모용입니다 — 누르면 즉시 마이크 녹음을 시작하고, 다시 누르면 정지합니다. 마우스로 창을 열 필요가 없습니다.
API 기반 AI 제공자가 구성되어 있으면(설정 → AI 어시스턴트 → 오디오 전사) 정지 시 전사와 전사 + 요약 버튼이 나타납니다(오디오가 아직 압축 중일 때는 비활성화). 정지 시 콤보를 사용하면 녹음이 끝나자마자 전사가 자동으로 시작되게 할 수 있습니다. LightNote가 오디오를 보내 전사하고(Whisper 계열 모델), 오디오 옆에 본문과 선택적으로 요약을 담은 .md 노트를 만듭니다. 이 기능은 설정 → 일반 → 기능에서 켜고 끌 수 있습니다.
같은 창은 미니 플레이어이기도 합니다. 컨트롤 아래에 폴더의 녹음 목록이 표시되며, 각 파일에는 (있는 경우) T(전사 열기)와 R(요약 열기) 버튼, 그 자리에서 재생하는 ▶(탐색 가능한 진행 막대)가 함께 표시됩니다. 각 행의 ⋮ 메뉴에서 재생·(재)전사·노트 열기를 할 수 있습니다. 전사를 다시 생성해도 이전 것을 덮어쓰지 않고 옆에 새 버전(note.md, note (2).md…)을 만들어 기록을 보존합니다. 캡처 소스는 메뉴 버튼(마이크 / 시스템 오디오 / 둘 다)이며 기본값은 둘 다입니다. 녹음 폴더 열기 링크는 메인 창에서 폴더를 엽니다.
스티커 메모
스티커 메모는 Windows의 스티커 메모 앱 스타일로 바탕 화면 위에 떠 있는 작은 색상 순수 텍스트 상자입니다. 트레이 메뉴에서: 새 스티커 메모(Ctrl+Alt+S, 전역 단축키)는 상자를 만들고, 스티커 메모 표시(Ctrl+Alt+H)는 모두 한 번에 표시하거나 숨깁니다. 각 노트에는 다른 노트를 만드는 +와 색상 변경, 오늘의 노트로 보내기(텍스트를 오늘의 노트에 항목으로 기록하고 상자를 없앰), 삭제를 위한 ☰ 메뉴가 있습니다. 헤더를 드래그해 이동하고 모서리 손잡이로 크기를 조절합니다. 노트는 자동으로 저장되며 LightNote를 다시 열면 다시 나타납니다.
체크리스트. 머리글의 목록 버튼(+ 옆)을 누르면 커서가 있는 줄(또는 선택한 줄)이 체크박스가 있는 항목으로 바뀌고, 한 번 더 누르면 되돌아갑니다. 줄 맨 앞에 [ ]를 입력하고 스페이스를 눌러도 됩니다([x]는 체크된 항목을 만듭니다). 체크박스를 클릭하거나 Ctrl+Shift+Enter를 누르면 체크하거나 해제할 수 있으며, 완료된 항목에는 취소선이 그어집니다. Enter는 다음 항목을 만들고, 빈 항목에서 Enter를 누르거나 항목 맨 앞에서 Backspace를 누르면 일반 텍스트로 돌아갑니다. 메모 메뉴의 완료된 항목 제거는 체크된 항목을 한 번에 지웁니다(Ctrl+Z로 되돌릴 수 있습니다). 항목은 Markdown 작업(- [ ] 항목)으로 저장되므로 오늘의 노트로 보내기는 각 항목을 작업으로 보냅니다.
캘린더
일반 → 캘린더…는 등록된 모든 .lnt 보드의
작업이 있는 날짜를 표시하는 캘린더가 있는 단일 창을 엽니다. 옆에는
선택한 날짜의 작업을 보여주는 오늘 목록과 대기 목록이
있으며, 그날의 노트 버튼은 해당 날짜의 일일 노트를 엽니다.
작업을 클릭하면 해당 보드가 열립니다.
그리드에서 작업이 있는 날짜에는 칸반 상태 색상의 점이 최대 세 개까지 표시되고, 오늘은 링으로, 선택한 날짜는 채워진 원으로 표시됩니다. 오늘은 현재 달로 돌아가고, 월 이름을 누르면 달이나 연도를 옮기는 메뉴가 열립니다. 보류 중 항목은 상황별로 기한 초과, 오늘, 향후 7일, 이후, 날짜 없음으로 묶이며, 마감일은 “어제”, “오늘”, “3일 전”처럼 상대적인 배지로 표시됩니다. 날짜를 두 번 누르면 그 날짜가 들어간 빠른 작업이 열립니다.
노트에 적은 할 일도 여기에 나옵니다. 노트의 - [ ]도 다른 할 일과 똑같으며, 이제 미완료에서 보드 카드와 나란히 같은 그룹에 들어갑니다. 그 줄에 언제인지(내일, 금요일, 08/12)가 적혀 있으면 알맞은 그룹과 알맞은 날짜로 들어갑니다. 두 번 누르면 체크박스가 있는 줄에서 노트가 열립니다 — 할 일을 고치는 곳은 여전히 노트입니다. 훑기는 뒤에서 돌아갑니다. 창은 보드와 함께 곧바로 열리고, 노트의 할 일은 조금 뒤에 도착합니다. 격자에서는 그날에 이미 일일 노트가 있으면 날짜 숫자에 밑줄이 붙고, 그날 목록에는 그날도 나옵니다. 지난 해 같은 날짜에 쓴 당신의 노트입니다.
명령 팔레트
Ctrl+Shift+P는 명령 팔레트(단축키가 함께 표시되는 모든 동작, 입력으로 필터링 가능)를 엽니다. Ctrl+R는 빠른 파일 선택기를, Ctrl+Shift+K는 작업 선택기를 엽니다.
MCP 서버(AI 에이전트)
LightNote에는 작업 공간을 AI 에이전트용 도구(Claude Desktop,
Claude Code, Cursor 등 MCP를 지원하는 모든 클라이언트)로 바꾸는
헤드리스 MCP(Model Context Protocol) 서버가 포함되어 있습니다.
에이전트는 파일을 읽고 쓰고, 검색하고, 표 형식 데이터와 데이터베이스를
조회하고, 작업을 다루고, Git을 사용하고, HTTP 요청을 보낼 수 있습니다 —
모두 해당 폴더로 제한됩니다(디렉터리 감옥: ..가
포함되거나 루트 밖의 경로는 거부됨). 전송 방식은 stdin/stdout을 통한
JSON-RPC 2.0이며, 세션마다 편집기 창과 별개로 가벼운
lnote.exe 프로세스가 실행됩니다.
원클릭 바로가기: AI → 이 폴더에서 AI 사용을 선택하면 LightNote가 MCP를 켜고 .mcp.json을 한 번에 씁니다(클릭이 곧 동의입니다). 폴더에서 AI가 이미 활성화되어 있으면 이 항목은 이 폴더의 AI 설정…으로 바뀌고 작업 공간 설정을 엽니다.
이중 안전 장치: (1) 해당 폴더에 대해 사전 동의한 경우에만 서버가 시작됩니다; (2) 모든 도구는 작업 공간 루트로 제한됩니다. 추가로 각 도구는 주석(읽기 전용, 파괴적, 멱등, "외부 세계에 영향")과 함께 안내되어 AI 클라이언트가 호출 전에 위험을 판단할 수 있습니다.
단계별 설정
- 폴더에 MCP 활성화. 도구 → 작업 공간 설정에서
이 작업 공간에 MCP 활성화를 체크하세요. 이 사전 동의 없이는
서버가 시작을 거부합니다(주요 관문입니다). 또는 명령줄에서:
lnote --mcp-enable "C:\Path\to\workspace"(끄려면--mcp-disable). lnote.exe의 경로 찾기.lightnote.exe와 같은 폴더(앱 설치 폴더)에 있습니다. UI가 없는 "슬림" 콘솔 실행 파일로, 에이전트가 실행하는 대상입니다.- AI 클라이언트에 서버 등록 — 명령을
lnote.exe로 지정하고--mcp와 작업 공간 폴더를 인자로 전달합니다. Claude Desktop / Cursor 등에서 사용하는 형식으로는:
{
"mcpServers": {
"lightnote": {
"command": "C:\\Path\\to\\lnote.exe",
"args": ["--mcp", "C:\\Path\\to\\workspace"]
}
}
}
설정 팁:
- 예제처럼 JSON의 백슬래시는 두 번 써야 합니다
(
C:\\Users\\...\\lnote.exe). - 여러 작업 공간을 노출하려면 폴더마다 항목을 하나씩 추가하되,
각각 고유한 이름(
"lightnote-projectA","lightnote-projectB")을 사용해 자신의 루트를 가리키게 하세요. - 설정을 저장한 뒤 AI 클라이언트를 재시작해 서버를 시작하게
하세요. 연결되면 에이전트가
lightnote_*도구를 나열할 수 있어야 합니다. "작업 공간 파일을 나열해줘"라고 물어보아 동작을 확인하세요. - Claude Code(CLI)의 경우 같은 서버를
claude mcp add lightnote -- "C:\Path\to\lnote.exe" --mcp "C:\Path\to\workspace"로 등록할 수 있습니다.
데이터베이스 비밀번호(선택 사항). db_query 도구는
.lnc 연결을 엽니다. 비밀번호가 암호 문구로 암호화되어
있다면 서버 블록에서 LNOTE_PASSPHRASE 환경 변수로 구문을
전달하세요(명령줄 인자로는 절대 전달하지 마세요) — 비밀번호가 "묻기"
모드인 연결은 자동으로 사용할 수 없습니다.
AI 쿼리는 연결별 옵트인입니다. 폴더에서 MCP를 켜도 연결이 노출되지 않습니다. 각 .lnc는 연결 대화상자에서 “AI 쿼리 허용 (MCP)”이 켜져 있을 때만 db_query에 응답합니다. 접근은 읽기 전용(SELECT)입니다.
에이전트를 통한 데이터베이스 내보내기. 조회뿐만 아니라 db_export로 SELECT를 파일로 구체화할 수 있습니다(Parquet, CSV, JSON 또는 .xlsx) — 응답에 담기에 너무 큰 결과에 유용합니다. 동일한 세 가지 안전장치가 이 순서로 적용됩니다: 쿼리는 읽기 전용이어야 하고, 연결에는 「AI 조회 허용(MCP)」 옵션이 필요하며(비밀번호를 복호화하기 전에 확인), 대상 경로는 작업 공간 안에 있어야 합니다. 대용량 내보내기는 시스템 임시 폴더를 작업 공간으로 사용하며 대략 결과물 크기만큼 차지합니다 — 디스크 공간을 확보하세요.
사용 가능한 도구
에이전트는 클라이언트의 접두사가 붙은 도구를 보게 됩니다(예:
lightnote_read_file). 범주별로:
- 파일:
read_file(줄 범위 지정 가능),write_file,edit_file(파일 전체를 다시 쓰지 않고 정확한 조각을 대체),append_file,list_files,move_file,make_dir,delete_file(완전 삭제가 아닌 휴지통으로 이동). - 검색과 탐색:
search_files(ripgrep, 하위 폴더/glob 필터와 개수 제한 포함),list_symbols(파일의 함수/클래스 개요),open_in_editor(LightNote 창이 열려 있으면 파일을 열거나 포커스). - 데이터와 SQL:
query(Parquet/CSV/JSON에 대한 DuckDB SQL, tsv/json/markdown 출력),describe_table(행을 덤프하지 않고 스키마+통계),export_query(COPY를 통해 SELECT를 파일로 구체화),sqlite_query(.sqlite/.db에 대한 SQL),db_list_connections(작업 공간의.lnc파일 나열),db_query(.lnc연결에 대한 읽기 전용 SQL). 결과를 응답 대신 파일로 내보내려면db_export(Parquet/CSV/JSON/.xlsx). - 또한:
search_notes(질문에 가장 관련성 높은 노트 조각을 검색 — AI 채팅과 같은 엔진),list_links(노트의 나가는 링크를, 해결됨/깨짐으로 표시),audit_vault_links(보관소 전체의 깨진 링크와 고아 노트),list_note_templates와create_note의template매개변수,list_due_tasks(모든 프로젝트에서 오늘 마감이거나 기한이 지난 작업),xlsx_read(.xlsx시트를 TSV로 읽기),data_diff(두 표 형식 파일 비교), 그리고 데이터베이스 카탈로그db_list_objects/db_describe(테이블/뷰와 테이블의 열·키·DDL —db_query와 동일한 조건). 그리고note_export(노트를docx,odt,epub, LaTeX, Typst, HTML, reStructuredText, AsciiDoc, Org, MediaWiki, Notebook 또는 다른 Markdown 방언으로 내보내기 — 창 없이,lnote note-export로도). 그리고note_import(반대 방향:docx,odt,epub,rtf, HTML 또는tex파일을 제목, 목록, 표, 강조, 링크, 수식, 이미지와 함께 원본 옆의 노트로 가져오기 —lnote note-import로도). 그리고folder_export(폴더 전체가 HTML 사이트, 문서 모음 또는 Markdown 이 되고 링크도 다시 쓰입니다 ——lnote folder-export로도). - 아카이브:
zip_list(.zip/.isx의 구성원 나열)와zip_read(구성원을 텍스트로 읽기) — 디스크에 아카이브를 추출하지 않고 수행합니다. - 작업:
list_task_projects(작업 공간의.lnt작업 프로젝트 나열),list_tasks,list_task_statuses(보드 열),create_task,update_task,update_task_status(열 간 이동),delete_task,task_note(작업의.md노트 읽기/쓰기). 작업 공간에는 여러.lnt프로젝트가 있을 수 있습니다:project매개변수(list_task_projects가 반환하는name; 프로젝트가 하나뿐이면 생략 가능)로 선택하세요.id/status_id는 세션 식별자입니다 — 이를 얻으려고 내부.lnt파일을 읽지 말고 작업 도구를 사용하세요. - 노트(PKM):
create_note(.md노트 생성),append_daily_note(오늘의 노트에 캡처 추가),remember(당신에 대한 지속적인 사실을 기억 노트에 저장),list_backlinks(노트를 가리키는 노트들),list_note_tags와search_by_tag(저장소의#해시태그와 이를 사용하는 노트들),add_task(제목에 자연어를 받아 마감일/태그가 있는 작업 생성). - Git:
git_status,git_log,git_diff,git_restore. - 웹과 알림:
http_request(HTTP 요청을 보내고 상태/헤더/본문 반환),notify(열린 창에 트레이 알림 표시 — 에이전트가 작업 완료를 알리는 데 유용). - AI 프록시:
list_ai_models와ask_ai(아래 참고).
서버는 또한 작업 공간 파일을 MCP 리소스(resources/list와
resources/read)로도 노출합니다. read_file을
호출하는 대신 파일을 "첨부"하는 방식을 선호하는 클라이언트를 위한
기능입니다.
당신의 프롬프트 라이브러리(작업 공간의 Prompts/ 폴더)는 MCP 프롬프트로 공개됩니다(prompts/list 와 prompts/get). Claude Code에서는 각 프롬프트가 슬래시 명령 /mcp__lightnote__<이름>이 되어 AI CLI 안에서 바로 사용할 수 있습니다.
쓰기 안전망. 파일을 덮어쓰거나(write_file/edit_file) 삭제하기(delete_file) 전에, 서버는 이전 버전을 로컬 기록(에디터와 동일한 안전망)에 저장합니다. 따라서 Git 저장소 밖에서도 에이전트가 한 변경을 되돌릴 수 있습니다.
각 도구는 읽기인지 쓰기인지 명시합니다: MCP 주석
(readOnlyHint/destructiveHint) 외에도 설명이
[read-only], [writes], [destructive]
뱃지로 시작합니다 — 허용 목록을 안전하게 구성하는 데 유용합니다.
AI 프록시(다른 모델에 위임)
MCP 열이 체크된 상태로 등록한 API 제공자는
list_ai_models(허용된 모델을 id, 이름, model과 함께
나열)와 ask_ai({model, prompt}) 두 도구를 통해
에이전트에 노출됩니다. 이를 통해 메인 에이전트가 더 저렴하거나 특화된
모델에 하위 작업을 위임할 수 있습니다. 호출은 실행 중인
LightNote가 중개합니다(MCP의 lnote.exe가 내부 브리지를
통해 요청을 앱 창으로 전달): API 키는 절대 이 기기를 벗어나지
않으며 에이전트에도 전달되지 않습니다. LightNote가 열려 있지 않으면
도구는 열어달라고 요청하는 오류를 반환합니다.
명령줄(lnote)
같은 MCP 작업이 스크립트와 자동화를 위한 콘솔 실행 파일
lnote에도 있습니다(lightnote cli <command>로도
접근 가능). 모든 작업은 --root로 설정한 루트 폴더(기본값:
현재 폴더)로 제한됩니다.
예시:
lnote list --recursive
lnote read --path src/main.cpp --start-line 1 --end-line 40
lnote write --path note.md --content "Hello"
echo content | lnote write --path note.md --content -
lnote search --query TODO --regex
lnote query --sql "SELECT * FROM read_parquet('data.parquet') LIMIT 10"
lnote describe --path data.parquet
lnote search-notes --query "예산에 대해 어디에 적었는지"
lnote audit-links
lnote xlsx-read --path sheet.xlsx --sheet 0
lnote data-diff --a before.parquet --b after.parquet --mode changed --keys id
lnote db-describe --connection data.lnc --table customers
lnote db-export --connection dados.lnc --sql "SELECT * FROM clientes" --out clientes.parquet
lnote due-tasks
lnote export --sql "SELECT * FROM read_csv_auto('e.csv') WHERE state='NY'" --out ny.parquet
lnote zip-list --path export.isx
lnote zip-read --path export.isx --entry job/definition.xml
lnote task-projects
lnote tasks --project Backlog
lnote create-task --project Backlog --title "Review the text" --effort 2
lnote move-task --project Backlog --task-id 5 --status-id 2
lnote git-status
lnote http --url https://api.example.com --method GET
lnote notify --message "Processing finished"
전역 옵션: --root <folder>, --json
(구조화된 {ok,data,error} 출력), --help(또는
lnote <command> --help), --version. 알 수
없는 명령에는 제안("혹시 이걸 찾으셨나요?")이 표시됩니다.
오래된 데이터 일괄 업데이트: lnote upgrade <폴더>
는 이전 버전의 LightNote가 기록한 파일을 한 번에 최신 형식으로 바꿉니다. 현재 대상은
.lns와 .lne로 바뀐 옛 확장자 .lnsh와
.lnsm입니다. 앱은 각 파일을 열 때 이미 이 작업을 자동으로 수행하므로,
이 명령은 파일이 수십 개여서 하나씩 열고 싶지 않을 때 사용합니다.
--dry-run을 쓰면 아무것도 건드리지 않고 무엇이 바뀔지 미리 볼 수 있습니다.
필수가 아니라 편의 기능이며, 이 명령 없이도 예전 파일은 정상적으로 열립니다.
설정과 테마
설정이 있는 곳
도구 → 일반 설정에서 다음을 섹션별로 조정합니다: 일반 옵션(언어, 자동 저장, 유휴 탭 해제, 탭 색상 팔레트, 창 제목, 일일 노트, 맞춤법 검사), 애플리케이션 테마, 편집기 글꼴과 색상, Markdown 스타일, 실행(인터프리터), 터미널(셸), AI 어시스턴트(CLI와 기본 AI), 버전 관리, 데이터베이스 (페이지 매김, Oracle Instant Client).
섹션 목록 위에 있는 검색 필드는 각 페이지의 옵션으로 필터링합니다. 기능 섹션에는 선택적 기능의 스위치 — 연결 그래프, 스티커 메모, AI 세션, 노트에 묻기, 오디오 녹음, 오래된 노트 다시 찾기, 컴퓨터 절전 방지, Windows 탐색기 메뉴 통합 — 이 모여 있습니다. 기능을 끄면 인터페이스·트레이·단축키에서 사라지고 리소스 소비도 멈추지만 이미 만든 데이터는 유지됩니다. 변경은 다시 시작할 때 적용됩니다.
테마
애플리케이션 테마는 프로그램의 외관(메뉴, 탭, 패널, 상태 표시줄)을 바꿉니다. 미리 준비된 테마가 여럿 있습니다 — 밝은 테마 (Light, Solarized Light, Catppuccin Latte, Gruvbox Light, One Light, Rosé Pine Dawn, Everforest Light, Tokyo Night Day)와 어두운 테마(Dark, Tokyo Night, Dracula, Ayu Mirage, Nord, Gruvbox Dark, Everforest Dark, Kanagawa Wave) — 그리고 강조 색상을 지정하는 사용자 지정 모드가 있습니다. 새로운 테마는 애플리케이션을 업데이트하지 않아도 온라인 카탈로그를 통해 추가됩니다.
코드 편집기와 Markdown 색상은 애플리케이션 테마와 별개로, 각자의 섹션에서 따로 선택합니다. 각각 준비된 배색(Default, Dracula, One, Nord, Gruvbox, Tokyo Night — 밝고 어두운 변형 포함)이 있는 테마: 콤보, 실시간 미리보기, 나만의 색상을 재사용 가능한 프리셋으로 저장하는 다른 이름으로 저장… 버튼이 있습니다.
창별 테마. 각 폴더(작업 공간)는 자체 테마를 가질 수 있어, 서로 다른 모습의 창 두 개를 동시에 열어둘 수 있습니다. 작업 공간 설정 → 이 폴더의 외관에는 이 창의 테마(애플리케이션 모습), 코드 테마, Markdown 테마를 위한 콤보가 있으며, 각각 변경하지 않고 두는 일반 테마 따르기/기본값 유지 옵션이 있습니다. 코드와 Markdown 테마를 재정의하면 일반 설정을 건드리지 않고 해당 폴더에서만 편집기 색상을 어두운 테마에 맞출 수 있어 유용합니다. 이 선택은 이 기기에만 남고 Git에 커밋되지 않습니다.
도구, 제목, 레이아웃
설치 가이드. 카탈로그의 도구(AI 어시스턴트, 인터프리터, 포매터, 린터,
데이터베이스 드라이버) 중 아직 컴퓨터에 없는 것을 선택하거나, 인터프리터가 없는
파일을 실행/서식/검사하려고 하면 LightNote가 설치 가이드를 엽니다. 안전한
명령(winget 사용)이 있으면 가이드는 정확한 명령을 보여 주고 내장
콘솔에서 한 번의 클릭으로 실행합니다. 도구가 다른 것(예: Node.js가 필요한 CLI)에
의존하면 먼저 필수 구성 요소를 설치하도록 제안합니다. 자동 설치 프로그램이 없으면
가이드는 공식 다운로드 페이지를 열고 단계별 안내를 제공합니다. 완료되면 설치를
확인하고 프로그램을 다시 시작하지 않아도 도구를 사용할 수 있게 합니다.
서식과 린터는 각각 자체 섹션(카탈로그의 추가
기능이 있는 언어별 외부 포매터/린터)을 가지고 있습니다. 설정을 다른
기기로 옮기려면 설정 이전 그룹(일반 섹션)의
내보내기/가져오기 설정(.lnconf 파일)을
사용하세요: 일반 옵션과 콘텐츠 테마는 포함되지만 API 키나 로컬 경로는
포함되지 않으므로 대상 기기에서 다시 입력해야 합니다.
창 제목은 자유 형식 템플릿입니다: 앱 이름은 항상 끝에
오며, 나머지는 {workspace}(작업 공간 루트 폴더),
{file}(열린 파일 이름), {path}(전체 경로)
변수로 구성합니다. 빈 변수 주변의 장식(예: [ {workspace} ]의
대괄호)은 스스로 사라집니다. 필드를 비워두면 기본값인
[ {workspace} ] {file} — 이 사용됩니다.
창 레이아웃. 보기 → 창 레이아웃(또는 일반 설정 → 일반 → 창 레이아웃)에서 세 가지 프리셋—모던(기본값), 클래식, 편안함— 중 하나를 고르거나 각 항목을 따로 조정할 수 있습니다. 상단에 메뉴 모음을 표시하기(켜면 ☰ 단추는 사라집니다. 둘 다 같은 메뉴를 열기 때문입니다), 아이콘 옆에 레이블을 표시하기, 도구 모음과 사이드바를 왼쪽이나 오른쪽에 두기, 그리고 아이콘 크기입니다. 프리셋은 항목을 채워 줄 뿐이며, 이후 개별로 바꿔도 취소되는 것은 없고 목록이 ‘(사용자 지정)’으로 바뀔 뿐입니다. 변경 사항은 열려 있는 모든 창에 즉시 적용됩니다.
휴대용 모드: 데이터를 프로그램 옆에
.zip 버전에서 LightNote는 설정, 세션, 로컬 기록, 색인을 프로그램 폴더 바깥의 Windows 폴더(%LOCALAPPDATA%)에 보관합니다. 휴대용 모드는 이 모든 것을 실행 파일 옆으로 옮겨, 폴더 전체를 USB 메모리나 외장 디스크, 동기화 폴더에 둘 수 있게 합니다.
켜는 방법: 복사본을 둘 위치에 .zip을 풀고 설정 → 일반 → 휴대용 모드를 열어 이 복사본을 휴대용으로 만들기…를 누릅니다. 창에는 데이터가 어디에서 어디로 가는지, 용량이 얼마인지, 무엇이 달라지는지가 표시됩니다. 확인하면 LightNote가 복사하고(옮기지 않습니다) 프로그램을 닫았다가 다시 열라고 안내합니다. 이전 복사본은 있던 자리에 그대로 남으므로, 문제가 생겨도 잃는 것은 없습니다.
그 뒤 프로그램 폴더에 폴더 두 개가 생깁니다. profile에는 사용자의 것(설정, 세션, 기록, 내려받은 사전)이, profile-cache에는 프로그램이 알아서 다시 만드는 색인만 들어갑니다. profile-cache는 공간을 되찾기 위해 언제든지 지워도 됩니다.
새 버전으로 업데이트하는 방법: 새 .zip을 내려받아 새 폴더에 풀고, 이전 버전의 profile 폴더를 그 안으로 복사하세요. 그것으로 끝입니다. profile-cache는 복사할 필요가 없습니다(스스로 다시 만들어집니다). 복사해도 문제는 없고 다만 불필요할 뿐입니다. 반대 방향은 하지 마세요. 더 새로운 버전이 기록한 프로필을 만나면, 프로그램은 아직 읽지 못하는 내용을 손상시키지 않도록 읽기 전용으로 열립니다.
끄는 방법: 다시 설정 → 일반 → 휴대용 모드로 가서 휴대용 모드 끄기…를 누릅니다. 아무것도 삭제되지 않습니다. 두 폴더의 이름만 바뀌고(profile.desativado와 profile-cache.desativado), 다음 시작부터 LightNote는 다시 Windows 폴더를 사용합니다. 삭제할지, 복원할지, 필요한 것만 복사할지는 나중에 정하면 됩니다.
컴퓨터를 바꿀 때 폴더와 함께 옮겨지지 않는 것. 세 가지 비밀은 Windows가 사용자와 컴퓨터별로 보호하므로 다른 PC에서는 복호화되지 않습니다. AI 키, 기억하도록 지정한 파일 암호, 저장된 암호 문구입니다. 그쪽에서 다시 입력하면 되며, 잃는 것은 없고 보안 파일은 입력한 암호 문구로 평소처럼 열립니다. 그 밖에 열린 탭과 폴더는 전체 경로를 저장하므로 드라이브 문자가 바뀌면 위치도 달라집니다. 탐색기 통합은 모드를 켤 때 꺼집니다(컴퓨터의 Windows에 기록하는데, 그것이 바로 휴대용 모드가 피하려는 것입니다). 설정에서 다시 켤 수 있습니다. 저장소에 기록된 .mcp.json은 lnote.exe의 전체 경로를 가리키므로 새 컴퓨터에서 다시 만들어야 합니다.
AI 키를 함께 가져가기(선택). 설정 → 일반 → 휴대용 모드에 구문으로 키 보호…가 있습니다. 켜면 AI 키와 기억해 둔 파일 암호가 Windows에 의존하지 않고 폴더와 함께 이동합니다. 두 번 생각하세요. 지금은 USB를 잃어버려도 잃을 것이 없습니다. 그 비밀들은 당신의 컴퓨터 밖에서는 열리지 않기 때문입니다. 구문을 쓰면 폴더를 손에 넣은 사람이 느긋하게 추측할 수 있게 됩니다. 긴 구문을 쓰세요. 작업 공간의 암호 문구는 의도적으로 이 키링에 들어가지 않습니다. 그것은 보안 노트를 여는 열쇠이고, 구문 하나로 전부 풀려서는 안 되기 때문입니다. 자기 컴퓨터에서 묻지 않게 하려면 이 컴퓨터에서 기억을 체크하세요. 다른 곳에서는 질문이 다시 나옵니다.
chaveiro-do-perfil휴대용 모드는 .zip 버전을 위한 것입니다. 설치 프로그램으로 설치한 복사본과 Microsoft Store 버전은 전환할 수 없습니다. 폴더가 읽기 전용이거나 제거 프로그램이 관리하기 때문이며, 버튼을 반응 없이 두는 대신 창이 그 이유를 알려 줍니다. 명령줄에서는 LightNote를 닫은 상태로 lnote portable --status, lnote portable --on(--dry-run 가능), lnote portable --off를 사용합니다.
키보드 단축키
- F1 — 이 도움말(현재 화면의 섹션으로)
- Ctrl+N / Ctrl+O — 새 파일 / 파일 열기
- Ctrl+S / Ctrl+W — 저장 / 탭 닫기
- Ctrl+Alt+Shift+S — 모두 저장(수정된 모든 탭)
- Ctrl+F / Ctrl+H — 파일 내 찾기 / 바꾸기
- Ctrl+Shift+F — 전역 검색(ripgrep)
- Ctrl+Shift+G — 버전 관리 패널(Git)
- Ctrl+Shift+E / Ctrl+Shift+M — 탐색기 패널 / 대기 항목 패널
- Ctrl+B — 사이드바 표시/숨기기
- Ctrl+' — 터미널(미국 배열에서는 Ctrl+`도)
- Ctrl+/ — 주석/주석 해제; Ctrl+Shift+D — 줄 복제
- F5 — 파일 실행; Ctrl+Shift+Enter — 선택 영역을 터미널로 전송
- Ctrl+K / Ctrl+I — AI에게 질문 / AI로 편집
- Ctrl+B / Ctrl+I / Ctrl+E — 마크다운 노트에서: 굵게 / 기울임 / 보기 모드 전환
- Ctrl+Shift+X / Ctrl+Shift+C / Ctrl+Shift+H — 노트에서: 취소선 / 인라인 코드 / 강조
- Ctrl+1…Ctrl+6 — 노트에서: 제목 수준 (같은 수준을 다시 누르면 문단으로 돌아감)
- Ctrl+Shift+V — 노트에서: 서식 없이 붙여넣기
- Ctrl+Enter — “여기서 실행”: SQL 문, 블록 셀, API 요청, 노트 안 다이어그램/수식의 원본
- Ctrl+Shift+R / F4 — 매크로: 기록 / 재생
- Ctrl+R — 파일로 이동; Ctrl+Shift+P — 명령 팔레트
- Ctrl+Shift+K — 작업으로 이동; Ctrl+Shift+T — 닫은 탭 다시 열기
- Ctrl+Alt+G — 연결 그래프
- Ctrl+Alt+N — 빠른 캡처(전역, LightNote 밖에서도 동작)
- Ctrl+Alt+D / Ctrl+Alt+T — 오늘의 노트 / 빠른 작업
- Ctrl+Alt+R — 오디오 녹음/정지(전역, 빠른 음성 메모)
- F11 — 젠 모드(탭이 창 전체를 차지)
- Ctrl++ / Ctrl+- / Ctrl+0 — 확대/축소
같은 키라도 포커스가 있는 화면에 따라 하는 일이 달라집니다. 포커스를 가진 뷰가 이기고, 그 밖에서는 창의 단축키가 적용됩니다. 데이터베이스 탭에 포커스가 있으면 F4는 매크로 재생 대신 개체 속성을 열고, Diff와 출력 패널에서는 F8/Shift+F8이 변경 지점 사이를 오가며, 개별 파일 창에서는 Alt+←/Alt+→로 폴더 사이를 앞뒤로 이동합니다. 필터링 가능한 전체 목록은 도움말 → 키보드 단축키에 있습니다.
라이선스, 에디션, 커뮤니티
LightNote는 동일한 기능을 가진 여러 에디션으로 제공되며, 라이선스와 배포 방식만 다릅니다:
- LightNote(무료, 웹사이트에서): 개인, 비상업적 용도로 사용.
- LightNote Core(Microsoft Store): 프로젝트에 대한 기여로 구매하며, 상업적 사용 라이선스가 주어지고 Store를 통해 자동 업데이트를 받습니다.
- LightNote Business(향후): 대량/기업용 라이선스로, 향후 제공 예정입니다.
보유한 사본의 에디션 — 그에 따라 적용되는 조항 — 은 도움말 → 정보에서 확인할 수 있습니다. 전체 약관은 도움말 → 정보 → 라이선스 약관…에 있습니다.
참여하고 기여하기:
- 제안과 질문: GitHub Discussions —
github.com/nglczr/LightNote-Community/discussions - 버그를 발견하셨나요? GitHub Issues에 신고해 주세요 —
github.com/nglczr/LightNote-Community/issues - Ko-fi로 개발을 후원해 주세요 —
ko-fi.com/lightnote(또는 Store에서 LightNote Core 구매) - 문의:
contato@lightnote.com.br· 웹사이트:lightnote.com.br