๐Ÿงฉ etc.

    Mac :: ํ„ฐ๋ฏธ๋„์— ์ด๋ชจ์ง€ ๋‚˜ํƒ€๋‚ด๊ธฐ

    Mac :: ํ„ฐ๋ฏธ๋„์— ์ด๋ชจ์ง€ ๋‚˜ํƒ€๋‚ด๊ธฐ

    ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์˜ ๋ธ”๋กœ๊ทธ๋ฅผ ๋ณด๋‹ค๋ณด๋‹ˆ๊นŒ ํ„ฐ๋ฏธ๋„ Host ๋‚˜ํƒ€๋‚ด๋Š” ๋ถ€๋ถ„์— ์ด๋ชจ์ง€๊ฐ€ ์žˆ๋˜๋ฐ ์ด๊ฒŒ ๋„ˆ๋ฌด ๊ท€์—ฌ์›Œ๋ณด์—ฌ์„œ ๋‚˜๋„ ์ ์šฉํ•ด๋ณด์•˜๋‹ค. ์‚ฌ์ „ ํ™˜๊ฒฝ ์„ธํŒ… Iterm2 oh-my-zsh ZSH ์„ธํŒ… ํ„ฐ๋ฏธ๋„์„ ๊พธ๋ฏธ๊ณ  ์‹ถ์€ ๋ถ„์ด๋ผ๋ฉด ์ด๊ฑด ์ด๋ฏธ ๊น”๋ ค์žˆ์„ ๊ฒƒ์ด๋ผ๊ณ  ๊ฐ€์ •ํ–ˆ๋‹ค. ์•„์ง ์„ค์น˜ํ•˜์ง€ ์•Š์•˜๋”๋ผ๋„ ์œ„ ์ € ๋‘ ํŒŒ์ผ์€ ์„ค์น˜๋งŒ ํ•˜๋ฉด ๋œ๋‹ค. ์„ค์น˜๊ฐ€ ๋๋‚ฌ๋‹ค๋ฉด ์‰˜์˜ ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์„ค์ •์„ ๋ณ€๊ฒฝํ•ด์ฃผ์ž. vi ~/.zshrc vi ์—๋””ํ„ฐ๋กœ zsh ์„ค์ • ํŒŒ์ผ์— ๋“ค์–ด๊ฐ€์„œ ๊ฐ€์žฅ ํ•˜๋‹จ์— ์•„๋ž˜ ์ฝ”๋“œ๋ฅผ ๋„ฃ์ž. prompt_context() { # Custom (Random emoji) emojis=("๐Ÿ”ฅ" "๐Ÿป" "๐ŸฆŠ" "๐Ÿป" "๐Ÿš€" "๐ŸŒ™") RAND_EMOJI_N=$(( $RANDOM % ${#emojis[@]} + 1)) prompt_segment ..

    Github :: Git LFS ๋กœ Large Size ํŒŒ์ผ ๊ด€๋ฆฌ

    Github :: Git LFS ๋กœ Large Size ํŒŒ์ผ ๊ด€๋ฆฌ

    ์—๋Ÿฌ remote: error: GH001: Large files detected. You may want to try Git Large File Storage - https://git-lfs.github.com. Enumerating objects: 16, done. Counting objects: 100% (16/16), done. Delta compression using up to 8 threads Compressing objects: 100% (14/14), done. Writing objects: 100% (14/14), 188.62 MiB | 2.82 MiB/s, done. Total 14 (delta 2), reused 0 (delta 0), pack-reused 0 remote: Reso..

    TDD์™€ Unit Test

    TDD์™€ Unit Test

    ์ด๋™์šฑ ์ €์ž์˜ ์Šคํ”„๋ง ๋ถ€ํŠธ์™€ AWS๋กœ ํ˜ผ์ž ๊ตฌํ˜„ํ•˜๋Š” ์›น ์„œ๋น„์Šค ๋ฅผ ์ฝ๋‹ค๊ฐ€, Unit Test ์— ๋Œ€ํ•ด ์ดํ•ดํ•˜๊ธฐ ์‰ฝ๊ฒŒ ์„ค๋ช…๋œ ๋ถ€๋ถ„์ด ์žˆ์–ด ์ธ์šฉํ•ด์„œ ์ ์–ด๋ณด์•˜๋‹ค. ๋จผ์ €, TDD ์™€ Unit Test ๋Š” ๋‹ค๋ฅด๋‹ค. TDD ๋Š” Test-Driven Development, ํ…Œ์ŠคํŠธ ์ฃผ๋„ ๊ฐœ๋ฐœ์„ ์˜๋ฏธํ•œ๋‹ค. TDD ๋Š” Test ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•œ๋‹ค. Red Green Cycle TDD๋Š” ์œ„ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์€ ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ฐ€์ง„๋‹ค. ํ•ญ์ƒ ์‹คํŒจํ•˜๋Š” ํ…Œ์ŠคํŠธ๋ฅผ ๋จผ์ € ์ž‘์„ฑ (Red) ํ…Œ์ŠคํŠธ๊ฐ€ ํ†ต๊ณผํ•˜๋Š” ํ”„๋กœ๋•์…˜ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑ (Green) ํ…Œ์ŠคํŠธ๊ฐ€ ํ†ต๊ณผํ•˜๋ฉด ํ”„๋กœ๋•์…˜ ์ฝ”๋“œ๋ฅผ ๋ฆฌํŒฉํ† ๋ง (Refactor) ๋ฐ˜๋ฉด Unit Test ๋Š” TDD ์˜ ์ฒซ ๋ฒˆ์งธ ๋‹จ๊ณ„์ธ ๊ธฐ๋Šฅ ๋‹จ์œ„์˜ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค. TDD ์ฒ˜๋Ÿผ ํ…Œ์ŠคํŠธ๋ฅผ ๋ฐ˜๋“œ์‹œ..

    IntelliJ :: Mac์šฉ ๋‹จ์ถ•ํ‚ค ๋ชจ์Œ

    IntelliJ :: Mac์šฉ ๋‹จ์ถ•ํ‚ค ๋ชจ์Œ

    ๋‚ด๊ฐ€ ๋ณด๋ ค๊ณ  ์“ฐ๋Š” IntelliJ ๋‹จ์ถ•ํ‚ค ๋ชจ์Œ ๋‹จ์ถ•ํ‚ค๋ฅผ ์ด์šฉํ•ด ์ฝ”๋”ฉ์„ ํ•˜๋Š” ์‚ฌ๋žŒ์„ ๋ณด๋ฉด ๋ฉ‹์žˆ๋‹ค. ๋ฉ‹์žˆ๊ฒŒ ์ฝ”๋”ฉํ•˜๊ณ  ์‹ถ์–ด์„œ ์“ธ๋งŒํ•œ ๋‹จ์ถ•ํ‚ค๋ฅผ ์ ์–ด๋‘๋ ค๊ณ  ํ•œ๋‹ค. (๊ณ„์† ์ถ”๊ฐ€์˜ˆ์ •) ๋ฉ‹์žˆ๊ธฐ๋งŒ ํ•ด์„œ ํ•˜๋Š” ๊ฑด ์•„๋‹ˆ๊ณ  ์ƒ์‚ฐ์„ฑ์ด ๋†’์•„์ง€๋‹ˆ๊นŒ..~ View โŒ˜1 : ํ”„๋กœ์ ํŠธ ์ฐฝ ์—ด๊ณ , ํฌ์ปค์Šค ์œ„์น˜ Esc : ์—๋””ํ„ฐ๋กœ ๋‹ค์‹œ ํฌ์ปค์Šค ์ด๋™ โŒ˜E : ์ตœ๊ทผ ์‹คํ–‰ํ–ˆ๋˜ ํŒŒ์ผ ํ™•์ธ โŒ˜B : ํ•ด๋‹น ํด๋ž˜์Šค ์ด๋™ โŒฅโŒ˜B : ๊ตฌํ˜„์œผ๋กœ ์ด๋™ โŒ˜[ : ์ด์ „ ์ฝ”๋“œ๋กœ ์ด๋™ Editing โ‡งโŒ˜โŽ : ํ˜„์žฌ ๊ตฌ๋ฌธ ์™„์„ฑ โŒฅโŒ˜V : ๋ณ€์ˆ˜ ์ถ”์ถœํ•˜๊ธฐ (Extract โ†’ Variable) โŒฅโŒ˜P : ๋ณ€์ˆ˜ ์ถ”์ถœํ•˜๊ธฐ (Extract โ†’ Parameter) โŒฅโŒ˜M : ๋ณ€์ˆ˜ ์ถ”์ถœํ•˜๊ธฐ (Extract โ†’ Method)

    System :: ARM Assembly ์ •๋ฆฌ

    System :: ARM Assembly ์ •๋ฆฌ

    ARM ์•„ํ‚คํ…์ฒ˜๋Š” 16๊ฐœ์˜ ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. R0 ~ R12 : ๋ฒ”์šฉ ๋ ˆ์ง€์Šคํ„ฐ. ์ธ์ž๊ฐ’ ์ €์žฅ ๋“ฑ R13(SP) : Stack Pointer. ์Šคํƒ์˜ ์ฃผ์†Œ๋ฅผ ์ €์žฅํ•˜๋Š” ๋ ˆ์ง€์Šคํ„ฐ. x86 ์˜ ESP ๋ ˆ์ง€์Šคํ„ฐ์™€ ๋น„์Šท R14(LR) : Link Register. ํ•จ์ˆ˜ ํ˜ธ์ถœ ์‹œ ๋˜๋Œ์•„๊ฐˆ ํ•จ์ˆ˜์˜ ์ฃผ์†Œ๊ฐ€ ์ €์žฅ๋˜๋Š” ๋ ˆ์ง€์Šคํ„ฐ R15(PC) : x86 ์—์„œ์˜ EIP ๋ ˆ์ง€์Šคํ„ฐ์™€ ๋™์ผํ•œ ์—ญํ• . ๋‹ค์Œ์— ์‹คํ–‰ํ•  ์ฝ”๋“œ์˜ ์ฃผ์†Œ ์ €์žฅ ์–ด์…ˆ๋ธ”๋ฆฌ์–ด์— ๋Œ€ํ•ด ๊ฐ„๋‹จํžˆ ์‚ดํŽด๋ณด์ž. OP Code : MOV, ADD, SUB, LDR, STR ๊ณผ ๊ฐ™์€ ์–ด์…ˆ๋ธ”๋ฆฌ ๋ช…๋ น์–ด cond : ์กฐ๊ฑด๋ถ€๋กœ ๋ช…๋ น์„ ์‹คํ–‰ํ•ด์•ผ ํ•  ๊ฒฝ์šฐ OP Code ๋’ค์— ๋ถ™์—ฌ์„œ ์‚ฌ์šฉ. Rd : Destination Register. ์—ฐ์‚ฐ์ž‘์—…์˜ ๊ฒฐ๊ณผ๊ฐ’์„ ์ €์žฅํ•˜๋Š” ๋ ˆ์ง€์Šคํ„ฐ. ๋ฐ˜๋“œ์‹œ R..

    WSL2 ๊ธฐ๋ฐ˜ docker ์‚ฌ์šฉ์‹œ ๋ฉ”๋ชจ๋ฆฌ ์ด์Šˆ(Vmmem)

    WSL2 ๊ธฐ๋ฐ˜ docker ์‚ฌ์šฉ์‹œ ๋ฉ”๋ชจ๋ฆฌ ์ด์Šˆ(Vmmem)

    WSL ์„ ์„ค์น˜ํ•ด์„œ ์“ด ์ง€ ๋ฉฐ์น  ๋˜์ง€ ์•Š์•˜๋Š”๋ฐ, ๋…ธํŠธ๋ถ์ด ๋„ˆ๋ฌด ๋Š๋ ค์ง„ ๊ฒƒ ๊ฐ™์•„ ์ž‘์—…๊ด€๋ฆฌ์ž๋ฅผ ์ผœ๋ณด์•˜๋”๋‹ˆ ์ด๊ฒŒ ๋ฌด์Šจ ์ผ์ด์•ผ.. ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋ฌด์‹ํ•˜๊ฒŒ ์žก์•„๋จน๊ณ  ์žˆ๋Š” ๋†ˆ์„ ๋ณด์•˜๋‹ค. Vmmem ์ด ๋ญํ•˜๋Š” ์นœ๊ตฐ์ง€ ์ฐพ์•„๋ณด๋‹ˆ WSL ๋ฅผ ์„ค์น˜ํ•  ๋•Œ ๊ฐ™์ด ๋‹ค์šด๋กœ๋“œํ•œ docker ๋ฅผ ์‹คํ–‰์‹œ์ผฐ์„ ๋•Œ ๊ฐ™์ด ๋Œ์•„๊ฐ€๋Š” ํ”„๋กœ๊ทธ๋žจ์ธ ๊ฒƒ์„ ํ™•์ธ. ๋…ธํŠธ๋ถ ๋ถ€ํŒ… ์‹œ์— docker ๊ฐ€ ์ž๋™ ์‹คํ–‰๋˜๊ฒŒ ์„ค์ •ํ•ด๋†จ๋˜ ํ„ฐ๋ผ ์šฐ์„  ๋ถ€ํŒ… ์‹œ docker ์ž๋™ ์‹คํ–‰ ์˜ต์…˜์„ ๊ป๋‹ค. docker desktop ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰ํ•˜๊ณ  ์ž‘์—…ํ‘œ์‹œ์ค„ docker ์•„์ด์ฝ˜์„ ์šฐํด๋ฆญํ•œ ๋’ค ์„ธํŒ…์œผ๋กœ ๋“ค์–ด๊ฐ€์ž. General ํƒญ์—์„œ Start Docker Desktop when you log in ์˜ต์…˜์„ ์ฒดํฌ ํ•ด์ œํ–ˆ๋‹ค. ์žฌ๋ถ€ํŒ… ์‹œ ์ž๋™์œผ๋กœ ์‹คํ–‰๋˜๋Š” ๊ฒƒ์€ ๋ง‰์•˜์ง€๋งŒ, ์—ฌ์ „ํžˆ doc..

    GDB :: gdb ์‚ฌ์šฉ๋ฒ• ๋ฐ ์˜ต์…˜ ์ •๋ฆฌ

    GDB :: gdb ์‚ฌ์šฉ๋ฒ• ๋ฐ ์˜ต์…˜ ์ •๋ฆฌ

    GDB ๋ผ๊ณ  ๋ถ€๋ฅด๋Š” GNU Debugger๋Š” GNU ์†Œํ”„ํŠธ์›จ์–ด ์‹œ์Šคํ…œ์„ ์œ„ํ•œ ๊ธฐ๋ณธ ๋””๋ฒ„๊ฑฐ. GDB๋Š” ๋‹ค์–‘ํ•œ ์œ ๋‹‰์Šค ๊ธฐ๋ฐ˜์˜ ์‹œ์Šคํ…œ์—์„œ ๋™์ž‘ํ•˜๋Š” ์ด์‹์„ฑ ์žˆ๋Š” ๋””๋ฒ„๊ฑฐ๋กœ, ์—์ด๋‹ค, C, C++, ํฌํŠธ๋ž€ ๋“ฑ์˜ ์—ฌ๋Ÿฌ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ฅผ ์ง€์›. GDB ์‚ฌ์šฉ๋ฒ• % gcc -g test.c -o test % gdb (gdb) file [test] // symbol table์„ ๋ถˆ๋Ÿฌ์™€์„œ ๋””๋ฒ„๊น… ์ค€๋น„. (gdb) list // ํ˜„์žฌ ์œ„์น˜์—์„œ ์†Œ์Šค ํŒŒ์ผ์˜ ๋‚ด์šฉ์„ 10์ค„ ๋ณด์—ฌ์คŒ. (gdb) run (r) // ํ”„๋กœ๊ทธ๋žจ ์‹œ์ž‘. (gdb) break (b) // ๋ผ์ธ ๋ฒˆํ˜ธ๋‚˜ ํ•จ์ˆ˜ ์ด๋ฆ„์„ ์ธ์ž๋กœ ์ค„ ์ˆ˜ ์žˆ์Œ. ํŠน์ • ๋ผ์ธ์ด๋‚˜ ํ•จ์ˆ˜์— ๋ธŒ๋ ˆ์ดํฌ ํฌ์ธํŠธ ์„ค์ •. (gdb) disas [func or var] // ํŠน์ • ์ฃผ์†Œ๋ฅผ disassemb..