๐งฉ etc./๐ก ๊ฟํ

์ฐ๋ฆฌํ์ ์ฝ๋ฉ ์ปจ๋ฒค์ ์ ํ๊ธฐ
์ ํ์ํ๊ฐ? ํ์๋ค๊ณผ, ํนํ ๋ฐฑ์๋๋ผ๋ฆฌ ํ์ ์ ํ๋ฉด์ ์ค๊ณ๋ฅผ ๋๋ด๊ณ ๊ตฌํ์ผ๋ก ๋ค์ด๊ฐ๋ฉด์ ๊ฐ์ฅ ๋จผ์ ๋ง๋ฅ๋ค์ธ ๋ฌธ์ ๋ โ์ปจ๋ฒค์ โ ์ด์๋ค. ์ฃผ์์ ๋ฌผ์ด๋ณด๋ ๊ทธ๊ฒ ๋ฌด์จ ๋ฌธ์ ๊ฐ ๋๊ณ ์ ์ ํด์ผ ํ๋์ง ์ดํด๋ฅผ ๋ชปํ๋ ์ฌ๋๋ค๋ ์์์ง๋ง, ๊ฐ์ ํ๋ก์ ํธ์ ์ฝ๋๋ฅผ ๊ฑด๋๋ฆฌ๋ ํ์์ ์ ์ฅ์์ ๋ค๋ฅธ ์ฌ๋์ด ์ด ์ฝ๋๋ฅผ ์ดํดํ๋ ๋ฐ์ ์๊ฐ์ด ๊ฑธ๋ฆฌ๊ฑฐ๋ ํ๋ค๋ชปํด DTO ์ ํด๋์ค ์ด๋ฆ๋ถํฐ๊ฐ ๋ญํ๋ DTO ์ธ์ง ์๊ธฐ ์ด๋ ต๋ค๋ฉด, ๊ฐ์ด ์ฝ๋๋ฅผ ์์ฑํ๋ ๋ฐ์ ๋ถํธํจ์ด ์๋ค. ๊ทธ๋์ ํ๋ก์ ํธ๋ฅผ ๊ฐ์ด ํ๋ ํ์๊ณผ ์ปจ๋ฒค์ ์ ์ ํ๊ณ ์ฝ๋ ์์ฑ์ ์์ํ๊ธฐ๋ก ํ๋ค. ์ฝ๋ ์คํ์ผ์ ํ์ค์ด๋ผ๋ ๊ฒ์ ์์ง๋ง, ํ ๋ด๋ถ์์ ๊ฐ์ ์ฝ๋ ์คํ์ผ์ ๊ฒฐ์ ํ๊ณ ์ ์งํ๋ ๊ฒ์ด ์์ ํจ์จ์ ๋์ผ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ๋ค. ๊ทธ๋ฆฌ๊ณ ์ ์ง๋ณด์ ! ๋ด๊ฐ ์ฝ๋๋ฅผ ๊ณ์ ์์ฑํ๊ณ ๊ณ ์ณ๋..

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 ํ์ผ ๊ด๋ฆฌ
์๋ฌ 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..

IntelliJ :: Mac์ฉ ๋จ์ถํค ๋ชจ์
๋ด๊ฐ ๋ณด๋ ค๊ณ ์ฐ๋ IntelliJ ๋จ์ถํค ๋ชจ์ ๋จ์ถํค๋ฅผ ์ด์ฉํด ์ฝ๋ฉ์ ํ๋ ์ฌ๋์ ๋ณด๋ฉด ๋ฉ์๋ค. ๋ฉ์๊ฒ ์ฝ๋ฉํ๊ณ ์ถ์ด์ ์ธ๋งํ ๋จ์ถํค๋ฅผ ์ ์ด๋๋ ค๊ณ ํ๋ค. (๊ณ์ ์ถ๊ฐ์์ ) ๋ฉ์๊ธฐ๋ง ํด์ ํ๋ ๊ฑด ์๋๊ณ ์์ฐ์ฑ์ด ๋์์ง๋๊น..~ View โ1 : ํ๋ก์ ํธ ์ฐฝ ์ด๊ณ , ํฌ์ปค์ค ์์น Esc : ์๋ํฐ๋ก ๋ค์ ํฌ์ปค์ค ์ด๋ โE : ์ต๊ทผ ์คํํ๋ ํ์ผ ํ์ธ โB : ํด๋น ํด๋์ค ์ด๋ โฅโB : ๊ตฌํ์ผ๋ก ์ด๋ โ[ : ์ด์ ์ฝ๋๋ก ์ด๋ Editing โงโโ : ํ์ฌ ๊ตฌ๋ฌธ ์์ฑ โฅโV : ๋ณ์ ์ถ์ถํ๊ธฐ (Extract โ Variable) โฅโP : ๋ณ์ ์ถ์ถํ๊ธฐ (Extract โ Parameter) โฅโM : ๋ณ์ ์ถ์ถํ๊ธฐ (Extract โ Method)

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

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