Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .jules/sentinel.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,7 @@
**Vulnerability:** Unhandled exceptions when accessing `localStorage` in strict browser privacy modes (e.g., when cookies are blocked).
**Learning:** Browsers throw a `SecurityError` when `localStorage` is accessed and the user has blocked third-party cookies or is in a strict privacy mode. If unhandled, this crashes the executing script, leading to a degraded user experience (DoS-like behavior for privacy-conscious users).
**Prevention:** Always wrap `localStorage.getItem` and `localStorage.setItem` in `try-catch` blocks to fail securely and fall back to sensible defaults.
## 2026-06-29 - Secure External Links with noopener noreferrer
**Vulnerability:** External links (`<a href="http...">`) opened without `rel="noopener noreferrer"`.
**Learning:** While the site didn't previously open links in a new tab (`target="_blank"`), adding this behavior along with `rel="noopener noreferrer"` enhances security by preventing newly opened untrusted tabs from accessing the `window.opener` object to execute reverse tabnabbing attacks.
**Prevention:** Always add `target="_blank" rel="noopener noreferrer"` to external outgoing links to protect users from malicious redirects by third parties.
28 changes: 14 additions & 14 deletions index.html
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@
<a href="#projects" data-i18n="nav.projects">ํ”„๋กœ์ ํŠธ</a>
<a href="#forks" data-i18n="nav.forks">Fork</a>
<a href="#work" data-i18n="nav.work">์ž‘์—…</a>
<a href="https://github.com/ContextualWisdomLab">GitHub</a>
<a href="https://github.com/ContextualWisdomLab" target="_blank" rel="noopener noreferrer">GitHub</a>
</nav>
<div class="language-switch" role="group" aria-label="Language">
<button type="button" data-lang="ko" aria-pressed="true">KO</button>
Expand All @@ -57,7 +57,7 @@ <h1 data-i18n="hero.title">๋งฅ๋ฝ์ง€ํ˜œ ์—ฐ๊ตฌ์‹ค</h1>
๊ตฌ์Šฌ์ด ์„œ ๋ง์ด์–ด๋„ ๊ฟฐ์–ด์•ผ ๋ณด๋ฐฐ์ด๋“ฏ, ๋ฌธ์„œ, ๋ฉ”์ผ, ๋กœ๊ทธ, ํšŒ์˜๋ก์„ ๋งฅ๋ฝ ์•ˆ์—์„œ ์—ฎ์–ด ์‚ฌ๋žŒ์ด ๋ฌด์—‡์„ ๊ฒฐ์ •ํ•˜๊ณ  ๋ฌด์—‡์„ ์‹คํ–‰ํ• ์ง€ ๋ณด์ด๊ฒŒ ํ•˜๋Š” AI ์˜์‚ฌ๊ฒฐ์ • ์ง€์› ์‹œ์Šคํ…œ์„ ์—ฐ๊ตฌํ•˜๊ณ  ๋งŒ๋“ญ๋‹ˆ๋‹ค.
</p>
<div class="hero-actions" role="group" aria-label="Homepage actions">
<a class="button primary" href="https://github.com/ContextualWisdomLab" data-i18n="hero.primaryCta">GitHub ๋ณด๊ธฐ</a>
<a class="button primary" href="https://github.com/ContextualWisdomLab" target="_blank" rel="noopener noreferrer" data-i18n="hero.primaryCta">GitHub ๋ณด๊ธฐ</a>
<a class="button secondary" href="#dikw" data-i18n="hero.secondaryCta">DIKW ๋ณด๊ธฐ</a>
</div>
</div>
Expand Down Expand Up @@ -251,19 +251,19 @@ <h2 data-i18n="references.title">์ฐธ๊ณ ๋ฌธํ—Œ</h2>
<ol class="reference-list">
<li>
<span data-i18n="references.ackoff">Ackoff, R. L. (1989). From data to wisdom. Journal of Applied Systems Analysis, 16(1), 3-9.</span>
<a href="https://faculty.ung.edu/kmelton/documents/datawisdom.pdf">https://faculty.ung.edu/kmelton/documents/datawisdom.pdf</a>
<a href="https://faculty.ung.edu/kmelton/documents/datawisdom.pdf" target="_blank" rel="noopener noreferrer">https://faculty.ung.edu/kmelton/documents/datawisdom.pdf</a>
</li>
<li>
<span data-i18n="references.baskarada">Baskarada, S., &amp; Koronios, A. (2013). Data, information, knowledge, wisdom (DIKW): A semiotic theoretical and empirical exploration of the hierarchy and its quality dimension. Australasian Journal of Information Systems, 18(1).</span>
<a href="https://doi.org/10.3127/ajis.v18i1.748">https://doi.org/10.3127/ajis.v18i1.748</a>
<a href="https://doi.org/10.3127/ajis.v18i1.748" target="_blank" rel="noopener noreferrer">https://doi.org/10.3127/ajis.v18i1.748</a>
</li>
<li>
<span data-i18n="references.fricke">Frickรฉ, M. (2009). The knowledge pyramid: A critique of the DIKW hierarchy. Journal of Information Science, 35(2), 131-142.</span>
<a href="https://doi.org/10.1177/0165551508094050">https://doi.org/10.1177/0165551508094050</a>
<a href="https://doi.org/10.1177/0165551508094050" target="_blank" rel="noopener noreferrer">https://doi.org/10.1177/0165551508094050</a>
</li>
<li>
<span data-i18n="references.brienza">Brienza, J. P., Kung, F. Y. H., Santos, H. C., Bobocel, D. R., &amp; Grossmann, I. (2018). Wisdom, bias, and balance: Toward a process-sensitive measurement of wisdom-related cognition. Journal of Personality and Social Psychology, 115(6), 1093-1126.</span>
<a href="https://doi.org/10.1037/pspp0000171">https://doi.org/10.1037/pspp0000171</a>
<a href="https://doi.org/10.1037/pspp0000171" target="_blank" rel="noopener noreferrer">https://doi.org/10.1037/pspp0000171</a>
</li>
</ol>
</section>
Expand Down Expand Up @@ -324,31 +324,31 @@ <h2 data-i18n="projects.title">๊ณต๊ฐœ ํ”„๋กœ์ ํŠธ</h2>
</div>
<div class="naruon-grid project-grid">
<article>
<h3><a href="https://github.com/ContextualWisdomLab/naruon" data-i18n="projects.naruonTitle">Naruon</a></h3>
<h3><a href="https://github.com/ContextualWisdomLab/naruon" target="_blank" rel="noopener noreferrer" data-i18n="projects.naruonTitle">Naruon</a></h3>
<p data-i18n="projects.naruonBody">๋ฉ”์ผ, ์ฒจ๋ถ€, ์ผ์ •, ์ž‘์—…์„ ๋งฅ๋ฝ์œผ๋กœ ๋ฌถ์–ด ํŒ๋‹จ๊ณผ ์‹คํ–‰์œผ๋กœ ์—ฐ๊ฒฐํ•˜๋Š” AI ์ด๋ฉ”์ผ ์›Œํฌ์ŠคํŽ˜์ด์Šค์ž…๋‹ˆ๋‹ค.</p>
</article>
<article>
<h3><a href="https://github.com/ContextualWisdomLab/pg-erd-cloud" data-i18n="projects.pgErdTitle">pg-erd-cloud</a></h3>
<h3><a href="https://github.com/ContextualWisdomLab/pg-erd-cloud" target="_blank" rel="noopener noreferrer" data-i18n="projects.pgErdTitle">pg-erd-cloud</a></h3>
<p data-i18n="projects.pgErdBody">PostgreSQL ์Šคํ‚ค๋งˆ๋ฅผ ๋ฆฌ๋ฒ„์Šค ์—”์ง€๋‹ˆ์–ด๋งํ•˜๊ณ  ERD์™€ DDL ๊ณต์œ  ํ๋ฆ„์œผ๋กœ ๊ด€๋ฆฌํ•˜๋Š” ํด๋ผ์šฐ๋“œ MVP์ž…๋‹ˆ๋‹ค.</p>
</article>
<article>
<h3><a href="https://github.com/ContextualWisdomLab/bandscope" data-i18n="projects.bandscopeTitle">BandScope</a></h3>
<h3><a href="https://github.com/ContextualWisdomLab/bandscope" target="_blank" rel="noopener noreferrer" data-i18n="projects.bandscopeTitle">BandScope</a></h3>
<p data-i18n="projects.bandscopeBody">๊ณก์„ ์„น์…˜, ์—ญํ• , ํ…œํฌ, ์—ฐ์Šต ์šฐ์„ ์ˆœ์œ„๋กœ ๋ถ„์„ํ•˜๋Š” ๋กœ์ปฌ ์šฐ์„  ๋ฆฌํ—ˆ์„ค ์•ฑ์ž…๋‹ˆ๋‹ค.</p>
</article>
<article>
<h3><a href="https://github.com/ContextualWisdomLab/codec-carver" data-i18n="projects.codecCarverTitle">codec-carver</a></h3>
<h3><a href="https://github.com/ContextualWisdomLab/codec-carver" target="_blank" rel="noopener noreferrer" data-i18n="projects.codecCarverTitle">codec-carver</a></h3>
<p data-i18n="projects.codecCarverBody">๊ธด ๋…น์Œ์„ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ๋ณด์กดํ•œ FLAC/Opus ์กฐ๊ฐ์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” Python CLI์ž…๋‹ˆ๋‹ค.</p>
</article>
<article>
<h3><a href="https://github.com/ContextualWisdomLab/newsdom-api" data-i18n="projects.newsdomTitle">newsdom-api</a></h3>
<h3><a href="https://github.com/ContextualWisdomLab/newsdom-api" target="_blank" rel="noopener noreferrer" data-i18n="projects.newsdomTitle">newsdom-api</a></h3>
<p data-i18n="projects.newsdomBody">์Šค์บ”๋œ ์ผ๋ณธ์–ด ์‹ ๋ฌธ PDF๋ฅผ ๊ธฐ์‚ฌ, ์ œ๋ชฉ, ๋ณธ๋ฌธ, ์ด๋ฏธ์ง€ ๊ตฌ์กฐ์˜ DOMํ˜• JSON์œผ๋กœ ํŒŒ์‹ฑํ•˜๋Š” API์ž…๋‹ˆ๋‹ค.</p>
</article>
<article>
<h3><a href="https://github.com/ContextualWisdomLab/scopeweave" data-i18n="projects.scopeweaveTitle">scopeweave</a></h3>
<h3><a href="https://github.com/ContextualWisdomLab/scopeweave" target="_blank" rel="noopener noreferrer" data-i18n="projects.scopeweaveTitle">scopeweave</a></h3>
<p data-i18n="projects.scopeweaveBody">ํŠธ๋ฆฌ ํŽธ์ง‘, ์ง„ํ–‰๋ฅ  ๊ณ„์‚ฐ, CSV/JSON, ์ฃผ๊ฐ„ Gantt๋ฅผ ์ง€์›ํ•˜๋Š” ์ •์  HTML/CSS/JS WBS ํ”Œ๋ž˜๋„ˆ์ž…๋‹ˆ๋‹ค.</p>
</article>
<article>
<h3><a href="https://github.com/ContextualWisdomLab/VibeSec" data-i18n="projects.vibesecTitle">VibeSec</a></h3>
<h3><a href="https://github.com/ContextualWisdomLab/VibeSec" target="_blank" rel="noopener noreferrer" data-i18n="projects.vibesecTitle">VibeSec</a></h3>
<p data-i18n="projects.vibesecBody">๋ฐ”์ด๋ธŒ์ฝ”๋”ฉ ์•ฑ์„ ์œ„ํ•œ ๋ณด์•ˆ ๊ฐ€๋“œ๋ ˆ์ผ์ž…๋‹ˆ๋‹ค. AI ๊ฐœ๋ฐœ ๋„๊ตฌ ๊ทœ์น™, ์ •์  ์ ๊ฒ€, ๋ฆฌ๋ทฐ์™€ ์ˆ˜์ • ํ”„๋กฌํ”„ํŠธ๋ฅผ ๋‹ค๋ฃน๋‹ˆ๋‹ค.</p>
</article>
</div>
Expand Down Expand Up @@ -419,7 +419,7 @@ <h2 data-i18n="work.title">์—ฐ๊ตฌ์—์„œ ์ œํ’ˆ์œผ๋กœ</h2>
>
<p>
<span data-i18n="footer.founded">Founded by</span>
<a href="https://github.com/seonghobae">Seongho Bae</a>.
<a href="https://github.com/seonghobae" target="_blank" rel="noopener noreferrer">Seongho Bae</a>.
<span data-i18n="footer.line">Context into judgment. Judgment into action.</span>
</p>
</footer>
Expand Down
Loading