Develop
LunarVim + Warp + Tokyo Night ๐
2 min read
Warp์์ lunarvim, lazyvim ๋๋ neovim์ ์ง์ ํ ๋ง๋ฅผ ์ ์ฉํ์ฌ ์ฌ์ฉํ๋ค ๋ณด๋ฉด ์๋์ ๊ฐ์ด ์ฌ๋ฐฑ์ด ๋ฐ์ํ๊ฒ ๋ฉ๋๋ค.
PQ3 and PQC ๐๏ธ
2 min read
Apple์์ ์กฐ๋ง๊ฐ iMessage์ PQ3๋ผ๋ ์ํธํ ํ๋กํ ์ฝ์ ์ ์ฉํ ์์ ์ด๋ผ๊ณ ๋ฐํํ์ต๋๋ค.
Do you need a config? Now, Pkl
1 min read
์ต๊ทผ์ Apple์ด ๋ด๋ถ์์ ์ฌ์ฉํ๋ Configuration language๋ฅผ ์คํ์์ค๋ก ๊ณต๊ฐํ์ต๋๋ค. ๋ฐ๋ก Pkl(ํผํด)์ธ๋ฐ์, ๊ณผ์ฐ Pkl์ JSON๊ณผ YAML๊ณผ ํจ๊ป Config๊ณ์ ๋ํ ์ฃผ์๊ฐ ๋ ์ ์์๊น์?
Crystal-Lang is โค๏ธ
2 min read
์ ๋ ์ต๊ทผ์ Crystal-lang์ ์ฆ๊ธฐ๊ณ ์์ต๋๋ค. ๊ฐ๋จํ ํ ์ด ํ๋ก์ ํธ๋ถํฐ Noir๋ ์ฌ์ด์ฆ๊ฐ ์ ์ ์ปค์ง๊ณ ์๋ ํ๋ก์ ํธ๊น์ง Crystal์ ํตํด ๊ตฌํํ๊ณ ์์ต๋๋ค. ์ค๋์ ์ ๊ฐ Crystal์ ์ข์ํ๊ฒ๋ ์ด์ ์ ๋ํด ์ด์ผ๊ธฐํ๋ ค๊ณ ํฉ๋๋ค.
DOM Handling with MutationObserver
3 min read
์ต๊ทผ ZAP์ SPA ๊ธฐ๋ฐ์ ์ฑ์ ์ฝ๊ฒ ์๋ณํ๊ธฐ ์ํด Client Side Integration ์ด๋ ๊ธฐ๋ฅ์ ์ถ๊ฐํ์ต๋๋ค. ์ด ์ด ๋ DOM์ ๋ณํ๋ฅผ ์๋ณํ๊ธฐ ์ํ ์ฅ์น๋ก MutationObserver๊ฐ ์ฌ์ฉ๋์๋๋ฐ์. ์ค๋์ MutationObserver๊ฐ ๋ญ์ง ๊ทธ๋ฆฌ๊ณ ๋ณด์ ํ ์คํ ์ ์ด๋ป๊ฒ ์ฌ์ฉํ ์ ์์์ง ์ด์ผ๊ธฐํด๋ด ๋๋ค.
Lazy-loading iframe in Firefox
~1 min read
์ต๊ทผ์ Firefox์ชฝ์์ ํ๋ ์ ๋ฐ์ดํธ๋ฅผ ์๊ณ ํ์ต๋๋ค. ๊ณง img ํ๊ทธ์๋ง ์กด์ฌํ๋ lazy-loading์ด iframe์๋ ์ ์ฉ๋๋๋ฐ์. ์ฑ๋ฅ์ ์ธ ์ฅ์ ์ ๋ถ๋ช ํ ์๊ฒ ์ง๋ง, img์ ๋ฌ๋ฆฌ XSS์ ๋ฆฌ์คํฌ๊ฐ ๋์ iframe์ ๋ก๋ ์์ ์ ํต์ ํ ์ ์๋ ํํ๋ผ ์ฌ๋ฏธ์๋ ์ด์๊ฐ ๋์ฌ์ง ๊ธฐ๋๋๊ธฐ๋, ๋ฐ๋๋ก ๋ ๊ฑฑ์ ๋๊ธฐ๋ ํฉ๋๋ค.
Fiber concurrency
2 min read
๋์์ฑ ํ๋ก๊ทธ๋๋ฐ์ ์ฌ๋ฏธ์์ง๋ง ๊ตฌ์กฐ๋ ์ฌ์ด์ฆ์ ๋ฐ๋ผ ์ด๋ ค์์ ๋๋ฐํฉ๋๋ค. ๊ฐ์ธ์ ์ผ๋ก๋ ๋๊ตฌ ์์ฑ ์ ์์ฃผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ์ ๊ฐ ์งํํ๋ ํ๋ก์ ํธ์์ ์์ฃผ ๋ณผ ์ ์๊ณ , ๋ธ๋ก๊ทธ์๋ Goroutine๊ณผ Sync, Ruby Concurrency ๋ฑ ๋งค๋ ๋์์ฑ ๊ด๋ จํด์ ๊ธ์ ์์ฑํ ๊ฒ ๊ฐ์ต๋๋ค.
WebAuthn๊ณผ Passkey
4 min read
์ฌ๋ฌ๋ถ๋ค์ ํจ์ค์๋ ๋งค๋์ ๋ฅผ ์ฌ์ฉํ์๋์? ์ ๋ ๊ฐ์ธ์ ์ผ๋ก Apple์ ์ํธ ๊ธฐ๋ฅ์ ์ฃผ๋ก ์ฌ์ฉํฉ๋๋ค. ๋ํ icloud+๋ ์ฌ์ฉํ๊ณ ์์ด ์ด๋ฉ์ผ ๊ฐ๋ฆฌ๊ธฐ + ์ํธ ์กฐํฉ์ผ๋ก ๊ฐ๊ธ์ ์๋น์ค๋ณ๋ก ๊ณ์ ๊ณผ ํจ์ค์๋๊ฐ ๊ฒน์น์ง ์๋ ์ํ๋ก ์ ์งํ๊ณ ์์ต๋๋ค. ๊ตฌ๊ธ์ ๊ฒฝ์ฐ Google password manager๋ฅผ ํตํด ๋น์ทํ๊ฒ ์ฌ์ฉํ์๋ ๋ถ๋ค๋ ์์๊ฑฐ๋ผ๊ณ ์๊ฐํฉ๋๋ค. Apple์ด๋ Google์ ์ด๋ฌํ ๊ธฐ๋ฅ๋ค๊ณผ FIDO ๊ด๋ จ ์ธ์ฆ ๋ฐฉ์๋ค์ Passwordless์ ๋์คํ๋ฅผ ์๋น๊ฒผ๊ณ ์ด์ ๋ Password๋ฅผ ์ ๋ ฅํ๋ ๊ฒ์ด ์ ์ ์ด์ํด์ง๋ ์๊ธฐ๊ฐ ์จ ๊ฒ ๊ฐ์ต๋๋ค.
Zest + YAML = โค๏ธ
1 min read
์ต๊ทผ์ Zest ์ชฝ์ Commit (zaproxy/zest/6d67925) ํ๋๋ฅผ ์ฃผ์ํ๊ณ ์์์ต๋๋ค. ๋ฐ๋ก Zest์์ YAML ํฌ๋งท ์ง์์ ๋ํ ๋ด์ฉ์ด์๋๋ฐ์. ๋๋์ด ๊ณต์ ๋ฆด๋ฆฌ์ฆ๊ฐ ์ด๋ฃจ์ด์ก๊ณ ์ด์ Zest์์ YAML ํฌ๋งท์ ์ฌ์ฉํ ์ ์๊ฒ ๋์์ต๋๋ค.
XSpear Reborn: Big Changes Coming
2 min read
์ ๊ฐ Dalfox ๋ฅผ ๊ฐ๋ฐํ๊ธฐ ์ ์ Ruby๋ก ์์ฑํ์๋ XSpear๋ ๋๊ตฌ๊ฐ ์์์ต๋๋ค. ๋์ผํ๊ฒ XSS๋ฅผ ํ ์คํ ํ๊ธฐ ์ํ ๋๊ตฌ์๊ณ , ํ์ฌ ์ฑ๋ฅ์ ๋น์ฐํ Dalfox์ชฝ์ด ์๋์ ์ผ๋ก ์ข์ ์ํ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์๋ ๋ถํฐ XSpear์ ๋ํ Reborn ๊ณํ์ ์๊ฐํด ๋์์๋๋ฐ, ์ต๊ทผ ๋ง๋ค๋ ๋๊ตฌ๋ ์ด๋ ์ ๋ ์ค๊ณฝ์ด ์กํ์ ์ด์ ๋ณธ๊ฒฉ์ ์ผ๋ก XSpear์ ๋ํด ๋๊ท๋ชจ ๊ฐํธ์ ์งํํ๋ ค๊ณ ํฉ๋๋ค.
๊ฐ์ธ/์ฌ์ค ๋๋ฉ์ธ์์ Crystal Shard ํจํค์ง ์ฝ์ด์ค๊ธฐ
~1 min read
Crystal-lang์์ Shards๋ฅผ ํตํด์ ํจํค์ง์ ๋ํ๋์๋ฅผ ๊ด๋ฆฌํ ์ ์์ต๋๋ค. ์ด๋ go์ go get๊ณผ ์ ์ฌํ๊ฒ yaml ๋ด ์์ฑ๋ github repository์์ ์์ค๋ฅผ ์ฝ์ด์ ์ค์นํ๋ ํํ์ ๋๋ค.
Embed resources in crystal
2 min read
Crystal์์ ๋ฆฌ์์ค ํ์ผ์ ๋ฐ์ด๋๋ฆฌ์ Embed ํ๋ ๋ฐฉ๋ฒ์ ๋ํด ๊ธฐ๋กํด๋ก๋๋ค. ๊นํ ์ด์๋ฑ์ ์ฐพ์๋ณด๋ฉด stdlib๋ก ๋ง๋ค์ด์ค ๊ฒ ๊ฐ์ง ์์๊ณ ์ฐพ์๋ณด๋ Rucksack์ด๋ ์ข์ shard๋ฅผ ๋ฐ๊ฒฌํด์ ๊ฐ๋จํ๊ฒ ์ ๋ฆฌํด๋๊ฒ์. ์ฐธ๊ณ ๋ก Rucksack์ Linux์ macOS์์๋ง ๋์ํ๊ณ Windows๋ ์ง์ํ์ง ์๋๋ค๊ณ ํ๋ ์ด ์ ์ฐธ๊ณ ํ๋ฉด ์ข์ ๊ฒ ๊ฐ์ต๋๋ค.
Default vs Release build in Crystal
1 min read
Crystal์ ์ปดํ์ผ ์ธ์ด๋ก ๋ฐ์ด๋๋ฆฌ๋ก ๋น๋ํ์ฌ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ณต์ ๊ฐ์ด๋์์ release build ์ โrelease flag ์ฌ์ฉ์ ๊ถ๊ณ ํ๊ณ ์๋๋ฐ์. ์ค๋์ ์ด flag๊ฐ ์ด๋ค ์ญํ ์ ํ๋์ง, ์ ๊ถ๊ณ ๋๊ณ ์๋์ง ์ ๋ฆฌํด๋ด ๋๋ค.
Homebrew๋ก ํจํค์ง ์ ๊ณตํ๊ธฐ ๐บ
2 min read
์ ๊ฐ ๋ง๋ ๋๊ตฌ๋ ๋๋ถ๋ถ Homebrew, Binary, RubyGem, Snapcraft ๋ฑ์ ํตํด ๋ฐฐํฌํฉ๋๋ค. ํนํ macOS์ ๊ฒฝ์ฐ Homebrew๋ฅผ ํตํ ์ค์น ๋น์ค์ด ์์ฒญ ๋๊ธฐ ๋๋ฌธ์ Go ๊ธฐ๋ฐ ์ฑ๋ค์ ๊ฐ๊ธ์ ์ด๋ฉด Homebrew๋ฅผ ์ง์ํ๋ ค๊ณ ํ๊ณ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ฌํ ๋๋ถ๋ถ์ ์์ ์ Goreleaser๋ ๋๊ตฌ๋ฅผ ํตํด์ ์งํํ๊ธฐ ๋๋ฌธ์ ๋งค์ฐ ํธ๋ฆฌํ๊ฒ ์งํํ์์ฃ .
Encoding Only Your Choices, EOYC
2 min read
์์ฆ ์ฅ๋๊ฐ ์ผ์ Crystal๊ณผ Elixir๋ก ์ฌ๋ฌ๊ฐ์ง ์ฝ๋๋ฅผ ์์ฑํด๋ณด๊ณ ์์ต๋๋ค. ํนํ Crystal์ Ruby์ ์ ๊ฐ ์์ ์ ํ๋ฒ ์๊ฐํ๊ธฐ๋ ํ๊ณ Ruby์ ๊ฑฐ์ ์ ์ฌํ ๋ฌธ๋ฒ์ ์๋๊น์ง ๊ฐ์ถ๊ณ ์์ด ๊ฐ์ธ์ ์ผ๋ก ๊ด์ฌ์ด ๋ง์๋ ์ธ์ด์ ๋๋ค. ์ต๊ทผ์ ์ฌ๋ฌ๊ฐ์ง ์ด์ ๋ก Crystal์ ์ฃผ๋ ฅ ์ธ์ด๋ก ๋ง๋ค์ด๊ฐ๊ณ ์์ต๋๋ค. ์ค๋์ Crystal๋ก ์์ฑํ ๊ฐ๋จํ ๋๊ตฌ ํ๋ ๊ณต์ ํ๋ ค๊ณ ๊ธ์ ์์ฑํด๋ด ๋๋ค.
LazyVim์ผ๋ก ์ฝ๊ณ ์๋ฆ๋ต๊ฒ vim ์ค์ ํ๊ธฐ ๐ธ
1 min read
์ข์ํ๋ ํ ์คํธ ์๋ํฐ๊ฐ ์์ผ์ ๊ฐ์?
Insomnia ์ HTTPie Desktop
2 min read
๊ฐ์ธ์ ์ผ๋ก API ๋ณด์ ํ ์คํ ์ด๋ ๊ฐ๋ฐํ ๋ Insomnia๋ ๋๊ตฌ๋ฅผ ์ฌ์ฉํฉ๋๋ค. (์ ๊ฐ ์์ ์ ํ๋ฒ ์๊ฐํ์์ด์)
CORS Bypass via dot
1 min read
Origin ํค๋์ ACAO(Access-Control-Allow-Origin) ํค๋๋ Cross-Origin ๊ด๊ณ์์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ๊ณ ์์ ํ๊ธฐ ์ํ ํค๋๋ก SOP(Same-Origin Policy)๋ฅผ ๊ณต์์ ์ผ๋ก ์ฐํํ๊ธฐ ์ํ ํค๋์ ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก CORS๋ผ๊ณ ํต์ฉ๋์ด ๋ถ๋ฅด๋ฉฐ, ์ด๋ JSON Hijacking๊ณผ CSRF ์ทจ์ฝ์ ์ ํฐ ์ ์ ์ ๊ฐ์ง๊ณ ์์ต๋๋ค.
ZAP Custom En/Decoder ๋ง๋ค๊ธฐ
2 min read
ZAP์ ํ์ฅ์ฑ์ Scripting Engine์ ํ์์์ ๋์ต๋๋ค. URL, HTML, Base64 ๋ฑ ํ ์คํ ๋จ๊ณ์์ ์ธ/๋์ฝ๋ฉ์ ํ๋ ๊ฒฝ์ฐ๊ฐ ๊ต์ฅํ ๋ง์๋ฐ์. ์ด ๋ ์ฌ์ฉํ๋ Encode/Decode/Hash ๊ธฐ๋ฅ ๋ํ Scripting์ผ๋ก ํ์ฅํ ์ ์์ต๋๋ค.
Broken link๋ฅผ ์ฐพ์! DeadFinder
1 min read
์ต๊ทผ์ Broken Link(Dead Link)๋ฅผ ์ฝ๊ฒ ์ฐพ๊ธฐ ์ํ ๋๊ตฌ๋ฅผ ํ๋ ๋ง๋ค์์ต๋๋ค. ์ ๋ธ๋ก๊ทธ์ Broken Link๋ฅผ ์ฐพ๊ธฐ ์ํ ๋ชฉ์ ์ด์์ง๋ง, ๊ฐ๋ณ๊ฒ๋ผ๋ ํ๋ฒ ๊ณต์ ํ๋๊ฒ ์ข์ ๊ฒ ๊ฐ์์ ๋ธ๋ก๊ทธ ๊ธ๋ก ์์ฑํด๋ด ๋๋ค.
Rake(Ruby Make)
2 min read
Rake๋ Ruby์์ ์ฌ์ฉ๋๋ build utility๋ก Make์ ์ฌํฉ๋๋ค. rake๋ ์ด๋ฆ ๋ํ ruby
+ make
์์ ๋ง๋ค์ด์ง ๋จ์ด๋ก ์ผ๋ฐ์ ์ธ Ruby application๊ณผ Rails ๋ฑ ์ฌ๋ฌ๊ฐ์ง ํ๊ฒฝ์์ ๊ฐ๋ฐ ๋๊ตฌ๋ก์จ ์ฌ์ฉ๋ฉ๋๋ค.
Ruby Concurrency
2 min read
๋งค๋ฒ ์ดํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค ๋๋ฉด ๋์์ฑ์ ๋ํ ๊ณ ๋ฏผ์ ํ์ง ์์ ์๊ฐ ์์ต๋๋ค. ๊ธฐ๋ฅ์ ์ธ ๊ตฌํ์ ์ง์ ํ์ํ ๊ฒฝ์ฐ๋ ์๊ณ ํผํฌ๋จผ์ค๋ฅผ ๊ฒฐ์ ์ง์ ์ ์๋ ์์์ด๊ธฐ ๋๋ฌธ์ ์ค์ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
Jekyll Collection ๋ค๋ฃจ๊ธฐ
1 min read
์ต๊ทผ์ Jekyll๋ก ๋ค์ ์ด์ฌ ํ ๋ช๊ฐ์ง ๊ธฐ๋ฅ๋ค์ ๊ฐ๋ฐํ๊ณ ์์ต๋๋ค. ๊ทธ ์ค ํ๋๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์ ํน์ type์ ํ์ด์ง๋ค์ ๋ชจ์์ json์ผ๋ก ๋ง๋ค์ด์ฃผ๋ ๊ณผ์ ์ด ํ์ํ๋ฐ, Jekyll์ Collection ๊ธฐ๋ฅ์ ์ด์ฉํด์ ์ฝ๊ฒ ํด๊ฒฐํ์ต๋๋ค.
Hugo to Jekyll
1 min read
์ ๋ง ์ค๋ง์ค๋ง ํ์ต๋๋ค. ์๋ ์ด๋ฐ ์ผ์ ์์๊ฑฐ๋ผ๊ณ ์ฅ๋ดํ์ต๋๋ค. ์๋ ์ Jekyll์์ Hugo๋ก ์ ํํ์ง ๋ฑ 1๋ ๋ง์ ๋ง์์ด ๋ฐ๋์์ต๋๋ค. ๋ค์ Jekyll๋ก ๋์๊ฐ๋๋ค.
Hex? Imhex and Hexyl
1 min read
์ฌ๋ฌ๋ถ๋ค์ ์ด๋ค Hex editor/viewer๋ฅผ ์ฌ์ฉํ์๋์? ์ ๋ Linux๋ฅผ ๋ฉ์ธ์ผ๋ก ์ฌ์ฉํ ๋ Ghex์ hexdump, macOS์์ hexyl์ vim(+plug)์ ์ฃผ๋ก ์ฌ์ฉํฉ๋๋ค. ์ค๋์ ํฌ๋ก์ค ํ๋ซํผ์ ์ง์ํ๋ ์์ฒญ๋ Hex Editor์ธ ImHex์ ๋ํด ์๊ฐํด๋๋ฆฌ๋ ค๊ณ ํฉ๋๋ค. ์ ๋ ์ด์ ๋ ImHex์ hexyl ์กฐํฉ์ผ๋ก ์ฌ์ฉํฉ๋๋ค :D
Docker์ Dumb-Init
2 min read
์ค๋์ ๋์ปค์์ ์์ ์ ์ธ ๊ตฌ๋์ ์ํด ์ฌ์ฉํ๋ dumb-init๊ณผ pid1 ๊ทธ๋ฆฌ๊ณ init ์์คํ ์ ๋ํ ์ด์ผ๊ธฐ๋ฅผ ํ๋ ค๊ณ ํฉ๋๋ค.
ZAP Alert Filters๋ก Risk ๊ฐ์ง๊ณ ๋๊ธฐ
3 min read
Alert filters
๋งฅ๋ถ์ Self-hosted Github action runner๋ก ๋ง๋ค๊ธฐ
2 min read
์ค๋์ Github action์ runner์ ๋ํ ์ด์ผ๊ธฐ๋ฅผ ํ๋ ค๊ณ ํฉ๋๋ค.
Go dependency(go.mod) ์ถ์ ํ๊ธฐ
~1 min read
์ ๊ฐ ์ต๊ทผ์ Dependabot alerts ์ ํ์ธ๋ ์ทจ์ฝ์ ์ค ํจํค์ง ํ์ธ์ด ์๋๋ ์ทจ์ฝ์ ์ด ์์์ต๋๋ค.
Go์์ Stdin์ ๋ํ ํ ์คํธ ์ฝ๋ ์์ฑํ๊ธฐ
1 min read
ํ ์คํธ ์ฝ๋ ์์ฑ ์ค ์ฐ๋ฆฌ๊ฐ ์์ธก ๊ฐ๋ฅํ ํจ์ ์ธ์ ๊ฐ์ ์ฝ๊ฒ ์ฒดํฌ๊ฐ ๊ฐ๋ฅํ์ง๋ง, ์์คํ ์ผ๋ก ๋ถํฐ ๋์ด์ค๋ ๋ฐ์ดํฐ๋ ๋ง์ ์์ฑํ๋ ค๊ณ ํ๋ฉด ์ด๋ป๊ฒ ํด์ผํ ์ง ๊ณ ๋ฏผ์ด ๋๊ธฐ ์์ํฉ๋๋ค.
Permissions-Policy ํค๋๋ก ์กฐ๊ธ ๋ ์์ ํ๊ฒ Browser API ์ฌ์ฉํ๊ธฐ
1 min read
์ค๋์ Permissions-Policy(๊ตฌ Feature Policy) ํค๋์ ๋ํด ์ ๊น ์ด์ผ๊ธฐํ ๊น ํฉ๋๋ค.
HAR(HTTP Archive format) ํฌ๋งท๊ณผ ์์ผ๋ก์ ๊ฐ๋ฐ ๊ณํ
1 min read
์ค๋์ ๋ญ๊ฐ ๊ธฐ์ ์ ์ธ ์ด์ผ๊ธฐ๋ณด๋จ, ๊ทธ๋ฅ ์ ๊ฐ ์ต๊ทผ์ ๊ธ ๊ด์ฌ์ด ์๊ธด HAR ํฌ๋งท์ ๋ํด ์ด์ผ๊ธฐํ ๊น ํฉ๋๋ค.
Golang Logrus์์ Channel hook ๋ง๋ค๊ธฐ
1 min read
Logrus๋ golang์ ์์ฃผ ์ข์ logger ํจํค์ง์ ๋๋ค. logrus๋ hook์ ์ด์ฉํด์ ์ง์ ๋ ํ๋ฒ์ ์ฌ๋ฌ๊ณณ์ ๋ก๊ทธ๋ฅผ ๋จ๊ธธ ์ ์์ต๋๋ค. built-in hook์ผ๋ก๋ ํ์ฌ syslog์ io.Writer๊ฐ ์๊ณ ์ ๋ channel๋ก hook์ ์ธ ์ผ์ด ์์ด ๊ฐ๋จํ๊ฒ ์์ฑํ์ฌ ๊ณต์ ํด๋ด ๋๋ค :D
panic: send on closed channel - ์ฑ๋์ ์ ๋ซ์ ๐ต๐ผโโ๏ธ
1 min read
๊ณ ๋ฃจํด๊ณผ ์ฑ๋์ golang์์ ๊ฐ์ฅ ํต์ฌ์ ์ธ ๊ธฐ๋ฅ ์ค ํ๋์ ๋๋ค.
๊ณง Chrome์์ document.domain์ ์ค์ ํ ์ ์์ต๋๋ค โ ๏ธ
~1 min read
Chrome will disable modifying document.domain to relax the same-origin policy
๊ฐ๋ฐ์๋ง? ์๋ ์ฐ๋ฆฌ๋ ์คํฌ๋์น ํจ๋ ํ์ํด! Boop!
1 min read
์ ๋ ์ข ์ข ์ฌ๋ฏธ์๋ ์ฑ์ด ์์์ง ์ฑ์คํ ์ด๋ฅผ ๋๋ฌ๋ณด๊ณค ํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ค ๋ณด์ ํ ์คํ ์์ ์ธ๋งํ ๊ฒ ๊ฐ์ ๋๊ตฌ๋ฅผ ์ฐพ์ ์ด๋ฒ ์ฐํด๋์ ์ฌ์ฉํด๋ณด๊ณ , ๊ด์ฐฎ๋ค๊ณ ๋๊ปด์ ๋ธ๋ก๊ทธ๋ฅผ ํตํด ๊ณต์ ํด๋ด ๋๋ค. ๋ฐ๋ก Boop ์ ๋๋ค.
Vscode์ ์ ์ฉํ Extensions
2 min read
์ฌ๋ฌ๋ถ๋ค์ ์ด๋ค ์ฝ๋ ์๋ํฐ๋ฅผ ์ฌ์ฉํ์๋์?
Go์์ HTTP gzip response ์ฒ๋ฆฌํ๊ธฐ
1 min read
์ต๊ทผ dalfox์ ๋ ํนํ ์ด์๊ฐ ์ ๋ณด๋ฌ๋๋ฐ(์คํ๋ผ์ธ์ผ๋ก๋ ํ๋ฒ ์ ๋ณด๋ฐ์ ์ฌํญ์ด๋ผ ์ด๋ฏธ ์ฝ์ง์ ์ข ํ๋ ์ํ์๋ค์) ์ค๋ ์ด๋ฅผ ํด๊ฒฐํ๊ณ ์ด๋ป๊ฒ ํด๊ฒฐํ๋์ง ๊ฐ๋ตํ๊ฒ ๊ณต์ ํ ๊น ํฉ๋๋ค. ํน๋ณํ ๋ด์ฉ์ ์๋์ง๋ง, golang์์ http ๊ธฐ๋ฐ ๊ฐ๋ฐ์ ์งํํ ๋ ์๊ณ ์์ผ๋ฉด ์ค์๋ฅผ ์๋ฐฉํ ์ ์๋ ๋ถ๋ถ์ด์ฃ .
Hugo aliases์์ noindex๋ก ์ธํ SEO ๋ฌธ์ ํด๊ฒฐํ๊ธฐ
1 min read
Hugo์์ aliases๋ฅผ ์ฌ์ฉํ๋ฉด ํด๋น ์ฃผ์๋ meta tag๋ฅผ ์ด์ฉํ redirect๋ฅผ ํ์ด์ง๊ฐ ์์ฑ๋ฉ๋๋ค. ์ด๋ฌํ ํํ๋ ์ผ๋ฐ์ ์ผ๋ก url์ ์ด๋ํ๊ธฐ์ ์ ํฉํ์ง๋ง, 30x์ status code๊ฐ ์๋๊ณ 200์ด๊ธฐ ๋๋ฌธ์ ๊ตฌ๊ธ ๋ฑ ๊ฒ์ ๋ด์ด ํด๋น ํ์ด์ง๋ฅผ ์์งํ๊ฒ ๋ฉ๋๋ค.
pkg.go.dev์ go ํจํค์ง ์ฆ์ ์ ๋ฐ์ดํธํ๊ธฐ
~1 min read
golang์ผ๋ก ๊ฐ๋ฐ๋ ์ฑ์ pkg.go.dev์ ์ ์ฅ๋๋ฉฐ ํด๋น ์ฌ์ดํธ๋ฅผ ํตํด ํจํค์ง ์ ๋ณด๋ฅผ ๋ณผ ์ ์๊ณ ์ค์ go get ์ผ๋ก ํจํค์ง๋ฅผ ๊ฐ์ ธ์ฌ ๋ ์ด๊ณณ์ latest ๋ฒ์ ์ ๊ฐ์ ธ์ค๊ฒ ๋ฉ๋๋ค. ๊ทธ๋์ ์ด ์ฌ์ค์ ์ ๋ชฐ๋๋ ๊ณผ๊ฑฐ์ ์ ๋ ์ด๋ฐ ์ค์๋ ํ์๋ ๊ธฐ์ต์ด ๋๋ค์.
Github repo ๋ด Languages ๋ณ๊ฒฝํ๊ธฐ (.gitattributes)
1 min read
Github repository ํ์ด์ง์ ์ฐ์ธก์๋ ํด๋น repo์ ์ธ์ด ํต๊ณ์ธ Languages๊ฐ ์์ต๋๋ค. ์ด๋ ํ์ด์ง์ ์ ๊ทผํ ์ฌ์ฉ์๋ก ํ์ฌ๊ธ ์ด ํ๋ก์ ํธ๊ฐ ์ด๋ค ์ธ์ด๋ฅผ ์ฃผ๋ ฅ์ผ๋ก ๊ตฌ์ฑ๋์๋์ง ํ์ธํ ์ ์๋ ์งํ๊ฐ ๋๊ณ , ์ผ๋ถ ๋๊ตฌ๋ค์ ์ด ๋ฐ์ดํฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์คํ์์ค ํ๋ก์ ํธ๋ค์ ๋ถ๋ฅํ๊ธฐ๋ ํฉ๋๋ค.
Go์์ ์์ฃผ ํฐ JSON ํ์ผ์ ํธ๋ค๋งํ๊ธฐ
2 min read
์ต๊ทผ์ ์๋ฅ์ง ์์ ๋ฌธ์ ๋ก ๊ตฌ๊ธ๋งํ๋ค๊ฐ ๋จ์ํ๊ฒ ํด๊ฒฐํ ์ผ์ด ์์ด์ ์งง๊ฒ ๊ธ๋ก ๊ณต์ ํด๋ณผ๊น ํฉ๋๋ค. ๋ณต์กํ ๋ฌธ์ ๋ก ์๊ฐํด์ ์คํ๋ ค ๊ฐ๊น์ด์ ์๋ ๋ต์ ๋์น๊ณ ๋ง์์๋ค์.
Go์์ http.Request/http.Response๋ฅผ Raw String์ผ๋ก ๋ง๋ค๊ธฐ
2 min read
์ค๋์ golang์์ http.Request๋ฅผ Raw HTTP Request (string) ํํ๋ก ์นํํ๋ ๋ฐฉ๋ฒ์ ๋ํด ๋ฉ๋ชจํ๋ ค๊ณ ํฉ๋๋ค.
go executable app, ์ด์ go install๋ก ์ค์นํ์ธ์!
~1 min read
go1.17 ๋ฒ์ ๋ถํฐ go get์ ์ด์ฉํ executable app, ์ฆ ๋ฐ์ด๋๋ฆฌ ์ค์น๊ฐ deprecated ๋์์ต๋๋ค ๐ง
Goreleaser์์ M1, Windows ARM64 ์ง์ํ๊ธฐ
~1 min read
goreleaser์ ๊ฐ๊ฐ v0.157.0
, v0.175.0
๋ฒ์ ์์ M1 macbook, Windows ARM 64 ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค. ์ ๋ ์ ๊ฐ ๊ฐ๋ฐํ๋ ๋๊ตฌ์์ M1 ์ง์์ด ์ฝ๊ฐ ๋ฆ์ ๋๋์ด ์๊ธดํ๋ฐ์. ๊ด๋ จํด์ ์ฃผ์ํด์ผํ ์ ๋ค ์ ๋ฆฌํด ๋ก๋๋ค.
Asciinema Shortcode in Hugo
2 min read
TL;DR
์ฝ๋๋ฅผ gist์ ๋ฐ๋ก ์ฌ๋ ค๋์์ต๋๋ค.
Hugo์์ Sitemap-index ์ฌ์ฉํ๊ธฐ(split sitemap)
3 min read
sitemap.xml
sitemap.xml์ Sitemap protocol์ ์ํ XML schema๋ก ์น ์๋น์ค๊ฐ ํฌํจํ๊ณ ์๋ ๋งํฌ๋ค์ ์ฌ์ฉ์์๊ฒ ์ ๊ณตํ๊ธฐ ์ํ ๋ชฉ์ ์ผ๋ก ๊ตฌ์ฑ๋๋ ํ์ผ์ ๋๋ค. ์๋์ ๊ฐ์ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๋ฉฐ, ์ฌ์ฉ์๋ ๊ฒ์ ๋ด ๋ฑ์ ์ด ํ์ผ์ ์ฐธ์กฐํ์ฌ ์น ํ์ด์ง๋ฅผ ์์งํฉ๋๋ค.
Github action ์ฑ๊ณต ์ ๋ค๋ฅธ action ์คํํ๊ธฐ
1 min read
Github action์ github์์ ์ ๊ณตํ๋ CI/CD๋ฅผ ์ํ ๋๊ตฌ์ ๋๋ค. yaml ํฌ๋งท์ config ๋ฅผ ์ด์ฉํด์ ์ฝ๋ ๋น๋, ํ ์คํธ๋ถํฐ deploy ๊น์ง ๊ตฌํํ๊ธฐ์ ๋ฐ๋ผ ์ ๋ง ๋ง์ ๊ธฐ๋ฅ์ ์๋์ผ๋ก ์ฒ๋ฆฌํ ์ ์๋ ๋๊ตฌ์ด๊ณ github๋ฅผ ์ฌ์ฉํ๋ค๋ฉด jenkins๋ ๋ค๋ฅธ devops ๋๊ตฌ๋ฅผ ๋ฒ๋ฆฌ๊ณ ์ด๋ํ ๋งํผ ์ถฉ๋ถํ ์ข์ ๊ธฐ๋ฅ์ฑ์ ๊ฐ์ง๊ณ ์์ต๋๋ค.
Cache Busting๊ณผ ๋ณด์ ํ ์คํ
1 min read
Cache busting
git subtree๋ฅผ ์ด์ฉํด github pages์ ๋ฐฐํฌํ๊ธฐ
1 min read
hugo ๋ฑ jekyll์ด ์๋ static site generator๋ฅผ ์ด์ฉํ๊ฑฐ๋ ๋ณ๋๋ก ๊ฐ๋ฐํด์ github pages์ ํ์ด์ง๋ฅผ ๋ฐฐํฌํ๋ ๊ฒฝ์ฐ gh-pages ๋ธ๋์น๋ ๋ณ๋์ ๋๋ ํ ๋ฆฌ์ ๋ฐฐํฌํ๊ณ ๋ฐฐํฌ path๋ฅผ ์ฐ๊ฒฐํ์ฌ github pages๋ก ํธ์คํ ํ ์ ์์ต๋๋ค.
Hugo Shortcodes
1 min read
Hugo์๋ Shortcode๋ผ๋ snippet์ด ์์ต๋๋ค. ์ ๊ฐ hugo๋ก ๋์ด์ค๊ณ ๊ต์ฅํ ๋ง์ ๋ค์๋ ๋ถ๋ถ์ธ๋ฐ์. ์ค๋์ shortcode๊ฐ ๋ญ์ง, ์ด๋ป๊ฒ ์ฌ์ฉํ๋์ง ๊ทธ๋ฆฌ๊ณ ์ด๋ป๊ฒ ์ฐ๋ฉด ๋ ์ข์์ง ์ด์ผ๊ธฐํด๋ณผ๊ฒ์.
Hugo Archetypes์ ์ด์ฉํ ๊ธ Template ์ฌ์ฉํ๊ธฐ
1 min read
Hugo์์๋ content management๋ฅผ ์ํด archetypes ๋ผ๋ template file์ ์ ๊ณตํ๊ณ ์์ต๋๋ค. ์ด๋ hugo new
๋ก ์๋ก์ด ๊ธ์ ๋ง๋ค ๋ ์๋์ผ๋ก ๊ธ์ ํ์ํ ์ ๋ณด๋ฅผ ์์ฑํด์ฃผ๋ฉฐ, ์ข
๋ฅ์ ๋ฐ๋ผ์ ์ปค์คํ
ํ๊ฒ ์์ฑํ ์ ์๋๋ก ์ ๊ณตํด์ฃผ๋ ๊ธฐ๋ฅ์
๋๋ค.
Goroutine๊ณผ Sync
3 min read
Go ํ๋ฉด ์ด๋ค ํน์ง์ด ๋ ์ค๋ฅด์๋์? ๊ตฌ๊ธ์ ์ธ์ด, ๋น ๋ฅด๋ค ๋ฑ ์ ๋ฐ์ ์ธ ๊ฐ๋ ์์ goroutine, ์ฑ๋ ๋ฑ ๋ํ ์ผํ ๋ถ๋ถ๊น์ง ๋ง์ ๊ฒ๋ค์ด ์์ํ ๋ฐ์, ์ ๋ ์ ๊ฐ ์ฒ์ ๊ณ ๋ฅผ ์ ํ์ ๋ ๊ฐ์ฅ ์ฌ๋ฏธ์๊ฒ ๋ดค๋ ๊ฒ์ด goroutine๊ณผ ์ฑ๋์ด์์ต๋๋ค.
Html to Markdown in Cli
1 min read
์ด์ Hugo๋ก ์ด์ฌ๋ก ์ด์ฌ๋ฅผ ๋ง๋ฌด๋ฆฌํ๋ฉด์ ๋ชปํ๋ ์์ ์ ํ๋ ์งํํ๊ฒ ์์ต๋๋ค. ๋ฐ๋ก ๊ธฐ์กด jekyll ๋ถํฐ ์ ์งํด์ค๋ blogger๋ก ๋ถํฐ ๋์ด์จ ์ํด, html ํฌ์คํธ๋ค์ธ๋ฐ์. ๋ฌผ๋ก ํ์ด์ง ๋๋ฉ์๋ ์ ํ ์ง์ฅ์ด ์์ง๋ง, html ํ์ผ ์์ฒด๊ฐ ์ ์ง๋ณด์๊ฐ ์ด๋ ต๋ค๋ณด๋ ๊ธ์ ์์ ํ๊ธฐ ๊น๋ค๋กญ๋ค๋ ๋จ์ ์ด ์์์ต๋๋ค.
Utterances์์ ๋๊ธ ์ด๋ํ๊ธฐ
~1 min read
๊ฐํน github page์ repo ์ด์ ๋ฑ utterances์ ๋๊ธ์ ์ด๋ํด์ผํ ๊ฒฝ์ฐ๊ฐ ์๊น๋๋ค. ์ด๋ฒ์ hugo ์ด์ ํ๋ ์์ ์ ์งํํ๋ฉด์ ํ ์คํธ ํ๋ค๋ณด๋, ๊ฐ๋จํ ํธ๋ฆญ์ ์ด์ฉํ์ฌ ๋๊ธ์ ์ฝ๊ฒ ์ฎ๊ธธ ์ ์์ด ๋ด์ฉ์ ์ ๋ฆฌํด๋ด ๋๋ค.
Jekyll์์ Hugo๋ก ์ด์ฌ๊ฐ๊ธฐ (Migration log)
7 min read
jekyllโฆ ์ ๊ฐ ์์ ์๋ rubyist(ruby ์ฌ์ฉ์) ์์ต๋๋ค. ๊ทธ๋ฌ๋ค๊ฐ 2018~19๋ ์ฏค์ gopher(golang ์ฌ์ฉ์)๊ฐ ๋์๊ณ ์ดํ๋ถํด ๋ง๋ค๊ณ ์๋ ๋๋ค์์ ๋๊ตฌ๋ golang ๊ธฐ๋ฐ์ผ๋ก ๋ง๋ญ๋๋ค.
Golang์ nil๊ณผ interface nil์ ์ฌ๋ฏธ์๋ ํน์ง
1 min read
Null์ ์ผ๋ฐ์ ์ผ๋ก ์กด์ฌํ์ง ์๋ ๊ฐ ๋๋ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ฅผ ์๋ฏธํ๋ฉฐ ์ธ์ด์ ๋ฐ๋ผ null
nil
nan
none
undefined
๋ฑ ์ฌ๋ฌ๊ฐ์ง ํํ๋ก ํํ๋ฉ๋๋ค. ๋ค๋ง null์ด๋ ๊ฐ๋
์ด ์ธ์ด๋ง๋ค ํน์ฑ๊ณผ ์ฒ ํ, ํํํ๋ ๋ฐฉ์์ ๋ฐ๋ผ์ ๋ฌ๋ผ์ง๊ธฐ๋ ํ๋๋ฐ์. ์ค๋์ golang์์์ null์ธ nil์ ํน์ฑ ํ๋๋ฅผ ์ดํด๋ณด๋ ค๊ณ ํฉ๋๋ค.
25 Keywords in Go
1 min read
Go supports only 25 keywords. Itโs very simple, which has the advantage of a low learning curve. Iโve never posting it while using Go. Let me summarize the meaning of each keyword today.
go-jwt์ golang-jwt/jwt
1 min read
์ต๊ทผ์ golang์ผ๋ก ๊ฐ๋ฐํ ๋๊ตฌ ์ค jwt ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ ๋๋ค์์ ํ๋ก์ ํธ์์ ์๋์ ๊ฐ์ด Security dependency alert์ด ๋ํ๋ฌ์ต๋๋ค.
Ruby์ Google Indexing API๋ฅผ ์ด์ฉํ์ฌ ์๋์ผ๋ก ์ ๊ทURL ๋ฑ๋กํ๊ธฐ
4 min read
์ ๊ฐ ๋ธ๋ก๊ทธ ๊ธ์ ์์ฑํ๊ณ commit - push ์ ๋ง์ ์์ ๋ค์ด ์ผ์ด๋ฉ๋๋ค. ๋ํ์ ์ธ ๊ฒ๋ค์ ์ด์ผ๊ธฐ ๋๋ฆฌ๋ฉด, Jekyll build ๋ฐ deploy ๊ณผ์ ์ด ์งํ๋๊ณ ์ด๋ฏธ์ง ์ค compress๊ฐ ํ์ํ ์ด๋ฏธ์ง๋ compress ์ฒ๋ฆฌํ์ฌ ์ฉ๋์ ์ค์ด๊ณ , notify ๋ฑ ์ฌ๋ฌ๊ฐ์ง ๊ณผ์ ๋ค์ด github action์ ๋ น์์์ต๋๋ค.
Github default branch ๋ณ๊ฒฝํ๊ธฐ (master to main)
1 min read
์ค๋ ๋๊ตฌ๋ง๋ค ๋ ์ธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ง๋ค์ด๋๋ ค๊ณ github repository๋ฅผ ์ถ๊ฐํ๋ ค ํ๋๋ ์๋์ ๊ฐ์ ๋ฉ์์ง๊ฐ ๋ฐ์ํ์ต๋๋ค.
Go์์ ์๋์ผ๋ก ํ ์คํธ ์ฝ๋ ์์ฑํ๊ธฐ(with gotests)
3 min read
์ ๋ ํ ์คํธ ์ฝ๋๋ฅผ ๋ง์ด ์์ฑํ์ง ์์ต๋๋ค. ์๋ฌด๋๋ ๋ณธ์ ์ด ๋ณด์ ์์ง๋์ด๋ง์ด๋ค ๋ณด๋ ํ์ ๊ฐ๋ฐ์์ฒ๋ผ ๊ผผ๊ผผํ๊ฒ ํ ์คํธ ์ฝ๋๋ฅผ ์์ฑํ๊ณ ์กฐ๊ธ ๋ ๋์๊ฐ TDD(Test-Driven Development)๋ฅผ ์ ๊ฒฝ์ฐ๋ฉด์ ๊ฐ๋ฐํ ์ ์๋ ์ฌ์ ๊ฐ ์๋ ๊ฒ๋ ์๋๊ตฌ์.
rvm is not a function ์๋ฌ ํด๊ฒฐํ๊ธฐ
~1 min read
Problem
์ ๋ ๋ณดํต ๊ธ์ ์์ฑํ ๋ ๋งฅ๋ถ์์ ์งํํฉ๋๋ค. ๊ทธ๋์ ํ ์๋ฒ์์๋ ์ง์ ๊ธ์ ์์ฑํ ์ผ์ด ๋ณ๋ก ์์๋๋ฐ, ๋์์ธ ์ข ์์ ํ๊ธฐ ์ํด์ ์๋ฒ์์ ์ง์ ์์
ํ๋ค ๋ณด๋ jekyll serve ์ ruby ๋ฒ์ ๊ด๋ จ ์๋ฌ๊ฐ ์์์ต๋๋ค. ์์ฝํ๋ฉด github pages gem์ 2.x ๋ฒ์ ๋ง ์ง์ํ๋๋ฐ, ์์คํ
๋ฒ์ ์ด 3.x ๋ฒ์ ์ด๋ผ์ ๋ฐ์ํ ๋ฌธ์ ์๊ณ , ์ด๋ฅผ rvm๋ก ์ฒ๋ฆฌํ๊ณ ์ rvm use
๋ฅผ ์ฌ์ฉํ๋๋ ์๋์ ๊ฐ์ ์๋ฌ๊ฐ ๋ฐ์ํ์์ต๋๋ค.
GOPRIVATE์ ํตํด ๊ฐ์ธ/์ฌ์ค ๋๋ฉ์ธ์์ go get ํ๊ธฐ(Gitlab, Github enterprise)
~1 min read
go get
go ๊ธฐ๋ฐ ์ดํ๋ฆฌ์ผ์ด์
๋ค์ ์ฌ์ฉํด๋ณด์
จ๊ฑฐ๋ go ์ธ์ด๋ก ๊ฐ๋ฐ์ ํ๋ค๋ฉด go get
์ ๋งค์ฐ ์ต์ํ ๋ช
๋ น์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
[Phoenix #5] Fixed bug in CSRF Payload Generator
~1 min read
Phoenix - CSRF
DCO and Github Sign-off Commit
3 min read
์ด์ ๋ฐค์ ZAP์ชฝ์ Pull Request๋ฅผ ๋ ๋ ธ๋ค๊ฐ ์๋์ ๊ฐ์ ์ํฉ์ด ์์์ต๋๋ค.
Rails mimemagic 0.3.5 could not be found ์๋ฌ ํด๊ฒฐ, ๊ทธ ์ด๋ฉด
1 min read
Error
์ง๋์ฃผ Rails ์ฑ์ ์์ ํ ๊ฒ ์์ด์ ์์ ์ ์งํํ์๋๋ฐ, ์๋์ ๊ฐ์ ์๋ฌ๋ฅผ ๊ฒช์์ต๋๋ค ๐ญ
Secure JWT and Slinding Sessions
3 min read
Sessions ์ด๋?
Sessions์ ์ปดํจํ ์์ ๋น์ทํ์ง๋ง ์ฌ๋ฌ ์๋ฏธ๋ก ์ฌ์ฉ๋๋ ์ฉ์ด์ ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ์ํ๋ฅผ ์๋ฏธํ๋ค๊ณ ๋ณด๋ฉด ๋ ๊ฒ ๊ฐ๊ณ , ์น์์๋ HTTP๊ฐ ๋น ์ฐ๊ฒฐํ ํ๋กํ ์ฝ์ด๊ธฐ ๋๋ฌธ์ ์๋ฒ๊ฐ ๊ธฐ์กด์ ์ ์ํ๋ ํด๋ผ์ด์ธํธ์ธ์ง ํ์ธํ ์ ์๋ ์๋จ์ผ๋ก ์ฌ์ฉ๋ฉ๋๋ค. (ํ์ผ ์ฟ ํค๋ ๋น์ทํ์ฃ . ๋ค๋ง ์ฒ๋ฆฌ์์ ์ฝ๊ฐ ๋ค๋ฅด๊ธดํฉ๋๋ค.)
[Learn ML #1] ์ด์ ๋ถํฐ ๋จธ์ ๋ฌ๋(Machine Learning)๋ ๊ณต๋ถํฉ๋๋ค ๐
1 min read
์ต๊ทผ์ ๋จธ์ ๋ฌ๋ ๊ณต๋ถ๋ฅผ ํ๊ณ ์์ต๋๋ค. ๋ฌผ๋ก ๋ญ ๊น๊ฒ ๊ณต๋ถํ๊ธฐ์๋ ์ ์ฃผ๋ ฅ์ธ ๋ณด์๊ณผ ๋๋ฉ์ธ๋ ์๋ ๋ค๋ฅด๊ณ , ๊ฐ๋ฐ์ ์ธ ํ ํฌ๋ ์ด์ธ์๋ ์ํ/ํต๊ณํ์ ์ธ ๋ถ๋ถ์ด ๋ง์ด ํ์ํ๊ธฐ ๋๋ฌธ์ ์ ํ ์ ์์๊ฑฐ๋ ํ์ ์ ๋ค์ง ์๋ค์.
[Phoenix #4] Fixed bug in session entropy page
~1 min read
Problem
Session entropy ๊ณ์ฐ ์ ํน์๋ฌธ์๊ฐ ๋ฐ์๋์ง ์๋ ์ด์๊ฐ ์์์ต๋๋ค. ๊ทธ๋ฅ ์๋์ผ๋ก ๊ณ์ฐํ๊ธฐ ๊ท์ฐฎ์์ Session type ๋๋กญ๋ฐ์ค์ Ascii๋ก ์ ํ ์ ๋ฐ์๋๋๋ก ์ถ๊ฐํ์๋๋ฐ, ํฌ๊ฒ ํจ์ฉ์ฑ์ด ์๋ ๊ฒ ๊ฐ๋ค์..
[Phoenix #3] Update session entropy page
~1 min read
Change note
- ์์ซ์ 3์๋ฆฌ ๊น์ง ์๋ ค์ Entropy ํํํ๋๋ก ์์
- ์ผ๋ถ ๋ฌธ๊ตฌ ์์ ๋ฐ table ๋ฑ ๊ฐ๊ฒฉ ์์
- Case , Length ๋ฑ์ ์ฝ๊ฒ ์์ ํ ์ ์๋๋ก ์ด๋ฒคํธ ํธ๋ค๋ฌ ๋ณ๊ฒฝ(๋จ์ผ Element์๋ง ์ ์ฉ๋๋๋ก)
Bump a go package version
1 min read
My Problem
๊ฐํน go get
์ผ๋ก ์ ๊ฐ ๋ง๋ ๋๊ตฌ๋ฅผ ์ค์น ์ ๊ตฌ๋ฒ์ (ํ์ฌ๋ 2๋ฒ์ ๋์ธ๋ฐ, 1๋ฒ์ ๋๊ฐ..)์ด ์ค์น๋๋ ์ด์๊ฐ ์์์ต๋๋ค. ๋ํ pkg.go.dev์๋ ๊ตฌ๋ฒ์ ์ด ๋ง์ง๋ง ๋ฆด๋ฆฌ์ฆ๋ก ์๊ณ ๋ณํ๊ฐ ์๋ ์ํ์์ฃ .
Go flag์์ custom usage ๋ง๋ค๊ธฐ
2 min read
golang์์ cli ๋๊ตฌ๋ฅผ ๋ง๋ค ๋ ๊ฐ์ฅ ๋จผ์ ์ ํ๋ ๋๊ตฌ๋ flag์ ๋๋ค. ์ ๋ํ flag๋ก ์์ํ์ฌ cobra, unfave ๋ฑ ์ฌ๋ฌ๊ฐ์ง ์จ๋ณด๋ค๊ฐ ๊ฒฐ๊ตญ์ ์ ์ฌ์ฉํ๋ cobra๋ฅผ ๋ฒ๋ฆฌ๊ณ flag๋ก ๋ค์ ๋์์์ต๋๋ค. go์ ๋ด์ฅํ option parser๋ก ์ฌํํ์ง๋ง, ํธ์์ฑ์ ์ํ ๋ถ๋ถ๋ค์ ๋ง์ด ์ ์ด์ ๋๋๋ก, ์ง์ ์ค๋ฒ๋ผ์ด๋์ ๊ฐ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์๋ณธ ํจ์๋ฅผ ์์ ํ์ฌ ์ฌ์ฉํด์ผํ๋ ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค.
Rails generate ์ ๋ฉ์ถ๋ ๊ฒฝ์ฐ ํด๊ฒฐ ๋ฐฉ๋ฒ
~1 min read
์ ๊ฐ 2019๋
๋ถํฐ go๋ฅผ ๋ฉ์ธ์ธ์ด๋ก ํ์ ํ๋ฉด์ ruby๋ก ๊ฐ๋ฐํ ์ผ์ด ๋งค์ฐ ์ค์ด๋ค์์ต๋๋ค. ๊ทธ๋๋ ๊ฐ๋์ฉ ๋น ๋ฅด๊ฒ ์์
์ด ํ์ํ ๊ฒฝ์ฐ ruby๋ฅผ ์๋ํ์ง ์๊ฒ ์ฌ์ฉํ๋๋ฐ, ๊ฐํน rails g
, rails generate
์ ๋ฉ์ถ๋ ์ํฉ์ด ์์ต๋๋ค. ๊ทธ๋ผ ์์ธ๊ณผ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๋ํด ๊ธ ์์ฑํด๋ด
๋๋ค :D
MacOS Atom์์ ์ด๋ชจ์ง ์ฌ์ฉ ๋ถ๊ฐ ๋ฒ๊ทธ ํด๊ฒฐํ๊ธฐ
~1 min read
Atom์ ์ฌ์ฉํ๋ ์ค ์๊ทผํ ๋ถํธํ ๋ถ๋ถ์ด ํ๋ ์์์ต๋๋ค. ๋ฐ๋ก ์ด๋ชจ์ง๋ฅผ ์ฌ์ฉํ ์ ์๋ ์ด์์ธ๋ฐ์. ๊ณ ์ณ์ ์จ์ผ์ง ํ๋ค๊ฐ ์ด์ ์์ผ ์๋ฃจ์ ์ ์ฐพ์๋ณด๊ณ ์ ์ฉํด์ ์ฌ์ฉํ๋ ํจ์น ์ ๊น์ง ์์๋ฐฉํธ์ผ๋ก ์ธ๋งํ ๊ฒ ๊ฐ์ ๊ธ๋ก ๊ฐ๋จํ๊ฒ ๊ณต์ ๋๋ฆฝ๋๋ค.
Git pull/merge ์ถฉ๋ ์ ๊ธฐ๋ณธ ์๋ํฐ ๋ณ๊ฒฝ, ์๋ํฐ ๋์ฐ์ง ์๊ธฐ
~1 min read
git์ ๋๋๋ก git pull
๋ฑ remote์ ์์ค๋ฅผ ๊ฐ์ ธ์ค๋ ์ค ์ถฉ๋์ด ์๋ ๊ฒฝ์ฐ ์๋ํฐ๊ฐ ์ด๋ฆฌ๋ฉฐ ์ ๋ณด๋ฅผ ๋ณ๊ฒฝํ ์ ์๋๋ก ๋ฉ๋๋ค. ์ ์ ๊ฒฝ์ฐ nvim์ ๊ธฐ๋ณธ ์๋ํฐ๋ก ์ฌ์ฉํ๋๋ฐ, ์ฝ๋ ๋จธ์ง ๋จ๊ณ์์ ์ด๋ฆฌ๋ ๊ธฐ๋ณธ ์๋ํฐ๊ฐ nano๋ผ ์๋นํ ๋ถํธํ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ CI์์ ์ด๋ฌํ ํ์
์ ์๋ํ๋ push ๊น์ง ์ด์ด์ง๋๋ฐ ๋ถํธํจ์ด ๋ฐ์ํฉ๋๋ค. ์ค๋์ ๊ธฐ๋ณธ ์๋ํฐ๋ฅผ ๋ณ๊ฒฝํ๋ ๋ฐฉ๋ฒ๊ณผ Auto-Edit์ ๋ฌด์ํ๋ ๋ฐฉ๋ฒ์ ๊ฐ๋จํ๊ฒ ์ ๋ฆฌํด๋ณผ๊น ํฉ๋๋ค.
[Phoenix #2] Added change note
~1 min read
Cullinan๊ณผ ๋์ผํ๊ฒ Phoenix์๋ change note๋ฅผ ์ถ๊ฐํ์ต๋๋ค. ์ด์ ๋ถํด phoenix ํ์ด์ง์์ ๋ณ๊ฒฝ ์ด๋ ฅ์ ๋ํ ์ ๋ณด๋ฅผ ํ์ธํ์ค ์ ์์ต๋๋ค. ๊ตฌํ ๋ฐฉ์ ๋ํ ๋์ผํ๋ ์๋ ๋งํฌ๋ฅผ ์ฐธ๊ณ ํด์ฃผ์ธ์.
[Phoenix #1] Phoenix์ gist ๊ธฐ๋ฐ snippets๊ฐ ์ถ๊ฐ
1 min read
์ด์ ๋ถํฐ ๋์์ธ/๊ธฐ๋ฅ ๋ฑ ๋ธ๋ก๊ทธ ๋ณ๊ฒฝ์ฌํญ์ ๋ํ ๊ธ๋ ์์ฑํ๋ ค๊ณ ํ์๋๋ฐ, ์ฌํด๋์์ผ ์ฌ๋๋ก ์์๋๋ค์. ์ฌ์ค ๋ญ ์ค์ํ ์ ๋ณด๊ฑฐ๋ฆฌ๋ ์๋๊ณ , ๊ทธ๋ฅ ๊ฐ์ธ์ ์ผ๋ก ๋ณ๊ฒฝ์ฌํญ์ ๋ํ ๊ธฐ๋ก์ด ์์ผ๋ฉด ์ข์ ๊ฒ ๊ฐ์์ ํ๊ทธ ํ๋ ์ถ๊ฐํ๊ณ ์์ฑํด๋ด ๋๋ค. ์๋ง ๊ฐ๋จํ ๋ด์ฉ๋ค๋ง ๋ค์ด๊ฐ ๊ฒ ๊ฐ์์.
How to applying IntelliJ theme in ZAP
1 min read
์ด์ BurpSuite์ Customizer์ ๋ํ ๊ธ์ ์ผ์์ต๋๋ค. BurpSuite์์ FlatLaf์ IntelliJ Theme๋ฅผ ์ฌ์ฉํ ์ ์๋๋ก ์ง์ํด์ฃผ๋ ํ์ฅ ๊ธฐ๋ฅ์ด์๊ณ , ๊ธ ๋ง๋ฏธ์ ๋๊ธ์๋ ์์ฑํ๋ฏ์ด ZAP ๋ํ 2.10 ๋ฒ์ ๋ถํฐ FlatLaf๋ฅผ ์ฌ์ฉํ๊ณ ์๊ธฐ ๋๋ฌธ์ ๊ตฌํ์ด ๊ฐ๋ฅํ ๊ฑฐ๋ ์๊ฐ์ด ๋ค์์์ต๋๋ค.
๋ด๊ฐ ์คํ ์์ค ํ๋ก์ ํธ๋ฅผ ์ํด ์ฌ์ฉํ๋ Github actions๊ณผ App
1 min read
์ค๋์ ์ ๊ฐ ์คํ์์ค ํ๋ก์ ํธ์์ ์ฃผ๋ก ์ฌ์ฉํ๋ git-action ๊ณผ app์ ๋ํด ๊ฐ๋ณ๊ฒ ์๊ฐํด๋๋ฆด๊น ํฉ๋๋ค. ๋ค๋ฅธ ํ๋ก์ ํธ๋ค๊ณผ ๋น๊ตํด๋ณด๋ฉด ์ ๊ทธ๋ฅ ๋ง์ง๋, ์ ์ง๋ ์์ ์์ ์ฌ์ฉํ๋ ๊ฒ ๊ฐ๋ค์ ๐
Make cloud base ZAP Scanning Environment Using github-action
1 min read
Hi hackers and bugbounty hunters :D Today, I talk about building a github-action-based ZAP scanning environment. As you know, there is no time limit for public repo, so you can configure a cloud-based vulnerability scanner for free ๐
Github 2FA ์ธ์ฆ ์ดํ Authentication Error ํด๊ฒฐํ๊ธฐ
~1 min read
Gitub๋ ํธ์์ฑ ๋๋ฌธ์ 2FA(Two-Factor) ์ธ์ฆ์ ์ฌ์ฉํ์ง ์์์๋๋ฐ, Marketplace ์ ๋ฐ์ดํธ๋ฅผ ์ํด ์ฝ๊ฐ์ ๋ถํธํจ์ ๊ฐ์ํ๊ณ 2FA๋ฅผ ์ค์ ํ์ต๋๋ค. (์ด์ฐจํผ ๋ค๋ฅธ ์๋น์ค์์ ์ด๋ฏธ ๋ง์ด ์ฐ๊ณ ์๋ ์ํ๋ผ.. ๋ญ ์ฌ์ค ํฌ๊ฒ ๋ถํธํ ๊ฒ ์์ ์ค ์์์ฃ )
Jekyll Build Speed Up!
3 min read
์ข ์ข ์ Github page๋ ๋น๋๊ฐ ์คํจํฉ๋๋ค. ๋ฌผ๋ก ๋๋ต์ ์ธ ์ด์ ๋ ์๊ณ ์์์ต๋๋ค. Github page๋ ์ฝ ์ต๋ 13๋ถ ์ ํ ์ ๋์ build time์ ๊ฐ์ง ์ ์๋๋ฐ, ์ด๋ฅผ ๋์ด๊ฐ๊ฒ ๋๋ฉด pending ๋๊ฑฐ๋ ์คํจํฉ๋๋ค. ์ Jekyll์ ๋น๋ ์๊ฐ์ด 15๋ถ ์ ๋ ๊ฑธ๋ฆฌ๋ ์ํ๋ก ๋น์ฐํ ์คํจํ๋ ๊ฒฝ์ฐ๊ฐ ๋ฐ์ํ์์ฃ .
Jekyll feed.xml ์ต์ํํ๊ธฐ
2 min read
RSS๋ ๋งค์ฐ ์ค๋๋ ๊ธฐ์ ์ด์ง๋ง, ์์ง๊น์ง๋ ๋ง์ ์น ์๋น์ค์์ ์ง์ํ๊ณ ์ฌ์ฉ๋๋ ๊ธฐ์ ์ ๋๋ค. ์ผ๋ฐ ์ฌ์ฉ์๊ฐ ๋ฆฌ๋๋ฅผ ํตํด ์ฝ๊ฒ ๊ธ ๋ชฉ๋ก์ ๋ฐ์์ ์ฝ์ ์ ์๊ณ , SEO ๊ด์ ์์๋ ์๋นํ ์ค์ํ ๋ถ๋ถ์ ๋๋ค.
workflow_dispatch๋ฅผ ์ด์ฉํ github action ์๋ ํธ๋ฆฌ๊ฑฐ
1 min read
์ด๋ฒ ์ฃผ๋ง์ ์ง ์๋ฒ์ ์๋ ์๋ํ ๋ก์ง ์ค ์ผ๋ถ๋ฅผ github action์ผ๋ก ์ด๋ํ๋ ์์ ์ ์งํํ์ต๋๋ค. ์ด์ฐจํผ git pro๋ฅผ ์ฌ์ฉํ๊ณ ์์ด์, ์ 3000๋ถ์ private repo์์ ์ฌ์ฉํ ์ ์๋ github action์ ์๊ฐ์ด ์๊ธฐ๋ํ๊ณ , ์๋ฌด๋๋ ํด๋ผ์ฐ๋ ํ๊ฒฝ์ด๋ค๋ณด๋, ํผ์จ๊บผ์ง ๋ฑ์ผ๋ก ์ธํด cron์ด ๋์ํ์ง ์์ ๊ฐ๋ฅ์ฑ์ ์ค์ด๊ธฐ ์ํด์ ์ด๋์ ๊ฒฐ์ฌํ์ฃ .
Jekyll์ Utterances, Giscus ๋๊ธ ์ ์ฉํ๊ธฐ
2 min read
์ต๊ทผ์ ๋ธ๋ก๊ทธ๋ฅผ blogger์์ github page๋ก ์ฎ๊ธฐ๋ฉด์ ๋๊ธ์ ์์ฑํ ์ ์๋ ํ๊ฒฝ์ด ์ฌ๋ผ์ก์ต๋๋ค. Jekyll์์ ๋ง์ด๋ค ์ฌ์ฉํ์๋ Disqus์ ๊ฒฝ์ฐ ๊ฐ์ธ์ ์ผ๋ก ๊ด๊ณ ์ด์๋๋ฌธ์ ์ข์ํ์ง ์๊ธฐ ๋๋ฌธ์ ๋๊ธ ์๋น์ค๋ฅผ ๋ค์ ์ฐพ์๋ดค๊ณ , github issue ๊ธฐ๋ฐ์ ๋๊ธ ์๋น์ค์ธ Utterances๋ฅผ ์๊ฒ ๋์์ต๋๋ค.
How to add custom header in ZAP and zap-cli
3 min read
The zap-cli is a tool that helps make ZAP easy to use on the command line. From simple scanning to CI/CD Pipeline, itโs a tool thatโs used everywhere. Unlike other scanners, it does not support custom headers.
golang ์ดํ๋ฆฌ์ผ์ด์ self update ์ ์ฉํ๊ธฐ(github latest version ๊ธฐ๋ฐ)
2 min read
๋ฉ๋ชจ ์ฐจ์์์ ์์ฑํฉ๋๋ค.
Go net/http์์ tls: no renegotiation error ํด๊ฒฐํ๊ธฐ
~1 min read
์๋ฌ์ ๋ด์ฉ์ ์์ฝํ๋ฉด ์๋์ ๊ฐ์ต๋๋ค. renegoriation ๋ฏธ์ค์ ์ผ๋ก ์ธํ ๋ฐ์์ด๋ค์.
Write Metasploit Module in Golang
2 min read
Metaploit์์ 2018๋ 12์๋ถํฐ golang module ์ง์์ด ์์๋์์ต๋๋ค. ์ ๋ ์ ๋ชจ๋ฅด๊ณ ์๋ค๊ฐ ์ต๊ทผ์์์ผ ์๊ฒ ๋์๋ค์.
theme-color๋ฅผ ์ด์ฉํ์ฌ ๋ชจ๋ฐ์ผ ํฌ๋กฌ ๋ธ๋ผ์ฐ์ ์์ toolbar ์์ญ ์์ ๋ฐ๊พธ๊ธฐ
~1 min read
๋ชจ๋ฐ์ผ ๊ธฐ๊ธฐ๋ก ๊ฒ์ํ๋ค ๋ณด๋ฉด ๊ฐ๋ ์๋จ์ ํด๋ฐ ์์ญ(์ฃผ์ํ์์ค์ด ํฌํจ๋..)์ ์์์ด ๋ค๋ฅธ ์ฌ์ดํธ๋ค์ด ์์์ต๋๋ค. ์ฌ์ดํธ๋ณ๋ก ๋ค ๋ค๋ฅธ ์์์ ์ฌ์ฉํ๊ณ ์์ด์ ๋ถ๋ช HTML/CSS/JS ์ค ํ๋ ์ผ๊บผ๋ผ ์๊ฐํ์๋๋ฐ, @yozora770 ์ ๋์์ผ๋ก ์๊ฒ๋์ด ๊ฐ๋ณ๊ฒ ๋ธ๋ก๊ทธ ๊ธ๋ก ์์ฑํด๋ด ๋๋ค.
Blogger์์ ์ฌ๊ทํจ์๋ฅผ ํตํด ์ ์ฒด ๊ธ ๋ฆฌ์คํธ ์ป์ด์ค๊ธฐ(for Archive page , JSONP API)
1 min read
์ด์ ๋ฐค๋ถํฐ ๊ธ ์๋ฐ์์ Archive ํ์ด์ง๋ฅผ ๋ง๋ค์์ต๋๋ค. https://www.hahwul.com/p/blog-archive.html
Cookie and SameSite
5 min read
์ฌ 2์๋ถํฐ Chrome ๋ธ๋ผ์ฐ์ ์์ SameSite=Lax๊ฐ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ๋ณ๊ฒฝ๋ฉ๋๋ค.
Terminal์์์ golang ๊ฐ๋ฐ์ ์ํ vim-go ์ธํ ํ๊ธฐ
1 min read
TL;DR
One-line script
Update golang 1.10 to 1.13 with update-golang(subfinder install error fix)
~1 min read
SubFinder ์ค์น ์ค undefined: os.UserHomeDir
, undefined: strings.ReplaceAll
์๋ฌ๊ฐ ๋ฐ์ํด์ ํด๊ฒฐ ๋ฐฉ๋ฒ ์ ๋ฆฌํด๋ก๋๋ค. ์๋ง.. ํ์ฌ ์ผ๋ถ ํผ์จ์์ ์ค์น ์ ์์ ๊ฐ์ ์๋ฌ๊ฐ ๋ฐ์ํ ํ
๋ฐ์, ์์ธ์ golang ์ ๋ฒ์ ๋ฌธ์ ์
๋๋ค.
Fixing a pip3 crash error after a Mac Catalina update
2 min read
Problem
I have fatal error when running pip3 after Mac Catalina update in my mac. This made it impossible to install, update, or delete using pip.
Check logic vulnerability point using GET/HEAD in Ruby on Rails
3 min read
์ต๊ทผ์ Github OAuth flow bypass ์ทจ์ฝ์ ์ด ๊ณต๊ฐ๋์์ต๋๋ค. ์ด ์ทจ์ฝ์ ์ Rails ์ฑ์ ํน์ฑ์ ์ด์ฉํ ์ทจ์ฝ์ ์ด๊ณ , Github๋ง์ ๋ฌธ์ ๊ฐ ์๋๊ณ ํจ์น๋ก ๋ชจ๋ Rails ์ฑ์ ๋ณดํธํ ์๋ ์์ต๋๋ค. Today, I going to review one vulnerability that needs to be checked in the Rails App environment through the Github OAuth flow bypass vulnerability. (B recently shared something interesting to me.)
[๋ฃจ๋น์์ Go๋ก ๋์ด๊ฐ๊ธฐ] Revel์ ์ด์ฉํด MVC ์น ๊ตฌ์ฑํ๊ธฐ
3 min read
Ruby์์ golang์ผ๋ก ์ฃผ๋ ฅ ์ธ์ด๋ฅผ ๋ฐ๊ฟ๊ฐ๋ ์ค์ ๋๋ค. ์ด ๊ณผ์ ์์ ๊ฐ์ฅ ๋ฌธ์ ๊ฐ ๋๋ ๋ถ๋ถ์ด ์น์ฑ์ด์์ต๋๋ค. ์ด๋ฏธ Rails์ ์ต์ํด์งํฐ๋ผ ๋์์ด ๋ ๋งํ ์ฌ๋ฌ ํ๋ ์์ํฌ๋ฅผ ์ฐพ์๋ดค๊ณ , 2๊ฐ์ง ์๊ฐ์ด ๋์์ต๋๋ค.
Mac ์ ๊ทธ๋ ์ด๋ ํ xcrun: error: invalid active developer path ์๋ฌ ํด๊ฒฐํ๊ธฐ
~1 min read
MacOS ์
๊ทธ๋ ์ด๋ ์ ์ด๊น์์ด ๋ฐ์ํ๋ ๋ฌธ์ ๊ฐ ํ๋ ์์ต๋๋ค ๐ซ ๋ฐ๋ก ๊ฐ๋ฐ ๊ด๋ จ ๋๊ตฌ ์ฌ์ฉ ์ ๋๋ค์๊ฐ ๋ฐ์ํ๋ missing xcrun
์๋ฌ์ธ๋ฐ์.
The scratchpad is deprecated from Firefox 72 version(์คํฌ๋์นํจ๋ ์ค๋จโฆ)
~1 min read
์ด์ ํ์ด์ดํญ์ค ์คํฌ๋์น ํจ๋๋ฅผ ์ฐ๋ ค๊ณ ๋ณด๋๋ณด๋.. ์ถฉ๊ฒฉ์ ์ธ ๋ฉ์์ง๋ฅผ ๋ฐ๊ฒฌํ์ต๋๋ค.
Golang ์ผ๋ก ๋ง๋ ์น ์ดํ๋ฆฌ์ผ์ด์ Heroku์ ๋ฐฐํฌํ๊ธฐ
1 min read
์์ฆ ๊ณต๋ถ๋ํ ๊ฒธ golang ์ผ๋ก ๋์ ๋์ ๋ง๋ค์ด๋ณด๊ณ ์๋๊ฒ ์์ต๋๋ค. ๊ทธ ์ค ์ผ๋ถ๋ ์น ํ๊ฒฝ์ผ๋ก ๊ตฌ์ฑํ๊ณ heroku์ ๋์ธ ์๊ฐ์ธ๋ฐ, ๋ฃจ๋น์ฒ๋ผ ์ฌ์ ์ ์ธํ ์ด ํ์ํ ๋ถ๋ถ๋ค์ด ์์ด์ ๋ด์ฉ ์ ๋ฆฌํด๋ก๋๋ค.
How to Remove Unused JS/CSS with Browser developers tool
~1 min read
Today, I will briefly talk about how to identify unused JS and CSS on the web page. If you take advantage of this, you can reduce unnecessary code, so you can create faster web services.
Rails์์ HTTP Basic Auth ์ ์ฉํ๊ธฐ
~1 min read
HTTP Basic Auth๋ HTTP์์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ฌ์ฉ๋๋ ์ธ์ฆ ๋ฐฉ์์ ๋๋ค. ID/PW๋ฅผ Base64๋ก ์ธ์ฝ๋ฉํด์ Auth ํค๋์ ๋ฃ์ด ์๋ฒ๊ฐ ์ ๋ขฐ๋ ์ฌ์ฉ์์ธ์ง ๊ฒ์ฆํ๋ ๋ฐฉ์์ผ๋ก ๋์ํฉ๋๋ค.
HTTP Request(ZAP, Burp) Parsing on Ruby code
1 min read
XSpear ๊ด๋ จํด์ ์ด๋ฐ ๊ฑด์์ฌํญ์ด ํ๋ ์์์ต๋๋ค. Burp, ZAP ๋ฑ์์ ์ฌ์ฉํ๋ ํจํท ๋ฐ์ดํฐ๋ฅผ ํ์ผ๋ก ์ ์ฅํ ํ ์ต์ ์ ์ฃผ์ด ์ฝ์ผ๋ฉด ์๋์ผ๋ก URL, Header ๋ฑ์ ํ์ฑํด์ ์ฌ์ฉํ๋ ํํ๋ฅผ ๋ง์ํ์ ๊ฒ ๊ฐ์ต๋๋ค.(๋ง์น sqlmap์ ๊ทธ๊ฒ ์ฒ๋ผ)
Displaying cli base table at ruby application on terminal
~1 min read
I Simply write it (for note). It is easy to develop using terminal-table.
Ruby on Rails Double-Tap ์ทจ์ฝ์ (CVE-2019-5418, CVE-2019-5420)
4 min read
๊ฐ๋ง์ ์ทจ์ฝ์ ๋ฆฌ๋ทฐํด๋ด ๋๋ค. ์ฌ ๋ด์ ์ ๋ฆฌํ๋ฒํ๊ณ ์ต๊ทผ์ ์ถ๊ฐ๋ก ์ ๋ฆฌํ๋๊ฑฐ๋ผ ๋จธ๋ฆฌ์์์ ๋ ์๊ฐ๊ธฐ ์ ์ ๋ธ๋ก๊ทธ ๊ธ๋ก ๋จ๊ฒจ๋ณด์์. ์ฐ์ ์ฌ ํด 3์ ์ ๋์ ๋ ์ผ์ฆ ๊ด๋ จ ์ทจ์ฝ์ ์ด 3๊ฐ์ ๋ ์ฌ๋ผ์์์ต๋๋ค. CVE-2019-5418 ~ 5420 ์ด์์ธ๋ฐ, ๊ฒฐ๊ณผ์ ์ผ๋ก Rails์์ ์์คํ ํ์ผ์ ์ฝ๊ณ , ๋ช ๋ น ์คํ๊น์ง ๊ฐ๋ฅํ 3๊ฐ์ง์์ต๋๋ค.
Finding in-page scripts & map files with javascript (very simple..)
~1 min read
๋ณ ์ฝ๋๋ ์๋์ง๋ง ๋ง๋ค์ด ๋๊ณ ์ฐ๋ฉด ํธํ๋.. ํ์ด์ง์ ์๋ ์ธ๋ถ ์คํฌ๋ฆฝํธ ๋งํฌ์ map ํ์ผ ๋งํฌ ๋ณผ ์ ์์ต๋๋ค. (map์ ๊ทธ๋ฅ ๋ฌด์กฐ๊ฑด ๋ํ๋๊ฒ..)
Rails์์ routing parameters์ ๋์ผํ ์ด๋ฆ์ ํ๋ผ๋ฏธํฐ ์ฒ๋ฆฌํ๊ธฐ
1 min read
Rails์์ ํ๋ผ๋ฏธํฐ ๊ฐ์ params๋ฅผ ํตํด ๋ฐ์์ต๋๋ค. ์ด ๊ณผ์ ์ค ๋ ์ผ์ฆ์์ ๊ธฐ๋ณธ์ผ๋ก ์ค์ ํ ๊ฐ์ด ์์ด ์ฝ์ด์ค์ง ๋ชปํ๋ ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค. ๋ฐ๋ก ์ด๋ฐ ์ผ์ด์ค์ ๋๋ค.
Github Dark Theme with โstylusโ add-on
~1 min read
How to resolve duplicate mail transmission in Rails ActionMailer(์ค๋ณต ๋ฉ์ผ ์ ์ก ํด๊ฒฐ ๋ฐฉ๋ฒ)
~1 min read
Rails์์ ActionMailer๋ฅผ ์ด์ฉํ๋ฉด ์ฝ๊ฒ ๋ฉ์ผ ์ก/์์ ๋ก์ง์ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค. ๊ทธ๋์ ActionMailer๋ก ์ฌ๋ฌ๊ฐ์ง ๊ตฌ์ฑํด์ ์ฌ์ฉํ๊ณ ์๋๋ฐ, ํน์ ์ดํ๋ฆฌ์ผ์ด์ ์์ ๋ฉ์ผ์ด ์ค๋ณต์ผ๋ก ๋ฐ์ก๋๋ ์ด์๊ฐ ์์๋๋ฐ์, ์ฐพ์๋ณด๋ ์ ํํ ์ด์ ๋ ๋ชจ๋ฅด๊ฒ ์ง๋ง ์์ฒด์ ์ธ ๋ฒ๊ทธ๋ก ๋ณด์ ๋๋ค. (์ค๋ณต ์ฝ์ด ์ผ์ด๋๋ ๊ฒ ๊ฐ์๋ฐโฆ)
Send Gmail using Rails ActionMailer Class (ActionMailer๋ฅผ ์ด์ฉํ์ฌ Gmail ์ ์กํ๊ธฐ)
2 min read
Rails๋ ๊ธฐ๋ณธ์ ์ผ๋ก Mail ์ก/์์ ์ด ๊ฐ๋ฅํ ๊ฐ์ฒด๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค. ๋ณดํต ์น์์ ๋ง์ด ์ฌ์ฉํ๋ ๊ธฐ๋ฅ์ด๊ธฐ ๋๋ฌธ์ ๋ฏธ๋ฆฌ ๊ตฌํ๋์ด ์๋ ์ํ์ธ๋ฐ์, ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์์กด์ฑ์ด๋ ๋ณต์กํ ์ค์ ์์ด ๊ฐ๋จํ ์ฝ๋๋ก ๋ฉ์ผ ์ฒ๋ฆฌ๊ฐ ๊ฐ๋ฅํฉ๋๋ค.
Rails App ์์ ์ ํน์ ์ฝ๋ ์คํํ๊ธฐ(How to startup code on Ruby on Rails with initialize)
1 min read
Rails ์ฑ ๊ตฌ๋ ์ ํน์ ์์ ์ด๋ ๋ก์ง์ ์ํํ๊ณ ์ถ์ ๋ ์ด๋ป๊ฒ ํ ๊น? ๊ณ ๋ฏผ์ ์์ ์ ํ์๋๋ฐ, ๊ทธ๋ initialize๋ก ํด๊ฒฐํ๋ ๊ธฐ์ต์ด ์์ต๋๋ค. ๊ฐ๋ง์ ๋์ผํ ๊ณ ๋ฏผ์ ์ ๊นํ๊ฒ ๋ฌ์๋๋ฐ, ๊ฒธ์ฌ๊ฒธ์ฌ ๊ธ๋ก ์ ๋ฆฌํด๋ก๋๋ค.
Rails crono๋ฅผ ์ด์ฉํ์ฌ ์ค์ผ์ค๋งํ๊ธฐ(Scheduling with crono on Rails)
2 min read
๋ณดํต ์ ๋์ค ๊ธฐ๋ฐ PC์์ ์ค์ผ์ค๋ง์ ์ํด crontab ๋๋ at๋ฅผ ์ฌ์ฉํ๊ณ , ์๋์ฐ์์ ์๋น์ค์ ๋ฑ๋กํ๋์์ผ๋ก ์ฌ์ฉํฉ๋๋ค. ์ด๋ฅผ ์ํด์ ์์คํ ์์ crontab ๊ฐ์ ๋๊ตฌ ์ฌ์ฉ์ด ๊ฐ๋ฅํด์ผํ๋ฉฐ, PaaS ์ด์์ ์ถ์ํ๊ฐ ์ด๋ฃจ์ด์ง ํ๋ซํผ์์ ์ฌ์ฉํ๊ธฐ ์ด๋ ค์ด ๊ฒฝ์ฐ๊ฐ ๋๋ค์์ ๋๋ค.
Rails์์ kaminari๋ฅผ ์ด์ฉํ์ฌ Pagination ๊ตฌํํ๊ธฐ(How to make pagination on rails(with kaminari)
1 min read
Rails์์ ํ์ด์ง(Pagination)๋ฅผ ์ฝ๊ฒ ๊ตฌํํ ์ ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ kaminari, will_paginate ๋ฑ์ด ์์ต๋๋ค. ๊ทธ์ค์์ ์ค๋์ kaminari๋ฅผ ๊ฐ์ง๊ณ ํ์ด์ง๋ฅผ ๋ง๋๋ ๋ด์ฉ์ผ๋ก ๊ธ ์์ฑํด๋ด ๋๋ค.
Rails์์ SuckerPunch๋ฅผ ์ด์ฉํ์ฌ ๋น๋๊ธฐ ์์ ์ฒ๋ฆฌํ๊ธฐ
1 min read
Rails ๊ตฌ๋์ค์ ์ฐ๋ ๋ ์ฒ๋ฆฌ ์ ์๋์ฒ๋ผ ์๋ ๋ฃจ๋น ๊ตฌ๋ฌธ์ธ Thread๋ก ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
๋ฃจ๋น์์ string-similarity๋ก ๋ฌธ์์ด ํผ์ผํธ๋ก ๋น๊ตํ๊ธฐ(Comparing string-similarity percent in Ruby)
~1 min read
ํ ๋๋ฌ? ์ ๋์ ์ ๋ฃจ๋น ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ค์ ๊ด์ฐฎ์๊ฑฐ ํ๋ ๋ด๋๊ฒ ์์๋๋ฐ, ์ด์ ์์ผ ๊ธ๋ก ์์ฑํ๋ค์. ๋ฌธ์์ด ๋น๊ต ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ธ๋ฐ, ๋งค์นญ๋ฅ ์ ํผ์ผํธ๋ก ๋ฝ์ ์ ์์ต๋๋ค. ํ์ฉ์ฒ๊ฐ ๋ง์๋ฏํ์ฌ ๋ฉ๋ชจํด๋ก๋๋ค.
[ Rails on Heroku ] ์์ฃผ ์ฌ์ฉํ๋ heroku ๋ช ๋ น์ด ์ ๋ฆฌ
~1 min read
[ Rails on Heroku ] ์์ฃผ ์ฌ์ฉํ๋ heroku ๋ช ๋ น์ด ์ ๋ฆฌ (https://www.hahwul.com/2019/04/what-is-heroku.html) [ Rails on Heroku ] ๊ฐ๋จํ ๋ฃจ๋น ๋ ์ผ์ฆ ์ฑ ๊ตฌ์ฑ ๋ฐ Heroku์ ๋ฐฐํฌํ๊ธฐ (https://www.hahwul.com/2019/04/ruby-on-rails-distribute-heroku.html) [ Rails on Heroku ] Heroku๋? ๋น ๋ฅด๊ฒ ํ๊ฒฝ ๊ตฌ์ฑํ๊ธฐ (https://www.hahwul.com/2019/04/favorite-command-heroku.html)
[ Rails on Heroku ] ๊ฐ๋จํ ๋ฃจ๋น ๋ ์ผ์ฆ ์ฑ ๊ตฌ์ฑ ๋ฐ Heroku์ ๋ฐฐํฌํ๊ธฐ
2 min read
[ Rails on Heroku ] ์์ฃผ ์ฌ์ฉํ๋ heroku ๋ช ๋ น์ด ์ ๋ฆฌ (https://www.hahwul.com/2019/04/what-is-heroku.html) [ Rails on Heroku ] ๊ฐ๋จํ ๋ฃจ๋น ๋ ์ผ์ฆ ์ฑ ๊ตฌ์ฑ ๋ฐ Heroku์ ๋ฐฐํฌํ๊ธฐ (https://www.hahwul.com/2019/04/ruby-on-rails-distribute-heroku.html) [ Rails on Heroku ] Heroku๋? ๋น ๋ฅด๊ฒ ํ๊ฒฝ ๊ตฌ์ฑํ๊ธฐ (https://www.hahwul.com/2019/04/favorite-command-heroku.html)
[ Rails on Heroku ] Heroku๋? ๋น ๋ฅด๊ฒ ํ๊ฒฝ ๊ตฌ์ฑํ๊ธฐ
1 min read
[ Rails on Heroku ] ์์ฃผ ์ฌ์ฉํ๋ heroku ๋ช ๋ น์ด ์ ๋ฆฌ (https://www.hahwul.com/2019/04/what-is-heroku.html) [ Rails on Heroku ] ๊ฐ๋จํ ๋ฃจ๋น ๋ ์ผ์ฆ ์ฑ ๊ตฌ์ฑ ๋ฐ Heroku์ ๋ฐฐํฌํ๊ธฐ (https://www.hahwul.com/2019/04/ruby-on-rails-distribute-heroku.html) [ Rails on Heroku ] Heroku๋? ๋น ๋ฅด๊ฒ ํ๊ฒฝ ๊ตฌ์ฑํ๊ธฐ (https://www.hahwul.com/2019/04/favorite-command-heroku.html)
Metasploit์์ ์ปค์คํ ๋ฐฐ๋ ๋ง๋ค๊ธฐ
~1 min read
๋ฉํ์คํ๋ก์์์ ์ปค์คํ ๋ฐฐ๋๋ฅผ ๋ง๋๋ 2๊ฐ์ง ๋ฐฉ๋ฒ์ ๋๋ค.
Get cookie value in Javascript function
~1 min read
Javascript ์์ ์ฟ ํค ๊ฐ ๊ฐ์ ธ์ค๋ ํจ์์ ๋๋ค. ์์ฃผ์ฐ๋๋ฐ, ๋ฐ๋ก ์ ๋ฆฌ ์ํด๋๋ ์ฝ์งํ๋ ๊ฒ ๊ฐ๋ค์.. ๋ฉ๋ชจ ์ฐจ ๊ธ ์์ฑํฉ๋๋ค. ์ฝ๋์ค๋ํ!
Swift codeโs Access Control(์ค์ํํธ์ ์ ๊ทผ์ ์ด)
1 min read
iOS ๊ฐ๋ฐํ๋ค๊ฐ ์๊พธ ๊น๋จน์ด์ ๊ฒ์ํ๊ธธ๋ ๋ฉ๋ชจํด๋ก๋๋ค. Swift์์ ์ฝ๋์ ๋ํ ์ ๊ทผ ์ ์ด๋ฅผ open, public, internal, file-private, private๋ก ์ง์ ํ๊ณ ์์ต๋๋ค. ๋ค๋ฅธ ์ธ์ด๋ค์์ ์ฌ์ฉํ๋ ๊ฒ๊ณผ ๊ฑฐ์ ์ ์ฌํ์ง๋ง, ๋ช๊ฐ ๋ค๋ฅธ ๋ถ๋ถ๋ค์ด ์๊ธฐ๋ ํฉ๋๋ค.
iOS App์์ HTTP ํต์ ํ์ฉํ๊ธฐ(+App Trasport Security๋?)
~1 min read
iOS ์ฑ ๊ฐ๋ฐ ์ ํ ์คํธ๋ฅผ ์ํด http ์๋ฒ์ ํต์ ํ๋ ค๊ณ ํ๋ฉด ๊ตฌ๋์ค์ ์ด๋ฐ ์๋ฌ๊ฐ ๋ฐ์ํฉ๋๋ค.
Blogger์ ๋ชฉ์ฐจ ์๋์ผ๋ก ์ถ๊ฐํ๊ธฐ(Table of Contents on blogger)
1 min read
์ ๋ธ๋ก๊ทธ ๊ธ์ ์์ง๊น์ง ๋ชฉ์ฐจ ๊ฐ๋ ์ด ์์๋๋ฐ, ์๋ฌด๋๋ ์๋๊ฒ ์ข์ ๊ฒ ๊ฐ์ ์๋ฒฝ์ ๋ถ๋ด๋ถ๋ด ๋ง๋ค์ด๋ดค์ต๋๋ค.
Twitter Card on Google Blogger(๋ธ๋ก๊ฑฐ์ ํธ์ํฐ ์นด๋ ์ ์ฉํ๊ธฐ)
1 min read
ํธ์ํฐ ๊ณต์ ํ๋ฉด์ ์์ํ๋๊ฒ ํ๋ ์๋๋ฐ, ํธ์ํฐ์์ ogํ๊ทธ๊ฐ ๋จน์ง ์์ต๋๋ค..
How to Re-Size Image in Blogger
~1 min read
์ด๊ฑฐ ์ด์ ๊ธ(video resize) ์์ฑํ๋ฉด์ ๋ธ๋ก๊ทธ ๋ด ์ด๋ฏธ์ง๋ ์ต๋ ํฌ๊ธฐ๋ก ์กฐ์ ํ๋๋ฐ, ๋ฉ๋ชจํ ๊ฒธ ๋จ๊ฒจ๋ก๋๋ค. google blogger์์ ์ฒจ๋ถ/์ฝ์ ํ ์ด๋ฏธ์ง๋ ๋ณ๋ก์ class,id๋ฅผ ์ฃผ์ง ์๊ธฐ ๋๋ฌธ์ .post-body(๋ณธ๋ฌธ)์ ์ง์ css๋ฅผ ์ง์ ํด์ฃผ์ด์ผํฉ๋๋ค. ์ด์ฐจํผ .post-body์์ img ํ๊ทธ๊ฐ ์ฐ์ด๋๊ฑด, ์ฒจ๋ถํ ์ด๋ฏธ์ง๊ฐ ์ ๋ถ์ธ์ง๋ผ, ์ต๋ ํฌ๊ธฐ ๋ฐ ํ ๋๋ฆฌ๋ง ์ง์ ํ์์ต๋๋ค.
How to Re-Size Video in Blogger Posts
~1 min read
Problem
๊ตฌ๊ธ ๋ธ๋ก๊ฑฐ์์ ๊ธ ์์ฑ์ค์ youtube ์์์ ์ฝ์ ํ๋ ๊ธฐ๋ฅ์ด ์์ต๋๋ค. ์ด ๊ธฐ๋ฅ์ ์ฌ์ฉํด์ ์์์ ์ฝ์ ํ๊ฒ ๋๋ฉด ์๋์ ๊ฐ์ด ๊ต์ฅํ ์์ ํ๋ฉด์ผ๋ก ๋ํ๋์ง๋๋ค(์ด๊ฒ ๊ธฐ๋ณธ ํฌ๊ธฐ..) ๊ทธ๋์ ๋ณดํต youtube ํ์ด์ง์์ ๊ณต์ (iframe ํ๊ทธ) ํ์ฌ ์ฝ๋ ์ฝ์ ํ๊ณ ์ง์ ํฌ๊ธฐ ์กฐ์ ์ ํ์๋๋ฐ,์ฝ๊ฐ์ ํธ๋ฆญ์ผ๋ก ์์ด ์ข ๋๊ฐ๊ฒ ๋ฆฌ์ฌ์ด์ฆํ ์ ์์ต๋๋ค.
editor.js - Simple Markdown Javascript Library
~1 min read
ํ๋ฃจํจ๋(haroopad) ์๊ธฐ์ ์ google blogger์ markdown ์ด๋ป๊ฒ ์ ์ฉํ ๊น ๊ณ ๋ฏผ์ด ๋ง์์๋๋ฐ์, ๊ทธ๋ฌ๋ฉด์ ์ฐพ์๋ณธ๊ฒ๋ค ์ค ํ๋ ๊ฐ๋ตํ๊ฒ ์๊ฐํด๋๋ฆด๊น ํฉ๋๋ค. editor.js๋ ์๋ฐ์คํฌ๋ฆฝํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ๋ณ๋ค๋ฅธ ์ฝ๋ ์์ด ์น์์์ ๋งํฌ๋ค์ด ์๋ํฐ๋ฅผ ๊ตฌํํ ์ ์์ต๋๋ค.
HarooPad - markdown ์๋ํฐ(to html view, to plain html)
1 min read
markdown์ด ํธํ์ง๋ผ, ๋ฉ๋ชจ๋ ๋ธ๋ก๊น ์ด์ ์์ฑ๋ ๊ธฐ๋ณธ์ ์ผ๋ก markdown์ผ๋ก ์์ฑํฉ๋๋ค. ๋ค๋ง ์ด ๊ณผ์ ์ด ์ ๋ฌธํ๋ ์๋ํฐ๋ ์๋๊ณ ๊ฐ๋ฒผ์ด ์ฝ๋ฉ์ฉ์ผ๋ก ์ฐ๋ geany์์ ๊ทธ๋ฅ ์์ฑ๋ง ํด์ ์ฌ์ฉํ์ต๋๋ค.
Rails app์์ public ํ์ ํ์ผ์ ์ฝ์ด์ค์ง ๋ชปํ ๋(Rails not serving static files in public dir)
~1 min read
Rails App๋ด /public์ ๋ ์ผ์ฆ ๋์๊ณผ ๋ณ๊ฐ๋ก static ํ html,css,js ๋ฑ์ ํํํ ์ ์๋ ๋๋ ํ ๋ฆฌ์ ๋๋ค.
Task manager app with Ruby on Rails(ํ ์ผ ๊ด๋ฆฌ ๋๊ตฌ ๋ง๋ค๊ธฐ)
4 min read
ํ ์ผ ๊ด๋ฆฌ ๋๊ตฌ? ๊ฐ ํ์ํด์ ๋ญ ์ธ๊น ๊ณ ๋ฏผํ๋ค ๊ฑ rails๋ก ๋ง๋ค๊ณ ์๋๋ฐ, ๋ณ๊ฑด ์๋์ง๋ง ๊ทธ๋ฅ ๊ธ๋ก ๋จ๊ฒจ๋ก๋๋ค.
IntelliJ(RubyMine) ์๋ํฐ ์์ ์ด ๋ถํธํ ๋ฌธ์ (IdeaVim Plugin)
~1 min read
์ํด ์ฒซ ํฌ์คํ ์ ๊ฐ๋ณ๊ฒ ํธ๋ฌ๋ธ์ํ ์ผ๋ก ์์ํด๋ด ๋๋ค. (์ฐ์ด์ธ๋ฐ ์์ด๋ฆฌ ์ ์ ์์๊น์โฆ)
ZAP Java ๋ฒ์ ๋ฐ๊ฟ์น๊ธฐ
1 min read
ZAP HUD ํ ์คํธํ๋ค๊ณ alpha ๋ฒ์ ์ฌ๋ ธ์๋๋ฐ, macOS ์์ ์ธ์ฑ ๋ธ๋ผ์ฐ์ ๋ก ํน์ ์ฌ์ดํธ ์ ๊ทผ ์ SSL ๊ด๋ จ ์๋ฌ๊ฐ ๋ฐ์ํด์ ์ฝ์งํ๋๊ฑฐ ์ ๋ฆฌํด๋ก๋๋ค. Linux๋ ๋ณ ๋ฌธ์ ์๋ ๊ฑธ๋ก ๋ณด์ macOS์ ์ฐ๊ด๋ ๋ฌธ์ ์ธ ๊ฒ ๊ฐ์ต๋๋ค.
Ruby gem ๋ง๋ค๊ธฐ(Make ruby gem)
1 min read
์์ฆ ์ข ์ ์ ์์ด ์ง๋ด๋ค๋ณด๋ ๋ฒ์จ 10์์ด๋ค์.. ์จ๋์ ๊ธ๋ ๋ง์นจ ์๋ ์ํ์ธ์ง๋ผ ์ด๋ฒ์๋ ๊ฐ๋ตํ ๊ธ ์์ฑํ ๊น ํฉ๋๋ค. (์ 10์์ ์ฒซ๊ธ์ด ๋ฉ๋ชจ๊ธ์ด๋ผ๋โฆ) ๋ง์ ruby application ๋ค์ด ๋จ์ํ ์ฝ๋๋ฅผ clone ํด์ ์ฐ๋ ํํ๋ณด๋จ gem์ผ๋ก ํจํค์งํ์ฌ ๋ฐฐํฌํ๊ณ ์ฌ์ฉํ๋ ํํ๋ฅผ ๊ฐ์ง๋๋ค.
Ruby IDB(iOS App ๋ณด์๋ถ์ ๋๊ตฌ) Select App ์ ์ฃฝ๋ ํ์ ํด๊ฒฐ ๋ฐฉ๋ฒ(iOS10, Error downloading file)
1 min read
์์ ์ idb๋ผ๋ iOS ๋ถ์๋๊ตฌ๋ฅผ ๊ณต์ ๋๋ฆฐ์ ์ด ์์ต๋๋ค. ์ต๊ทผ์ ํ ์คํธ ์ Select App ์ ์ฑ ๋ฆฌ์คํธ๋ฅผ ๊ฐ์ ธ์ค๋ ๊ณผ์ ์์ ์ฃฝ๋ ํ์์ด ์์๋๋ฐ์, ์์ ์ ๊ฐ๊น์ด๊ณณ์์ ๋์ผํ ๋ฌธ์ ๊ฐ ์์๊ณ ํด๊ฒฐ๋ฐฉ๋ฒ ๊ณต์ ํด์ฃผ์ จ๋๊ฒ ๊ธฐ์ต๋์ ์ ๋ํ ์ฝ๊ฒ ํด๊ฒฐํ๋ค์.
Scala์ underscore(_)๋?
1 min read
์์ฆ ์๊พธ ์ค์นผ๋ผ๋ ๋ถ๋ซํ๊ฒ ๋๋ค์. ์จ๋ณธ์ ๋ ์๋ ์ธ์ด์ง๋ง ๋ค๋ฅธ ์ธ์ด๋ ๋น์ทํ๊ฑฐ๋(Js+Java๋๋..) ํ๊ณ ๋ดค๋๋ฐ, ์ด๋ง๋ฌด์ํ๊ฒ ๊ฐ๋ ์ฑ์ ๋จ์ด๋จ๋ฆฌ๋ ๋ฌด์ธ๊ฐ๋ฅผ ๋ฐ๊ฒฌํ์์ต๋๋ค.
Consul์ ๋ํด ์์๋ณด์! (Service Mesh)
3 min read
์ต๊ทผ ์ฌ๋ฏธ์๋ ํ๋ก์ ํธ๋ฅผ ํ๊ณ ์๋๋ฐ, Health cheak, Service discovery ์ฉ๋๋ก Consul์ ์จ๋ณด๊ฒ ๋์๊ณ ๊ธ๋ก ์ฝ๊ฐ ์ ๋ฆฌํด๋ก๋๋ค. hashicorp์์ ๋ง๋ Consul, ๊ฑฐ๊ธฐ์ ์ง์ ํ DevOps ๊ด๋ จ ๋ด์ฉ ์ค Monitor์ ํด๋นํ๋ ๋ถ๋ถ์ ๋๋ค.
Git pull/push ์ Password ๋ฌผ์ด๋ณด์ง ์๋๋ก ์ค์ ํ๊ธฐ(credential.helper)
~1 min read
git์ ์ฐ๋ค๋ณด๋ฉด ๊ฐํน config ๋ฏธ์ค, ํ๊ฒฝ ๋ณ๊ฒฝ์ผ๋ก push/pull ๋ฑ ๊ธฐ๋ฅ ์คํ ์ ๊ณ์ ๊ณผ ํจ์ค์๋๋ฅผ ๋ฌผ์ด๋ณด๋ ๊ฒฝ์ฐ๊ฐ ๋ฐ์ํฉ๋๋ค.
Arachni ์ฝ๋๋จ์์ JSON Method ์ฌ์ฉํ๊ธฐ (undefined method `parseโ for Arachni::Element::JSON:Class ํด๊ฒฐ)
~1 min read
arachni ์ฝ๋ ์์ ์ค json ์ฌ์ฉ์ด ๋ถ๊ฐ๋ฅํ ๊ฒฝ์ฐ๊ฐ ์์์ต๋๋ค.
Ruby์์ Cookie ๊ฐ์ JSON ํฌ๋งท์ผ๋ก ๋ณํํ๊ธฐ(Cookie format to JSON with hash!)
~1 min read
ํ ์คํธํ๋ ์ฝ๋ ์๊ฐ๋์ ์ ๋ฆฌํด๋ก๋๋ค. Ruby์์ Cookie format์ ๋ฐ์ดํฐ๋ฅผ JSON์ผ๋ก ๋ณํํ๊ธฐ ์ํด์ hash๋ฅผ ์ด์ฉํด์ ๊ฐ๋จํ๊ฒ ๋ง๋ค ์ ์์ต๋๋ค.
Burp suite Extension ๊ฐ๋ฐ์ ๋ํ ์ด์ผ๊ธฐ(Story of Writing Burp suite extension)
5 min read
์ต๊ทผ์ Burp suite Extension ๋ง๋ค๊ณ ์๋ ๊ฒ ์ด๋์ ๋ ์์ฑ๋๋ค๋ณด๋ ๋ง๋ค๋ฉด์ ๋๊ผ๋์ ๋ค ์ข ๊ณต์ ํ ๊น ํฉ๋๋ค.
์ฐ๋ถํฌ 18.04 ์์ ์นด์นด์คํก ์ค์นํ๊ธฐ(Install kakaotalk on ubuntu 18.04)
1 min read
๐ํน์ด์ฌํญ WineTrick์์ ์ฌ์ฉํ๋ MPSetup.exe๊ฐ download.microsoft.com์์ ์ญ์ ๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ฐ์ ๋์์ผ๋ก ์ง์ ๋ฐ์์ ์ค์นํ๋ฉด ๋๊ธดํ๋๋ฐ, ์๋ฌด๋๋ ์ธ๋ถ์์ ๋ฐ๋ ํ์ผ์ด๋ ๋ฐ์ด๋ฌ์ค ํ ํ ๊ฒฐ๊ณผ๋ ์๋ณธ ์๋ค๋ฉด ์๋ณธ์ด๋ ๋น๊ต ํ ์ค์นํ์๋๊ฒ ์ข์๋ฏ ์ถ์ต๋๋ค..์๋ ๋๊ธ 2๊ฐ ์ฐธ๊ณ ํด์ฃผ์ธ์.
JRuby Burp suite ํ์ฅ ๊ธฐ๋ฅ ๊ฐ๋ฐ ์ค ๋ฐ์ํ ์๋ฌ(failed to coerce [Lburp.IHttpRequestResponse; to burp.IHttpRequestResponse)
~1 min read
๊ธ ์ข ์ฐ๊ณ ์๋ คํ๋๋ฐ, ์ก๋คํ ์ผ์ด ๊ผฌ์ฌ.. ๊ธ์ ํจ์คํ๊ณ ๊ฐ๋จํ๊ฒ ๋ฉ๋ชจ ํ๋๋ง ์์ฑํด๋ก๋๋ค.
Crystal - Ruby์ ๋น์ทํ๋ฉฐ ๋น ๋ฅธ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด
2 min read
์ฌ ์ด์ฏค์ Crystal์ด๋ ์ธ์ด์ ๋ํด ์ ๊น ์ด์ผ๊ธฐ๋ค์์ ์ด ์์ต๋๋ค. Ruby ๋ฌธ๋ฒ๊ณผ ์ ์ฌํ๋ค๋ ๊ฒ๋ง ๋ฃ๊ณ ๋๋์ด ์กฐ๊ธ ๋ ์ดํด๋ดค๋ค์. ์์ง ์ ์ ๋ฆด๋ฆฌ์ฆ๋ ์๋ ์ํ์ด๋ ์ด๋ค ์ธ์ด์ธ์ง ์ ๋๋ง ์ ๋ฆฌํด๋๊น ํฉ๋๋ค.
Git commit์ผ๋ก Issue ์ข ๋ฃํ๊ธฐ(Closing issue with commit)
~1 min read
Git์ ์ฝ๋ ๊ด๋ฆฌ ๋ฟ๋ง ์๋๋ผ Issue ๊ด๋ฆฌ์ ์์ด๋ ๊ต์ฅํ ํธ๋ฆฌํ ๋๊ตฌ์ ๋๋ค. ์ฝ๋ ๋ฐ์์ ์ํด Commit ํ๋ ๊ณผ์ ์์ ํน์ ํค์๋์ ์ด์๋ฒํธ๋ฅผ ๊ฐ์ด ๊ธฐ์ ํด์ฃผ๋ฉด ์๋์ผ๋ก Issue์ ๋ํ ์ฒ๋ฆฌ๋ ๊ฐ์ด ์งํ๋ฉ๋๋ค.
tracer์ ์ด์ฉํ ruby code tracing(์ฝ๋ ํ๋ฆ ๋ถ์)
~1 min read
๋ฃจ๋น ์ฝ๋ ๋ถ์์ ํ๋ ์ค ํ๋ฆ ์ถ์ (?), code tracing์ ํ๊ธฐ ์ํด ์์๋ณด๋ค๊ฐ ์ฐพ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ณต์ ๋๋ฆฝ๋๋ค.
Insomnia๋ก REST API๋ฅผ ์ฝ๊ฒ ํ ์คํธํ์ ๐
1 min read
์ค๋ ์๊ฐํด๋๋ฆด ํด์ REST API ํ ์คํ ํด์ธ Insomnia ์ ๋๋ค. postman๊ณผ ๊ฐ์ด API๋ฅผ ํ ์คํ ํ๊ธฐ ์ํ ์ฌ๋ฌ๊ฐ์ง ๊ธฐ๋ฅ๋ค์ ์ ๊ณตํ๊ณ ์๊ณ , ๊ฐ๋ฐ์๋ฟ๋ง ์๋๋ผ ๋ณด์์ชฝ์์๋ ์ถฉ๋ถํ ์์ฃผ ์ฌ์ฉํ ์ ์๋ ๋๊ตฌ๋ผ์ ๊ฐ๋จํ๊ฒ ๊ณต์ ๋๋ฆด๊น ํฉ๋๋ค.
Rubocop auto correct๋ฅผ ์ด์ฉํ์ฌ ์ฝ๊ฒ ์ฝ๋ ์คํ์ผ ๋ฐ๋ผ๊ฐ๊ธฐ
1 min read
์ต๊ทผ์ ๋ฃจ๋น ํ๋ก๊ทธ๋๋ฐ ์คํ์ผ ๊ฐ์ด๋ ๊ด๋ จํด์ ๊ธ์ ํ๋ ์์ฑํ์๋๋ฐ์, ์ด์ด์ ๊ทธ๋ ์ ๊น ์๊ฐ๋๋ ธ๋ rubocop์ ์ด์ฉํด์ ์ฝ๋๋ฅผ ๊ต์ ํ๋ ๊ณผ์ ์ ๋ํด ์ ๊น ์ด์ผ๊ธฐํ ๊น ํฉ๋๋ค.
Ruby Limit to number of thread in loop(๋ฐ๋ณต๋ฌธ์์ ์ ํ๋ ๊ฐฏ์์ ์ฐ๋ ๋ ๋๋ฆฌ๊ธฐ)
~1 min read
๋ณดํต ์ฐ๋ ๋๋ ๊ฐ๋ณ๋จ์์ ์ฒ๋ฆฌ ์ํ์ด๋ ๊ณ ์ฑ๋ฅ์ ์์ (์์ฒญ์ ์์ฒญ๋๊ฒ ์ ์กํ๋ค๋ ๋ฅ, ๋น ๋ฅธ ๊ณ์ฐ์ด ํ์ํ๋ค๋ ๋ฅ)์ด ํ์ํ ๋ ๋์ผํ ์ฝ๋๋ก ๊ณต์ ๋๋ ์์์ ํ ๋น๋ฐ์ผ๋ฉฐ ์ฒ๋ฆฌํ๋ ์์ผ๋ก ๋ง์ด ๊ตฌ์ฑํ๊ฒ ๋ฉ๋๋ค.
Ruby Style Guide์ Rubocop
1 min read
์ค๋์ ๋ฃจ๋น ๊ฐ๋ฐ ๊ด๋ จํด์ ์ข์ ๊ฐ์ด๋๊ฐ ์์ด ๊ณต์ ๋๋ฆด๊น ํฉ๋๋ค. ์ ๋ง ์ ๋ฆฌ๊ฐ ์ ๋์ด์์ต๋๋ค. ์ฒ์ฒํ ๋ด์ฉ ์ฝ์ด๋ณด๋ฉด์ ๊ณ ์ณ์ผํ ์ต๊ด๋ค์ด ๋ง์ด ๋ณด์ด๋ค์.
Ruby on Rails(ROR) ์์ SAML IdP(Identity Provider) ๊ตฌํํ๊ธฐ(SSO)
4 min read
์ต๊ทผ์ ๋ป๋ฐ์ SAML ๊ด๋ จ ๊ณต๋ถ๋ฅผ ํ๊ณ ์๋์ง๋ผ, ๋ช๊ฐ์ง ๋ด์ฉ ๋ฉ๋ชจ/๊ณต์ ํ ๊ฒธ ํฌ์คํ ์์ฑํด๋ด ๋๋ค.
inquirer ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ด์ฉํ ์ปค๋งจ๋๋ผ์ธ ๊ธฐ๋ฐ ์ฒดํฌ๋ฐ์ค ๋ง๋ค๊ธฐ(Ruby/Python)
1 min read
recon-raven ๊ฐ๋ฐ ์ค ์ปค๋งจ๋๋ผ์ธ ๊ธฐ๋ฐ ์ฒดํฌ๋ฐ์ค(๋ชจ๋๊ฐ์๊ฑฐ ๊ณ ๋ฅผ ์ ์๋๋ก..) ๊ตฌ์ฑํด๋ณด๋ฉด ์ด๋จ๊น ํด์ ํ์๋ ์ปค๋งจ๋๋ผ์ธ ๊ธฐ๋ฐ ๊ฒ์ ๋ง๋ ๊ธฐ์ต์ ๋๋ฌ์ผ๋ฉฐ ์ง์ ๋ง๋ค๋ค๊ฐ ์ข์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฐพ์ ์ฝ๊ฒ ํด๊ฒฐํ์์ต๋๋ค.
ZAP์์ Passive Script ๋ง๋ค๊ธฐ
1 min read
์์ฆ ๋ช๊ฐ์ง ๋ง๋ค์ด์ฐ๊ณ ์๋๋ฐ, ๊ฐ๋จํ๊ฒ ํ์ด๋๋ ์ฝ๋์ ๋๋ต์ ์ธ ์ค๋ช ์ผ๋ก ๊ธ ์์ฑํฉ๋๋ค.
Ruby์์ Exception ์ฒ๋ฆฌ( begin-rescue-else-ensure-end )
~1 min read
๋ฒ์จ 7์์ด๋ค์.. ์ค๋์ ๋งค๋ฒ ์ฝ๋ ์์ฑํ ๋๋ง๋ค ๊ท์ฐฎ์ง๋ง, ๋บด๋จน์ ์ ์๋ ์ค์ํ ์น๊ตฌ์ Exception, ์ฆ ์์ธ์ฒ๋ฆฌ์ ์ด์ผ๊ธฐํ ๊น ํฉ๋๋ค. ๊ฑฐ์ ์ ๋ฆฌ ์ฐจ์์์ ๊ฐ๋จํ๊ฒ ์ฐ๋๊ฑฐ๋ ๋น ๋ฅด๊ฒ ์์ํ์ฃ .
Git contribute ๊ด๋ จ ์ ๋ฆฌ(Pull reuqest ๋ง๋ค๊ธฐ)
~1 min read
๋ฉ๋ชจ์ฐจ ๊ธ ์์ฑํฉ๋๋ค.
JRuby๋ก Ruby์ Java ๋์์ ์ฌ์ฉํ๊ธฐ
1 min read
๊ฐ์ธ์ ์ผ๋ก BurpSuite์ Extender๋ฅผ ๋ง๋ค ๋ Java๋ฅผ ์ฌ์ฉํ์ต๋๋ค. ๋น์ฐํ Burp๊ฐ Java base์ด๊ณ , API ๋ฑ์ ์ฌ์ฉ์ฑ ๋๋ฌธ์ Java๋ก ๊ฐ๋ฐํ๋ ๊ฒ์ด ์ผ๋ฐ์ ์ธ๋ฐ์, ์ค๋์ Jruby๋ฅผ ์ด์ฉํ์ฌ Ruby์ Java๋ฅผ ํผ์ฉํ์ฌ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์ด์ผ๊ธฐํ๋ ค๊ณ ํฉ๋๋ค.
Javascript๋ฅผ ์ด์ฉํ์ฌ ๊ฐ๋จํ๊ฒ ์นด์นด์คํก ๊ณต์ (์นด์นด์ค๋งํฌ) ์ ์ฉํ๊ธฐ
2 min read
์์ฆ์ SNS ๊ณต์ ๊ธฐ๋ฅ์ ์ฌ์ฉํ์ง ์๋ ์น ํ์ด์ง๋ฅผ ๋ง๋๋ณด๊ธฐ๊ฐ ๊ต์ฅํ ์ด๋ ต์ต๋๋ค. ํนํ๋ ๋ธ๋ก๊ทธ๋ ๋งค์ฒด, ํ๋งค ์ฌ์ดํธ๋ค์ ์ปจํ ์ธ ์ ๊ณต์ ์ ์์ด ๊ต์ฅํ ์ข์ ๋ฐฉ๋ฒ์ด๊ณ ๋ง์ด ์ฌ์ฉ๋๊ณ ์๊ธฐ ๋๋ฌธ์ ๊ทธ๋ ๋ค๊ณ ์๊ฐ์ด ๋๋ค์. ์ด์ ๋ถํฐ ์ฌ๋ฌ๊ฐ์ง SNS ์๋น์ค์ ๋ํด์ ๊ณต์ ๋ฒํผ์ ๋ง๋ค๊ณ ์ฌ์ฉํ๋ค๊ฐ ์ต๊ทผ์๋ google, twitter, facebook ์ ๋๋ง ์ ์งํ๊ณ ์์์ต๋๋ค.
MacOS์์ git ์คํ ์ CommandLIneTools ์๋ฌ ๋ฐ์ํ ๊ฒฝ์ฐ ํด๊ฒฐ๋ฐฉ๋ฒ
~1 min read
์ต๊ทผ(?)์ MacOS ๋ฐฐํฌํ ์ ๊ทธ๋ ์ด๋(์์๋ผ => ํ์ด์์๋ผ) ์ดํ git ๋ช ๋ น์ ๋ฌธ์ ๊ฐ ์๊ฒผ์์ต๋๋ค. (ํ์ฌ๋ฆผ์ ์ข ๋ฆ๊ฒํ๊ธดํ์ฃ ..)
Rails์ ๋ผ์ฐํ ๊ณผ constraints๋ฅผ ์ด์ฉํ์ฌ IP๊ธฐ๋ฐ ACL ๋ง๋ค๊ธฐ
2 min read
Rails Application์์ ์ ๊ทผ์ ์ด๋ฅผ ํ๋ ๋ฐฉ๋ฒ์ ์ฌ๋ฌ๊ฐ์ง๊ฐ ์์ต๋๋ค. ์์ ์ ํฌ์คํ ํ๊ธฐ๋ ํ๊ณ , ํํ ๋ฆฌ์ผ์์๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ด์ผ๊ธฐ๋๋ HTTP Auth๋ฅผ ์ด์ฉํ ์ธ์ฆ๋ฐฉ์ ๋ถํฐ ์ธ์ , ๋ก๊ทธ์ธ ๊ธฐ๋ฐ ์ธ์ฆ๊น์ง ์ฌ๋ฌ๊ฐ์ง ํํ๋ก ๊ตฌํ์ด ๊ฐ๋ฅํ์ฃ . ์ค๋์ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ์ ๊ทผ์ ์ด์ธ IP ๊ธฐ๋ฐ ACL์ ๋ํ ์ด์ผ๊ธฐ๋ฅผ ํ ๊น ํฉ๋๋ค.
Rails development ํ๊ฒฝ์์ error ์ ๋ณด ์ค์ด๊ธฐ
~1 min read
rails application์ ๊ธฐ๋ณธ์ ์ผ๋ก application ์คํ ์ development, test, production์ ๊ฐ์ด ์คํ ํ๊ฒฝ์ ์ง์ ํ ์ ์์ต๋๋ค. ๊ฐ๊ฐ ์คํ ํ๊ฒฝ๋ณ๋ก ๋๋ฒ๊ทธ, ์๋ฌ ์ฒ๋ฆฌ ์ฌ๋ถ ๋ฑ ํ๊ฒฝ๊ณผ ์ฒ๋ฆฌ ๋ฐฉ์์ ๋ํด ๊ฒฐ์ ํ ์ ์์ต๋๋ค.
HTTPS/HTTP Mixed Content (์์ธ ๋์ ์ฝํ ์ธ [File] ๋ฅผ ์ฝ์ด์ค๋ ๊ฒ์ ์ฐจ๋จํ์ต๋๋ค.)
1 min read
์ด์ ๋ธ๋ก๊ทธ๋ฅผ https๋ก ๋ณ๊ฒฝ ํ ์์ํ ๋ฌธ์ ๊ฐ ์ฐพ์์์ต๋๋ค. ๋ฐ๋ก js, css ๋ฑ ๋ฆฌ์์ค๋ค์ ์ฃผ์๊ฐ https๋ก ๊ฐ์ ์นํ๋๊ณ ๋๋ถ์ https๊ฐ ์๋ ๊ณณ์์ ๋ถ๋ฌ์จ ํ์ผ๋ค์ ๋ก๋๋์ง ์์ ์ผ๋ถ ๊ธฐ๋ฅ์ด ๋์ํ์ง ์์์์ฃ .
๊ตฌ๊ธ ๋ธ๋ก๊ฑฐ ๊ฐ์ธ ๋๋ฉ์ธ์ HTTPS ์ ๊ณต! (HTTPS support to custom domain on google blogger)
~1 min read
๊ตฌ๊ธ์ ์์ ์ ์์ฌ ๋ธ๋ก๊ทธ ์๋น์ค์ธ Blogger์ https ์ ์ฉ์ ์ง์ํ์ต๋๋ค. ์ด๋ .blogspot.com ํ์์ ๋๋ฉ์ธ๋ง ๊ฐ๋ฅํ์๋๋ฐ, ์ต๊ทผ ์ปค์คํ ๋๋ฉ์ธ์ ๋ํด์๋ https๋ฅผ ์ง์ํด์ฃผ๊ฒ ๋์์ต๋๋ค.
Ruby language์์์ Symbol(์ฌ๋ณผ)์ด๋?
2 min read
์ธ์ด ์์ฒด์ ๋ํ ๊ธ์ ์ฐ๋๊ฑด ๊ต์ฅํ ์ค๋๋ง์ธ ๊ฒ ๊ฐ์ต๋๋ค. ์ค๋์ ๋ฃจ๋น์ ์ฌ๋ณผ์ ๋ํ ์ด์ผ๊ธฐ๋ฅผ ํ๋ คํฉ๋๋ค.
MITM Proxy server in Ruby (evil-proxy์ rails๋ฅผ ์ด์ฉํ WASE ํธ๋ํฝ ์์ง ๊ตฌ๊ฐ ๋ง๋ค๊ธฐ)
2 min read
WASE๋ฅผ ๋ง๋ค๋ฉด์ MITM Proxy๋ก ํธ๋ํฝ์ ์์งํ๋ ์๋ฒ๋ฅผ ๋ง๋ค์๋๋ฐ์, ์ด ๊ณผ์ ์์ ์์๋ดค๋๊ฑฐ๋ ๊ธฐ๋ฐ(?)์ด ๋์๋ ์ฌํํ ์ ์ ์ฝ๋ ๊ด๋ จํด์ ๊ธ ์์ฑํฉ๋๋ค.
Protocol-relative URL! //๋ก ์์ํ๋ URL
1 min read
์น ์ฝ๋์์ ์ฃผ์๋ฅผ ์ฌ์ฉํ ๋ double slash(//
)๋ฅผ ๋ง์ด ์ฌ์ฉํ์๋์? ์์ฆ์ ๋์ฒด๋ก double slash๋ฅผ ๋ง์ด ์ฌ์ฉํ๋ ๊ฒ ๊ฐ์ต๋๋ค. ์๋ฌด๋ฐ ์๊ฐ์์ด ์ฌ์ฉํ๋ฉด์ ์ ์ http://
, https://
์ ๊ฐ์ด ํ๋กํ ์ฝ ๋ช
์๋ ๊ฒฝ์ฐ์ ๋จ์ํ๊ฒ double slash๋ก ๊ตฌ์ฑ๋ ์ฃผ์์ ์ฐจ์ด์ ๋ํ ๊ถ๊ธ์ฆ์ ๊ฐ์ง์ง ์์์๋ค์.
Ruby on Rails - submodel, subclass or subcontroller ๋ง๋ค๊ธฐ(references type)
1 min read
์ฐ์ ๊ธฐ์ค์ด ์ค์ผํด๋๋ก CRUD ๋ชจ๋ธ์ ํ๋ ๋ง๋ค์ด์ค๋๋ค.
PostgreSQL FATAL: Peer authentication failed for user Error ํด๊ฒฐํ๊ธฐ
~1 min read
rails์ db๋ฅผ postgresql๋ก ๋ฐ๊พธ๊ณ ํ๋์ค์ ์ด๋ฐ ์๋ฌ๊ฐ ๋ฐ์ํ์ต๋๋ค.
website capture๋ฅผ ์ํ ruby gem (feat PhantomJS)
~1 min read
์ด๋ฒ ์ฃผ๋ง์ ๋ฑํ ์ธ ๊ธ์ด ์๋ค์.. (์๊ฐ์ด ใ ใ ) ๊ฐ๋ตํ๊ฒ ruby library๋ฅผ ์ด์ฉํ ์น ํ์ด์ง ์บก์ณ ๊ด๋ จํด์ ๊ธ ์์ฑํด๋ด ๋๋ค.
๊ตฌ๊ธ ๋ธ๋ก๊ฑฐ(Google Blogger) ํ์ด์ง, ๊ฒ์๊ธ(ํฌ์คํธ) ๊ด๋ จ ํ์ ๋ค
3 min read
์ด์ ๋ถํฐ ์ฒ์ฒํ ์ค๋นํด์ค๋ ๋ธ๋ก๊ทธ ์ฌ์ดํธ์ ๋์์ธ๊ณผ ๊ตฌ์กฐ ๋ณ๊ฒฝ.. ๋๋์ด ์ด๋ฒ ์ฃผ๋ง์ ๋๋์ ์ธ ๊ฐํธ์ ์งํํ์ต๋๋ค.
Elastic search ์ฟผ๋ฆฌ ์ ๋ฆฌ(cheat sheet)
~1 min read
๊ธฐ๋ณธ์ ์ผ๋ก REST API์ ์ ์ฌํฉ๋๋ค.
[HACKING] Bug Bounty๋ฅผ ์ํ WASE(Web Audit Search Engine) ๋ง๋ค๊ธฐ [2] - Burp suite์ Elastic search ์ฐ๋ํ๊ธฐ
~1 min read
์ฐ์ burp bapps์ ์ฌ๋ผ์ ์๋ extension ์ผ๋ก๋ 2๊ฐ์ง๊ฐ ์์ต๋๋ค. elastic burp์ report to elastic ์ ๋๋ค.
[HACKING] Bug Bounty๋ฅผ ์ํ WASE(Web Audit Search Engine) ๋ง๋ค๊ธฐ [1] - Elastic search์ ruby-rails
2 min read
์์ฆ๋ค์ด ๋ฒ๊ทธ๋ฐ์ดํฐ์ ๋ํ ์๊ฐ์ด ์กฐ๊ธ ๊น์ด์ก์ต๋๋ค. ์ผ์ ํ๋ ๊ฒ ์ด์ธ์๋ ๋ฌด์ธ๊ฐ ๊ฐ์น๋ฅผ ๋ง๋ค ์ ์๊ฒ ๋ค๋ผ๋ ์๊ฐ ๋๋ฌธ์ด์ฃ . (๊ทธ๋ฅ ๋์ ๋ ๋ฒ๊ณ ์ถ๋ค๊ณ ๊ทธ๋ =_=)
[CODING] Android โOnly the original thread that created a view hierarchy can touch its views.โ ์๋ฌ ํด๊ฒฐ๋ฐฉ๋ฒ
~1 min read
์๋๋ก์ด๋์ UI๋ฅผ ๋ณ๊ฒฝํ ๋ ๊ฐํน ์ด๋ฐ ์๋ฌ๊ฐ ๋ฐ์ํฉ๋๋ค.
[DOCKER] ๋์ปค ์ปจํ ์ด๋, ํธ์คํธ๊ฐ ํ์ผ ์ ์ก/๋ฐ๊ธฐ(How to send/recive docker container)
~1 min read
๊ทธ๋ฅ ๋ฉ๋ชจ ์ฐจ์์ผ๋ก ์์ฑํฉ๋๋ค. docker container ์ ํธ์คํธ ๊ฐ ํ์ผ ์ด๋ ์ cp, scp ์ ๋์ผํ๋ ์ฝ๊ฒ ์๊ฐํ๋ฉด ๋ฉ๋๋ค.
[ROR] Ruby on Rails โcannot load such file โ [package]โ ํด๊ฒฐ ๋ฐฉ๋ฒ
1 min read
์๊ทธ๋ฐ์ง ์ ๋ชจ๋ฅด๊ฒ ์ง๋ง ์ค๋ ์ ๋ฐ์ดํธ ์ดํ์ rails ์๋ฒ ์์ ์ ์๋ฌ๊ฐ ๋ฐ์ํฉ๋๋ค. ๋ด์ฉ์ ๋ณด์๋.. mime/types๋ฅผ ์ฐพ์ ์ ์๋ค๊ณ ํ๋ค์.
[RUBY] nokogiri install/update ์๋ฌ ํด๊ฒฐํ๊ธฐ(An error occurred while installing nokogiri (1.8.2), and Bundler cannot continue.)
1 min read
๊ฐ๋ง์ ๋ ์ผ์ฆ ๋์ ๋ฃจ๋น ๊ฐ์ง๊ณ ๋๋ ์ค nokogiri๊ฐ ๊ณ ์ฅ๋ฌ์ต๋๋ค. (๋์ฒด๋ก ๋ถํ ๊ณผ ํจ๊ป ํจํค์ง ์ ๋ฐ์ดํธ๋ฅผ ํ๋๋ฐ, ๊ทธ๊ฒ ๋ฌธ์ ์์ฃ ..)
iframe์ height:100%๊ฐ ์๋ ๋ viewport๋ฅผ ์ด์ฉํ์ฌ ํด๊ฒฐํ๊ธฐ
~1 min read
iframe ํ๊ทธ๋ฅผ ์ฐ๋ค๋ณด๋ฉด ๊ฐํน ๋์ด๊ฐ 100%๊ฐ ์๋๋ ์ํฉ์ด ๋ฐ์ํฉ๋๋ค. ๋ํ ๋ค๋ฅธ ์์๋ค์ ํฌ๊ธฐ๋ฅผ ์กฐ์ ํ๋ค๊ฐ %์ ํฌ๊ธฐ๋ก ํ๋ฉด์ ๋์ด๊ฐ๊ธฐ๋ ํฉ๋๋ค.
[CODING] Backspace,Delete not working in vim insert mode(vim์์ ์ญ์ ๊ฐ ์ ๋์ง ์์๋)
~1 min read
๊ฐํน ์์คํ ์ ๋ฐ๋ผ vim์ด ๋ง์ด๊ฐ๋๋ค. backspace ํค๊ฐ ์ ์ ์๋ํ์ง ์์๋ ๊ต์ฅํ ๋ต๋ตํ๋ฐ์.. vimrc์ ํ์ค ์ถ๊ฐ๋ก ์ฝ๊ฒ ํด๊ฒฐ๋ฉ๋๋ค.
Vim์์์ ๊ฐ๋ฐ์ ์ํ ์ต์ํ์ plugin ์ค์
1 min read
๋งค๋ฒ ๋๋ผ์ง๋ง ๊ธ๋ก ์์ฑํ์ง ์์ ๋ด์ฉ๋ค์ ๋์ค์ ๋ค์ ์ธํ ํ๊ฑฐ๋, ์ฐธ๊ณ ํด์ผํ ๋ ์ฐธ ๋ถํธํฉ๋๋ค. ๊ผญ ํ์ํ ๋ ๋ณด๋ฉด ์๋ค์ฃ . ์ต๊ทผ์๋ vim ์ธํ ์ ๋ค์ ํ ์ผ์ด ์์ด ํ๋ํ๋ ์ธํ ํ๊ณ ์๋๋ฐ, ํ๋ฒ์ฏค์ ๋ฉ๋ชจํด๋๋ฉด ๋๊ณ ๋๊ณ ๋ณผ ๊ฒ ๊ฐ๋ค๋ผ๋ ์๊ฐ์ด ๋ค์์ต๋๋ค. ์งง๊ฒ๋๋ง ์๊ฐ ๋ด์ด์ ๊ธ ์์ฑํด๋ด ๋๋ค.
Learning Go Language - Hello world, GoRoutine
2 min read
์์ฆ Go langage๋ฅผ ๋ฐฐ์๋ณผ๊น ํฉ๋๋ค. ๊ทธ๋์ ์์ฃผ ์ฒ์ฒํ ํ๋ ๋๋ง๋ค ๋ณด๊ณ ์๋๋ฐ, ์กฐ๊ธ์ฉ์ ์ ๋ฆฌํด์ ํฌ์คํ ํด๋ณผ๊น ํฉ๋๋ค. ์๋ง ์ต์ํด์ง๋ฉด Ruby์ ์์ด์ ์ฝ๋ฉํ๊ฒ ๋ ๊ฒ ๊ฐ๋ค์.
์์คํค ์ฝ๋&HTML ์ฝ๋ํ(Ascii&HTML code table, URL encode)
15 min read
HTML & Ascii table ์ ๋๋ค. ๊ฐ๋ ์ฐธ๊ณ ํ๋ ์ ๋ฆฌํด๋ก๋๋ค. ๋น ๋ฅธ ๊ฒ์์ Ctrl+F(๊ฒ์) > CF_(+์ฐพ์ ๋ฌธ์์ด)
[RUBY] ํด๋ฆฝ๋ณด๋์ ๋ฐ์ดํฐ๋ฅผ ๋ณต์ฌํ์! clipboard gem
~1 min read
์์ ์ python์ tkinter ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ด์ฉํด์ clipboard ์ ์ดํ๊ณ ๊ฐ๋จํ ํ๋ก๊ทธ๋จ ๋ง๋๋ ์ด์ผ๊ธฐ๋ฅผ ํ์์ต๋๋ค. (http://www.hahwul.com/2016/06/python-tkinter-module-clipboard.html )
Bookmarklet์ด๋?
1 min read
์ต๊ทผ์ Bookmarklet์ ์กด์ฌ๋ฅผ ์์์ต๋๋ค. ๋ธ๋ผ์ฐ์ AddOn๋ง ๊ฐ๋ฐํด์ ์จ์ค๋ ์ ์๊ฒ ๋๋ฆ๋๋ก ์ ์ธ๊ณ ์๋ค์. ์ค๋์ Bookmarklet์ ๋ํ ์ด์ผ๊ธฐ๋ฅผ ํ๋ คํฉ๋๋ค.
Rails์์ DB Column ์ถ๊ฐํ๊ธฐ
~1 min read
rails๋ database schema ๋ฑ์ migration ํ์ผ๋ก ๊ด๋ฆฌํฉ๋๋ค. ์ด๋ฅผ ์ด์ฉํ๋ฉด ์ด๋ฏธ ๋ง๋ค์ด์ง ์ฑ์์ DB Schema๋ฅผ ๋ณ๊ฒฝํ๊ฑฐ๋ ์ฝ๊ฒ Rollbackํ ์ ์์ต๋๋ค.
[EXPLOIT] JAVA SE Web start JNLP XXE ์ทจ์ฝ์ ๋ถ์(CVE-2017-10309, feat Metasploit)
4 min read
์์ฆ ์๊ฐ๋ด๊ธฐ๊ฐ ์์ด๋ฆฌ ์ด๋ ค์ด๊ฑด์ง.. ๋๋ถ์ ์ค๋๋ง์ ์ทจ์ฝ์ ๋ถ์๊ธ์ ์์ฑํ๋ค์. ์ค๋์ ์ง๋ 10์ ๋ง ๊ณต๊ฐ๋ JAVA SE ๊ด๋ จ XXE ์ทจ์ฝ์ ์ ๋ํด ์ด์ผ๊ธฐํ ๊น ํฉ๋๋ค.
XCode Simulator์ App(.ipa) ํ์ผ ์ค์นํ๊ธฐ
~1 min read
์ทจ์ฝ์ ํ ์คํธ ๊ธฐ๊ธฐ๋ก ์ฐ๋ iOS ๋๋ฐ์ด์ค์ ๋ฌธ์ ๊ฐ ์์ด Simulator๋ฅผ ์์๋ณด๋ ์ค ๊ฐ๋จํ ํ์ด ์์ด ์์ฑํฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก Simulator์ Xcode๋ก ์ปดํ์ผํ ์ฑ์ด ์๋๋ฉด ์ค์น๊ฐ ๋ถ๊ฐ๋ฅํฉ๋๋ค. ๋ค๋ง ์ฝ๊ฐ์ ํธ๋ฆญ์ ์ฐ๋ฉด ์ฝ๊ฒ ๊ฐ๋ฅํ์ง๋ง์. ์ค๋์ app ํ์ผ์ธ .ipa(app)์ผ๋ก Xcode Simulator์ ์ค์นํด ๋ด ์๋ค.
[POWERSHELL] ํ์์์ ์ด์ฉํ ํ์ผ ์ ๋ณด ํ์ธํ๊ธฐ(Write a get file information script)
5 min read
ํ์์์ ๋ํ ์ด์ผ๊ธฐ๋ฅผ ์ ๊น ํ ๊นํฉ๋๋ค. ์๋์ฐ ํ๊ฒฝ์์ ํ์์ ์ฌ์ฉ ์ batch ํ์ผ์ ๋นํด ์์ธํ๊ฒ ์์คํ ์ ๋ํด ์ ์ดํ ์ ์๊ณ Ruby, Python ๊ณผ ๊ฐ์ ์ธ์ด์ ๋ฌ๋ฆฌ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ด์ฅ๋์ด ์๊ธฐ ๋๋ฌธ์ ๋ณ๋์ ์ค์น ์์ด ์ฌ์ฉํ ์ ์๋ ์ฅ์ ์ด ์์ต๋๋ค.
[POWERSHELL] ์ด ์์คํ ์์ ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ ์ ์์ผ๋ฏ๋ก ํ์ผ์ ๋ก๋ํ ์ ์์ต๋๋ค(execution of scripts is disabled on this system.) ์๋ฌ ํด๊ฒฐ ๋ฐฉ๋ฒ
~1 min read
๋ฉ๋ชจ์ฐจ ๊ฐ๋จํ๊ฒ ์์ฑํฉ๋๋ค.
Metasploit API์ msfrpcd, ๊ทธ๋ฆฌ๊ณ NodeJS
5 min read
์์ฆ metasploit์ rpc์ ๋ํด ๊ต์ฅํ ๊ด์ฌ์ด ๋ง์ต๋๋ค. ๋ํ์ ์ผ๋ก msgrpc plugin ๋ถํฐ msfrpcd ๋ฐ๋ชฌ๊น์ง metasploit์์ rpc๋ฅผ ์ด์ฉํ ์ ์๋ ๋ฐฉ๋ฒ๋ค์ ๋ง์ด ์ฐพ์๋ณด๊ณ ์์ง์.
[METASPLOIT] Writing Custom Plugin for metasploit
3 min read
์ต๊ทผ์ a2sv๋ฅผ metasploit plugin์ผ๋ก ์ง์ํ ์๊ฐ์ ํ๊ณ ์์ต๋๋ค. ๋ชจ๋ ์ ์์ด ์๋ plugin ์ ์์ผ๋ก ๊ฒฝํ์ด ๊ฑฐ์ ์๊ธฐ์.. ํ๋ํ๋ ์ฐพ์๋ณด๋ฉด์ ์งํํ๊ธฐ๋ก ํ์ฃ .
RUBY์์ RQRCode๋ฅผ ์ด์ฉํ์ฌ QR์ฝ๋ ์์ฑํ๊ธฐ
~1 min read
์ค๋์ RQRCode์ ๋ํด ์์ฑํ ๊น ํฉ๋๋ค. RQRCode๋ Ruby์์ QR์ฝ๋๋ฅผ ๋ค๋ฃฐ ์ ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๋ค. ๊ฐ๋จํ ์ฝ๋๋ก ์ฝ๊ฒ QR์ฝ๋ ์์ฑ์ด ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ QR์ฝ๋ ๊ด๋ จ ์๋น์ค๋ Rails ๋ด QR ์ฝ๋ ์ฌ์ฉ ๋ฑ ์ฌ๋ฌ๊ฐ์ง ๋ฐฉ๋ฉด์ผ๋ก ํ์ฉํ ์ ์๊ฒ ๋ค์.
PuDB ์ด์ฉํ์ฌ cli์์ python ๋๋ฒ๊น ํ๊ธฐ
~1 min read
ํ์ด์ฌ ๋๋ฒ๊น ์ ์ํด ๊ตฌ๊ธ๋งํ๋ ์ค stackoveflow์์ ์ธ๋งํ python debugger๋ฅผ ํ๋ ์ฐพ์์ต๋๋ค. ๋ฐ๋ก PuDB python ๋ชจ๋์ ๋๋ค. ์ด ๋ชจ๋์ ํ์ด์ฌ ์ฝ๋๋ฅผ ์ฝ๊ฒ ๋๋ฒ๊น ํ๊ธฐ ์ํด ๋ง๋ค์ด์ง ๋ชจ๋์ ๋๋ค.
[CODING] Ruby telegram-bot ์ ์ด์ฉํ ํ ๋ ๊ทธ๋จ ๋ด ๋ง๋ค๊ธฐ
1 min read
์๋ ํ์ธ์. ํํ์ ๋๋ค. ์ค๋์ Ruby๋ฅผ ์ด์ฉํ ํ ๋ ๊ทธ๋จ ๋ด ๋ง๋ค๊ธฐ์ ๋ํ ์ด์ผ๊ธฐ๋ก ์ค๋นํ์ต๋๋ค. ์งง์ ๋ด์ฉ์ด์ง๋ง.. ์๋ ์ ์ ์์ด ์ง๋ธ์ง๋ผ ์ด์ ์์ผ ํฌ์คํ ์ ํ๊ฒ๋๋ค์.
[WEB HACKING] PHP Comparison Operators Vulnerability for Password Cracking
2 min read
๊ฐ์ธ์ ์ผ๋ก ํ๋ก๊ทธ๋๋ฐ์ ์ฌ๋ฏธ์๋ ์์๋ ์ฐ์ฐ์๊ฐ ์๋๊น ์ถ์ต๋๋ค. ์์ ์ฐ์ฐ์๋ค์ด ๋ชจ์ฌ ํฐ ํ๋ฆ์ ๋ง๋ค๊ณ , ์ฐ๋ฆฌ๊ฐ์ ํด์ปค๋ ์ด ํ๋ฆ์ ํ์ด ์์์น๋ ๋ชปํ ํ์๋ฅผ ์ด๋์ด๋ด๋ ๊ต์ฅํ ์ฌ๋ฏธ์๋ ๋ถ๋ถ์ด์ฃ .
์ด ํน์๋ฌธ์๋ ์ด๋ป๊ฒ ์ฝ์ด์ผ ํ ๊น์?
~1 min read
๋ณด์์ ๋ฌธ๊ฐ๋ ๊ฐ๋ฐ์๊ฐ์ด ์ค๋ฌด์ ์ธ IT ์ ๋ฌด๋ฅผ ํ๋ค๋ณด๋ฉด ํน์๋ฌธ์์ ๋ํด ์ค๋ช ํด์ผํ ๋๊ฐ ๋ง์ด ์์ต๋๋ค. ์ ๋ํ ๊ฐ๋ฐ์์๊ฒ ๋งค๋ฒ ์ค๋ช ํด์ผํ๊ณ , ๊ทธ ๊ณผ์ ์์ ํน์๋ฌธ์์ ๋ํ ์ธ๊ธ์ด ๋ง๊ธฐ ๋๋ฌธ์ ๋ชจ๋ฅด๋ ๋ถ๋ถ์ ์ผ๋ถ๋ฌ ์ฐพ์์ ์ ๋ฆฌํด๋๊ณ ํ์ต๋๋ค. ์๊ฐํด๋ณด๋ ์ด๋ฐ ๋ด์ฉ์ ๊ณต์ ๋๋ฉด ์ข์ ๊ฒ ๊ฐ์ ๊ธ๋ก ์์ฑํด๋ด ๋๋ค.
SOP(Same-Origin Policy)์ Web Security
1 min read
์ค๋์ ์น ํดํน ์ ์ฐ๋ฆฌ์ ๋ฐ๋ชฉ์ ์ก๋ ์น๊ตฌ์ธ SOP(Same-Origin Policy)์ ๋ํ ์ด์ผ๊ธฐ๋ฅผ ํ๋ ค๊ณ ํฉ๋๋ค.
Form์์ ์ฒดํฌ๋ฐ์ค ์ฌ๋ฌ๊ฐ ๊ฐ ์ ๋ฌํ๊ธฐ
~1 min read
์น ๊ฐ๋ฐ์ ํ๋ค๋ณด๋ฉด ์ฒดํฌ๋ฐ์ค๋ฅผ ์ด์ฉํ์ฌ ์ฌ๋ฌ๊ฐ์ ๊ฐ์ ๋๊ฒจ์ผ ํ ์ํฉ์ด ์๊น๋๋ค. ๋ํ์ ์ผ๋ก ์ต์ ๊ฐ์ ๊ธฐ๋ฅ๋ค์ด์ฃ . form์ ํตํ ์ ์ก ์ array ํํ๋ก ๋์ง๊ณ php์์ array๋ก ๋ฐ๋๋ค๋ฉด ์ฝ๊ฒ ๊ตฌํํ ์ ์์ต๋๋ค.
[CODING] WebSocket - Overview , Protocol/API and Security
1 min read
WebSocket์ด๋?
WebSocket์ ์น ํ์ด์ง์์ ์ค์๊ฐ์ผ๋ก ๋์ํ๋ ์น ์๋น์ค๋ฅผ ๋ง๋ค์ด ์ค ์ ์๋ ํ์ค ๊ธฐ์ ์ ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ์น ํ๋กํ ์ฝ์ธ HTTP๋ Request์ Response ๊ธฐ๋ฐ์ผ๋ก ์๋ก ์์ฒญ์ด ๋ฐ์ํ๋ฉด ํ์ด์ง๋ฅผ ๋ค์ ๊ทธ๋ ค์ผํ๋ ๊ตฌ์กฐ์ ๋๋ค. ๋๋ถ์ ์ฟ ํค๋ผ๋ ๊ฐ๋ ๋ ์ฌ์ฉ๋๊ฒ ๋์์ง์. (์ธ์ฆ ์ ๋ณด๋ฅผ ์ ์งํ๊ธฐ ์ํด)
[RUBY] Cuntom column sort function on Two-dimensional array
1 min read
๋ฃจ๋น๋ก ์ฝ๋ฉํ๋ ์ค ๊ท์ฐฎ์ ์ผ์ด ์์์ต๋๋ค. ๋ฐ๋ก array์ ๋ํ ์ ๋ ฌ ์ค 2์ฐจ์ ์ด์ ๋ฐฐ์ด์์๋ ์ ๊ฐ ์ง์ ํ ์ด์ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌํ ์ ์๋ ํจ์๊ฐ ์๋๊ฒ์ ๋๋ค..
[DEBIAN] malloc() ์ sysctl vm.swappiness๋ฅผ ์ด์ฉํ์ฌ Swap ์ ๊ทน ํ์ฉํ๊ธฐ
1 min read
๋ฆฌ๋ ์ค์์ ์ฌ๋ฌ๊ฐ์ง ํ ์คํธ๋ฅผ ํ๋ค๋ณด๋ฉด memory๋ฅผ full ์์ผ์ผํ ์ํฉ์ด ์ค๊ธฐ๋ ํฉ๋๋ค. ์ฌ์ค ์ ๊ฐ ์ด๋ฐ ํ ์คํธ๊ฐ ํ์ํ๊ธฐ๋ณด๋จ ํ์ํ ๋ถ ๋์๋๋ฆฌ๋ค๋ณด๋ ์๋ฌด๋๋ ์ ๋ฆฌํด๋๋๊ฒ ์ข์ ๊ฒ ๊ฐ์ ๊ฐ๋ณ๊ฒ ์์ฑํฉ๋๋ค.
Ruby nokogiri๋ฅผ ์ด์ฉํ Web Spider ๋ง๋ค๊ธฐ
3 min read
์ง๋ ํฌ์คํ ์์ nokogiri๋ฅผ ์ด์ฉํ parsing ์ ํ๋ค๋ฉด ์ด๋ฒ์๋ ์กฐ๊ธ ๋ ๋ฐ์ ์์ผ์ ๊ฐ๋จํ Spider๋ฅผ ๋ง๋ค์ด๋ณผ๊น ํฉ๋๋ค. ๋ฌผ๋ก ํจ์ฌ ์ข์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ด ์์ง๋ง ๊ฐ์ฅ ๊ธฐ๋ณธ์ด๋๋ nokogiri๋ฅผ ์ ์๋ค๋ฉด ๋ง์ ๋์์ด ์์ ์ ์๊ฒ ์ง์.
Ruby Nokogiri๋ฅผ ์ด์ฉํ Web Parsing
2 min read
์น ์๋น์ค๋ฅผ ํ์ํ๋ ๋๊ตฌ๋ค์ ๋ง๋ค๋ค ๋ณด๋ฉด ๋ง์ด ์ ํ๊ฒ ๋๋ ์์ ์ด ํ๋ ์์ต๋๋ค. ๋ฐ๋ก HTML, XML ๋ฑ ๊ตฌ์กฐํ๋ ๋ฌธ์๋ฅผ ํ์ฑํ๋ ์์ ์ธ๋ฐ์. ์ค๋์ Ruby์ ๊ฐ๋ ฅํ ํ์ฑ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ธ Nokogiri์ ๋ํด ์ด์ผ๊ธฐํ ๊ฐ ํฉ๋๋ค.
[JQUERY] Create wait/loading animation using jquery(addClass,removeClass)
1 min read
์น ๊ฐ๋ฐ์ ํ๋ค๋ณด๋ฉด Ajax ๋ฑ์ ์ด์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ ๋ ์ฌ์ฉ์์ ๋์ ์ฆ๊ฒ๊ฒ(?)ํ๋ ๋ก๋ฉ ๋ฐ๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ์ ๋ํด ์์ฑํ๊ฒ ์ต๋๋ค.
[PYTHON] Tkinter module์ ์ด์ฉํ Clipboard(ํด๋ฆฝ๋ณด๋) ์ ์ด/์์ฉ๊ตฌ ๋ง๋ค๊ธฐ
1 min read
์ผ์ ํ๋ค๋ณด๋ฉด ํญ์ ๊ฐ์ ๋ง์ ์์ฃผ ์จ์ผํ ์ํฉ์ด ๋ง์ด ์๊น๋๋ค. ์ค๋์ ํ์์ ์ ๊ฐ Python ์ ์ด์ฉํ์ฌ ์ฌ์ฉํ๋ ๊ฒ์ ํ์ด๋ณผ๊นํฉ๋๋ค.
[RUBY] ๋ฃจ๋น์์ Process/command ์คํํ๊ธฐ(Execute Process and command)
2 min read
C์ธ์ด๋ถํฐ ruby, python ๋ฑ๋ฑ ์ฌ๋ฌ๊ฐ์ง ์ธ์ด ์ค ํ๋๋ผ๋ ํด๋ณด์ จ๋ค๋ฉด ์ ๋ง ๋ฐ๊ฐ์ด ํจ์๊ฐ ์์ต๋๋ค. ๋ฐ๋ก system() ํจ์(C์ธ์ด ๊ธฐ์ค)์ธ๋ฐ์, ์ด ํจ์๋ฅผ ํตํด ์์คํ ์ ๋ช ๋ น์ ๋ด๋ฆฌ๊ฑฐ๋ ์๋ก์ด ํ๋ก์ธ์ค๋ฅผ ์์ฑํ ์ ์๋ ํจ์์ด์ง์. ์ด ํจ์๋ก ๋ง์ ๋ ธ๊ฐ๋ค ์์ ์ด ์ค๊ฒ๋์ง์.
[CODING] git pull ์ฌ์ฉ ์ ๊ฐ์ ๋ก pull ํ๊ธฐ
~1 min read
a2sv update ๊ธฐ๋ฅ์ ๋ง๋ค๋ ์ค git์ ์ด์ฉํ์ฌ pull ํ๋ ๊ณผ์ ์ ๋ฃ์๋๋ฐ ์ด ๋ถ๋ถ์์ ๊ณ์ ์๋ฌ๊ฐ ๋ฐ์ํ์์ต๋๋ค.
[PYTHON] Terminal์ table ์ถ๋ ฅํ๊ธฐ(Source Code / Python / Terminal / Table)
1 min read
์์ฆ ํ ์ผ์ด ์ฐธ ์ฐ๋๋ฏธ๋ค์.. ํ์ฌ์ ๊ฐ์ธ์ ์ผ๋ก ํ๋๊ฑฐ๊น์งโฆ :(
GIT ๊ฐ์ Push ํ๊ธฐ (error: failed to push some refs to)
1 min read
๊ฐ์ธ ํ๋ก์ ํธ๋ฅผ ๊ฐ๋ฐํ๋ ์ค git push ์ ์๋ฌ๊ฐ ๋ฐ์ํ๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์์ต๋๋ค.
Java Applet์ ์ด์ฉํ ๊ณต๊ฒฉ ๋ฐฉ๋ฒ๋ค
2 min read
์น ์ทจ์ฝ์ ์ ๋ํ ๋ถ์ ์ ์ฃผ์ ํ๊ทธ๋ก ์๋ ค์ง ๊ฒ๋ค์ ๋๋ค์ ํํฐ๋ง ๋์ด ์์ง๋ง ๊ฐํน ๋น ์ง๋ ํ๊ทธ๋ค์ด ์์ต๋๋ค. ๊ทธ ์ค ์ค๋์ applet ํ๊ทธ์ ๋ํ ์ด์ผ๊ธฐ๋ฅผ ํ๋ คํฉ๋๋ค.
Ruby WEBrick์์ ์๋ฒ ์ฌ์ด๋ ์ฝ๋ ์ฒ๋ฆฌํ๊ธฐ
1 min read
WEBRick ๋ํ ์น ์๋น์ค๋ฅผ ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๊ธฐ ๋๋ฌธ์ ๊ฐ๋จํ ๋ผ์ฐํ ๊ธฐ๋ฅ์ ์ง์ํฉ๋๋ค. ์ด๋ฅผ ์ด์ฉํ๋ฉด Static ํ์ผ๋ง ์๋นํ๋๊ฒ ์๋ ์ค์ ์น ์์ฒญ ์ ์ํ๋ ์ฝ๋๋ฅผ ๋์์ํฌ ์ ์์ต๋๋ค.
WEBrick์ ์ด์ฉํ์ฌ ๊ฐ๋จํ Ruby ์น ์๋ฒ ๋ง๋ค๊ธฐ
~1 min read
์์ ์ Ruby on Rails๋ฅผ ๋ค๋ฃจ๋ฉด์ ์๊ฒ๋ webrick ์น์๋ฒ ๋ชจ๋์ ๋๋ค. ์ด ๋ชจ๋์ ์ฌ์ด ๋ฐฉ๋ฒ์ผ๋ก ์น ์๋ฒ๋ฅผ ๊ตฌ์ฑํ ์ ์๋๋ก ์ง์ํ๋ ์ข์ ๋ชจ๋์ด์ง์.
JS,CSS๋ฅผ ์ด์ฉํด ํ์ ๋ ์ด์ด ๋ง๋ค๊ธฐ
1 min read
๋ธ๋ก๊ทธ ๋์์ธ ์์ ์ค ๊ฒ์ ๋ถ๋ถ์ ์ฌ๋ฏธ์๋ ์๊ฐ์ด ๋์ ์ฝ๊ฐ ์์ ์ ํ์์ต๋๋ค. ๊ธฐ์กด์ ์ฐ๋ ๊ฒ์์ฐฝ์ ๋ธ๋ก๊ทธ์์ ๋ฐ๋ก ๋ณด์ด๊ณ ์ ๋ ฅ ํ ๊ฒ์ํ๋ ๋ฐฉ๋ฒ์ผ๋ก ๊ตฌ์ฑํ์๋๋ฐ, ํด๋ฆญํ์ฌ ๋ฐ๋ก ํ์ ์ ๋์ด ํ ๊ฑฐ๊ธฐ์ ๊ฒ์ํ๋ ๋ฐฉ๋ฒ์ด ๋ ์ข์ ๊ฒ ๊ฐ๋ค๋ ์๊ฐ์ ์์ ํ์์ต๋๋ค.
PDB๋ฅผ ์ด์ฉํ ํ์ด์ฌ ์คํฌ๋ฆฝํธ ๋๋ฒ๊น
~1 min read
PDB ์ฌ์ฉ๋ฒ ๋ฐ Debugger ์ต์ ์ ๊ดํ ๋ด์ฉ์ ๋๋ค.
CSS๋ฅผ ํตํด Body ํ๊ทธ ์ฌ๋ฐฑ ์์ ๊ธฐ
~1 min read
๋ธ๋ก๊ทธ ํ์ด์ง ๊ฐํธ ์ค ๊ณ์ ์ฌ๋ฐฑ์ด ์๊ฒจ์ ํ๋ํ๋ css ๋ฅผ ๋ค์ ธ๊ฐ๋ฉฐ, ์๋ชป ์ ์ฉํ ๊ฒ์ด ์๋์ง ์ฐพ์๋ณด์์ง๋ง ๋ต์ ๊ฐ๊น์ด ๊ณณ์ ์์์ต๋๋ค. HTML์์ ์ฌ๋ฐฑ์ด ๋ฐ์ํ ๋ CSS๋ HTML ์์ฑ์ผ๋ก ๊ฐ๋จํ๊ฒ ํด๊ฒฐ์ด ๊ฐ๋ฅํฉ๋๋ค. ์๋๋ ์ด๋ฒ์ ์ฝ๋์ ์ ์ฉํ ๋ถ๋ถ์ธ๋ฐ์, leftmargin, rightmargin ์ ํตํด ์ข์ฐ ์ฌ๋ฐฑ์ ์ค์ฌ์คฌ์์ต๋๋ค.
[CODING] HTML/CSS ๊ธ์ ํ ๋๋ฆฌ ์ ์ฉํ๊ธฐ(Apply text border) / text-shadow
~1 min read
์น์์ ๊ฐ๋จํ๊ฒ ๊ธ์์ ํ ๋๋ฆฌ๋ฅผ ๋ฃ๋ ๋ฐฉ๋ฒ์ ๋๋ค. CSS์์ text-shadow ๋ฅผ ํตํด ๊ทธ๋ฆผ์๋ฅผ ๋ฃ๊ณ , ๊ทธ๋ฆผ์ ์์์ ์ง์ ํ์ฌ ํ ๋๋ฆฌ์ฒ๋ผ ๋ณด์ด๋๋ก ๊พธ๋ฐ ์ ์์ต๋๋ค.
Javascript ์ด๋ฒคํธ ํธ๋ค๋ฌ๋ฅผ ์ด์ฉํ์ฌ Input ํ๊ทธ ์ํฐ ์ฒ๋ฆฌ Char Codes)
1 min read
์น ๊ฐ๋ฐ์ ํ๋ค ๋ณด๋ฉด ํ ์คํธ ๋ฐ์ค์์ submit, button ์ ๋๋ฅด์ง ์๊ณ ์ํฐ๋ง์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๊ฑฐ๋ ํ์ด์ง๋ฅผ ์ด๋ํ๋ ๋ฑ ์ก์ ์ด ๋ค์ด๊ฐ์ผํ ๋ถ๋ถ๋ค์ด ์์ต๋๋ค. ๊ฐ๋จํ๊ฒ ์ด๋ฒคํธ ํธ๋ค๋ฌ๋ javascript ๋ฅผ ์ด์ฉํด์ ํ ์คํธ ์ ๋ ฅ์ฐฝ์์ ์ํฐ๋ฅผ ๋๋ฅผ ์ ์ฒ๋ฆฌ๋ฅผ ํ๋๋ก ์ฝ๋๋ฅผ ๋ง๋ค์ด๋ณผ ์ ์์ต๋๋ค.
[RUBY] HexDump Ruby Code(๋ฃจ๋น๋ก ํฅ์ค ์ ๋ณด ์ถ๋ ฅํ๊ธฐ)
4 min read
[RUBY] HexDump Ruby Code(๋ฃจ๋น๋ก ํฅ์ค ์ ๋ณด ์ถ๋ ฅํ๊ธฐ)
Javascript ์ฝ๋ ๋๋ ํ(Code Obfuscation)์ JS Packing
1 min read
์ฝ๋ ๋๋
ํ๋ ์ฝ๋๋ฅผ ์ฝ๊ฒ ์์๋ณผ ์ ์๋๋ก ๋ง๋๋ ๊ธฐ์ ์
๋๋ค. ์ฝ๊ฒ ์๊ฐํ๋ฉด int a = 123
์ด๋ ์ฝ๋๋ฅผ int a = ((123+34+350-34-350)*0)+123
๊ฐ์ด ์ข ๋ ์์๋ณด๊ธฐ ์ด๋ ต๊ฒ ๋ง๋๋ ๊ธฐ์ ์
๋๋ค. ๋ฌผ๋ก ์์ ๋์ถฉ ์ด ์ฝ๋๋ ์ฝ๊ฒ ๋ณผ ์ ์์ง๋ง escape, unescape ํจ์ ๋ฑ์ ์ด์ฉํด์ ์ฝ๋๊ฐ ๋์ ์ ๋ค์ด์ค์ง ์๋๋ก ๋ง๋ค ์ ์์ต๋๋ค.
rvm, rbenv๋ฅผ ํตํ Ruby ๋ฒ์ ๊ด๋ฆฌ
~1 min read
์ค๋๋ง์ ๋ ธํธ๋ถ์์ Metasploit ์ ๋ฐ์ดํธ๋ฅผ ํ์๋๋ ํจํค์ง ํ๋๊ฐ ์์กด์ฑ ๋ฌธ์ ๊ฐ ๊ฑธ๋ ธ์ต๋๋ค. gem ์ผ๋ก ์ค์นํ๋ ค ํ์ผ๋, ๋ฐ์ํ๋ ๊ฑด ruby 2.1 ์ด์์์ ์ค์น ๊ฐ๋ฅํ๋ค๋ ๋ฉ์์ง์์ต๋๋ค.
iOS์์์ Python 2.7 ๋ฒ์ ์ค์น
~1 min read
ํ์ฅ iOS ๊ธฐ๊ธฐ์์ apt ํจํค์ง๋ก ํ์ด์ฌ์ ๋ฐ๋ก ์ค์นํ ์ ์์ต๋๋ค. ๋ค๋ง ๋ฒ์ ์ด 2.5 ๋ฒ์ ์ธ ์ํ์ธ๋ฐ, ๋ง์ ๋ชจ๋์ด๋ ํ๋ก๊ทธ๋จ๋ค์ด 2.7 ์ด์์ ๋ํ๋์๋ฅผ ๊ฐ์ง๋ ๊ฒฝ์ฐ๊ฐ ์์ด ์ํฉ์ ๋ฐ๋ผ 2.7 ๋ฒ์ ์ ์ง์ ์ค์นํด์ผํ ํ์๊ฐ ์์ต๋๋ค.