develop

Automating Dead Link Detection

A dead link, or broken link, occurs when a hyperlink points to a web page that has been removed or does not exist anymore. Beyond mere inconvenience, these dead links can significant...

LunarVim + Warp + Tokyo Night ๐ŸŒ™

Warp์—์„œ lunarvim, lazyvim ๋˜๋Š” neovim์— ์ง์ ‘ ํ…Œ๋งˆ๋ฅผ ์ ์šฉํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋‹ค ๋ณด๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ์—ฌ๋ฐฑ์ด ๋ฐœ์ƒํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋Š” Warp์—์„œ๋งŒ ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ๋กœ Warp ์ž์ฒด์—์„œ ํ…Œ๋งˆ๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ๋–„๋ฌธ์— ์ฐจ์ด๊ฐ€ ๋ฐœ์ƒํ•˜์—ฌ ๋ณด๊ธฐ ์‚ด์ง ๋ถˆํŽธํ•œ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ๋‹ค๋งŒ ์ €๋Š” ํฌ๊ฒŒ ์‹ ๊ฒฝ์“ฐ์ง€ ์•Š๊ณ  ์˜ค๋žœ ์‹œ๊ฐ„๋™์•ˆ ์‚ฌ์šฉํ–ˆ์—ˆ์Šต...

PQ3 and PQC ๐Ÿ—๏ธ

Apple์—์„œ ์กฐ๋งŒ๊ฐ„ iMessage์— PQ3๋ผ๋Š” ์•”ํ˜ธํ™” ํ”„๋กœํ† ์ฝœ์„ ์ ์šฉํ•  ์˜ˆ์ •์ด๋ผ๊ณ  ๋ฐœํ‘œํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฐœ์ธ์ ์œผ๋กœ PQC1์— ๊ด€์‹ฌ์žˆ์—ˆ๊ณ , ์ผ์ ์œผ๋กœ๋„ ์ ‘์ ์ด ์žˆ์–ด ์ข…์ข… ์ฐพ์•„๋ณด๊ณค ํ—€์—ˆ๋Š”๋ฐ, ์ด๋ฒˆ PQ3์— ๋Œ€ํ•œ ๋‚ด์šฉ์€ PQC๋ฅผ ์‹ค์ œ๋กœ ์„œ๋น„์Šค์— ์ ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๋ผ์„œ ์žฌ๋ฏธ์žˆ๊ฒŒ ์ฝ์—ˆ์Šต๋‹ˆ๋‹ค. ๋ค์œผ๋กœ PQC rekeyring์— ๋Œ€ํ•œ ๋‚ด์šฉ๋„ ์žˆ์–ด...

Do you need a config? Now, Pkl

์ตœ๊ทผ์— Apple์ด ๋‚ด๋ถ€์—์„œ ์‚ฌ์šฉํ•˜๋˜ Configuration language๋ฅผ ์˜คํ”ˆ์†Œ์Šค๋กœ ๊ณต๊ฐœํ—€์Šต๋‹ˆ๋‹ค. ๋ฐ”๋กœ Pkl(ํ”ผํด)์ธ๋ฐ์š”, ๊ณผ์—ฐ Pkl์€ JSON๊ณผ YAML๊ณผ ํ•จ๊ป˜ Config๊ณ„์˜ ๋Œ€ํ‘œ ์ฃผ์ž๊ฐ€ ๋  ์ˆ˜ ์žˆ์„๊นŒ์š”? ์˜ค๋Š˜์€ Pkl์— ๋Œ€ํ•ด ์•Œ์•„๋ด…๋‹ˆ๋‹ค. name = "Swallow" job { title = "Sr....

Crystal-Lang is โค๏ธ

์ €๋Š” ์ตœ๊ทผ์— Crystal-lang์„ ์ฆ๊ธฐ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ„๋‹จํ•œ ํ† ์ด ํ”„๋กœ์ ํŠธ๋ถ€ํ„ฐ Noir๋ž€ ์‚ฌ์ด์ฆˆ๊ฐ€ ์ ์  ์ปค์ง€๊ณ  ์žˆ๋Š” ํ”„๋กœ์ ํŠธ๊นŒ์ง€ Crystal์„ ํ†ตํ•ด ๊ตฌํ˜„ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ค๋Š˜์€ ์ œ๊ฐ€ Crystal์„ ์ข‹์•„ํ•˜๊ฒŒ๋œ ์ด์œ ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. What is Crystal? ๋จผ์ € Crystal์— ๋Œ€ํ•ด ๊ฐ€๋ณ๊ฒŒ ์ •๋ฆฌํ•˜๊ณ  ์‹œ์ž‘...

DOM Handling with MutationObserver

์ตœ๊ทผ ZAP์€ SPA ๊ธฐ๋ฐ˜์˜ ์•ฑ์„ ์‰ฝ๊ฒŒ ์‹๋ณ„ํ•˜๊ธฐ ์œ„ํ•ด Client Side Integration ์ด๋ž€ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ์ด ๋•Œ DOM์˜ ๋ณ€ํ™”๋ฅผ ์‹๋ณ„ํ•˜๊ธฐ ์œ„ํ•œ ์žฅ์น˜๋กœ MutationObserver๊ฐ€ ์‚ฌ์šฉ๋˜์—ˆ๋Š”๋ฐ์š”. ์˜ค๋Š˜์€ MutationObserver๊ฐ€ ๋ญ”์ง€ ๊ทธ๋ฆฌ๊ณ  ๋ณด์•ˆ ํ…Œ์ŠคํŒ… ์‹œ ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์„์ง€ ์ด์•ผ๊ธฐํ•ด๋ด…๋‹ˆ๋‹ค...

Lazy-loading iframe in Firefox

์ตœ๊ทผ์— Firefox์ชฝ์—์„œ ํ•˜๋‚˜ ์—…๋ฐ์ดํŠธ๋ฅผ ์˜ˆ๊ณ  ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ณง img ํƒœ๊ทธ์—๋งŒ ์กด์žฌํ•˜๋˜ lazy-loading์ด iframe์—๋„ ์ ์šฉ๋˜๋Š”๋ฐ์š”. ์„ฑ๋Šฅ์ ์ธ ์žฅ์ ์€ ๋ถ„๋ช…ํžˆ ์žˆ๊ฒ ์ง€๋งŒ, img์™€ ๋‹ฌ๋ฆฌ XSS์˜ ๋ฆฌ์Šคํฌ๊ฐ€ ๋†’์€ iframe์˜ ๋กœ๋“œ ์‹œ์ ์„ ํ†ต์ œํ•  ์ˆ˜ ์žˆ๋Š” ํ˜•ํƒœ๋ผ ์žฌ๋ฏธ์žˆ๋Š” ์ด์Šˆ๊ฐ€ ๋‚˜์˜ฌ์ง€ ๊ธฐ๋Œ€๋˜๊ธฐ๋„, ๋ฐ˜๋Œ€๋กœ ๋˜ ๊ฑฑ์ •๋˜๊ธฐ๋„ ํ•ฉ๋‹ˆ...

Fiber concurrency

๋™์‹œ์„ฑ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์€ ์žฌ๋ฏธ์žˆ์ง€๋งŒ ๊ตฌ์กฐ๋‚˜ ์‚ฌ์ด์ฆˆ์— ๋”ฐ๋ผ ์–ด๋ ค์›€์„ ๋™๋ฐ˜ํ•ฉ๋‹ˆ๋‹ค. ๊ฐœ์ธ์ ์œผ๋กœ๋„ ๋„๊ตฌ ์ž‘์„ฑ ์‹œ ์ž์ฃผ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ œ๊ฐ€ ์ง„ํ–‰ํ•˜๋Š” ํ”„๋กœ์ ํŠธ์—์„œ ์ž์ฃผ ๋ณผ ์ˆ˜ ์žˆ๊ณ , ๋ธ”๋กœ๊ทธ์—๋„ Goroutine๊ณผ Sync, Ruby Concurrency ๋“ฑ ๋งค๋…„ ๋™์‹œ์„ฑ ๊ด€๋ จํ•ด์„œ ๊ธ€์„ ์ž‘์„ฑํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. Go, Ruby์— ์ด์–ด ์˜ฌํ•ด๋Š” C...

WebAuthn๊ณผ Passkey

์—ฌ๋Ÿฌ๋ถ„๋“ค์€ ํŒจ์Šค์›Œ๋“œ ๋งค๋‹ˆ์ €๋ฅผ ์‚ฌ์šฉํ•˜์‹œ๋‚˜์š”? ์ €๋Š” ๊ฐœ์ธ์ ์œผ๋กœ Apple์˜ ์•”ํ˜ธ ๊ธฐ๋Šฅ์„ ์ฃผ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ icloud+๋„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์–ด ์ด๋ฉ”์ผ ๊ฐ€๋ฆฌ๊ธฐ + ์•”ํ˜ธ ์กฐํ•ฉ์œผ๋กœ ๊ฐ€๊ธ‰์  ์„œ๋น„์Šค๋ณ„๋กœ ๊ณ„์ •๊ณผ ํŒจ์Šค์›Œ๋“œ๊ฐ€ ๊ฒน์น˜์ง€ ์•Š๋Š” ์ƒํƒœ๋กœ ์œ ์ง€ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ตฌ๊ธ€์˜ ๊ฒฝ์šฐ Google password manager๋ฅผ ํ†ตํ•ด ๋น„์Šทํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜์‹œ๋Š”...

Zest + YAML = โค๏ธ

์ตœ๊ทผ์— Zest ์ชฝ์˜ Commit (zaproxy/zest/6d67925) ํ•˜๋‚˜๋ฅผ ์ฃผ์‹œํ•˜๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฐ”๋กœ Zest์—์„œ YAML ํฌ๋งท ์ง€์›์— ๋Œ€ํ•œ ๋‚ด์šฉ์ด์˜€๋Š”๋ฐ์š”. ๋“œ๋””์–ด ๊ณต์‹ ๋ฆด๋ฆฌ์ฆˆ๊ฐ€ ์ด๋ฃจ์–ด์กŒ๊ณ  ์ด์ œ Zest์—์„œ YAML ํฌ๋งท์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. What is Zest Zest๋Š” ์ž๋™ํ™”๋œ ๋ณด์•ˆ ํ…Œ์ŠคํŒ…์„ ์œ„ํ•œ...

XSpear Reborn: Big Changes Coming

์ œ๊ฐ€ Dalfox ๋ฅผ ๊ฐœ๋ฐœํ•˜๊ธฐ ์ „์— Ruby๋กœ ์ž‘์„ฑํ–ˆ์—ˆ๋˜ XSpear๋ž€ ๋„๊ตฌ๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๋™์ผํ•˜๊ฒŒ XSS๋ฅผ ํ…Œ์ŠคํŒ…ํ•˜๊ธฐ ์œ„ํ•œ ๋„๊ตฌ์˜€๊ณ , ํ˜„์žฌ ์„ฑ๋Šฅ์€ ๋‹น์—ฐํžˆ Dalfox์ชฝ์ด ์••๋„์ ์œผ๋กœ ์ข‹์€ ์ƒํƒœ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ž‘๋…„๋ถ€ํ„ฐ XSpear์— ๋Œ€ํ•œ Reborn ๊ณ„ํš์„ ์ƒ๊ฐํ•ด ๋‘์—ˆ์—ˆ๋Š”๋ฐ, ์ตœ๊ทผ ๋งŒ๋“ค๋˜ ๋„๊ตฌ๋„ ์–ด๋Š ์ •๋„ ์œค๊ณฝ์ด ์žกํ˜€์„œ ์ด์ œ ...

๊ฐœ์ธ/์‚ฌ์„ค ๋„๋ฉ”์ธ์—์„œ Crystal Shard ํŒจํ‚ค์ง€ ์ฝ์–ด์˜ค๊ธฐ

Crystal-lang์—์„  Shards๋ฅผ ํ†ตํ•ด์„œ ํŒจํ‚ค์ง€์™€ ๋””ํŽœ๋˜์‹œ๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” go์˜ go get๊ณผ ์œ ์‚ฌํ•˜๊ฒŒ yaml ๋‚ด ์ž‘์„ฑ๋œ github repository์—์„œ ์†Œ์Šค๋ฅผ ์ฝ์–ด์™€ ์„ค์น˜ํ•˜๋Š” ํ˜•ํƒœ์ž…๋‹ˆ๋‹ค. dependencies: logger: github: crystal-lang/logger.cr ...

Embed resources in crystal

Crystal์—์„œ ๋ฆฌ์†Œ์Šค ํŒŒ์ผ์„ ๋ฐ”์ด๋„ˆ๋ฆฌ์— Embed ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ๊ธฐ๋กํ•ด๋‘ก๋‹ˆ๋‹ค. ๊นƒํ—™ ์ด์Šˆ๋“ฑ์„ ์ฐพ์•„๋ณด๋ฉด stdlib๋กœ ๋งŒ๋“ค์–ด์ค„ ๊ฒƒ ๊ฐ™์ง„ ์•Š์•˜๊ณ  ์ฐพ์•„๋ณด๋‹ˆ Rucksack์ด๋ž€ ์ข‹์€ shard๋ฅผ ๋ฐœ๊ฒฌํ•ด์„œ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ •๋ฆฌํ•ด๋‘˜๊ฒŒ์š”. ์ฐธ๊ณ ๋กœ Rucksack์€ Linux์™€ macOS์—์„œ๋งŒ ๋™์ž‘ํ•˜๊ณ  Windows๋Š” ์ง€์›ํ•˜์ง€ ์•Š๋Š”๋‹ค๊ณ  ํ•˜...

Default vs Release build in Crystal

Crystal์€ ์ปดํŒŒ์ผ ์–ธ์–ด๋กœ ๋ฐ”์ด๋„ˆ๋ฆฌ๋กœ ๋นŒ๋“œํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ณต์‹ ๊ฐ€์ด๋“œ์—์„  release build ์‹œ โ€”release flag ์‚ฌ์šฉ์„ ๊ถŒ๊ณ ํ•˜๊ณ  ์žˆ๋Š”๋ฐ์š”. ์˜ค๋Š˜์€ ์ด flag๊ฐ€ ์–ด๋–ค ์—ญํ• ์„ ํ•˜๋Š”์ง€, ์™œ ๊ถŒ๊ณ ๋˜๊ณ  ์žˆ๋Š”์ง€ ์ •๋ฆฌํ•ด๋ด…๋‹ˆ๋‹ค. By default, the generated executables...

Homebrew๋กœ ํŒจํ‚ค์ง€ ์ œ๊ณตํ•˜๊ธฐ ๐Ÿบ

์ œ๊ฐ€ ๋งŒ๋“  ๋„๊ตฌ๋Š” ๋Œ€๋ถ€๋ถ„ Homebrew, Binary, RubyGem, Snapcraft ๋“ฑ์„ ํ†ตํ•ด ๋ฐฐํฌํ•ฉ๋‹ˆ๋‹ค. ํŠนํžˆ macOS์˜ ๊ฒฝ์šฐ Homebrew๋ฅผ ํ†ตํ•œ ์„ค์น˜ ๋น„์ค‘์ด ์—„์ฒญ ๋†’๊ธฐ ๋–„๋ฌธ์— Go ๊ธฐ๋ฐ˜ ์•ฑ๋“ค์€ ๊ฐ€๊ธ‰์ ์ด๋ฉด Homebrew๋ฅผ ์ง€์›ํ•˜๋ ค๊ณ  ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๋Ÿฌํ•œ ๋Œ€๋ถ€๋ถ„์˜ ์ž‘์—…์€ Goreleaser๋ž€ ๋„๊ตฌ๋ฅผ ํ†ต...

Encoding Only Your Choices, EOYC

์š”์ฆ˜ ์žฅ๋‚œ๊ฐ ์‚ผ์•„ Crystal๊ณผ Elixir๋กœ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด๋ณด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ Crystal์€ Ruby์™€ ์ œ๊ฐ€ ์˜ˆ์ „์— ํ•œ๋ฒˆ ์†Œ๊ฐœํ•˜๊ธฐ๋„ ํ—€๊ณ  Ruby์™€ ๊ฑฐ์˜ ์œ ์‚ฌํ•œ ๋ฌธ๋ฒ•์— ์†๋„๊นŒ์ง€ ๊ฐ–์ถ”๊ณ  ์žˆ์–ด ๊ฐœ์ธ์ ์œผ๋กœ ๊ด€์‹ฌ์ด ๋งŽ์•˜๋˜ ์–ธ์–ด์ž…๋‹ˆ๋‹ค. ์ตœ๊ทผ์— ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์ด์œ ๋กœ Crystal์€ ์ฃผ๋ ฅ ์–ธ์–ด๋กœ ๋งŒ๋“ค์–ด๊ฐ€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ค๋Š˜์€ Cr...

LazyVim์œผ๋กœ ์‰ฝ๊ณ  ์•„๋ฆ„๋‹ต๊ฒŒ vim ์„ค์ •ํ•˜๊ธฐ ๐ŸŒธ

์ข‹์•„ํ•˜๋Š” ํ…์ŠคํŠธ ์—๋””ํ„ฐ๊ฐ€ ์žˆ์œผ์‹ ๊ฐ€์š”? ์ด๋Ÿฐ ์งˆ๋ฌธ์„ ๋ฐ›์œผ๋ฉด ์ €๋Š” ๋‹น์—ฐ vim์ด๋ผ๊ณ  ํ•  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. vscode ๋“ฑ ๋‹ค๋ฅธ ์—๋””ํ„ฐ๋„ ๊ฐ™์ด ์‚ฌ์šฉํ•˜๋Š” ๋ผ์ดํŠธ ์œ ์ €์ด์ง€๋งŒ ๋‚˜๋ฆ„ ๊ธด ์‹œ๊ฐ„๋™์•ˆ ๊ฐ™์ด ์ง€๋‚ด์˜จ ๋„๊ตฌ๋ผ ์ €๋„ ๋ชจ๋ฅด๊ฒŒ ์ •์ด ๋“ค์—ˆ๋„ค์š”. ๋ฒŒ์จ ๋ช‡๋…„์ด ์ง€๋‚œ ๊ฒƒ ๊ฐ™์€๋ฐ, ๊ฐœ์ธ์ ์œผ๋กœ๋Š” neovim(nvim)์„ ์‚ฌ์šฉ์ค‘์ž…๋‹ˆ๋‹ค. ์ตœ๊ทผ์— ...

Insomnia ์™€ HTTPie Desktop

๊ฐœ์ธ์ ์œผ๋กœ API ๋ณด์•ˆ ํ…Œ์ŠคํŒ…์ด๋‚˜ ๊ฐœ๋ฐœํ•  ๋•Œ Insomnia๋ž€ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. (์ œ๊ฐ€ ์˜ˆ์ „์— ํ•œ๋ฒˆ ์†Œ๊ฐœํ–ˆ์—ˆ์–ด์š”) ๊ทธ๋ฆฌ๊ณ  ๋ณดํ†ต CLI ๊ธฐ๋ฐ˜์œผ๋กœ ์›น ์š”์ฒญ์„ ์ „์†กํ•  ๋• HTTPie๋ž€ ๋„๊ตฌ๋ฅผ ๊ต‰์žฅํžˆ ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š”๋ฐ, ์•Œ๊ณ ๋ณด๋‹ˆ HTTPie๋„ API ํ…Œ์ŠคํŒ…์„ ์œ„ํ•œ ๋„๊ตฌ์ธ HTTPie Desktop์„ ์ œ๊ณตํ•˜๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ผ๋‹จ ์ฒซ์ธ...

CORS Bypass via dot

Origin ํ—ค๋”์™€ ACAO(Access-Control-Allow-Origin) ํ—ค๋”๋Š” Cross-Origin ๊ด€๊ณ„์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜๊ณ  ์ˆ˜์‹ ํ•˜๊ธฐ ์œ„ํ•œ ํ—ค๋”๋กœ SOP(Same-Origin Policy)๋ฅผ ๊ณต์‹์ ์œผ๋กœ ์šฐํšŒํ•˜๊ธฐ ์œ„ํ•œ ํ—ค๋”์ž…๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ CORS๋ผ๊ณ  ํ†ต์šฉ๋˜์–ด ๋ถ€๋ฅด๋ฉฐ, ์ด๋Š” JSON Hijacking๊ณผ CSRF ...

ZAP Custom En/Decoder ๋งŒ๋“ค๊ธฐ

ZAP์˜ ํ™•์žฅ์„ฑ์€ Scripting Engine์˜ ํŒŒ์›Œ์—์„œ ๋‚˜์˜ต๋‹ˆ๋‹ค. URL, HTML, Base64 ๋“ฑ ํ…Œ์ŠคํŒ… ๋‹จ๊ณ„์—์„  ์ธ/๋””์ฝ”๋”ฉ์„ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๊ต‰์žฅํžˆ ๋งŽ์€๋ฐ์š”. ์ด ๋•Œ ์‚ฌ์šฉํ•˜๋Š” Encode/Decode/Hash ๊ธฐ๋Šฅ ๋˜ํ•œ Scripting์œผ๋กœ ํ™•์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์‹ค ZAP 2.10 ๋ฒ„์ „(2020๋…„ ๋ง)์— ์ถ”๊ฐ€๋œ ๊ธฐ๋Šฅ...

Broken link๋ฅผ ์ฐพ์ž! DeadFinder

์ตœ๊ทผ์— Broken Link(Dead Link)๋ฅผ ์‰ฝ๊ฒŒ ์ฐพ๊ธฐ ์œ„ํ•œ ๋„๊ตฌ๋ฅผ ํ•˜๋‚˜ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ์ œ ๋ธ”๋กœ๊ทธ์˜ Broken Link๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•œ ๋ชฉ์ ์ด์˜€์ง€๋งŒ, ๊ฐ€๋ณ๊ฒŒ๋ผ๋„ ํ•œ๋ฒˆ ๊ณต์œ ํ•˜๋Š”๊ฒŒ ์ข‹์„ ๊ฒƒ ๊ฐ™์•„์„œ ๋ธ”๋กœ๊ทธ ๊ธ€๋กœ ์ž‘์„ฑํ•ด๋ด…๋‹ˆ๋‹ค. DeadFinder ์ž…๋‹ˆ๋‹ค :D Broken Link Broken Link๋Š” Dead Link ...

Rake(Ruby Make)

Rake๋Š” Ruby์—์„œ ์‚ฌ์šฉ๋˜๋Š” build utility๋กœ Make์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค. rake๋ž€ ์ด๋ฆ„ ๋˜ํ•œ ruby + make ์—์„œ ๋งŒ๋“ค์–ด์ง„ ๋‹จ์–ด๋กœ ์ผ๋ฐ˜์ ์ธ Ruby application๊ณผ Rails ๋“ฑ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ํ™˜๊ฒฝ์—์„œ ๊ฐœ๋ฐœ ๋„๊ตฌ๋กœ์จ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. A make-like build utility for Ruby. ์˜ค๋Š˜์€ ...

Ruby Concurrency

๋งค๋ฒˆ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค ๋•Œ๋ฉด ๋™์‹œ์„ฑ์— ๋Œ€ํ•œ ๊ณ ๋ฏผ์„ ํ•˜์ง€ ์•Š์„ ์ˆ˜๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๊ธฐ๋Šฅ์ ์ธ ๊ตฌํ˜„์— ์ง์ ‘ ํ•„์š”ํ•œ ๊ฒฝ์šฐ๋„ ์žˆ๊ณ  ํผํฌ๋จผ์Šค๋ฅผ ๊ฒฐ์ • ์ง€์„ ์ˆ˜ ์žˆ๋Š” ์š”์†Œ์ด๊ธฐ ๋•Œ๋ฌธ์— ์ค‘์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๊ฐœ์ธ์ ์œผ๋กœ ๋Œ€ํ•™์ƒ ๋•Œ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ํŒจํ„ด์„ ๋ฐฐ์šฐ๊ณ  ํ”„๋กœ์ ํŠธ์— ์ ์šฉํ–ˆ์—ˆ์ง€๋งŒ ํ˜„์—… ์ดํ›„ ๋ถ€ํ„ด ๋ณด์•ˆ ์—”์ง€๋‹ˆ์–ด๋ง์ด ๋ฉ”์ธ Job์ด๋‹ค ๋ณด๋‹ˆ ์‹ค์งˆ์ ์œผ๋ก  ...

Jekyll Collection ๋‹ค๋ฃจ๊ธฐ

์ตœ๊ทผ์— Jekyll๋กœ ๋‹ค์‹œ ์ด์‚ฌ ํ›„ ๋ช‡๊ฐ€์ง€ ๊ธฐ๋Šฅ๋“ค์„ ๊ฐœ๋ฐœํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ์ค‘ ํ•˜๋‚˜๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„  ํŠน์ • type์˜ ํŽ˜์ด์ง€๋“ค์„ ๋ชจ์•„์„œ json์œผ๋กœ ๋งŒ๋“ค์–ด์ฃผ๋Š” ๊ณผ์ •์ด ํ•„์š”ํ•œ๋ฐ, Jekyll์˜ Collection ๊ธฐ๋Šฅ์„ ์ด์šฉํ•ด์„œ ์‰ฝ๊ฒŒ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค. ์˜ค๋Š˜์€ Jekyll Collection์— ๋Œ€ํ•œ ์ด์•ผ๊ธฐ๋ฅผ ํ• ๊นŒ ํ•ฉ๋‹ˆ๋‹ค. Je...

Hugo to Jekyll

์ •๋ง ์„ค๋งˆ์„ค๋งˆ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์•„๋‹ˆ ์ด๋Ÿฐ ์ผ์€ ์—†์„๊ฑฐ๋ผ๊ณ  ์žฅ๋‹ดํ–ˆ์Šต๋‹ˆ๋‹ค. ์ž‘๋…„์— Jekyll์—์„œ Hugo๋กœ ์ „ํ™˜ํ•œ์ง€ ๋”ฑ 1๋…„๋งŒ์— ๋งˆ์Œ์ด ๋ฐ”๋€Œ์—ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์‹œ Jekyll๋กœ ๋Œ์•„๊ฐ‘๋‹ˆ๋‹ค. Why Hugo! ์ •๋ง ๋น ๋ฅด๊ณ  ์ข‹์Šต๋‹ˆ๋‹ค. Jekyll์„ ์‚ฌ์šฉํ–ˆ๋˜ ๋‹น์‹œ ๊ฐ€์žฅ ํฐ ๋ฌธ์ œ์˜€๋˜ ๋นŒ๋“œ ์†๋„ ์ด์Šˆ๋ฅผ ํ•œ๋ฒˆ์— ํ•ด๊ฒฐํ–ˆ์–ด์š”. ๊ทธ๋ฆฌ๊ณ  1๋…„ ํ›„ ๋‹ค์‹œ J...

Hex? Imhex and Hexyl

์—ฌ๋Ÿฌ๋ถ„๋“ค์€ ์–ด๋–ค Hex editor/viewer๋ฅผ ์‚ฌ์šฉํ•˜์‹œ๋‚˜์š”? ์ €๋Š” Linux๋ฅผ ๋ฉ”์ธ์œผ๋กœ ์‚ฌ์šฉํ•  ๋–ˆ Ghex์™€ hexdump, macOS์—์„  hexyl์™€ vim(+plug)์„ ์ฃผ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์˜ค๋Š˜์€ ํฌ๋กœ์Šค ํ”Œ๋žซํผ์„ ์ง€์›ํ•˜๋Š” ์—„์ฒญ๋‚œ Hex Editor์ธ ImHex์— ๋Œ€ํ•ด ์†Œ๊ฐœํ•ด๋“œ๋ฆฌ๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ €๋„ ์ด์ œ๋Š” ImHex์™€ he...

Docker์™€ Dumb-Init

์˜ค๋Š˜์€ ๋„์ปค์—์„œ ์•ˆ์ •์ ์ธ ๊ตฌ๋™์„ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” dumb-init๊ณผ pid1 ๊ทธ๋ฆฌ๊ณ  init ์‹œ์Šคํ…œ์— ๋Œ€ํ•œ ์ด์•ผ๊ธฐ๋ฅผ ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. Init๊ณผ PID 1 Linux, macOS ๋“ฑ ๋Œ€๋‹ค์ˆ˜ OS์—์„œ ๊ฐ€์žฅ ์ฒซ๋ฒˆ์งธ PID๋Š” ์ดˆ๊ธฐ์— ์‹คํ–‰๋˜๋Š” Init ํ”„๋กœ์„ธ์Šค๊ฐ€ ํ• ๋‹น ๋ฐ›์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ps ๋“ฑ์œผ๋กœ ํ™•์ธํ•ด๋ณด๋ฉด init ๊ด€๋ จ ํ”„๋กœ์„ธ์Šค๊ฐ€...

ZAP Alert Filters๋กœ Risk ๊ฐ€์ง€๊ณ  ๋†€๊ธฐ

Alert filters Alert filters๋Š” ZAP์—์„œ ๋ฐœ๊ฒฌํ•œ ์ด์Šˆ(Alert)๋“ค์„ ์‰ฝ๊ฒŒ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ Filter ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. ์ง€์ •ํ•œ ์กฐ๊ฑด์— ๋”ฐ๋ผ์„œ Alert์˜ Risk Level์„ ์กฐ์ •ํ•˜๊ฑฐ๋‚˜ ๋‚˜ํƒ€๋‚˜์ง€ ์•Š๊ฒŒ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ZAP์„ Proxy๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ๊ธฐ๋Šฅ์€ ์•„๋‹ˆ์ง€๋งŒ, DevSecOps ๋“ฑ ...

๋งฅ๋ถ์„ Self-hosted Github action runner๋กœ ๋งŒ๋“ค๊ธฐ

์˜ค๋Š˜์€ Github action์˜ runner์— ๋Œ€ํ•œ ์ด์•ผ๊ธฐ๋ฅผ ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๊ธ€์„ ์“ฐ๊ธฐ ์•ž์„œ ์ž ๊น ์ด์•ผ๊ธฐ๋ฅผ ํ’€์ž๋ฉด ์ œ ์ž๋™ํ™” ํ™˜๊ฒฝ์˜ ๋Œ€๋‹ค์ˆ˜๋Š” Github action์œผ๋กœ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค. Golang๊ณผ Ruby๋กœ ๋งŒ๋“ค์–ด์ง„ Application ๋“ค๊ณผ Zest script ๋“ค์ด์ฃ . ๋‹ค๋งŒ Github action์˜ ๊ฒฝ์šฐ github...

Go dependency(go.mod) ์ถ”์ ํ•˜๊ธฐ

์ œ๊ฐ€ ์ตœ๊ทผ์— Dependabot alerts ์— ํ™•์ธ๋œ ์ทจ์•ฝ์  ์ค‘ ํŒจํ‚ค์ง€ ํ™•์ธ์ด ์•ˆ๋˜๋Š” ์ทจ์•ฝ์ ์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ ์ง์ ‘ ์‚ฌ์šฉํ•˜๋Š” ํŒจํ‚ค์ง€์—์„œ ์ด์Šˆ๊ฐ€ ์žˆ์œผ๋ฉด dependabot์ด Pull Request๋ฅผ ๋ณด๋‚ด๊ฒŒ ๋˜์–ด ์žˆ๋Š”๋ฐ ๊ทธ๋งˆ์ €๋„ ์—†์–ด์„œ ์›์ธ์„ ์ฐพ์•„๋ณด๊ณ ์ž go.mod์—์„œ ์›์ธ์ด ๋˜๋Š” ํŒจํ‚ค์ง€๋ฅผ ์ฐพ์•„๋ณด๊ธฐ ์‹œ์ž‘ํ–ˆ๊ณ  ๊ทธ ๊ณผ์ •์—์„œ...

Go์—์„œ Stdin์— ๋Œ€ํ•œ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑํ•˜๊ธฐ

ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ ์ค‘ ์šฐ๋ฆฌ๊ฐ€ ์˜ˆ์ธก ๊ฐ€๋Šฅํ•œ ํ•จ์ˆ˜ ์ธ์ž ๊ฐ’์€ ์‰ฝ๊ฒŒ ์ฒดํฌ๊ฐ€ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ, ์‹œ์Šคํ…œ์œผ๋กœ ๋ถ€ํ„ฐ ๋„˜์–ด์˜ค๋Š” ๋ฐ์ดํ„ฐ๋Š” ๋ง‰์ƒ ์ž‘์„ฑํ•˜๋ ค๊ณ  ํ•˜๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ• ์ง€ ๊ณ ๋ฏผ์ด ๋˜๊ธฐ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ์˜ค๋Š˜์€ ๊ทธ ์ค‘ ํ•˜๋‚˜์ธ Stdin์— ๋Œ€ํ•œ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ ์ด์•ผ๊ธฐ๋ฅผ ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. Pipe trick Stdin์€ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ์ƒ์—์„œ os.Pip...

Permissions-Policy ํ—ค๋”๋กœ ์กฐ๊ธˆ ๋” ์•ˆ์ „ํ•˜๊ฒŒ Browser API ์‚ฌ์šฉํ•˜๊ธฐ

์˜ค๋Š˜์€ Permissions-Policy(๊ตฌ Feature Policy) ํ—ค๋”์— ๋Œ€ํ•ด ์ž ๊น ์ด์•ผ๊ธฐํ• ๊นŒ ํ•ฉ๋‹ˆ๋‹ค. Permissions-Policy Permissions Policy๋Š” Feature Policy๋Š” ๋ผ๊ณ ๋„ ๋ถˆ๋ฆฌ๋Š” ๋ณด์•ˆ ์ •์ฑ… ํ—ค๋”์ด๋ฉฐ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋‹ค์–‘ํ•œ ๋ธŒ๋ผ์šฐ์ € ๊ธฐ๋Šฅ ๋ฐ API์˜ ์‚ฌ์šฉ์„ ์„ ํƒ์ ์œผ๋กœ ํ™œ์„ฑํ™” ๋ฐ ๋น„ํ™œ์„ฑํ™”ํ• ...

HAR(HTTP Archive format) ํฌ๋งท๊ณผ ์•ž์œผ๋กœ์˜ ๊ฐœ๋ฐœ ๊ณ„ํš

์˜ค๋Š˜์€ ๋ญ”๊ฐ€ ๊ธฐ์ˆ ์ ์ธ ์ด์•ผ๊ธฐ๋ณด๋‹จ, ๊ทธ๋ƒฅ ์ œ๊ฐ€ ์ตœ๊ทผ์— ๊ธ‰ ๊ด€์‹ฌ์ด ์ƒ๊ธด HAR ํฌ๋งท์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ• ๊นŒ ํ•ฉ๋‹ˆ๋‹ค. HAR HAR(HTTP Archive format)๋Š” ์›น ๋ธŒ๋ผ์šฐ์ €๊ณผ ์›น ์‚ฌ์ดํŠธ์˜ interaction์„ ๋กœ๊น…ํ•˜๊ธฐ ์œ„ํ•œ ๋ชฉ์ ์œผ๋กœ ๋งŒ๋“ค์–ด์ง„ JSON ๊ธฐ๋ฐ˜์˜ ํฌ๋งท์ž…๋‹ˆ๋‹ค. ์ด๋Š” ๋ธŒ๋ผ์šฐ์ €์™€ ์›น ์„œ๋น„์Šค์—์„œ์˜ ์„ฑ๋Šฅ ์ธก์ • ์ •๋ณด๋ฅผ ๋‚ด...

Golang Logrus์—์„œ Channel hook ๋งŒ๋“ค๊ธฐ

Logrus๋Š” golang์˜ ์•„์ฃผ ์ข‹์€ logger ํŒจํ‚ค์ง€์ž…๋‹ˆ๋‹ค. logrus๋Š” hook์„ ์ด์šฉํ•ด์„œ ์ง€์ •๋œ ํ•œ๋ฒˆ์— ์—ฌ๋Ÿฌ๊ณณ์— ๋กœ๊ทธ๋ฅผ ๋‚จ๊ธธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. built-in hook์œผ๋กœ๋Š” ํ˜„์žฌ syslog์™€ io.Writer๊ฐ€ ์žˆ๊ณ  ์ €๋Š” channel๋กœ hook์„ ์“ธ ์ผ์ด ์žˆ์–ด ๊ฐ„๋‹จํ•˜๊ฒŒ ์ž‘์„ฑํ•˜์—ฌ ๊ณต์œ ํ•ด๋ด…๋‹ˆ๋‹ค :D type Hook...

panic: send on closed channel - ์ฑ„๋„์„ ์ž˜ ๋‹ซ์ž ๐Ÿ•ต๐Ÿผโ€โ™‚๏ธ

๊ณ ๋ฃจํ‹ด๊ณผ ์ฑ„๋„์€ golang์—์„œ ๊ฐ€์žฅ ํ•ต์‹ฌ์ ์ธ ๊ธฐ๋Šฅ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. ๋‹ค๋งŒ ๊ผผ๊ผผํ•˜๊ฒŒ ์ฒดํฌํ•˜๊ณ  ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉด ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋ฌธ์ œ๋“ค์„ ๋งŒ๋“ค์–ด๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ์ค‘ ํ•˜๋‚˜๋Š” Close๋œ ์ฑ„๋„์— ๊ฐ’์„ ์ „๋‹ฌํ•˜๋Š” ์ƒํ™ฉ์ธ๋ฐ์š”. ์ด๋Ÿฐ ๊ฒฝ์šฐ Application์€ panic์œผ๋กœ ์ข…๋ฃŒํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. panic: send on closed chan...

๊ณง Chrome์—์„œ document.domain์„ ์„ค์ •ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค โš ๏ธ

Chrome will disable modifying document.domain to relax the same-origin policy ๊ตฌ๊ธ€์—์„œ ์ตœ๊ทผ document.domain์— ๋Œ€ํ•œ ํฌ๋กฌ ๋ธŒ๋ผ์šฐ์ €์˜ ๋ณ€๊ฒฝ์„ ์˜ˆ๊ณ ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ธŒ๋ผ์šฐ์ € 3์‚ฌ๋Š” ์„œ๋กœ ์œ ์‚ฌํ•˜๊ฒŒ ์ •์ฑ…์„ ๊ฐ€์ ธ๊ฐ€๊ธฐ ๋•Œ๋ฌธ์— ์•„๋งˆ firefox, safari๋„ ...

๊ฐœ๋ฐœ์ž๋งŒ? ์•„๋‹ˆ ์šฐ๋ฆฌ๋„ ์Šคํฌ๋ž˜์น˜ ํŒจ๋“œ ํ•„์š”ํ•ด! Boop!

์ €๋Š” ์ข…์ข… ์žฌ๋ฏธ์žˆ๋Š” ์•ฑ์ด ์žˆ์„์ง€ ์•ฑ์Šคํ† ์–ด๋ฅผ ๋‘˜๋Ÿฌ๋ณด๊ณค ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋˜ ์ค‘ ๋ณด์•ˆ ํ…Œ์ŠคํŒ…์—์„œ ์“ธ๋งŒํ•  ๊ฒƒ ๊ฐ™์€ ๋„๊ตฌ๋ฅผ ์ฐพ์•„ ์ด๋ฒˆ ์—ฐํœด๋™์•ˆ ์‚ฌ์šฉํ•ด๋ณด๊ณ , ๊ดœ์ฐฎ๋‹ค๊ณ  ๋Š๊ปด์„œ ๋ธ”๋กœ๊ทธ๋ฅผ ํ†ตํ•ด ๊ณต์œ ํ•ด๋ด…๋‹ˆ๋‹ค. ๋ฐ”๋กœ Boop ์ž…๋‹ˆ๋‹ค. Boop Boop๋Š” ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ scratch pad๋ผ๊ณ  ์ƒ๊ฐํ•˜์‹œ๋ฉด ์ข‹์Šต๋‹ˆ๋‹ค. ์ฝ”๋“œ๋‚˜ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋ฐ์ดํ„ฐ ๋“ฑ์„ ์ž‘์„ฑ...

Vscode์˜ ์œ ์šฉํ•œ Extensions

์—ฌ๋Ÿฌ๋ถ„๋“ค์€ ์–ด๋–ค ์ฝ”๋“œ ์—๋””ํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์‹œ๋‚˜์š”? ์ €๋Š” ํ•™๋ถ€์ƒ ์‹œ์ ˆ๋ถ€ํ„ฐ vim ์œ ์ ธ์—ˆ์—ˆ๊ณ  ์ดํ›„ vim + geany, atom + vim ์„ ๊ฑฐ์ณ ์ด์ œ vscode์™€ vim์„ ๋™์‹œ์— ์‚ฌ์šฉํ•˜๋Š” ํ˜•ํƒœ๋กœ ์ „ํ™˜ํ—€์Šต๋‹ˆ๋‹ค. (๋ง์ด vim์ด์ง€ ์‚ฌ์‹ค neovim์„ ์จ์š” ๐Ÿ˜…) ์–ด์จŒ๋˜ vscode๋กœ ๋„˜์–ด์˜ค๊ฒŒ ๋˜๋ฉด์„œ vscode์˜ extens...

Go์—์„œ HTTP gzip response ์ฒ˜๋ฆฌํ•˜๊ธฐ

์ตœ๊ทผ dalfox์— ๋…ํŠนํ•œ ์ด์Šˆ๊ฐ€ ์ œ๋ณด๋ฌ๋Š”๋ฐ(์˜คํ”„๋ผ์ธ์œผ๋กœ๋„ ํ•œ๋ฒˆ ์ œ๋ณด๋ฐ›์€ ์‚ฌํ•ญ์ด๋ผ ์ด๋ฏธ ์‚ฝ์งˆ์„ ์ข€ ํ—€๋˜ ์ƒํƒœ์˜€๋„ค์š”) ์˜ค๋Š˜ ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ  ์–ด๋–ป๊ฒŒ ํ•ด๊ฒฐํ–ˆ๋Š”์ง€ ๊ฐ„๋žตํ•˜๊ฒŒ ๊ณต์œ ํ• ๊นŒ ํ•ฉ๋‹ˆ๋‹ค. ํŠน๋ณ„ํ•œ ๋‚ด์šฉ์€ ์•„๋‹ˆ์ง€๋งŒ, golang์—์„œ http ๊ธฐ๋ฐ˜ ๊ฐœ๋ฐœ์„ ์ง„ํ–‰ํ•  ๋•Œ ์•Œ๊ณ  ์žˆ์œผ๋ฉด ์‹ค์ˆ˜๋ฅผ ์˜ˆ๋ฐฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„์ด์ฃ . ๋จผ์ € ๊ฐ„๋žตํžˆ ์ด์Šˆ์— ๋Œ€ํ•ด...

Hugo aliases์—์„œ noindex๋กœ ์ธํ•œ SEO ๋ฌธ์ œ ํ•ด๊ฒฐํ•˜๊ธฐ

Hugo์—์„œ aliases๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํ•ด๋‹น ์ฃผ์†Œ๋Š” meta tag๋ฅผ ์ด์šฉํ•œ redirect๋ฅผ ํŽ˜์ด์ง€๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํ˜•ํƒœ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ url์„ ์ด๋™ํ•˜๊ธฐ์—” ์ ํ•ฉํ•˜์ง€๋งŒ, 30x์˜ status code๊ฐ€ ์•„๋‹ˆ๊ณ  200์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ตฌ๊ธ€ ๋“ฑ ๊ฒ€์ƒ‰ ๋ด‡์ด ํ•ด๋‹น ํŽ˜์ด์ง€๋ฅผ ์ˆ˜์ง‘ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ Hugo๋Š” ์ด๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด met...

pkg.go.dev์— go ํŒจํ‚ค์ง€ ์ฆ‰์‹œ ์—…๋ฐ์ดํŠธํ•˜๊ธฐ

golang์œผ๋กœ ๊ฐœ๋ฐœ๋œ ์•ฑ์€ pkg.go.dev์— ์ €์žฅ๋˜๋ฉฐ ํ•ด๋‹น ์‚ฌ์ดํŠธ๋ฅผ ํ†ตํ•ด ํŒจํ‚ค์ง€ ์ •๋ณด๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๊ณ  ์‹ค์ œ go get ์œผ๋กœ ํŒจํ‚ค์ง€๋ฅผ ๊ฐ€์ ธ์˜ฌ ๋•Œ ์ด๊ณณ์˜ latest ๋ฒ„์ „์„ ๊ฐ€์ ธ์˜ค๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ด ์‚ฌ์‹ค์„ ์ž˜ ๋ชฐ๋ž๋˜ ๊ณผ๊ฑฐ์˜ ์ €๋Š” ์ด๋Ÿฐ ์‹ค์ˆ˜๋„ ํ–ˆ์—ˆ๋˜ ๊ธฐ์–ต์ด ๋‚˜๋„ค์š”. ๋‹ค๋งŒ github์— go ํŒจํ‚ค์ง€๋ฅผ ๋ฐฐํฌ ํ•˜๋”๋ผ๋„ pkg...

Github repo ๋‚ด Languages ๋ณ€๊ฒฝํ•˜๊ธฐ (.gitattributes)

Github repository ํŽ˜์ด์ง€์˜ ์šฐ์ธก์—๋Š” ํ•ด๋‹น repo์˜ ์–ธ์–ด ํ†ต๊ณ„์ธ Languages๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ํŽ˜์ด์ง€์— ์ ‘๊ทผํ•œ ์‚ฌ์šฉ์ž๋กœ ํ•˜์—ฌ๊ธˆ ์ด ํ”„๋กœ์ ํŠธ๊ฐ€ ์–ด๋–ค ์–ธ์–ด๋ฅผ ์ฃผ๋ ฅ์œผ๋กœ ๊ตฌ์„ฑ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ์ง€ํ‘œ๊ฐ€ ๋˜๊ณ , ์ผ๋ถ€ ๋„๊ตฌ๋“ค์€ ์ด ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์˜คํ”ˆ์†Œ์Šค ํ”„๋กœ์ ํŠธ๋“ค์„ ๋ถ„๋ฅ˜ํ•˜๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค. Problem ๋‹ค๋งŒ...

Go์—์„œ ์•„์ฃผ ํฐ JSON ํŒŒ์ผ์„ ํ•ธ๋“ค๋งํ•˜๊ธฐ

์ตœ๊ทผ์— ์‹œ๋ฅ์ง€ ์•Š์€ ๋ฌธ์ œ๋กœ ๊ตฌ๊ธ€๋งํ•˜๋‹ค๊ฐ€ ๋‹จ์ˆœํ•˜๊ฒŒ ํ•ด๊ฒฐํ•œ ์ผ์ด ์žˆ์–ด์„œ ์งง๊ฒŒ ๊ธ€๋กœ ๊ณต์œ  ํ•ด๋ณผ๊นŒ ํ•ฉ๋‹ˆ๋‹ค. ๋ณต์žกํ•œ ๋ฌธ์ œ๋กœ ์ƒ๊ฐํ•ด์„œ ์˜คํžˆ๋ ค ๊ฐ€๊นŒ์ด์— ์žˆ๋Š” ๋‹ต์„ ๋†“์น˜๊ณ  ๋ง์•˜์—ˆ๋„ค์š”. ์–ด๋–ค ๋ฌธ์ œ๊ฐ€? ๋งŒ๋“ค๋˜ ์„œ๋น„์Šค์—์„œ ํฐ JSON ํŒŒ์ผ์„ ์ฒ˜๋ฆฌํ•ด์•ผํ•  ๊ฒฝ์šฐ๊ฐ€ ์ƒ๊ฒผ์Šต๋‹ˆ๋‹ค. json.Unmarshal ํ›„ ๋ฃจํ”„๋ฅผ ๋Œ์•„์„œ ๋ชจ๋“  ํ‚ค ๊ฐ’์— ๋Œ€ํ•œ ์ฒ˜๋ฆฌ๋ฅผ...

Go์—์„œ http.Request/http.Response๋ฅผ Raw String์œผ๋กœ ๋งŒ๋“ค๊ธฐ

์˜ค๋Š˜์€ golang์—์„œ http.Request๋ฅผ Raw HTTP Request (string) ํ˜•ํƒœ๋กœ ์น˜ํ™˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ๋ฉ”๋ชจํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. http.Request and http.Response http.Request ๊ทธ๋ฆฌ๊ณ  http.Response๋Š” golang์˜ ๊ธฐ๋ณธ http ํŒจํ‚ค์ง€์—์„œ ์ œ๊ณตํ•˜๋Š” struct๋กœ HTT...

go executable app, ์ด์   go install๋กœ ์„ค์น˜ํ•˜์„ธ์š”!

go1.17 ๋ฒ„์ „๋ถ€ํ„ฐ go get์„ ์ด์šฉํ•œ executable app, ์ฆ‰ ๋ฐ”์ด๋„ˆ๋ฆฌ ์„ค์น˜๊ฐ€ deprecated ๋˜์—ˆ์Šต๋‹ˆ๋‹ค ๐Ÿง ์ €๋Š” go get์„ ํ†ตํ•œ app install์ด deprecated ๋œ์ง€ ๋ชจ๋ฅด๊ณ  ์žˆ์—ˆ๋Š”๋ฐ, ๋‹ค๋ฅธ ๋„๊ตฌ ํ…Œ์ŠคํŠธํ•˜๋‹ค๊ณ  go get์œผ๋กœ ์„ค์น˜ํ•˜๋‹ค ๋ณด๋‹ˆ ์•„๋ž˜์™€ ๊ฐ™์€ ๋ฉ”์‹œ์ง€๊ฐ€ ๋‚˜ํƒ€๋‚˜์„œ ์•Œ๊ฒŒ๋ฌ์Šต๋‹ˆ๋‹ค. go g...

Goreleaser์—์„œ M1, Windows ARM64 ์ง€์›ํ•˜๊ธฐ

goreleaser์˜ ๊ฐ๊ฐ v0.157.0, v0.175.0 ๋ฒ„์ „์—์„œ M1 macbook, Windows ARM 64 ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ €๋„ ์ œ๊ฐ€ ๊ฐœ๋ฐœํ•˜๋Š” ๋„๊ตฌ์—์„  M1 ์ง€์›์ด ์•ฝ๊ฐ„ ๋Šฆ์€ ๋Š๋‚Œ์ด ์žˆ๊ธดํ•œ๋ฐ์š”. ๊ด€๋ จํ•ด์„œ ์ฃผ์˜ํ•ด์•ผํ•  ์ ๋“ค ์ •๋ฆฌํ•ด ๋‘ก๋‹ˆ๋‹ค. Apple M1 Apple M1์€ darwin/arm64๋กœ ํ‘œ๊ธฐ๋ฉ๋‹ˆ๋‹ค...

Asciinema Shortcode in Hugo

TL;DR ์ฝ”๋“œ๋ฅผ gist์— ๋”ฐ๋กœ ์˜ฌ๋ ค๋‘์—ˆ์Šต๋‹ˆ๋‹ค. Asciinema Asciinema๋Š” ํ„ฐ๋ฏธ๋„ ํ™”๋ฉด์— ๋Œ€ํ•œ ์˜์ƒ ์„œ๋น„์Šค๋กœ youtube, vimeo ๊ฐ™์ด ์‹ค์ œ ์˜์ƒ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ js๋ฅผ ์ด์šฉํ•ด์„œ text๋ฅผ ๋งˆ์น˜ ์žฌ์ƒํ•˜๋“ฏ ์ฒ˜๋ฆฌํ•ด์ค๋‹ˆ๋‹ค. ํŠน์ง•์œผ๋ก  ์˜์ƒ ์„œ๋น„์Šค์ง€๋งŒ, ํ™”๋ฉด์— ๋‚˜ํƒ€๋‚˜๋Š” ํ…์ŠคํŠธ๋“ค์„ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ณต์‚ฌํ•˜๊ณ  ๋ถ™์—ฌ๋„ฃ๊ธฐ...

Hugo์—์„œ Sitemap-index ์‚ฌ์šฉํ•˜๊ธฐ(split sitemap)

sitemap.xml sitemap.xml์€ Sitemap protocol์„ ์œ„ํ•œ XML schema๋กœ ์›น ์„œ๋น„์Šค๊ฐ€ ํฌํ•จํ•˜๊ณ  ์žˆ๋Š” ๋งํฌ๋“ค์„ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•œ ๋ชฉ์ ์œผ๋กœ ๊ตฌ์„ฑ๋˜๋Š” ํŒŒ์ผ์ž…๋‹ˆ๋‹ค. ์•„๋ž˜์™€ ๊ฐ™์€ ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง€๋ฉฐ, ์‚ฌ์šฉ์ž๋‚˜ ๊ฒ€์ƒ‰ ๋ด‡ ๋“ฑ์€ ์ด ํŒŒ์ผ์„ ์ฐธ์กฐํ•˜์—ฌ ์›น ํŽ˜์ด์ง€๋ฅผ ์ˆ˜์ง‘ํ•ฉ๋‹ˆ๋‹ค. <?xml version="...

Github action ์„ฑ๊ณต ์‹œ ๋‹ค๋ฅธ action ์‹คํ–‰ํ•˜๊ธฐ

Github action์€ github์—์„œ ์ œ๊ณตํ•˜๋Š” CI/CD๋ฅผ ์œ„ํ•œ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. yaml ํฌ๋งท์˜ config ๋ฅผ ์ด์šฉํ•ด์„œ ์ฝ”๋“œ ๋นŒ๋“œ, ํ…Œ์ŠคํŠธ๋ถ€ํ„ฐ deploy ๊นŒ์ง€ ๊ตฌํ˜„ํ•˜๊ธฐ์— ๋”ฐ๋ผ ์ •๋ง ๋งŽ์€ ๊ธฐ๋Šฅ์„ ์ž๋™์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๋„๊ตฌ์ด๊ณ  github๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด jenkins๋‚˜ ๋‹ค๋ฅธ devops ๋„๊ตฌ๋ฅผ ๋ฒ„๋ฆฌ๊ณ  ์ด๋™ํ•  ๋งŒํผ ์ถฉ๋ถ„ํžˆ ...

Cache Busting๊ณผ ๋ณด์•ˆ ํ…Œ์ŠคํŒ…

Cache busting Cache busting์€ ๋ณด์•ˆ์ชฝ ํ…Œ์ŠคํŒ…์—์„œ ๋จผ์ € ๋‚˜์˜จ ๊ฐœ๋…์€ ์•„๋‹ˆ๊ณ , ๊ฐœ๋ฐœ์ชฝ์—์„œ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋˜ ๊ฐœ๋…์ž…๋‹ˆ๋‹ค. ์›น ๋ธŒ๋ผ์šฐ์ €๋Š” ๋น ๋ฅธ ๋™์ž‘๊ณผ ํšจ์œจ์„ฑ์„ ์œ„ํ•ด์„œ ๋ฆฌ์†Œ์Šค๋“ฑ์„ ์บ์‹œํ•˜๊ณ  ์žˆ๋Š”๋ฐ, ์ผ๋ฐ˜ ์‚ฌ์šฉ์ž๊ฐ€ ์บ์‹œ๋ฅผ ๋ฆฌ๋กœ๋“œํ•˜๋Š”๊ฑด ๋ถˆํŽธํ•œ ์ผ์ž…๋‹ˆ๋‹ค. (์ผ๋ฐ˜ ์‚ฌ์šฉ์ž๊ฐ€ ํ‰์ƒ์‹œ์— hard refresh๋ฅผ ํ•˜์ง„ ์•Š์ฃ ) ๊ทธ...

git subtree๋ฅผ ์ด์šฉํ•ด github pages์— ๋ฐฐํฌํ•˜๊ธฐ

hugo ๋“ฑ jekyll์ด ์•„๋‹Œ static site generator๋ฅผ ์ด์šฉํ•˜๊ฑฐ๋‚˜ ๋ณ„๋„๋กœ ๊ฐœ๋ฐœํ•ด์„œ github pages์— ํŽ˜์ด์ง€๋ฅผ ๋ฐฐํฌํ•˜๋Š” ๊ฒฝ์šฐ gh-pages ๋ธŒ๋žœ์น˜๋‚˜ ๋ณ„๋„์˜ ๋””๋ ‰ํ† ๋ฆฌ์— ๋ฐฐํฌํ•˜๊ณ  ๋ฐฐํฌ path๋ฅผ ์—ฐ๊ฒฐํ•˜์—ฌ github pages๋กœ ํ˜ธ์ŠคํŒ…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋งŒ ์ด ๋•Œ ์†Œ์Šค์ฝ”๋“œ์™€ ๋ฐฐํฌ๋œ ํŒŒ์ผ์„ ๋ณ„๋„๋กœ ๋ถ„๋ฆฌํ•ด...

Hugo Shortcodes

Hugo์—๋Š” Shortcode๋ผ๋Š” snippet์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ œ๊ฐ€ hugo๋กœ ๋„˜์–ด์˜ค๊ณ  ๊ต‰์žฅํžˆ ๋ง˜์— ๋“ค์—ˆ๋˜ ๋ถ€๋ถ„์ธ๋ฐ์š”. ์˜ค๋Š˜์€ shortcode๊ฐ€ ๋ญ”์ง€, ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ•˜๋Š”์ง€ ๊ทธ๋ฆฌ๊ณ  ์–ด๋–ป๊ฒŒ ์“ฐ๋ฉด ๋” ์ข‹์„์ง€ ์ด์•ผ๊ธฐํ•ด๋ณผ๊ฒŒ์š”. Shortcode ์šฐ๋ฆฌ๊ฐ€ shell์—์„œ command snippet์„ ์‚ฌ์šฉํ•˜๋“ฏ์ด Hugo์—์„œ๋Š” ๋ฏธ๋ฆฌ Con...

Hugo Archetypes์„ ์ด์šฉํ•œ ๊ธ€ Template ์‚ฌ์šฉํ•˜๊ธฐ

Hugo์—์„œ๋Š” content management๋ฅผ ์œ„ํ•ด archetypes ๋ผ๋Š” template file์„ ์ œ๊ณตํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” hugo new ๋กœ ์ƒˆ๋กœ์šด ๊ธ€์„ ๋งŒ๋“ค ๋•Œ ์ž๋™์œผ๋กœ ๊ธ€์— ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ์ž‘์„ฑํ•ด์ฃผ๋ฉฐ, ์ข…๋ฅ˜์— ๋”ฐ๋ผ์„œ ์ปค์Šคํ…€ํ•˜๊ฒŒ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋„๋ก ์ œ๊ณตํ•ด์ฃผ๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ์ž˜ ํ™œ์šฉํ•œ๋‹ค๋ฉด ๊ธ€ ์“ฐ๋Š” ์‹œ๊ฐ„์— ํ•„์š”ํ•œ ...

Goroutine๊ณผ Sync

Go ํ•˜๋ฉด ์–ด๋–ค ํŠน์ง•์ด ๋– ์˜ค๋ฅด์‹œ๋‚˜์š”? ๊ตฌ๊ธ€์˜ ์–ธ์–ด, ๋น ๋ฅด๋‹ค ๋“ฑ ์ „๋ฐ˜์ ์ธ ๊ฐœ๋…์—์„œ goroutine, ์ฑ„๋„ ๋“ฑ ๋””ํ…Œ์ผํ•œ ๋ถ€๋ถ„๊นŒ์ง€ ๋งŽ์€ ๊ฒƒ๋“ค์ด ์žˆ์„ํ…๋ฐ์š”, ์ €๋Š” ์ œ๊ฐ€ ์ฒ˜์Œ ๊ณ ๋ฅผ ์ ‘ํ–ˆ์„ ๋•Œ ๊ฐ€์žฅ ์žฌ๋ฏธ์žˆ๊ฒŒ ๋ดค๋˜ ๊ฒƒ์ด goroutine๊ณผ ์ฑ„๋„์ด์˜€์Šต๋‹ˆ๋‹ค. ์˜ค๋Š˜์€ goroutine๊ณผ ์ด๋ฅผ ์ž˜ ๋ณด์กฐํ•ด์ฃผ๋Š” sync ํŒจํ‚ค์ง€์— ๋Œ€ํ•œ ์ด์•ผ๊ธฐ๋ฅผ ...

Html to Markdown in Cli

์–ด์ œ Hugo๋กœ ์ด์‚ฌ๋กœ ์ด์‚ฌ๋ฅผ ๋งˆ๋ฌด๋ฆฌํ•˜๋ฉด์„œ ๋ชปํ–ˆ๋˜ ์ž‘์—…์„ ํ•˜๋‚˜ ์ง„ํ–‰ํ•œ๊ฒŒ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ”๋กœ ๊ธฐ์กด jekyll ๋ถ€ํ„ฐ ์œ ์ง€ํ•ด์˜ค๋˜ blogger๋กœ ๋ถ€ํ„ฐ ๋„˜์–ด์˜จ ์ž”ํ•ด, html ํฌ์ŠคํŠธ๋“ค์ธ๋ฐ์š”. ๋ฌผ๋ก  ํŽ˜์ด์ง€ ๋žœ๋”ฉ์—๋Š” ์ „ํ˜€ ์ง€์žฅ์ด ์—†์ง€๋งŒ, html ํŒŒ์ผ ์ž์ฒด๊ฐ€ ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ์–ด๋ ต๋‹ค๋ณด๋‹ˆ ๊ธ€์„ ์ˆ˜์ •ํ•˜๊ธฐ ๊นŒ๋‹ค๋กญ๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ด์ฐธ์— ๋‹ค์ˆ˜...

Utterances์—์„œ ๋Œ“๊ธ€ ์ด๋™ํ•˜๊ธฐ

๊ฐ„ํ˜น github page์˜ repo ์ด์ „ ๋“ฑ utterances์˜ ๋Œ“๊ธ€์„ ์ด๋™ํ•ด์•ผํ•  ๊ฒฝ์šฐ๊ฐ€ ์ƒ๊น๋‹ˆ๋‹ค. ์ด๋ฒˆ์— hugo ์ด์ „ํ•˜๋Š” ์ž‘์—…์„ ์ง„ํ–‰ํ•˜๋ฉด์„œ ํ…Œ์ŠคํŠธ ํ•˜๋‹ค๋ณด๋‹ˆ, ๊ฐ„๋‹จํ•œ ํŠธ๋ฆญ์„ ์ด์šฉํ•˜์—ฌ ๋Œ“๊ธ€์„ ์‰ฝ๊ฒŒ ์˜ฎ๊ธธ ์ˆ˜ ์žˆ์–ด ๋‚ด์šฉ์„ ์ •๋ฆฌํ•ด๋ด…๋‹ˆ๋‹ค. utterances๋Š” ๋Œ“๊ธ€์„ ์ƒ์„ฑํ•˜๊ณ  ๋ณด์—ฌ์ฃผ๋Š”๋ฐ 6๊ฐœ์˜ ํƒ€์ž…์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ...

Jekyll์—์„œ Hugo๋กœ ์ด์‚ฌ๊ฐ€๊ธฐ (Migration log)

jekyllโ€ฆ ์ œ๊ฐ€ ์˜ˆ์ „์—๋Š” rubyist(ruby ์‚ฌ์šฉ์ž) ์˜€์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‹ค๊ฐ€ 2018~19๋…„ ์ฏค์— gopher(golang ์‚ฌ์šฉ์ž)๊ฐ€ ๋˜์—ˆ๊ณ  ์ดํ›„๋ถ€ํ„ด ๋งŒ๋“ค๊ณ  ์žˆ๋Š” ๋Œ€๋‹ค์ˆ˜์˜ ๋„๊ตฌ๋Š” golang ๊ธฐ๋ฐ˜์œผ๋กœ ๋งŒ๋“ญ๋‹ˆ๋‹ค. golang์„ ์‚ฌ์šฉํ•ด๋„ ruby ์ž์ฒด๋ฅผ ์˜ค๋ž˜ ์จ์™”๋˜์ง€๋ผ, ๊ทธ๋ž˜๋„ ์กฐ๊ธˆ์ด๋‚˜๋งˆ ํŽธํ•˜๋ ค๊ณ  jekyll์„ ์„ ํƒํ–ˆ์—ˆ๋Š”๋ฐ...

Golang์˜ nil๊ณผ interface nil์˜ ์žฌ๋ฏธ์žˆ๋Š” ํŠน์ง•

Null์€ ์ผ๋ฐ˜์ ์œผ๋กœ ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๊ฐ’ ๋˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋ฅผ ์˜๋ฏธํ•˜๋ฉฐ ์–ธ์–ด์— ๋”ฐ๋ผ null nil nan none undefined ๋“ฑ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ํ˜•ํƒœ๋กœ ํ‘œํ˜„๋ฉ๋‹ˆ๋‹ค. ๋‹ค๋งŒ null์ด๋ž€ ๊ฐœ๋…์ด ์–ธ์–ด๋งˆ๋‹ค ํŠน์„ฑ๊ณผ ์ฒ ํ•™, ํ‘œํ˜„ํ•˜๋Š” ๋ฐฉ์‹์— ๋”ฐ๋ผ์„œ ๋‹ฌ๋ผ์ง€๊ธฐ๋„ ํ•˜๋Š”๋ฐ์š”. ์˜ค๋Š˜์€ golang์—์„œ์˜ null์ธ nil์˜ ํŠน์„ฑ ํ•˜๋‚˜๋ฅผ ์‚ดํŽด๋ณด๋ ค๊ณ  ํ•ฉ...

25 Keywords in Go

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 to...

go-jwt์™€ golang-jwt/jwt

์ตœ๊ทผ์— golang์œผ๋กœ ๊ฐœ๋ฐœํ•œ ๋„๊ตฌ ์ค‘ jwt ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•œ ๋Œ€๋‹ค์ˆ˜์˜ ํ”„๋กœ์ ํŠธ์—์„œ ์•„๋ž˜์™€ ๊ฐ™์ด Security dependency alert์ด ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค. ์ง€๋‚œ์ฃผ์ค‘์— ๋ชจ๋‘ ์ˆ˜์ •ํ–ˆ์ง€๋งŒ ๊ฒธ์‚ฌ๊ฒธ์‚ฌ ์•Œ๊ณ  ์žˆ์œผ๋ฉด ์ข‹์€ ๋‚ด์šฉ์ด ์žˆ์–ด์„œ ๊ธ€๋กœ ๋‚จ๊ฒจ๋‘ก๋‹ˆ๋‹ค. CVE-2020-26160 ์‚ฌ์‹ค ์œ„ alert์€ CVE-2020-261...

Ruby์™€ Google Indexing API๋ฅผ ์ด์šฉํ•˜์—ฌ ์ž๋™์œผ๋กœ ์‹ ๊ทœURL ๋“ฑ๋กํ•˜๊ธฐ

์ œ๊ฐ€ ๋ธ”๋กœ๊ทธ ๊ธ€์„ ์ž‘์„ฑํ•˜๊ณ  commit - push ์‹œ ๋งŽ์€ ์ž‘์—…๋“ค์ด ์ผ์–ด๋‚ฉ๋‹ˆ๋‹ค. ๋Œ€ํ‘œ์ ์ธ ๊ฒƒ๋“ค์„ ์ด์•ผ๊ธฐ ๋“œ๋ฆฌ๋ฉด, Jekyll build ๋ฐ deploy ๊ณผ์ •์ด ์ง„ํ–‰๋˜๊ณ  ์ด๋ฏธ์ง€ ์ค‘ compress๊ฐ€ ํ•„์š”ํ•œ ์ด๋ฏธ์ง€๋Š” compress ์ฒ˜๋ฆฌํ•˜์—ฌ ์šฉ๋Ÿ‰์„ ์ค„์ด๊ณ , notify ๋“ฑ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๊ณผ์ •๋“ค์ด github action์— ๋…น์•„์žˆ์Šต๋‹ˆ...

Github default branch ๋ณ€๊ฒฝํ•˜๊ธฐ (master to main)

์˜ค๋Š˜ ๋„๊ตฌ๋งŒ๋“ค ๋–„ ์“ธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋งŒ๋“ค์–ด๋‘๋ ค๊ณ  github repository๋ฅผ ์ถ”๊ฐ€ํ•˜๋ ค ํ–ˆ๋”๋‹ˆ ์•„๋ž˜์™€ ๊ฐ™์€ ๋ฉ”์‹œ์ง€๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ์ œ ๊ธฐ์–ต์—” github์—์„œ ์ƒ์„ฑํ•œ repo์—์„œ์˜ default branch๋Š” master๋กœ ๊ธฐ์–ต๋‚˜๋Š”๋ฐ, ๋ญ”๊ฐ€ ๋ณ€๊ฒฝ์ด ์žˆ์—ˆ๋˜ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์˜ค๋Š˜์€ github์˜ default branch ์ •...

Go์—์„œ ์ž๋™์œผ๋กœ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ƒ์„ฑํ•˜๊ธฐ(with gotests)

์ €๋Š” ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ๋งŽ์ด ์ž‘์„ฑํ•˜์ง„ ์•Š์Šต๋‹ˆ๋‹ค. ์•„๋ฌด๋ž˜๋„ ๋ณธ์—…์ด ๋ณด์•ˆ ์—”์ง€๋‹ˆ์–ด๋ง์ด๋‹ค ๋ณด๋‹ˆ ํ˜„์—… ๊ฐœ๋ฐœ์ž์ฒ˜๋Ÿผ ๊ผผ๊ผผํ•˜๊ฒŒ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ์กฐ๊ธˆ ๋” ๋‚˜์•„๊ฐ€ TDD(Test-Driven Development)๋ฅผ ์‹ ๊ฒฝ์“ฐ๋ฉด์„œ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋Š” ์—ฌ์œ ๊ฐ€ ์žˆ๋Š” ๊ฒƒ๋„ ์•„๋‹ˆ๊ตฌ์š”. ๋‹ค๋งŒ ๊ทธ๋ž˜๋„.. ์˜ฌํ•ด๋ถ€ํ„ฐ ์กฐ๊ธˆ ๋” ์‹ ๊ฒฝ์“ฐ๊ณ  ์ ์šฉํ•ด๋ณด๋ ค๊ณ  ๋…ธ๋ ฅ์ค‘์ด์˜€...

rvm is not a function ์—๋Ÿฌ ํ•ด๊ฒฐํ•˜๊ธฐ

Problem ์ €๋Š” ๋ณดํ†ต ๊ธ€์„ ์ž‘์„ฑํ•  ๋–„ ๋งฅ๋ถ์—์„œ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ํ™ˆ ์„œ๋ฒ„์—์„œ๋Š” ์ง์ ‘ ๊ธ€์„ ์ž‘์„ฑํ•  ์ผ์ด ๋ณ„๋กœ ์—†์—ˆ๋Š”๋ฐ, ๋””์ž์ธ ์ข€ ์ˆ˜์ •ํ•˜๊ธฐ ์œ„ํ•ด์„œ ์„œ๋ฒ„์—์„œ ์ง์ ‘ ์ž‘์—…ํ•˜๋‹ค ๋ณด๋‹ˆ jekyll serve ์‹œ ruby ๋ฒ„์ „ ๊ด€๋ จ ์—๋Ÿฌ๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์š”์•ฝํ•˜๋ฉด github pages gem์€ 2.x ๋ฒ„์ „๋งŒ ์ง€์›ํ•˜๋Š”๋ฐ, ์‹œ์Šคํ…œ ๋ฒ„์ „์ด...

GOPRIVATE์„ ํ†ตํ•ด ๊ฐœ์ธ/์‚ฌ์„ค ๋„๋ฉ”์ธ์—์„œ go get ํ•˜๊ธฐ(Gitlab, Github enterprise)

go get go ๊ธฐ๋ฐ˜ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜๋“ค์„ ์‚ฌ์šฉํ•ด๋ณด์…จ๊ฑฐ๋‚˜ go ์–ธ์–ด๋กœ ๊ฐœ๋ฐœ์„ ํ•œ๋‹ค๋ฉด go get ์€ ๋งค์šฐ ์ต์ˆ™ํ•œ ๋ช…๋ น์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” github ๋“ฑ ์›๊ฒฉ repo์—์„œ ํŒจํ‚ค์ง€๋ฅผ ๋‹ค์šด๋กœ๋“œ ๋ฐ›๋Š” ๋ช…๋ น์ด๊ณ , pkg.go.dev์—์„œ ๋ณด์ด๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ์ค€์œผ๋กœ go package์— ๋Œ€ํ•œ ์ •๋ณด์™€ ์ฝ”๋“œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„์˜ค๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. (๊ทธ...

[Phoenix #5] Fixed bug in CSRF Payload Generator

Phoenix - CSRF /phoenix/csrf Change note POST PoC ๊ตฌ์„ฑ ์‹œ submit ์•ก์…˜ ์ฒ˜๋ฆฌ๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. POST PoC ๊ตฌ์„ฑ ์‹œ method=post์˜ ๋ˆ„๋ฝ ์ˆ˜์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค. JSON CSRF ์ฝ”๋“œ ๋‚ด } ๋ˆ„๋ฝ์œผ๋กœ ๋น„์ •์ƒ์ ์ธ ์ฝ”๋“œ๋กœ ๋‚˜ํƒ€๋‚˜๋˜ ๋ถ€๋ถ„ ์ˆ˜์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Deta...

DCO and Github Sign-off Commit

์–ด์ œ ๋ฐค์— ZAP์ชฝ์— Pull Request๋ฅผ ๋‚ ๋ ธ๋‹ค๊ฐ€ ์•„๋ž˜์™€ ๊ฐ™์€ ์ƒํ™ฉ์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ํ˜น์‹œ๋‚˜ ํ•˜๊ณ  Github App์˜ ๊ฒฐ๊ณผ๋ฅผ ๋ดค๋”๋‹ˆ sign-off๋˜์ง€ ์•Š์€ commit์ด ์žˆ๋‹ค๋Š” ์ด์•ผ๊ธฐ๊ฐ€ ์žˆ์—ˆ๋„ค์š”. Commit sha: 3898db1, Author: hahwul, Committer: hahwul; The sign...

Rails mimemagic 0.3.5 could not be found ์—๋Ÿฌ ํ•ด๊ฒฐ, ๊ทธ ์ด๋ฉด

Error ์ง€๋‚œ์ฃผ Rails ์•ฑ์— ์ˆ˜์ •ํ• ๊ฒŒ ์žˆ์–ด์„œ ์ž‘์—…์„ ์ง„ํ–‰ํ–ˆ์—ˆ๋Š”๋ฐ, ์•„๋ž˜์™€ ๊ฐ™์€ ์—๋Ÿฌ๋ฅผ ๊ฒช์—ˆ์Šต๋‹ˆ๋‹ค ๐Ÿ˜ญ Your bundle is locked to mimemagic (0.3.5), but that version could not be found in any of the sources listed in your Gemfi...

Secure JWT and Slinding Sessions

Sessions ์ด๋ž€? Sessions์€ ์ปดํ“จํŒ…์—์„œ ๋น„์Šทํ•˜์ง€๋งŒ ์—ฌ๋Ÿฌ ์˜๋ฏธ๋กœ ์‚ฌ์šฉ๋˜๋Š” ์šฉ์–ด์ž…๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์ƒํƒœ๋ฅผ ์˜๋ฏธํ•œ๋‹ค๊ณ  ๋ณด๋ฉด ๋  ๊ฒƒ ๊ฐ™๊ณ , ์›น์—์„œ๋Š” HTTP๊ฐ€ ๋น„ ์—ฐ๊ฒฐํ˜• ํ”„๋กœํ† ์ฝœ์ด๊ธฐ ๋•Œ๋ฌธ์— ์„œ๋ฒ„๊ฐ€ ๊ธฐ์กด์— ์ ‘์†ํ–ˆ๋˜ ํด๋ผ์ด์–ธํŠธ์ธ์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ์ˆ˜๋‹จ์œผ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. (ํŒŒ์ผ ์ฟ ํ‚ค๋ž‘ ๋น„์Šทํ•˜์ฃ . ๋‹ค๋งŒ ์ฒ˜๋ฆฌ์—์„  ์•ฝ๊ฐ„ ๋‹ค๋ฅด๊ธดํ•ฉ๋‹ˆ๋‹ค...

[Learn ML #1] ์ด์ œ๋ถ€ํ„ฐ ๋จธ์‹ ๋Ÿฌ๋‹(Machine Learning)๋„ ๊ณต๋ถ€ํ•ฉ๋‹ˆ๋‹ค ๐Ÿ˜

์ตœ๊ทผ์— ๋จธ์‹ ๋Ÿฌ๋‹ ๊ณต๋ถ€๋ฅผ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฌผ๋ก  ๋ญ ๊นŠ๊ฒŒ ๊ณต๋ถ€ํ•˜๊ธฐ์—๋Š” ์ œ ์ฃผ๋ ฅ์ธ ๋ณด์•ˆ๊ณผ ๋„๋ฉ”์ธ๋„ ์›Œ๋‚™ ๋‹ค๋ฅด๊ณ , ๊ฐœ๋ฐœ์ ์ธ ํ…Œํฌ๋‹‰ ์ด์™ธ์—๋„ ์ˆ˜ํ•™/ํ†ต๊ณ„ํ•™์ ์ธ ๋ถ€๋ถ„์ด ๋งŽ์ด ํ•„์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ž˜ ํ•  ์ˆ˜ ์žˆ์„๊ฑฐ๋ž€ ํ™•์‹ ์€ ๋“ค์ง€ ์•Š๋„ค์š”. ๊ทธ๋ž˜์„œ ์ „๊ณต ์ˆ˜์ค€์œผ๋ก  ํ•˜์ง€ ๋ชปํ•ด๋„ ์–•๊ฒŒ๋ผ๋„ ๊ณต๋ถ€ํ•ด์„œ ๊ฐœ์ธ์ ์œผ๋กœ๋‚˜ ํšŒ์‚ฌ์ ์œผ๋กœ๋‚˜ ์‚ฌ์šฉํ•ด๋ณผ๋งŒํ•œ ํฌ์ธํŠธ๋ฅผ ๋งŒ๋“œ๋Š”๊ฒŒ...

[Phoenix #4] Fixed bug in session entropy page

Problem Session entropy ๊ณ„์‚ฐ ์‹œ ํŠน์ˆ˜๋ฌธ์ž๊ฐ€ ๋ฐ˜์˜๋˜์ง€ ์•Š๋Š” ์ด์Šˆ๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ƒฅ ์ž๋™์œผ๋กœ ๊ณ„์‚ฐํ•˜๊ธฐ ๊ท€์ฐฎ์•„์„œ Session type ๋“œ๋กญ๋ฐ•์Šค์— Ascii๋กœ ์„ ํƒ ์‹œ ๋ฐ˜์˜๋˜๋„๋ก ์ถ”๊ฐ€ํ–ˆ์—ˆ๋Š”๋ฐ, ํฌ๊ฒŒ ํšจ์šฉ์„ฑ์ด ์—†๋Š” ๊ฒƒ ๊ฐ™๋„ค์š”.. Fixed and Patch ์ด๋Š” ์ฝ”๋“œ๋‹จ์—์„œ ๋ณ„๋„๋กœ ํŠน์ˆ˜๋ฌธ์ž๋ฅผ ๊ฒ€์ฆํ•˜์ง€ ์•Š๊ณ  ...

[Phoenix #3] Update session entropy page

Change note ์†Œ์ˆซ์  3์ž๋ฆฌ ๊นŒ์ง€ ์ž˜๋ ค์„œ Entropy ํ‘œํ˜„ํ•˜๋„๋ก ์ˆ˜์ • ์ผ๋ถ€ ๋ฌธ๊ตฌ ์ˆ˜์ • ๋ฐ table ๋“ฑ ๊ฐ„๊ฒฉ ์ˆ˜์ • Case , Length ๋“ฑ์„ ์‰ฝ๊ฒŒ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ ๋ณ€๊ฒฝ(๋‹จ์ผ Element์—๋งŒ ์ ์šฉ๋˜๋„๋ก) https://www.hahwul.com/phoenix/session Scr...

Bump a go package version

My Problem ๊ฐ„ํ˜น go get ์œผ๋กœ ์ œ๊ฐ€ ๋งŒ๋“  ๋„๊ตฌ๋ฅผ ์„ค์น˜ ์‹œ ๊ตฌ๋ฒ„์ „(ํ˜„์žฌ๋Š” 2๋ฒ„์ „๋Œ€์ธ๋ฐ, 1๋ฒ„์ „๋Œ€๊ฐ€..)์ด ์„ค์น˜๋˜๋Š” ์ด์Šˆ๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ pkg.go.dev์—๋„ ๊ตฌ๋ฒ„์ „์ด ๋งˆ์ง€๋ง‰ ๋ฆด๋ฆฌ์ฆˆ๋กœ ์žˆ๊ณ  ๋ณ€ํ™”๊ฐ€ ์—†๋˜ ์ƒํƒœ์˜€์ฃ . ๋ณ„์ผ ์•„๋‹ˆ๊ฒ ๊ฑฐ๋‹ˆ ํ•˜๊ณ  ๋ฐฉ์น˜ํ•˜๋‹ค๊ฐ€ ์ตœ๊ทผ์— discussions ํ†ตํ•ด์„œ ๋ฌผ์–ด๋ดค๊ณ , ์˜๋ฏธ์žˆ๋Š” ํ•ด๋‹ต์„...

Go flag์—์„œ custom usage ๋งŒ๋“ค๊ธฐ

golang์—์„œ cli ๋„๊ตฌ๋ฅผ ๋งŒ๋“ค ๋•Œ ๊ฐ€์žฅ ๋จผ์ € ์ ‘ํ•˜๋Š” ๋„๊ตฌ๋Š” flag์ž…๋‹ˆ๋‹ค. ์ € ๋˜ํ•œ flag๋กœ ์‹œ์ž‘ํ•˜์—ฌ cobra, unfave ๋“ฑ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์จ๋ณด๋‹ค๊ฐ€ ๊ฒฐ๊ตญ์€ ์ž˜ ์‚ฌ์šฉํ•˜๋˜ cobra๋ฅผ ๋ฒ„๋ฆฌ๊ณ  flag๋กœ ๋‹ค์‹œ ๋Œ์•„์™”์Šต๋‹ˆ๋‹ค. go์˜ ๋‚ด์žฅํ˜• option parser๋กœ ์‹ฌํ”Œํ•˜์ง€๋งŒ, ํŽธ์˜์„ฑ์„ ์œ„ํ•œ ๋ถ€๋ถ„๋“ค์€ ๋งŽ์ด ์ ์–ด์„œ ๋•Œ๋•Œ๋กœ, ์ง...

Rails generate ์‹œ ๋ฉˆ์ถ”๋Š” ๊ฒฝ์šฐ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

์ œ๊ฐ€ 2019๋…„๋ถ€ํ„ฐ go๋ฅผ ๋ฉ”์ธ์–ธ์–ด๋กœ ํ™•์ •ํ•˜๋ฉด์„œ ruby๋กœ ๊ฐœ๋ฐœํ•  ์ผ์ด ๋งค์šฐ ์ค„์–ด๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜๋„ ๊ฐ€๋”์”ฉ ๋น ๋ฅด๊ฒŒ ์ž‘์—…์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ ruby๋ฅผ ์˜๋„ํ•˜์ง€ ์•Š๊ฒŒ ์‚ฌ์šฉํ•˜๋Š”๋ฐ, ๊ฐ„ํ˜น rails g, rails generate ์‹œ ๋ฉˆ์ถ”๋Š” ์ƒํ™ฉ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ ์›์ธ๊ณผ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ๊ธ€ ์ž‘์„ฑํ•ด๋ด…๋‹ˆ๋‹ค :D Solution rail...

MacOS Atom์—์„œ ์ด๋ชจ์ง€ ์‚ฌ์šฉ ๋ถˆ๊ฐ€ ๋ฒ„๊ทธ ํ•ด๊ฒฐํ•˜๊ธฐ

Atom์„ ์‚ฌ์šฉํ•˜๋˜ ์ค‘ ์€๊ทผํžˆ ๋ถˆํŽธํ•œ ๋ถ€๋ถ„์ด ํ•˜๋‚˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฐ”๋กœ ์ด๋ชจ์ง€๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋Š” ์ด์Šˆ์ธ๋ฐ์š”. ๊ณ ์ณ์„œ ์จ์•ผ์ง€ ํ•˜๋‹ค๊ฐ€ ์ด์ œ์„œ์•ผ ์†”๋ฃจ์…˜์„ ์ฐพ์•„๋ณด๊ณ  ์ ์šฉํ•ด์„œ ์‚ฌ์šฉํ•˜๋‹ˆ ํŒจ์น˜ ์ „๊นŒ์ง„ ์ž„์‹œ๋ฐฉํŽธ์œผ๋กœ ์“ธ๋งŒํ•œ ๊ฒƒ ๊ฐ™์•„ ๊ธ€๋กœ ๊ฐ„๋‹จํ•˜๊ฒŒ ๊ณต์œ ๋“œ๋ฆฝ๋‹ˆ๋‹ค. Problem ๋งจ ์ฒ˜์Œ ์ด์•ผ๊ธฐ๋“œ๋ฆฐ๋Œ€๋กœ ์ด๋ชจ์ง€๊ฐ€ ์‚ฌ์šฉ ๋ถˆ๊ฐ€๋Šฅํ•œ ์ด์Šˆ๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ข€...

Git pull/merge ์ถฉ๋Œ ์‹œ ๊ธฐ๋ณธ ์—๋””ํ„ฐ ๋ณ€๊ฒฝ, ์—๋””ํ„ฐ ๋„์šฐ์ง€ ์•Š๊ธฐ

git์€ ๋•Œ๋•Œ๋กœ git pull ๋“ฑ remote์˜ ์†Œ์Šค๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ์ค‘ ์ถฉ๋Œ์ด ์žˆ๋Š” ๊ฒฝ์šฐ ์—๋””ํ„ฐ๊ฐ€ ์—ด๋ฆฌ๋ฉฐ ์ •๋ณด๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ฉ๋‹ˆ๋‹ค. ์ €์˜ ๊ฒฝ์šฐ nvim์„ ๊ธฐ๋ณธ ์—๋””ํ„ฐ๋กœ ์‚ฌ์šฉํ•˜๋Š”๋ฐ, ์ฝ”๋“œ ๋จธ์ง€ ๋‹จ๊ณ„์—์„œ ์—ด๋ฆฌ๋Š” ๊ธฐ๋ณธ ์—๋””ํ„ฐ๊ฐ€ nano๋ผ ์ƒ๋‹นํžˆ ๋ถˆํŽธํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  CI์—์„œ ์ด๋Ÿฌํ•œ ํŒ์—…์€ ์ž๋™ํ™”๋œ push ๊นŒ์ง€ ์ด์–ด์ง€๋Š”๋ฐ ๋ถˆ...

[Phoenix #2] Added change note

Cullinan๊ณผ ๋™์ผํ•˜๊ฒŒ Phoenix์—๋„ change note๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ๋ถ€ํ„ด phoenix ํŽ˜์ด์ง€์—์„œ ๋ณ€๊ฒฝ ์ด๋ ฅ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ตฌํ˜„ ๋ฐฉ์‹ ๋˜ํ•œ ๋™์ผํ•˜๋‹ˆ ์•„๋ž˜ ๋งํฌ๋ฅผ ์ฐธ๊ณ ํ•ด์ฃผ์„ธ์š”. https://www.hahwul.com/2021/01/09/cullinan-2-added-change-log/

[Phoenix #1] Phoenix์— gist ๊ธฐ๋ฐ˜ snippets๊ฐ€ ์ถ”๊ฐ€

์ด์ „๋ถ€ํ„ฐ ๋””์ž์ธ/๊ธฐ๋Šฅ ๋“ฑ ๋ธ”๋กœ๊ทธ ๋ณ€๊ฒฝ์‚ฌํ•ญ์— ๋Œ€ํ•œ ๊ธ€๋„ ์ž‘์„ฑํ•˜๋ ค๊ณ  ํ–ˆ์—ˆ๋Š”๋ฐ, ์˜ฌํ•ด๋˜์„œ์•ผ ์žฌ๋Œ€๋กœ ์‹œ์ž‘๋˜๋„ค์š”. ์‚ฌ์‹ค ๋ญ ์ค‘์š”ํ•œ ์ •๋ณด๊ฑฐ๋ฆฌ๋Š” ์•„๋‹ˆ๊ณ , ๊ทธ๋ƒฅ ๊ฐœ์ธ์ ์œผ๋กœ ๋ณ€๊ฒฝ์‚ฌํ•ญ์— ๋Œ€ํ•œ ๊ธฐ๋ก์ด ์žˆ์œผ๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™์•„์„œ ํƒœ๊ทธ ํ•˜๋‚˜ ์ถ”๊ฐ€ํ•˜๊ณ  ์ž‘์„ฑํ•ด๋ด…๋‹ˆ๋‹ค. ์•„๋งˆ ๊ฐ„๋‹จํ•œ ๋‚ด์šฉ๋“ค๋งŒ ๋“ค์–ด๊ฐˆ ๊ฒƒ ๊ฐ™์•„์š”. ๊ทธ ์ฒซ๋ฒˆ์งธ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์œผ๋กœ๋Š” phoenix ํŽ˜์ด...

How to applying IntelliJ theme in ZAP

์–ด์ œ BurpSuite์˜ Customizer์— ๋Œ€ํ•œ ๊ธ€์„ ์ผ์—ˆ์Šต๋‹ˆ๋‹ค. BurpSuite์—์„œ FlatLaf์˜ IntelliJ Theme๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•ด์ฃผ๋Š” ํ™•์žฅ ๊ธฐ๋Šฅ์ด์˜€๊ณ , ๊ธ€ ๋ง๋ฏธ์™€ ๋Œ“๊ธ€์—๋„ ์ž‘์„ฑํ–ˆ๋“ฏ์ด ZAP ๋˜ํ•œ 2.10 ๋ฒ„์ „๋ถ€ํ„ฐ FlatLaf๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ตฌํ˜„์ด ๊ฐ€๋Šฅํ• ๊ฑฐ๋ž€ ์ƒ๊ฐ์ด ๋“ค์—ˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฐœ์ธ...

๋‚ด๊ฐ€ ์˜คํ”ˆ ์†Œ์Šค ํ”„๋กœ์ ํŠธ๋ฅผ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” Github actions๊ณผ App

์˜ค๋Š˜์€ ์ œ๊ฐ€ ์˜คํ”ˆ์†Œ์Šค ํ”„๋กœ์ ํŠธ์—์„œ ์ฃผ๋กœ ์‚ฌ์šฉํ•˜๋Š” git-action ๊ณผ app์— ๋Œ€ํ•ด ๊ฐ€๋ณ๊ฒŒ ์†Œ๊ฐœํ•ด๋“œ๋ฆด๊นŒ ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธ๋“ค๊ณผ ๋น„๊ตํ•ด๋ณด๋ฉด ์ „ ๊ทธ๋ƒฅ ๋งŽ์ง€๋„, ์ ์ง€๋„ ์•Š์€ ์–‘์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ ๊ฐ™๋„ค์š” ๐Ÿ˜ Build and test ์šฐ์„  ์•ฑ์— ๋Œ€ํ•œ ๋นŒ๋“œ/ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋Š” ๋Œ€๋‹ค์ˆ˜ ํ”„๋กœ์ ํŠธ์— ๋ฌด์กฐ๊ฑด ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ์ œ๊ฐ€ ๋กœ์ปฌ์—์„œ ๋‹จ์ˆœํ•˜๊ฒŒ...

Make cloud base ZAP Scanning Environment Using github-action

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 confi...

Github 2FA ์ธ์ฆ ์ดํ›„ Authentication Error ํ•ด๊ฒฐํ•˜๊ธฐ

Gitub๋Š” ํŽธ์˜์„ฑ ๋•Œ๋ฌธ์— 2FA(Two-Factor) ์ธ์ฆ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•˜์—ˆ๋Š”๋ฐ, Marketplace ์—…๋ฐ์ดํŠธ๋ฅผ ์œ„ํ•ด ์•ฝ๊ฐ„์˜ ๋ถˆํŽธํ•จ์„ ๊ฐ์ˆ˜ํ•˜๊ณ  2FA๋ฅผ ์„ค์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. (์–ด์ฐจํ”ผ ๋‹ค๋ฅธ ์„œ๋น„์Šค์—์„œ ์ด๋ฏธ ๋งŽ์ด ์“ฐ๊ณ ์žˆ๋˜ ์ƒํƒœ๋ผ.. ๋ญ ์‚ฌ์‹ค ํฌ๊ฒŒ ๋ถˆํŽธํ• ๊ฒŒ ์—†์„ ์ค„ ์•Œ์•˜์ฃ ) ๋‹ค๋งŒ Two Factor ์ดํ›„๋ถ€ํ„ฐ ํ„ฐ๋ฏธ๋„์—์„œ git ์ž‘...

Jekyll Build Speed Up!

์ข…์ข… ์ œ Github page๋Š” ๋นŒ๋“œ๊ฐ€ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค. ๋ฌผ๋ก  ๋Œ€๋žต์ ์ธ ์ด์œ ๋Š” ์•Œ๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. Github page๋Š” ์•ฝ ์ตœ๋Œ€ 13๋ถ„ ์ „ํ›„ ์ •๋„์˜ build time์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š”๋ฐ, ์ด๋ฅผ ๋„˜์–ด๊ฐ€๊ฒŒ ๋˜๋ฉด pending ๋˜๊ฑฐ๋‚˜ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค. ์ œ Jekyll์˜ ๋นŒ๋“œ ์‹œ๊ฐ„์ด 15๋ถ„ ์ •๋„ ๊ฑธ๋ฆฌ๋˜ ์ƒํƒœ๋กœ ๋‹น์—ฐํžˆ ์‹คํŒจํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋ฐœ์ƒํ–ˆ์—ˆ์ฃ ...

Jekyll feed.xml ์ตœ์†Œํ™”ํ•˜๊ธฐ

RSS๋Š” ๋งค์šฐ ์˜ค๋ž˜๋œ ๊ธฐ์ˆ ์ด์ง€๋งŒ, ์•„์ง๊นŒ์ง€๋„ ๋งŽ์€ ์›น ์„œ๋น„์Šค์—์„œ ์ง€์›ํ•˜๊ณ  ์‚ฌ์šฉ๋˜๋Š” ๊ธฐ์ˆ ์ž…๋‹ˆ๋‹ค. ์ผ๋ฐ˜ ์‚ฌ์šฉ์ž๊ฐ€ ๋ฆฌ๋”๋ฅผ ํ†ตํ•ด ์‰ฝ๊ฒŒ ๊ธ€ ๋ชฉ๋ก์„ ๋ฐ›์•„์„œ ์ฝ์„ ์ˆ˜ ์žˆ๊ณ , SEO ๊ด€์ ์—์„œ๋„ ์ƒ๋‹นํžˆ ์ค‘์š”ํ•œ ๋ถ€๋ถ„์ž…๋‹ˆ๋‹ค. ๋‹ค๋งŒ ๊ฐ„ํ˜น ์ด๋ฅผ ์ด์šฉํ•ด์„œ ์ž๋™์œผ๋กœ ๋ณธ๋ฌธ์„ ํผ๋‚˜๋ฅด๋Š” ๋น„๋„๋•์ ์ธ ์„œ๋น„์Šค๊ฐ€ ์žˆ๊ธฐ ๋งˆ๋ จ์ž…๋‹ˆ๋‹ค. (ํ‰์†Œ๋ผ๋ฉด ๋ณ„๋กœ ์‹ ๊ฒฝ ์•ˆ์ผ์ง€๋งŒ,...

workflow_dispatch๋ฅผ ์ด์šฉํ•œ github action ์ˆ˜๋™ ํŠธ๋ฆฌ๊ฑฐ

์ด๋ฒˆ ์ฃผ๋ง์— ์ง‘ ์„œ๋ฒ„์— ์žˆ๋˜ ์ž๋™ํ™” ๋กœ์ง ์ค‘ ์ผ๋ถ€๋ฅผ github action์œผ๋กœ ์ด๋™ํ•˜๋Š” ์ž‘์—…์„ ์ง„ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ์–ด์ฐจํ”ผ git pro๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์–ด์„œ, ์›” 3000๋ถ„์˜ private repo์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” github action์˜ ์‹œ๊ฐ„์ด ์žˆ๊ธฐ๋„ํ•˜๊ณ , ์•„๋ฌด๋ž˜๋„ ํด๋ผ์šฐ๋“œ ํ™˜๊ฒฝ์ด๋‹ค๋ณด๋‹ˆ, ํ”ผ์”จ๊บผ์ง ๋“ฑ์œผ๋กœ ์ธํ•ด cron์ด ๋™์ž‘...

Jekyll์— Utterances, Giscus ๋Œ“๊ธ€ ์ ์šฉํ•˜๊ธฐ

์ตœ๊ทผ์— ๋ธ”๋กœ๊ทธ๋ฅผ blogger์—์„œ github page๋กœ ์˜ฎ๊ธฐ๋ฉด์„œ ๋Œ“๊ธ€์„ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ํ™˜๊ฒฝ์ด ์‚ฌ๋ผ์กŒ์Šต๋‹ˆ๋‹ค. Jekyll์—์„œ ๋งŽ์ด๋“ค ์‚ฌ์šฉํ•˜์‹œ๋Š” Disqus์˜ ๊ฒฝ์šฐ ๊ฐœ์ธ์ ์œผ๋กœ ๊ด‘๊ณ  ์ด์Šˆ๋•Œ๋ฌธ์— ์ข‹์•„ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋Œ“๊ธ€ ์„œ๋น„์Šค๋ฅผ ๋‹ค์‹œ ์ฐพ์•„๋ดค๊ณ , github issue ๊ธฐ๋ฐ˜์˜ ๋Œ“๊ธ€ ์„œ๋น„์Šค์ธ Utterances๋ฅผ ์•Œ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค....

How to add custom header in ZAP and zap-cli

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 ...

golang ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ self update ์ ์šฉํ•˜๊ธฐ(github latest version ๊ธฐ๋ฐ˜)

๋ฉ”๋ชจ ์ฐจ์›์—์„œ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค. dalfox 1.1 ๋ฒ„์ „๋Œ€ ์—…๋ฐ์ดํŠธ์—์„œ ํฐ ๋ถ€๋ถ„ ์ค‘ ํ•˜๋‚˜๊ฐ€ self-update์ž…๋‹ˆ๋‹ค. ์ด์ „์— xspear, a2sv ๋“ฑ์—์„œ๋„ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์œผ๋กœ self-update๋ฅผ ์ง€์›ํ–ˆ์—ˆ๋Š”๋ฐ ์ด๋ฒˆ dalfox๋Š” ๋ฐ”์ด๋„ˆ๋ฆฌ๋กœ ์ปดํŒŒ์ผ๋˜์„œ ๋ฐฐํฌ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๊ณ ๋ฏผ์ด ์ข€ ๋งŽ์•˜์Šต๋‹ˆ๋‹ค. (์ด์ „๊นŒ์ง„ git command ๊ธฐ๋ฐ˜...

Go net/http์—์„œ tls: no renegotiation error ํ•ด๊ฒฐํ•˜๊ธฐ

์—๋Ÿฌ์˜ ๋‚ด์šฉ์„ ์š”์•ฝํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค. renegoriation ๋ฏธ์„ค์ •์œผ๋กœ ์ธํ•œ ๋ฐœ์ƒ์ด๋„ค์š”. local error: tls: no renegotiation dalfox ๋ฆด๋ฆฌ์ฆˆ ํ›„ ์ฒ˜์Œ์œผ๋กœ ์ด์Šˆ์˜ฌ๋ผ์˜จ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์–ธ์–ด์—์„œ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์„ค์ •๋˜์–ด ์žˆ์–ด์„œ, ํฌ๊ฒŒ ์‹ ๊ฒฝ์“ฐ์ง€ ์•Š์•˜์—ˆ๋Š”๋ฐ, go์˜ ๊ฒฝ์šฐ ๊ธฐ๋ณธ์œผ๋กœ ํฌํ•จ๋˜์ง€ ...

Write Metasploit Module in Golang

Metaploit์—์„œ 2018๋…„ 12์›”๋ถ€ํ„ฐ golang module ์ง€์›์ด ์‹œ์ž‘๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ €๋„ ์ž˜ ๋ชจ๋ฅด๊ณ  ์žˆ๋‹ค๊ฐ€ ์ตœ๊ทผ์—์„œ์•ผ ์•Œ๊ฒŒ ๋˜์—ˆ๋„ค์š”. Contributing modules in GO can be achieved in a few simple steps as outlined below. As for supporte...

theme-color๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ชจ๋ฐ”์ผ ํฌ๋กฌ ๋ธŒ๋ผ์šฐ์ €์—์„œ toolbar ์˜์—ญ ์ƒ‰์ƒ ๋ฐ”๊พธ๊ธฐ

๋ชจ๋ฐ”์ผ ๊ธฐ๊ธฐ๋กœ ๊ฒ€์ƒ‰ํ•˜๋‹ค ๋ณด๋ฉด ๊ฐ€๋” ์ƒ๋‹จ์˜ ํˆด๋ฐ” ์˜์—ญ(์ฃผ์†Œํ‘œ์‹œ์ค„์ด ํฌํ•จ๋œ..)์˜ ์ƒ‰์ƒ์ด ๋‹ค๋ฅธ ์‚ฌ์ดํŠธ๋“ค์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์ดํŠธ๋ณ„๋กœ ๋‹ค ๋‹ค๋ฅธ ์ƒ‰์ƒ์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์–ด์„œ ๋ถ„๋ช… HTML/CSS/JS ์ค‘ ํ•˜๋‚˜ ์ผ๊บผ๋ผ ์ƒ๊ฐํ–ˆ์—ˆ๋Š”๋ฐ, @yozora770 ์˜ ๋„์›€์œผ๋กœ ์•Œ๊ฒŒ๋˜์–ด ๊ฐ€๋ณ๊ฒŒ ๋ธ”๋กœ๊ทธ ๊ธ€๋กœ ์ž‘์„ฑํ•ด๋ด…๋‹ˆ๋‹ค. ์‚ฌ์‹ค 2014๋…„ ํฌ๋กฌ 39๋ฒ„์ „...

Blogger์—์„œ ์žฌ๊ท€ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ์ „์ฒด ๊ธ€ ๋ฆฌ์ŠคํŠธ ์–ป์–ด์˜ค๊ธฐ(for Archive page , JSONP API)

์–ด์ œ ๋ฐค๋ถ€ํ„ฐ ๊ธ‰ ์‚˜๋ฐ›์•„์„œ Archive ํŽ˜์ด์ง€๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. https://www.hahwul.com/p/blog-archive.html ๋ณดํ†ต ๊ฒŒ์‹œ๊ธ€ ๋ฆฌ์ŠคํŠธ๋Š” Pagination ๋˜์–ด ํ•œ๋ฒˆ์— ์ง€์ •๋œ ๊ฐฏ์ˆ˜์˜ ๊ฒฐ๊ณผ๋งŒํผ๋งŒ ํ™•์ธํ•  ์ˆ˜ ์žˆ๊ฒŒ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ € ๋˜ํ•œ ์ œ ๋ธ”๋กœ๊ทธ ๋ฉ”์ธ ํŽ˜์ด์ง€๋‚˜ ๊ฒ€์ƒ‰์ชฝ์€ ๋™์ผํ•˜๊ฒŒ ์ ์šฉ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค....

Cookie and SameSite

์˜ฌ 2์›”๋ถ€ํ„ฐ Chrome ๋ธŒ๋ผ์šฐ์ €์—์„œ SameSite=Lax๊ฐ€ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ๋ณ€๊ฒฝ๋ฉ๋‹ˆ๋‹ค. Early October, 2019: Experimental SameSite-by-default and SameSite=None-requires-Secure behavior launched to 50% of users on Chrom...

Terminal์—์„œ์˜ golang ๊ฐœ๋ฐœ์„ ์œ„ํ•œ vim-go ์„ธํŒ…ํ•˜๊ธฐ

TL;DR One-line script cd ~/.vim ; mkdir autoload ; mkdir bundle ;cd autoload \ curl -LSso pathogen.vim https://tpo.pe/pathogen.vim ; \ cd ~/.vim/bundle ; git clone https://github.co...

Update golang 1.10 to 1.13 with update-golang(subfinder install error fix)

SubFinder ์„ค์น˜ ์ค‘ undefined: os.UserHomeDir , undefined: strings.ReplaceAll ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•ด์„œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• ์ •๋ฆฌํ•ด๋‘ก๋‹ˆ๋‹ค. ์•„๋งˆ.. ํ˜„์žฌ ์ผ๋ถ€ ํ”ผ์”จ์—์„œ ์„ค์น˜ ์‹œ ์œ„์™€ ๊ฐ™์€ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ• ํ…๋ฐ์š”, ์›์ธ์€ golang ์˜ ๋ฒ„์ „ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. subfinder๊ฐ€ ์ตœ๊ทผ์— go 1.13 ...

Fixing a pip3 crash error after a Mac Catalina update

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. pip3 install objection [1] 6655...

Check logic vulnerability point using GET/HEAD in Ruby on Rails

์ตœ๊ทผ์— Github OAuth flow bypass ์ทจ์•ฝ์ ์ด ๊ณต๊ฐœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ์ทจ์•ฝ์ ์€ Rails ์•ฑ์˜ ํŠน์„ฑ์„ ์ด์šฉํ•œ ์ทจ์•ฝ์ ์ด๊ณ , Github๋งŒ์˜ ๋ฌธ์ œ๊ฐ€ ์•„๋‹ˆ๊ณ  ํŒจ์น˜๋กœ ๋ชจ๋“  Rails ์•ฑ์„ ๋ณดํ˜ธํ•  ์ˆ˜๋„ ์—†์Šต๋‹ˆ๋‹ค. Today, I going to review one vulnerability that needs to be ch...

[๋ฃจ๋น„์—์„œ Go๋กœ ๋„˜์–ด๊ฐ€๊ธฐ] Revel์„ ์ด์šฉํ•ด MVC ์›น ๊ตฌ์„ฑํ•˜๊ธฐ

Ruby์—์„œ golang์œผ๋กœ ์ฃผ๋ ฅ ์–ธ์–ด๋ฅผ ๋ฐ”๊ฟ”๊ฐ€๋Š” ์ค‘์ž…๋‹ˆ๋‹ค. ์ด ๊ณผ์ •์—์„œ ๊ฐ€์žฅ ๋ฌธ์ œ๊ฐ€ ๋˜๋Š” ๋ถ€๋ถ„์ด ์›น์•ฑ์ด์˜€์Šต๋‹ˆ๋‹ค. ์ด๋ฏธ Rails์— ์ต์ˆ™ํ•ด์ง„ํ„ฐ๋ผ ๋Œ€์•ˆ์ด ๋ ๋งŒํ•œ ์—ฌ๋Ÿฌ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์ฐพ์•„๋ดค๊ณ , 2๊ฐ€์ง€ ์ƒ๊ฐ์ด ๋‚˜์™”์Šต๋‹ˆ๋‹ค. revel์„ ํ†ตํ•œ ๊ฐœ๋ฐœ(MVC) ๊ธฐ๋ณธ์œผ๋กœ ์ œ๊ณต๋˜๋Š” net/http์™€ VueJS ์กฐํ•ฉ go์— MVC...

Mac ์—…๊ทธ๋ ˆ์ด๋“œ ํ›„ xcrun: error: invalid active developer path ์—๋Ÿฌ ํ•ด๊ฒฐํ•˜๊ธฐ

MacOS ์—…๊ทธ๋ ˆ์ด๋“œ ์‹œ ์–ด๊น€์—†์ด ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ๊ฐ€ ํ•˜๋‚˜ ์žˆ์Šต๋‹ˆ๋‹ค ๐Ÿ˜ซ ๋ฐ”๋กœ ๊ฐœ๋ฐœ ๊ด€๋ จ ๋„๊ตฌ ์‚ฌ์šฉ ์‹œ ๋Œ€๋‹ค์ˆ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” missing xcrun ์—๋Ÿฌ์ธ๋ฐ์š”. ์˜ค๋Š˜์€ ๋งค๋ฒˆ ์—…๋ฐ์ดํŠธ ๋งˆ๋‹ค ๊ผญ ํ•ด์•ผํ•  ์ผ ์ค‘ ํ•˜๋‚˜๊ฐ€ ๋˜์–ด๋ฒ„๋ฆฐ ๊ทธ ๋ฌธ์ œ์™€ ์–ด๋–ป๊ฒŒ ํ•ด๊ฒฐํ•˜๋Š”์ง€ ์ด์•ผ๊ธฐํ• ๊นŒ ํ•ฉ๋‹ˆ๋‹ค. TL;DR xcode-select --install ...

The scratchpad is deprecated from Firefox 72 version(์Šคํฌ๋ž˜์น˜ํŒจ๋“œ ์ค‘๋‹จ...)

์–ด์ œ ํŒŒ์ด์–ดํญ์Šค ์Šคํฌ๋ž˜์น˜ ํŒจ๋“œ๋ฅผ ์“ฐ๋ ค๊ณ  ๋ณด๋‚˜๋ณด๋‹ˆ.. ์ถฉ๊ฒฉ์ ์ธ ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค. ๋น„ํ™œ์„ฑํ™”๋ผ๋‹ˆโ€ฆ=_= ๋ฐ”๋กœ Deprecated ๋œ๋‹ค๋Š”๊ฑด๋ฐ์š”.. ์†”์งํžˆ ๊ฐœ๋ฐœํ• ๋•Œ๋‚˜ XSS ์ฐพ์„ ๋•Œ ์ž˜ ์จ๋จน์—ˆ๋Š”๋ฐ ๋ญ”๊ฐ€ ์•„์‰ฌ์šด ๋งˆ์Œ์ด ๋“œ๋„ค์š”.. ์ฐพ์•„๋ณด๋‹ˆ ๋ชจ์งˆ๋ผ...

Golang ์œผ๋กœ ๋งŒ๋“  ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ Heroku์— ๋ฐฐํฌํ•˜๊ธฐ

์š”์ฆ˜ ๊ณต๋ถ€๋„ํ• ๊ฒธ golang ์œผ๋กœ ๋„์ ๋„์  ๋งŒ๋“ค์–ด๋ณด๊ณ  ์žˆ๋Š”๊ฒŒ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ์ค‘ ์ผ๋ถ€๋Š” ์›น ํ™˜๊ฒฝ์œผ๋กœ ๊ตฌ์„ฑํ•˜๊ณ  heroku์— ๋„์šธ ์ƒ๊ฐ์ธ๋ฐ, ๋ฃจ๋น„์ฒ˜๋Ÿผ ์‚ฌ์ „์— ์„ธํŒ…์ด ํ•„์š”ํ•œ ๋ถ€๋ถ„๋“ค์ด ์žˆ์–ด์„œ ๋‚ด์šฉ ์ •๋ฆฌํ•ด๋‘ก๋‹ˆ๋‹ค. Pre-setting ์šฐ์„ , GoLand ๊ฐ™์€ IDE๋ฅผ ์“ฐ๋”๋ผ๋„ ๋นŒ๋“œ ๋กœ๊ทธ ๋–„๋ฌธ์— ์ปค๋ฐ‹๊นŒ์ง€๋งŒ IDE์—์„œ ํ•˜๋Š”๊ฒŒ ๊ฐœ์ธ์ ์œผ๋ก ...

How to Remove Unused JS/CSS with Browser developers tool

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 servi...

Rails์—์„œ HTTP Basic Auth ์ ์šฉํ•˜๊ธฐ

HTTP Basic Auth๋Š” HTTP์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ์ธ์ฆ ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ID/PW๋ฅผ Base64๋กœ ์ธ์ฝ”๋”ฉํ•ด์„œ Auth ํ—ค๋”์— ๋„ฃ์–ด ์„œ๋ฒ„๊ฐ€ ์‹ ๋ขฐ๋œ ์‚ฌ์šฉ์ž์ธ์ง€ ๊ฒ€์ฆํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค. ๋ฌผ๋ก  http ํ™˜๊ฒฝ, MITM์ด ๊ฐ€๋Šฅํ•œ ์ƒํƒœ์˜ ํ™˜๊ฒฝ์—์„  ๊ต‰์žฅํžˆ ์œ„ํ—˜ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ์‹์ด์ง€๋งŒ, ๋ณ„๋‹ค๋ฅธ ๊ฑฑ์ • ์—†์ด ์‰ฝ๊ฒŒ ์ธ์ฆ์„ ์ ์šฉํ•  ...

HTTP Request(ZAP, Burp) Parsing on Ruby code

XSpear ๊ด€๋ จํ•ด์„œ ์ด๋Ÿฐ ๊ฑด์˜์‚ฌํ•ญ์ด ํ•˜๋‚˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. Burp, ZAP ๋“ฑ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ํŒจํ‚ท ๋ฐ์ดํ„ฐ๋ฅผ ํŒŒ์ผ๋กœ ์ €์žฅํ•œ ํ›„ ์˜ต์…˜์„ ์ฃผ์–ด ์ฝ์œผ๋ฉด ์ž๋™์œผ๋กœ URL, Header ๋“ฑ์„ ํŒŒ์‹ฑํ•ด์„œ ์‚ฌ์šฉํ•˜๋Š” ํ˜•ํƒœ๋ฅผ ๋ง์”€ํ•˜์‹  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.(๋งˆ์น˜ sqlmap์˜ ๊ทธ๊ฒƒ ์ฒ˜๋Ÿผ) ๊ฐ„๋‹จํ•˜๊ฒŒ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•œ ๋กœ์ง ์ž‘์„ฑํ•ด์„œ ๋ธ”๋กœ๊ทธ ๊ธ€๋กœ ๋‚จ๊ฒจ๋‘ก๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ...

Displaying cli base table at ruby application on terminal

I Simply write it (for note). It is easy to develop using terminal-table. How to Install? gem install terminal-table on Code You can set the header or size using options of the ...

Ruby on Rails Double-Tap ์ทจ์•ฝ์ (CVE-2019-5418, CVE-2019-5420)

๊ฐ„๋งŒ์— ์ทจ์•ฝ์  ๋ฆฌ๋ทฐํ•ด๋ด…๋‹ˆ๋‹ค. ์˜ฌ ๋ด„์— ์ •๋ฆฌํ•œ๋ฒˆํ•˜๊ณ  ์ตœ๊ทผ์— ์ถ”๊ฐ€๋กœ ์ •๋ฆฌํ–ˆ๋˜๊ฑฐ๋ผ ๋จธ๋ฆฌ์†์—์„œ ๋‚ ์•„๊ฐ€๊ธฐ ์ „์— ๋ธ”๋กœ๊ทธ ๊ธ€๋กœ ๋‚จ๊ฒจ๋ณด์•„์š”. ์šฐ์„  ์˜ฌ ํ•ด 3์›” ์ •๋„์— ๋ ˆ์ผ์ฆˆ ๊ด€๋ จ ์ทจ์•ฝ์ ์ด 3๊ฐœ์ •๋„ ์˜ฌ๋ผ์™”์—ˆ์Šต๋‹ˆ๋‹ค. CVE-2019-5418 ~ 5420 ์ด์Šˆ์ธ๋ฐ, ๊ฒฐ๊ณผ์ ์œผ๋ก  Rails์—์„œ ์‹œ์Šคํ…œ ํŒŒ์ผ์„ ์ฝ๊ณ , ๋ช…๋ น ์‹คํ–‰๊นŒ์ง€ ๊ฐ€๋Šฅํ•œ 3๊ฐ€์ง€์˜€์Šต๋‹ˆ...

Finding in-page scripts & map files with javascript (very simple..)

๋ณ„ ์ฝ”๋“œ๋Š” ์•„๋‹ˆ์ง€๋งŒ ๋งŒ๋“ค์–ด ๋†“๊ณ  ์“ฐ๋ฉด ํŽธํ•˜๋‹ˆ.. ํŽ˜์ด์ง€์— ์žˆ๋Š” ์™ธ๋ถ€ ์Šคํฌ๋ฆฝํŠธ ๋งํฌ์™€ map ํŒŒ์ผ ๋งํฌ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. (map์€ ๊ทธ๋ƒฅ ๋ฌด์กฐ๊ฑด ๋‚˜ํƒ€๋‚˜๊ฒŒ..) function scripts() { var scripts = document.scripts Object.values(scripts).forEach(fu...

Rails์—์„œ routing parameters์™€ ๋™์ผํ•œ ์ด๋ฆ„์˜ ํŒŒ๋ผ๋ฏธํ„ฐ ์ฒ˜๋ฆฌํ•˜๊ธฐ

Rails์—์„œ ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฐ’์€ params๋ฅผ ํ†ตํ•ด ๋ฐ›์•„์˜ต๋‹ˆ๋‹ค. ์ด ๊ณผ์ • ์ค‘ ๋ ˆ์ผ์ฆˆ์—์„œ ๊ธฐ๋ณธ์œผ๋กœ ์„ค์ •ํ•œ ๊ฐ’์ด ์žˆ์–ด ์ฝ์–ด์˜ค์ง€ ๋ชปํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ”๋กœ ์ด๋Ÿฐ ์ผ€์ด์Šค์ž…๋‹ˆ๋‹ค. Request GET /testzzz HTTP/1.1 ..blahblah... {"supersecretdata":"no","action":{"params...

Github Dark Theme with "stylus" add-on

์ด๋Ÿฐ ๋Š๋‚Œ์ด ๋ฉ๋‹ˆ๋‹ค. Install Stylus Browser Add-on(Extension) https://addons.mozilla.org/en-US/firefox/addon/styl-us/ https://chrome.google.com...

How to resolve duplicate mail transmission in Rails ActionMailer(์ค‘๋ณต ๋ฉ”์ผ ์ „์†ก ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•)

Rails์—์„œ ActionMailer๋ฅผ ์ด์šฉํ•˜๋ฉด ์‰ฝ๊ฒŒ ๋ฉ”์ผ ์†ก/์ˆ˜์‹  ๋กœ์ง์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ActionMailer๋กœ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๊ตฌ์„ฑํ•ด์„œ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š”๋ฐ, ํŠน์ • ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๋ฉ”์ผ์ด ์ค‘๋ณต์œผ๋กœ ๋ฐœ์†ก๋˜๋Š” ์ด์Šˆ๊ฐ€ ์žˆ์—ˆ๋Š”๋ฐ์š”, ์ฐพ์•„๋ณด๋‹ˆ ์ •ํ™•ํ•œ ์ด์œ ๋Š” ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ ์ž์ฒด์ ์ธ ๋ฒ„๊ทธ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค. (์ค‘๋ณต ์ฝœ์ด ์ผ์–ด๋‚˜๋Š” ๊ฒƒ ๊ฐ™์€๋ฐโ€ฆ)...

Send Gmail using Rails ActionMailer Class (ActionMailer๋ฅผ ์ด์šฉํ•˜์—ฌ Gmail ์ „์†กํ•˜๊ธฐ)

Rails๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ Mail ์†ก/์ˆ˜์‹ ์ด ๊ฐ€๋Šฅํ•œ ๊ฐ์ฒด๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋ณดํ†ต ์›น์—์„œ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋Šฅ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ฏธ๋ฆฌ ๊ตฌํ˜„๋˜์–ด ์žˆ๋Š” ์ƒํƒœ์ธ๋ฐ์š”, ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์˜์กด์„ฑ์ด๋‚˜ ๋ณต์žกํ•œ ์„ค์ • ์—†์ด ๊ฐ„๋‹จํ•œ ์ฝ”๋“œ๋กœ ๋ฉ”์ผ ์ฒ˜๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์˜ค๋Š˜์€ Rails์˜ ๊ธฐ๋ณธ ๊ฐ์ฒด์ธ ActionMailer๋ฅผ ์ด์šฉํ•˜์—ฌ Gmail์˜ ๋ฉ”์ผ ์†ก์‹ ํ•˜๋Š” ๋ฐฉ...

Rails App ์‹œ์ž‘ ์‹œ ํŠน์ • ์ฝ”๋“œ ์‹คํ–‰ํ•˜๊ธฐ(How to startup code on Ruby on Rails with initialize)

Rails ์•ฑ ๊ตฌ๋™ ์‹œ ํŠน์ • ์ž‘์—…์ด๋‚˜ ๋กœ์ง์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์–ด๋–ป๊ฒŒ ํ• ๊นŒ? ๊ณ ๋ฏผ์„ ์˜ˆ์ „์— ํ–ˆ์—ˆ๋Š”๋ฐ, ๊ทธ๋•Œ initialize๋กœ ํ•ด๊ฒฐํ–ˆ๋˜ ๊ธฐ์–ต์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ„๋งŒ์— ๋™์ผํ•œ ๊ณ ๋ฏผ์„ ์ž ๊นํ•˜๊ฒŒ ๋ฌ์—ˆ๋Š”๋ฐ, ๊ฒธ์‚ฌ๊ฒธ์‚ฌ ๊ธ€๋กœ ์ •๋ฆฌํ•ด๋‘ก๋‹ˆ๋‹ค. ์š”์•ฝํ•˜์ž๋ฉด application.rb ์—์„œ config.after_initialize๋กœ Rails ...

Rails crono๋ฅผ ์ด์šฉํ•˜์—ฌ ์Šค์ผ€์ค„๋งํ•˜๊ธฐ(Scheduling with crono on Rails)

๋ณดํ†ต ์œ ๋‹‰์Šค ๊ธฐ๋ฐ˜ PC์—์„  ์Šค์ผ€์ค„๋ง์„ ์œ„ํ•ด crontab ๋˜๋Š” at๋ฅผ ์‚ฌ์šฉํ•˜๊ณ , ์œˆ๋„์šฐ์—์„  ์„œ๋น„์Šค์— ๋“ฑ๋กํ•˜๋Š”์‹์œผ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด์„  ์‹œ์Šคํ…œ์—์„œ crontab ๊ฐ™์€ ๋„๊ตฌ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•ด์•ผํ•˜๋ฉฐ, PaaS ์ด์ƒ์˜ ์ถ”์ƒํ™”๊ฐ€ ์ด๋ฃจ์–ด์ง„ ํ”Œ๋žซํผ์—์„  ์‚ฌ์šฉํ•˜๊ธฐ ์–ด๋ ค์šด ๊ฒฝ์šฐ๊ฐ€ ๋Œ€๋‹ค์ˆ˜์ž…๋‹ˆ๋‹ค. ์˜ค๋Š˜์€ Rails์—์„œ crono๋ฅผ ์ด์šฉํ•ด์„œ A...

Rails์—์„œ kaminari๋ฅผ ์ด์šฉํ•˜์—ฌ Pagination ๊ตฌํ˜„ํ•˜๊ธฐ(How to make pagination on rails(with kaminari)

Rails์—์„œ ํŽ˜์ด์ง€(Pagination)๋ฅผ ์‰ฝ๊ฒŒ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” kaminari, will_paginate ๋“ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ์ค‘์—์„œ ์˜ค๋Š˜์€ kaminari๋ฅผ ๊ฐ€์ง€๊ณ  ํŽ˜์ด์ง€๋ฅผ ๋งŒ๋“œ๋Š” ๋‚ด์šฉ์œผ๋กœ ๊ธ€ ์ž‘์„ฑํ•ด๋ด…๋‹ˆ๋‹ค. A Scope & Engine based, clean, powerful, customizable...

Rails์—์„œ SuckerPunch๋ฅผ ์ด์šฉํ•˜์—ฌ ๋น„๋™๊ธฐ ์ž‘์—… ์ฒ˜๋ฆฌํ•˜๊ธฐ

Rails ๊ตฌ๋™์ค‘์— ์“ฐ๋ ˆ๋“œ ์ฒ˜๋ฆฌ ์‹œ ์•„๋ž˜์ฒ˜๋Ÿผ ์›๋ž˜ ๋ฃจ๋น„ ๊ตฌ๋ฌธ์ธ Thread๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Thread.new do Rails.application.executor.wrap do system('ping -c 5 127.0.0.1') result = Net::HTTP.get(URI.parse("htt...

๋ฃจ๋น„์—์„œ string-similarity๋กœ ๋ฌธ์ž์—ด ํผ์„ผํŠธ๋กœ ๋น„๊ตํ•˜๊ธฐ(Comparing string-similarity percent in Ruby)

ํ•œ ๋‘๋‹ฌ? ์ •๋„์ „์— ๋ฃจ๋น„ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ค‘์— ๊ดœ์ฐฎ์€๊ฑฐ ํ•˜๋‚˜ ๋ด๋‘”๊ฒŒ ์žˆ์—ˆ๋Š๋ฐ, ์ด์ œ์„œ์•ผ ๊ธ€๋กœ ์ž‘์„ฑํ•˜๋„ค์š”. ๋ฌธ์ž์—ด ๋น„๊ต ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ธ๋ฐ, ๋งค์นญ๋ฅ ์„ ํผ์„ผํŠธ๋กœ ๋ฝ‘์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ™œ์šฉ์ฒ˜๊ฐ€ ๋งŽ์„๋“ฏํ•˜์—ฌ ๋ฉ”๋ชจํ•ด๋‘ก๋‹ˆ๋‹ค. Install gem install string-similarity Code require 'string/simi...

[ Rails on Heroku ] ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” heroku ๋ช…๋ น์–ด ์ •๋ฆฌ

[ Rails on Heroku ] ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” heroku ๋ช…๋ น์–ด ์ •๋ฆฌ (https://www.hahwul.com/2019/04/what-is-heroku.html) [ Rails on Heroku ] ๊ฐ„๋‹จํ•œ ๋ฃจ๋น„ ๋ ˆ์ผ์ฆˆ ์•ฑ ๊ตฌ์„ฑ ๋ฐ Heroku์— ๋ฐฐํฌํ•˜๊ธฐ (https://www.hahwul.com/2019/04/rub...

[ Rails on Heroku ] ๊ฐ„๋‹จํ•œ ๋ฃจ๋น„ ๋ ˆ์ผ์ฆˆ ์•ฑ ๊ตฌ์„ฑ ๋ฐ Heroku์— ๋ฐฐํฌํ•˜๊ธฐ

[ Rails on Heroku ] ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” heroku ๋ช…๋ น์–ด ์ •๋ฆฌ (https://www.hahwul.com/2019/04/what-is-heroku.html) [ Rails on Heroku ] ๊ฐ„๋‹จํ•œ ๋ฃจ๋น„ ๋ ˆ์ผ์ฆˆ ์•ฑ ๊ตฌ์„ฑ ๋ฐ Heroku์— ๋ฐฐํฌํ•˜๊ธฐ (https://www.hahwul.com/2019/04/rub...

[ Rails on Heroku ] Heroku๋ž€? ๋น ๋ฅด๊ฒŒ ํ™˜๊ฒฝ ๊ตฌ์„ฑํ•˜๊ธฐ

[ Rails on Heroku ] ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” heroku ๋ช…๋ น์–ด ์ •๋ฆฌ (https://www.hahwul.com/2019/04/what-is-heroku.html) [ Rails on Heroku ] ๊ฐ„๋‹จํ•œ ๋ฃจ๋น„ ๋ ˆ์ผ์ฆˆ ์•ฑ ๊ตฌ์„ฑ ๋ฐ Heroku์— ๋ฐฐํฌํ•˜๊ธฐ (https://www.hahwul.com/2019/04/rub...

Metasploit์—์„œ ์ปค์Šคํ…€ ๋ฐฐ๋„ˆ ๋งŒ๋“ค๊ธฐ

๋ฉ”ํƒ€์Šคํ”Œ๋กœ์ž‡์—์„œ ์ปค์Šคํ…€ ๋ฐฐ๋„ˆ๋ฅผ ๋งŒ๋“œ๋Š” 2๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. Use MSFLOGO Env ์ฒซ๋ฒˆ์งธ ๋ฐฉ๋ฒ•์€ ๋ฐฐ๋„ˆ๋กœ ์‚ฌ์šฉํ•  ํŒŒ์ผ์„ ์ €์žฅํ•ด๋‘๊ณ , MSFLOGO๋ผ๋Š” ํ™˜๊ฒฝ๋ณ€์ˆ˜์— ๋„ฃ์–ด์„œ ์ ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ๋ฐฐ๋„ˆ๋Š” Ascii art ์‚ฌ์ดํŠธ๋“ค์„ ์ฐธ๊ณ ํ•˜๋ฉด ์˜ˆ์˜๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. export MSFLOGO=~/test/logo.txt ...

Get cookie value in Javascript function

Javascript ์—์„œ ์ฟ ํ‚ค ๊ฐ’ ๊ฐ€์ ธ์˜ค๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค. ์ž์ฃผ์“ฐ๋Š”๋ฐ, ๋”ฐ๋กœ ์ •๋ฆฌ ์•ˆํ•ด๋‘๋‹ˆ ์‚ฝ์งˆํ•˜๋Š” ๊ฒƒ ๊ฐ™๋„ค์š”.. ๋ฉ”๋ชจ ์ฐจ ๊ธ€ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ฝ”๋“œ์Šค๋‹ˆํ•! function gCookie(cookie) { var cookiestr=RegExp(""+cookie+"[^;]+").exec(document.cookie); ...

Swift code's Access Control(์Šค์œ„ํ”„ํŠธ์˜ ์ ‘๊ทผ์ œ์–ด)

iOS ๊ฐœ๋ฐœํ•˜๋‹ค๊ฐ€ ์ž๊พธ ๊นŒ๋จน์–ด์„œ ๊ฒ€์ƒ‰ํ•˜๊ธธ๋ž˜ ๋ฉ”๋ชจํ•ด๋‘ก๋‹ˆ๋‹ค. Swift์—์„  ์ฝ”๋“œ์— ๋Œ€ํ•œ ์ ‘๊ทผ ์ œ์–ด๋ฅผ open, public, internal, file-private, private๋กœ ์ง€์ •ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์–ธ์–ด๋“ค์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฑฐ์˜ ์œ ์‚ฌํ•˜์ง€๋งŒ, ๋ช‡๊ฐœ ๋‹ค๋ฅธ ๋ถ€๋ถ„๋“ค์ด ์žˆ๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค. public ๋งŽ์€ ์–ธ์–ด์—์„œ ์‚ฌ์šฉ๋œ ๊ฒƒ๊ณผ ...

iOS App์—์„œ HTTP ํ†ต์‹  ํ—ˆ์šฉํ•˜๊ธฐ(+App Trasport Security๋ž€?)

iOS ์•ฑ ๊ฐœ๋ฐœ ์‹œ ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด http ์„œ๋ฒ„์™€ ํ†ต์‹ ํ•˜๋ ค๊ณ  ํ•˜๋ฉด ๊ตฌ๋™์ค‘์— ์ด๋Ÿฐ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. Temporary exceptions can be...

Blogger์— ๋ชฉ์ฐจ ์ž๋™์œผ๋กœ ์ถ”๊ฐ€ํ•˜๊ธฐ(Table of Contents on blogger)

์ œ ๋ธ”๋กœ๊ทธ ๊ธ€์— ์•„์ง๊นŒ์ง„ ๋ชฉ์ฐจ ๊ฐœ๋…์ด ์—†์—ˆ๋Š”๋ฐ, ์•„๋ฌด๋ž˜๋„ ์žˆ๋Š”๊ฒŒ ์ข‹์„ ๊ฒƒ ๊ฐ™์•„ ์ƒˆ๋ฒฝ์— ๋ถ€๋žด๋ถ€๋žด ๋งŒ๋“ค์–ด๋ดค์Šต๋‹ˆ๋‹ค. ๊ด€๋ จ ๋‚ด์šฉ ๊ณต์œ ๋“œ๋ฆฝ๋‹ˆ๋‹น Subtitle on blogger ์Œ.. ๊ตฌ๊ธ€ ๋ธ”๋กœ๊ฑฐ ๋ง๊ณ ๋„ ๋งˆํฌ๋‹ค์šด, ๋‹ค๋ฅธ ์œ„์ง€์œ… ์—๋””ํ„ฐ๋“ฑ์—์„œ ๋ณธ๋ฌธ์„ ๊ตฌ๋ณ„ํ•ด์ฃผ๋Š” ๋ถ€์ œ๋ชฉ๋“ค์„ ์„ค์ •ํ•ด์„œ ์“ฐ๋Š”๋ฐ ๋ณดํ†ต h2, h3 ์œผ๋กœ ๋งŽ์ด ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ...

Twitter Card on Google Blogger(๋ธ”๋กœ๊ฑฐ์— ํŠธ์œ„ํ„ฐ ์นด๋“œ ์ ์šฉํ•˜๊ธฐ)

ํŠธ์œ„ํ„ฐ ๊ณต์œ ํ•˜๋ฉด์„œ ์˜์•„ํ–ˆ๋˜๊ฒŒ ํ•˜๋‚˜ ์žˆ๋Š๋ฐ, ํŠธ์œ„ํ„ฐ์—์„  ogํƒœ๊ทธ๊ฐ€ ๋จน์ง€ ์•Š์Šต๋‹ˆ๋‹ค.. ๋ณ„ ์‹ ๊ฒฝ ์•ˆ์“ฐ๊ณ  ์žˆ๋‹ค๊ฐ€ ํ˜น์‹œ๋‚˜ ํ•˜๊ณ  ์ข€ ์ฐพ์•„๋ณด๋‹ˆ ๋ณ„๋„์˜ ํฌ๋งท์„ ๊ฐ€์ง€๊ณ  ์žˆ๋”๊ตฐ์š”. ๊ฐ„๋žตํ•˜๊ฒŒ ์ •๋ฆฌํ•ด๋ด…์‹œ๋‹ค. ๊ฒฐ๊ณผ๋Š” ์ด๋Ÿฐ๊ฑฐ์—์š” :) Twitter Card ํŠธ์œ„...

How to Re-Size Image in Blogger

์ด๊ฑฐ ์ด์ „๊ธ€(video resize) ์ž‘์„ฑํ•˜๋ฉด์„œ ๋ธ”๋กœ๊ทธ ๋‚ด ์ด๋ฏธ์ง€๋„ ์ตœ๋Œ€ ํฌ๊ธฐ๋กœ ์กฐ์ •ํ–ˆ๋Š”๋ฐ, ๋ฉ”๋ชจํ• ๊ฒธ ๋‚จ๊ฒจ๋‘ก๋‹ˆ๋‹ค. google blogger์—์„œ ์ฒจ๋ถ€/์‚ฝ์ž…ํ•œ ์ด๋ฏธ์ง€๋Š” ๋ณ„๋กœ์˜ class,id๋ฅผ ์ฃผ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— .post-body(๋ณธ๋ฌธ)์— ์ง์ ‘ css๋ฅผ ์ง€์ •ํ•ด์ฃผ์–ด์•ผํ•ฉ๋‹ˆ๋‹ค. ์–ด์ฐจํ”ผ .post-body์—์„œ img ํƒœ๊ทธ๊ฐ€ ์“ฐ์ด๋Š”๊ฑด,...

How to Re-Size Video in Blogger Posts

Problem ๊ตฌ๊ธ€ ๋ธ”๋กœ๊ฑฐ์—์„  ๊ธ€ ์ž‘์„ฑ์ค‘์— youtube ์˜์ƒ์„ ์‚ฝ์ž…ํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•ด์„œ ์˜์ƒ์„ ์‚ฝ์ž…ํ•˜๊ฒŒ ๋˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ๊ต‰์žฅํžˆ ์ž‘์€ ํ™”๋ฉด์œผ๋กœ ๋‚˜ํƒ€๋‚˜์ง‘๋‹ˆ๋‹ค(์ด๊ฒŒ ๊ธฐ๋ณธ ํฌ๊ธฐ..) ๊ทธ๋ž˜์„œ ๋ณดํ†ต youtube ํŽ˜์ด์ง€์—์„œ ๊ณต์œ (iframe ํƒœ๊ทธ) ํ•˜์—ฌ ์ฝ”๋“œ ์‚ฝ์ž…ํ•˜๊ณ  ์ง์ ‘ ํฌ๊ธฐ ์กฐ์ •์„ ํ–ˆ์—ˆ๋Š”๋ฐ,์•ฝ๊ฐ„์˜ ํŠธ๋ฆญ์œผ๋กœ ...

editor.js - Simple Markdown Javascript Library

ํ•˜๋ฃจํŒจ๋“œ(haroopad) ์•Œ๊ธฐ์ „์— google blogger์— markdown ์–ด๋–ป๊ฒŒ ์ ์šฉํ• ๊นŒ ๊ณ ๋ฏผ์ด ๋งŽ์•˜์—ˆ๋Š”๋ฐ์š”, ๊ทธ๋Ÿฌ๋ฉด์„œ ์ฐพ์•„๋ณธ๊ฒƒ๋“ค ์ค‘ ํ•˜๋‚˜ ๊ฐ„๋žตํ•˜๊ฒŒ ์†Œ๊ฐœํ•ด๋“œ๋ฆด๊นŒ ํ•ฉ๋‹ˆ๋‹ค. editor.js๋ž€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ๋ณ„๋‹ค๋ฅธ ์ฝ”๋“œ ์—†์ด ์›น์ƒ์—์„œ ๋งˆํฌ๋‹ค์šด ์—๋””ํ„ฐ๋ฅผ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. lepture editor ์šฐ์„  gi...

HarooPad - markdown ์—๋””ํ„ฐ(to html view, to plain html)

markdown์ด ํŽธํ•œ์ง€๋ผ, ๋ฉ”๋ชจ๋‚˜ ๋ธ”๋กœ๊น… ์ดˆ์•ˆ ์ž‘์„ฑ๋„ ๊ธฐ๋ณธ์ ์œผ๋กœ markdown์œผ๋กœ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋งŒ ์ด ๊ณผ์ •์ด ์ „๋ฌธํ™”๋œ ์—๋””ํ„ฐ๋Š” ์•„๋‹ˆ๊ณ  ๊ฐ€๋ฒผ์šด ์ฝ”๋”ฉ์šฉ์œผ๋กœ ์“ฐ๋˜ geany์—์„œ ๊ทธ๋ƒฅ ์ž‘์„ฑ๋งŒ ํ•ด์„œ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ƒฅ ๋งˆ์Œ์†์œผ๋กœ๋งŒ ์ปจ๋ฒ„ํŒ…ํ•ด์„œ ๋ณด๋Š” ..ใ…œใ…œ ...

Rails app์—์„œ public ํ•˜์œ„ ํŒŒ์ผ์„ ์ฝ์–ด์˜ค์ง€ ๋ชปํ•  ๋•Œ(Rails not serving static files in public dir)

Rails App๋‚ด /public์€ ๋ ˆ์ผ์ฆˆ ๋™์ž‘๊ณผ ๋ณ„๊ฐœ๋กœ static ํ•œ html,css,js ๋“ฑ์„ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ๋””๋ ‰ํ† ๋ฆฌ์ž…๋‹ˆ๋‹ค. ์ €๋Š” ๋ณดํ†ต static ํ•œ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋“ค์„ ์—ฌ๊ธฐ๋‹ค๊ฐ€ ์˜ฌ๋ ค๋‘๊ณ  ์“ฐ๋Š”๋ฐ, ์–ด๋Š๋‚ ๋ถ€ํ„ฐ์ธ๊ฐ€ public ํ•˜์œ„์— ์žˆ๋Š” ํŒŒ์ผ๋“ค์ด ์ •์ƒ์ ์œผ๋กœ ๋กœ๋“œ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.. (์ด ์‹œ์ ์ด ์•„๋งˆ command line...

Task manager app with Ruby on Rails(ํ• ์ผ ๊ด€๋ฆฌ ๋„๊ตฌ ๋งŒ๋“ค๊ธฐ)

ํ• ์ผ ๊ด€๋ฆฌ ๋„๊ตฌ? ๊ฐ€ ํ•„์š”ํ•ด์„œ ๋ญ ์“ธ๊นŒ ๊ณ ๋ฏผํ•˜๋‹ค ๊ฑ rails๋กœ ๋งŒ๋“ค๊ณ  ์žˆ๋Š”๋ฐ, ๋ณ„๊ฑด ์•„๋‹ˆ์ง€๋งŒ ๊ทธ๋ƒฅ ๊ธ€๋กœ ๋‚จ๊ฒจ๋‘ก๋‹ˆ๋‹ค. https://gph.is/XGFOUK Rails Setup ์ตœ๊ทผ์— Vim => Rubymine ์œผ๋กœ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ๋ณ€...

IntelliJ(RubyMine) ์—๋””ํ„ฐ ์ˆ˜์ •์ด ๋ถˆํŽธํ•œ ๋ฌธ์ œ(IdeaVim Plugin)

์ƒˆํ•ด ์ฒซ ํฌ์ŠคํŒ…์€ ๊ฐ€๋ณ๊ฒŒ ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ…์œผ๋กœ ์‹œ์ž‘ํ•ด๋ด…๋‹ˆ๋‹ค. (์—ฐ์ดˆ์ธ๋ฐ ์™œ์ด๋ฆฌ ์ •์‹ ์—†์„๊นŒ์•„โ€ฆ) ์›๋ž˜ ๊ณจ์ˆ˜ vim ์œ ์ €์ธ๋ฐ, RubyMine์œผ๋กœ ๊ฐœ๋ฐœ IDE ์žก์œผ๋ ค๊ณ  ์„ธํŒ…ํ•˜๋Š” ์ค‘์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ๊ฐ‘์ž๊ธฐ ์ž…๋ ฅ์ด ๋งค์šฐ ๋ถˆํŽธํ•œ(?) ์ด์Šˆ๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. https://me...

ZAP Java ๋ฒ„์ „ ๋ฐ”๊ฟ”์น˜๊ธฐ

ZAP HUD ํ…Œ์ŠคํŠธํ•œ๋‹ค๊ณ  alpha ๋ฒ„์ „ ์˜ฌ๋ ธ์—ˆ๋Š”๋ฐ, macOS ์—์„  ์ธ์•ฑ ๋ธŒ๋ผ์šฐ์ €๋กœ ํŠน์ • ์‚ฌ์ดํŠธ ์ ‘๊ทผ ์‹œ SSL ๊ด€๋ จ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•ด์„œ ์‚ฝ์งˆํ–ˆ๋˜๊ฑฐ ์ •๋ฆฌํ•ด๋‘ก๋‹ˆ๋‹ค. Linux๋Š” ๋ณ„ ๋ฌธ์ œ ์—†๋˜ ๊ฑธ๋กœ ๋ณด์•„ macOS์™€ ์—ฐ๊ด€๋œ ๋ฌธ์ œ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. SSLHandshakeException: Received fatal alert: h...

Ruby gem ๋งŒ๋“ค๊ธฐ(Make ruby gem)

์š”์ฆ˜ ์ข€ ์ •์‹ ์—†์ด ์ง€๋‚ด๋‹ค๋ณด๋‹ˆ ๋ฒŒ์จ 10์›”์ด๋„ค์š”.. ์จ๋†“์€ ๊ธ€๋„ ๋งˆ์นจ ์—†๋Š” ์ƒํƒœ์ธ์ง€๋ผ ์ด๋ฒˆ์—๋„ ๊ฐ„๋žตํ•œ ๊ธ€ ์ž‘์„ฑํ• ๊นŒ ํ•ฉ๋‹ˆ๋‹ค. (์•„ 10์›”์˜ ์ฒซ๊ธ€์ด ๋ฉ”๋ชจ๊ธ€์ด๋ผ๋‹ˆโ€ฆ) ๋งŽ์€ ruby application ๋“ค์ด ๋‹จ์ˆœํžˆ ์ฝ”๋“œ๋ฅผ clone ํ•ด์„œ ์“ฐ๋Š” ํ˜•ํƒœ๋ณด๋‹จ gem์œผ๋กœ ํŒจํ‚ค์ง•ํ•˜์—ฌ ๋ฐฐํฌํ•˜๊ณ  ์‚ฌ์šฉํ•˜๋Š” ํ˜•ํƒœ๋ฅผ ๊ฐ€์ง‘๋‹ˆ๋‹ค. ์˜ค๋Š˜์€ ruby gem...

Ruby IDB(iOS App ๋ณด์•ˆ๋ถ„์„ ๋„๊ตฌ) Select App ์‹œ ์ฃฝ๋Š” ํ˜„์ƒ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•(iOS10, Error downloading file)

์˜ˆ์ „์— idb๋ผ๋Š” iOS ๋ถ„์„๋„๊ตฌ๋ฅผ ๊ณต์œ ๋“œ๋ฆฐ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ตœ๊ทผ์— ํ…Œ์ŠคํŠธ ์‹œ Select App ์‹œ ์•ฑ ๋ฆฌ์ŠคํŠธ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๊ณผ์ •์—์„œ ์ฃฝ๋Š” ํ˜„์ƒ์ด ์žˆ์—ˆ๋Š๋ฐ์š”, ์˜ˆ์ „์— ๊ฐ€๊นŒ์šด๊ณณ์—์„œ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๊ณ  ํ•ด๊ฒฐ๋ฐฉ๋ฒ• ๊ณต์œ ํ•ด์ฃผ์…จ๋˜๊ฒŒ ๊ธฐ์–ต๋‚˜์„œ ์ € ๋˜ํ•œ ์‰ฝ๊ฒŒ ํ•ด๊ฒฐํ—€๋„ค์š”. iOS 10 ์ด์ƒ์˜ ๋””๋ฐ”์ด์Šค์—์„œ ์‚ฌ์šฉ ์‹œ ๋ฐœ์ƒํ•˜๋Š” ์—๋Ÿฌ์ด๊ณ  ๊ฒธ์‚ฌ๊ฒธ์‚ฌ ...

Scala์˜ underscore(_)๋ž€?

์š”์ฆ˜ ์ž๊พธ ์Šค์นผ๋ผ๋ž‘ ๋ถ€๋”ซํžˆ๊ฒŒ ๋˜๋„ค์š”. ์จ๋ณธ์ ๋„ ์—†๋Š” ์–ธ์–ด์ง€๋งŒ ๋‹ค๋ฅธ ์–ธ์–ด๋ž‘ ๋น„์Šทํ•˜๊ฑฐ๋‹ˆ(Js+Java๋Š๋‚Œ..) ํ•˜๊ณ  ๋ดค๋Š”๋ฐ, ์–ด๋งˆ๋ฌด์‹œํ•˜๊ฒŒ ๊ฐ€๋…์„ฑ์„ ๋–จ์–ด๋œจ๋ฆฌ๋Š” ๋ฌด์–ธ๊ฐ€๋ฅผ ๋ฐœ๊ฒฌํ•˜์˜€์Šต๋‹ˆ๋‹ค. _(Under bar)๊ฐ€ ๊ต‰์žฅํžˆ ๋งŽ์€ ๊ณณ์— ์“ฐ์ด๋Š”๋ฐ, ๋‹ค๋“ค ์˜๋ฏธ๊ฐ€ ์ข€ ๋‹ฌ๋ผ๋ณด์—ฌ์„œ ์ฐพ์•„๋ณด๋‹ˆ Underscore๋ผ๊ณ  ๋ถˆ๋ฆฌ๋Š” ๋ฌธ๋ฒ•(?) ์ค‘ ํ•˜๋‚˜์˜€์Šต๋‹ˆ๋‹ค...

Consul์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž! (Service Mesh)

์ตœ๊ทผ ์žฌ๋ฏธ์žˆ๋Š” ํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜๊ณ ์žˆ๋Š”๋ฐ, Health cheak, Service discovery ์šฉ๋„๋กœ Consul์„ ์จ๋ณด๊ฒŒ ๋˜์—ˆ๊ณ  ๊ธ€๋กœ ์•ฝ๊ฐ„ ์ •๋ฆฌํ•ด๋‘ก๋‹ˆ๋‹ค. hashicorp์—์„œ ๋งŒ๋“  Consul, ๊ฑฐ๊ธฐ์„œ ์ง€์ •ํ•œ DevOps ๊ด€๋ จ ๋‚ด์šฉ ์ค‘ Monitor์— ํ•ด๋‹นํ•˜๋Š” ๋ถ€๋ถ„์ž…๋‹ˆ๋‹ค. Service Mesh Made Easy ...

Git pull/push ์‹œ Password ๋ฌผ์–ด๋ณด์ง€ ์•Š๋„๋ก ์„ค์ •ํ•˜๊ธฐ(credential.helper)

git์„ ์“ฐ๋‹ค๋ณด๋ฉด ๊ฐ„ํ˜น config ๋ฏธ์Šค, ํ™˜๊ฒฝ ๋ณ€๊ฒฝ์œผ๋กœ push/pull ๋“ฑ ๊ธฐ๋Šฅ ์‹คํ–‰ ์‹œ ๊ณ„์ •๊ณผ ํŒจ์Šค์›Œ๋“œ๋ฅผ ๋ฌผ์–ด๋ณด๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. credential ์„ค์ •์ด ๋˜์–ด์žˆ์ง€ ์•Š๋‹ค๋ฉด ๊ณ„์ •์ •๋ณด๋ฅผ ์š”์ฒญํ•˜๋Š”๊ฒŒ ๋‹น์—ฐํ•˜์ง€๋งŒ ํ•œ์ฐฝ ๊ฐœ๋ฐœํ•˜๊ณ  ์žˆ๋Š” ๊ณผ์ •์—์„œ๋Š” ๊ต‰์žฅํžˆ ๊ท€์ฐฎ๊ณ  ๋ฒˆ๊ฑฐ๋กœ์›Œ์ง‘๋‹ˆ๋‹ค. (ํŠนํžˆ๋‚˜ ์ œ ํˆด๋“ค์€ ๋Œ€๋‹ค์ˆ˜๊ฐ€ git pull๋กœ ์—…...

Arachni ์ฝ”๋“œ๋‹จ์—์„œ JSON Method ์‚ฌ์šฉํ•˜๊ธฐ (undefined method `parse' for Arachni::Element::JSON:Class ํ•ด๊ฒฐ)

arachni ์ฝ”๋“œ ์ˆ˜์ • ์ค‘ json ์‚ฌ์šฉ์ด ๋ถˆ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. [ Code ] require โ€˜json' JSON.parse(data) [ Error ] undefined method `parse' for Arachni::Element::JSON:Class JSON์€ json library์— ๋ชจ๋“ˆ๋กœ ์ •...

Ruby์—์„œ Cookie ๊ฐ’์„ JSON ํฌ๋งท์œผ๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ(Cookie format to JSON with hash!)

ํ…Œ์ŠคํŠธํ•˜๋˜ ์ฝ”๋“œ ์ƒ๊ฐ๋‚˜์„œ ์ •๋ฆฌํ•ด๋‘ก๋‹ˆ๋‹ค. Ruby์—์„œ Cookie format์˜ ๋ฐ์ดํ„ฐ๋ฅผ JSON์œผ๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ ์œ„ํ•ด์„  hash๋ฅผ ์ด์šฉํ•ด์„œ ๊ฐ„๋‹จํ•˜๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. require 'json' def cookie_to_json cookie # cookie ๋ฐ์ดํ„ฐ๋ฅผ hash๋กœ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ hash ๊ฐ์ฒด ํ•˜๋‚˜๋ฅผ ๋งŒ๋“ค์–ด์ค๋‹ˆ๋‹ค...

Burp suite Extension ๊ฐœ๋ฐœ์— ๋Œ€ํ•œ ์ด์•ผ๊ธฐ(Story of Writing Burp suite extension)

์ตœ๊ทผ์— Burp suite Extension ๋งŒ๋“ค๊ณ  ์žˆ๋˜ ๊ฒƒ ์–ด๋Š์ •๋„ ์™„์„ฑ๋˜๋‹ค๋ณด๋‹ˆ ๋งŒ๋“ค๋ฉด์„œ ๋Š๊ผˆ๋˜์ ๋“ค ์ข€ ๊ณต์œ ํ• ๊นŒ ํ•ฉ๋‹ˆ๋‹ค. ์™„์ „ ์ฒ˜์Œ์€ ์•„๋‹ˆ์ง€๋งŒ, ์ฝ”๋“œ๋Ÿ‰์ด ์ƒ๊ฐ๋ณด๋‹ค ๋งŽ์•„์ง€๋‹ˆ ์˜์™ธ๋กœ ๋งŽ์€๊ฑธ ๊ณต๋ถ€ํ•˜๊ฒŒ ๋˜์—ˆ๋„ค์š”(๋•๋ถ„์— Burp ์ชฝ API๋Š” ํ™•์‹คํžˆ ๊ฐ์˜ต๋‹ˆ๋‹ค. Buby ์“ธ๋–„ ์œ ์šฉํ•˜๊ฒ ๋„ค์š”) ...

์šฐ๋ถ„ํˆฌ 18.04 ์—์„œ ์นด์นด์˜คํ†ก ์„ค์น˜ํ•˜๊ธฐ(Install kakaotalk on ubuntu 18.04)

๐Ÿ“•ํŠน์ด์‚ฌํ•ญ WineTrick์—์„œ ์‚ฌ์šฉํ•˜๋Š” MPSetup.exe๊ฐ€ download.microsoft.com์—์„œ ์‚ญ์ œ๋œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์šฐ์„  ๋Œ€์•ˆ์œผ๋ก  ์ง์ ‘ ๋ฐ›์•„์„œ ์„ค์น˜ํ•˜๋ฉด ๋˜๊ธดํ•˜๋Š”๋ฐ, ์•„๋ฌด๋ž˜๋„ ์™ธ๋ถ€์—์„œ ๋ฐ›๋Š” ํŒŒ์ผ์ด๋‹ˆ ๋ฐ”์ด๋Ÿฌ์Šค ํ† ํƒˆ ๊ฒฐ๊ณผ๋‚˜ ์›๋ณธ ์žˆ๋‹ค๋ฉด ์›๋ณธ์ด๋ž‘ ๋น„๊ต ํ›„ ์„ค์น˜ํ•˜์‹œ๋Š”๊ฒŒ ์ข‹์„๋“ฏ ์‹ถ์Šต๋‹ˆ๋‹ค..์•„๋ž˜ ๋Œ“๊ธ€ 2๊ฐœ ์ฐธ๊ณ ํ•ด์ฃผ์„ธ์š”. ...

JRuby Burp suite ํ™•์žฅ ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ ์ค‘ ๋ฐœ์ƒํ•œ ์—๋Ÿฌ(failed to coerce [Lburp.IHttpRequestResponse; to burp.IHttpRequestResponse)

๊ธ€ ์ข€ ์“ฐ๊ณ  ์ž๋ คํ–ˆ๋Š”๋ฐ, ์žก๋‹คํ•œ ์ผ์ด ๊ผฌ์—ฌ.. ๊ธ€์€ ํŒจ์Šคํ•˜๊ณ  ๊ฐ„๋‹จํ•˜๊ฒŒ ๋ฉ”๋ชจ ํ•˜๋‚˜๋งŒ ์ž‘์„ฑํ•ด๋‘ก๋‹ˆ๋‹ค. ์–ด์ œ Burp ํ™•์žฅ ๊ธฐ๋Šฅ์„ ๋งŒ๋“ค๋˜ ์ค‘ ์ด์ƒํ•œ ์—๋Ÿฌ๋ฅผ ํ•˜๋‚˜ ๋งŒ๋‚ฌ๋Š”๋ฐ, ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค. failed to coerce [Lburp.IHttpRequestResponse; to burp.IHttpRequestResponse ์ฝ”...

Crystal - Ruby์™€ ๋น„์Šทํ•˜๋ฉฐ ๋น ๋ฅธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด

์˜ฌ ์ดˆ์ฏค์— Crystal์ด๋ž€ ์–ธ์–ด์— ๋Œ€ํ•ด ์ž ๊น ์ด์•ผ๊ธฐ๋“ค์€์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. Ruby ๋ฌธ๋ฒ•๊ณผ ์œ ์‚ฌํ•˜๋‹ค๋Š” ๊ฒƒ๋งŒ ๋“ฃ๊ณ  ๋“œ๋””์–ด ์กฐ๊ธˆ ๋” ์‚ดํŽด๋ดค๋„ค์š”. ์•„์ง ์ •์‹ ๋ฆด๋ฆฌ์ฆˆ๋„ ์•„๋‹Œ ์ƒํƒœ์ด๋‹ˆ ์–ด๋–ค ์–ธ์–ด์ธ์ง€ ์ •๋„๋งŒ ์ •๋ฆฌํ•ด๋‘˜๊นŒ ํ•ฉ๋‹ˆ๋‹ค. Crystal? Crystal์€ ๋ฃจ๋น„ ๋ฌธ๋ฒ• ์Šคํƒ€์ผ๊ณผ ์œ ์‚ฌํ•œ ํ˜•ํƒœ๋ฅผ ๊ฐ€์ง€๋ฉฐ Static typing &...

Git commit์œผ๋กœ Issue ์ข…๋ฃŒํ•˜๊ธฐ(Closing issue with commit)

Git์€ ์ฝ”๋“œ ๊ด€๋ฆฌ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ Issue ๊ด€๋ฆฌ์— ์žˆ์–ด๋„ ๊ต‰์žฅํžˆ ํŽธ๋ฆฌํ•œ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ์ฝ”๋“œ ๋ฐ˜์˜์„ ์œ„ํ•ด Commit ํ•˜๋Š” ๊ณผ์ •์—์„œ ํŠน์ • ํ‚ค์›Œ๋“œ์™€ ์ด์Šˆ๋ฒˆํ˜ธ๋ฅผ ๊ฐ™์ด ๊ธฐ์ž…ํ•ด์ฃผ๋ฉด ์ž๋™์œผ๋กœ Issue์— ๋Œ€ํ•œ ์ฒ˜๋ฆฌ๋„ ๊ฐ™์ด ์ง„ํ–‰๋ฉ๋‹ˆ๋‹ค. Closing issue when commit Commit ์‹œ ์ข…๋ฃŒ๋ฅผ ์˜๋ฏธํ•˜๋Š” ํ‚ค์›Œ๋“œ๋“ค์ด ๋ฉ”์‹œ์ง€ ๋‚ด...

tracer์„ ์ด์šฉํ•œ ruby code tracing(์ฝ”๋“œ ํ๋ฆ„ ๋ถ„์„)

๋ฃจ๋น„ ์ฝ”๋“œ ๋ถ„์„์„ ํ•˜๋˜ ์ค‘ ํ๋ฆ„ ์ถ”์ (?), code tracing์„ ํ•˜๊ธฐ ์œ„ํ•ด ์•Œ์•„๋ณด๋‹ค๊ฐ€ ์ฐพ์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ณต์œ ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ํˆด์€ ์–ธ์ œ๋‚˜ ํ™˜์˜์ด์•ผ! / The world could always use more tool. tracer ๋ผ...

Insomnia๋กœ REST API๋ฅผ ์‰ฝ๊ฒŒ ํ…Œ์ŠคํŠธํ•˜์ž ๐Ÿ˜Ž

์˜ค๋Š˜ ์†Œ๊ฐœํ•ด๋“œ๋ฆด ํˆด์€ REST API ํ…Œ์ŠคํŒ… ํˆด์ธ Insomnia ์ž…๋‹ˆ๋‹ค. postman๊ณผ ๊ฐ™์ด API๋ฅผ ํ…Œ์ŠคํŒ…ํ•˜๊ธฐ ์œ„ํ•œ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๊ธฐ๋Šฅ๋“ค์„ ์ œ๊ณตํ•˜๊ณ  ์žˆ๊ณ , ๊ฐœ๋ฐœ์ž๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋ณด์•ˆ์ชฝ์—์„œ๋„ ์ถฉ๋ถ„ํžˆ ์ž์ฃผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋„๊ตฌ๋ผ์„œ ๊ฐ„๋‹จํ•˜๊ฒŒ ๊ณต์œ ๋“œ๋ฆด๊นŒ ํ•ฉ๋‹ˆ๋‹ค. Insomnia๋Š” ํฌ๋กœ์Šค ํ”Œ๋žซํผ์„ ์ง€์›ํ•˜๋ฉฐ ์˜ˆ์ „์— ๊น”์•˜์„ ๋–ˆ MACOS ...

Rubocop auto correct๋ฅผ ์ด์šฉํ•˜์—ฌ ์‰ฝ๊ฒŒ ์ฝ”๋“œ ์Šคํƒ€์ผ ๋”ฐ๋ผ๊ฐ€๊ธฐ

์ตœ๊ทผ์— ๋ฃจ๋น„ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์Šคํƒ€์ผ ๊ฐ€์ด๋“œ ๊ด€๋ จํ•ด์„œ ๊ธ€์„ ํ•˜๋‚˜ ์ž‘์„ฑํ–ˆ์—ˆ๋Š”๋ฐ์š”, ์ด์–ด์„œ ๊ทธ๋–„ ์ž ๊น ์†Œ๊ฐœ๋“œ๋ ธ๋˜ rubocop์„ ์ด์šฉํ•ด์„œ ์ฝ”๋“œ๋ฅผ ๊ต์ •ํ•˜๋Š” ๊ณผ์ •์— ๋Œ€ํ•ด ์ž ๊น ์ด์•ผ๊ธฐํ• ๊นŒ ํ•ฉ๋‹ˆ๋‹ค. auto correct in rubocop ์ง€๋‚œ๋ฒˆ์— rubocop ์‚ฌ์šฉ ๊ด€๋ จํ•ด์„œ ์ง€๊ธˆ ํ‹ˆ๋‚ด์„œ ๊ฐœ๋ฐœ์ค‘์ธ recon-raven ์ชฝ ์ฝ”๋“œ๋กœ ๋Œ๋ ค๋ดค๋Š”๋ฐ...

Ruby Limit to number of thread in loop(๋ฐ˜๋ณต๋ฌธ์—์„œ ์ œํ•œ๋œ ๊ฐฏ์ˆ˜์˜ ์“ฐ๋ ˆ๋“œ ๋Œ๋ฆฌ๊ธฐ)

๋ณดํ†ต ์“ฐ๋ ˆ๋“œ๋Š” ๊ฐœ๋ณ„๋‹จ์œ„์˜ ์ฒ˜๋ฆฌ ์ˆ˜ํ–‰์ด๋‚˜ ๊ณ  ์„ฑ๋Šฅ์˜ ์ž‘์—…(์š”์ฒญ์„ ์—„์ฒญ๋‚˜๊ฒŒ ์ „์†กํ•œ๋‹ค๋Š” ๋‘ฅ, ๋น ๋ฅธ ๊ณ„์‚ฐ์ด ํ•„์š”ํ•œ๋‹ค๋Š” ๋‘ฅ)์ด ํ•„์š”ํ•  ๋•Œ ๋™์ผํ•œ ์ฝ”๋“œ๋กœ ๊ณต์œ ๋˜๋Š” ์ž์›์„ ํ• ๋‹น๋ฐ›์œผ๋ฉฐ ์ฒ˜๋ฆฌํ•˜๋Š” ์‹์œผ๋กœ ๋งŽ์ด ๊ตฌ์„ฑํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. thread๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” manager๋ฅผ ํ•˜๋‚˜ ๋งŒ๋“ค๊ณ  ๊ฐ๊ฐ ์—…๋ฌด ํ์—์„œ ํ• ๋‹นํ•ด์ฃผ๋Š” ์‹์œผ๋กœ ๊ตฌํ˜„ํ•˜๋ฉด ์ข‹์ง€๋งŒ, ๋‹จ์ˆœํ•˜๊ฒŒ ...

Ruby Style Guide์™€ Rubocop

์˜ค๋Š˜์€ ๋ฃจ๋น„ ๊ฐœ๋ฐœ ๊ด€๋ จํ•ด์„œ ์ข‹์€ ๊ฐ€์ด๋“œ๊ฐ€ ์žˆ์–ด ๊ณต์œ ๋“œ๋ฆด๊นŒ ํ•ฉ๋‹ˆ๋‹ค. ์ •๋ง ์ •๋ฆฌ๊ฐ€ ์ž˜ ๋˜์–ด์žˆ์Šต๋‹ˆ๋‹ค. ์ฒœ์ฒœํžˆ ๋‚ด์šฉ ์ฝ์–ด๋ณด๋ฉด์„œ ๊ณ ์ณ์•ผํ•  ์Šต๊ด€๋“ค์ด ๋งŽ์ด ๋ณด์ด๋„ค์š”. https://github.com/dalzony/ruby-style-guide/blob/master/README-koKR.md ๋Œ€ํ‘œ์ ์ธ ๊ฒƒ ๋ช‡๊ฐ€์ง€ ๋ณด๋ฉด ํƒญ์€ ๋“ค์—ฌ...

Ruby on Rails(ROR) ์—์„œ SAML IdP(Identity Provider) ๊ตฌํ˜„ํ•˜๊ธฐ(SSO)

์ตœ๊ทผ์— ๋œป๋ฐ–์— SAML ๊ด€๋ จ ๊ณต๋ถ€๋ฅผ ํ•˜๊ณ  ์žˆ๋Š”์ง€๋ผ, ๋ช‡๊ฐ€์ง€ ๋‚ด์šฉ ๋ฉ”๋ชจ/๊ณต์œ ํ• ๊ฒธ ํฌ์ŠคํŒ… ์ž‘์„ฑํ•ด๋ด…๋‹ˆ๋‹ค. ์˜ค๋Š˜์€ Ruby on Rails์—์„œ SAML IdP(Identity Provider)๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ• ๊นŒ ํ•ฉ๋‹ˆ๋‹ค. SAML(Security Assertion Markup Language)? sso ์ธ์ฆ ๋ฐฉ์‹์—...

inquirer ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ด์šฉํ•œ ์ปค๋งจ๋“œ๋ผ์ธ ๊ธฐ๋ฐ˜ ์ฒดํฌ๋ฐ•์Šค ๋งŒ๋“ค๊ธฐ(Ruby/Python)

recon-raven ๊ฐœ๋ฐœ ์ค‘ ์ปค๋งจ๋“œ๋ผ์ธ ๊ธฐ๋ฐ˜ ์ฒดํฌ๋ฐ•์Šค(๋ชจ๋“ˆ๊ฐ™์€๊ฑฐ ๊ณ ๋ฅผ ์ˆ˜ ์žˆ๋„๋ก..) ๊ตฌ์„ฑํ•ด๋ณด๋ฉด ์–ด๋–จ๊นŒ ํ•ด์„œ ํ•™์ƒ๋•Œ ์ปค๋งจ๋“œ๋ผ์ธ ๊ธฐ๋ฐ˜ ๊ฒŒ์ž„ ๋งŒ๋“  ๊ธฐ์–ต์„ ๋”๋“ฌ์œผ๋ฉฐ ์ง์ ‘ ๋งŒ๋“ค๋‹ค๊ฐ€ ์ข‹์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ฐพ์•„ ์‰ฝ๊ฒŒ ํ•ด๊ฒฐํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์˜ค๋Š˜์€ ์ด๋ฅผ ์‰ฝ๊ฒŒ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ด์ค€ inquirer ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ• ๊นŒ ํ•ฉ๋‹ˆ๋‹ค. inquire...

ZAP์—์„œ Passive Script ๋งŒ๋“ค๊ธฐ

์š”์ฆ˜ ๋ช‡๊ฐ€์ง€ ๋งŒ๋“ค์–ด์“ฐ๊ณ  ์žˆ๋Š”๋ฐ, ๊ฐ„๋‹จํ•˜๊ฒŒ ํ‹€์ด๋˜๋Š” ์ฝ”๋“œ์™€ ๋Œ€๋žต์ ์ธ ์„ค๋ช…์œผ๋กœ ๊ธ€ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค. ZAP์—์„  Context menu, passive scan, active scan ๋“ฑ ๋ชจ๋“  ๊ธฐ๋Šฅ ๊ตฌ๊ฐ„์— ๋Œ€ํ•œ ๊ธฐ๋ณธ์ ์ธ script template ์ฝ”๋“œ๋ฅผ ์ œ๊ณตํ•ด์ฃผ๊ณ  ์žˆ๊ณ , ๋‹ค๋ฅธ ์ฝ”๋“œ ์ฐธ์กฐํ•ด์„œ ์ž‘์„ฑํ•˜๋ฉด ์–ด๋ ต์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ™•์žฅ๊ธฐ๋Šฅ ๋งŒ๋“œ๋Š”...

Ruby์—์„œ Exception ์ฒ˜๋ฆฌ( begin-rescue-else-ensure-end )

๋ฒŒ์จ 7์›”์ด๋„ค์š”.. ์˜ค๋Š˜์€ ๋งค๋ฒˆ ์ฝ”๋“œ ์ž‘์„ฑํ• ๋•Œ๋งˆ๋‹ค ๊ท€์ฐฎ์ง€๋งŒ, ๋บด๋จน์„ ์ˆ˜ ์—†๋Š” ์ค‘์š”ํ•œ ์นœ๊ตฌ์— Exception, ์ฆ‰ ์˜ˆ์™ธ์ฒ˜๋ฆฌ์— ์ด์•ผ๊ธฐํ• ๊นŒ ํ•ฉ๋‹ˆ๋‹ค. ๊ฑฐ์˜ ์ •๋ฆฌ ์ฐจ์›์—์„œ ๊ฐ„๋‹จํ•˜๊ฒŒ ์“ฐ๋Š”๊ฑฐ๋‹ˆ ๋น ๋ฅด๊ฒŒ ์‹œ์ž‘ํ•˜์ฃ . begin-rescue-else-ensure-end ๋ฃจ๋น„์—์„œ Exception ์ฒ˜๋ฆฌ๋Š” begin-rescue-else-en...

Git contribute ๊ด€๋ จ ์ •๋ฆฌ(Pull reuqest ๋งŒ๋“ค๊ธฐ)

๋ฉ”๋ชจ์ฐจ ๊ธ€ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค. Fork git github ์‚ฌ์ดํŠธ์—์„œ Fork ํ•ฉ๋‹ˆ๋‹ค. Create branch ๊ฐœ๋ฐœ์„ ์œ„ํ•ด์„œ ์‹ ๊ทœ ๋ธŒ๋Ÿฐ์น˜๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๋งŒ๋“ค ๋ชฉํ‘œ(?)๋ฅผ ์ง€์ •ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฉด ์–ด๋–จ๊นŒ.. #> git checkout -b new-feature Write Cod...

JRuby๋กœ Ruby์™€ Java ๋™์‹œ์— ์‚ฌ์šฉํ•˜๊ธฐ

๊ฐœ์ธ์ ์œผ๋กœ BurpSuite์˜ Extender๋ฅผ ๋งŒ๋“ค ๋•Œ Java๋ฅผ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‹น์—ฐํžˆ Burp๊ฐ€ Java base์ด๊ณ , API ๋“ฑ์˜ ์‚ฌ์šฉ์„ฑ ๋•Œ๋ฌธ์— Java๋กœ ๊ฐœ๋ฐœํ•˜๋Š” ๊ฒƒ์ด ์ผ๋ฐ˜์ ์ธ๋ฐ์š”, ์˜ค๋Š˜์€ Jruby๋ฅผ ์ด์šฉํ•˜์—ฌ Ruby์™€ Java๋ฅผ ํ˜ผ์šฉํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. Jruby JRuby๋Š” JVM ๊ธฐ...

Javascript๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ฐ„๋‹จํ•˜๊ฒŒ ์นด์นด์˜คํ†ก ๊ณต์œ (์นด์นด์˜ค๋งํฌ) ์ ์šฉํ•˜๊ธฐ

์š”์ฆ˜์€ SNS ๊ณต์œ  ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ์›น ํŽ˜์ด์ง€๋ฅผ ๋งŒ๋‚˜๋ณด๊ธฐ๊ฐ€ ๊ต‰์žฅํžˆ ์–ด๋ ต์Šต๋‹ˆ๋‹ค. ํŠนํžˆ๋‚˜ ๋ธ”๋กœ๊ทธ๋‚˜ ๋งค์ฒด, ํŒ๋งค ์‚ฌ์ดํŠธ๋“ค์€ ์ปจํ…์ธ ์˜ ๊ณต์œ ์— ์žˆ์–ด ๊ต‰์žฅํžˆ ์ข‹์€ ๋ฐฉ๋ฒ•์ด๊ณ  ๋งŽ์ด ์‚ฌ์šฉ๋˜๊ณ  ์žˆ๊ธฐ ๋–„๋ฌธ์— ๊ทธ๋ ‡๋‹ค๊ณ  ์ƒ๊ฐ์ด ๋“œ๋„ค์š”. ์ด์ „๋ถ€ํ„ฐ ์—ฌ๋Ÿฌ๊ฐ€์ง€ SNS ์„œ๋น„์Šค์— ๋Œ€ํ•ด์„œ ๊ณต์œ  ๋ฒ„ํŠผ์„ ๋งŒ๋“ค๊ณ  ์‚ฌ์šฉํ•˜๋‹ค๊ฐ€ ์ตœ๊ทผ์—๋Š” google, twitter...

MacOS์—์„œ git ์‹คํ–‰ ์‹œ CommandLIneTools ์—๋Ÿฌ ๋ฐœ์ƒํ•œ ๊ฒฝ์šฐ ํ•ด๊ฒฐ๋ฐฉ๋ฒ•

์ตœ๊ทผ(?)์— MacOS ๋ฐฐํฌํŒ ์—…๊ทธ๋ ˆ์ด๋“œ(์‹œ์—๋ผ => ํ•˜์ด์‹œ์—๋ผ) ์ดํ›„ git ๋ช…๋ น์— ๋ฌธ์ œ๊ฐ€ ์ƒ๊ฒผ์—ˆ์Šต๋‹ˆ๋‹ค. (ํŒ์˜ฌ๋ฆผ์„ ์ข€ ๋Šฆ๊ฒŒํ•˜๊ธดํ–ˆ์ฃ ..) #> git xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing...

Rails์˜ ๋ผ์šฐํŒ…๊ณผ constraints๋ฅผ ์ด์šฉํ•˜์—ฌ IP๊ธฐ๋ฐ˜ ACL ๋งŒ๋“ค๊ธฐ

Rails Application์—์„œ ์ ‘๊ทผ์ œ์–ด๋ฅผ ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์—ฌ๋Ÿฌ๊ฐ€์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ์ „์— ํฌ์ŠคํŒ…ํ•˜๊ธฐ๋„ ํ—€๊ณ , ํŠœํ† ๋ฆฌ์–ผ์—์„œ๋„ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ด์•ผ๊ธฐ๋˜๋Š” HTTP Auth๋ฅผ ์ด์šฉํ•œ ์ธ์ฆ๋ฐฉ์‹ ๋ถ€ํ„ฐ ์„ธ์…˜, ๋กœ๊ทธ์ธ ๊ธฐ๋ฐ˜ ์ธ์ฆ๊นŒ์ง€ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ํ˜•ํƒœ๋กœ ๊ตฌํ˜„์ด ๊ฐ€๋Šฅํ•˜์ฃ . ์˜ค๋Š˜์€ ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ์ ‘๊ทผ์ œ์–ด์ธ IP ๊ธฐ๋ฐ˜ ACL์— ๋Œ€ํ•œ ์ด์•ผ๊ธฐ๋ฅผ ํ• ๊นŒ ํ•ฉ๋‹ˆ๋‹ค....

Rails development ํ™˜๊ฒฝ์—์„œ error ์ •๋ณด ์ค„์ด๊ธฐ

rails application์€ ๊ธฐ๋ณธ์ ์œผ๋กœ application ์‹คํ–‰ ์‹œ development, test, production์™€ ๊ฐ™์ด ์‹คํ–‰ ํ™˜๊ฒฝ์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ๊ฐ ์‹คํ–‰ ํ™˜๊ฒฝ๋ณ„๋กœ ๋””๋ฒ„๊ทธ, ์—๋Ÿฌ ์ฒ˜๋ฆฌ ์—ฌ๋ถ€ ๋“ฑ ํ™˜๊ฒฝ๊ณผ ์ฒ˜๋ฆฌ ๋ฐฉ์‹์— ๋Œ€ํ•ด ๊ฒฐ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ rails s ๋ฅผ ํ†ตํ•ด ์•ฑ์„ ์‹คํ–‰ํ•˜๊ฒŒ ๋˜๋ฉด dev...

HTTPS/HTTP Mixed Content (์„ž์ธ ๋™์  ์ฝ˜ํ…์ธ  [File] ๋ฅผ ์ฝ์–ด์˜ค๋Š” ๊ฒƒ์„ ์ฐจ๋‹จํ–ˆ์Šต๋‹ˆ๋‹ค.)

์–ด์ œ ๋ธ”๋กœ๊ทธ๋ฅผ https๋กœ ๋ณ€๊ฒฝ ํ›„ ์†Œ์†Œํ•œ ๋ฌธ์ œ๊ฐ€ ์ฐพ์•„์™”์Šต๋‹ˆ๋‹ค. ๋ฐ”๋กœ js, css ๋“ฑ ๋ฆฌ์†Œ์Šค๋“ค์˜ ์ฃผ์†Œ๊ฐ€ https๋กœ ๊ฐ•์ œ ์น˜ํ™˜๋˜๊ณ  ๋•๋ถ„์— https๊ฐ€ ์—†๋Š” ๊ณณ์—์„œ ๋ถˆ๋Ÿฌ์˜จ ํŒŒ์ผ๋“ค์€ ๋กœ๋“œ๋˜์ง€ ์•Š์•„ ์ผ๋ถ€ ๊ธฐ๋Šฅ์ด ๋™์ž‘ํ•˜์ง€ ์•Š์•˜์—ˆ์ฃ . ๋ฌผ๋ก  ํฌ๊ฒŒ ์ง€์žฅ์žˆ๋Š” ๋ถ€๋ถ„์€ ์•„๋‹ˆ๋ผ ์ฒœ์ฒœํžˆ ์ˆ˜์ •ํ•˜๊ฒ ์ง€๋งŒ..์–ด๋–ค๊ฒƒ์ด ๋ฌธ์ œ์˜€๊ณ  ์–ด๋–ป๊ฒŒ ํ•ด๊ฒฐํ•ด์•ผํ• ์ง€ ์ž‘์„ฑ...

๊ตฌ๊ธ€ ๋ธ”๋กœ๊ฑฐ ๊ฐœ์ธ ๋„๋ฉ”์ธ์— HTTPS ์ œ๊ณต! (HTTPS support to custom domain on google blogger)

๊ตฌ๊ธ€์€ ์˜ˆ์ „์— ์ž์‚ฌ ๋ธ”๋กœ๊ทธ ์„œ๋น„์Šค์ธ Blogger์— https ์ ์šฉ์„ ์ง€์›ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” .blogspot.com ํ•˜์œ„์˜ ๋„๋ฉ”์ธ๋งŒ ๊ฐ€๋Šฅํ–ˆ์—ˆ๋Š”๋ฐ, ์ตœ๊ทผ ์ปค์Šคํ…€ ๋„๋ฉ”์ธ์— ๋Œ€ํ•ด์„œ๋„ https๋ฅผ ์ง€์›ํ•ด์ฃผ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ธ‰ํžˆ ์ ์šฉํ•˜๊ณ , ๊ทธ ๋‚ด์šฉ์„ ํฌ์ŠคํŒ…์œผ๋กœ ๊ณต์œ ๋“œ๋ฆฝ๋‹ˆ๋‹ค. (์‹œ์ ์€ ์ž‘๋…„ ๋ง~์˜ฌ ์ดˆ์ฏค์ธ ๊ฒƒ ๊ฐ™์€๋ฐ, ๋Šฆ๊ฒŒ ์•Œ์•˜๋„ค์š” ใ…œ...

Ruby language์—์„œ์˜ Symbol(์‹ฌ๋ณผ)์ด๋ž€?

์–ธ์–ด ์ž์ฒด์— ๋Œ€ํ•œ ๊ธ€์„ ์“ฐ๋Š”๊ฑด ๊ต‰์žฅํžˆ ์˜ค๋žœ๋งŒ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์˜ค๋Š˜์€ ๋ฃจ๋น„์˜ ์‹ฌ๋ณผ์— ๋Œ€ํ•œ ์ด์•ผ๊ธฐ๋ฅผ ํ•˜๋ คํ•ฉ๋‹ˆ๋‹ค. ๋ฃจ๋น„๋Ÿฌ๋ผ๋ฉด ์ž˜ ์•„์‹œ๊ฒ ์ง€๋งŒ, ๋ฃจ๋น„๋Š” ๋ชจ๋“ ๊ฒƒ์ด ๊ฐ์ฒด์ž…๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ผ๋ฐ˜์ ์œผ๋กœ ๊ฐ์ฒด๋ผ๊ณ  ์ƒ๊ฐ๋˜์ง€ ์•Š๋Š” ๊ฒƒ๋“ค(๋ฌธ์ž์—ด, ์ƒ์ˆ˜ ๋“ฑ๋“ฑ) ๋˜ํ•œ ๋ชจ๋‘ ๊ฐ์ฒด์ž…๋‹ˆ๋‹ค. (๋‹ค๋ฅธ ์–ธ์–ด๋„ ๋น„์Šท๋น„์Šทํ•˜์ฃ ) ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๊ฐ ๊ฐ์ฒด์˜ i...

MITM Proxy server in Ruby (evil-proxy์™€ rails๋ฅผ ์ด์šฉํ•œ WASE ํŠธ๋ž˜ํ”ฝ ์ˆ˜์ง‘ ๊ตฌ๊ฐ„ ๋งŒ๋“ค๊ธฐ)

WASE๋ฅผ ๋งŒ๋“ค๋ฉด์„œ MITM Proxy๋กœ ํŠธ๋ž˜ํ”ฝ์„ ์ˆ˜์ง‘ํ•˜๋Š” ์„œ๋ฒ„๋ฅผ ๋งŒ๋“ค์—ˆ๋Š”๋ฐ์š”, ์ด ๊ณผ์ •์—์„œ ์•Œ์•„๋ดค๋˜๊ฑฐ๋ž‘ ๊ธฐ๋ฐ˜(?)์ด ๋˜์—ˆ๋˜ ์‹ฌํ”Œํ•œ ์ €์˜ ์ฝ”๋“œ ๊ด€๋ จํ•ด์„œ ๊ธ€ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค. ์•„ ์ถ”๊ฐ€๋กœ.. WASE ๋งŒ๋“œ๋Š” ํ”„๋กœ์ ํŠธ(?)๋Š” ์ „์ฒด์ ์ธ ๊ตฌ์กฐ๋ฅผ ์ข€ ๋งŽ์ด ๋ณ€๊ฒฝํ–ˆ์Šต๋‹ˆ๋‹ค. ํ˜น์‹œ๋ผ๋„ ์ข‹์€ ์„ฑ๊ณผ๊ฐ€ ์žˆ๋‹ค๋ฉด.. ๊ณต์œ ๋“œ๋ฆฌ๋„๋ก ํ• ๊ฒŒ์š”. (๋ฌผ๋ก  ๋ฆฌ๋ฐ‹) ...

Protocol-relative URL! //๋กœ ์‹œ์ž‘ํ•˜๋Š” URL

์›น ์ฝ”๋“œ์—์„œ ์ฃผ์†Œ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ double slash(//)๋ฅผ ๋งŽ์ด ์‚ฌ์šฉํ•˜์‹œ๋‚˜์š”? ์š”์ฆ˜์€ ๋Œ€์ฒด๋กœ double slash๋ฅผ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์•„๋ฌด๋Ÿฐ ์ƒ๊ฐ์—†์ด ์‚ฌ์šฉํ•˜๋ฉด์„œ ์ •์ž‘ http:// , https:// ์™€ ๊ฐ™์ด ํ”„๋กœํ† ์ฝœ ๋ช…์‹œ๋œ ๊ฒฝ์šฐ์™€ ๋‹จ์ˆœํ•˜๊ฒŒ double slash๋กœ ๊ตฌ์„ฑ๋œ ์ฃผ์†Œ์˜ ์ฐจ์ด์— ๋Œ€ํ•œ ๊ถ๊ธˆ์ฆ์„ ๊ฐ€์ง€์ง€ ...

Ruby on Rails - submodel, subclass or subcontroller ๋งŒ๋“ค๊ธฐ(references type)

์šฐ์„  ๊ธฐ์ค€์ด ์Šค์ผ€ํด๋“œ๋กœ CRUD ๋ชจ๋ธ์„ ํ•˜๋‚˜ ๋งŒ๋“ค์–ด์ค๋‹ˆ๋‹ค. #> rails new log #> cd log #> rails g scaffold rule name:string desc:text ์ด ๋ชจ๋ธ ์•„๋ž˜ ๋ณต์ˆ˜์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง€๋Š” ๋ชจ๋ธ์„ ๋งŒ๋“ค์–ด๋ด…์‹œ๋‹ค. ํ•˜์œ„์— ํฌํ•จ๋  ๋ชจ๋ธ ๋งŒ๋“ค๊ธฐ, ๋ผ์šฐํŒ… ์„ค์ • #>...

PostgreSQL FATAL: Peer authentication failed for user Error ํ•ด๊ฒฐํ•˜๊ธฐ

rails์˜ db๋ฅผ postgresql๋กœ ๋ฐ”๊พธ๊ณ  ํ•˜๋Š”์ค‘์— ์ด๋Ÿฐ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. root@cherry:/home/cherry/cherry_web# rake db:setup FATAL: Peer authentication failed for user "cherry-web" /usr/lib/ruby/vendor_ruby/...

website capture๋ฅผ ์œ„ํ•œ ruby gem (feat PhantomJS)

์ด๋ฒˆ ์ฃผ๋ง์—” ๋”ฑํžˆ ์“ธ ๊ธ€์ด ์—†๋„ค์š”.. (์‹œ๊ฐ„์ด ใ…œใ…œ) ๊ฐ„๋žตํ•˜๊ฒŒ ruby library๋ฅผ ์ด์šฉํ•œ ์›น ํŽ˜์ด์ง€ ์บก์ณ ๊ด€๋ จํ•ด์„œ ๊ธ€ ์ž‘์„ฑํ•ด๋ด…๋‹ˆ๋‹ค. ์–ด์ œ ์ €๋…์ฏค์— ํ•„์š”์— ์˜ํ•ด ๋ช‡๊ฐ€์ง€ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์งœ๋˜ ์ค‘ ์›น ํŽ˜์ด์ง€๋ฅผ ์บก์ณํ•  ์ผ์ด ์žˆ์—ˆ๋Š”๋ฐ์š”, ruby library ๋กœ ๋ญ๋ญ๊ฐ€ ์žˆ๋‚˜ ์ฐพ์•„๋ดค๋”๋‹ˆ ๋ช‡๊ฐ€์ง€๊ฐ€ ์žˆ๋”๊ตฐ์š” . webshot req...

๊ตฌ๊ธ€ ๋ธ”๋กœ๊ฑฐ(Google Blogger) ํŽ˜์ด์ง€, ๊ฒŒ์‹œ๊ธ€(ํฌ์ŠคํŠธ) ๊ด€๋ จ ํƒ€์ž…๋“ค

์ด์ „๋ถ€ํ„ฐ ์ฒœ์ฒœํžˆ ์ค€๋น„ํ•ด์˜ค๋˜ ๋ธ”๋กœ๊ทธ ์‚ฌ์ดํŠธ์˜ ๋””์ž์ธ๊ณผ ๊ตฌ์กฐ ๋ณ€๊ฒฝ.. ๋“œ๋””์–ด ์ด๋ฒˆ ์ฃผ๋ง์— ๋Œ€๋Œ€์ ์ธ ๊ฐœํŽธ์„ ์ง„ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ์กด ์‚ฌ์ดํŠธ๋„ ์ฝ”๋“œ๋ฅผ ์ž˜ ๊ตฌ๊ฒฝํ•ด๋ณด์…จ๋‹ค๋ฉด ์•„์‹œ๊ฒ ์ง€๋งŒ ๊ตฌ๊ธ€ ๋ธ”๋กœ๊ฑฐ ์„œ๋น„์Šค์™€ ํ˜ธ์ŠคํŒ… ์„œ๋ฒ„ 2๊ฐœ์˜ ์กฐํ•ฉ์œผ๋กœ ๊ตฌ์„ฑํ•œ ์‚ฌ์ดํŠธ์ž…๋‹ˆ๋‹ค. ๊ฐ„๋งŒ์— ํฌ๊ฒŒ ์ˆ˜์ •ํ•˜๋ ค๊ณ  ํ•˜๋‹ˆ.. ๋ธ”๋กœ๊ฑฐ ์ชฝ ๋ฌธ๋ฒ•์ด ํ—ท๊ฐˆ๋ ค์„œ ๊ณ„์† ์ฐพ์•„๋ณด์•˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด...

Elastic search ์ฟผ๋ฆฌ ์ •๋ฆฌ(cheat sheet)

๊ธฐ๋ณธ์ ์œผ๋กœ REST API์™€ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค. GET/POST/PUT/DELETE ๋“ฑ์˜ http ๋ฉ”์†Œ๋“œ๋กœ ๊ธฐ๋Šฅ์— ๋”ฐ๋ฅธ ์ฒ˜๋ฆฌ๋ฅผ ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ url์˜ ๊ฐ๊ฐ ์œ„์น˜์— ๋”ฐ๋ผ index, type, column ์œผ๋กœ ๋‚˜๋ˆ„์–ด ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. GET: ์กฐํšŒ POSt: ์ˆ˜์ • PUT: ์ถ”๊ฐ€ URI ๊ทœ์น™ index/type/column ...

[HACKING] Bug Bounty๋ฅผ ์œ„ํ•œ WASE(Web Audit Search Engine) ๋งŒ๋“ค๊ธฐ [2] - Burp suite์™€ Elastic search ์—ฐ๋™ํ•˜๊ธฐ

์šฐ์„  burp bapps์— ์˜ฌ๋ผ์™€ ์žˆ๋Š” extension ์œผ๋กœ๋Š” 2๊ฐ€์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. elastic burp์™€ report to elastic ์ž…๋‹ˆ๋‹ค. Burp extension for elastic search 1. Elastic Burp Burp suite๋ฅผ ๊ฑฐ์ณ๊ฐ€๋Š” ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด ES๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ˆ„์ ํ•ฉ๋‹ˆ๋‹ค. https...

[HACKING] Bug Bounty๋ฅผ ์œ„ํ•œ WASE(Web Audit Search Engine) ๋งŒ๋“ค๊ธฐ [1] - Elastic search์™€ ruby-rails

์š”์ฆ˜๋“ค์–ด ๋ฒ„๊ทธ๋ฐ”์šดํ‹ฐ์— ๋Œ€ํ•œ ์ƒ๊ฐ์ด ์กฐ๊ธˆ ๊นŠ์–ด์กŒ์Šต๋‹ˆ๋‹ค. ์ผ์„ ํ•˜๋Š” ๊ฒƒ ์ด์™ธ์—๋„ ๋ฌด์–ธ๊ฐ€ ๊ฐ€์น˜๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ฒ ๋‹ค๋ผ๋Š” ์ƒ๊ฐ ๋•Œ๋ฌธ์ด์ฃ . (๊ทธ๋ƒฅ ๋ˆ์„ ๋” ๋ฒŒ๊ณ ์‹ถ๋‹ค๊ณ  ๊ทธ๋ž˜ =_=) ๊ทธ๋Ÿฌ๋‚˜ ์•ˆํƒ€๊น๊ฒŒ๋„ ์‹œ๊ฐ„์€ ํ•ญ์ƒ ์ œํ•œ์ ์ด๊ณ , ์ €์˜ ์‹œ๊ฐ„์€ ๋งค์šฐ ๋ชจ์ž๋ž๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ.. VAHA(http://vaha.hahwul.com )์— ์ด์–ด ๋ฒ„๊ทธ๋ฐ”์šดํ‹ฐ๋ฅผ...

[CODING] Android "Only the original thread that created a view hierarchy can touch its views." ์—๋Ÿฌ ํ•ด๊ฒฐ๋ฐฉ๋ฒ•

์•ˆ๋“œ๋กœ์ด๋“œ์˜ UI๋ฅผ ๋ณ€๊ฒฝํ•  ๋•Œ ๊ฐ„ํ˜น ์ด๋Ÿฐ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. Code public void changeTextView(String ttext){ textView.setText(text); } Error android.view.ViewRootImpl$CalledFromWrongThreadException: Only th...

[DOCKER] ๋„์ปค ์ปจํ…Œ์ด๋„ˆ, ํ˜ธ์ŠคํŠธ๊ฐ„ ํŒŒ์ผ ์ „์†ก/๋ฐ›๊ธฐ(How to send/recive docker container)

๊ทธ๋ƒฅ ๋ฉ”๋ชจ ์ฐจ์›์œผ๋กœ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค. docker container ์™€ ํ˜ธ์ŠคํŠธ ๊ฐ„ ํŒŒ์ผ ์ด๋™ ์‹œ cp, scp ์™€ ๋™์ผํ•˜๋‹ˆ ์‰ฝ๊ฒŒ ์ƒ๊ฐํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. cp [source] [destination] #> docker cp ./move.me containerId:/[file_path] #> docker cp contain...

[ROR] Ruby on Rails "cannot load such file -- [package]" ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

์™œ๊ทธ๋Ÿฐ์ง„ ์ž˜ ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ ์˜ค๋Š˜ ์—…๋ฐ์ดํŠธ ์ดํ›„์— rails ์„œ๋ฒ„ ์‹œ์ž‘ ์‹œ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๋‚ด์šฉ์„ ๋ณด์ž๋‹ˆ.. mime/types๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†๋‹ค๊ณ  ํ•˜๋„ค์š”. #> rails s => Booting Thin => Rails 4.2.9 application starting in development on http...

[RUBY] nokogiri install/update ์—๋Ÿฌ ํ•ด๊ฒฐํ•˜๊ธฐ(An error occurred while installing nokogiri (1.8.2), and Bundler cannot continue.)

๊ฐ„๋งŒ์— ๋ ˆ์ผ์ฆˆ ๋–”์— ๋ฃจ๋น„ ๊ฐ€์ง€๊ณ  ๋†€๋˜ ์ค‘ nokogiri๊ฐ€ ๊ณ ์žฅ๋‚ฌ์Šต๋‹ˆ๋‹ค. (๋Œ€์ฒด๋กœ ๋ถ€ํŒ…๊ณผ ํ•จ๊ป˜ ํŒจํ‚ค์ง€ ์—…๋ฐ์ดํŠธ๋ฅผ ํ•˜๋Š”๋ฐ, ๊ทธ๊ฒŒ ๋ฌธ์ œ์˜€์ฃ ..) Using debug_inspector 0.0.3 Using i18n 0.9.3 Using tzinfo 1.2.5 The latest bundler is 1.16.1, but you ...

iframe์˜ height:100%๊ฐ€ ์•ˆ๋  ๋•Œ viewport๋ฅผ ์ด์šฉํ•˜์—ฌ ํ•ด๊ฒฐํ•˜๊ธฐ

iframe ํƒœ๊ทธ๋ฅผ ์“ฐ๋‹ค๋ณด๋ฉด ๊ฐ„ํ˜น ๋†’์ด๊ฐ€ 100%๊ฐ€ ์•ˆ๋˜๋Š” ์ƒํ™ฉ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ๋‹ค๋ฅธ ์š”์†Œ๋“ค์˜ ํฌ๊ธฐ๋ฅผ ์กฐ์ •ํ•˜๋‹ค๊ฐ€ %์˜ ํฌ๊ธฐ๋กœ ํ™”๋ฉด์„ ๋„˜์–ด๊ฐ€๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ๊ฐ€์ง€ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์žˆ๊ฒ ์ง€๋งŒ viewport๋ฅผ ์ด์šฉํ•ด์„œ๋„ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์˜ค๋Š˜์€ viewport์— ๋Œ€ํ•œ ์ด์•ผ๊ธฐ๋ฅผ ํ• ๊นŒ ํ•ฉ๋‹ˆ๋‹ค. viewport๋ž€? Viewport๋ž€ ๋ธŒ๋ผ...

[CODING] Backspace,Delete not working in vim insert mode(vim์—์„œ ์‚ญ์ œ๊ฐ€ ์ž˜ ๋˜์ง€ ์•Š์„๋•Œ)

๊ฐ„ํ˜น ์‹œ์Šคํ…œ์— ๋”ฐ๋ผ vim์ด ๋ง›์ด๊ฐ‘๋‹ˆ๋‹ค. backspace ํ‚ค๊ฐ€ ์ •์ƒ ์ž‘๋™ํ•˜์ง€ ์•Š์„๋•Œ ๊ต‰์žฅํžˆ ๋‹ต๋‹ตํ•œ๋ฐ์š”.. vimrc์— ํ•œ์ค„ ์ถ”๊ฐ€๋กœ ์‰ฝ๊ฒŒ ํ•ด๊ฒฐ๋ฉ๋‹ˆ๋‹ค. .vim.rc set backspace=indent,eol,start ๋ณ„๊ฑฐ ์•„๋‹ˆ์ง€๋งŒ ๋„์›€๋˜์…จ๊ธธ..

Vim์—์„œ์˜ ๊ฐœ๋ฐœ์„ ์œ„ํ•œ ์ตœ์†Œํ•œ์˜ plugin ์„ค์ •

๋งค๋ฒˆ ๋Š๋ผ์ง€๋งŒ ๊ธ€๋กœ ์ž‘์„ฑํ•˜์ง€ ์•Š์€ ๋‚ด์šฉ๋“ค์€ ๋‚˜์ค‘์— ๋‹ค์‹œ ์„ธํŒ…ํ•˜๊ฑฐ๋‚˜, ์ฐธ๊ณ ํ•ด์•ผํ•  ๋•Œ ์ฐธ ๋ถˆํŽธํ•ฉ๋‹ˆ๋‹ค. ๊ผญ ํ•„์š”ํ•  ๋•Œ ๋ณด๋ฉด ์—†๋‹ค์ฃ . ์ตœ๊ทผ์—๋„ vim ์„ธํŒ…์„ ๋‹ค์‹œ ํ• ์ผ์ด ์žˆ์–ด ํ•˜๋‚˜ํ•˜๋‚˜ ์„ธํŒ…ํ•˜๊ณ  ์žˆ๋Š”๋ฐ, ํ•œ๋ฒˆ์ฏค์€ ๋ฉ”๋ชจํ•ด๋‘๋ฉด ๋‘๊ณ ๋‘๊ณ  ๋ณผ ๊ฒƒ ๊ฐ™๋‹ค๋ผ๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ์งง๊ฒŒ๋‚˜๋งˆ ์‹œ๊ฐ„ ๋‚ด์–ด์„œ ๊ธ€ ์ž‘์„ฑํ•ด๋ด…๋‹ˆ๋‹ค. plugin ๊ด€๋ฆฌ์ž apt...

Learning Go Language - Hello world, GoRoutine

์š”์ฆ˜ Go langage๋ฅผ ๋ฐฐ์›Œ๋ณผ๊นŒ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์•„์ฃผ ์ฒœ์ฒœํžˆ ํ‹ˆ๋‚ ๋•Œ๋งˆ๋‹ค ๋ณด๊ณ ์žˆ๋Š”๋ฐ, ์กฐ๊ธˆ์”ฉ์€ ์ •๋ฆฌํ•ด์„œ ํฌ์ŠคํŒ…ํ•ด๋ณผ๊นŒ ํ•ฉ๋‹ˆ๋‹ค. ์•„๋งˆ ์ต์ˆ™ํ•ด์ง€๋ฉด Ruby์™€ ์„ž์–ด์„œ ์ฝ”๋”ฉํ•˜๊ฒŒ ๋  ๊ฒƒ ๊ฐ™๋„ค์š”. ๋ฌธ๋ฒ•์— ๋Œ€ํ•œ ์„ค๋ช…์€ ํŒจ์Šคํ•˜๊ณ  Go๋งŒ์˜ ํŠน์ดํ•œ ๋ถ€๋ถ„๋“ค ์œ„์ฃผ๋กœ ๊ธ€ ์ž‘์„ฑํ•ด๋ณด์ฃ . ๊ทธ๋Ÿผ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. What is Go lang? 2009๋…„ 1...

์•„์Šคํ‚ค ์ฝ”๋“œ&HTML ์ฝ”๋“œํ‘œ(Ascii&HTML code table, URL encode)

HTML & Ascii table ์ž…๋‹ˆ๋‹ค. ๊ฐ€๋” ์ฐธ๊ณ ํ•˜๋‹ˆ ์ •๋ฆฌํ•ด๋‘ก๋‹ˆ๋‹ค. ๋น ๋ฅธ ๊ฒ€์ƒ‰์€ Ctrl+F(๊ฒ€์ƒ‰) > CF_(+์ฐพ์„ ๋ฌธ์ž์—ด) Ascii&HTML code table ASCII Hex Symbol URL Encode HTML En...

[RUBY] ํด๋ฆฝ๋ณด๋“œ์— ๋ฐ์ดํ„ฐ๋ฅผ ๋ณต์‚ฌํ•˜์ž! clipboard gem

์˜ˆ์ „์— python์˜ tkinter ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ด์šฉํ•ด์„œ clipboard ์ œ์–ดํ•˜๊ณ  ๊ฐ„๋‹จํ•œ ํ”„๋กœ๊ทธ๋žจ ๋งŒ๋“œ๋Š” ์ด์•ผ๊ธฐ๋ฅผ ํ–ˆ์—ˆ์Šต๋‹ˆ๋‹ค. (http://www.hahwul.com/2016/06/python-tkinter-module-clipboard.html ) ๊ฐ„๋งŒ์— ๊ทธ ๊ธ€์„ ๋ณด๋‹ค๋ณด๋‹ˆ.. ๊ทธ๋•Œ ์ฐธ ๋ถˆํŽธํ•˜๊ฒŒ ๋งŒ๋“ค์—ˆ๋”๋ผ๊ตฌ์š”. ๋‹ˆ์ฆˆ๋„ ...

Bookmarklet์ด๋ž€?

์ตœ๊ทผ์— Bookmarklet์˜ ์กด์žฌ๋ฅผ ์•Œ์•˜์Šต๋‹ˆ๋‹ค. ๋ธŒ๋ผ์šฐ์ € AddOn๋งŒ ๊ฐœ๋ฐœํ•ด์„œ ์จ์˜ค๋˜ ์ €์—๊ฒ ๋‚˜๋ฆ„๋Œ€๋กœ ์‹ ์„ธ๊ณ„ ์˜€๋„ค์š”. ์˜ค๋Š˜์€ Bookmarklet์— ๋Œ€ํ•œ ์ด์•ผ๊ธฐ๋ฅผ ํ•˜๋ คํ•ฉ๋‹ˆ๋‹ค. Bookmarklet Bookmarklet์€ ์ฆ๊ฒจ์ฐพ๊ธฐ, ์ฆ‰ ๋ถ๋งˆํฌ ์ฃผ์†Œ์— ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ๊ตฌ๋ฌธ์„ ์ถ”๊ฐ€ํ•œ ํ˜•ํƒœ๋กœ ๋ถ๋งˆํฌ๋ฅผ ํด๋ฆญํ•˜์—ฌ ๋งํฌ ์ด๋™์ด ์•„๋‹Œ ์›...

Rails์—์„œ DB Column ์ถ”๊ฐ€ํ•˜๊ธฐ

rails๋Š” database schema ๋“ฑ์„ migration ํŒŒ์ผ๋กœ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ์ด์šฉํ•˜๋ฉด ์ด๋ฏธ ๋งŒ๋“ค์–ด์ง„ ์•ฑ์—์„œ DB Schema๋ฅผ ๋ณ€๊ฒฝํ•˜๊ฑฐ๋‚˜ ์‰ฝ๊ฒŒ Rollbackํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. rails g migration add_<column>_to_<table>:string ์ดํ›„์— ์ฝ”๋“œ์— ๋”ฐ๋ผ Mo...

[EXPLOIT] JAVA SE Web start JNLP XXE ์ทจ์•ฝ์  ๋ถ„์„(CVE-2017-10309, feat Metasploit)

์š”์ฆ˜ ์‹œ๊ฐ„๋‚ด๊ธฐ๊ฐ€ ์™œ์ด๋ฆฌ ์–ด๋ ค์šด๊ฑด์ง€.. ๋•๋ถ„์— ์˜ค๋žœ๋งŒ์— ์ทจ์•ฝ์  ๋ถ„์„๊ธ€์„ ์ž‘์„ฑํ•˜๋„ค์š”. ์˜ค๋Š˜์€ ์ง€๋‚œ 10์›” ๋ง ๊ณต๊ฐœ๋œ JAVA SE ๊ด€๋ จ XXE ์ทจ์•ฝ์ ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ• ๊นŒ ํ•ฉ๋‹ˆ๋‹ค. Vulnerability Metrics JAVA SE 8 ๋ฒ„์ „ u131 ๋นŒ๋“œ ์ด์ „์— ๋ฐœ์ƒํ•˜๋Š” ์ทจ์•ฝ์ ์ž…๋‹ˆ๋‹ค. XXE๋ฅผ ํ†ตํ•ด ํŒŒ์ผ ํƒˆ์ทจ, SSRF, ์ฝ”...

XCode Simulator์— App(.ipa) ํŒŒ์ผ ์„ค์น˜ํ•˜๊ธฐ

์ทจ์•ฝ์  ํ…Œ์ŠคํŠธ ๊ธฐ๊ธฐ๋กœ ์“ฐ๋Š” iOS ๋””๋ฐ”์ด์Šค์— ๋ฌธ์ œ๊ฐ€ ์žˆ์–ด Simulator๋ฅผ ์•Œ์•„๋ณด๋˜ ์ค‘ ๊ฐ„๋‹จํ•œ ํŒ์ด ์žˆ์–ด ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ Simulator์— Xcode๋กœ ์ปดํŒŒ์ผํ•œ ์•ฑ์ด ์•„๋‹ˆ๋ฉด ์„ค์น˜๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋งŒ ์•ฝ๊ฐ„์˜ ํŠธ๋ฆญ์„ ์“ฐ๋ฉด ์‰ฝ๊ฒŒ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ์š”. ์˜ค๋Š˜์€ app ํŒŒ์ผ์ธ .ipa(app)์œผ๋กœ Xcode Simulator์— ์„ค...

[POWERSHELL] ํŒŒ์›Œ์‰˜์„ ์ด์šฉํ•œ ํŒŒ์ผ ์ •๋ณด ํ™•์ธํ•˜๊ธฐ(Write a get file information script)

ํŒŒ์›Œ์‰˜์— ๋Œ€ํ•œ ์ด์•ผ๊ธฐ๋ฅผ ์ž ๊น ํ• ๊นŒํ•ฉ๋‹ˆ๋‹ค. ์œˆ๋„์šฐ ํ™˜๊ฒฝ์—์„œ ํŒŒ์›Œ์‰˜ ์‚ฌ์šฉ ์‹œ batch ํŒŒ์ผ์— ๋น„ํ•ด ์ƒ์„ธํ•˜๊ฒŒ ์‹œ์Šคํ…œ์— ๋Œ€ํ•ด ์ œ์–ดํ•  ์ˆ˜ ์žˆ๊ณ  Ruby, Python ๊ณผ ๊ฐ™์€ ์–ธ์–ด์™€ ๋‹ฌ๋ฆฌ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋‚ด์žฅ๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ณ„๋„์˜ ์„ค์น˜ ์—†์ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์žฅ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ค๋Š˜์€ ํŒŒ์›Œ์‰˜์„ ์ด์šฉํ•ด์„œ ํŒŒ์ผ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ค๊ณ , ๋‚ด์šฉ...

[POWERSHELL] ์ด ์‹œ์Šคํ…œ์—์„œ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์—†์œผ๋ฏ€๋กœ ํŒŒ์ผ์„ ๋กœ๋“œํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค(execution of scripts is disabled on this system.) ์—๋Ÿฌ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

๋ฉ”๋ชจ์ฐจ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค. Powershell script ๋ฅผ ์ž‘์„ฑ / ์‚ฌ์šฉํ•˜๋‹ค๋ณด๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ ์—๋Ÿฌ๊ฐ€ ๋ฐ˜๊ฒจ์ฃผ๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•œ๊ธ€ โ€œ์ด ์‹œ์Šคํ…œ์—์„œ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์—†์œผ๋ฏ€๋กœ ํŒŒ์ผ์„ ๋กœ๋“œํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹คโ€ ์˜๋ฌธ โ€œexecution of scripts is disabled on this system.โ€ ์ด๋Ÿฐ ...

Metasploit API์™€ msfrpcd, ๊ทธ๋ฆฌ๊ณ  NodeJS

์š”์ฆ˜ metasploit์˜ rpc์— ๋Œ€ํ•ด ๊ต‰์žฅํžˆ ๊ด€์‹ฌ์ด ๋งŽ์Šต๋‹ˆ๋‹ค. ๋Œ€ํ‘œ์ ์œผ๋ก  msgrpc plugin ๋ถ€ํ„ฐ msfrpcd ๋ฐ๋ชฌ๊นŒ์ง€ metasploit์—์„œ rpc๋ฅผ ์ด์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•๋“ค์„ ๋งŽ์ด ์ฐพ์•„๋ณด๊ณ  ์žˆ์ง€์š”. ์ œ๊ฐ€ ์ฃผ๋กœ ๋ฃจ๋น„๋ฅผ ๋งŽ์ด ์“ฐ๊ธด ํ•˜์ง€๋งŒ ์ทจ์•ฝ์ ์„ ์ฐพ๊ณ  ๋ณด์•ˆ ํ…Œ์ŠคํŒ…์„ ํ•˜๋Š” ์ง์—…์˜ ํŠน์„ฑ ์ƒ Javascript๋Š” ์ต์ˆ™ํ•ด...

[METASPLOIT] Writing Custom Plugin for metasploit

์ตœ๊ทผ์— a2sv๋ฅผ metasploit plugin์œผ๋กœ ์ง€์›ํ•  ์ƒ๊ฐ์„ ํ•˜๊ณ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“ˆ ์ œ์ž‘์ด ์•„๋‹Œ plugin ์ œ์ž‘์œผ๋ก  ๊ฒฝํ—˜์ด ๊ฑฐ์˜ ์—†๊ธฐ์—.. ํ•˜๋‚˜ํ•˜๋‚˜ ์ฐพ์•„๋ณด๋ฉด์„œ ์ง„ํ–‰ํ•˜๊ธฐ๋กœ ํ–ˆ์ฃ . ๊ฒธ์‚ฌ๊ฒธ์‚ฌ ์˜ค๋Š˜์€ ๊ฐ„๋‹จํžˆ msf plugin ์ž‘์„ฑ๋ฒ•์— ๋Œ€ํ•ด ๋ฉ”๋ชจํ• ๊นŒ ํ•ฉ๋‹ˆ๋‹ค. ๋‹น์—ฐํžˆ ruby ๊ธฐ๋ฐ˜ framework์ด๊ธฐ ๋•Œ๋ฌธ์— ruby๋กœ ์ฝ”๋”ฉํ•˜...

RUBY์—์„œ RQRCode๋ฅผ ์ด์šฉํ•˜์—ฌ QR์ฝ”๋“œ ์ƒ์„ฑํ•˜๊ธฐ

์˜ค๋Š˜์€ RQRCode์— ๋Œ€ํ•ด ์ž‘์„ฑํ• ๊นŒ ํ•ฉ๋‹ˆ๋‹ค. RQRCode๋Š” Ruby์—์„œ QR์ฝ”๋“œ๋ฅผ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค. ๊ฐ„๋‹จํ•œ ์ฝ”๋“œ๋กœ ์‰ฝ๊ฒŒ QR์ฝ”๋“œ ์ƒ์„ฑ์ด ๊ฐ€๋Šฅํ•˜๊ธฐ ๋–„๋ฌธ์— QR์ฝ”๋“œ ๊ด€๋ จ ์„œ๋น„์Šค๋‚˜ Rails ๋‚ด QR ์ฝ”๋“œ ์‚ฌ์šฉ ๋“ฑ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋ฐฉ๋ฉด์œผ๋กœ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๊ฒ ๋„ค์š”. ๋จผ์ € gem์„ ํ†ตํ•ด ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค. gem install ...

PuDB ์ด์šฉํ•˜์—ฌ cli์—์„œ python ๋””๋ฒ„๊น…ํ•˜๊ธฐ

ํŒŒ์ด์ฌ ๋””๋ฒ„๊น…์„ ์œ„ํ•ด ๊ตฌ๊ธ๋งํ•˜๋˜ ์ค‘ stackoveflow์—์„œ ์“ธ๋งŒํ•œ python debugger๋ฅผ ํ•˜๋‚˜ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค. ๋ฐ”๋กœ PuDB python ๋ชจ๋“ˆ์ž…๋‹ˆ๋‹ค. ์ด ๋ชจ๋“ˆ์€ ํŒŒ์ด์ฌ ์ฝ”๋“œ๋ฅผ ์‰ฝ๊ฒŒ ๋””๋ฒ„๊น…ํ•˜๊ธฐ ์œ„ํ•ด ๋งŒ๋“ค์–ด์ง„ ๋ชจ๋“ˆ์ž…๋‹ˆ๋‹ค. ์˜ค๋Š˜์€ ์ด PuDB ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•˜์—ฌ python ์ฝ”๋“œ์— ๋Œ€ํ•ด ๋””๋ฒ„๊น…ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์ž‘์„ฑํ•ด๋ด…๋‹ˆ๋‹ค. ...

[CODING] Ruby telegram-bot ์„ ์ด์šฉํ•œ ํ…”๋ ˆ๊ทธ๋žจ ๋ด‡ ๋งŒ๋“ค๊ธฐ

์•ˆ๋…•ํ•˜์„ธ์š”. ํ•˜ํ›Œ์ž…๋‹ˆ๋‹ค. ์˜ค๋Š˜์€ Ruby๋ฅผ ์ด์šฉํ•œ ํ…”๋ ˆ๊ทธ๋žจ ๋ด‡ ๋งŒ๋“ค๊ธฐ์— ๋Œ€ํ•œ ์ด์•ผ๊ธฐ๋กœ ์ค€๋น„ํ–ˆ์Šต๋‹ˆ๋‹ค. ์งง์€ ๋‚ด์šฉ์ด์ง€๋งŒ.. ์›Œ๋‚™ ์ •์‹ ์—†์ด ์ง€๋‚ธ์ง€๋ผ ์ด์ œ์„œ์•ผ ํฌ์ŠคํŒ…์„ ํ•˜๊ฒŒ๋˜๋„ค์š”. ๊ทธ๋Ÿผ ์‹œ์ž‘ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. @BotFather๋ฅผ ์ด์šฉํ•œ ์‹ ๊ทœ Bot ์ƒ์„ฑ ๋จผ์ € ํ…”๋ ˆ๊ทธ๋žจ ๋‚ด ๋ด‡๋“ค์€ @BotFather๋ฅผ ํ†ตํ•ด ๊ด€๋ฆฌ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. F...

[WEB HACKING] PHP Comparison Operators Vulnerability for Password Cracking

๊ฐœ์ธ์ ์œผ๋กœ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ์žฌ๋ฏธ์žˆ๋Š” ์š”์†Œ๋Š” ์—ฐ์‚ฐ์ž๊ฐ€ ์•„๋‹๊นŒ ์‹ถ์Šต๋‹ˆ๋‹ค. ์ž‘์€ ์—ฐ์‚ฐ์ž๋“ค์ด ๋ชจ์—ฌ ํฐ ํ๋ฆ„์„ ๋งŒ๋“ค๊ณ , ์šฐ๋ฆฌ๊ฐ™์€ ํ•ด์ปค๋Š” ์ด ํ๋ฆ„์„ ํ‹€์–ด ์˜ˆ์ƒ์น˜๋„ ๋ชปํ•œ ํ–‰์œ„๋ฅผ ์ด๋Œ์–ด๋‚ด๋‹ˆ ๊ต‰์žฅํžˆ ์žฌ๋ฏธ์žˆ๋Š” ๋ถ€๋ถ„์ด์ฃ . PHP์—๋Š” ์•„์ฃผ ์žฌ๋ฏธ์žˆ๋Š” ์ทจ์•ฝ์ ์ด ํ•˜๋‚˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ„๋‹จํ•œ ๋ฒ„๊ทธ์ผ ์ˆ˜ ์žˆ์ง€๋งŒ ์ด ๊ฒฐ๊ณผ๊ฐ€ ์—„์ฒญ๋‚œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถˆ๋Ÿฌ์˜ฌ ์ˆ˜ ์žˆ์ฃ . ์˜ค๋Š˜์€...

์ด ํŠน์ˆ˜๋ฌธ์ž๋Š” ์–ด๋–ป๊ฒŒ ์ฝ์–ด์•ผ ํ• ๊นŒ์š”?

๋ณด์•ˆ์ „๋ฌธ๊ฐ€๋‚˜ ๊ฐœ๋ฐœ์ž๊ฐ™์ด ์‹ค๋ฌด์ ์ธ IT ์—…๋ฌด๋ฅผ ํ•˜๋‹ค๋ณด๋ฉด ํŠน์ˆ˜๋ฌธ์ž์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์•ผํ•  ๋•Œ๊ฐ€ ๋งŽ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ € ๋˜ํ•œ ๊ฐœ๋ฐœ์ž์—๊ฒŒ ๋งค๋ฒˆ ์„ค๋ช…ํ•ด์•ผํ•˜๊ณ , ๊ทธ ๊ณผ์ •์—์„œ ํŠน์ˆ˜๋ฌธ์ž์— ๋Œ€ํ•œ ์–ธ๊ธ‰์ด ๋งŽ๊ธฐ ๋•Œ๋ฌธ์— ๋ชจ๋ฅด๋Š” ๋ถ€๋ถ„์€ ์ผ๋ถ€๋Ÿฌ ์ฐพ์•„์„œ ์ •๋ฆฌํ•ด๋‘๊ณ  ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ƒ๊ฐํ•ด๋ณด๋‹ˆ ์ด๋Ÿฐ ๋‚ด์šฉ์€ ๊ณต์œ ๋˜๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™์•„ ๊ธ€๋กœ ์ž‘์„ฑํ•ด๋ด…๋‹ˆ๋‹ค. Name of Sp...

SOP(Same-Origin Policy)์™€ Web Security

์˜ค๋Š˜์€ ์›น ํ•ดํ‚น ์‹œ ์šฐ๋ฆฌ์˜ ๋ฐœ๋ชฉ์„ ์žก๋Š” ์นœ๊ตฌ์ธ SOP(Same-Origin Policy)์— ๋Œ€ํ•œ ์ด์•ผ๊ธฐ๋ฅผ ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. Same-Origin Policy? Same-Origin Policy(๋™์ผ ์ถœ์ฒ˜ ์ •์ฑ…)๋Š” ์›น ์‚ฌ์ดํŠธ๊ฐ„ ์ •๋ณด ๊ต๋ฅ˜์— ์ œํ•œ์„ ๋‘๋Š” ์ •์ฑ…์ž…๋‹ˆ๋‹ค. ๋‹น์—ฐํžˆ ๋ณด์•ˆ์ ์ด ๋ฌธ์ œ๋กœ ์ธํ•ด ๋งŒ๋“ค์–ด์ง„ ์ •์ฑ…์œผ๋กœ MDN์—์„  ์•„๋ž˜์™€...

[CODING] WebSocket - Overview , Protocol/API and Security

WebSocket์ด๋ž€? WebSocket์€ ์›น ํŽ˜์ด์ง€์—์„œ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋™์ž‘ํ•˜๋Š” ์›น ์„œ๋น„์Šค๋ฅผ ๋งŒ๋“ค์–ด ์ค„ ์ˆ˜ ์žˆ๋Š” ํ‘œ์ค€ ๊ธฐ์ˆ ์ž…๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์›น ํ”„๋กœํ† ์ฝœ์ธ HTTP๋Š” Request์™€ Response ๊ธฐ๋ฐ˜์œผ๋กœ ์ƒˆ๋กœ ์š”์ฒญ์ด ๋ฐœ์ƒํ•˜๋ฉด ํŽ˜์ด์ง€๋ฅผ ๋‹ค์‹œ ๊ทธ๋ ค์•ผํ•˜๋Š” ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค. ๋•๋ถ„์— ์ฟ ํ‚ค๋ผ๋Š” ๊ฐœ๋…๋„ ์‚ฌ์šฉ๋˜๊ฒŒ ๋˜์—ˆ์ง€์š”. (์ธ์ฆ ์ •๋ณด๋ฅผ ์œ ์ง€ํ•˜...

[RUBY] Cuntom column sort function on Two-dimensional array

๋ฃจ๋น„๋กœ ์ฝ”๋”ฉํ•˜๋˜ ์ค‘ ๊ท€์ฐฎ์€ ์ผ์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฐ”๋กœ array์— ๋Œ€ํ•œ ์ •๋ ฌ ์ค‘ 2์ฐจ์› ์ด์ƒ ๋ฐฐ์—ด์—์„œ๋Š” ์ œ๊ฐ€ ์ง€์ •ํ•œ ์—ด์„ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌํ•  ์ˆ˜ ์žˆ๋Š” ํ•จ์ˆ˜๊ฐ€ ์—†๋˜๊ฒƒ์ž…๋‹ˆ๋‹ค.. ๋Œ€์ฒด๋กœ sort ๋ฉ”์†Œ๋“œ๋ฅผ ์ด์šฉํ•˜์—ฌ ์ •๋ ฌ์„ ํ•ฉ๋‹ˆ๋‹ค. 2์ฐจ์› ๋ฐฐ์—ด์— ๋Œ€ํ•ด sort ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด array๋Š” ๋งจ ์•ž ์—ด์„ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌํ•ฉ๋‹ˆ๋‹ค. ๊ฐ„๋‹จํ•œ ์˜ˆ์‹œ๋ฅผ ...

[DEBIAN] malloc() ์‹œ sysctl vm.swappiness๋ฅผ ์ด์šฉํ•˜์—ฌ Swap ์ ๊ทน ํ™œ์šฉํ•˜๊ธฐ

๋ฆฌ๋ˆ…์Šค์—์„œ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ํ…Œ์ŠคํŠธ๋ฅผ ํ•˜๋‹ค๋ณด๋ฉด memory๋ฅผ full ์‹œ์ผœ์•ผํ•  ์ƒํ™ฉ์ด ์˜ค๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์‹ค ์ œ๊ฐ€ ์ด๋Ÿฐ ํ…Œ์ŠคํŠธ๊ฐ€ ํ•„์š”ํ•˜๊ธฐ๋ณด๋‹จ ํ•„์š”ํ•œ ๋ถ„ ๋„์™€๋“œ๋ฆฌ๋‹ค๋ณด๋‹ˆ ์•„๋ฌด๋ž˜๋„ ์ •๋ฆฌํ•ด๋†“๋Š”๊ฒŒ ์ข‹์„ ๊ฒƒ ๊ฐ™์•„ ๊ฐ€๋ณ๊ฒŒ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค. ์˜ค๋Š˜์€ memory full test์—์„œ swap ๋ถ€๋ถ„์— ๋Œ€ํ•ด์„œ ์‰ฝ๊ฒŒ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ malloc๊ณผ vm.swap...

Ruby nokogiri๋ฅผ ์ด์šฉํ•œ Web Spider ๋งŒ๋“ค๊ธฐ

์ง€๋‚œ ํฌ์ŠคํŒ…์—์„  nokogiri๋ฅผ ์ด์šฉํ•œ parsing ์„ ํ–ˆ๋‹ค๋ฉด ์ด๋ฒˆ์—๋Š” ์กฐ๊ธˆ ๋” ๋ฐœ์ „ ์‹œ์ผœ์„œ ๊ฐ„๋‹จํ•œ Spider๋ฅผ ๋งŒ๋“ค์–ด๋ณผ๊นŒ ํ•ฉ๋‹ˆ๋‹ค. ๋ฌผ๋ก  ํ›จ์”ฌ ์ข‹์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋“ค์ด ์žˆ์ง€๋งŒ ๊ฐ€์žฅ ๊ธฐ๋ณธ์ด๋˜๋Š” nokogiri๋ฅผ ์ž˜ ์•ˆ๋‹ค๋ฉด ๋งŽ์€ ๋„์›€์ด ์žˆ์„ ์ˆ˜ ์žˆ๊ฒ ์ง€์š”. Web Spider ๋ฌผ๋ก  ์•„์‹œ๊ณ  ๋“ค์–ด์˜ค์…จ๊ฒ ์ง€๋งŒ, Web Spider ๋Œ€ํ•œ...

Ruby Nokogiri๋ฅผ ์ด์šฉํ•œ Web Parsing

์›น ์„œ๋น„์Šค๋ฅผ ํƒ์ƒ‰ํ•˜๋Š” ๋„๊ตฌ๋“ค์„ ๋งŒ๋“ค๋‹ค ๋ณด๋ฉด ๋งŽ์ด ์ ‘ํ•˜๊ฒŒ ๋˜๋Š” ์ž‘์—…์ด ํ•˜๋‚˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ”๋กœ HTML, XML ๋“ฑ ๊ตฌ์กฐํ™”๋œ ๋ฌธ์„œ๋ฅผ ํŒŒ์‹ฑํ•˜๋Š” ์ž‘์—…์ธ๋ฐ์š”. ์˜ค๋Š˜์€ Ruby์˜ ๊ฐ•๋ ฅํ•œ ํŒŒ์‹ฑ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ธ Nokogiri์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ• ๊ฐ€ ํ•ฉ๋‹ˆ๋‹ค. Web Parsing Web Parsing์ด๋ž€ ์›น ํŽ˜์ด์ง€์˜ Response๋ฅผ ๋ถ„์„ํ•˜์—ฌ Ob...

[RUBY] ๋ฃจ๋น„์—์„œ Process/command ์‹คํ–‰ํ•˜๊ธฐ(Execute Process and command)

C์–ธ์–ด๋ถ€ํ„ฐ ruby, python ๋“ฑ๋“ฑ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์–ธ์–ด ์ค‘ ํ•˜๋‚˜๋ผ๋„ ํ•ด๋ณด์…จ๋‹ค๋ฉด ์ •๋ง ๋ฐ˜๊ฐ€์šด ํ•จ์ˆ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ”๋กœ system() ํ•จ์ˆ˜(C์–ธ์–ด ๊ธฐ์ค€)์ธ๋ฐ์š”, ์ด ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ์‹œ์Šคํ…œ์— ๋ช…๋ น์„ ๋‚ด๋ฆฌ๊ฑฐ๋‚˜ ์ƒˆ๋กœ์šด ํ”„๋กœ์„ธ์Šค๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ํ•จ์ˆ˜์ด์ง€์š”. ์ด ํ•จ์ˆ˜๋กœ ๋งŽ์€ ๋…ธ๊ฐ€๋‹ค ์ž‘์—…์ด ์ค„๊ฒŒ๋˜์ง€์š”. ์˜ค๋Š˜์€ Ruby์—์„œ system()๊ณผ ...

[CODING] git pull ์‚ฌ์šฉ ์‹œ ๊ฐ•์ œ๋กœ pull ํ•˜๊ธฐ

a2sv update ๊ธฐ๋Šฅ์„ ๋งŒ๋“ค๋˜ ์ค‘ git์„ ์ด์šฉํ•˜์—ฌ pull ํ•˜๋Š” ๊ณผ์ •์„ ๋„ฃ์—ˆ๋Š”๋ฐ ์ด ๋ถ€๋ถ„์—์„œ ๊ณ„์† ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜์˜€์Šต๋‹ˆ๋‹ค. Updating 9733895..9ccb963 error: Your local changes to the following files would be overwritten by merge: mo...

[PYTHON] Terminal์— table ์ถœ๋ ฅํ•˜๊ธฐ(Source Code / Python / Terminal / Table)

์š”์ฆ˜ ํ• ์ผ์ด ์ฐธ ์‚ฐ๋”๋ฏธ๋„ค์š”.. ํšŒ์‚ฌ์— ๊ฐœ์ธ์ ์œผ๋กœ ํ•˜๋Š”๊ฑฐ๊นŒ์ง€โ€ฆ :( ๋”ฐ๋กœ ๊ฐ„๋‹จํ•˜๊ฒŒ ๋งŒ๋“ค๊ณ ์žˆ๋Š” SSL Vulnerability Scanner์ธ a2sv์— ์–ด๋–ป๊ฒŒํ•˜๋ฉด report ๋ถ€๋ถ„์„ ์˜ˆ์˜๊ฒŒ ๊พธ๋ฐ€๊ฐ€ ๊ณ ๋ฏผํ•˜๋˜ ์ค‘ stackoverflow์—์„œ ์ข‹์€ ์ฝ”๋“œ๋ฅผ ํ•˜๋‚˜ ๋ฐœ๊ฒฌํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๋ณ„๋‹ค๋ฅธ ๋ชจ๋“ˆ์ด๋‚˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์—†์ด ์‰ฝ๊ฒŒ table์„ ์ถœ๋ ฅ...

Git ๊ฐ•์ œ Push ํ•˜๊ธฐ

๊ฐœ์ธ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ฐœ๋ฐœํ•˜๋˜ ์ค‘ git push ์‹œ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์˜€์Šต๋‹ˆ๋‹ค. git push -u origin master To https://github.com/hahwul/a2sv.git ! [rejected] master -> master (non-fast-forward) error:...

Java Applet์„ ์ด์šฉํ•œ ๊ณต๊ฒฉ ๋ฐฉ๋ฒ•๋“ค

์›น ์ทจ์•ฝ์ ์— ๋Œ€ํ•œ ๋ถ„์„ ์‹œ ์ฃผ์š” ํƒœ๊ทธ๋กœ ์•Œ๋ ค์ง„ ๊ฒƒ๋“ค์€ ๋Œ€๋‹ค์ˆ˜ ํ•„ํ„ฐ๋ง ๋˜์–ด ์žˆ์ง€๋งŒ ๊ฐ„ํ˜น ๋น ์ง€๋Š” ํƒœ๊ทธ๋“ค์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ์ค‘ ์˜ค๋Š˜์€ applet ํƒœ๊ทธ์— ๋Œ€ํ•œ ์ด์•ผ๊ธฐ๋ฅผ ํ•˜๋ คํ•ฉ๋‹ˆ๋‹ค. applet ํƒœ๊ทธ๋Š” ์›น์—์„œ Java Applet์„ ์ด์šฉํ•˜๊ธฐ ์œ„ํ•ด object ํƒœ๊ทธ์™€ ํ•จ๊ป˜ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ํƒœ๊ทธ์ด์ฃ . ์ด applet ์„ ์ด์šฉํ•˜์—ฌ ๋‹ค์–‘ํ•œ ...

Ruby WEBrick์—์„œ ์„œ๋ฒ„ ์‚ฌ์ด๋“œ ์ฝ”๋“œ ์ฒ˜๋ฆฌํ•˜๊ธฐ

WEBRick ๋˜ํ•œ ์›น ์„œ๋น„์Šค๋ฅผ ์œ„ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ„๋‹จํ•œ ๋ผ์šฐํŒ… ๊ธฐ๋Šฅ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ์ด์šฉํ•˜๋ฉด Static ํŒŒ์ผ๋งŒ ์„œ๋น™ํ•˜๋Š”๊ฒŒ ์•„๋‹Œ ์‹ค์ œ ์›น ์š”์ฒญ ์‹œ ์›ํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ๋™์ž‘์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ”๋กœ mount_proc ๋ฉ”์†Œ๋“œ์ธ๋ฐ์š”, ๋จผ์ € ruby-doc.org์—์„œ๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด ์ •์˜๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. mount_p...

WEBrick์„ ์ด์šฉํ•˜์—ฌ ๊ฐ„๋‹จํ•œ Ruby ์›น ์„œ๋ฒ„ ๋งŒ๋“ค๊ธฐ

์˜ˆ์ „์— Ruby on Rails๋ฅผ ๋‹ค๋ฃจ๋ฉด์„œ ์•Œ๊ฒŒ๋œ webrick ์›น์„œ๋ฒ„ ๋ชจ๋“ˆ์ž…๋‹ˆ๋‹ค. ์ด ๋ชจ๋“ˆ์€ ์‰ฌ์šด ๋ฐฉ๋ฒ•์œผ๋กœ ์›น ์„œ๋ฒ„๋ฅผ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•˜๋Š” ์ข‹์€ ๋ชจ๋“ˆ์ด์ง€์š”. gem์„ ํ†ตํ•ด ์‰ฝ๊ฒŒ ์„ค์น˜๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. gem install webrick require๋กœ ํ•ด๋‹น ๋ชจ๋“ˆ์„ ๋ถˆ๋Ÿฌ์˜จ ํ›„ WEBrick ํ•˜๋‹จ ๋ฉ”์†Œ๋“œ๋ฅผ ์ด์šฉํ•˜์—ฌ ์›น...

PDB๋ฅผ ์ด์šฉํ•œ ํŒŒ์ด์ฌ ์Šคํฌ๋ฆฝํŠธ ๋””๋ฒ„๊น…

PDB ์‚ฌ์šฉ๋ฒ• ๋ฐ Debugger ์˜ต์…˜์— ๊ด€ํ•œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค. PDB ์‚ฌ์šฉ ๋ฐฉ๋ฒ•(Usage) n: ํ˜„์žฌ ๋ผ์ธ ์‹คํ–‰(step next) s: ํ˜„์žฌ ๋ผ์ธ์˜ ํ•จ์ˆ˜ ์•ˆ์œผ๋กœ ์ด๋™(step in) run: ํ˜„์žฌ ์ง€์ ์—์„œ ๊ณ„์† ์‹คํ–‰(๋‹ค์Œ set_trace๊ฐ€ ์—†์œผ๋ฉด ๋””๋ฒ„๊น…์ด ๋๋‚˜๋Š” ์…ˆ) > /usr/lib/python2...

[RUBY] HexDump Ruby Code(๋ฃจ๋น„๋กœ ํ—ฅ์Šค ์ •๋ณด ์ถœ๋ ฅํ•˜๊ธฐ)

[RUBY] HexDump Ruby Code(๋ฃจ๋น„๋กœ ํ—ฅ์Šค ์ •๋ณด ์ถœ๋ ฅํ•˜๊ธฐ) ์‹คํ–‰ ์ธ์ž๊ฐ’์œผ๋กœ ๋ฐ›์„ ๊ฐ’(ํŒŒ์ผ๋ช…) ์„ hexdump๋ผ๋Š” ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด hex๊ฐ’์œผ๋กœ ์ถœ๋ ฅํ•˜๋Š” ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค. ์ด ์ฝ”๋“œ์˜ ํ•ต์‹ฌ๋ถ€๋ถ„์ธ hexdump ํ•จ์ˆ˜์— ๋Œ€ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. filename ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ํ†ตํ•ด ๋ฐ›์€ ์ธ์ž๊ฐ’์„ File.open ์œผ๋กœ ๋กœ๋“œํ•œ ํ›„ eac...

Javascript ์ฝ”๋“œ ๋‚œ๋…ํ™”(Code Obfuscation)์™€ JS Packing

์ฝ”๋“œ ๋‚œ๋…ํ™”๋ž€ ์ฝ”๋“œ๋ฅผ ์‰ฝ๊ฒŒ ์•Œ์•„๋ณผ ์ˆ˜ ์—†๋„๋ก ๋งŒ๋“œ๋Š” ๊ธฐ์ˆ ์ž…๋‹ˆ๋‹ค. ์‰ฝ๊ฒŒ ์ƒ๊ฐํ•˜๋ฉด int a = 123 ์ด๋ž€ ์ฝ”๋“œ๋ฅผ int a = ((123+34+350-34-350)*0)+123 ๊ฐ™์ด ์ข€ ๋” ์•Œ์•„๋ณด๊ธฐ ์–ด๋ ต๊ฒŒ ๋งŒ๋“œ๋Š” ๊ธฐ์ˆ ์ž…๋‹ˆ๋‹ค. ๋ฌผ๋ก  ์œ„์˜ ๋Œ€์ถฉ ์“ด ์ฝ”๋“œ๋Š” ์‰ฝ๊ฒŒ ๋ณผ ์ˆ˜ ์žˆ์ง€๋งŒ escape, unescape ํ•จ์ˆ˜ ๋“ฑ์„ ์ด์šฉํ•ด์„œ ์ฝ”๋“œ...

rvm, rbenv๋ฅผ ํ†ตํ•œ Ruby ๋ฒ„์ „ ๊ด€๋ฆฌ

์˜ค๋žœ๋งŒ์— ๋…ธํŠธ๋ถ์—์„œ Metasploit ์—…๋ฐ์ดํŠธ๋ฅผ ํ•˜์˜€๋”๋‹ˆ ํŒจํ‚ค์ง€ ํ•˜๋‚˜๊ฐ€ ์˜์กด์„ฑ ๋ฌธ์ œ๊ฐ€ ๊ฑธ๋ ธ์Šต๋‹ˆ๋‹ค. gem ์œผ๋กœ ์„ค์น˜ํ•˜๋ ค ํ–ˆ์œผ๋‚˜, ๋ฐœ์ƒํ•˜๋Š” ๊ฑด ruby 2.1 ์ด์ƒ์—์„œ ์„ค์น˜ ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ๋ฉ”์‹œ์ง€์˜€์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฐ ๊ฒฝ์šฐ ์‹œ์Šคํ…œ Ruby๋ฅผ ์ง์ ‘ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๊ธฐ ๋ณด๋‹จ rvm์ด๋‚˜ rbenv ๋“ฑ Environment ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ...