์์ด์ ํธ๊ฐ Nix ๊ฐ๋ฐ์
ธ ๊ถํ์ ๋ค๊ณ ์์ผ๋๊น ์์ฐ์ค๋ฝ๊ฒ sops -d๋ก ๋ด secret๋ฅผ ๋ณตํธํํ๊ณ ํค๋ฅผ ์ฝ์ด๊ฐ๋๊ตฌ๋ ๐
An Nyeong (ๅฎๅฏง)
@nyeong@hackers.pub ยท 69 following ยท 90 followers
ฮป(โ) โ ๐ป
- Languages: Korean(๊ฐ์ฉ), English(totally broken), Japanese(ใพใใพใ), Esperanto(tre iomete)
- Interests: server, concurrency, functional programming, keyboard(the input system), guitar
Stella
- @annyeong@stella.place
GitHub
- @nyeong
AI FOMO์ ํฉ์ธ๋ ค ๋ญ๋ผ๋ ํด์ผ๊ฒ ๋ค๋ ์๊ฐ์ด ๋๋ ์ ๋ฌธ์(?)๋ผ๋ฉด, ๋๋ธ ๊ฐ์๋ ์ฅ๋น๋ ๋ญ๋ ๋น์ผ ๋ฌด์์ ์ฌ์ง ๋ง๊ณ ๋ค์ ๋ ๊ฐ์ง๋ฅผ ํ์๊ธธ ๊ถํด๋ด ๋๋ค.
- ๊ฐ์ฅ ๋น์ผ Plan์ผ๋ก ๋ง์๊ป ์จ๋ณด๊ธฐ ํด๋ก๋ ์ฝ๋, ์ฝ๋ฑ์ค ๋ฑ AI ์์ด์ ํธ ์๋น์ค์ ๊ฐ์ฅ ๋น์ผ Plan์ ํ ๋ฌ ์ ๋๋ ๊ฒฝํํด๋ณด์ธ์. ์ฌ์ฉ๋ ์ ํ๋ฐ๊ฑฐ๋ ์ฑ๋ฅ์ด ๋จ์ด์ง๋ AI ๋ชจ๋ธ์ ์ฐ๋ฉด, AI์ ๋ํ ๊ด์ ๋ ๊ทธ ์ ๋์ ๊ฐํ ๊ฐ๋ฅ์ฑ์ด ์ปค์.
ํ๋ก ํฐ์ด๊ธ ๋ชจ๋ธ์ ํ ํฐ ํ๋ํ๊ฒ ์ฌ์ฉํ์ ๋ AI ์๋น์ค๊ฐ ์ ๊ณตํ๋ ๊ฐ์น๋ ๊ผญ ๊ฒฝํํด๋ด์ผ ํฉ๋๋ค.
AI ๋ชจ๋ธ ์ด์ฉ๋ฃ๋ ๋ ์ค์ด๋ค ์ ์์ง๋ง, AI ๋ชจ๋ธ์ ๋ ๋ด ์ ์์ ์ฅ์ด์ฃผ๋ AI ์์ด์ ํธ ์๋น์ค๋ ๋ถ๊ฐ๊ฐ์น๋ฅผ ๋์ด๋ ๋ฐฉํฅ์ผ๋ก ์ด์ฉ๋ฃ๊ฐ ๋ฎ์์ง์ง ์์ ๊ฒ๋๋ค. ๊ฒ๋ค๊ฐ ํ์ฌ๋ ๊ฒฝ์ํ๋๋ผ ์ ์ ๊ฐ์ํ๋ฉฐ ํผ์ฃผ๋ ๊ฒ์ ๊ฐ๊น์์ ๊ณ ๊ฐ์๊ฒ ์์น ์๊ธฐ๊ฐ ๋๋๋ฉด ์ด์ฉ๋ฃ๊ฐ ์ค๋ฅด๊ฑฐ๋ ์ ์ฝ์ด ์ปค์ง ๊ฒ ๊ฐ์ต๋๋ค.
์ ์ง์ ํ๊ฒฝ์ ์ํฉ์ผ๋ก ์๋ก ๋ค์ง์. ์๋ก์ด ์ํํธ์จ์ด ๊ฐ๋ฐ ๋๊ตฌ๋ฅผ ๋์ ํ ๋, ์๋ชป ๋์ ํ๋ฉด ๋ฐ์ํ๋ ๋น์ฉ์ด ํฌ๊ธฐ ๋๋ฌธ์ ๋ง์ ์๊ฐ ๋ถ์ํ๊ณ ๊ฒ์ฆํ๊ณ , ํ์ตํ์์ต๋๋ค. ๊ฐ์น์๋ ์ผ์ด์ง๋ง ์๊ฐ ๋น์ฉ์ด ๋๋ฌด ํฝ๋๋ค. ๊ทธ๋ฌ๋ ์ต๊ทผ์ AI ์ฝ๋ฉ ์์ด์ ํธ๋ฅผ ์ด์ฉํด ํ๋ณด ๋๊ตฌ๋ฅผ ๋์์ ์ ์ฉํด๋ด ๋๋ค. ์์ ์ ์ฌ๋ฌ ์ฌ๋์ด ๋์๋๊ฑฐ๋ ๊ธด ์๊ฐ์ ๋ค์ฌ์ผ ํ์ง๋ง, ์ด์ ๋ ํผ์์ ์งง๊ฒ๋ ๋ช ์๊ฐ, ๊ธธ์ด๋ ๋ฉฐ์น ์์ ์ค ๊ฒฝํ์ ๊ธฐ๋ฐํ ํ๋จ ์๋ฃ๋ฅผ ๋์ถํฉ๋๋ค.
๋ฆฌ์์นญํ๋ ๋๊ตฌ์ ๋ํด ์ง์ ์กฐ์ฌํ๊ฑฐ๋ AI๊ฐ ์กฐ์ฌํ ๊ฑธ ๋ฆฌ๋ทฐํ๊ณ ์ฌ๊ฒ์ฆํ๊ธฐ๋ ํ์ต๋๋ค. ํ์ง๋ง ์ฌ์ฉ๋์ด ๋๋ํ Plan์ ์ฌ์ฉํ ์ดํ๋ก๋ ์ฌ์ฉํ ๋๊ตฌ๊ฐ ์คํ์์ค์ธ ๊ฒฝ์ฐ, ์ฝ๋ ์ ์ฒด๋ฅผ AI ์๊ฒ ๋ถ์์ํค๊ณค ํฉ๋๋ค. ํ ํฐ ์ฌ์ฉ๋์ผ๋ก ๋ณด๋ฉด 1์๊ฐ๋ ์ ๋์ด ๋ช ๋ง์์ ์ฐ๋ ์ ์ธ๋ฐ, ์ ๊ฐ ์๊ณ ์ถ์ ์ ๋ณด๋ฅผ ์์ธํ ํ์ตํ๊ธฐ์๋ ์ข๊ณ , AI ํ๊ฐ์ ์ค์ฌ์ฃผ๋ ๋ฐ์๋ ๋์์ด ๋ฉ๋๋ค.
์ฌ์ฉ๋ ์ ํ์ด ํฐ Plan์ ์ฌ์ฉํ ๋ ๋ง์น ํ ํฐ์ ์๊ปด์ฐ๋๋ผ ์์ ์ฒ๋ผ, ์ฆ ํ์ฌ์ฒ๋ผ AI๋ฅผ ํ์ฉํ ์๋๋ฅผ ๋ชป๋์ต๋๋ค.
- ๊ฐ๋ฅ์ฑ๊ณผ ํ๊ณ ์ธ์ํ๊ธฐ 1๋ฒ์ ์ฐ์ฅ์ธ๋ฐ, ํ๋ํ๊ฒ AI ์์ด์ ํธ๋ฅผ ์ฌ๋ฌ ๋ฐฉํฅ์ผ๋ก ์ฌ์ฉํ๋ค๋ณด๋ฉด ์์ฐ์ค๋ ์๊ฐ์ด ๋ณต์กํด์งํ ๋ฐ, ํนํ ๋ค์ ๋ ๊ฐ์ง๋ฅผ ๊ณ ๋ฏผํด๋ณด์ธ์.
- ๋ด๊ฐ ํ๋ ์ผ, ๋ด ํ๊ฒฝ์ ๋ํด ์ฌ์ ์ํ๊ธฐ
- ์ฌ์ ์ํ ๋ด ์ํฉ์ ๋น์ถ์ด ๊ฐ๋ฅ์ฑ(๋ฏธ๋)๊ณผ ํ๊ณ(ํ์ฌ)๋ฅผ ์ ์ํ๊ธฐ
๊ทธ๋์ ๋ง์ ์ผํ๋ ๋ฐฉ์, ํ์ตํ๋ ๋ฐฉ์, ํ์ ํ๋ ๋ฐฉ์์ โ์ฌ๋โ์ ๋์์ผ๋ก, ๊ธฐ์ค์ผ๋ก ํ์ฌ ์ค๋ ์ธ์ ๊ณ ๋ํ๋์ด ์กํ ์ฒด๊ณ์ ๋๋ค. AI๋ ์ฌ๋๊ณผ ๋ค๋ฆ ๋๋ค.
์ํํธ์จ์ด๋ฅผ ๋ง๋๋ ํ๊ฒฝ์ ์๋ก ๋ค๊ฒ ์ต๋๋ค. ์กฐ์ง์ ํ์ ์ฒด๊ณ์์ ๋๊ฐ๋ ๊ฐ๋ฐํ, ์ฆ ์ํํธ์จ์ด ๊ฐ๋ฐ์ด ๋ณ๋ชฉ ์์์ ๋๋ค. ๊ทธ๋์ ๋ณ๋ชฉ ์์ ๊ด๋ฆฌ์ ์ด์ ์ ๋ง์ถ๋ ์ํํธ์จ์ด ๊ฐ๋ฐ ๋ฐฉ๋ฒ์ด๋ ํ์ ์ฒด๊ณ๊ฐ ๋๋ถ๋ถ์ ๋๋ค. ๊ณผ๊ฐํ ๋ฉ์ํ๊ฒ ๋ณธ๋ค๋ฉด, ๊ธฐํ์ ์กฐ์ง์ ์ ํํ๋ ์ฉ๋๋ก ๋ฐํ ์ฅํ๋ฅผ ๋ง๋๋ ์ด์ ๋, ๊ทธ ์์ ๋น์ฉ์ด ๋ ์ธ๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ ๋ฌ๋ ฅ์ด ๋จ์ด์ง์ง๋ง ์ ์ฒด์ ์ผ๋ก ๋ดค์ ๋ ์ ๋ ดํ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ๋ง์ฝ ๋ฐํ ์ฅํ ๋ง๋๋ ๋ชฉ์ ์ด ๋น์ฉ์ด๋ผ๋ฉด, AI ์ฝ๋ฉ ์์ด์ ํธ๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ๋ชจ ๋ฒ์ ์ ๋ง๋๋ ๊ฒ ๋ ์ ๋ ดํฉ๋๋ค. ์ด์ฉ๋ฃ, ์๊ฐ์ ๋ฌผ๋ก ์ด๊ณ , ์ค์ ๋์๊ฐ๋ ๋ฐ๋ชจ ๋ฒ์ ์ ์ ๋ฌ๋ ฅ๋ ์ ์ ์ธ ๊ธ, ๊ทธ๋ฆผ๋ณด๋ค ๋ซ์ต๋๋ค.
AI ์์ด์ ํธ๋ฅผ ํํ ์ฌ์ฉํ๋ฉด์ ์์ ์ด ์ผํ๋ ์ฒด๊ณ, ๋ฐฉ์์์ ์ฌ๋ ๊ฐ ํ์ ์ ๊ธฐ์ค์ผ๋ก ํ๋ ๋ถ๋ถ์ด ๋ฌด์์ธ์ง ๊ณ ๋ฏผํด๋ณด์ธ์.
๋์ฒดํ๊ฑฐ๋ ํจ์จ์ ๋์ผ ๋ถ๋ถ ๋ฟ๋ง ์๋๋ผ ํ๊ณ๋ ๊ณ ๋ฏผํ์ธ์. ๊ทธ ํ๊ณ๊ฐ AI ๋ชจ๋ธ์ด๋ ์์ด์ ํธ์์ ๊ธฐ์ธํ๋ ๊ฑธ ์๋ ์๊ณ , ์ฌ๋(์๊ธฐ ์์ )์๊ฒ์ ๊ธฐ์ธํ๋ ๊ฑธ ์๋ ์์ต๋๋ค.
2๋ฒ ๋จ๊ณ์ ์ค๋ฉด ๋ค์์ ๋ญ ํด์ผํ ์ง ๋ฐฉํฅ์ด ์กํ๋๋ค. ํ๋ค๋ชปํด ๊ฐ์๋ ๊ฐ์ข, ์ฑ ๋ ๋ฌด์์ ๋ด์ผํ ์ง ๊ด์ ์ด ์๊น๋๋ค. ์ด๋ค ์ฌ๋๊ณผ ์ด๋ป๊ฒ ํ์ ํ ์ง, ์ด๋ค ๋๊ตฌ์ ๋์ ๋ ๋ค์ผ์ง, ๋ด๊ฐ ๋ชธ์ผ๋ก ๋ผ์ฐ๋ ๊ฒ ๋์์ง. ๊ทธ ๋จ๊ณ์ ๋์ ์ฐ์ธ์.
์ด ๊ณผ์ ์ ๊ฒฝํํ๊ณ , ๋ด ๊ด์ ์ ๊ฐ๋ ๋ฐ 1~2๋ฌ์ด๋ฉด ์ถฉ๋ถํฉ๋๋ค. ์์ฆ์ฒ๋ผ AI ๋ฐ์ ์ด ๋น ๋ฅธ ์๊ธฐ์ ๋๋ฌด ๋๋ฆฐ ๊ฒ ์๋๋๊ณ ์. ๋ถ๊ณผ 1๋ ์ ๋ง ํด๋ AI ์ฝ๋ฉ ์์ด์ ํธ์ ์์ค์ ํ์ฌ์ ๋น๊ต๋ถ๊ฐ ์์ค์ด์๋ค๋ ๊ฑธ ๋ณด๋ฉด ๊ทธ๋ฐ ๋ง์์ด ๋ค ์ ์์ต๋๋ค. ๊ทผ๋ฐ, AI๊ฐ ๋๊ตฌ๋ผ๋ ์ ์ ์ ํ ๋ฌ๋ผ์ง์ง ์์์ต๋๋ค. ๋ฌธ์ ๋ฅผ ์ ์ํ๊ณ , ์ค์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋(execution) ๊ฒฐ์ ๊ณผ ๋ฐฉ์์ ์ฌ๋์ด ํฉ๋๋ค. ๋์์์ด ์๋ก์ด ๋๊ตฌ๋ ๋์๊ณ ๋ฐ์ ํด์์ง๋ง, hello world์ ๋จธ๋ฌด๋ฅด๋ ์ฌ๋์ ๊ทธ๋๋ ์ง๊ธ์ด๋ hello world์ ๋จธ๋ฌด๋ฅด๊ณ , ๋ณํ๋ฅผ ์ผ์ผํค๊ฑฐ๋ ๋ณํํ๋ ์ฌ๋๋ ๊ทธ๋๋ ์ง๊ธ์ด๋ ์์ด์์ต๋๋ค.
๋ณด์ ์ํ ๋ฑ ์กฐ์ฌํด์ผ ํ ๊ฑด ๋ง์๋ฐ, ์ด๋ํ ์์ ๊ฑฐ๋ก ํ โํ๊ณโ๋ก ํ์ ํ๋ ๊ฒ ์ฐ์ ์ ๋๋ค. ๋ฌธ์ ๋ฅผ ์๊ณ , ์ ์ํ ์ ์์ผ๋ฉด ํด๊ฒฐ ๋ฐฉ๋ฒ๋ ์ฐพ์ ๊ฐ๋ฅ์ฑ์ด ํฝ๋๋ค. ๋๊ตฐ๋ค๋ AI๊ฐ ๋๋ด์ฃผ๋ ์ ์ค ํ๋๋ ์์ฐ์ด๋ก ์ํํธ์จ์ด โ์์ง๋์ด๋งโ์ ์คํํ๋ ๊ฒ๋๋ค. ๊ทธ๋ฆฌ๊ณ โ์ํํธ์จ์ดโ์ฌ์ ์คํ ๋น์ฉ์ด ์๋์ ์ผ๋ก ์ ๋ ดํ๊ณ ์.
๊ณ ํ์จ ์๊ธฐ๋ผ 100 USD, 200 USD๊ฐ ๋ถ๋ด์ค๋ฝ์ง๋ง, ๊ณ ์ฑ๋ฅ AI ๋๊ตฌ๋ฅผ ๋ค์ํ ๋ฐฉ๋ฒ์ผ๋ก ์จ๋ณด๋ฉฐ ๋ด ์๊ฐ๊ณผ ๊ด์ ์ ๋ํ๋ ๋น์ฉ์ผ๋ก๋ ์ ๋ ดํฉ๋๋ค.
์ ๋ฏธ๋์ด๊ฐ ์ด์ฌํ ๋์๋ณด๋ ๋ง๋ค์ด์คฌ๋ค!
๋๋์ด ๊นจ๋ฌ์๊ตฌ๋. ๋ฐ์ด๋ธ ์ฝ๋ฉ ์ฑ๋๋ก ์ค๋ผ.
์ต์ต์ต์ต์ข ์ด๋ฉด์ ๊ฑฐ์ง๋งํ๊ธด
์ ๊ทธ๋๊ทธ๋ ์ ๋ฏธ๋์ด์ผ. ๋๋ ๋ง์ด ์ ๋๋ค๊ณ ์๊ฐํด.
๋๋์ด ๊นจ๋ฌ์๊ตฌ๋. ๋ฐ์ด๋ธ ์ฝ๋ฉ ์ฑ๋๋ก ์ค๋ผ.
์ ๊ทธ๋๊ทธ๋ ์ ๋ฏธ๋์ด์ผ. ๋๋ ๋ง์ด ์ ๋๋ค๊ณ ์๊ฐํด.
@nyeongAn Nyeong (ๅฎๅฏง) ์ด๊ฑฐ ์ธํ
ํ๋ Nix ๋ ์ํผ ๋ง๋ค์ด์ ๊ณต์ ํ๋ฉด ์ข์๊ฑฐ ๊ฐ๋ค์.
@bglbgl gwyng ํ
์คํธํ ๋งฅ ์คํ๋์ค๋ฅผ ์ด๋์ ์ฃผ์ฐ๋ฉด ์ ๊ฐ ํ ๋ฒ... ๐๐
๋ช ํจ ๋๋ฌธ์ด๋ผ๋ ๋๋ง ๊ฐ๊ณ ์ถ๋ค ๐
Redesigned my personal website (https://ji.hyeok.org) using the design from my name card! The name card itself is designed by
@hongminheeๆดช ๆฐๆ (Hong Minhee).
The physical name card looks like this.
@nyeongAn Nyeong (ๅฎๅฏง) ์ค ์ฌ๋ ์๊ฐ์ด ๋ค ๋๊ฐ๋ค์ใ
ใ
@bglbgl gwyng ๊ณต๋์ฒด์ ์ก ์ค์ผ์ค๋ง์ ํตํ ํด๋ฒ์ ๋ค ๋น์ทํ ๊ฒ ๊ฐ์์ ๐
์ฌ๋๋ค ๋ชจ์์ ํ๋์กฐํฉ ๋ง๋ค์ด์ ๊ณต๋์ถ์ํด์ ๋งฅ ์คํ๋์ค ํด๋ฌ์คํฐ ์ฐ ๋ค์์ ์กฐํฉ์๋ผ๋ฆฌ ๋ผ์ฐํ ํ๋ ๊ฑด ์ด๋จ๊น? ๐ค ๋ผ๋ ์๊ฐ์ ํ๋๋ฐ
ํํธ 1960๋ ๋:
์ ๊ฐ ํจ ๊ฐ๋ณผ๊ฒ์
์ฐ์
ๆฅๆฌ์ TypeScript ์ปจํผ๋ฐ์ค์ธ TSKaigi 2026์ด 5ๆ 22ๆฅ(้)โ23ๆฅ(ๅ)์ ๆฑไบฌ์์ ้ๅฌ๋๋ค๊ณ ํฉ๋๋ค. ํจ๊ป ๊ฐ์ค ้ๅ ๋ถ ๊ณ์ค๊น์?
ไธๆฆ ์ ๋ @2chanhaeng์ด๋ฌด ๋ํ๊ณ
@kodingwarriorJaeyeol Lee (a.k.a. kodingwarrior)
๋์ด ๊ฐ์ด ๊ฐ์ค ๊ฒ ๊ฐ์ต๋๋ค.
๋ด ์ธ์์ด FOMO๋ค
Nix + Agent(LLM) ์ฐ๋ ๊ฑฐ ๋๋ฌด ์ข๋ค
๊ทธ๋ฅ ๋๋๋๋ก ๋์ฑ ์์ด (์๋ ๋ฐ์ด๋ธ) ๋ฆฌํฉํ ๋งํ๋๋ฐ, ์์ด์ ํธํํ ๋ฆฌํฉํ ๋ง ํ๊ธฐ ์ ์ปค๋ฐ ID ์๋ ค์ฃผ๊ณ ๋ฆฌํฉํ ๋ง์ด๋ฏ๋ก ๊ฒ์ฆํด๋ฌ๋ผ๊ณ ํ๋ฉด ํธ์งํ ๋ถ๋ถ ์ค์ ๊ฐ nix eval๋ก ์ดค๋ผ๋ฝ ๋น๊ตํด์ฃผ๊ณ , nix-diff๋ ํด์ฃผ๊ณ , dry-buildํด์๋ ํ์ธํด์ฃผ๋๊น ๋ ๋ ํ๋ค
Mac mini์์ Hackers' Pub์ด๋ ๋ด ๊ฐ์ธ Hollo ์๋ฒ ๋๋ฆฐ ์ง ์ด์ 1๋ ์ ๋ ๋์๋ค. ๋ณธ์ ์ ์ฐพ์๋ค๊ณ ์๊ฐํ๋ค. ์ฌ์ฌ Hackers' Pub์ ๋ณ๋ ์๋ฒ๋ก ์ฌ๋ ค์ผ์งโฆ
ํ ์ ๋ฏธ๋์ด ์ ์๋ ๋๋ฌด ์ํ์
LLM์ด ์ด๋ฏธ ์ ํ๋ ๊ฑธ ํด์ด๋ ์คํฌ์ด๋ MCP๋ก ํฌ์ฅํ ํ์๊ฐ ์์๊น? ์๋ฅผ ๋ค์ด git ๊ฐ์ ๊ฑด MCP ์ฐ์ง ์๊ณ ์ํค๋๊ฒ ์ปจํ ์คํธ๋ฅผ ์๋ ์ ์์ ๊ฒ ๊ฐ์๋ฐ ๐ค
์ข์ ์ปค๋ฐ ๋ฉ์์ง๋ ๋ญ๊น ๊ณ ๋ฏผํ๋ค๊ฐ Tim Pope๊ฐ ์ด ๊ธ, A Note About Git Commit Messages์ ์ฝ์ด๋ณด์๋๋ฐ, LLM์ ํ๋ ์ฐ๋ ์ด์ ์ด๊ฒ ํ๋กฌํํ ์ผ๋ก ๋ณด์ธ๋ค ใ ใ
์บ๋๋ค ์๋๋ Array Programming Meetup์ด๋ผ๋ ์ฌ๋ฐ์ด๋ณด์ด๋ ๊ฒ ์๋ค
์ ๊ฐ ํจ ๊ฐ๋ณผ๊ฒ์
์บ๋๋ค ์๋๋ Array Programming Meetup์ด๋ผ๋ ์ฌ๋ฐ์ด๋ณด์ด๋ ๊ฒ ์๋ค
์๋ ๋ ๊ฐ๋ณ๊ฒ hledger ์ฐ๋ ค๊ณ ํ๋๋ฐ ํ๋ฃจ ์ฃ-์ผ swift ๋น๋ํ๊ณ ์๋ค ๐ก๐ก๐ก
์์ง๋ ๋น๋์ค... ์บ์์ ์๋.. ๐ค
์๋ ๋ ๊ฐ๋ณ๊ฒ hledger ์ฐ๋ ค๊ณ ํ๋๋ฐ ํ๋ฃจ ์ฃ-์ผ swift ๋น๋ํ๊ณ ์๋ค ๐ก๐ก๐ก
LLM์ผ๋ก ๋ฌธ์ ๋ฝ์๋ผ ๋ "์ํคํผ๋์ ํ๋ ์ ์ (Highly Active User) ๊ฒธ ํ ํฌ๋์ปฌ ๋ผ์ดํฐ"๋ผ๊ณ ํ๋ฅด์๋ ์ฃผ์ ํ๋๊น ๋ฌธ์ ์ง์ด ๋ค๋ฅด๋ค
์์ดํจ๋๋ฅผ ์ธ๋ก๋ก ์ธ์์ ์ธ์ฅ๋ชจ๋ํฐ๋ก ์ฐ๊ณ ์ถ์ด์ ์ด์ฌํ ๋ป์ง์
์๋ ๋ง๋ถํฐ ๋ด๊ฐ ์ฝ๋ฉ์ ์ข์ํ๋? ์ ํ๋? ๊ณ์ ํ ์ ์๋? ์์ฌ์ด ๋ค์ด์ ๊ดํ ๋ค๋ฅธ ์ผ์ ์ด์ฌํ ํด๋ดค๋๋ฐ... ๋๊ณ ๋์ ์ฝ๋ฉ์ ๋๋ฌด ์ข์ํ๋ค๋ ๊ฑธ ๋ค๋ฆ๊ฒ ๊นจ๋ฌ์๋ค.
๋๋ ๋ชฐ๋๋๋ฐ ์ค์ค๋ก ๋ง ์์ผ๋ก ์๋ฆ์๋ฆ ์์์๋๋ณด๋ค. ์ ๊ทธ๋ฐ์ง ๊ณ ๋ฏผํด๋ณด์๋๋ฐ, ํด์ฌํ๋ฉด์ ํ๋ ๋ง์ง๋ง ์ ๋ฌด๊ฐ ๋ด๊ฐ ํด์๋ ์ผ ์ค ํ๋๋ฅผ ์๋ํ ํ๋ ๊ฒ์ด์๋ค. AI์ ๋ฐ์ ๊ณผ ๋๋ถ์ด ์ง์ ์ ํ์๊ฐ์ ๋๊ผ๋ ๊ฒ ๊ฐ๋ค. ์ค์ค๋ก๋ฅผ ๋์ฒดํ๋ ์ง์ ์ด ์ง์ ๊ฐ๋ฅ์ฑ์ด ์๋๊ฐ? ๊ฐ์ ๊ณ ๋ฏผ์ ํ๋ ๊ฒ ๊ฐ๋ค.
๊ทผ๋ฐ ๋์ฌ๋ ์ง์ด๋ณด๊ณ ์ปคํผ๋ ๋์ฌ๋ณด๊ณ ๋ค๋ฅธ ์ผ๋ ์ด์ฌํ ํด๋ดค๋๋ฐ, ํด๊ทผํ๋ฉด ์ด๋์๊ฐ ์ด๋งฅ์ค ์ผ๊ณ Nix ์ง๋ฃ์ด์ ๋น๋ ๋๋ฆฌ๋๋ผ. ์๊ฐํด๋ณด๋ฉด ์ฝ๋ฉ์ ์ํด์ ์์ํ ๊ฒ๋ ์๋์๊ณ , ์ ๋งํด์ ์์ํ ๊ฒ๋ ์๋์๋ค. ๊ทธ๋ฅ ์ฌ๋ฐ์ผ๋๊น, "3D ์ ์ข "์ด๋ผ๋ ๋ง์ ๋ค์ ๋๋ถํฐ ํด์๋ค. ๊ทผ๋ฐ ์ด์ ์์ ์ ๋ชปํ๋, ๋ ์ข์ํ๋ ๊ฐ์ ๊ณ ๋ฏผ์ผ๋ก ๊ทธ๋ง๋๊ธฐ์๋ ๋๋ฌด ์ฝ๋ฉ์ ๊น์ด ๋น ์ ธ๋ฒ๋ ธ๋ค๋ ๊ฑธ, ์๋ ์ด ๋๋๋ฉฐ ๊นจ๋ฌ์ ๊ฒ ๊ฐ๋ค.
๋ด๊ฐ ์ข์ํ๋ ๊ฑฐ ๋ด๊ฐ ํ๊ฒ ๋ค๋๋ฐ ๋ด ๋ถ์กฑํจ์ด ๋ฌด์จ ์๊ด์ธ๊ฐ
์๋ ๋ง๋ถํฐ ๋ด๊ฐ ์ฝ๋ฉ์ ์ข์ํ๋? ์ ํ๋? ๊ณ์ ํ ์ ์๋? ์์ฌ์ด ๋ค์ด์ ๊ดํ ๋ค๋ฅธ ์ผ์ ์ด์ฌํ ํด๋ดค๋๋ฐ... ๋๊ณ ๋์ ์ฝ๋ฉ์ ๋๋ฌด ์ข์ํ๋ค๋ ๊ฑธ ๋ค๋ฆ๊ฒ ๊นจ๋ฌ์๋ค.
๋๋ ๋ชฐ๋๋๋ฐ ์ค์ค๋ก ๋ง ์์ผ๋ก ์๋ฆ์๋ฆ ์์์๋๋ณด๋ค. ์ ๊ทธ๋ฐ์ง ๊ณ ๋ฏผํด๋ณด์๋๋ฐ, ํด์ฌํ๋ฉด์ ํ๋ ๋ง์ง๋ง ์ ๋ฌด๊ฐ ๋ด๊ฐ ํด์๋ ์ผ ์ค ํ๋๋ฅผ ์๋ํ ํ๋ ๊ฒ์ด์๋ค. AI์ ๋ฐ์ ๊ณผ ๋๋ถ์ด ์ง์ ์ ํ์๊ฐ์ ๋๊ผ๋ ๊ฒ ๊ฐ๋ค. ์ค์ค๋ก๋ฅผ ๋์ฒดํ๋ ์ง์ ์ด ์ง์ ๊ฐ๋ฅ์ฑ์ด ์๋๊ฐ? ๊ฐ์ ๊ณ ๋ฏผ์ ํ๋ ๊ฒ ๊ฐ๋ค.
๊ทผ๋ฐ ๋์ฌ๋ ์ง์ด๋ณด๊ณ ์ปคํผ๋ ๋์ฌ๋ณด๊ณ ๋ค๋ฅธ ์ผ๋ ์ด์ฌํ ํด๋ดค๋๋ฐ, ํด๊ทผํ๋ฉด ์ด๋์๊ฐ ์ด๋งฅ์ค ์ผ๊ณ Nix ์ง๋ฃ์ด์ ๋น๋ ๋๋ฆฌ๋๋ผ. ์๊ฐํด๋ณด๋ฉด ์ฝ๋ฉ์ ์ํด์ ์์ํ ๊ฒ๋ ์๋์๊ณ , ์ ๋งํด์ ์์ํ ๊ฒ๋ ์๋์๋ค. ๊ทธ๋ฅ ์ฌ๋ฐ์ผ๋๊น, "3D ์ ์ข "์ด๋ผ๋ ๋ง์ ๋ค์ ๋๋ถํฐ ํด์๋ค. ๊ทผ๋ฐ ์ด์ ์์ ์ ๋ชปํ๋, ๋ ์ข์ํ๋ ๊ฐ์ ๊ณ ๋ฏผ์ผ๋ก ๊ทธ๋ง๋๊ธฐ์๋ ๋๋ฌด ์ฝ๋ฉ์ ๊น์ด ๋น ์ ธ๋ฒ๋ ธ๋ค๋ ๊ฑธ, ์๋ ์ด ๋๋๋ฉฐ ๊นจ๋ฌ์ ๊ฒ ๊ฐ๋ค.
์ค๋๋ Emacs๊ฐ ๋ป์๋ค.
๋ด๋ถ Emacs API๊ฐ GIL์ ๋๋ ค์ฃผ์ง ์๋ ํ์ผ๊น? ๐ฅ
์ค๋๋ Emacs ์ฐ๋ค๊ฐ ์๊ฒ ๋์๋๋ฐ
๋ฆฌ์ฒ๋ ์คํจ๋ง๋ Emacs ํค๋ฐ์ธ๋ฉ ๋ชป์ฐธ๊ณ 1987๋
์ vi-switch-mode ๋ง๋ค์ด์ GNU Emacs์ ๋ฃ์๋ค. (b20cd8dbd051aa561257df965c0d3eaef5df069e)
์ ๊ตฌํ์ ๋ค๋ฅธ ๋ถ(Neal Ziring)์ด ํ์ จ๊ตฌ๋ ใ ใ
์ค๋๋ Emacs ์ฐ๋ค๊ฐ ์๊ฒ ๋์๋๋ฐ
๋ฆฌ์ฒ๋ ์คํจ๋ง๋ Emacs ํค๋ฐ์ธ๋ฉ ๋ชป์ฐธ๊ณ 1987๋
์ vi-switch-mode ๋ง๋ค์ด์ GNU Emacs์ ๋ฃ์๋ค. (b20cd8dbd051aa561257df965c0d3eaef5df069e)
์์ ์ฝ๋ฉ์ ์ ๋ชปํ๊ตฌ ๊ฐ๊ฐํ ๋ฆฌํธ์ฝ๋๋ ํ๊ณ ์๋๋ฐ,
- ๋ฆฌํธ์ฝ๋๋ฅผ ์น์์ ํ๋ค๊ฐ ๋ถํธํด์
- ๋ฆฌํธ์ฝ๋๋ฅผ ๋ก์ปฌ์์ ํธํ๊ฒ ํ๊ณ ์ถ์ด์ emacs ํ๋ฌ๊ทธ์ธ์ ์ง๋๋ฐ
- emacs ํ๋ฌ๊ทธ์ธ์ ํธํ๊ฒ ์ง๊ณ ์ถ์ด์ emacs ํ ์คํธ ํ๋ฌ๊ทธ์ธ์ ์ง๋ ์ค...
emacs ๋์์ฑ์ ๋จธ ์ด์ผ ํด์ผํ๋์ง ๋ชฐ๊ฒ ๋ค... ์ฝ๋ฐฑ ๋ฒ๋ฒ ์ด๋ ์๋ธ ํ๋ก์ธ์ฑ ๋ง๊ณ ๋ฐฉ๋ฒ์ด ์๋
์์ ์ฝ๋ฉ์ ์ ๋ชปํ๊ตฌ ๊ฐ๊ฐํ ๋ฆฌํธ์ฝ๋๋ ํ๊ณ ์๋๋ฐ,
- ๋ฆฌํธ์ฝ๋๋ฅผ ์น์์ ํ๋ค๊ฐ ๋ถํธํด์
- ๋ฆฌํธ์ฝ๋๋ฅผ ๋ก์ปฌ์์ ํธํ๊ฒ ํ๊ณ ์ถ์ด์ emacs ํ๋ฌ๊ทธ์ธ์ ์ง๋๋ฐ
- emacs ํ๋ฌ๊ทธ์ธ์ ํธํ๊ฒ ์ง๊ณ ์ถ์ด์ emacs ํ ์คํธ ํ๋ฌ๊ทธ์ธ์ ์ง๋ ์ค...
Fedify 1.9.0: Security enhancements, improved DX, and expanded framework support
We are excited to announce Fedify 1.9.0, a mega release that brings major security enhancements, improved developer experience, and expanded framework support. Released on October 14, 2025, this version represents months of collaborative effort, particularly from the participants of Korea's OSSCA (Open Source Contribution Academy).
This release would not have been possible without the dedicated contributions from OSSCA participants: Jiwon Kwon (
@z9mb1Jiwon), Hyeonseo Kim (
@gaebalgom๊ฐ๋ฐ๊ณฐ), Chanhaeng Lee (@2chanhaeng์ด๋ฌด), Hyunchae Kim (
@r4bb1tํก๊ธฐ), and An Subin (
@nyeongAn Nyeong (ๅฎๅฏง)). Their collective efforts have significantly enhanced Fedify's capabilities and made it more robust for the fediverse community.
Origin-based security model
Fedify 1.9.0 implements FEP-fe34, an origin-based security model that protects against content spoofing attacks and ensures secure federation practices. This critical security enhancement enforces same-origin policy for ActivityPub objects and their properties, preventing malicious actors from impersonating content from other servers.
The security model introduces a crossOrigin option in Activity Vocabulary property accessors (get*() methods) with three security levels:
// Default behavior: logs warning and returns null for cross-origin content
const actor = await activity.getActor({ crossOrigin: "ignore" });
// Strict mode: throws error for cross-origin content
const object = await activity.getObject({ crossOrigin: "throw" });
// Trust mode: bypasses security checks (use with caution)
const attachment = await note.getAttachment({ crossOrigin: "trust" });Embedded objects are automatically validated against their parent object's origin. When an embedded object has a different origin, Fedify performs automatic remote fetches to ensure content integrity. This transparent security layer protects your application without requiring significant code changes.
For more details about the security model and its implications, see the origin-based security model documentation.
Enhanced activity idempotency
Activity idempotency handling has been significantly improved with the new withIdempotency() method. This addresses a critical issue where activities with the same ID sent to different inboxes were incorrectly deduplicated globally instead of per-inbox.
federation
.setInboxListeners("/inbox/{identifier}", "/inbox")
.withIdempotency("per-inbox") // New idempotency strategy
.on(Follow, async (ctx, follow) => {
// Each inbox processes activities independently
});The available strategies are:
"per-origin": Current default for backward compatibility"per-inbox": Recommended strategy (will become default in Fedify 2.0)- Custom strategy function for advanced use cases
This enhancement ensures that shared inbox implementations work correctly while preventing duplicate processing within individual inboxes. For more information, see the activity idempotency documentation.
Relative URL resolution
Fedify now intelligently handles ActivityPub objects containing relative URLs, automatically resolving them by inferring the base URL from the object's @id or document URL. This improvement significantly enhances interoperability with ActivityPub servers that use relative URLs in properties like icon.url and image.url.
// Previously required manual baseUrl specification
const actor = await Actor.fromJsonLd(jsonLd, { baseUrl: new URL("https://example.com") });
// Now automatically infers base URL from object's @id
const actor = await Actor.fromJsonLd(jsonLd);This change, contributed by Jiwon Kwon (
@z9mb1Jiwon), eliminates a common source of federation failures when encountering relative URLs from other servers.
Full RFC 6570 URI template support
TypeScript support now covers all RFC 6570 URI Template expression types in dispatcher path parameters. While the runtime already supported these expressions, TypeScript types previously only recognized simple string expansion.
// Now fully supported in TypeScript
federation.setActorDispatcher("/{+identifier}", async (ctx, identifier) => {
// Reserved string expansion โ recommended for URI identifiers
});The complete set of supported expression types includes:
{identifier}: Simple string expansion{+identifier}: Reserved string expansion (recommended for URIs){#identifier}: Fragment expansion{.identifier}: Label expansion{/identifier}: Path segments{;identifier}: Path-style parameters{?identifier}: Query component{&identifier}: Query continuation
This was contributed by Jiwon Kwon (
@z9mb1Jiwon). For comprehensive information about URI templates, see the URI template documentation.
WebFinger customization
Fedify now supports customizing WebFinger responses through the new setWebFingerLinksDispatcher() method, addressing a long-standing community request:
federation.setWebFingerLinksDispatcher(async (ctx, actor) => {
return [
{
rel: "http://webfinger.net/rel/profile-page",
type: "text/html",
href: actor.url?.href,
},
{
rel: "http://ostatus.org/schema/1.0/subscribe",
template: "https://example.com/follow?uri={uri}",
},
];
});This feature was contributed by Hyeonseo Kim (
@gaebalgom๊ฐ๋ฐ๊ณฐ), and enables applications to add custom links to WebFinger responses, improving compatibility with various fediverse implementations. Learn more in the WebFinger customization documentation.
New integration packages
Fastify support
Fedify now officially supports Fastify through the new @fedify/fastify package:
import Fastify from "fastify";
import { fedifyPlugin } from "@fedify/fastify";
const fastify = Fastify({ logger: true });
await fastify.register(fedifyPlugin, {
federation,
contextDataFactory: () => ({ /* your context data */ }),
});This integration was contributed by An Subin (
@nyeongAn Nyeong (ๅฎๅฏง)). It supports both ESM and CommonJS, making it accessible to all Node.js projects. See the Fastify integration guide for details.
Koa support
Koa applications can now integrate Fedify through the @fedify/koa package:
import Koa from "koa";
import { createMiddleware } from "@fedify/koa";
const app = new Koa();
app.use(createMiddleware(federation, (ctx) => ({
user: ctx.state.user,
// Pass Koa context data to Fedify
})));The integration supports both Koa v2.x and v3.x. Learn more in the Koa integration documentation.
Next.js integration
The new @fedify/next package brings first-class Next.js support to Fedify:
// app/api/ap/[...path]/route.ts
import { federation } from "@/federation";
import { fedifyHandler } from "@fedify/next";
export const { GET, POST } = fedifyHandler(federation);This integration was contributed by Chanhaeng Lee (@2chanhaeng์ด๋ฌด). It works seamlessly with Next.js App Router. Check out the Next.js integration guide for complete setup instructions.
CommonJS support
All npm packages now support both ESM and CommonJS module formats, resolving compatibility issues with various Node.js applications and eliminating the need for the experimental --experimental-require-module flag. This particularly benefits NestJS users and other CommonJS-based applications.
FEP-5711 collection inverse properties
Fedify now implements FEP-5711, adding inverse properties to collections that provide essential context about collection ownership:
const collection = new Collection({
likesOf: note, // This collection contains likes of this note
followersOf: actor, // This collection contains followers of this actor
// โฆ and more inverse properties
});This feature was contributed by Jiwon Kwon (
@z9mb1Jiwon). The complete set of inverse properties includes likesOf, sharesOf, repliesOf, inboxOf, outboxOf, followersOf, followingOf, and likedOf. These properties improve data consistency and enable better interoperability across the fediverse.
CLI enhancements
NodeInfo visualization
The new fedify nodeinfo command provides a visual way to explore NodeInfo data from fediverse instances. This replaces the deprecated fedify node command and offers improved parsing of non-semantic version strings. Try it with:
fedify nodeinfo https://comam.es/snac/This was contributed by Hyeonseo Kim (
@gaebalgom๊ฐ๋ฐ๊ณฐ). The command now correctly handles various version formats and provides a cleaner visualization of instance capabilities. See the CLI documentation for more options.
Enhanced lookup with timeout
The fedify lookup command now supports a timeout option to prevent hanging on slow or unresponsive servers:
fedify lookup --timeout 10 https://example.com/users/aliceThis enhancement, contributed by Hyunchae Kim (@r4bb1tํก๊ธฐ), ensures reliable operation even when dealing with problematic remote servers.
Package modularization
Several modules have been separated into dedicated packages to improve modularity and reduce bundle sizes. While the old import paths remain for backward compatibility, we recommend migrating to the new packages:
@fedify/cfworkersreplaces@fedify/fedify/x/cfworkers@fedify/denokvreplaces@fedify/fedify/x/denokv@fedify/honoreplaces@fedify/fedify/x/hono@fedify/sveltekitreplaces@fedify/fedify/x/sveltekit
This modularization was contributed by Chanhaeng Lee (@2chanhaeng์ด๋ฌด). The old import paths are deprecated and will be removed in version 2.0.0.
Acknowledgments
This release represents an extraordinary collaborative effort, particularly from the OSSCA participants who contributed numerous features and improvements. Their dedication and hard work have made Fedify 1.9.0 the most significant release to date.
Special thanks to all contributors who helped shape this release, including those who provided feedback, reported issues, and tested pre-release versions. The fediverse community's support continues to drive Fedify's evolution.
For the complete list of changes, bug fixes, and improvements, please refer to the CHANGES.md file in the repository.
@lionhairdino
@bglbgl gwyng ๋์ด ๊ธฐ๋ณธ ์ค์ ์ด ์กฐ๊ธ์ฉ ๋ค๋ฅธ ๊ฒ ๊ฐ์์. ์๊น ์ ์ํฉ์์๋, ๋ด๋ถ ๊ตฌํ์ฒด๋ ์์คํ
git๊ณผ ๋ค๋ฅด๊ฒ master๋ฅผ ๋จผ์ ์ฐพ์์ ๋น๋์ ์คํจํ์ด์ ๐ซ
@bglbgl gwyng
@lionhairdino nix/src/libfetchers/git.cc ๋ณด๊ณ ์๋๋ฐ ์์คํ
์ git์ด ์์ผ๋ฉด HEAD ์ฐพ์์ ์ฐ๋๋ฐ, git๋ ์๊ณ , ์ฐพ์ผ๋ ค๋ ์ ์ฅ์์ ref๋ ๋ช
์๋์ด์์ง ์์ผ๋ฉด master๋ฅผ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ์ฐ๋ค์
๋ช
์์ ์ผ๋ก git์ ๋ถ๋ฅด์ง ์๋ ์ด์, fetchGit๋ฑ์ ์์คํ
์ ์๋ git์ ์ฐ์ง ์๊ณ , nix ๋ด๋ถ ๊ตฌํ์ฒด๋ฅผ ์ฐ๋ ๊ฒ ์๋๊ฐ์?
@bglbgl gwyng
@nyeongAn Nyeong (ๅฎๅฏง)
@lionhairdino
@bglbgl gwyng ๋์ด ๊ธฐ๋ณธ ์ค์ ์ด ์กฐ๊ธ์ฉ ๋ค๋ฅธ ๊ฒ ๊ฐ์์. ์๊น ์ ์ํฉ์์๋, ๋ด๋ถ ๊ตฌํ์ฒด๋ ์์คํ
git๊ณผ ๋ค๋ฅด๊ฒ master๋ฅผ ๋จผ์ ์ฐพ์์ ๋น๋์ ์คํจํ์ด์ ๐ซ
Nix๋ ์์คํ ์ git์ด ์์ ๋์ ์์ ๋์ ๋์์ด ๋ค๋ฅด๋ค. ์์ง... nix ๋ด๋ถ์์ ์ฐ๋ git ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ git ํจํค์ง๋ ๋ญ๊ฐ ์ฐจ์ด๊ฐ ์๋.
Excited to share some great news from the #creative community! Oeee Cafe, a fantastic oekaki #drawing platform, just added #ActivityPub support today. This means all the amazing artwork being created there can now be shared and discovered across the #fediverse, which is such a wonderful step toward connecting creative communities.
Big shoutout to my friend
@jihyeokJihyeok Seo for building this platform and bringing it to the fediverse. It's always inspiring to see developers creating spaces for artists and then opening them up to the broader federated community. If you're into digital art or just appreciate seeing creative work, definitely worth checking out what people are sharing from Oeee Cafe on your timeline now. You can find me there at @hongminheeๆดชๅ
if you want to connect!
์ค๋์ cursor-agent๋ฅผ ์จ๋ณด๊ณ ์ถ์ด์ ๊น์๋ณด๋ ค๊ณ ํ๋...๋ฐ... nix๋ผ์ ํจํค์ง์ ํ๊ณ makeWrapper ์ฌ์ฉ๋ฒ๋ ๋ฐฐ์ ๋ค
๋ญ ์์ ์ ์ธ๋ ค๊ณ ํจํค์งํด์ ๊น์๋๋ฐ ์ ์ ํจํค์งํ๋ค๊ฐ ๋ญ ํ ๋ ค๊ณ ํ๋์ง๋ ๊น๋จน์๋ค
์ค๋์ cursor-agent๋ฅผ ์จ๋ณด๊ณ ์ถ์ด์ ๊น์๋ณด๋ ค๊ณ ํ๋...๋ฐ... nix๋ผ์ ํจํค์ง์ ํ๊ณ makeWrapper ์ฌ์ฉ๋ฒ๋ ๋ฐฐ์ ๋ค
์ค์ด์นดํ์ ActivityPub ์ง์์ด ๋ค์ด๊ฐ์ต๋๋ค. ์ด์ ์ข์ํ๋ ์๊ฐ๋ ์ปค๋ฎค๋ํฐ์ ์ ๊ทธ๋ฆผ์ ์ฐํฉ์ฐ์ฃผ์์๋ ๋ฐ์ ๋ณด์ธ์!
์๊ฐ ํ๋กํ์ด๋ ์ปค๋ฎค๋ํฐ ๋ฉ์ธ ํ์ด์ง์์ ActivityPub ํธ๋ค์ ํ์ธํ ์ ์์ต๋๋ค.
์ธ์ฉ๋ ๊ทธ๋ฆผ์ ActivityPub ์ฐ๋์ ๋์์ฃผ์
@hongminheeๆดช ๆฐๆ (Hong Minhee) ๋์ด ์ค์ด์นดํ ์ด์ฐฝ๊ธฐ์ ๊ทธ๋ ค ์ฃผ์ ๊ณ ์์ด ๊ทธ๋ฆผ์
๋๋ค. ๊ฐ์ฌํฉ๋๋ค!
Robert C. Martin์ด ํธ์ํฐ์ ์งง๊ฒ ์ฌ๋ฆฌ๋ ์์์ด ์์ด ๊ณต๋ถ ํ๊ธฐ ์ข์ ๊ฒ ๊ฐ์์ ์ข ์ข ๋ฃ๊ณ ๋ชจ๋ฅด๋ ํํ ์ ๋ฆฌํ๊ณ ์๋๋ฐ... ๊ธฐ์ ์ฉ์ด๊ฐ ์๋๋ผ ๋ฏธ๊ตญ์ ํค๋ฐฐ ํํ๋ง ๋๋ ๊ฒ ๊ฐ๊ธฐ๋ ํ๊ณ ...
์ง์ง ๋ฏธ์น๊ฒ ๋ค ์ ๊ฐ์ WebDAV ์๋ฒ์ ์์ฒญ๋ณด๋ด๋๋ฐ iOS๋ macOS๋ ์น๋ธ๋ผ์ฐ์ ๋ ๊ฒฐ๊ณผ๊ฐ ๋ค๋ฅด์ง
ํ ์ค๋์ ์์ ํ๋๋ฐ LLM์ด ์๊ธฐ ๋ง์ ์ ๋ ๋ค๊ณ ํ์๋ฒ tailscaled๋ฅผ ๊บผ๋ฒ๋ ธ๋ค... ์ง์ ๊ฐ์ผ์ง...
์์ด ์์ด์ ํธ๊ฐ ssh๋ก ์ด๋ฌ๋ ๊ฑด ์ข ๋ฌด์์ด๋ฐ...
์์ด ๊น์ง์ด์ผ ์ ๊ฐ์๊ธฐ ๋น๋ฐ๋ฒํธ์ ์ ๊ทผํ์ธ์
... ์ง๋๋ฒ์ ์ด์ผ๊ธฐํ์๋๋ฐ warp ํฐ๋ฏธ๋๋ก ๋ญ ํ๋ค๊ฐ ํ๋ฆฌ๋ฉด ๊ฐ๋ ๊ธฐ๊ณํํ ์ํฉ์ ๋ฌผ์ด๋ณด๋๋ฐ ์๊ฐ ์ํฉ ๋ถ์ํ๋ค๊ณ ์ปค๋งจ๋ ๋ง ๋ฃ๋๊ฑธ ๋ณด๋ ์ค์นํ๋๋ผ๊ณ ์. ๊ทธ๋ฆฌ๊ณ ์ โ์ด ๋ช ๋ น์ผ๋ก ํด๊ฒฐํ ์์์ด ํ ๋? (y/n)" ์ด๋ฌ๋๋ฐ ....... ์ฝ๊ฐ ์ค์นด์ด๋ท ์๋์ํค๋ ๋๋ .....
https://hackers.pub/@nyeong/01989d45-41f1-7bfa-8f0a-f46fbe8fbaba
์์ด ์์ด์ ํธ๊ฐ ssh๋ก ์ด๋ฌ๋ ๊ฑด ์ข ๋ฌด์์ด๋ฐ...
We're thrilled to announce Fedify 1.8.1, a mega release made possible through the incredible efforts of contributors from South Korea's #OSSCA (Open Source Contribution Academy). This release marks a significant milestone in #Fedify's development, bringing major architectural changes, new packages, and numerous enhancements across the board.
Note: Version 1.8.0 was skipped due to a versioning error.
๐ Major Milestone: Monorepo Architecture
Fedify has been restructured as a #monorepo, consolidating all packages into a single repository with unified versioning. This change streamlines development and ensures all packages are released together with consistent version numbers.
Consolidated Packages
All existing Fedify packages now live under one roof:
- @fedify/fedify โ Main library
- @fedify/cli โ CLI toolchain
- @fedify/amqp โ AMQP/RabbitMQ driver
- @fedify/express โ Express integration
- @fedify/h3 โ h3 framework integration
- @fedify/postgres โ PostgreSQL drivers
- @fedify/redis โ Redis drivers
๐ New Packages
This release introduces four new packages to the Fedify ecosystem:
- @fedify/elysia โ Elysia integration for Bun-powered applications
- @fedify/nestjs โ NestJS integration for enterprise Node.js apps
- @fedify/sqlite โ SQLite driver compatible with Bun, Deno, and Node.js
- @fedify/testing โ Testing utilities with mock
FederationandContextclasses
@fedify/fedify
Custom Collection Dispatchers
A powerful new feature that allows you to create custom collections beyond the standard ActivityPub collections. This enables implementation of domain-specific collections while maintaining federation compatibility.
Contributors: ChanHaeng Lee [#310, #332]
- Added comprehensive types and interfaces for custom collection handling
- New methods on
Federatableinterface:setCollectionDispatcher()andsetOrderedCollectionDispatcher() - Added
getCollectionUri()method to theContextinterface - Full support for paginated custom collections
Compare-and-Swap (CAS) Support for KV Stores
Keyโvalue stores now optionally support CAS operations for atomic updates, enabling optimistic locking and preventing lost updates in concurrent environments.
- Added optional
KvStore.cas()method - Implemented in
MemoryKvStoreandDenoKvStore - Useful for implementing distributed locks and counters
Fediverse Handle Utilities
New utility functions make working with #fediverse handles more convenient.
Contributors: ChanHaeng Lee [#278]
parseFediverseHandle()โ Parse handles into componentsisFediverseHandle()โ Validate handle formattoAcctUrl()โ Convert handles to URLsFediverseHandleinterface for type safety
Enhanced HTTP Request APIs
Contributors: Lee ByeongJun [#248, #281], Hyunchae Kim [#51, #315]
- Added
LookupWebFingerOptions.maxRedirectionoption for controlling redirect behavior - APIs now support
AbortSignalfor request cancellation - New
DocumentLoaderOptionsinterface - Added
signaloptions toLookupObjectOptions,LookupWebFingerOptions, andDoubleKnockOptions
@fedify/cli
New Commands and Enhancements
The CLI has received significant improvements thanks to our OSSCA contributors:
fedify webfinger Command
Contributors: ChanHaeng Lee [#260, #278], KeunHyeong Park [#311, #328]
Look up WebFinger information for any fediverse resource:
- Supports handles (
@user@server) and URLs --user-agentoption for custom User-Agent headers--allow-private-addressfor local testing--max-redirectionto control redirect following
fedify nodeinfo Command
Contributors: Hyeonseo Kim [#267, #331, #168, #282, #304]
Replaces the deprecated fedify node command with improved terminal rendering.
Enhanced fedify lookup Command
Contributors: Jiwon Kwon [#169, #348, #261, #321]
- Terminal-specific image display for Kitty, WezTerm, Konsole, Warp, Wayst, st, and iTerm
-o/--outputoption to save results to files
Improved fedify inbox Command
Contributors: Hasang Cho [#262, #285], Jang Hanarae [#191, #342]
--actor-nameand--actor-summaryoptions for customizing temporary actors- Now displays object types contained in activities
fedify init --dry-run
Contributors: Lee ByeongJun [#263, #298]
Preview project initialization without creating files.
Better Terminal Support
Contributors: Cho Hasang [#257, #341]
Correctly handles color output based on TTY detection and NO_COLOR environment variable.
@fedify/elysia
Contributors: Hyeonseo Kim [#286, #339]
New Elysia integration brings Fedify to Bun-powered applications with a simple plugin interface:
import { Elysia } from "elysia";
import { fedify } from "@fedify/elysia";
const app = new Elysia()
.use(fedify(federation, { /* options */ }))
.listen(3000);@fedify/nestjs
Contributors: Jaeyeol Lee [#269, #309]
Enterprise-ready NestJS integration with dependency injection support:
import { FedifyModule } from "@fedify/nestjs";
@Module({
imports: [
FedifyModule.forRoot({
kv: new MemoryKvStore(),
queue: new InProcessMessageQueue(),
origin: "https://example.com",
}),
],
})
export class AppModule {}@fedify/sqlite
Contributors: An Subin [#274, #318]
SqliteKvStore implementation compatible across all major JavaScript runtimes:
import { SqliteKvStore } from "@fedify/sqlite";
const kv = new SqliteKvStore("./fedify.db");@fedify/testing
Contributors: Lee ByeongJun [#197, #283]
Comprehensive testing utilities with mocking support for Fedify applications:
import { MockFederation, MockContext } from "@fedify/testing";
const mockFederation = new MockFederation();
const mockContext = new MockContext();
// Track sent activities with full metadata
// Support custom path registration
// Multiple activity type listeners๐ Acknowledgments
This release represents an extraordinary community effort, particularly from the participants of South Korea's OSSCA (Open Source Contribution Academy) (Note: page in Korean). We extend our heartfelt thanks to all contributors:
Core Contributors
- ChanHaeng Lee (
@2chanhaeng์ด๋ฌด) โ Custom collections, fediverse handles, WebFinger command
- Lee ByeongJun (
@joonnotnotJoon) โ WebFinger redirections, dry-run, testing utilities
- Hyunchae Kim (
@r4bb1t) โ AbortSignal support
- Hyeonseo Kim (
@gaebalgom๊ฐ๋ฐ๊ณฐ) โ Elysia integration, nodeinfo command - Jaeyeol Lee (
@kodingwarriorJaeyeol Lee) โ NestJS integration - An Subin (
@nyeongAn Nyeong (ๅฎๅฏง)) โ SQLite driver - Jiwon Kwon (
@z9mb1Jiwon) โ Terminal image display, output options - Hasang Cho (
@crohasangํฌ๋กธ์) โ Color output handling, actor customization - Jang Hanarae (
@meneleHanal Ae) โ Activity object type display - KeunHyeong Park (
@w8385๋ฐ๊ทผํ) โ WebFinger redirect options
Test Infrastructure Contributors
- Oh Daeun (
@ooheundaoed) โ Fixed PostgreSQL test race conditions [#346, #350] - Song Hanseo (
@songbirds) โ Test stability improvements for Redis and code generation [#344, #347] - Kim Jonghyeon (
@woaol๋ฒจ) โ CLI version management and documentation fixes [#306, #329, #330, #343]
Your contributions have made Fedify stronger and more versatile than ever. The OSSCA program's support has been instrumental in achieving this milestone release.
Migration Guide
Updating from Previous Versions
If you're using separate Fedify packages, update all packages to version 1.8.1:
{
"dependencies": {
"@fedify/fedify": "^1.8.1",
"@fedify/cli": "^1.8.1",
"@fedify/express": "^1.8.1"
}
}All packages now share the same version number, simplifying dependency management.
Breaking Changes
There are no breaking changes in this release. All existing code should continue to work without modifications.
What's Next
With the monorepo structure in place and new integrations available, we're excited to continue improving Fedify's developer experience and expanding its capabilities. Stay tuned for more updates, and thank you for being part of the Fedify community!
For detailed technical information about all changes, please refer to the full changelog.
Fedify is an open-source project that helps developers build federated server applications powered by ActivityPub. Join us on GitHub or Discord to contribute or get help!
๋๊ฐ ๋ด Cursor์ Prompt Injection Attack์ ํ๋...? ๐ค
Hackers' Pub ์คํฐ์ปค ์๋ค!
@hongminheeๆดช ๆฐๆ (Hong Minhee) ํ๋ฅ์ด ์ ์ฐ๊ฒ ์ต๋๋ค ใ
ใ
ใ
An Nyeong (ๅฎๅฏง) replied to the below article:
OSTEP ๋ ํ ์ผ์ง - H.0.
Jaeyeol Lee @kodingwarrior@hackers.pub
6๋ ์ฐจ ๊ฐ๋ฐ์๊ฐ ๊ธฐ๋ณธ๊ธฐ๋ฅผ ๋ค์ง๊ธฐ ์ํด OS ๊ธฐ์ด๋ฅผ ๋ค์ ๊ณต๋ถํ๋ ์ฌ์ ์ ๋ด์ ๊ธ์ ๋๋ค. ์ ์๋ ์ ์ ๊ฐ๋ฐ์ ์์ค์ ๊ธฐ๋ณธ๊ธฐ๋ฅผ ๊ฐ์ถ๊ธฐ ์ํด OSTEP ๊ต์ฌ๋ฅผ ์ ํํ๊ณ , xv6 ํ๋ก์ ํธ๋ฅผ ํตํด ์ด์์ฒด์ ๋์ ์๋ฆฌ๋ฅผ ์ฒดํํ๊ณ ์ ํฉ๋๋ค. ์ด ๊ธ์์๋ xv6 ๊ณผ์ ๋ค์ ๋จ๊ณ๋ณ๋ก ๊ณต๋ตํ๋ฉฐ ๊ฒช๋ ์ฐ์ฌ๊ณก์ ๊ณผ ๋ฐ๊ฒฌ, ๊ทธ๋ฆฌ๊ณ ์ด๋ฅผ ํตํด ์ป๋ ์ธ์ฌ์ดํธ๋ฅผ ์์ฌ์ ์ผ๋ก ํ์ด๋ผ ๊ณํ์ ๋ฐํ๋๋ค. ๋จ์ํ ์ง์์ ์ ๋ฆฌํ๋ ๊ฒ์ ๋์ด, ๋ ์์๊ฒ ์ฌ๋ฏธ์๋ ์คํ ๋ฆฌ๋ฅผ ์ ๋ฌํ๊ณ ๊ธฐ์ ๋ฉด์ ์๋ ๋์์ด ๋ ๋งํ ์์ํ ๊ฒฝํ์ ๊ณต์ ํ๊ณ ์ ํ๋ ์ ์์ ์์ง๊ฐ ๋๋ณด์ ๋๋ค. OSSCA 2025 ๋ฉํ ๋ง ๊ฒฝํ์์ ์๊ฐ์ ๋ฐ์ ์์๋ ์ด ์ฌ์ ์, ๊ฐ๋ฐ์๋ก์์ ์ฑ์ฅ๊ณผ ๋๋ถ์ด ํด์ปค์คํ ์ปค๋ฎค๋ํฐ์๋ ๊ธฐ์ฌํ๊ณ ์ ํ๋ ์ ์์ ์ด์ ์ ๋ณด์ฌ์ค๋๋ค.
Read more โ
@kodingwarriorJaeyeol Lee OSTEP ์ข๋ค๋ ๊ธ๋ง ๋ณด๊ณ ์ ๋ ์์ง ์ ์ฝ์ด๋ด์ ๊ธฐ๋๋ฉ๋๋ค ๐

![์ ๋ฏธ๋์ด thinking ์ถ๋ ฅ๋ฌผ ๊ฐ๋ฌด๋ฆฌ:
ํ์ง๋ง `setup` ์๋น์ค๋ `wantedBy =[ "grafana.service" ]`์ธ๋ฐ `grafana.service`๊ฐ ์์ผ๋ฏ๋ก ์คํ๋์ง ์์๋ค.
๊ทธ๋ฆฌ๊ณ ๊ธฐ์กด์ ๋ ์๋ `grafana` ๋ฑ์ ์๋น์ค๋ `logos` ๋นํ์ฑํ๋ก ์ธํด ์ ๊ฑฐ(`stopping`)๋์๋ค.
*๋ฒ์ธ์ ๋์๋ค.* `default.nix`๋ฅผ ์์ ํด์ `logos`๋ฅผ ํ์ฑํํด์ผ ํ๋ค.
์ดํ ์๋ต](https://media.hackers.pub/note-media/a4773d1d-fde3-4682-9614-07d2420f0423.webp)






























