옵시디언을 활용한 청소년전용제 브레인스토밍

소개

시도하고자 했던 것과 그 이유를 알려주세요.

저는 청소년센터 사업담당자입니다. 25년도 서울시의 청소년 주요 정책중 하나인 청소년 전용제에 대한 아이디어 정리를 위해 옵시디언을 써봤어요.

청소년전용제에 대한 아이디어를 정리하고 확장하기 위해 **옵시디언(Obsidian)**을 활용해 보았습니다. 특히 프론트메터(Frontmatter)를 이용해 메타데이터를 정리하고 관련 글을 연결하며, 태그 관리 기능을 사용해 정보를 체계적으로 정리하는 방법을 시도했습니다.

진행 방법

어떤 도구를 사용했고, 어떻게 활용하셨나요?

1.Templater의 template을 만들기(옵시디언14기 피넛님의 코드 활용)

```javascript
<%*
const API_KEY = 
const API_KEY = 개인 API 키 넣어주세요
const MODEL = "gemini-2.0-flash-thinking-exp-01-21" //gemini-1.5-pro-latest //gemini-1.5-flash-latest //gemini-1.5-flash-8b-latest //gemini-exp-1114 //gemini-exp-1121 //gemini-exp-1206 //gemini-2.0-flash-exp //learnlm-1.5-pro-experimental //gemini-2.0-flash-thinking-exp-1219 //gemini-2.0-flash-thinking-exp-01-21
;
const k = 3;

const log = (message) => console.log(message);

log("🚀 Gemini API 요청을 시작합니다...");

const userQuestion = await tp.system.prompt("질문을 입력하세요");
const question = `${userQuestion}에 대해서 자세히 설명해주세요`;

log(`📝 입력된 질문: ${userQuestion}`);

async function askGemini(prompt) {
    const url = `https://generativelanguage.googleapis.com/v1beta/models/${MODEL}:generateContent?key=${API_KEY}`;
    const response = await fetch(url, {
        method: "POST",
        headers: { "Content-Type": "application/json" },
        body: JSON.stringify({
            contents: [{ parts: [{ text: prompt }] }]
        })
    });
    const data = await response.json();
    return data.candidates?.[0]?.content?.parts?.[0]?.text || "응답 없음";
}

log("🤔 첫 번째 답변을 요청합니다...");
const initialResponse = await askGemini(question);
log("✅ 첫 번째 답변 완료");

let explanations = [];
for (let i = 0; i < k; i++) {
    log(`🔄 추가 설명 ${i + 1}/${k}를 요청합니다...`);
    const followUpResponse = await askGemini(`더 자세히 설명해주세요: ${initialResponse}`);
    explanations.push(followUpResponse);
    log(`✅ 추가 설명 ${i + 1} 완료`);
}

log("📊 최종 정리를 요청합니다...");
const finalPrompt = `질문: ${question}\n\n초기 답변: ${initialResponse}\n\n추가 설명:\n${explanations.join("\n\n")}\n\n이 모든 내용을 심층해설의 형태로 흐름을 다듬고 내용을 상세하게 정리해주세요.`;
const finalResponse = await askGemini(finalPrompt);

log("🔑 키워드를 추출합니다...");
const keywordPrompt = `다음 내용에서 가장 중요한 키워드 20개를 겹치지 않게 뽑고, 쉼표로 구분된 리스트로 작성해주세요. 키워드 사이에 띄어쓰기가 있는 경우 한단어로 붙여주세요.:\n\n${finalResponse}`;
const keywords = await askGemini(keywordPrompt);
const keywordList = keywords.replace(/\n/g, '').split(',').map(k => k.trim());

log("📌 properties를 설정합니다...");
await tp.file.rename(userQuestion); // Frontmatter 생성
let frontmatter = "---\ntags:\n";
keywordList.forEach(keyword => {
    frontmatter += `- ${keyword}\n`;
});
frontmatter += "---\n";

tR += frontmatter + finalResponse;
%>
  1. 결과

    한국어 웹 사이트의 스크린 샷

1️⃣ 좋은점/ 아쉬운점

좋은점

  • 개별 자료를 인터넷에서 검색하는 데 걸리는 시간을 단축할 수 있음

  • 정보의 연결성을 높이고 정리된 형태로 보관할 수 있음

  • 메타데이터와 태그를 활용해 효율적으로 자료를 관리 가능

아쉬운점

  • 아이디에이션이라고 하기엔 너무 만연체(?) 정보가 너무 많다.

2️⃣ 프론트메터 활용 (ex) related_notes)

  • 각 노트에 태그를 추가하여 관련 노트끼리 쉽게 연결

  • 메타데이터를 사용해 노트의 주요 키워드와 정보를 정리

  • 청소년전용제 관련 자료를 참고할 수 있도록 설정

3️⃣ 앞으로 해보고 싶은 것

  • 시각적인 노트 링크 및 그래프 뷰 기능 활용 (현재 미사용)

  • 브레인스토밍 플러그인 추가하여 보다 효율적인 아이디어 확장

  • 옵시디언을 활용한 두뇌 확장 기법(Second Brain) 적용

결과와 배운 점

장점

  • 기존에 인터넷 검색을 반복하며 자료를 찾던 시간이 줄어듦

  • 메타데이터 및 태그 기능 덕분에 관련 자료 간 연결이 쉬워짐

  • 노트가 체계적으로 정리되면서 아이디어를 구조적으로 정리할 수 있음

아쉬운 점

  • 아직 태그나 연결된 글을 통해 인사이트를 얻은 경험은 부족

  • 그래프 뷰 및 플러그인 활용이 부족하여 향후 개선 필요

추가로 해볼 것: 그래프 뷰 사용하여 아이디에이션

https://www.youtube.com/watch?v=0iD0T1kgCtI

3
2개의 답글

👉 이 게시글도 읽어보세요